в то время как сообщение выскакивает шесть раз и должно было выпрыгнуть 5 раз - PullRequest
0 голосов
/ 07 января 2019

У меня проблема с моим приложением. Когда я использую цикл while, мой запрос всплывает 6 раз, когда он показывает 5 раз.

x=0
letter=input('xxx ')

while x!=5:
    if letter in correct:
        print("yes")
        letter = input('xxx ')
    else:
        print("No")
        letter = input('xxx')
    x += 1

и мой вывод выглядит так

xxx a
yes
xxx b 
no
xxx a
yes
xxx b 
no
xxx a
yes
xxx b

я хочу, чтобы мой ххх всплывал только 5 раз, не больше. Что мне делать с этой проблемой?

Ответы [ 3 ]

0 голосов
/ 07 января 2019

Ваш цикл выполняется 5 раз (для значений x 0, 1, 2, 3, 4), но есть также вход вне цикла, следовательно, он выполняется в общей сложности 6 раз.

Попробуйте следующее:

for _ in range(5):
   letter = input('xxx ')
   if letter in correct:
       print("Yes")
   else:
       print("No")
0 голосов
/ 07 января 2019

Цикл while запрашивает 5 раз, а input перед циклом while - 1 раз. 5 + 1 = 6.

Для общего случая повторения действия n раз используйте цикл for. Также передвиньте input, чтобы проверить, правильно ли это:

n = 5 # however many times you would like to prompt for input

for _ in range(n):
    letter = input('xxx ')
    if letter in correct:
        print("Yes")
    else:
        print("No")

Кроме того, вы можете сделать его короче, хотя и немного читабельнее:

for _ in range(n):
    print("Yes" if input('xxx ') in correct else "No")

Выход:

In [1]: n = 5
   ...: correct = 'a'
   ...:
   ...: for _ in range(n):
   ...:     print("Yes" if input('xxx ') in correct else "No")
   ...:
xxx a
Yes
xxx b
No
xxx a
Yes
xxx b
No
xxx c
No
0 голосов
/ 07 января 2019

Ваш цикл while запрашивает ввод 5 раз, но вы также запрашиваете ввод перед циклом, таким образом делая 6 раз.

Я бы также предложил использовать цикл for для повторения действий:

for _ in range(5):
    if letter in correct:
        print("yes")
        letter = input('xxx ')
    else:
        print("No")
        letter = input('xxx')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...