Python三元表达式(三目运算符)

261 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情

一、前言

三元表达式(三目运算符)能够简洁我们的代码,三元表达式其实是将if...else...判断语句的简化表达,代替很多if else

和if-else一样,只有一个表达式会被执行。因此,三元表达式中的if和else可以包含大量的计算,但只有True的分支会被执行

在Java、C、JavaScript等语言中,他们的格式为:

返回布尔值的判断条件?为真时的结果:为假时的结果

但是,Python的三元表达式的写法有别于其他语言,Python的语法为

为真时的结果 if 返回布尔值的判断条件 else 为假时的结果

其逻辑为:“如果条件表达式成立或者满足则执行表达式1,否则执行第二个。”常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在则给[默认值]。

现在我们来练习一下吧!

二、练习题

题目一

下面的代码会让用户依次输入x,y两个数值,如果y大于xz等于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('请输入列数值:'))))

除了使用三元表达式外还使用了递归方法,成功完成了斐波那契数列功能。