1

私はPythonに少し慣れていないので、この情報を1日中検索しています。ユーザーに必要なインスタンスの数を尋ね、入力に基づいて、要求した数のクラスのインスタンスを作成できるようにしたいと思います。

また、各インスタンスの名前を、人の名前などを尋ねるなどの入力に基づいて作成できるようにしたいと思います。

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()いますが、「ジョン」はユーザーが私たちに付けた名前であり、ユーザーが望む多くのプレーヤーがいます。

今日の私の調査から、人々が自分のインスタンスの名前を決定できるようにすることは良い考えではないように思われるので、この時点で私はこれに沿ってもっと何かを考えています:

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はメソッドとすべてですでに定義されているクラスです。

4

2 に答える 2

3

探しているのはデータ構造、具体的にはリストです。

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:を読むことをお勧めします。

ちなみに、一部のリストは、リスト内包表記を使用してさらに適切に作成できます。

于 2012-11-23T00:48:34.110 に答える
0

Lattywareが提案したように、プレイヤーを入れるリストを探しています。新しい名前を付けている限り、必要な数のプレーヤーを受け入れるように手順を少し変更することをお勧めしますか?

players = []
while True:
    playername = input("Insert a new player (empty to begin):")
    if playername:
        players.append(Player(playername))
    else:
        break
于 2012-11-23T00:59:36.657 に答える