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

2024-04-29 05:02:37 发布

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

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

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

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


Tags: of用户name名称number列表forinput
3条回答

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

首先你必须用a = int(a)把它改成一个数字。

使用a作为一个数字,您仍然不能循环通过它,因为数字不是一个iterable。

因此,您应该创建一个range对象来循环使用for i in range(a):

然后你就可以按预期进行手术了。

您需要将播放器的数量转换为整数,然后循环那么多次,您可以使用^{}函数来实现这一点。示例-

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

    print(tmplist)

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

相关问题 更多 >