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

Python二维数组无法循环输入值的问题求助

问题分析与修复方案

嘿,我一眼就看到两个导致你问题的关键点,咱们一个个说:

1. 数组维度完全搞反了

你想要的是arr[days][count]——也就是第一个索引对应天数(范围是week),第二个对应奶牛数量(numcows),但你现在的初始化代码写反了:

arr = [[0 for row in range(week+1)] for column in range(numcows)]

现在这个数组的第一个维度是奶牛数量,第二个是天数,和你预期的索引逻辑完全不匹配,这直接导致你赋值的位置全错了。

2. while days == 1循环把后续逻辑全堵死了

当days=1的时候,这个while循环会一直跑(因为没有终止条件),就算你完成了第一天的输入,它也不会退出;而当days>1的时候,这个while的条件不成立,里面的输入代码根本不会执行,自然没法给arr[2][0]这类位置赋值。


修正后的可运行代码

我调整了数组维度,去掉了多余的while循环,现在能覆盖所有天数和奶牛的输入:

# 先定义好示例中的参数,你可以根据实际情况修改
week = 3
numcows = 2

# 修正数组维度:第一个维度是天数(week+1,因为days从1到week),第二个是奶牛数量
arr = [[0 for _ in range(numcows)] for _ in range(week+1)]

for days in range(1, week+1):
    for count in range(numcows):
        # 直接给对应位置赋值,不需要while循环
        arr[days][count] = float(input(f"请输入第{days}天、第{count+1}头奶牛的数据:"))

# 打印验证结果
print("最终数组:", arr)

核心修改说明

  • 数组维度修正:改成[[0 for _ in range(numcows)] for _ in range(week+1)],这样arr[days][count]就精准对应第days天、第count头奶牛的数据,和你的需求完全匹配。
  • 移除无效while循环:原来的while days ==1完全是多余的,直接让循环遍历所有天数和奶牛,就能给每个数组位置都赋值。
  • 添加输入提示:给input加了明确的提示文本,你输入的时候能清楚知道当前操作的是哪组数据,避免混乱。

这样修改后,当week=3、numcows=2时,你就能依次给arr[1][0]、arr[1][1]、arr[2][0]、arr[2][1]、arr[3][0]、arr[3][1]这些位置输入数值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:33:19