我写的查找int类型最大最小数的Python代码无法运行,如何解决?
代码问题分析
- 缺少多输入接收逻辑:现有代码仅执行1次
input()调用,只能获取单个输入值,完全不满足「接收多个整数」的需求。 append()方法调用逻辑错误:append()是列表对象的内置方法,正确语法为列表变量.append(待添加元素),你写的Int_num.append(numbers)是尝试给整数类型的变量调用列表方法,属于类型错误,会直接触发运行时报错。- 无输入合法性校验:如果用户输入的内容无法转换为整数,
int(num)语句会直接抛出ValueError导致程序崩溃。 - 无输入终止判断逻辑:没有规则告诉用户什么时候可以停止输入,程序无法进入后续求最大最小值的环节。
- 缺少空列表判断:如果列表中没有任何有效元素,调用
max()/min()会触发空序列报错。
修正后可运行代码
numbers = [] while True: num = input('请输入整数(输入q结束输入):') # 识别输入终止指令 if num.lower() == 'q': break # 捕获非法输入异常 try: int_num = int(num) numbers.append(int_num) except ValueError: print("输入不是合法整数,请重新输入") # 非空判断后输出结果 if numbers: print('maximum number is:', max(numbers)) print('minimum number is:', min(numbers)) else: print("未输入任何有效整数")
代码逻辑说明
- 用
while True循环实现多次输入接收,用户输入q/Q即可终止输入流程 - 修正了
append()调用逻辑,将转换后的合法整数添加到numbers列表中 - 增加
try-except异常捕获逻辑,输入非法内容时提示用户重新输入,不会直接崩溃 - 增加空列表判断逻辑,避免无有效输入时调用
max()/min()报错
内容的提问来源于stack exchange,提问作者shervin-_-k831
相关产品推荐
相关产品推荐

