Python学习笔记


简介

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脚本而言,社区版足矣;开发中大型工程,推荐专业版。专业版需破解。

    • 将 Python 加入操作系统的环境变量;
    • 将 pip.exe 加入操作系统的环境变量;
    • PyCharm软件没有自带python语言,因此在安装该IDE之前需要自行安装Python;
    • 设置字体大小
    • 设置中文界面
  • 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 支持多线程和多进程编程,可以在同一时间执行多个任务。

  • 协程:协程是一种轻量级的并发编程方式,可以在同一线程中执行多个任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值