关于python,有哪些实用的知识点或者小技巧?

[复制链接]
关于python,有哪些适用的常识点大概小技能?
温馨提示:
好向圈www.kuaixunai.com是各行业经验分享交流社区,你可以在这里发布交流经验,也可以发布需求与服务,经验圈子里面禁止带推广链接、联系方式、违法词等,违规将封禁账号,相关产品信息将永久不予以通过,同时有需要可以发布在自己的免费建站官网里面或者广告圈, 下载好向圈APP可以加入各行业交流群 本文不代表好向圈的观点和立场,如有侵权请下载好向圈APP联系在线客服进行核实处理。
审核说明:好向圈社区鼓励原创内容发布,如果有从别的地方拷贝复制将不予以通过,原创优质内容搜索引擎会100%收录,运营人员将严格按照上述情况进行审核,望告知!
回复

使用道具 举报

已有(7)人评论

跳转到指定楼层
诚信为本945 发表于 2020-7-9 06:23:25
本文邀请pany来回答,以下是他基于工作经验罗列出来的关于python的一些实用知识点和小技巧,希望对你有所帮助~

文章不旨在概念的介绍和深挖,或者酷炫的第三方库介绍。更多是站在实用性角度简明快速罗列自认为颇为有用的知识点或者技巧。为提高代码的效率或可读性,便利性等添砖加瓦。经验之谈,欢迎交流和拍砖。
字符串

字符拼接,join。

关于python,有哪些实用的知识点或者小技巧?w1.jpg


这里需要强调下,任何字符相关的可迭代对象都可以使用join。除了set,tuple外,类句柄对象同样可以使用join。

关于python,有哪些实用的知识点或者小技巧?w2.jpg


关键字格式化
除了我们常用的 %s进行格式化外,其实还可以按照关键字格式化,对于比较多变量时的情况,有利于提高代码的可读性。

关于python,有哪些实用的知识点或者小技巧?w3.jpg


当然 format可以类似地

关于python,有哪些实用的知识点或者小技巧?w4.jpg


行分割

关于python,有哪些实用的知识点或者小技巧?w5.jpg


字符分隔
split(rsplit)其实时有第二个参数的,表示按顺序分隔几次,类似 ‘指定数目的非贪婪分隔’

关于python,有哪些实用的知识点或者小技巧?w6.jpg


内容重复的字符串

关于python,有哪些实用的知识点或者小技巧?w7.jpg


多行缩进处理
标准库的textwrap.dedent 可以删除源文本中各行行首的共同缩进部分

关于python,有哪些实用的知识点或者小技巧?w8.jpg



关于python,有哪些实用的知识点或者小技巧?w9.jpg


标准库textwrap还有其他一些方法处理文本格式,例如fill 设定行宽度和首行缩减,indent 添加行前缀等等。
字典

setdefault
给字典设置(增加)新的键,存在就不设置(获取当前key对应的值),不存在就设置并返回当前key对应的值

关于python,有哪些实用的知识点或者小技巧?w10.jpg


update,更新字典

关于python,有哪些实用的知识点或者小技巧?w11.jpg


fromkeys(seq [, value])
创建一个新字典,序列seq的元素为键,value为字典所有键对应的初始值(不指定为None)。
类似的功能其实也可以通过defaultdict来实现,后面会举例。

关于python,有哪些实用的知识点或者小技巧?w12.jpg


标准库collections 的 defaultdict 和 OrderedDict
defaultdict类接受一个类型作为参数,当所访问的键不存在的时候,可以实例化一个指定类型空值作为默认值
统计词频

关于python,有哪些实用的知识点或者小技巧?w13.jpg


defaultdict类还使用任何不带参的函数,该函数的返回值作为默认值,这样可以实现多层key默认值的指定。

关于python,有哪些实用的知识点或者小技巧?w14.jpg


所以defaultdict可以覆盖setdefault的使用场景,人倾向使用defaultdict,更加方便简洁
模仿 fromkeys

关于python,有哪些实用的知识点或者小技巧?w15.jpg


OrderedDict
python的字典是无序的, OrderedDict可以保留key的顺序信息
OrderedDict的Key会按照插入的顺序排列

关于python,有哪些实用的知识点或者小技巧?w16.jpg


json化后可以保留顺序

关于python,有哪些实用的知识点或者小技巧?w17.jpg


列表


生成式

关于python,有哪些实用的知识点或者小技巧?w18.jpg


