盘点Python中的神奇技巧
导语
大家好我是秦良秦影,今天我们来唠唠python的那些炫酷的小技巧,看完之后保证你写出来的代码b格满满的同时还能短小精悍。
目录 | 链式比较 |
变量值互换 | |
列表生成式 |
链式比较
我们先来看一个C的例子:
好,不难看出上述C的代码要实现的功能是对输入的数字进行判断,如果该数字在[-5,0]之间,那么就输出该数字。
那么接下来,我们要用python来实现这个代码,此时,秦良秦影的舍友出现了,大声bb道:“这个我熟!看我怎么写!”
嗯,很好,作为一个python初学者,能写成这样已经可以了。但是!我们今天的主题是什么?神奇技巧!我们要的代码是什么?B格满满!
那我们接下来就一起看一下,如何更python地写出这段代码:
这么一看是不是就高大上了不少!
变量值互换
相信不少小伙伴在编程过程中经常会涉及到变量值互换的问题,其中,小编想大部分人应当是这样写的:
当然,也有大佬是这么写的:
不过,上述这些都...不!够!简!洁!
让我们看一下如何更python地写出这段代码:
是不是很简单!别人一看:哇!这个人代码怎么可以这样写,他不怕我报错的吗?
列表生成式
现在让我们再来看看编程中常用的数组有关的技巧↓
假设我们要构造这样的一个数组:一共100个元素,是从1到100的自然数的平方,我们用C来写的话可以这么写:
这样看的话C的代码确实已经很短了,但是!对于python来说,还是太长了,完成一个目的居然要三行代码,这简直太不python了!这时,就要邀请我们今天要介绍的主角——列表生成式~
通俗来讲,列表生成式是python内置的"一句话生成列表"功能。用列表生成式来编写上述代码的话:
仅此一句话,便已经完成了要构造的数组的生成,是不是很简洁又很有B格~
接下来我们来解析一下这行代码:
在 for 前面的 x*x 是一个表达式,它必须根据 x 计算出一个结果,然后将这个结果追加进当前数组中;
for后面的x in range(1,101)是将x元素从1迭代到100,对每一次迭代的元素都执行前面的表达式,计算出结果之后存入列表中。接下来我们将这一行代码转化为python的一般写法,便于我们对比:
这样一对比,大家是不是明白了~
在 for 循环后面还可以加上 if 条件判断,这样可以对生成的列表元素做进一步筛选:
上述代码实现了仅向列表中添加偶数的平方,当然,也可以使用多重循环:
代码运行结果:
今天的技巧分享就到这里了,我是秦良秦影,我们下次再见~
扫码关注我们
微信号:
robomasters俱乐部upc
新浪微博:
UPC_RoboPioneers机器人俱乐部