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

2024-05-27 12:15:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码每次都需要输入姓名和年龄,当输入一个空的sting时,输入的姓名和年龄会被放入字典中

我所拥有的只是:

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:

但当我输入一个空字符串时,它会打印出“输入一个名称或一个要停止的空字符串:”然后是“Age:”,然后是一个错误

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

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

不是每次我加上名字或年龄


Tags: ortonameanagestringdictionaryempty
2条回答

看看你的逻辑:你坚持在检查是否该停止之前读取两个值并将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)

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

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

这是我关于如何做这件事的第一份草稿。然而,这还不够清楚,无法直接将其翻译成代码,因此我们需要改进口头描述。重要的是,我们需要在询问年龄之前检查姓名。让我们试着这样做:

  1. 询问姓名
  2. 而名称不是空的

    a。询问年龄

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

    c。询问姓名

  3. 打印词典

在写这篇文章时,我记住了While循环是如何工作的,在询问用户名称后,我需要立即检查While循环中的条件。此外,我们在循环完成后打印字典,而不是每次循环迭代时打印字典

相关问题 更多 >

    热门问题