【发布时间】:2014-06-22 17:10:02
【问题描述】:
我正在使用 Python(我认为是 2.7 版)
我在这里有一段代码,它是一个函数的一部分,该函数将 x_1、x_2 和 x_f(与 y 相同)作为图像中相应像素的输入和颜色(x_f 和 y_f 表示图像中的最终像素,因此它只在图像边界内绘制。
while x_1+k*x_2<=x_f and y_1+k*y_2<=y_f:
pixels[x_1+k*x_2,y_2+k*y_2]=colour
k+=1
我的问题是,我需要这个代码来输入x_f (or y_f) = Empty
如果是x_f=Empty,上面的代码应该忽略第一行中的整个 x 部分,并仅根据 y 值生成输出,如下所示:
while y_1+k*y_2<=y_f:
pixels[x_1+k*x_2,y_2+k*y_2]=colour
k+=1
反之亦然。不幸的是,我无法弄清楚如何让它做到这一点。
我的尝试包括:
if x_f is not Empty and y_f is not Empty:
while x_1+k*x_2<=x_f and y_1+k*y_2<=y_f:
pixels[x_1+k*x_2,y_2+k*y_2]=colour
k+=1
else:
if x_f==Empty:
while y_1+k*y_2<=y_f:
pixels[x_1+k*x_2,y_2+k*y_2]=colour
k+=1
else:
while x_1+k*x_2<=x_f:
pixels[x_1+k*x_2,y_2+k*y_2]=colour
k+=1
问题不在于它引发错误,而是我必须运行我的代码的程序不允许我运行它 - 它崩溃并给我一个 CPU 错误。有人有什么想法吗?
谢谢。
编辑~ 我正在使用函数 colour_pixels(x_1,x_2...y_f) 来获取我的输入。
我的错误是:“IVLE 控制台重新启动:通信丢失”
当输入值 y_f 输入为“空”时
我必须能够处理 x_f 或 y_f 可能为“空”的情况 - 抱歉,我没有很好地解释这一点
谢谢 - 我现在要把 '!=' 改成 'is not'!
【问题讨论】:
-
你是如何输入的,是 raw_input() 吗?
-
你的cpu错误是什么?
x_f为空是什么意思?您是否将x_f和y_f初始化为None? -
您的
if x_f!=None:块。这意味着x_f不是None。因此你应该做涉及x_f的操作,而不是y_f。 -
提示:使用
if x is not None而不是x != None -
谢谢大家 - 我在问题的底部添加了一个编辑以回应您的 cmets(直到现在我才意识到我可以回复)
标签: python function loops input conditional-statements