生成式中的判断

关于python,有哪些实用的知识点或者小技巧?w19.jpg


生成式多层嵌套

关于python,有哪些实用的知识点或者小技巧?w20.jpg



关于python,有哪些实用的知识点或者小技巧?w21.jpg


但是多层生成式不推荐过度使用,可能会导致可读性更差。列表的索引有不少灵活的用法:

关于python,有哪些实用的知识点或者小技巧?w22.jpg



关于python,有哪些实用的知识点或者小技巧?w23.jpg


元素重复的序列
* 运算符可生成 元素重复的序列

关于python,有哪些实用的知识点或者小技巧?w24.jpg


在for循环中一同拿到索引和元素

关于python,有哪些实用的知识点或者小技巧?w25.jpg


其实 enumerate 函数的可使用范围也包括所有的可迭代对象
例如文件句柄

关于python,有哪些实用的知识点或者小技巧?w26.jpg


在列表中查找
除了使用index()方法返回查找元素的索引外。对于复杂点的元素可以使用生成器及其next方法

关于python,有哪些实用的知识点或者小技巧?w27.jpg


Set

集合生成式

关于python,有哪些实用的知识点或者小技巧?w28.jpg


实际上{1,2,3} 相当于 set([1,2,3])
set支持 len in join
删除元素: remove 和 discard
二者的区别在于,如果被指定删除的不存在时 remove 会抛出KeyError异常,而discard则不会

关于python,有哪些实用的知识点或者小技巧?w29.jpg


对集合添加多项

关于python,有哪些实用的知识点或者小技巧?w30.jpg


集合运算
推荐使用运算符而不是set方法函数,运算符看起来更简洁,有更好的可读性

关于python,有哪些实用的知识点或者小技巧?w31.jpg


如果读完此文对你有帮助,请点个赞或者转发让更多人知道哦~
回复

使用道具 举报

可以认识你么凰 发表于 2020-7-9 06:29:11
有段时间没推荐一些好的资源给大家了,明天就是周末了,又能愉快的玩耍了!今天推荐一些 Python 相关的书籍和教学视频,目的很简单,就是防止你周末过度浪,周末留给自己一些学习的时间也是蛮好的,你和大牛的差距不是在正常上班的8小时,而是在另外16小时上 。说了这么多,你懂的 。


《Python学习手册(第3版)》

内容简介:学习Python的主要内建对象类型:数字、列表和字典。使用Python语句创建和处理对象,并且学习Python的通用语法模型。使用函数构造和重用代码,函数是Python的基本过程工具。学习Python模块:封装语句、函数以及其他工具,以便构建较大的组件。学习Python的面向对象编程工具,用于组织程序代码。学习异常处理模型,以及用于编写较大程序的开发工具。了解高级Python工具,如装饰器、描述器、元类和Unicode处理等。





《“笨办法”学Python(第3版)》
是一本Python入门书籍,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,**终体验到软件开发的基本过程。



Python网络编程(第3版)
针对想要深入理解使用Python来解决网络相关问题或是构建网络应用程序的技术人员,结合实例讲解了网络协议、网络数据及错误、电子邮件、服务器架构和HTTP及Web应用程序等经典话题。具体内容包括:全面介绍Python3中新提供的SSL支持,异步I/O循环的编写,用Flask框架在Python代码中配置URL,跨站脚本以及跨站请求伪造攻击网站的原理及保护方法,等等。




用Python写网络爬虫 第2版
本书是使用Python 3.6的新特性来爬取网络数据的入门指南。本书讲解了从静态网站提取数据的方法,以及如何使用数据库和文件缓存技术来节省时间并管理服务器负载,然后介绍了如何使用浏览器、爬虫和并发爬虫开发一个更为复杂的爬虫。

借助于PyQt和Selenium,你可以决定何时以及如何从依赖JavaScript的网站上爬取数据,以及更好地理解在受CAPTCHA保护的复杂网站上提交表单的方法。本书还讲解了使用Python包(比如mechanize)进行自动化处理的方法、使用Scrapy库创建基于类的爬虫的方法,以及如何在真实的网站上实施所学的爬虫技巧。





Python的书籍还有很多,目前搜集到的电子书主要是以下几本,相信有这几本书籍助力,你的Python学习将会进步的更快!


关于python,有哪些实用的知识点或者小技巧?w1.jpg


