生成和打印包含输入值的字典的代码输出一个不完整的字典为什么?



我试图存储5对用户输入变量(用户名&Age)放入一个字典中,并在print语句中返回该字典,但它一直输出一个只包含最后一个键值对的字典。代码中到底发生了什么?

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'}

你实际上是在一次又一次地更新相同的键。U可以使用用户名作为键,其值作为年龄。

user_info = {}
for i in range(5):
name = input('Enter name:')
age = int(input('Enter age: '))
user_info[name] = age
print('One Entry Taken!') 
print(user_info)

我认为没有必要打印年龄&每次输入后命名。输出:

{'name1': 1, 'name2': 2, 'name3': 3, 'name4':4, 'name5': 5}

python实现的方法:

user_info = {}
for i in range(5):
name, user_info[name] = input('Enter name: '), int(input('Enter age: '))
print(user_info)

我不明白在我们的逻辑中使用query_count。请详细说明。

相同的字段更新了五次。没有'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'}

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

您在user_info中更新相同的键,从而覆盖以前的输入。您应该使用list,并将单个user_info字典附加到循环中的列表中。看看下面的代码:

users = []
for i in range(5):
user_info = {}
user_info['user'] = input("user: ")
user_info['age'] = input("age: ")
users.append(user_info)
print(users)

你能详细说明query_count逻辑在你代码中的目的吗?我已经从我发布的代码片段中删除了它,如果你想要的只是获得{'user': 'x', 'age': 'y'}字典的列表,则不需要它。

最新更新