查看原文
其他

Python3.8新秀海象符成功出道

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:王子一,中南财经政法大学金融学院

文字编辑:戴   雯 

技术总编:张馨月

爬虫俱乐部云端课程

  爬虫俱乐部于2020年暑期在线上举办的Stata与Python编程技术训练营和Stata数据分析法律与制度专题训练营在不久前已经圆满结束啦~应广大学员需求,我们的课程现已在腾讯课堂全面上线,且继续提供答疑服务。现在关注公众号并在朋友圈转发推文《来腾讯课堂学Stata和Python啦》或《8月Stata数据分析法律与制度专场来啦!》,即可获得600元课程优惠券,集赞50个再领200元课程优惠券!(截图发至本公众号后台领取)原价2400元的课程,现在只要1600元!     
大噶好!我是可爱的海象,来自海洋界,报名了Python3.8的选秀节目,最终凭借着我优秀且不失可爱的颜值成团出道!撒花~

  

从此我的艺名叫为赋值表达式,英文名字叫做Assignment Expressions,不过大家还是可以亲切的叫我海象符(也称海象运算符)~

  为何我凭颜值出道呢?因为我的眼睛和犬牙的造型与官方需要(:=)十分相像,所以我明明可以靠实力却非要靠颜值。海象符的用法和我的性格一样简单粗暴,其中 = 于赋值, : 于判断。接下来我会根据不同的应用情景为大家带来我的才艺表演——变量赋值!!

if语句

  传统的写法:

score = 75if score > 60: print("及格")
输出结果为:
海象符闪亮登场:
if(score := 75) > 60: print("及格")
输出结果为:

优秀!十分优秀!海象符的出现直接在if条件句中给score变量赋值,将两句代码缩为一句,可以避免score变量被调用两次,甚至是更多次。

while 循环

  下面我们看看海象符在while循环里如何大展身手。以计算10以内的所有奇数之和为例,传统的写法如下:

sum = 0n = 9while n > 0: sum = sum + n n = n - 2print(sum)

输出结果为:

试使用海象符来简化:

sum = 0n = 9while(n := n - 2) > 0: sum = sum + nprint(sum)

输出的结果为:

非常可惜,使用海象符并没有得到正确的结果QAQ。这是因为上述代码中赋值运算会在循环之前进行,即第一轮循环是从n=7开始,输出结果便为7+5+3+1=16。所以在运用海象符时,一定要理解它的运算过程和含义。

  get了海象符的真正含义,便可以灵活地应用在我们的代码中。比如,逐行读取文件内容的传统写法如下:

file = open("文件路径", "r")while True: line = file.readline() if not line: break print(line.strip())
海象符的出现,大大缩减了代码量,而且不易出错:
file = open("文件路径", "r")while (line := file.readline()): print(line.strip())

列表推导式

  传统的写法,如生成一个列表,列表元素为在0-100以内5的倍数的全部偶数,运行过程如下:

list=[]for x in range (0,20): num = x*5 if num%2 == 0: list.append(num)list
输出结果为:

使用海象运算符的写法:

list = [num for x in range(0,20) if (num:=x*5)%2==0]print(list)
输出结果为:

海象运算符可以将五句代码转化为一句,这样就简便了电脑的运算,也方便了列表的理解。这种列表推导式,也可以延伸到字典的推导,方法是一样的。

海象符的诞生会提高码农们的速度和效率,但是海象符只可以在Python3.8之上的版本进行应用,更新完Python系统的小伙伴们快来感受一下,熟悉一下吧,一起追赶Python的潮流,增添新的伙伴——海象符~




对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
“合”我在一起—merge
在Sustainability上发文最多的原来是这些高校

Python中的这些运算符你真的会用吗?

字符串函数总动员

用词云图看2020社科基金课题~
建议收藏!Python精选推文干货合集
xpose和sxpose,谁是卧底?
让你的数据一目了然--label命令介绍
Python推文合集基础篇(下)|算法简介
【小白指南】Python中有哪些数据类型?(附推文合集)
轻松获取通行数据——cntraveltime命令介绍
让Stata完美牵手中国地图之cnmapsearch
自然语言分析——利用NLTK进行文本预处理
寻找B站的最爱--8月B站全站榜爬虫
cnaddress命令——实现经纬度转换为中文地址
定位神器——cngcode
Python入门—Spyder的简单使用
关于我们


微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存