为什么这个循环只有一次迭代,而不是用户输入的迭代次数?

新手上路,请多包涵

我试图要求用户输入任何数字,然后要求用户输入任何名称,然后将此输入存储在列表中。

但是,当我输入任何数字时,它只要求输入一次名称并在列表中显示输出:

 def main():
    # a = 4
    a = input("Enter number of players: ")
    tmplist = []
    i = 1
    for i in a:
        pl = input("Enter name: " )
        tmplist.append(pl)

    print(tmplist)

if __name__== "__main__":
    main()

输出:

 Enter number of players: 5
Enter name: Tess
['Tess']

for 循环应该运行 5 次并且用户输入的 5 个值存储在列表中。

原文由 PRK 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 628
2 个回答

您需要将玩家数量转换为整数,然后循环那么多次数,您可以为此使用 range() 函数。例子 -

 def main():
    num=int(input("Enter number of players: "))
    tmplist=[]
    for _ in range(num):
        pl=input("Enter name: " )
        tmplist.append(pl)

    print(tmplist)

原文由 Anand S Kumar 发布,翻译遵循 CC BY-SA 3.0 许可协议

由于您使用的是 Python3

 a=input("Enter number of players: ")

意味着 a 是一个字符串“5”。因为这只有一个字符长 - 循环只会运行一次

你需要使用

a = int(input("Enter number of players: "))

您还需要更改循环

for i in range(a):

我建议使用更有意义的变量名 - 特别是如果这是家庭作业

def main():
    number_of_players = int(input("Enter number of players: "))
    player_list = []

    for i in range(number_of_players):
        player = input("Enter name: " )
        player_list.append(player)

    print(player_listlist)

if __name__== "__main__":
    main()

原文由 John La Rooy 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题