错误我没有使用python在for循环中定义

时间:2013-08-15 23:30:20

标签: python python-2.7

我有一个大小'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):

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