我是Python的新手,对一个小问题感到很伤心,这是我的代码:
BitSize = [768, 768]
myCropedTop = 0
for Lenght in BitSize:
myCropedHeight += Lenght
left = 0
top = myCropedTop
right = width
bottom = myCropedHeight
TheBit = Myimage.crop((left, top, right, bottom))
#increment MyCroped top so the next croped bit start where the previous end
TheBit.show()
myCropedTop += Lenght
我已经习惯了MaxScript,这几乎是我的第一个Python脚本,所以我有几个问题。找到这些特定小事的答案并不容易。
我的第一个myCropedHeight += Lenght
循环不起作用,为什么? (最后的第二个是我知道它不是语法错误)。
正如我所说,我来自MaxScript背景,并且maxscript循环被括在括号中,例如:
For i in Myexemple do
(
Do loop-stuff
)
..问这个当然有点愚蠢但是,我们怎么该在没有括号的情况下划分Python中的循环?
myCropedHeight + = Lenght NameError:name' myCropedHeight'未定义
这是我第一次得到的错误+ =,这对我没什么帮助。 myCropedHeight =长度可以......
答案 0 :(得分:0)
myCropedHeight
变量,因此myCropedHeight += Lenght
无效。在使用+=
(或任何其他运算符)更改值之前,必须先声明值。
Python中的代码由缩进分隔,因此不应该成为循环一部分的下一行应与for
循环行在同一行中对齐。
for Lenght in BitSize:
myCropedHeight += Lenght
left = 0
top = myCropedTop
right = width
bottom = myCropedHeight
TheBit = Myimage.crop((left, top, right, bottom))
#increment MyCroped top so the next croped bit start where the previous end
TheBit.show()
myCropedTop += Lenght
#this line here is part of the loop
#this one isn't