为了能够有效的学习和应用下面的技巧,我们必须先掌握Python和编程的核心概念。
如上图中:下面绿色方块中的编程语言基础是我们必须先学好的部分,剩下的就是按需学习一个个模块。而左边黄色通用技术和高阶知识可以按需学习。
先来看看那些是必须要先学好的知识:
1.程序的基本结构:表达式,语句,循环,分支,代码块。
程序是由一个个语句组成的。有的语句就一行代码,如赋值语句;有的语句是一个甚至多个代码块,如循环语句和分支语句。语句中包含表达式。表达式表达了运算的过程,如算术运算,逻辑运算,函数调用等。总之,给你一段程序,你能熟练看懂它的结构。如果它的结构有问题,你能轻松的指出问题所在。
2.固定值,变量和变量类型
代码中操作的数据要么以固定值的形式出现,要么是以变量的形式出现,而变量要先定义再使用,没有定义就使用必然会报错。看到变量要意识到他是否已经定义了,在哪里定义的,它的作用范围是什么。有可能同名变量在多个地方都定义了,要清楚的知道当前是那个变量。另外,时刻意识到任何一个变量都是有它的类型的,整数,小数,字符串,列表还是第三方包定义的类。类型决定了它有哪些方法。
3.函数和作用域
清晰的理解函数的名称,参数,返回值等要素,以及变量的作用域。知道常用的Python自带函数,如len()等。有些函数来源于某个模块,有些函数属于某个类,有些函数是我们自己定义的。不管变量还是函数都有其使用范围,有它们所属的命名空间。
4.面向对象
Python是一个面向对象的编程语言,我们要使用的各种Python自带的包或者第三方包大都是以面向对象的形式写的。理解类和实例的区别,以及相应的实例变量和类变量,实例方法和类方法等。
5.模块和包
模块和包是Python组织代码的方式。熟悉import的几种用法。能熟练的使用pip安装,更新和卸载包。对于中国程序员,会配置pip的中国镜像站点。
1.type - 了解类型
在写代码中,在学习新包的过程中,我们也要知道这个包中主要有哪些类,当前处理的这个变量是什么类型,否则程序报了错你都不知道怎么回事。 使用type()函数可以了解变量的类型。
import requests
res = requests.get('https://www.baidu.com')
type(res)
使用requests.get()方法抓取百度的首页,返回的不是字符串,而是一个Response对象。知道了它的类型,我们可以深入研究Response对象包含哪些属性和方法。不管在搜索相关资料,还是讨论相关问题中,都会更加有效。
requests是什么呢?请记住,所有的变量和固定值都属于某个类型。
type(requests)
requests是一个模块,说的简单点就是一个python文件,里面定义了一些全局变量和函数。有哪些变量和函数呢?它的源代码在哪里呢?请继续阅读。
2. dir - 查看有哪些变量和函数 dir可以查看一个模块或者一个类中有哪些变量和函数,以requests为例:
dir(requests)
['ConnectTimeout', 'HTTPError',..., 'warnings']
dir返回一个list,里面包含当前类或者模块中的:全局变量,函数,类,子模块等。
3. help - 查看详细文档
通过help,可以查看函数或者类的详细文档
import turtle
help(turtle)
命令行会显示详细的turtle文档: 也可以查看一个具体函数的文档,下面来查看turtle包中的Turtle类的fd函数的说明:
help(turtle.Turtle.fd)
这里就容易懂多了,不仅说明了函数的功能,还给了代码例子。
官方文档通常是最好的学习资料之一
1.去Python的官方文档站:https://docs.python.org/3/
2.在网页的左上角,选择简体中文和Python版本
3.就可以看到各种文档了,初学者可以先看入门教程,有明确目的可以看语言参考或者标准库参考。
4.也可以在右上角搜索关键词:
5 学习新的包 程序员之间有一句话叫做“不要重复造轮子”,意思是说你要解决的问题很可能有人已经帮你做好了,你只要拿来用就行了。在Python的世界里,就是找到合适的包。
5.1 确定用什么包 以处理Excel为例,有很多处理Excel的包,有的可能是给老版本Python使用的。我们要花点时间确定那个包是最适合的。 最简单的方式是直接搜索一下,看看大家怎么说。搜索的格式建议为:Python 关键词 包 不要着急下结论,认真读完前面几个文章,看看大家推荐什么,这些不同的包之间有什么区别,适用于什么场合。耐心一点,这里花1个小时找对包,后面可以节省你几个小时,甚至几天的时间。假设我们确定要使用openpyxl,就可以继续下一步了。
5.2 找到包的主页 确定了包的名字就可以去找到包的官方主页了。https://pypi.org是Python的包的大本营。上这个网站,搜索你确定的包的名字:可以看到除了基本介绍,还有一些代码参考,以及官方文档的地址。
5.3 找到包的文档 查看官方文档是很重要的。有时候官方文档的链接可能在网页的左边栏。总之认真在页面上找到官方文档的地址,然后进入官方文档:进入官方文档后,剩下的就是认真看文档的内容了。大部分包的文档质量都很好,包含了常见的用法和要解决的各种问题。有的甚至有中文的文档,认真在网页上找一下,看看有没有中文文档的链接。也可以搜索一下,用谷歌搜索“openpyxl 官方文档 中文”第一条就是中文的官方文档。用百度搜质量就很差了,慢慢找也可以找到这个网站。
5.4 运行文档中给的参考代码 接下来,尝试运行文档中给的参考代码,至少是前面几段最重要的参考代码,一步步走下去。走完以后,你就对这个包就有不错的理解了,可能已经知道如何解决你自己的问题了。
5.5看源代码 学习一个模块,更高点的境界是直接看它的源代码,你甚至可以为了去修改它的源代码。使用__file__属性可以找到源代码的所在地,Python自带的函数和部分模块是用C语言写的,无法看到Python的源代码。
turtle.__file__
'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/turtle.py'
import openpyxl
openpyxl.__file__
'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/openpyxl/__init__.py'