回答计算器

时间:2016-02-06 13:11:13

标签: python python-3.x

我已经四处寻找已经做过这件事的人,但我还没有得到结果。基本上遵循网站的公式(这里是一个链接) http://www.serebii.net/games/damage.shtml。我使用的是Python 3+,所以这是我的代码。 (注意我遗漏了随机数)我不断收到语法错误。

@loginId is null

2 个答案:

答案 0 :(得分:1)

好:

resistance= if answer1== 4:
                           resistance= 4
            if answer1== 2:
                           resistance= 2
            if answer1== 1:
                           resistance= 1
            if answer1== 0.5:
                             resistance= 0.5
            if answer1== 0.25:
                              resistance= 0.25

在Python中出错。只需写下:

if answer1== 4:
    resistance= 4
if answer1== 2:
    resistance= 2
if answer1== 1:
    resistance= 1
if answer1== 0.5:
    resistance= 0.5
if answer1== 0.25:
    resistance= 0.25

更好:

if answer1== 4:
    resistance= 4
elif answer1== 2:
    resistance= 2
elif answer1== 1:
    resistance= 1
elif answer1== 0.5:
    resistance= 0.5
elif answer1== 0.25:
    resistance= 0.25

和(相同):

STAB= if answer == yes:
                      STAB= 1.5

if answer == "yes":
    STAB = 1.5
else:
    STAB = 1

更好

resistance = answer1

if answer1 in [4, 2, 1, 0.5, 0.25]:
    resistance = answer1

答案 1 :(得分:0)

@Clodion回答是完全正确的,但您可以使用dict更轻松地做到这一点。

resistance = {4: 4,
              2: 2,
              1: 1,
              0.5: 0.5,
              0.25: 0.25
             }[answer1]

这使用内联创建dict,然后使用等效于answer1的键获取值。可以跳过换行符。

而且,在Python中,形式的三元运算符

STAB = 1.5 if answer=="yes" else 1

什么可以缩短为

STAB = (1, 1.5)[answer == "yes"]

因为Python中的布尔值可以用作tuple索引。 False0True1,因此必须在answer != "yes"时选择第0个元素,并在answer == "yes"时首先选择。{/ p>