Повторяющееся меню пользовательского ввода

#python

#python

Вопрос:

Вопрос задачи:

» добавьте в программу повторяющееся меню, чтобы спросить пользователя, какую часть данных он хочет просмотреть после ввода цифр».

Я создал цикл while, который успешно распечатал первую часть меню, максимальное значение. однако при вводе «2» после цикла для минимального значения число не отображается, зацикливается только строка меню

 annoyinglist = []
count = 0

while True:
    a = input ("Enter a number: ")
    if a == "":
            break
    else:
        a = int (a)
        annoyinglist.append (a)
        count = count   1



b = 1

while b == int(input("Which option would you like: n 1 - The biggest number entered n 2 - The smallest number entered n 3 - Number of values entered n 4 - Total of values entered n 5 - Average (mean) of values entered n 0 - Exit n ")):
    if b == 1:
        print (max(annoyinglist))
    if b == 2:
        print (min(annoyinglist))
  

В соответствии с задачей, результаты должны выглядеть следующим образом:

> Введите серию чисел:

5

3

7

4

5

8

>

Какой вариант вы хотели бы:

1 — Наибольшее введенное число

2 — наименьшее введенное число

3 — Количество введенных значений

4 — Общее количество введенных значений

5 — Среднее введенных значений

0 — Выход

5

Среднее введенных значений: 5.33333333333333333

Какой вариант вы хотели бы:

1 — Наибольшее введенное число

2 — наименьшее введенное число

3 — Количество введенных значений

4 — Общее количество введенных значений

5 — Среднее введенных значений

0 — Выход

3

Количество введенных значений: 6

Какой вариант вы хотели бы:

1 — Наибольшее введенное число

2 — наименьшее введенное число

3 — Количество введенных значений

4 — Общее количество введенных значений

5 — Среднее введенных значений

0 — Выход

0

Выход

Ответ №1:

Просто измените свой последний while цикл:

 annoyinglist = []
count = 0

while True:
    a = input ("Enter a number: ")
    if a == "":
            break
    else:
        a = int (a)
        annoyinglist.append (a)
        count = count   1


while True:
    b_str = input("Which option would you like: n 1 - The biggest number entered n 2 - The smallest number entered n 3 - Number of values entered n 4 - Total of values entered n 5 - Average (mean) of values entered n 0 - Exit n ")

    b = int(b_str if b_str else 0) #so that an empty string stops the loop

    if b == 1:
        print (max(annoyinglist))
    elif b == 2:
        print (min(annoyinglist))
    else:
        break
  

Проблема заключалась в следующем: начиная с b=1 , а затем запрашивая 2 , вы немедленно выполняете while условие!