我对python有点新鲜,并且一整天都在搜索这些信息。我希望能够向用户询问他们想要多少个实例,并根据他们的输入,创建他们所请求的类的多个实例。
我还希望能够让每个实例的名称都基于输入,例如询问此人的姓名等。
NumPlayers = input("How many people are playing? ")
for i in range(0, int(NumPlayers)-1):
name = input("What is your name? ")
name = Player()
这与John = Player()
类似,但“John”将是用户给我们的任何名称,但用户想要的玩家数量会很多。
从我今天的研究来看,似乎允许人们确定自己实例的名称并不是一个好主意,所以在这一点上我正在考虑更多这样的事情:
NumPlayers = input("How many people are playing? ")
for i in range(0, int(NumPlayers)-1):
name = input("What is your name? ")
Player+i = Player(name)
对于更多玩家,这与Player1 = Player("John")
等相同。这是可能的吗?这真的让我很难过。只是为了澄清一些事情,类本身已经在代码中,在提供的代码中Player是一个已经用方法和所有内容定义的类。
答案 0 :(得分:2)
您要寻找的是数据结构,具体而言是list。
no_players = input("How many people are playing? ")
players = []
for _ in range(int(no_players)):
name = input("What is your name? ")
players.append(Player(name))
这将生成[Player(...), Player(...), ...]
的列表。这可以在其他操作中编入索引(players[2]
)或迭代(for player in players:
)。我建议您阅读the documentation了解更多信息。
作为旁注,使用list comprehension可以更好地构建一些列表。
答案 1 :(得分:0)
正如Lattyware建议您正在寻找一个列出您的玩家的列表。 我可以建议稍微修改你的程序,只要他们换上一个新名字,就可以接受任意数量的玩家吗?
players = []
while True:
playername = input("Insert a new player (empty to begin):")
if playername:
players.append(Player(playername))
else:
break