【发布时间】:2017-03-10 04:51:38
【问题描述】:
我创建了一个与 x 和 y 变量进行比较的函数。函数内部有很多嵌套的 elif 来比较 x 和 y 然后返回整数。现在的问题是,当它运行在某个elif语句时,虽然语句是正确的,但它并没有执行该语句。
def convertTo(self, x, y):
if( x == 0 & y == 0):
return 0
if( x == 0 & y == 1):
return 1
if( x == 0 & y == 2):
return 2
if( x == 0 & y == 3):
return 3
if( x == 1 & y == 0):
return 4 # Didn't return this line even though x = 1 and y = 0
else
return None
def main():
self.convertTo(0,0)
self.convertTo(0,1)
self.convertTo(0,2)
self.convertTo(0,3)
self.convertTo(1,0) # return None? Why?
【问题讨论】:
-
你试过
and而不是&吗? -
@tobias_k 运算符优先级不同。
-
短路?可能是?只是一个问题......无论如何,我们怎么知道返回了什么?代码没有输出任何东西
-
请注意,您的
if/else结构很奇怪。应该是一系列if/elif/else。但是您也可以完全删除else: return None,因为无论如何这是默认设置。 -
我认为操作的顺序是在比较之前执行按位运算符
标签: python if-statement