如何在python中使用for循环在列表中添加值?

时间:2015-10-19 05:32:12

标签: python list python-3.x

我在这里要做的是要求用户输入任何数字,然后要求用户输入任何名称,然后将此输入存储在列表中。

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

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个值存储在列表中。

4 个答案:

答案 0 :(得分:6)

你需要将玩家数量转换为整数然后循环很多次,你可以使用range()函数。示例 -

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

    print(tmplist)

答案 1 :(得分:4)

因为您使用的是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()

答案 2 :(得分:3)

由于输入a是一个字符串 你需要将它转换为数字,然后使用不同的。

应该是

def main():
    #a=4
    a=int(input("Enter number of players: "))
    tmplist=[]
    i=0
    while i < a:
        pl=input("Enter name: ")
        tmplist.append(pl)
        i+=1
    print(tmplist)

main()

答案 3 :(得分:3)

你有一个字符串a,大概包含'5'之类的内容。然后初始化计数器i。然后你循环遍历这个字符串,因为它是'5',导致一次迭代,因为'5'中只有一个字符。

首先,您必须使用a = int(a)将其更改为数字。

使用a作为数字,您仍然无法循环,因为数字不是可迭代的。

那么你应该用range创建一个for i in range(a):对象来循环。

然后,您将能够按预期执行操作。