我写错了一个程序。如果Python中的Elif语句为
def changeByThirds(pic):
w= getWidth (pic)
h = getHeight(pic)
newPic = makeEmptyPicture(w,h)
for x in range (0,w):
for y in range (0,h):
pxl = getPixel(pic, x, y)
if (y<h/3):
#some code
if (y>(h*2/3)):
#some code
else:
#some code
return (newPic)
当我执行这个计划,第一个if语句if (y<h/3):
被忽略,所以它运行,就好像第一,如果是不存在的。
if (y>(h*2/3)):
#some code
else:
#some code
我发现写的代码正确的方法是这样的:
def changeByThirds(pic):
w= getWidth (pic)
h = getHeight(pic)
newPic = makeEmptyPicture(w,h)
for x in range (0,w):
for y in range (0,h):
pxl = getPixel(pic, x, y)
if (y<h/3):
#some code
elif (y>(h*2/3)):
#some code
else:
#some code
return (newPic)
不过,我的问题是;
在第一个代码 - 为什么它绕过第一个if语句?
你的问题还不清楚。据我了解,第一个if语句的处理不应该有所不同,它不应该被“用其他”处理。我建议你给出一个例子说明这个问题的输入/输出。 – Marcin