我在这里要做的是要求用户输入任何数字,然后要求用户输入任何名称,然后将此输入存储在列表中。
但是,当我输入任何数字时,它只要求输入一次名称并在列表中显示输出:
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个值存储在列表中。
答案 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):
对象来循环。
然后,您将能够按预期执行操作。