我知道这是我今天提出的其他问题的两倍。但这是最新的,我已经将其他内容删除了。
这是我目前的代码:
def Main():
chars = set('0123456789')
而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'
当一次只有一个用户输入时,我已经能够使用'if any((c in class_A_Input)中的c)。
有没有办法检查这种方法,所有3个用户输入,如果它们没问题就打破循环,否则显示'错误'并重新开始循环以供用户输入。
感谢您的耐心和帮助。
答案 0 :(得分:2)
我想你想检查一下用户的输入是否有数字,如果是的话, 然后你可以使用
import re
def hasDigit(s):
return not not re.search("\d", s)
def Main():
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 all([hasDigit(Input) for Input in [Class_A_Input, Class_B_Input, Class_C_Input]]):
break
else:
print 'Wrong'
答案 1 :(得分:1)
这样可行。
try:
int(Class_A_Input)
int(Class_B_Input)
int(Class_C_Input)
break
except ValueError:
print "Wrong"