gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:43:51 24 4
gpt4 key购买 nike

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

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com