如何根据用户输入创建不同的变量

时间:2019-04-21 05:13:05

标签: python user-input

对于像游戏这样的垄断行业,我有一个部分询问用户不同玩家的姓名。

被询问的次数将基于先前的输入,该输入询问用户那里有多少位玩家。

然后,将为玩家数量设置不同的变量。

IE,如果输入中指定的玩家人数为4,则玩家1的变量将带有其输入的名称,依此类推,直到玩家4。

如何根据输入的玩家数量创建多个变量,并询问每个玩家的姓名?

变量看起来像这样:

player1 = John
player2 = Doe
player3 = Sam

3 个答案:

答案 0 :(得分:1)

您可能想要一个变量。这可以是listdict。在任何一种情况下,您可能都希望其中的dict代表每个玩家的信息。因此,您将建立的list如下所示:

players = [
    {
        "name": "Joe",
        "money": 1234,
        "properties": [
            "Boardwalk",
        ]
        "railroads": [
            "Reading",
        ],
        ...
    },
    {
        "name": "Sam",
        "money": 4444,
        "get_out_of_jail_card": true,
        ...
    }
}

获取有关每个玩家的信息时,您可以建立此列表。从一个空列表开始,然后添加玩家:

startingMoneyValue = 20000

...

player_count = int(input("Enter number of players: "))

players = []

for i in range(player_count):
    playerName = input("What is the next player's name?")
    players.append({
        "name": playerName,
        "money": startingMoneyValue,
        "properties": [],
        "railroads": [],
        ...
    })

这里的关键是,一旦创建了每个玩家的记录,您就可以轻松获取并修改该数据。例如,要获得第二位玩家的钱,您可以这样做:

money = players[1]['money']

第3名玩家通过时:

players[2]['money'] += 200

您可以预先初始化与每个玩家相关联的所有特定值,也可以稍后随情况添加一些值。

答案 1 :(得分:0)

您需要根据玩家数量来循环选择范围。我认为您无法像所要求的那样在脚本中生成变量。但是列表同样有效。

number_of_players = input("Enter number of players: ")
players = []
for player in range(number_of_players):
    players.append(input(f'Enter player {player+1} name: '))

答案 2 :(得分:0)

您可以使用字典:

playerdict, players = {}, int(input('How many players are there?'))

for x in range(players):
    playerdict[f'player{x+1}'] = input(f'What is player {x+1}\'s name?')