千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:北京千锋IT培训  >  技术干货  >  Python技术干货  > 如何让python代码更高效灵活

如何让python代码更高效灵活

来源:千锋教育
发布人:wjy
时间: 2022-11-07 10:56:00

  前言 : Python很强大,毋庸置疑,魅力无限,掌握起来不像看起来那么容易,在你初步了解了python的语言特性和基本语法以后,让我们深入探讨一下关于代码的高效性和可优化型的问题,如果程序员对于python的特性没有足够的了解,在未来开发中将会遇到严重的问题,开发一款软件,不等于开发一款优秀的软件。

  python开发者用pythonic来形容python风格的代码,这是世界上广大开发者形成的习惯,协作性更强,虽然语言风格每个人都有所不同,但是有的思路并不是那么的简洁而高效.

如何让python代码更高效灵活

  1 . PEP8

  全称:,针对python代码风格编订的指南,虽然我们平时的语法只要是对的,就可以编写出想要的效果,但是如果遵循一样的风格来编写,可以增加代码可读性,以下一部分内容针对PEP8的细节进行解析和描述,希望大家完整的阅读下这份编码指南:

  使用空格表示缩进:在python中没有像c语言像java一样使用括号来进行函数变量等的区域限制,而是使用了缩进,通常人会用[tab]制表符来表示缩进,实际上在PEP 8中,并不提倡用tab表示缩进,因为tab在不同的编辑器中所呈现的不一样,五花八门,对于需要共享编辑的团队型项目而言,一个tab会是灾难性的存在,所以不提倡用[tab]进行缩进,尽管他很方便.

  语法中每一层缩进使用四个空格 : python的缩进功能可以有效防止代码的堆积 .

  每行字符数目不超过79 .

  类文件中函数和类之间应该相隔两个空行 .

  获取list元素时候,或者赋值的时候,切莫在两端加上无谓的空格 .

  为变量赋值时候 : a = 3而尽量不要 : a=3 .

  函数变量与属性之间尽量用下划线连接,清晰可见 : function_int

  类文件中的实例,第一个参数应该是本身,也就是(self)

  一般检测list是否为空,初学者用的是len(list) == 0 , 实际上python中并不提倡类似的做法而使用if not somelist

  2. 从list的切片(slice)说起

  python中的list类似于c语言中的数组,并且对于数组有着更高的灵活性,在python中应用广泛,python对于list的函数有很多,使用方法更是灵活多变,其可以说是使用最多的python元素了,以下是来自谷歌公司对于list中的切片(slice)规范的一些特点 :

  切割的规定文件格式是 : list[start:end],前面的start的元素在切割后的切片(slice)里面,而不同的是end所指向的元素并不在切片(slice)中

  如果切片(slice)从第一个元素开始,也就是0下标开始,那么一般我们在写的时候不必将其写出 , list[:7] 而不提倡 list[0:7] 留空的代码更易于直观理解,同样道理,不提倡在尾部写上最后的len(list) .

  在由list尾部向前遍历的时候可以使用负值表示偏移数目 .

  在python中使用上例中的start 与 end切割列表即使越界也不会有大问题,但是在遍历元素时候,如果越界,会导致异常 : list index out of range .

  list[-0:]会成为对原list的复制 .

  在list切片(slice)操作中如果两个长度不同,依然可以进行操作例如 : list[a,b,c,d,e,f,g,h] --- list[2:6] = [1,2,3] --- list会变成[a,b,1,2,3,g,h]

  除了start 和 end 的操作,python还提供了list[start:end:stride],得到特殊的切片(slice) , 比如 : list[::2]就是从头开始步长为2取出元素.官方文档中提供了详细的说明.这里我们不再赘述 .

  以上的切割方法,会在内存中留下一份数据浅层拷贝 , 如果你不希望浪费这些内存,那就需要用到python中的itertools模块 .

注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!此页面下方声明无效!

 

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

用Python预测世界杯决赛最后的赢家,没想到准确率还挺高!!

2023-01-07

Python模式匹配与正则表达式

2022-11-07

python基础-面向对象编程

2022-11-07

最新文章NEW

总结了30段极简的Python代码!

2023-01-07

20个非常有用的Python单行代码

2022-11-15

Python中的可变对象与不可变对象

2022-11-14

相关推荐HOT

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>