python - 如何用 Python 制作成绩计算器
问题描述
我是 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
解决方案
该input()
方法读取一个字符串,但您不能将例如转换"4 4 4 5"
为 int。不带参数的方法split()
创建字符串中的单词列表,如下所示:
"4 5 5" -> ["4", "5", "5"]
将您的输入更改为:
marks_string = input("Enter marks: ")
marks = [int(mark) for mark in marks_string.split()] # convertion to int
并改变百分比的计算:
percentage =(sum(marks) / T_marks) * 100
推荐阅读
- python - 如果元组包含标点符号,如何从列表中删除元组
- arduino - 如何将浮点值从 Arduino-UNO 发送到 ESP8266-01
- python - 如何将 Django 2.2.5 Web 框架链接到 GitHub?
- reactjs - 有没有办法不重新渲染 React 状态的某些部分?
- angular - primeNg 8 是否支持 Angular 7?
- html - 如何在Watir的HTML中返回同一类的所有元素
- c# - 如何在区分大小写的 Oracle 数据库中通过 Linq-To-Entities 强制进行不区分大小写的搜索?
- php - alpine linux 输出错误“base64: unrecognized option: w”
- java - 在java中的正则表达式上重复相同的模式?
- abap - 新的 ABAP 语法而不是 COLLECT