简介
Python发行在1991年,但在2018年之后才开始火遍全球。目前,在TIOBE榜单上,Python已经长期占据前五的位置,似乎看起来已经不可阻挡了。根据我个人的使用体验,它确实是一种易上手、生态活跃、语法简洁的编程语言。
亲测比较好用的学习资料如下:
- 小甲鱼《Python零基础入门学习》,b站有配套的视频
- PEP8开发规范
- 《Effective Python编写高质量Python代码的59个有效方法》,适合有一定Python开发经验的用户;
环境搭建
-
Python语言:Python可在官网直接下载。由于Python2在2021年之后就不再维护了,所以推荐使用Python3。下载安装之后,主要有如下三部分:
- Python语言;
- pip,用于安装第三方包;
- IDLE,官方自带的Shell编辑器,界面单调,适合于单脚本的函数式编程、demo测试;对于工程化开发几乎无法进行;
-
PyCharm:JetBrains公司开发的经典Python IDE,强力推荐作为开发Python的IDE。PyCharm分为社区版和专业版两种,前者免费,但扩展功能较少;后者收费,但功能非常齐全。对于编辑日常py脚本而言,社区版足矣;开发中大型工程,推荐专业版。专业版需破解。
-
VS Code:微软开源的文本编辑器,适合用于非调试状态下的文本查看、编辑。尽管网上有一些教程,可以将 VS Code 配置为 IDE,但本质上这并不是它的特长,因此老实的将其视为文本编辑器就好了;
-
Anaconda:一款不错的Python IDE,集成了Python语言、IPython编辑器、Spyder编辑器、conda包管理工具(Anaconda Prompt),以及上百种数据分析所常用的第三方包。即是说,安装了Anaconda之后,就不必安装Python了,因此该软件已经自带了Python语言。并且它是免费的。但同样,它的问题在于,其代码提示功能失常会失灵,真的是难以忍受;所以最后还是弃用了。不太推荐这款IDE,尽管不少人还在用;
第三方包
Python的一大利好,就是有着丰富的、易于安装和使用的第三方包。在请求网页、爬虫、数据分析、可视化等各个领域,几乎都有着现成的“轮子”。另外,利用cmd的pip安装需要的包,不推荐用PyCharm来安装,二者容易混淆;常见的Python包有requests、numpy、pandas、matplotlib、scipy、lxml、Scrapy、Flask等;
pip list # 显示目前安装的包及版本
pip install pandas # 下载并安装pandas包
pip uinstall pandas # 卸载pandas包
pip install --user --upgrade pandas # 升级第三方包
pip install pandas # 在安装好pandas后,再输入此命令,即可查看包在本机的安装目录
pip install pandas -i https://pypi.douban.com/simple/ --trusted-host pypi.douban.com # 用豆瓣镜像下载安装pandas包,提升下载速度
pip install --upgrade -i https://pypi.douban.com/simple/ pandas --trusted-host pypi.douban.com # 用豆瓣镜像升级pandas包
python3 -m pip list # Mac 系统下
业务场景
Windows系统的脚本
一般在Windows下开发一些单文件脚本,我喜欢用Python,然后用Windows自带的任务计划程度进行定时调度;这种方案可以实现快速调度、快速开发。
当然Linux环境也可以用Python,但是Linux默认的是Python2;因此Linux环境下我一般习惯用shell进行脚本开发。
小规模数据的机器学习
对于百万行以下的小规模数据,可以基于Python的pandas/ sklearn等包进行机器学习的模型开发;但是这种方案没有办法处理大规模的数据,只适合进行竞赛等小规模数据的场景。实际生产中,会使用Spark MLLib的分布式框架用于算法模型的落地,当然开发语言也可以选择Python/ Java/ Scala等。
Web开发
- Flask:轻量级的Web开发框架;
- Django:稍重的Web开发框架;
高级特性
-
列表推导式:列表推导式是一种简洁的语法,可以快速生成列表。
-
生成器:生成器是一种特殊的函数,可以逐个生成值,而不是一次性生成所有值。
-
装饰器:装饰器是一种特殊的函数,可以在不修改原函数代码的情况下,为函数添加额外的功能。
-
上下文管理器:上下文管理器是一种特殊的对象,可以在进入和离开代码块时执行特定的操作,例如打开和关闭文件。
-
迭代器:迭代器是一种特殊的对象,可以逐个访问集合中的元素,而不需要事先将集合中的所有元素存储在内存中。
-
多线程和多进程:Python 支持多线程和多进程编程,可以在同一时间执行多个任务。
-
协程:协程是一种轻量级的并发编程方式,可以在同一线程中执行多个任务。