Python无法将值输入到2d数组中

2022-05-21 07:41:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在二维数组中输入一些值

当我输入到arr[days][count]时,它对第一部分起作用,然而,当我第二次输入它时,while是days>1,它似乎不起作用

例如,is days是3,numcows是2,我只能将值输入到arr[1][1]中,而不能输入到arr[2][0]及以后的值

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

for days in range(1,week+1):
    count=0
    for count in range(numcows):
        while days == 1:
            arr[0][count] = float(input ("Enter cow ID"))
        ...
            arr[days][count] = daytotal
            count = count+1
            break
        while days>1:
            for count in range(numcows):
           ....
                arr[days][count] = daytotal #doesn't work 
                count = count+1
    days = days+1

我的代码怎么了


Tags: inforiscountrangecolumn数组daysrowarrweekwhile将值daytotalnumcows
1条回答
网友
1楼 ·

我不确定您想要完成什么,但是看起来您想要创建一个2D数组,其中第一行if cow ID和下一行n-1是n-1周内的奶牛数量。如果是这样的话,上面写的代码似乎是不正确的

  • 对于for循环,不需要单独的增量
  • 似乎您正在使用while循环来表示if,还记得变量吗 用于while条件必须在循环内操作

我已经编写了一个代码,将所有用户输入的值添加到2X3数组中,效果很好-

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

for days in range(1,week+1):
    for count in range(numcows):
        if days == 1:
            arr[0][count] = float(input ("Enter cow ID"))
            arr[days][count] = float(input ("Number of cows on Day " + str(days)))
        if days>1:
            arr[days][count] = float(input ("Number of cows on Day " + str(days)))