另外,可能有些人是初学者,可能需要点基础视频,可能学的更好,我也已经整理好了,可以一起下载,视频和电子书!

关于python,有哪些实用的知识点或者小技巧?w2.jpg



关于python,有哪些实用的知识点或者小技巧?w3.jpg


以上Python相关的电子书和视频,直接关注我,并且回复:【Python】即可获得!
回复

使用道具 举报

扯了也白扯纳 发表于 2020-7-9 06:30:52
为大家详细介绍了Python入门必须知道的11个知识点,帮助更好地了解python,感兴趣的小伙伴们可以参考一下
Python被誉为全世界高效的编程语言,同时也被称作是“胶水语言”,那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因.
Python 简介
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。
Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
Python 发展历史
Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。
像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。
现在 Python 是由一个核心开发团队在维护,Guido van Rossum 依旧占据着至关重要的作用,指导其进展。
Python 特点
1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
2.易于阅读:Python代码定义的更清晰。
3.易于维护:Python的成功在于它的源代码是相当容易维护的。
4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
8.数据库:Python提供所有主要的商业数据库的接口。
9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。
10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
1、Python适用于哪些应用场景?
这个没有固定答案,很多人都说Python不适合开发GUI的程序,但Python自己的IDE——IDEL和第三方的IDE——Eric就是Python写的。
目前看到的更多的人是拿来写Web,使用如Django、web.py框架,没记错Flask也是。
也有一个情况用的比较多,用Python当胶水,与各种语言结合,共同完成某软件功能,注意观察也许你会发现在安装一些软件的时候会有Python的身影。
我个人还拿Python模拟过端口转发和DNS服务等,所以真的是要看真么用,而不是能怎么用。
另外大数据分析Python也是比较适合的,从载入到分析,再到保存结果等,Python有一整套的模块应对。
2、Python能够胜任大数据吗?
Python很适合做大数据相关的分析,内置的C编译的模块能应对常见的操作,个别极端的算法建议用C重写相关模块。
Python本身的特点更多的是高效率的开发和简单的维护,速度交给C去吧,更多的问题其实出自写代码的人没有更好的使用,而不是效率不够高。比如排序,本来Python有非常高效的内置C编译的模块,却非要自己写算法,这样的结果不慢都是奇怪的。
另外还要看需求是CPU密集型,还是IO密集型,如果是CPU密集型建议这部分操作由C实现,IO密集型的效率不会因为Python而有多少改变。
C的效率是高,但框架搭起来也费劲,所以还是结合着来吧,也因此,Python被称为胶水语言。
3、Python是否可以完全代替Shell?
完全可以,Shell的功能Python均可实现,而且代码量更少、结构更优、可阅读性更好,而Python可实现的功能Shell却不一定能,如运维中会用到的用于网络通信的Socket模块、用于WEB的Django框架、用于性能采集的psutil模块等,而且Shell对操作系统的命令依赖性较强,Python可在更大程度上规避。
在一个Shell的IDE是个很大的问题,虽然Python的原生IDE不怎么样,但第三方的IDE还是功能十分强大的,虽然不能和微软的Virtual Studio相媲美,但也是能完全满足Python的开发需求的。
再说下Python的效率问题,Python支持多进程、多线程以及协程(比线程更小一级),程序并发度是在Shell之上的。Python的核心模块基本都是用C实现的,因此效率更高。如有必要也可能将需要用Python实现的Python模块用C重写以提高效率,当然也可以直接用C Python,一个直接完全用C实现的Python解释器。
4、Python是否可以访问常见的数据库?
可以,Python可以访问常见的各种数据库,如Oracle、MySQL、Vertica、SQLServer等,加载相应的模块即可,模块列表如下:
Oracle:cx_Oracle
MySQL:MySQLdb
5、Python开发是面向过程、函数还是对象?
Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python中创建一个类和对象是很容易的,当然如果习惯面向过程或者函数的写法也是可以的,Python并不做硬性的限制。
Python的面向对象特征如下:
封装
面向对象程序设计中的术语对象(Object)基本上可以看做数据(特性)以及由一系列可以存取、操作这些数据的方法所组成的集合。传统意义上的“程序= 数据结构+算法”被封装”掩盖“并简化为“程序=对象+消息”。对象是类的实例,类的抽象则需要经过封装。封装可以让调用者不用关心对象是如何构建的而直接进行使用。
继承
类继承:
继承给人的直接感觉是这是一种复用代码的行为。继承可以理解为它是以普通的类为基础建立专门的类对象,子类和它继承的父类是IS-A的关系。
多重继承:
不同于C#,Python是支持多重类继承的(C#可继承自多个Interface,但最多继承自一个类)。多重继承机制有时很好用,但是它容易让事情变得复杂。
多态
多态意味着可以对不同的对象使用同样的操作,但它们可能会以多种形态呈现出结果。在Python中,任何不知道对象到底是什么类型,但又需要对象做点什么的时候,都会用到多态。方法是多态的,运算符也是多态的。
6、如何快速掌握Python?
阅读官方文档即可满足日常需求,官方文档有中文翻译,更加方便学习。但这些都是基础的语法和常见的模块,Python学习重要的是模块,快速、高效的开发依赖的是模块的应用,站在前人的肩膀会省时省力的多。
但学习Python其实最重要的是学习模块,而非语法本身,Python的语法十分简单,只要大学学过C或者数据结构课程,甚至完全没学过的人也是可以轻松掌握的。掌握了语法已经可以实现Shell的功能,但要想提高模块的学习必不可少,如运维人员经常用的有:
psutil:获取性能信息
socket:基本网络通信
IPy:IP地址相关处理
dnsptyhon:域名相关处理
difflib:文件比较
pexpect:屏幕信息获取,常用于自动化
paramiko:SSH客户端
XlsxWriter:Excel相关处理
其他还有很多很多功能模块,每天也不断的有新的模块、框架、组件产生,如用于与Java 做桥接的PythonJS,甚至Python还可以编写Map和Reduce。
7、Python是否有专用的IDE工具?
有,IDEL用Python实现的Python的IDE工具,但说实话,功能真心不咋地。我个人常用的IDE如下:
PyCharm
PyCharm是JetBrains开发的Python IDE。PyCharm用于一般IDE具备的功能,比如,调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持Google App Engine,更酷的是,PyCharm支持IronPython!
Wing IDE
Wingware的Python IDE兼容Python 2.x和3.x,可以结合Django,matplotlib,Zope, Plone,App Engine,PyQt,PySide,wxPython,PyGTK,Tkinter,mod_wsgi,pygame,Maya,MotionBuilder,NUKE,Blender和其他Python框架使用。Wing支持测试驱动开发,集成了单元测试,nose和Django框架的执行和调试功能。Wing IDE启动和运行的速度都非常快,支持Windows,Linux,OS X和Python versi。
NotePad++
简单、方便,但仅适合临时性的更改。
其他的还有:Eclipse withPyDev、Sublime Text、Komodo Edit、Pyer、The Eric Python IDE、Interactive Editor for Python
8、运用Python实现系统自动化监控有哪些常用方法?
准确的说应该是有哪些模块,健康监控肯定要有psutil来监控性能,还会用到通信的Socket,登陆的Paramiko、telnetlib,ftp的ftplib。
原理基本就是采集数据——本地处理数据——传输数据,如果做的比较完善可以再做个呈现数据,也可以吧数据发送给Zabbix等开源工具。
个人还用一个开源监控网络刺探的,超过指定次数就自动封杀。
9、Python可运行在那些平台?跨平台性如何?
支持常见的主流平台,如AIX、HPUX、Solaris、Linux、Windows等,除Windows外常见的Unix、Linux平台均带有原生的Python,但版本一般较低。关于跨平台和他跨平台语言一样,要注意有些个别模块是单一平台特有的,整体的跨平台性还是很好的,不必为适应多平台写多套代码。
但这不是说一点限制都没有:首先,同一个版本的中间文件.py和.pyc以及.pyo是跨平台的;其次,PC与移动终端,如:手机、Pad不可跨平台(原因见下一条);最后,不能跨处理器构架,如:Intel与ARM,64位与32位。
10、如何利用Python提高开发效率?
因为Python很多底层的东西不用自己写,模块资源丰富,运用得当开发效率当然会提升,而且各种框架也为快速开发提供了基础。
11、Python运行速度如何?
通常Java的速度比Python快些。Python调用C扩展除外(也可以直接用CPython)。
对于Python速度太慢的批评,Python语言作者Guido van Rossum说:
如果你开发的系统发现了性能瓶颈,通常最有效率的做法是找到出问题的代码块,用速度较快的语言如C或C++写一些代码替换该功能或该模块,而不是用C或C++重写整个系统,因为对大部分代码而言,语言的速度是无关紧要的。
学习是一个人最大的修养,通过学习不仅可以提升自己的境界,还能丰富知识,为以后的就业打下基础,学习Python更是一个发展自己的好机会,毕竟人工智能时代已经到来,Python作为人工智能时代的主力军是非常有前景的,梦想没有腐朽,一路还有汗流。加油!
回复

