Python骰子滚动并定义dmg_to_enemy

问题描述 投票:0回答:1

谢谢您的帮助。我目前在此函数中定义dmg_to_enemy时遇到问题。我想出了如果我使用random.randint在函数中定义dmg_to_enemy,然后使用return我将能够在函数外部打印dmg_to_enemy。当前,当我运行此代码时,它返回的dmg_to_enemy未定义。我需要能够定义dmg_to_enemy,以便能够将dmg_to_enemy的值用于其他功能。我是编码的新手,想知道我做错了什么。谢谢!

dwarf_class = "Thane"
def dice_rolls_combat(dwarf_class):  
    if dwarf_class == "Thane":
        dmg_to_enemy = random.randint(1, 8)
        return dmg_to_enemy
    elif dwarf_class == "Mekanik":
        dmg_to_enemy = random.randint(1, 5)
        return dmg_to_enemy
    elif dwarf_class == "Ancestrite":
        dmg_to_enemy = random.randint(1, 3)
        return dmg_to_enemy
    elif dwarf_class == "Prisoner":
        dmg_to_enemy = random.randint(1, 5)
        return dmg_to_enemy
    elif dwarf_class == "Civilian":
         dmg_to_enemy = random.randint(1, 4)
         return dmg_to_enemy
dice_rolls_combat(dwarf_class) #outside of function
print(dmg_to_enemy) # outside of the function
python dice
1个回答
0
投票

变量dmg_to_enemy在其父函数中为local,并且不在其外部。尽管单行return dmg_to_enemy的缩进级别表示仅在触发该条件(dwarf_class == "Civilian")时才会返回有用的结果,但您似乎已经部分意识到了这一点。降低缩进级别以使该零件正常工作。

另一半是使用返回的值,这很简单

dmg_to_enemy = dice_rolls_combat(dwarf_class)

尽管您可以使用任何其他变量名-该变量与在其他地方本地使用的变量无关。

© www.soinside.com 2019 - 2024. All rights reserved.