为什么我的循环打印的是整数而不是字符串

2024-03-28 08:22:14 发布

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

我一定错过了一些基本的东西。。。(我不熟悉编码)。我的代码为用户提供了一个20个名字的列表,一次一个,然后用户选择“y”或“n”,如果他们喜欢这个名字。这些名字是从100人的名单中随机产生的。然后,我需要将该名称列表(20个随机生成的名称)呈现给第二个用户,并为他们选择“y”或“n”

我已经将用户1收到的名称添加到一个新的空列表(new_boy_list)中,现在我想迭代第二个用户的名称列表。问题是,我得到的是整数(0-19),而不是名字列表。我做错了什么?这是代码。。。希望你能从中看到你需要什么

def user2_start():
print(f"{user2} it's now your turn... get ready..." + "\n")
# my_list = len(new_boy_list)
for name in range(20):
    print(name)
    user2_answer = input("y/n: ")
    if user2_answer == 'y':
        boy_list_2.append(name)
    print(boy_list_2)

1条回答
网友
1楼 · 发布于 2024-03-28 08:22:14

您的代码似乎没有或没有生成名称列表(除非在您没有向我们展示的代码中这样做)。此外,正如注释中所指出的,name实际上包含一个数字,而不是从名称列表中提取字符串

你要做的是加载一个名字列表,shuffle it,然后取前20个。(您可以使用现有的name变量,只需将其用作列表的索引即可。不过,您可能希望将该变量重命名为一个不太容易引起误解的名称,因为它本身实际上不是一个名称)

您可以通过多种方式加载名称列表。一种方法是在每一行上都有一个包含名称的文本文件,然后将它们一次读一行到列表中。您也可以对其进行硬编码,但这可能不是最好的方法,因为它会使您的代码变得混乱,如果您想要更改列表,您必须修改代码本身-通常最好尽可能将代码和数据分开

还有更高级的方法,比如从web服务或数据库中检索它们,但这些方法可能有些过头了

相关问题 更多 >