python - 如何检查 Python 3.2 中的整数?

标签 python integer

我正在尝试编写一个程序,用户输入一个两位数的整数,输出的是第二个数字,打印第一个数字指示的次数。这是我目前所拥有的:

number = input('Type two-digit integer \n')
a = int(number)//10
b = int(number)%10
if len(number) != 2:
    print(number, 'is not a two-digit integer')
else:
    print(a*str(b))

当我对此进行测试时,只要有人输入数字,它就会按照我的预期去做。如果有人输入 6r,就会弹出一条错误消息:

a = int(number)//10

ValueError:以 10 为底的 int() 的无效文字:'6r'

所以我假设需要在代码的第二行中放置一些东西来测试输入是否实际上是一个整数,我该怎么做呢?我最好以不同的方式重写它吗?请记住,我正在学习 Python 入门类(class),这是我正在参加的期中练习的一个问题,所以如果我必须在真正的期中回答这样的问题,我不能使用很多复杂的过程。

这是我尝试过的方法,如果有人输入的不是整数,但出于某种我不知道的原因,它会为非整数提供与整数相同的消息,并且无法按我的预期运行它:

number = input('Type two-digit integer \n')
if (isinstance(number, int)) == False:
    print(number, 'is not a two-digit integer')
elif len(number) != 2:
    print(number, 'is not a two-digit integer')
else:
    a = int(number)//10
    b = int(number)%10
    print(a*str(b))

帮助将不胜感激!

最佳答案

这里最好的选择是捕获异常。出了点问题,这正是异常旨在处理的问题:

try:
    ...
except ValueError:
    print("You need to enter an integer!")
    ...

Python 有句名言:请求原谅比请求许可好,所以不要事先检查它是否有效,先尝试一下,如果无效再处理问题。

这使得代码更可靠(检查可能会意外地禁止良好的输入,或让错误的输入通过),并使代码可读性更好(您首先处理正常情况,然后处理问题,而不是必须检查问题,然后处理)。

关于python - 如何检查 Python 3.2 中的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12923572/

相关文章:

Ruby//range之间的随机数,保证对其他已有存储的唯一性

python - 按周和月聚合 Pandas 数据框

java - 将 long 列表转换为 int java 8 列表

java - 从多行文本文件中获取整数 vector

python - 更改文本文件的内容并制作具有相同格式的新文件

c - 如何在C中实现包装signed int加法

python - Python TypeError:需要一个整数(元组类型元组)-(OpenCV/Numpy)

java - 大规模机器学习——Python 还是 Java?

python - 在本地测试 Hive + spark python 程序?

python - 在 Red Hat 6.6 版的 python2.7 中导入 Tensorflow 时出错。 'GLIBC_2.17 not found'