我已经四处寻找已经做过这件事的人,但我还没有得到结果。基本上遵循网站的公式(这里是一个链接) http://www.serebii.net/games/damage.shtml。我使用的是Python 3+,所以这是我的代码。 (注意我遗漏了随机数)我不断收到语法错误。
@loginId is null
答案 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
索引。 False
为0
而True
为1
,因此必须在answer != "yes"
时选择第0个元素,并在answer == "yes"
时首先选择。{/ p>