好吧,这是关于csv文件和循环的最后一个问题。
所以我想循环执行以下操作。
这是我列出的学生的csv文件。
['Needie Seagoon', '57', '', '83', '55', '78', '', '91', '73', '65', '56', '', '', '']
['Eccles', '', '98', '91', '80', '', '66', '', '', '', '77', '78', '48', '77']
['Bluebottle', '61', '', '88', '80', '60', '', '45', '52', '91', '85', '', '', '']
['Henry Crun', '92', '', '58', '50', '57', '', '67', '45', '77', '72', '', '', '']
['Minnie Bannister', '51', '', '97', '52', '53', '', '68', '58', '70', '69', '', '', '']
['Hercules Grytpype-Thynne', '', '78', '62', '75', '', '67', '', '', '', '48', '56', '89', '67']
['Count Jim Moriarty', '51', '', '68', '51', '66', '', '55', '72', '50', '74', '', '', '']
['Major Dennis Bloodnok', '', '54', '47', '59', '', '48', '', '', '', '66', '58', '53', '83']
然后我有了另一个csv文件,其中包含每个课程的最高分数:
CITS1001 95
CITS1401 100
CITS1402 97
CITS2002 99
CITS2211 94
CITS2401 95
CITS3001 93
CITS3002 93
CITS3003 91
CITS3200 87
CITS3401 98
CITS3402 93
CITS3403 88
所以我想做的并且一直在努力实现的目标是尝试将每个学生的分数除以课程的最高分数。
因此,对于每个学生,该值都是水平的,我希望它被垂直除以另一个值的值。
例如:
['Needie Seagoon','57','','83','55','78','','91','73','65','56','', ”,“]
我想要57/95,跳过,83 / 100、55 / 97 ...你知道我要去的地方吗?
我想对文件中的每个名称执行此操作。某些人可能对这段代码很熟悉,但是我知道我做错了什么。
def normalise(students_file, units_list):
file1 = open(students_file, 'r')
data1 = file1.read().splitlines()
file2 = open(units_list, 'r')
data2 = file2.read().splitlines()
for line in data1:
line = line.split(",")
for row in data2:
row = row.split(",")
for n in range(1, len(row), 2):
for i in range(1, len(line), 1):
if line[i] == '' :
pass
else:
answer = int(line[1]) / int(row[n])
file1.close()
file2.close()
我将向您展示一些输出(持续很长时间)。
输出:
0.6
none
0.8736842105263158
0.5789473684210527
0.8210526315789474
none
0.9578947368421052
0.7684210526315789
0.6842105263157895
0.5894736842105263
none
none
none
0.57
none
0.83
0.55
0.78
none
0.91
0.73
0.65
0.56
none
none
我知道我有readline(),但是当我做readlines()时,我不能剥离/ n,因为它不允许我这样做,并且end =''使代码混乱。此输出表明,students行中的每个值都将除以95,然后循环回到起始位置,并将每个值都循环乘以100,依此类推。如何将第一个值除以95,再除以100,依此类推。
很抱歉,冗长的解释/问题,但我被告知要进一步解释自己。
谢谢。