通常N元操作符指的是该操作符有N个操作数,如赋值操作符(=),它是一个二元操作符,所以它有两个操作数(左右各一个);又如减号(-)是一个二元操作符,但是当它作为负号(-)使用的时候,便是一个一元操作符,它表示负数,所以只有一个操作数。那么,三元操作符理应有三个操作数咯?没错的,你猜对了。
其实Python的作者一向推崇简洁编程理念,所以很长一段时间Python都没有三元操作这个概念(因为他觉得三元操作符将会使程序的结构变复杂),但是长久以来Python社区的小伙伴们对三元操作符表现出了极大的渴望,所以最终作者还是勉为其难地为Python加入了三元操作符。有了它,我们就可以使用一条语句来完成以下的条件判断和赋值操作:
if x<y:
small=x
else:
small=y
那么这段代码用三元操作符表示应该是怎样的呢?
三元操作符语法:
表达式1 if 条件表达式 else 表达式2
当表达式返回True时,返回结果表达式1,否则返回结果表达式2。
所以,上面的代码可以改进为:
smal=x if x<y else y
刚开始看可能会不大习惯,毕竟跟我们通常的逻辑思维方式不同,但也不觉得会导致程序结构变得复杂啊。
那么,大家看下面代码:
#coding=utf-8
score = int(input('请输入一个分数:'))
if 100 >= score >= 90:
level = 'A'
elif 90 > score >= 80:
level = 'B'
elif 80 > score >= 60:
level = 'C'
elif 60 > score >= 0:
level = 'D'
else:
print('输入错误!')
print(level)
如果用三元操作符的形式,修改后的代码应该是这样的:
# coding=utf-8
score = int(input('请输入一个分数:'))
level = 'A' if 100 >= score >= 90 else 'B' if 90 > score >= 80 else'C'if 80 > score >= 60 else 'D' if 60 > score >= 0 else print('输入错误!')
print(level)
现在还会觉得简单易懂吗?