python - 如何限制输入中的位数?

标签 python input limit digit

我是一名修读计算机科学类(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/

相关文章:

javascript - 在 JavaScript 中找不到文件

php - 缓慢的 MySQL 限制选择

python - 根据用于获取这些字典的键返回字典的排序迭代器

python - UserString 子类, 'str' 对象不可调用

c - C 中的文件输入和数组指针

JavaFX - 带有 2 个输入字段的对话框?

javascript - 如果我的数组包含使用 jQuery.inArray() 传递的值,如何显示警报?

linux - 如何在 Ubuntu 中增加 Neo4j 的最大文件打开限制(ulimit)?

php - 限制 Laravel 5 分页链接

执行外部程序后可以发送多个输入的Python脚本