如何编写if语句来检查输入是否是str/int类型?



基本上我是python编程的新手,我刚刚了解了用户输入。我试图使一个if语句,检查如果输入是一个str或int,然后打印一个消息。如果有人知道怎么做,请评论,谢谢。

print("How old are you?")
dog = input()
final = int(dog) + int(100)
if dog == str:
print("No")
else:
print("nHeres you name + 100!")
print(f"{final}")
print("Thanks for playing!")

顺便说一句,我放的if语句不工作,我不知道我是否需要放一个异常,所以它的响应不是一个错误消息。

关于如何检查类型,您可以这样做:

my_string = "hello"
if isinstance(my_string, str):
print("I'm a string")
else:
print("I'm not")
# outputs: "I'm a string"

但是,如前所述,输入法总是返回str类型的值。因此,如果您想确保该值仅由数字字符组成,您可以使用字符串方法isdigit()

my_string = "asd"
my_string.isdigit() # returns False
my_string = "123"
my_string.isdigit() # returns True

我将使用type方法来检查:

print("How old are you?")
dog = input()
final = int(dog) + int(100)
#use type method to check the type of the variable
if type(dog) == str:
print("No")
else:
print("nHeres you name + 100!")
print(f"{final}")
print("Thanks for playing!")

你可以做的另一件事是设置阻止用户输入除int以外的任何内容,并强制使用适当的变量,例如:

while True:
dog = input('How old are you? ')
try:
dog = int(dog)
break
except ValueError:
print('No')
final = dog + 100
print("nHeres you name + 100!")
print(f"{final}")
print("Thanks for playing!")

另外,不要浪费处理能力,将int转换为int,这意味着int(100)100相同

最新更新