使用Python v2.x,我想让用户询问3个变量,如下所示:
def Main():
chars = set('0123456789')
while True:
Class_A_Input = raw_input('Enter Class A tickets sold: ')
Class_B_Input = raw_input('Enter Class B tickets sold: ')
Class_C_Input = raw_input('Enter Class C tickets sold: ')
if any((c in chars) for c in Class_A_Input):
break
else:
print 'Wrong'
total_profit((int(Class_A_Input)), (int(Class_B_Input)), (int(Class_C_Input)))
如何检查用户输入是否为有效输入。 IE:我只想输入数字数据。在使用'chars = set('0123456789')和'WHILE'函数之前,我已经完成了一次,但似乎无法让它适用于多个输入。
感谢您的帮助。
编辑:我已经把代码放进去了。我将'int'移动到'total_profit'变量。如何检查所有输入?答案 0 :(得分:2)
def getInt(msg):
while True:
try:
return int(raw_input(msg))
except ValueError:
pass
def total_profit(a, b, c):
return 35.0*a + 25.0*b + 10.0*c
def main():
class_a = getInt('Enter Class A tickets sold: ')
class_b = getInt('Enter Class B tickets sold: ')
class_c = getInt('Enter Class C tickets sold: ')
print("Total profit is ${0:0.2f}.".format(total_profit(class_a, class_b, class_c)))
if __name__=="__main__":
main()
答案 1 :(得分:1)
Python有很多漂亮的功能。这是我认为可以帮助你的一个:
> 'FooBar'.isdigit()
> False
> '195824'.isdigit()
> True
答案 2 :(得分:1)
对非有效整数的内容调用int
会引发ValueError
异常。您可以抓住这一点 - 每次调用int
时,如果您想要识别哪个输入无效,或者在所有三个输入中使用单个try
。
或者你想要的其他限制超出了那个范围吗?