使用道具 举报

khp513738 发表于 2020-7-9 06:37:29
零基础入门Python,需要了解什么呢?接下来,就分享一些常见知识点给大家!看看你都掌握了吗?

1.Python是如何被解释执行的?
关于python,有哪些实用的知识点或者小技巧?w1.jpg


Python是一种解释型语言,它可以直接从源代码运行程序。程序员编写的源代码首先转变成一种中间语言代码,然后再被转换成能够直接执行的机器语言代码。
2.Python是如何进行内存管理的?
Python内存空间是以Python私有堆的形式进行管理的。所有的Python对象和数据结构都存放在一个私有堆中。解释器可以访问私有堆,而程序员不可以。
将Python堆空间中的内存分配给Python对象的工作是由Python内存管理器完成的。而内核API则会提供给程序员一些相关的工具来完成涉及到内存的编码工作。
3.能够找到程序中的bug进行静态分析的工具有哪些?
PyChecker是一种能够发现Python源代码中的bug并对其中的代码风格和复杂度进行警告的静态分析工具。另外一种工具是Pylint,它能够验证模块是否满足编码标准。
4.什么是Python装饰器?
一个Python装饰器是我们在符合Python语法的同时又方便地对函数做的一些特定的修改。
5.列表和元组的区别是什么?
列表和元组的区别是列表是可变的,而元组不可以。而且元组可以被散列,例如作为字典的键。
6.Python的迭代器是什么?
Python中的迭代器是用来迭代包含一组元素的容器的,如列表。
回复

