如何列出用户的所有键和值';python中的输入

如何列出用户的所有键和值';python中的输入,python,Python,我被以下问题的家庭作业困住了: 创建一个程序,将学生的姓名添加到他的课堂指南中。用户应该能够根据需要输入尽可能多的学生,然后打印出所有学生的姓名和成绩。输出应如下所示: 请给我学生的名字(q退出):[输入] 请给我他们的分数(q退出):[输入] [等等……] 请告诉我学生的名字(q退出):>q 好的,打印成绩 学生成绩 学生1A 学生2D 学生3 B 学生4 A 以下是我迄今为止所做的工作: def my_dict(): while True: name=input(

我被以下问题的家庭作业困住了:

创建一个程序,将学生的姓名添加到他的课堂指南中。用户应该能够根据需要输入尽可能多的学生,然后打印出所有学生的姓名和成绩。输出应如下所示:

请给我学生的名字(q退出):[输入]
请给我他们的分数(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!我结合了您的两个答案,以更清晰的输出完成了此练习!新年快乐!