如何压缩重复的类似IF语句?

时间:2019-01-13 02:31:42

标签: python

我目前正在通过编写基于文本的冒险游戏来自学Python,该游戏很大程度上基于D&D。我正处于大多数基础知识都处于下降的阶段,我现在正在研究统计数据和统计修改器,并且有一个可行的解决方案,但是这是一个非常丑陋且笨拙的解决方案。

我定义了一个函数来检查某个统计信息的值是什么,并根据该统计信息为修饰符赋予一个特定的值。

但是,它看起来很凌乱并且目前占用很多空间,如下所示:

if strength == 1:
    str_mod = -5
if strength == (2 or 3):
    str_mod = -4
if strength == (4 or 5):
    ...

然后继续。我尝试过类似的事情:

if strength == (1, 2 or 3, 4 or 5...):
    str_mod = (-5, -4, -3...)

我还尝试将统计信息和修饰符放在字典中,如下所示:

    stat_dict = {
    strength: str_mod,
    dexterity: dex_mod,
    constitution: con_mod,
    wisdom: wis_mod,
    intelligence: int_mod,
    charisma: cha_mod,
    }

但是找不到任何使语句执行以下操作的方法:

if key in stat_dict == 1:
    value in stat_dict = -5

有没有更短的方法呢?还是我只需要满足132行代码,只是为了让stat修饰符起作用?

0 个答案:

没有答案