最近我遇到了一些模糊的python代码,我对分离代码片段和理解代码片段没有任何问题。然而,我遇到了一个我不明白的说法:
v, x = 1500, 1000
C = range(v*x)
import struct
P = struct.pack
M, j = '<QIIHHHH', open('M.bmp','wb').write
for X in j('BM'+P(M,v*x*3+26,26,12,v,x,1,24)) or C:
在最后一行代码中,我不明白这个for
循环如何与or
一起工作。代码运行良好,但我不知道它在做什么。我试着在Python文档中查找,但什么也没看到。这个代码是做什么的?在
如果j()的返回值==False,则它会在C上迭代
分步骤看一看:
首先,它评估:
如果该值被认为等于False(空列表、无、0等),则它将计算此值:
^{pr2}$并将其作为iterable传递给
for
循环应该注意,
or
不是for
语法的一部分。它在传递到您熟悉的for
语法之前进行了计算write
总是返回None,因此此表达式只是用于调用j(...)
的副作用。循环总是在C上部分除臭版
代码段似乎正在写入bmp文件的头。我想for循环会写剩下的
相关问题 更多 >
编程相关推荐