我有一个大小'bsize'的数组'barray'和另一个'csize'大小的'carray'。
i
循环用于反射,j
循环用于反射。
我收到一个错误,我没有定义。我希望循环从0到bsize - 2以3为步长,0到csize - 2以单步执行。
我应该如何将大小和数组与for循环相关联?
bsize = 960
csize = 960
barray = bytearray(fi.read())
carray= bytearray(f1.read())
for i in range (bsize-2,i+3):
for j in range (csize-2,j+1):
答案 0 :(得分:4)
for i in range (0, bsize - 2, 3): #possibly bsize - 1?
for j in range (csize - 2): # possibly csize - 1?
#do your thing
这将循环通过第一个递增i
每次3,j
递增1。
请查看此tutorial或这些docs以了解range
,这非常有用!
我不确定你是想要通过bsize - 2还是仅仅通过它。如果通过,请使用size - 1来获取大小 - 2。
您收到错误的原因是您尚未定义您在步骤中使用的i
。如您所见,python的range
与许多其他语言的for
构造不同。但是,一旦你习惯它,它就非常灵活且易于使用。
使用简单范围的一些示例:
>>> for i in range(0, 14, 3):
... print i
...
0
3
6
9
12
>>> for i in range(1, 5):
... print i
...
1
2
3
4
>>> for i in range(5):
... print i
...
0
1
2
3
4