使用道具 举报

停留在回忆男 发表于 2020-7-9 06:42:42
感觉知识点和小技巧得从书上和老师的讲解中,总结笔记得到了。实用度一般和自己的操作熟练度也有关系。我感觉还是先学会基础的内容比较好,基础扎实才能灵活运用,才有技巧产生。我现在也是惆怅基础部分,高楼大厦平地起,lz有进展可以互相交流下呀
回复

使用道具 举报

成为北海道农民 发表于 2020-7-9 06:45:32
  python是一门简单易学、功能强大、高效灵活的编程语言。它能够把用其他语言制作的各种模块很轻松地联结在一起,常被昵称为“胶水语言”。现在python这门语言的魅力和影响力已经远超Java、C、C++等编程语言前辈,越来越多的人选择python作为自己的职业发展方向。
对于准备学习python的小伙伴来说,最重要的是要弄清楚学python有哪些方向,这样才能更好的进行学习,下面重庆优就业老师给准备学python的小伙伴理一理方向。
  python的应用范围很广,这也就使得python的就业方向相对来说还是比较多的,首先是web方向,因为python学习的其中一个阶段就是python全栈开发,主要是学后端框架+项目实战,通过这一阶段的学习,学生不仅能够掌握js在网络前端中的使用,还能够把js作为一门通用语言来运用,为学生将来从事全栈工作打下坚实的基础,以后学员选择做一名web全栈开发工程师也是完全可以的。
  学python以后也可以选择人工智能方向发展,人工智能的各种算法都是基于python编写的,说白了如果你想学人工智能却不懂python,就相当于想学英语而不认识单词,所以说趁现在AI大势所趋,各位小伙伴们抓紧时间行动来学习python吧。
  学python的另一个方向是数据分析方向,掌握数据分析涉及到的相关概念,了解如何获取数据以及特征工程,熟悉相关模块的使用,这些都会在python学习中掌握,而且现在数据分析工程师的薪资待遇特别好,想要干活不累挣钱还多的小伙伴可以选择这个方向。
  掌握了python以后还可以选择的方向就是网络爬虫,python学习中的一个模块就是关于网络爬虫的学习,包括爬虫的工作原理和设计思想、反爬虫机制、分布式爬虫框架等,未来小伙伴们可以从事网络爬虫工程师或者是数据采集工程师。
回复

使用道具 举报

幸福890 发表于 2020-7-9 06:46:41
这个问题太笼统啦!python本来就以语法小巧强大著称!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

24小时热文