使用范围为for的循环填充空列表时检查用户输入

问题描述 投票:0回答:1

尽管我找不到答案,但确实花了一些时间来寻找答案。我确信,我的第一个问题是一个显而易见的问题……我只是无法将手指放在答案上。

我正在尝试编写此代码,以便当用户输入此列表中已经存在的名称时,打印语句将显示为'请输入唯一名称'或类似的内容。到开始时不影响6个输入的总数我尝试使用while循环和几个for循环,但我无法正确处理。

感谢您的阅读和回答!

 name_list = []
question = "Please enter a name: "

for i in range(6):
    name_list.append(input(question))

for name in name_list:
    print("- " + name.title())
python python-3.x list
1个回答
0
投票
name_list = []
added_new_name = 0
while True:
    new_name = input("Please enter a name: ")
    if new_name.lower() in name_list:
        print(f"{new_name} is already known! Please use a unique name.")
        continue
    else:
        print(f"Added {new_name.title()} to our database!")
        added_new_name += 1
        name_list.append(new_name.lower())
        if added_new_name >= 6:
            print("Done adding names!")
            print(f"Final Names:")
            for name in name_list:
                print(name)
            break

此for循环将一直运行,直到输入了6个名称。发生的情况是使用continue and break statements,然后使用一个单独的计数器来查找已添加的名称,如果给出了唯一名称,则我会递增该计数器并将该名称以小写形式添加到name_list中,并检查是否new_name在我刚做的列表中:if new_name.lower() in name_list检查小写的new_name是否在列表中,我们只将小写的字符串附加到列表中。

© www.soinside.com 2019 - 2024. All rights reserved.