Python开篇

本文更新中

1.引言

Python是一门弱类型编程语言,常用于数据分析,web开发,自动化测试和运维,爬虫,人工智能和机器人等领域

优点:

  • 易学易用,开发简洁直观,快速实现想法
  • 开发效率高,内置强大功能模块和包,社区活跃模块多
  • 跨平台
  • 能与底层语言高效协作计算,充当调度员
  • 应用领域广,运维脚本,数据处理,科学计算,爬虫,web开发,人工智能机器学习

缺点:

  • 运行速度慢,解释型语言
  • 代码不能加密,知识产权和漏洞暴露,可通过手段变成可执行文件
  • 内存消耗大

Python的发展史:

  • 1991, Python 0.9.0发布
  • 1994, Python 1.0发布,进入正式阶段
  • 2000, Python 2.0发布
  • 2008, Python 3.0发布,与2不兼容
  • 2010, Python 2.7发布,2.x最后版本
  • 2020.1, Python 2.x停止维护
  • 2020.10, Python 3.9发布
  • 2021, Python 3.10发布
  • 2021, Python 3.11发布,平均性能提升10% - 60%
  • 2023, Python 3.12发布,进一步优化性能和类型提示
  • 2024, Python 3.13发布
  • 2025, Python 3.14发布

2.安装与运行

3.语法

3.1 关键字

关键字 关键字 关键字 关键字 关键字 关键字 关键字 关键字
False None True and as assert async await
break class continue def del elif else except
finally for from global if import in is
lambda nonlocal not or pass raise return try
while with yield

可通过keyword标准库得到所有关键字

import keyword

if __name__ == '__main__':
   print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

3.2 函数

关于Python函数语法,可见:Python的函数

Python系统库内置了很多能直接使用的内部函数,以下是Python3.13内置函数:

https://docs.python.org/3.13/library/functions.html

函数名 简要说明 函数名 简要说明
abs() 返回一个数的绝对值 aiter() 返回异步迭代器对象
all() 判断可迭代对象中是否所有元素为真 anext() 返回异步迭代器的下一个元素
any() 判断可迭代对象中是否有元素为真 ascii() 返回对象的 ASCII 可打印表示
bin() 将整数转换为二进制字符串 bool() 返回布尔值 True 或 False
breakpoint() 进入调试器 bytearray() 创建可变字节序列
bytes() 创建不可变字节序列 callable() 判断对象是否可调用
chr() 将 Unicode 码点转换为字符 classmethod() 将方法转换为类方法
compile() 编译代码对象 complex() 创建复数
delattr() 删除对象的属性 dict() 创建字典
dir() 返回对象属性列表 divmod() 返回商和余数
enumerate() 返回枚举对象 eval() 计算字符串形式的表达式
exec() 执行编译后的代码字符串 filter() 用函数过滤可迭代对象
float() 将数字或字符串转换为浮点数 format() 格式化值
frozenset() 创建不可变集合 getattr() 获取对象属性
globals() 返回全局变量字典 hasattr() 判断对象是否有指定属性
hash() 返回对象的哈希值 help() 启动内置帮助系统
hex() 将整数转换为十六进制字符串 id() 返回对象的唯一标识
input() 读取用户输入 int() 转换为整数
isinstance() 判断对象是否为指定类的实例 issubclass() 判断是否为子类
iter() 返回迭代器对象 len() 返回长度
list() 创建列表 locals() 返回局部变量字典
map() 对可迭代对象应用函数 max() 返回最大值
memoryview() 创建内存视图对象 min() 返回最小值
next() 返回迭代器的下一个元素 object() 创建基础对象
oct() 将整数转换为八进制字符串 open() 打开文件
ord() 返回字符的 Unicode 码点 pow() 返回幂运算结果
print() 打印对象 property() 创建属性描述符
range() 生成整数序列 repr() 返回对象的可打印字符串表示
reversed() 反转序列 round() 四舍五入
set() 创建集合 setattr() 设置对象属性
slice() 创建切片对象 sorted() 返回排序后的列表
staticmethod() 将方法转换为静态方法 str() 转换为字符串
sum() 求和 super() 调用父类方法
tuple() 创建元组 type() 返回对象的类型
vars() 返回对象的 __dict__ 属性 zip() 聚合多个可迭代对象
__import__() 动态导入模块

4.数据结构

Python内置了很多类似Java的数据结构,例如列表,字典等,还有独有的元组,python还支持使用推导式,迭代器和 生成器来简化对数据结构对象的操作,详细可见:Python的数据结构,推导式、迭代器和生成器

5.面向对象

Python同样支持面向对象,有类和对象的语法结构,支持类方法,类属性,支持继承,多继承,普通多态和特有的鸭子多态,详见:Python中的类和对象

6.进程,线程和协程

并发和并行

  • 并发 一段时间内,CPU面对多任务,每个任务交替执行一段时间,对于某个瞬间,CPU只执行一个任务,通过高频的切换不同任务,每个任务都得到推进,仿佛在同时执行
  • 并行 依赖于多个物理或逻辑的CPU,同一时刻每个核心执行不同的任务,对于某个瞬间,每个CPU都在执行不同的任务,通过多CPU同时工作的方式,让多个任务同时在执行

在现代操作系统和CPU中,并发和并行往往同时存在

import os

print(os.cpu_count())

同步和异步

  • 同步 发起一个任务后,需要等待该任务完成,才能继续执行后续任务,当前执行流程会被阻塞
  • 异步 发起一个任务后,不必等待该任务完成(完成后仍可以通过特定方式获取结果),就能执行其他任务,执行流程不会被阻塞

CPU的核心数和运行速度,不会改变任务间的逻辑依赖关系,一堆任务之间被设定为同步关系,即使CPU核心再多,切换再快,也不会在一个任务没完成的情况下去启动另一任务


Python的进程,线程和协程

  • 进程 进程是操作系统进行资源分配的基本单位,每个进程拥有一块独立的内存空间
  • 线程 线程是进程内部的执行单元,一个进程可以含有不止一个线程,线程是操作系统进行CPU调度的基本单位,同一进程内的线程共享进程的资源
  • 协程 协程(coroutine),又叫微线程或虚拟线程,是一种用户态的上下文切换技术,python中的协程,是通过一种可以被挂起,并且挂起后还能恢复执行的函数来实现的

7.异常

8.常用类库

9.工程化

包和模块是Python语言封装功能和组织程序集的解决方案,类似Java中的package和C#中的namespace,将固定功能模块的代码聚合在一起,提高程序的复用性和可维护性,详见:Python中的模块和包

环境,就是python解释器 + 依赖包。python虚拟环境的作用就是实现环境的隔离,允许你在不同项目中使用不同的包版本和python版本,隔离项目依赖,避免了包冲突,确保项目的一致性和可移植性,这里以默认的虚拟环境为例,详见:Python全局环境和虚拟环境(venv)


"如果文章对您有帮助,可以请作者喝杯咖啡吗?"

微信二维码

微信支付

支付宝二维码

支付宝


Python开篇
https://blog.liuzijian.com/post/python/
作者
Liu Zijian
发布于
2024年9月20日
许可协议