Python: Цикл для ссылки на одну строку кода, пока не будут выполнены условия

#python-3.x

#python-3.x

Вопрос:

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

 play_num = int
play_num = input('Give me a number.')
play_num = int(play_num)   int(1)
choice1 = str
AnnoyList = []
choice1 = input ("You said "   str(play_num)   " right? ")
if (choice1.lower is "no"):
    AnnoyList.append(play_num)
    play_num = input ("Oh, sorry what was it then? ")
    AnnoyList.append(play_num)
if (choice1.lower is "yes")
  

Комментарии:

1. Почему цикл здесь не будет работать?

2. Вы пропустили нижнюю половину своего кода? if (choice1.lower is "yes") выдаст синтаксическую ошибку.

3. Вы должны узнать о циклах, прежде чем пытаться решить эту проблему. Циклы являются квинтэссенцией компьютерного программирования. Вы не можете (и не должны) узнавать о них, задавая вопрос на SO.

4. Не буду врать, я очень новичок в Python и программировании в целом, я просто не мог придумать способ заставить это работать в моей голове. Я думал о циклах while, как упоминали некоторые пользователи ниже. Просто не думал, что я на правильном пути. Нет, он не пропал, я не писал его, потому что знал, что метод, который я написал выше, никогда не пройдет, поэтому я сначала работал над этой проблемой.

Ответ №1:

Посмотрите на while циклы. Установите переменную равной True и выполняйте цикл до тех пор, пока пользователь не введет no, затем установите его равным False .

Или, если вы знаете, сколько раз вы хотите выполнить цикл, посмотрите на for циклы.

https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops

Комментарии:

1. Спасибо за ссылку на документацию!

Ответ №2:

Используйте циклы while с инструкцией break при вводе пользователем yes . Прочитайте о них здесь: Инструкции потока управления

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

 AnnoyList = []
choice1 = "no"
play_num = input('Give me a number.')
while choice1.lower()!="yes":# notice the parenthesis

    play_num = int(play_num)   (1)
    choice1 = input ("You said "   str(play_num)   " right? ")
    if (choice1.lower() == "no"):
         AnnoyList.append(play_num)
         play_num = input ("Oh, sorry what was it then? ")
  

Комментарии:

1. Потрясающе, большое вам спасибо, это многое проясняет для меня, как использовать циклы while!