Python - 检查Chars的多个字符串值

时间:2011-03-26 04:15:20

标签: python while-loop

我知道这是我今天提出的其他问题的两倍。但这是最新的,我已经将其他内容删除了。

这是我目前的代码:

  

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个用户输入,如果它们没问题就打破循环,否则显示'错误'并重新开始循环以供用户输入。

感谢您的耐心和帮助。

2 个答案:

答案 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"