我是一名修读计算机科学类(class)的学生,为了进行部分评估,我们必须编写一个程序,从用户那里获取 10 位数字,并使用它们计算第 11 个数字,以便生成 ISBN。用户输入的数字必须限制为一位数,如果输入多于一位数,则应显示错误消息。这是我正在使用的代码:
print('Please enter your 10 digit number')
a = int(input("FIRST NUMBER: "))
aa = (a*11)
if len(a) > 1:
print ("Error. Only 1 digit allowed!")
b = int(input("SECOND NUMBER: "))
bb = (b*10)
if len(a) > 1:
print ("Error. Only 1 digit allowed!")
等等。
我必须将输入保持为整数,以便程序其余部分的某些计算能够正常工作,但是当我运行该程序时,出现错误“'int' 类型的对象没有 len()”。我假设它指的是它是一个整数并且没有长度。有什么方法可以将“a”保留为整数但将长度限制为 1 位数字?
(我也知道可能有更有效的编写程序的方法,但我对 python 的了解相当有限)
最佳答案
您必须将 int 转换为字符串,因为 int 没有长度属性。此外,您正在检查数字是否长于 1 a 两次,所以我将 SECOND NUMBER 检查切换为 b
print('Please enter your 10 digit number')
a = raw_input("FIRST NUMBER: ")
if len(a) > 1:
print ("Error. Only 1 digit allowed!")
a = int(a)
aa = (a*10)
b = raw_input("SECOND NUMBER: ")
if len(b) > 1:
print ("Error. Only 1 digit allowed!")
b = int(b)
bb = (b*10)
或者更简单地说:
你可以询问数字并一直询问,直到长度为 10 且输入为数字
num = raw_input('Please enter your 10 digit number:')
while len(num) != 10 or (not num.isdigit()):
print 'Not a 10 digit number'
num = raw_input('Please enter your 10 digit number:')
num = int(num)
print 'The final number is: ', num
关于python - 如何限制输入中的位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656173/