首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ISBN校验位计算问题

ISBN校验位计算问题
EN

Stack Overflow用户
提问于 2012-03-15 04:39:12
回答 3查看 1.2K关注 0票数 0

谁能提供任何帮助,为什么下面的代码总是返回相同的校验数字?

代码语言:javascript
复制
    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)。谢谢

EN

回答 3

Stack Overflow用户

发布于 2012-03-15 04:42:45

我认为for digit in '1234567890'应该是for digit in request

票数 3
EN

Stack Overflow用户

发布于 2012-03-15 04:45:53

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

票数 1
EN

Stack Overflow用户

发布于 2012-03-15 04:45:28

您似乎没有在向用户询问的变量上计算任何内容。变量请求不会在后续代码中使用...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9709938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档