python的:0 if x == y else 1 if x > y else -1

需求定义一个函数:输入x,y两个数字,若x=y,则返回0,若x>y,则返回1,若x

def _cmp(x, y):
    if x==y:
    	return 0
    elif x>y:
    	return 1
    else:
    	return -1

这样写结构清晰,别人容易读懂,但是显得比较繁杂,现在提供一个简洁的方式,直接上代码:

def _cmp(x, y):
    return 0 if x == y else 1 if x > y else -1

两行搞定,这就是python的三元表达式的厉害之处,当然这个表达式和我们普通的三元表达式不一样,因为它多嵌套了一层,可以这样理解:if_else块会产生一个值,把产生的值再与后面的表达式组成另一个if_else块,python的:0 if x == y else 1 if x > y else -1_第1张图片

你没看错,python源代码就是这样写的。

转载于:https://my.oschina.net/u/4188927/blog/3093107

你可能感兴趣的:(python的:0 if x == y else 1 if x > y else -1)