python - 如何列出用户在python中输入的所有键和值
问题描述
对于以下问题,我被困在作业上:
创建一个程序,将学生的姓名与他的班级指南相匹配。用户应该能够根据需要输入尽可能多的学生,然后打印出所有学生的姓名和成绩。输出应如下所示:
请给我学生的姓名(q 退出):[INPUT]
请给我他们的成绩(q 退出):[INPUT][等等...]
请给我学生的姓名(q 退出):> q
好的,印刷成绩!
学生成绩
学生1 A
学生2D
学生3 B
学生4 A
这是我到目前为止所做的:
def my_dict():
while True:
name=input("Please give me the name of the student (q to quit):")
grade=input("Please give me their grade:")
my_dict[name]=grade
if name=='q':
break
print("Ok, printing grades!")
print("Student\t\tGrade")
for name, grade in my_dict.items():
print("name: {}, grade: {}'.format(name, grade))
我知道这是不对的,但我不知道如何将名称和等级配对,以及如何从用户输入中打印出所有键和值。如果您愿意提供帮助,请告诉我!非常感谢
解决方案
这里有几个问题,一个是@khelwood 在评论中指出的语法错误,另一个是my_dict
一个函数和(显然)一个未定义的字典。
我也在break
添加到字典之前,否则你最终会'q'
在字典中作为一个名字(并且用户必须输入学生的等级“q”)。
您可以在函数中定义本地字典,然后将其返回,例如:
def get_dict_from_user():
user_input = {}
while True:
name = input("Please give me the name of the student (q to quit):")
if name == 'q':
break
# It is not clear if 'grade' means a letter grade (A-F) or a numerical grade (0-100).
# If you want numerical grade it may be better to do convert to int so you can do
# calculations, such as finding the average
grade = input("Please give me their grade:")
user_input[name] = grade
return user_input
grades_dict = get_dict_from_user()
print("Ok, printing grades!")
print("Student\t\tGrade")
for name, grade in grades_dict.items():
print('name: {}, grade: {}'.format(name, grade))
推荐阅读
- spring-mvc - Spring Boot RestController,在错误状态响应体上,错误消息为空
- python - 如何将 SAS Retain 函数转换为 Python
- excel - 删除使用 VBA 保存的 csv 文件末尾的空行
- c - 数组的第一个元素的地址存储在哪里?
- java - Maven找不到工件
- python - 如何使用与指定时间戳关联的值填充新列?
- sql - 反透视子查询
- javascript - 为什么将输出捕获为不同于变量的模板文字
- mysql - 如何在不使用存储过程的情况下使用 MySQL 绘制三角形星形图案?
- python - 匹配的查询不存在 - Django