开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情
一、前言
三元表达式(三目运算符)能够简洁我们的代码,三元表达式其实是将if...else...判断语句的简化表达,代替很多if else
和if-else一样,只有一个表达式会被执行。因此,三元表达式中的if和else可以包含大量的计算,但只有True的分支会被执行
在Java、C、JavaScript等语言中,他们的格式为:
返回布尔值的判断条件?为真时的结果:为假时的结果
但是,Python的三元表达式的写法有别于其他语言,Python的语法为
为真时的结果 if 返回布尔值的判断条件 else 为假时的结果
其逻辑为:“如果条件表达式成立或者满足则执行表达式1,否则执行第二个。”常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在则给[默认值]。
现在我们来练习一下吧!
二、练习题
题目一
下面的代码会让用户依次输入x,y两个数值,如果y大于x则z等于True,否则z等于False,请将其转换为三元表达式(三目运算符):
x=input("请输入x的值:")
y=input("请输入y的值:")
if y>x:
z=True
else:
z=False
print(z)
先试着自己解答一下,参考答案在后面 加油!相信自己!你可以的!!!
参考答案
z = True if y > x else False
除此之外,针对此题我们还有另一种解法:
z=bool(y>x)
可以直接使用bool类型转化即可。
题目二(进阶)
斐波那契数列指的是这样一个数列:0,1,1,2,3,5,8,它从第3项开始,每一项都等于前两项之和。现在请使用三元表达式和递归来实现斐波那契数列:
参考答案
def fibonacci(num):
return num if num < 2 else fibonacci(num - 1) + fibonacci(num - 2)
print(fibonacci(int(input('请输入列数值:'))))
除了使用三元表达式外还使用了递归方法,成功完成了斐波那契数列功能。