Python实现列表仅接受整数输入、非整数报错,回车输出降序列表
问题修复方案
现有代码错误点
- 未对输入内容做整数校验就直接追加到列表,存储的是字符串而非整数
- 循环内每次都执行
map(int, myint)转换,只要列表中存在非整数字符串就会直接抛出类型转换异常 - 调用了Python列表不存在的
isInteger()方法,会触发属性错误 - 排序逻辑放置位置错误,不需要每次循环都执行排序,仅需在输入结束后执行一次即可
正确实现代码
myint = [] while True: input_str = input("Enter an integer: ") # 判空:用户直接回车则结束输入 if input_str == "": myint.sort(reverse=True) print(f"sorted list: {myint}") break # 异常捕获实现整数校验 try: input_num = int(input_str) except ValueError: print(f"{input_str} is not an integer. Try again.") continue myint.append(input_num)
核心逻辑说明
- 用
try...except ValueError捕获整数转换失败的异常,触发时输出对应提示,跳过后续追加逻辑直接进入下一轮输入 - 仅当输入内容可以成功转换为整数时,才将转换后的整数追加到列表
- 用户直接回车输入空字符串时,先对列表做降序排序,再输出结果结束流程
内容的提问来源于stack exchange,提问作者Jaymar
相关产品推荐
相关产品推荐

