2016-03-28 2 views
0

ПроблемаВзломать время цикла без перерыва о

Как я могу остановить цикл с просьбой «Input строку» снова без перерыва? Благодарю.

Код

# Remove Break 
def main(): 
    inp = 0 
    while inp <= 0: 
     inp = int(input("Enter Number: ")) 
     if inp > 0: 
      string = "" 
      while string != "you" or string != "me": 
       string = input("Input string: ") 
       if string == "you": 
        stringYou(inp) 
        break 
       elif string == "me": 
        stringMe(inp) 
        break 

def stringYou(inp): 
    sentence = "I love You" 
    print(sentence * inp) 
def stringMe(inp): 
    sentence = "You love Me" 
    print(sentence * inp) 
main() 
+0

Что случилось с использованием перерыв? Вы также можете сообщить пользователю, если inp <= 0 и использовать 'while s not in (" you "," me ")', поэтому цикл завершается, если пользователь вводит любую строку –

ответ

0
while string != "you" or string != "me": 

Условием здесь является tautology означает, что он всегда будет истинным.

Есть три интересных случая для вашей переменной string здесь:

  1. string равно "you". Первое условие string != "you", очевидно, неверно. Второй, однако, не является: string != "me". string - "you", который не равен "me". Итак false or true дает вам true.
  2. string соответствует "me". По тем же соображениям, за исключением обратного порядка, мы получаем true or false, который также является true.
  3. string что-то еще. Оба эти условия являются истинными, поэтому true or true дает true.

Таким образом, условие всегда верно, и условие while никогда не останавливается само по себе. Поэтому вам нужно сломаться, чтобы выбраться из него.

Исправление просто исправить свои условия, чтобы они имеют смысл, и цикл правильно заканчивается сам по себе:

while string != "you" and string != "me": 

Обратите внимание на and: Теперь, цикл продолжается только тогда, когда string является ни"you" ни "me". Это эквивалентно логике разрыва, где вы остановили итерацию, когда строка стала любой из этих строк.

Так теперь выглядит следующим образом:

string = '' 
while string != "you" and string != "me": 
    string = input("Input string: ") 
    if string == "you": 
     stringYou(inp) 
    elif string == "me": 
     stringMe(inp) 
Смежные вопросы