Работа вокруг Python для 'Goto' - PullRequest
0 голосов
/ 04 марта 2011

На данный момент у меня есть проверка, есть ли в строке определенные символы.

Я пытаюсь найти способ обойти функцию 'Goto'.

Вот что у меня сейчас:

chars = set('0123456789$,')

if any((c in chars) for c in UserInputAmount):
    print 'Input accepted'
else:
    print 'Invalid entry. Please try again'

Мне просто нужен Python, чтобы вернуться к строковому вводу UserInputAmount, если запись недействительна. Пуш в правильном направлении был бы признателен.

Ответы [ 4 ]

6 голосов
/ 04 марта 2011

Вам не нужно идти, вам просто нужен цикл. Попробуйте это, которое зациклится навсегда, если пользователь не предоставит действительный ввод:

chars = set('0123456789$,')

while True: # loop "forever"
    UserInputAmount = raw_input() # get input from user

    if any((c in chars) for c in UserInputAmount):
        print 'Input accepted'
        break # exit loop

    else:
        print 'Invalid entry. Please try again'
        # input wasn't valid, go 'round the loop again
2 голосов
/ 04 марта 2011

рифф на бена:


>>> chars = set('1234567')
>>> while not any((c in chars) for c in raw_input()):
...  print 'try again'
... else:
...  print 'accepted'
... 
abc
try again
123
accepted
2 голосов
/ 04 марта 2011

Небольшая техника, которую мы использовали, чтобы вызывать «чтение при заправке», когда я выучил Паскаль:

chars = set('0123456789$,')

UserInputAmount = raw_input("Enter something: ")
while not any((c in chars) for c in UserInputAmount):
    UserInputAmount = raw_input("Wrong! Enter something else: ")
print "Input accepted."
0 голосов
/ 04 марта 2011
goodEntry = False
first = True
chars = frozenset("abc")  #whatever
validateEntry = lambda x: any( (c in chars) for c in inString)

while not goodEntry:
    if not first: print "Invalid input"
    first = False
    print "Enter input: "
    inString = raw_input()
    goodEntry = validateEntry(inString)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...