当输入为int()时,Python不能忽略str



所以我有一个程序,其中输入是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

相关内容

  • 没有找到相关文章

最新更新