有一些评论,2024新版

web教程-- - 图1

PYTHON教程

1.简介

2.Python历史

3.安装Python

4.第一个Python程序

5.Python基础

6.函数

7.高级特性

8.函数式编程

8.1.高阶函数

8.1.1.map/reduce

8.1.2.filter

8.1.3.sorted

8.2.返回函数

8.3.匿名函数

8.4.装饰器

8.5.偏函数

9.模块

10.面向对象编程

11.面向对象高级编程

12.错误、调试和测试

13.IO编程

14.进程和线程

15.正则表达式

16.常用内建模块

17.常用第三方模块

18.图形界面

19.网络编程

20.电子邮件

21.访问数据库

22.Web开发

23.异步IO

24.FAQ

25.期末总结

简介 - Python教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

全目录

PYTHON教程

1.简介

2.Python历史

3.安装Python

3.1.Python解释器

4.第一个Python程序

4.1.使用文本编辑器

4.2.输入和输出

5.Python基础

5.1.数据类型和变量

5.2.字符串和编码

5.3.使用list和tuple

5.4.条件判断

5.5.模式匹配

5.6.循环

5.7.使用dict和set

6.函数

6.1.调用函数

6.2.定义函数

6.3.函数的参数

6.4.递归函数

7.高级特性

7.1.切片

7.2.迭代

7.3.列表生成式

7.4.生成器

7.5.迭代器

8.函数式编程

8.1.高阶函数

8.1.1.map/reduce

8.1.2.filter

8.1.3.sorted

8.2.返回函数

8.3.匿名函数

8.4.装饰器

8.5.偏函数

9.模块

9.1.使用模块

9.2.安装第三方模块

10.面向对象编程

10.1.类和实例

10.2.访问限制

10.3.继承和多态

10.4.获取对象信息

10.5.实例属性和类属性

11.面向对象高级编程

11.1.使用slots

11.2.使用@property

11.3.多重继承

11.4.定制类

11.5.使用枚举类

11.6.使用元类

12.错误、调试和测试

12.1.错误处理

12.2.调试

12.3.单元测试

12.4.文档测试

13.IO编程

13.1.文件读写

13.2.StringIO和BytesIO

13.3.操作文件和目录

13.4.序列化

14.进程和线程

14.1.多进程

14.2.多线程

14.3.ThreadLocal

14.4.进程 vs. 线程

14.5.分布式进程

15.正则表达式

16.常用内建模块

16.1.datetime

16.2.collections

16.3.argparse

16.4.base64

16.5.struct

16.6.hashlib

16.7.hmac

16.8.itertools

16.9.contextlib

16.10.urllib

16.11.XML

16.12.HTMLParser

16.13.venv

17.常用第三方模块

17.1.Pillow

17.2.requests

17.3.chardet

17.4.psutil

18.图形界面

18.1.海龟绘图

19.网络编程

19.1.TCP/IP简介

19.2.TCP编程

19.3.UDP编程

20.电子邮件

20.1.SMTP发送邮件

20.2.POP3收取邮件

21.访问数据库

21.1.使用SQLite

21.2.使用MySQL

21.3.使用SQLAlchemy

22.Web开发

22.1.HTTP协议简介

22.2.HTML简介

22.3.WSGI接口

22.4.使用Web框架

22.5.使用模板

23.异步IO

23.1.协程

23.2.使用asyncio

23.3.使用aiohttp

24.FAQ

25.期末总结

简介

web教程-- - 图2

廖雪峰
资深软件开发工程师,业余马拉松选手。

web教程-- - 图3

这是小白的Python新手教程,具有如下特点:

中文,免费,零起点,完整示例,基于最新的Python 3版本。

Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等。 那Python是一种什么语言? 首先,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。 比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。 所以Python是一种相当高级的语言。 你也许会问,代码少还不好?代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要10秒。 那是不是越低级的程序越难学,越高级的程序越简单?表面上来说,是的,但是,在非常高的抽象计算中,高级的Python程序设计也是非常难学的,所以,高级程序语言不等于简单。 但是,对于初学者和完成普通任务,Python语言是非常简单易用的。连Google都在大规模使用Python,你就不用担心学了会没用。 用Python可以做什么?可以做日常任务,比如自动备份你的MP3;可以做网站,很多著名的网站包括YouTube就是Python写的;可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。总之就是能干很多很多事啦。 Python当然也有不能干的事情,比如写操作系统,这个只能用C语言写;写手机应用,只能用Swift/Objective-C(针对iPhone)和Java(针对Android);写3D游戏,最好用C或C++。 如果你是小白用户,满足以下条件:
  • 会使用电脑,但从来没写过程序;
  • 还记得初中数学学的方程式和一点点代数知识;
  • 想从编程小白变成专业的软件架构师;
  • 每天能抽出半个小时学习。
不要再犹豫了,这个教程就是为你准备的! 准备好了吗?

web教程-- - 图4

Python历史

web教程-- - 图5

廖雪峰
资深软件开发工程师,业余马拉松选手。

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。如果你听说过TIOBE排行榜,你就能知道编程语言的大致流行程度。这是最近几十年最常用的10种编程语言的变化图:

web教程-- - 图6

总的来说,这几种编程语言各有千秋。C语言是可以用来编写操作系统的贴近硬件的语言,所以,C语言适合开发那些追求运行速度、充分发挥硬件性能的程序。而Python是用来编写应用程序的高级编程语言。 当你用一种语言开始作真正的软件开发时,你除了编写代码外,还需要很多基本的已经写好的现成的东西,来帮助你加快开发进度。比如说,要编写一个电子邮件客户端,如果先从最底层开始编写网络协议相关的代码,那估计一年半载也开发不出来。高级编程语言通常都会提供一个比较完善的基础代码库,让你能直接调用,比如,针对电子邮件协议的SMTP库,针对桌面环境的GUI库,在这些已有的代码库的基础上开发,一个电子邮件客户端几天就能开发出来。 Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。 除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。 许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA都大量地使用Python。 龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。 总的来说,Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。如果一个资深程序员向你炫耀他写的晦涩难懂、动不动就几万行的代码,你可以尽情地嘲笑他。 那Python适合开发哪些类型的应用呢? 首选是网络应用,包括网站、后台服务等等; 其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等; 另外就是把其他语言开发的程序再包装起来,方便使用。 最后说说Python的缺点。 任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢? 第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。 但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。

web教程-- - 图7

第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。 这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。 再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像Linux一样的开源代码,我们千万不要高估自己写的代码真的有非常大的“商业价值”。那些大公司的代码不愿意开放的更重要的原因是代码写得太烂了,一旦开源,就没人敢用他们的产品了。

web教程-- - 图8

当然,Python还有其他若干小缺点,请自行忽略,就不一一列举了。