Python小知识001 – Python有三元运算法吗?

你可能经常看到类似这样的文章:

  • 必知必会Python知识点100个
  • 69个Python内置函数精讲

这些文章当然有一定的帮助,但大部分人是这样对待她们的:打开收藏关闭

如果你也是这样的,其实你不是在学习,只是在搜集资料,搜集一些可能永远都不会再看的资料

今天,我要开始一个Python小知识系列。

  • 这个系列每篇文章都很短,几分钟能读完。
  • 这个系列不欢迎搜藏,只欢迎当场读完,学会。
  • 甚至不欢迎点赞,除非你已经学会了。
  • 这个系列讲的也不深,但是尽量浅显易懂。深度长文会继续在终结者系列中更新。

这个系列我用次条发,所以也不大关心阅读量,写给需要每天进步一点点的人

这不仅仅是一个文章系列,也是一个学习习惯养成器:每天实实在在学习一点Python知识。

图片

Python有三元运算法吗?

有!Python的三元运算符是分支语句的变种:

结果1 if condition else 结果2

如果condition条件满足返回结果1,否则返回结果2.

看个实际例子:

score = input('输入你的分数')
result = 'PASS' if score > 60 else 'FAIL' 

有什么用处?

这个写法用普通的if..else也可以完成:

score = input('输入你的分数')
if score > 60:
    result = 'PASS'
else:
    result = 'FAIL'

很明显,上面的写法更加简洁,也更加pythonic。

除此之外,它有更重要的用处:

1. 用在lambda表达式中

lambda是匿名函数,只能有一行代码。

只有一行代码能干什么呢?有了三元运算符,lambda才能显示出巨大的威力。

举个例子:

func1 = lambda score: 'PASS' if score > 60 else 'FAIL'
func1(68)
func1(59)

关于lambda的更多知识会在专门的文章中讲解。

2. 用在推导式中

推导式是一个很强大的python语法,可以一行代码完成复杂的操作。

下面的语句把1到100之间的数字生成一个由0和1组成的数组,偶尔是0,奇数是1:

[0 if x%2==0 else 1 for x in range(1,101)]

如果没有三元运算符,就不可能实现这么复杂的推导式。

关于推导式的更多知识会在专门的文章中讲解。

原文链接:http://www.zsiss.com/4881.html,转载请注明出处。

0

评论0

请先

爱分享推出ChatGPT国内镜像,无需魔法直接用!写文章,写代码,做PPT,做网站原创软文效果好到爆炸 https://chat.gcrup.com

社交账号快速登录