Python - проверка нескольких строковых значений для символов - PullRequest
0 голосов
/ 26 марта 2011

Я знаю, что это вдвое больше других вопросов, которые я задавал сегодня.Но это самое актуальное, и я вставил для удаления других.

Это мой код в настоящее время:

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'

Я смог использовать 'если есть ((c в символах) для c в Class_A_Input) 'когда есть только 1 пользовательский ввод за раз.

Есть ли способ проверить с помощью этого вида метода все 3 пользовательских ввода и разорвать цикл, если они в порядке, в противном случае отобразить'Неправильно 'и начните цикл заново для ввода пользователем.

Спасибо за ваше терпение и помощь.

Ответы [ 2 ]

2 голосов
/ 26 марта 2011

Я думаю, что вы хотите проверить, имеет ли ввод пользователей цифровой номер, если это правильно, тогда вы можете использовать

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 голос
/ 26 марта 2011

Это будет работать.

try:
   int(Class_A_Input)
   int(Class_B_Input)
   int(Class_C_Input)
   break
except ValueError:
   print "Wrong"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...