全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货  >  Python技术干货  >  详情

如何让python代码更高效灵活

来源:千锋教育
发布人:wjy
2022-11-07

推荐

在线提问>>

  前言 : 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模块 .

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

 

相关文章

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

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

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

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

Python中布尔表达式练习

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取