【发布时间】:2019-05-11 13:45:02
【问题描述】:
我是 python 的初学者,我正在处理这个项目,该项目将打印学生的结果。除了百分比之外,我几乎完成了所有事情。看,在我的代码中,程序只会打印百分比最后一个人的分数。我需要让它单独计算每个人的百分比,然后在最后打印出来。非常感谢您的帮助。谢谢
T_marks = 1100
data = {}
while True:
ask = input("What do you want? ")
if ask == "y":
name = input("Enter your name: ")
marks = int(input("Enter marks: "))
data[name] = marks
percentage =(marks / T_marks) * 100
elif ask == "print":
for (key,value) in data.items():
print(key,"::",value)
if percentage > 90:
print("Passed with A grade")
elif percentage >= 70 and percentage < 90:
print("Passed with B grade")
elif percentage >= 60 and percentage < 70:
print("Passed with C grade")
elif percentage >= 50 and percentage < 60:
print("passed with D Grade")
else:
print("You failed")
else:
print("Your work has ended")
break
【问题讨论】:
-
我注意到
for (key,value) in data.items():行之后没有任何缩进,这意味着循环没有主体 - 因此,循环将运行直到它到达最后一项,然后控制在下一行继续。我假设key和value变量包含发生这种情况后列表中最后一项的数据。那么,你能修复你的缩进,看看问题是否仍然存在吗? -
刚刚修复了缩进...问题仍然存在。
-
请注意,
elif条件仅在前一个条件为假时才被评估。所以如果你有一个if percentage >= 90,那么elif percentage >= 70 and percentage < 90上的第二个条件将永远为真
标签: python python-3.x dictionary for-loop while-loop