输入空字符串后如何追加字典

我的代码每次都要询问姓名和年龄,当输入空字符串时,将输入的姓名和年龄放入字典中。

我所拥有的就是这个

askMore = True
dictionary = {}
while askMore:
    name = input("Name or an empty string to stop: ")
    age = int(input ("Age: "))
    if not name:
        print(dictionary)
        askMore = False
    else:
        dictionary[name] = age
        print(dictionary)

像它一样起作用,但不是它应有的方式。输入年龄后,它会打印出答案:

Name or an empty string to stop: asdg
Age: 1
{'asdg': 1}
Name or an empty string to stop: blaah
Age: 12
{'asdg': 1,'blaah': 12}

然后继续询问

Enter a name or an empty string to stop:

但是,当我输入一个空字符串时,它会打印出“输入名称或空字符串以停止:”,然后显示“年龄:”,然后显示错误。

我希望它在输入空字符串后打印出输入的姓名和年龄的整个词典,如下所示:

{'asdg': 1,'blaah': 12}

并非每次我添加姓名或年龄。

chipingguodexiaowang 回答:输入空字符串后如何追加字典

您需要在这里仔细考虑要执行的操作的顺序:

  1. 询问姓名
  2. 如果用户输入了姓名,请询问年龄
  3. 将姓名和年龄插入字典
  4. 重复步骤1到3,直到用户没有输入名称为止

这是我第一次做这件事的初稿。但是,这还不足以直接将其转换为代码,因此我们需要完善口头描述。重要的是,我们甚至在要求年龄之前都需要检查姓名。因此,让我们尝试这样做:

  1. 询问姓名
  2. 名称不为空白

    a。要求年龄

    b。在字典中插入姓名和年龄

    c。询问姓名

  3. 打印字典

在编写此代码时,我牢记while循环的工作原理,并需要在询问用户名称后立即检查while循环中的条件。另外,我们在循环结束后打印字典,而不是在每次循环迭代时打印字典。

,

看看你的逻辑:在检查是否应该停止之前,您坚持要同时读取两个值并将age转换为int。修正逻辑顺序。

name = input("Name or an empty string to stop: ")

while name:

    age = int(input ("Age: "))
    dictionary[name] = age
    print(dictionary)
    name = input("Name or an empty string to stop: ")

print(dictionary)
本文链接:https://www.f2er.com/3148802.html

大家都在问