use*_*087 6 python boolean type-conversion
我不明白这一行q.append(p[i] * (hit * pHit + (1-hit) * pMiss)),因为变量hit是一个布尔值.那个布尔值来自那里发生了hit
什么?我只对Python有基本的了解......还在学习它的结构.
p = [0.2, 0.2, 0.2, 0.2, 0.2]
world = ['green', 'red', 'red', 'green', 'green']
Z = 'red'
pHit = 0.6
pMiss = 0.2
def sense(p, Z):
q=[]
for i in range(len(p)):
hit = (Z == world[i])
q.append(p[i] * (hit * pHit + (1-hit) * pMiss))
s = sum(q)
for i in range(len(p)):
q[i]=q[i]/s
return q
print sense(p,Z)
Run Code Online (Sandbox Code Playgroud)
在算术中,布尔值被视为整数.True被视为1并被False视为0.
>>> True + 1
2
>>> False * 20
0
>>> True * 20
20
Run Code Online (Sandbox Code Playgroud)
在python中,布尔值是int的子类:
>>> isinstance(True, int)
True
Run Code Online (Sandbox Code Playgroud)
它们基本上是1和0:
>>> True * 1
1
>>> False * 1
0
Run Code Online (Sandbox Code Playgroud)
True is1和 False is 0,正如其他人所回答的那样。所以基本上,它的作用(以及应该写什么)是:
p[i] * (pHit if hit else pMiss)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3998 次 |
| 最近记录: |