Python 三目运算的两种实现方法

python中三目运算有两种实现方法:

一是通过if语句实现的,语法如下:

 if  else 

三目运算首先对条件表达式求值,如果值为True,则执行,否则执行。如:

x=1
y=3
z= x-y if x>y else x+y
print(z)

在使用时要注意的Python2和Python3有一点小区别。在Python3中可以是字面量也可以是函数调用,特别的还可以使用print语句。而在Python2中,只有中可以使用print语句,中不能使用,但是自定义的函数调用则不受限制。如:

#Python2中可以执行
print(x-y) if x>y else x+y
x-y if x>y else x+y
#Python2中不可以执行
x-y if x>y else print(x+y)

二是通过and、or来实现,此方式利用的是逻辑运算符的短路原则来实现的。语法如下:

 and  or 
x=1
y=3
z= x>y and x-y or x+y
print(z)

 此实现方式在Python2和Python3同样有区别,在Python3中可以是字面量也可以是函数调用,特别的还可以使用print语句。而在Python2中不能使用print语句,但是调用函数是可以的。

#Python2中可以执行
x>y and "x" or "y"
x-y if x>y else x+y
#Python2中不可以执行
x>y and print("x") or "y"
x>y and "x" or print("y")

 

你可能感兴趣的:(Python)