使用随机

时间:2016-08-14 23:51:32

标签: python dictionary random

我是python的新手,我正在尝试制作一个简单的“游戏” 我想要获得怪物的健康,但只有名字出现。 我可以(random.choice(list(Monster.health.keys())))(random.choice(list(Monster.health.Values())))将名称和健康状况存储在变量中,但我使用的是random,所以这个名字可能会说'精灵',但健康可能会说'50'这是错误的。

如何将变量存储在random_mon_name_health中并同时访问“键”和“值”

class Monster:
    health = {'goblin': 15, 'giant': 50}


class EncounterM(Monster):
    random_mon_name_health = ''

    def basic_monster(self):
        import random
        self.random_mon_name_health = (random.choice(list(Monster.health.keys()))) 

    def test(self):
        print(self.random_mon_name_health)


beta_user = EncounterM()
beta_user.basic_monster()
beta_user.test()  
# This is only a section of the game that I'm having trouble with

2 个答案:

答案 0 :(得分:0)

您只需拨打一次choice,就像这样:

class Monster:
    health = {'goblin': 15, 'giant': 50}

class EncounterM(Monster):
    def __init__(self):
        self.random_mon_name = ''
        self.random_mon_health = 0

    def basic_monster(self):
        import random
        self.random_mon_name, self.random_mon_health = \
            random.choice(list(Monster.health.items()))

    def test(self):
        print(self.random_mon_name, self.random_mon_health)


beta_user = EncounterM()
beta_user.basic_monster()
beta_user.test()

答案 1 :(得分:0)

如果你想在self.random_mon_name_health存储两个键值,你可以将你的方法更改为类似的东西,它将返回一个包含怪物名称及其相关健康状况的元组。

def basic_monster(self):
    import random
    random_key = (random.choice(list(Monster.health.keys())))
    self.random_mon_name_health = random_key, Monster.health[random_key]