Zybook 3.8实验:读取正整数到列表的代码问题求助
问题排查与修正
你的代码存在的核心问题
- 第一个输入的数字被直接丢弃,没有加入列表:第一行
user_numbers = int(input())读取的值从未被处理,直接被循环里的输入覆盖了 - 循环逻辑完全颠倒:你现在的逻辑是输入正数就终止循环,反而把负数加入列表,和题目要求完全相反
- 输出方式错误:你只打印了最后一次输入的单个值,而不是整个收集好的列表
修正后的代码
lst = [] while True: num = int(input()) if num < 0: break lst.append(num) print(lst)
代码说明
- 初始化空列表用于存储正数
- 无限循环读取输入的整数:
- 输入的数如果是负数,直接终止循环
- 如果是正数,就添加到列表中
- 循环结束后直接打印整个列表,正好符合题目要求的输出格式
测试验证
输入10、5、3、21、2、-6时,程序会收集前5个正数到列表,遇到-6终止循环,最终输出[10, 5, 3, 21, 2],完全符合预期。
内容的提问来源于stack exchange,提问作者Please Help
相关产品推荐
相关产品推荐

