Python for循环使用or?
最近,我遇到了一些模糊的python代码,我在分离代码片段和理解代码的小片段方面没有问题。然而,我遇到了一个我不明白的说法:Python for循环使用or?,python,loops,python-2.7,for-loop,Python,Loops,Python 2.7,For Loop,最近,我遇到了一些模糊的python代码,我在分离代码片段和理解代码的小片段方面没有问题。然而,我遇到了一个我不明白的说法: v,x=15001000 C=范围(v*x) 导入结构 P=struct.pack M、 j='如果j()的返回=False,它将在C上迭代 请分步骤查看它: 首先,它评估了这一点: j('BM'+P(M,v*x*3+26,26,12,v,x,1,24)) C 如果认为该值等于False(空列表、无、0等),则它会计算该值: j('BM'+P(M,v*x*3+26,2
v,x=15001000
C=范围(v*x)
导入结构
P=struct.pack
M、 j='如果j()的返回=False,它将在C上迭代
请分步骤查看它:
首先,它评估了这一点:
j('BM'+P(M,v*x*3+26,26,12,v,x,1,24))
C
如果认为该值等于False(空列表、无、0等),则它会计算该值:
j('BM'+P(M,v*x*3+26,26,12,v,x,1,24))
C
并将其作为iterable传递给for
循环
应该注意的是,或
不是
语法的的一部分。它在被传递到之前进行评估,以获得您熟悉的语法write
总是返回None,因此此表达式只是用于调用j(…)
的副作用。循环将始终在C上
部分脱毒版本
import struct
v = 1500
x = 1000
C = range(v*x)
M = '<QIIHHHH'
with open('M.bmp','wb') as fin
fin.write('BM'+struct.pack(M, v*x*3+26, 26, 12, v, x, 1, 24))
for X in C:
...
导入结构
v=1500
x=1000
C=范围(v*x)
M='可能的重复项