任何人都可以提供任何帮助,为什么下面的代码总是返回相同的校验位数?
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)。 谢谢
答案 0 :(得分:3)
我认为for digit in '1234567890'
应为for digit in request
。
答案 1 :(得分:1)
查看您的代码,您可以看到您接受来自用户的request
的值,但在检查其长度后,您不再对其执行任何其他操作。这个程序的输出无法改变。
答案 2 :(得分:0)
您似乎没有计算您向用户询问的变量的任何内容。 变量请求未在后续代码中使用...