Python 掷骰子并定义dmg_对_敌人

Python 掷骰子并定义dmg_对_敌人,python,dice,Python,Dice,我在该函数中定义dmg\u to\u敌军时遇到问题。我想如果我在函数中定义dmg\u to\u敌人,然后使用return,我就可以在函数之外打印它。目前,当我运行此代码时,它会将dmg\u返回给\u未定义的敌人。我需要能够定义它,以便我可以将其用于其他功能。我对编码比较陌生,想知道我做错了什么 dwarf_class = "Thane" def dice_rolls_combat(dwarf_class): if dwarf_class == "Thane": dmg

我在该函数中定义
dmg\u to\u敌军
时遇到问题。我想如果我在函数中定义
dmg\u to\u敌人
,然后使用return,我就可以在函数之外打印它。目前,当我运行此代码时,它会将
dmg\u返回给\u未定义的敌人
。我需要能够定义它,以便我可以将其用于其他功能。我对编码比较陌生,想知道我做错了什么

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

变量
dmg_to_tof
在其父函数中是局部变量,在其父函数之外不存在。您似乎部分意识到了这一点,因为您只有一行代码将dmg_返回给敌人,尽管它的缩进级别意味着只有在该条件触发时它才会返回有用的结果(
dwarf_class==“平民”
)。降低缩进级别以使该零件正常工作

另一半使用返回值,这与

dmg_to_enemy = dice_rolls_combat(dwarf_class)

尽管您可以使用任何其他变量名称–此变量与其他地方本地使用的变量无关。

更改为
dmg\u to\u敌军=骰子\u掷骰子\u战斗(矮人级)
,使用该名称接收函数的返回值或声明
dmg\u to\u敌军
全局。(但最好返回并分配它。)你能分享更多你的程序吗?它的设计可能会有一些改进。