我正在制作一个ISBN校验数字程序。然而,虽然我已经做了我的程序,它将只接受一个长度为10的值,如果我输入10个字母,它将崩溃。在
有人知道怎么解决这个问题吗?在
我的代码:
isbnnumber = input('Please input your 10 digit book no. : ')
while len(isbnnumber) != 10:
print('You have not entered a 10 digit value! Please try again.')
isbnnumber = input('Please input your 10 digit book no. : ')
else:
no1 = int(isbnnumber[0])*11
no2 = int(isbnnumber[1])*10... etc...
非常感谢您的帮助,谢谢。在
可以将while循环的条件替换为检查数字的更丰富的条件,例如:
请注意,不仅有ISBN-10,还有ISBN-13(事实上在世界范围内更常用)。 另外,ISBN-10不一定都是数字:一个数字是校验和,它的计算结果可以是字母“X”(而不是10,数字)。 当你这样做的时候:也要检查那些校验和数字;它们存在是有原因的。在
所以我建议你做一些辅助函数:
并按如下方式实现输入循环:
^{pr2}$可以使用^{} 测试字符串是否全部为数字:
请参见下面的演示:
^{pr2}$相关问题 更多 >
编程相关推荐