Skip to main content
 首页 » 编程设计

python之函数不返回而不是返回数字

2025年05月04日11yyy_WW

我创建了一个比较 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? 

请您参考如下方法:

您正在执行链式相等比较,但它并没有按照您认为的那样进行。按位 & 首先执行,因为它比 == 具有更高的优先级。

替换:

x == 1 & y == 0 
# 1 == 1 & 0 == 0 
# 1 == 0 == 0  False! 

与:

x == 1 and y == 0 

参见:Operator precedence