如何使用布尔值检查输入是否为整数,甚至将输入转换为整数

时间:2019-12-10 00:07:38

标签: python-3.x

我无法执行一个可选任务,在该任务中我使用.isdigit()检查int(input("my string"))的输入

没有这个可选任务,我解决了任务,但我想学习高效,所以我需要您的帮助。

任务

  

获取2个整数的输入       转换输入并打印输入,然后输出结果       输出示例:9 + 13 = 22

     
    

可选:在尝试进行整数加法之前检查输入.isdigit(),以避免在转换无效输入时出错

  

到目前为止我的代码

int_nmbr1 = int(input("Enter first number: "))
int_nmbr2 = int(input("Enter second number: "))
if int_nmbr1.isdigit() & int_nmbr2.isdigit() == True: #Here i check it with is.digit() twice
print(int_nmbr1, " + ", int_nmbr2, " = ", int_nmbr1 + int_nmbr2)

控制台错误输出

AttributeError跟踪(最近一次通话)  在()中       3 int_nmbr2 = int(input(“输入第二个数字:”))       4 ----> 5如果int_nmbr1.isdigit()和int_nmbr2.isdigit()==真:       6 print(int_nmbr1,“ +”,int_nmbr2,“ =”,int_nmbr1 + int_nmbr2)

AttributeError:“ int”对象没有属性“ isdigit”

1 个答案:

答案 0 :(得分:0)

您正在尝试对isdigit数据类型实施int,尽管它是str的一种方法。 通过使用int(input()),如果您使用base10输入任何值,则您的输入已经是int值。因此,您无需使用isdigitisdigit用于检查它是否为字符串格式的任何数字。 如果仍有疑问,可以检查dir(str)dir(int)。而且,您可以检查print(help(str.isdigit))

现在,如果输入了错误的数据类型,则可以使用exception handelings。 您可以像这样使用它:

try:
    int(input(“enter any number:”))
except ValueError:
    print(“Please enter any integer value only”)
    int(input(“enter any number:”))

如果您是第一次输入其他数据类型而不是整数,则上述代码不会返回错误。