ISBN校验位计算问题

2024-09-29 20:23:08 发布

您现在位置:Python中文网/ 问答频道 /正文

对于为什么下面的代码总是返回相同的校验位数字,有人能提供任何帮助吗?在

    def ISBN():
        numlist = []
        request = raw_input("Please enter the 10 digit number:  ")
        if len(request) == 10:
            listofnums = [int(digit) for digit in '1234567890']
            multipliers = reversed(range(2,12))
            multipliednums = [a*b for a,b in zip(listofnums, multipliers)]
            print multipliednums
            added_result = sum(multipliednums)
            print added_result
            remainder = added_result % 11
            print remainder
            check_digit = 11 - remainder
            print check_digit
            ISBN()
        if len(request) != 10:
            print "Invalid Input"
            ISBN()

    ISBN()

关于如何影响代码的任何信息或提示,或者只是为什么不管输入什么,它总是不断地返回相同的数字(9)。 谢谢你


Tags: 代码inaddedforlenifrequest数字
3条回答

查看您的代码,您可以看到您接受了来自用户的request的值,但是在检查了它的长度之后,您不再对它做任何其他操作。这个程序的输出是不可能改变的。在

您似乎并没有对您向用户请求的变量进行任何计算。 后续代码中未使用变量请求。。。在

我认为for digit in '1234567890'应该是{}。在

相关问题 更多 >

    热门问题