我是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")
等相同。这是可能的吗?这真的把我难倒了。只是为了澄清一些事情,类本身已经在代码中,在提供的代码播放器中是一个已经用方法和所有东西定义的类。
发布于 2012-11-23 00:48:34
您正在寻找的是一个数据结构,具体地说,是一个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更好地构造。
发布于 2012-11-23 00:59:37
正如Lattyware建议的那样,你正在寻找一个可以把你的球员放入其中的列表。我可以建议稍微修改一下你的程序,只要他们输入新名字,你就可以接受尽可能多的球员吗?
players = []
while True:
playername = input("Insert a new player (empty to begin):")
if playername:
players.append(Player(playername))
else:
break
https://stackoverflow.com/questions/13521878
复制相似问题