Python不使用列表获取用户输入数字,输入-1停止时求最大最小值的方法
不使用列表实现循环输入数字求最大最小值解决方案
原代码问题点
max、min变量初始化放在了循环内部,每次输入新数字都会覆盖之前的最大值、最小值记录,无法累计对比- 数值对比、计数的逻辑写在了while循环外部,循环运行时不会执行这部分代码,逻辑完全失效
- 终止符-1被纳入了最大最小值的计算范围,不符合需求
- 语法错误:
break后多余冒号,变量count无实际作用 - 使用内置函数名
max、min作为变量名,会覆盖Python原生方法,属于不规范写法
修正后可运行代码
# 初始化最大、最小值为None,用于判断是否是第一次输入有效数字 max_num = None min_num = None while True: number = int(input("number:")) # 输入-1直接终止循环 if number == -1: break # 第一次输入有效数字时给max、min赋值 if max_num is None: max_num = number min_num = number else: # 后续输入对比更新 if number > max_num: max_num = number if number < min_num: min_num = number # 循环结束后输出结果,增加未输入有效数字的兼容判断 if max_num is not None: print(f"max:{max_num}") print(f"min:{min_num}") else: print("未输入有效数字")
逻辑说明
- 不需要额外的计数变量,直接用死循环+
break处理终止逻辑即可 - 终止符-1不会参与最大最小值的计算,符合需求
- 额外兼容了用户直接输入-1、没有输入有效数字的场景,避免报错
内容的提问来源于stack exchange,提问作者user17097848
相关产品推荐
相关产品推荐

