用户输入字母时输入失败.我想检查一下,确保他们输入了号码



嗨,我正在尝试检查用户是否输入了一个字母,然后让他们知道这是一个字母并且他们需要输入一个数字。

每当发生这种情况时,它总是给我一个错误,我知道这可能是因为我试图将int转换为字符串,但我无法解决这个问题。

我想下面的代码会检查它是否是一个数字输入,并根据他们输入的内容使其失败或通过。然而,它似乎不起作用。

这附近有没有。

def weapons_(numguns,numknifes,numbombs,numswords):
print(numguns)
aaa = int(str(input("""Enter you're number accordinly to the list above:""")))
while True:
try:
number = int(aaa)
print("this is a num, thank you")
break
except ValueError:
print("this is not a number, please try again")

if aaa <= 50:
print (x)
elif aaa <= 100:
print (y)
elif 101 <= 150:
print (m + p)
elif 151 <= 200:
print (z)

weapons_("numguns","numknifes","numbombs","numswords")

试试这个函数:

def isNum (var): 
flag = True
while (flag):
try:
val = int(var)
flag = False
except ValueError:    
var = input("No.. input is not a number! Please enter a number: ")
return int(var)

它一直要求一个数字,直到输入值是int。它最终返回值作为输出。

以下是输出的示例屏幕截图:样品

试试这个代码。我把变量x,y,m,p,z放在引号里,因为它们没有定义。既然你已经将aaa转换成了一个数字,你就不应该再使用aaa来与(50、100等(进行比较,而应该使用可变数字。此外,如果强制转换失败,代码将显示异常消息,并要求使用新号码。

while True:
try:
aaa = input("""Enter you're number accordinly to the list above:""")
number = int(aaa)
print("this is a num, thank you")
if number <= 50:
print ("x")
elif number <= 100:
print ("y")
elif 101 <= 150:
print ("m + p")
elif 151 <= 200:
print ("z")
break
except ValueError:
print("this is not a number, please try again")

尝试使用regex

import re
def checkInt(string):
ex = re.compile(r'[1-9][0-9]*')
return bool(ex.match(string))

你可以像这个一样使用这个功能

aaa = input("""Enter you're number accordinly to the list above:""")
if checkInt(aaa): aaa = int(aaa)
else:
print('Not a Integer')
exit()
# the code you posted on the question

相关内容

最新更新