Как я могу закончить цикл самостоятельно? - PullRequest
1 голос
/ 11 апреля 2019

Я изучаю Python. Я пытаюсь создать программу, которая будет рассчитывать мой окончательный счет в колледже. У меня вопрос, могу ли я закончить цикл if самостоятельно? Например. Я хочу, чтобы моя программа повторила вопрос «Хотите ли вы добавить оценку?» , если вопрос «да» и как только ответ нет , я хочу, чтобы моя программа оставила эту часть моего кода.

Какой самый простой способ сделать это?

noten = [] #list for grades
lp = []    #list for the weight of my different grades
p_antwort = ['y', 'yes'] #p_antwort = positive answer
n_antwort = ['n', 'no']  #n_antwort = negative answer

txt = input("Do you want to add a grade? y/n ")
if txt in p_antwort:
   i = input("What grade did you get? ")
   noten.extend(i)
   txt_2 = input("Do you want to add another one? y/n")
   if txt_2 in p_antwort:
        i = input("What grade did you get? ")
        noten.extend(i)

Ответы [ 3 ]

2 голосов
/ 11 апреля 2019

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

Например:

done = False

while not done:
    # do stuff
    done = input("Want to add another? (y/n)") == "n"

Или вы можете использовать keep_going переменную и делать в основном противоположность приведенному выше коду.

0 голосов
/ 11 апреля 2019

Вы можете сделать это с помощью цикла while.

Сначала вам нужно создать переменную text для цикла while

text = ""
text = input("Do you want to add a grade? y/n ")
while text != "n":
   if txt in p_antwort:
      # do some stuff
   text = input("Do you want to add a grade? y/n ")

Я думаю, что это должно работать

0 голосов
/ 11 апреля 2019

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

grades = [] 

txt = input("What grade did you get? Enter 'quit' to exit: ")
while txt != 'quit':
    grades.append(txt)
    txt = input("What grade did you get? Enter 'quit' to exit: ")

print(grades)

Пример взаимодействия

Какую оценку вы получили? Введите «выйти», чтобы выйти: A

Какую оценку вы получили? Введите «выйти», чтобы выйти: B

Какую оценку вы получили? Введите «выйти», чтобы выйти: C

Какую оценку вы получили? Введите «выйти», чтобы выйти: D

Какую оценку вы получили? Для выхода введите 'quit': выход

['A', 'B', 'C', 'D']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...