Python可以通过if语句来实现三元运算符的功能,因此这些if语句可以近似地视为三元运算符。 if语句作为三元运算符的语句格式如下:
True_statements if expression else False_statements
三元运算符的规则是:先计算逻辑表达式表达式,如果逻辑表达式返回Truephp三目运算符,则执行并返回True_statements的值; 如果逻辑表达式返回False,则执行并返回False_statements的值。 看下面的代码:
a = 5 b = 3 st = "a大于b" if a > b else "a不大于b" # 输出"a大于b" print(st)
其实如果只是想在控制台输出提示信息,也可以将里面的三元运算符表达式改为如下:
# 输出"a大于b" print("a大于b") if a > b else print("a不大于b")
Python 允许将多个项放置在三元运算符的 True_statements 或 False_statements 中。 Python主要支持以下两种放置方式:
多个句子之间用英文冒号分隔:每个句子都会被执行,程序返回一个由多个句子的返回值组成的元组。
多个句子之间用英文分号分隔:每个句子都会被执行,程序只会返回第一个句子的返回值。
我们先看第一种情况,使用以下代码:
# 第一个返回值部分使用两条语句,逗号隔开 st = print("crazyit"), 'a大于b' if a > b else "a不大于b" print(st)
上面的程序中,True_statements就是print("crazyit"),'a小于b',这两个句子都会被执行,程序会返回一个由这两个句子的返回值组成的元组。 由于print()函数没有返回值,因此它的返回值为None。 运行里面的代码,你会看到如下结果:
crazyit (None,'a大于b')
如果把前面一句的冒号改为分号,冒号后面的一句改为形参句php三目运算符,则写成如下:
# 第一个返回值部分使用两条语句,分号隔开 st = print("crazyit"); x = 20 if a > b else "a不大于b" print(st) print(x)
此时,虽然True_statements包含两个句子,但是程序只会返回第一句print("crazyit")的返回值,同样返回None,所以str的返回值为None。 运行里面的代码,你会看到如下结果:
crazyit None 20
需要强调的是,三元运算符支持嵌套,通过嵌套三元运算符可以进行更复杂的判别。 例如,下面的代码需要确定两个变量c和d之间的大小关系:
c = 5 d = 5 # 下面将输出c等于d print("c大于d") if c > d else (print("c小于d") if c < d else print("c等于d"))
上面的代码首先计算c>d,如果表达式为True,程序将执行并返回第一个表达式: print("c is less than d"); 否则,系统将计算 else 之后的内容: (print ("c isgrand d") if c
发表评论