首页 > 解决方案 > 制作和打印包含输入值的字典的代码输出不完整的字典;为什么?

问题描述

我正在尝试将 5 对用户输入变量(用户名和年龄)存储到字典中,并在打印语句中返回该字典,但它一直输出只有最后一个键值对的字典。导致这种情况发生的代码中发生了什么?

query_count= 0
user_info = {}
for i in range (5):
    query_count = 0
    user_info = {}
    user_info['user'] = input("user: ")
    user_info['age'] = input("age: ")
    query_count += 1
    if query_count < 5:
        continue
print(user_info)

示例输出:

{'user': 'Jamie', 'age': '42'}

标签: pythondictionaryinputconditional-statements

解决方案


您将相同的字段更新五次。没有“i”的引用可以告诉字典进行迭代。字典也有键值对。您不能多次拥有一把钥匙。而不是你应该有像 "name":"age" 这样的条目说 "abc":"23"

试试下面的代码:

user_info = {}
for i in range (5):
    name = input("user: ")
    print(name)
    age = input("age: ")
    print(age)
    user_info[name] = age
print(user_info)

输出:{'a': '1', 'b': '2', 'c': '3', 'd': '4', 'e': '5'}

请注意,如果您输入重复的名称,则字典中的条目将被替换。


推荐阅读