Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python for循环使用or?_Python_Loops_Python 2.7_For Loop - Fatal编程技术网

Python for循环使用or?

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

最近,我遇到了一些模糊的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,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='可能的重复项