You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zybook 3.8实验:读取正整数到列表的代码问题求助

问题排查与修正

你的代码存在的核心问题

  • 第一个输入的数字被直接丢弃,没有加入列表:第一行user_numbers = int(input())读取的值从未被处理,直接被循环里的输入覆盖了
  • 循环逻辑完全颠倒:你现在的逻辑是输入正数就终止循环,反而把负数加入列表,和题目要求完全相反
  • 输出方式错误:你只打印了最后一次输入的单个值,而不是整个收集好的列表

修正后的代码

lst = []
while True:
    num = int(input())
    if num < 0:
        break
    lst.append(num)
print(lst)

代码说明

  1. 初始化空列表用于存储正数
  2. 无限循环读取输入的整数:
    • 输入的数如果是负数,直接终止循环
    • 如果是正数,就添加到列表中
  3. 循环结束后直接打印整个列表,正好符合题目要求的输出格式

测试验证

输入10、5、3、21、2、-6时,程序会收集前5个正数到列表,遇到-6终止循环,最终输出[10, 5, 3, 21, 2],完全符合预期。

内容的提问来源于stack exchange,提问作者Please Help

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:32:20