我知道这个问题有很多问题,但是在互联网上寻找解决方案已有一段时间之后,仍然没有任何效果。这是我的代码:
def posicio_relativ(x1,y1,z1,x2,y2,z2):
if x1<x2:
di='dreta'
if x1>x2:
di='esquerra'
if y1<y2:
ss='sobre'
if y1>y2:
ss='sota'
if z1<z2:
dd='davant'
if z1>z2:
dd='darrera'
return di, ss, dd
我是使用python的初学者,所以我会很感激任何帮助或解释。
谢谢你!
P.D:对不起我的英语,我来自西班牙!
您需要在di
语句之前声明值ss
,dd
和if
,并将它们初始化为空白字符串。例如,如果x1 == x2
,则di
将永远不会初始化。
def posicio_relativ(x1,y1,z1,x2,y2,z2):
di = ''
ss = ''
dd = ''
if x1<x2:
di='dreta'
if x1>x2:
di='esquerra'
if y1<y2:
ss='sobre'
if y1>y2:
ss='sota'
if z1<z2:
dd='davant'
if z1>z2:
dd='darrera'
return di, ss, dd
您必须确保在所有案例中都分配了变量,情况并非如此x1 == x2 y1 == y2 z1 == z2已覆盖。所以你可以做:
def posicio_relativ(x1,y1,z1,x2,y2,z2):
di='dreta'
if x1>x2:
di='esquerra'
ss='sobre'
if y1>y2:
ss='sota'
dd='davant'
if z1>z2:
dd='darrera'
return di, ss, dd
取决于这些情况下您的不良行为,您可能需要做一些不同的事情
变量di
在以下if语句之一中创建:
if x1<x2:
di='dreta'
if x1>x2:
di='esquerra'
问题是,如果x1 == x2,则您的代码不会进入任何if语句。
因此,当您调用return di, ss, dd
时,变量di
不存在。
一种快速解决方案是将您的if语句之一设置为x1 >= x2
或x1 <= x2