以3D数组输入

时间:2018-11-24 09:21:29

标签: python python-2.7 multidimensional-array

我是python的初学者。这是我用C语言编写的代码。我正在尝试将其转换为python。

int arr[studentCount][subjectCount][2];
const int DISTINCTION = 4;
const int FIRST_DIVISION = 3;
const int SECOND_DIVISION = 2;
const int PASS_CLASS = 1;
const int FAIL = 0;

for(int i=0 ; i<studentCount ; i++) {
    for(int j=0 ; j<subjectCount ; j++) {
        //taking input in i,j,0
        printf("Enter marks of student %d subject %d - ",i+1,j+1);
        scanf("%d",&arr[i][j][0]);

        //logic of result
        //giving grades in i,j,1 based on the marks entered in i,j,0
        if(arr[i][j][0]>=70)
            arr[i][j][1]=DISTINCTION;
        else if(arr[i][j][0]>=60)
            arr[i][j][1]=FIRST_DIVISION;
        else if(arr[i][j][0]>=50)
            arr[i][j][1]=SECOND_DIVISION;
        else if(arr[i][j][0]>=40)
            arr[i][j][1]=PASS_CLASS;
        else
            arr[i][j][1]=FAIL;

    }
}

这是我到达的地方,但无法理解如何在3d数组中输入输入

arr = np.zeros((studentCount,subjectCount,2));
print arr;
for (i in range(studentCount)):
    for(j in range(subjectCount)):
        #taking input in the arr

在代码中,我基本上是在subjectCount科目中输入studentCount学生的分数,然后根据分数为其分配等级。因此,在这里我不想一行输入,而我搜索的all the previous answers显示了一行中的输入。如果这样做,我将按用户输入成绩,因此违反了代码的目的。 请帮忙!

1 个答案:

答案 0 :(得分:0)

您要使用Python input()。 您可以在代码中执行以下操作:

import numpy as np

arr = np.zeros((studentCount,subjectCount,2))
print arr
for i in range(studentCount):
    for j in range(subjectCount):
        arr[i][j][0] = input("Enter marks of student %d subject %d:" % (i, j))