【问题标题】:Unable to get while loop working to get min and max of numbers无法让 while 循环工作以获取最小和最大数字
【发布时间】:2020-11-22 23:06:07
【问题描述】:

在学习 python 的时候就必须这么早问问题,我觉得很愚蠢,但任务是这样的:

编写一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字。如果用户输入的不是有效数字,请使用 try/except 捕获它,并发出适当的消息并忽略该数字。输入 7、2、bob、10 和 4 并匹配下面的输出。

我还没有开始尝试/排除部分,但使用我当前的代码,它似乎只运行一次完整循环,然后卡在最大数字检查上。

largest = None
smallest = None

while True:
    num = input("Enter a number: ")
    if num == "done" : break

    if largest is None or num > largest :
        largest = num
        print("large", largest)

    if smallest is None or num < smallest :
        smallest = num
        print("small", smallest)


print("Minimum is", smallest)
print("Maximum is", largest)

我得到的输出只是将第一个数字作为最小值,将最后一个数字作为最小值。

Enter a number: 10
Enter a number: 17
Enter a number: 20
Enter a number: 3
Enter a number: 6
Enter a number: done
Minimum is 10
Maximum is 6

我很难过任何帮助将不胜感激。

【问题讨论】:

    标签: python-3.x while-loop


    【解决方案1】:

    您正在比较字符串,所以它按字典顺序排列,其中6 大于10。您需要在比较之前将数字字符串转换为实际数字:

    str_num = input("Enter a number: ")
    if str_num == "done":
        break
    num = int(str_num)  # Convert to integer
    

    【讨论】:

      猜你喜欢
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多