首页 > 解决方案 > 如果输入是整数,甚至将输入转换为整数,如何使用布尔值进行检查

问题描述

我在int(input("my string"))使用 .isdigit()检查输入的可选任务中失败了

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

任务

获取 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 Traceback (last last call last) in () 3 int_nmbr2 = int(input("Enter second number: ")) 4 ----> 5 if int_nmbr1.isdigit() & int_nmbr2.isdigit() == True: 6打印(int_nmbr1,“+”,int_nmbr2,“=”,int_nmbr1 + int_nmbr2)

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

标签: python-3.x

解决方案


您正在尝试isdigitint数据类型上实现它,而它是str. 通过使用,如果您使用 base10 输入任何值,则您int(input())的输入已经是一个值。int所以你不需要使用isdigit. isdigit用于检查它是否是字符串格式的任何数字。如果您仍有任何疑问,可以检查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:”))

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


推荐阅读