所以我有一个程序,其中输入是int,但是当用户输入str时,程序崩溃了。我希望程序忽略任何不能转换为整型的str。我尝试声明一个变量,说类型(输入)。然后,我添加了一个if语句:
if (variable) == str:
print(oops)
请记住,我将输入声明为int型。所以我不知道。谢谢你。
您可以使用try-except来处理这种情况。
try:
value = int(input())
except ValueError:
print("Input is not an int type")
pass
可以使用异常。当你尝试将字符串输入转换为整型时,你会得到一个Value Error
。通过将其包含在这里的try
子句中,它告诉您,如果出现Value Error
,您可以忽略它。现在我已经使用了pass
语句,但是如果输入是字符串,您还想做其他事情,您可以在那里添加它。
try:
x = input()
value = int(x)
print(value)
except ValueError:
pass
在python中可以调用isinstance()在传递要检查的数据类型的变量上-
sent = 'your_string'
num = 24
isinstance(sent, int) # returns False
isinstance(num, int) # returns True
isinstance(sent, str) # returns True
isinstance(num, str) # returns False
适用于其他数据类型太!
所以一个简单的-
if not isinstance(str, int):
print('Only integer values accepted')
if my_input.isdigit():
int(my_input)
# your code goes here
else:
print('oops')
exit() # maybe you like to exit
你可以这样做
input_number = input("Enter your number")
if type(eval(input_number)) == int:
#Do stuff
else:
print('Sorry that is an invalid input')
我也注意到你说
还记得我把输入声明为int
吗?
Python不是静态类型的,因此您不必将变量声明为特定的数据类型,并且即使您这样做,它们的类型仍然可以更改。
您可以使用str.isnumeric()
来检查输入是否是int类型。这比使用try..except
input_number = input("enter a number: ")
if input_number.isnumeric():
input_number = int(input_number)
# do magic