这是问题:
一位教授觉得考试成绩有点低。教授决定给70分以下的学生加8%的学分,给70分以上的学生加5%的学分。编写一个 Python 程序:
将分数存储在列表中,并打印初始分数,并显示一条消息:
分数 = [73.75, 39.45, 72.60, 45.50, 82.75, 97, 54.50, 48.00, 96.50 ]
使用循环,处理每个分数以计算新分数并将其存储在同一个列表中。您不能更改列表的顺序,因为分数对应于班级名册。
添加额外学分后,将每个新分数截断为不超过 100。
打印新乐谱列表,并附上一条短消息
您不能在您的程序中使用多个列表。
您的程序必须处理任意长度的列表。上面的列表仅用于您的程序测试。
我的代码:
#this code shows old scores and prints the new scores of students
position = 0 #initialize position for later
scores = [73.75, 39.45, 72.60, 45.50, 82.75, 97, 54.50, 48.00, 96.50 ]
print ("\nThese are the old scores: ", scores)
for score in scores:
if score < 70:
score *= 1.08
elif score >= 70:
score *= 1.05
scores.insert (position,float(format(score,".2f"))) #this adds the new score into position
position += 1
scores.pop (position) #this removes the old score which was pushed to +1 position
for position, score in enumerate(scores):
if score > 100:
scores[position] = 100
print ("These are the new scores:", scores)
他希望我不要使用 .pop 或 enumerate 之类的东西,并说有一种更简单的方法可以做到,但我想不出一个方法。请帮忙!
GCT1015
白猪掌柜的
相关分类