Python ISBN校验位计算问题

Python ISBN校验位计算问题,python,digit,isbn,Python,Digit,Isbn,有人能提供帮助吗?为什么下面的代码总是返回相同的校验位数 def ISBN(): numlist = [] request = raw_input("Please enter the 10 digit number: ") if len(request) == 10: listofnums = [int(digit) for digit in '1234567890'] multiplier

有人能提供帮助吗?为什么下面的代码总是返回相同的校验位数

    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)。
谢谢

我认为'1234567890'中数字的
应该是请求中数字的
我认为'1234567890'中数字的
应该是请求中数字的

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

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

查看您的代码,您可以看到您接受了来自用户的
请求的值,但在检查其长度后,您不再对其执行任何其他操作。此程序的输出无法更改。

查看您的代码,您可以看到您接受了用户发出的
request
的值,但在检查其长度后,您不会再对其执行任何其他操作。此程序的输出不可能更改。

这一点。还有,我很确定你之前发过一个关于这个的问题。。。在任何情况下,是的,小心复制粘贴代码。还有,我很确定你之前发过一个关于这个的问题。。。在任何情况下,是的,小心复制粘贴代码。提示:不要递归调用ISBN。如果您想永远做某事,请使用
while True:
块:目前的情况是,如果我输入足够的ISBN号,我可以使Python解释器崩溃。提示:不要递归调用ISBN。如果您想永远做某事,请使用
while True:
块:目前的情况是,如果我输入足够的ISBN数字,我可以使Python解释器崩溃。