0
我的教授让我做一个二维程序来计算一个学生的平均水平。现在他说他希望我把我的努力工作变成一个一维程序,我不知道该怎么做,有什么帮助?如何将二维程序转化为一维?
import sys
students = []
grades = []
while True:
student = input ("Enter a name: ").replace(" ","")
if student.isalpha() == True and student != "0":
while True:
grade = input("Enter a grade: ").replace(" ","")
if grade == "0" or grade == 0:
print ("\n")
print ("A zero is entered.")
sys.exit(0)
if grade.isdigit()== True:
grade = int(grade)
if grade >= 1 and grade <= 10:
if student in students:
index = students.index(student)
grades[index].append(grade)
break
else:
students.append(student)
grades.append([grade])
break
else:
print("Invalid grade.")
elif student == "0":
print("A zero is entered.")
break
else:
print ("Invalid name.")
for i in range(0,len(students)):
print("NAME: ", students[i])
print("GRADE: ", grades[i])
print("AVERAGE: ", round(sum(grades[i])/len(grades[i]),1), "\n")
例如,现在它打印出:
NAME: Jack
GRADE: [8, 7, 9]
AVERAGE: 8.0
但我需要它来打印出这样的:
NAME: Jack
GRADE: 8, 7, 9
AVERAGE: 8.0
他解释了什么“二维程序”的含义?我从来没有见过它使用过,也不知道它的含义。 – KSFT 2015-04-03 01:47:41
@KSFT据我所知,他希望程序打印出简单的数字,例如'8,9,7',因为现在它会打印出[[8] [9] [7]'并使用一个函数来删除[]并不是一种显而易见的方式。 – Acu 2015-04-03 01:50:04
我的猜测是,2个数组''学生,成绩''可以变成1个包含''name,grade''条目的记录数组(或者它被称为python)。 – BitTickler 2015-04-03 01:51:00