2015-02-16 4 views
0

В моем коде Python у меня есть часть, где я хотел бы многократно печатать вопрос, если он не соответствует тому, что я хочу.Как петля на Python 3.4.2?

name1 = input("A male name (protagonist): ") 
    if name1.endswith (('ly', 's')): 
     print("Sorry mate, this doesn't seem to be a proper noun. Try it again.") 
     name1 = input("A male name (protagonist): ") 

Как сделать его повторно распечатывать имя1, если оно заканчивается на «ly» или «s»?

+0

Это очень просто: измените 'if' на 'while'. Вы действительно не знакомы с циклами? Если это так, вы можете инвестировать в руководство для начинающих Python или общее введение в программирование. – zwol

+2

Кроме того, я могу думать о нескольких мужских именах, которые заканчиваются «s» и «ly». – zwol

ответ

1

Я думаю, что это то, что вы после:

while True: 
    name1 = input("A male name (protagonist): ") 
    if name1.endswith(('ly', 's')): 
     print("Sorry mate, this doesn't seem to be a proper noun. Try it again.") 
     continue 
    break 

print("Input name is:", name1) 

Это будет цикл снова, пока if name1.endswith(('ly', 's')) верно.

+0

@AvinashRaj Это не будет. 'if name1.endswith (('ly', 's'))' должно быть истинно для 'continue' для выполнения. – Marcin

1

Вы можете использовать петлю while. В то время как циклы будут непрерывно выполнять что-либо, пока это заданное условие истинно.

Если вы не хотите, имя, которое заканчивается ly или s, вы можете сделать while петли следующим образом:

while True: 
    name1 = input("A male name (protagonist): ") 
    if name1.endswith ('ly', 's'): 
     print("Sorry mate, this doesn't seem to be a proper noun. Try again. ") 
    else: 
     break # This will exit the loop, when you have a name that doesn't satisfy the condition above 

Следует также отметить, что, поскольку if заявление было удовлетворено, он будет перезагружен петля. Как только имя не заканчивается ly или s, оно переместится в блок else, который выйдет из цикла. Обратите внимание, что break - это слово, которое вытесняет из цикла.

+0

Не могли бы вы выписать код с этим циклом? –

+0

Вот оно! Готово! :) – Zizouz212

Смежные вопросы