#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
условие!