如何列出用户的所有键和值';python中的输入
我被以下问题的家庭作业困住了: 创建一个程序,将学生的姓名添加到他的课堂指南中。用户应该能够根据需要输入尽可能多的学生,然后打印出所有学生的姓名和成绩。输出应如下所示: 请给我学生的名字(q退出):[输入]如何列出用户的所有键和值';python中的输入,python,Python,我被以下问题的家庭作业困住了: 创建一个程序,将学生的姓名添加到他的课堂指南中。用户应该能够根据需要输入尽可能多的学生,然后打印出所有学生的姓名和成绩。输出应如下所示: 请给我学生的名字(q退出):[输入] 请给我他们的分数(q退出):[输入] [等等……] 请告诉我学生的名字(q退出):>q 好的,打印成绩 学生成绩 学生1A 学生2D 学生3 B 学生4 A 以下是我迄今为止所做的工作: def my_dict(): while True: name=input(
请给我他们的分数(q退出):[输入] [等等……] 请告诉我学生的名字(q退出):>q 好的,打印成绩 学生成绩 学生1A 学生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
既是一个函数,也是(显然)一个未定义的词典
在添加到字典之前,我还将中断
,否则您将在字典中以'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))
您在最后一行中混淆了
“
和”
。您的函数可以轻松地返回用户输入的值,但用于存储值的变量不能与函数本身同名。@khelwood更糟糕的是,my_dict
既是一个函数,也是一个(显然)变量但是现在当你进入循环时,name
是未定义的。@tripleee fixed赋值似乎需要列输出,所以可能print({0}\t\t{1})。format(name,grade))
@tripleee这由OP决定。我的答案显示了如何修复OPs代码中的实际错误,而不是如何很好地格式化输出(该OP甚至没有提到)(而且,还有更好的方法获得表格输出)感谢tripleee和DeepSpace!我结合了您的两个答案,以更清晰的输出完成了此练习!新年快乐!