首页 > 解决方案 > 重复用户输入菜单

问题描述

任务问题:

“在程序中添加一个重复菜单,询问用户在输入数字后他们希望查看哪条数据。”

我创建了一个 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.333333333333333

您想要哪个选项:

1 - 输入的最大数字

2 - 输入的最小数字

3 - 输入值的数量

4 - 输入值的总和

5 - 输入值的平均值(平均值)

0 - 退出

3

输入的值数:6

您想要哪个选项:

1 - 输入的最大数字

2 - 输入的最小数字

3 - 输入值的数量

4 - 输入值的总和

5 - 输入值的平均值(平均值)

0 - 退出

0

出口

标签: python

解决方案


只需更改您的最终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然后要求2while立即取消条件!


推荐阅读