Skip to content

Python入门核心笔记 ​

第1章 计算机与Python概述 ​

1.1 计算机基础组成 ​

1.1.1 计算机硬件五大部件 ​

计算机硬件由物理器件组成,分为5个逻辑部分:

  1. 运算器(ALU):完成加减乘除、与或非、移位等算术/逻辑运算
  2. 控制器:统一调度所有硬件有序工作
  3. CPU = 运算器 + 控制器,电脑核心处理单元
  4. 存储器:存放程序、原始数据、运算结果(内存、硬盘都属于存储器)
  5. 输入设备:向计算机传递信息:键盘、鼠标、扫描仪
  6. 输出设备:输出处理结果:显示器、打印机、音响

补充整理:上面列的 6 点是按"功能"拆的,但教材里常说的计算机五大部件是:运算器、控制器、存储器、输入设备、输出设备。 区别在于 CPU = 运算器 + 控制器,所以 CPU 不算独立的一大类。 记忆时把"运算器+控制器"合并成 CPU 理解就行,考试/面试答"五大部件"别把 CPU 再单列一项。

1.1.2 软件分类 ​

软件是一组有序指令集合,分为两类:

  1. 系统软件
    • 操作系统:Windows、Linux、MacOS、Android、iOS
    • 配套:硬件驱动、系统补丁
  2. 应用软件 日常工具软件:微信、QQ、Excel、爬虫程序、数据分析工具

1.1.3 代码两种翻译方式 ​

计算机只能识别二进制0和1,高级代码需要翻译,分为编译、解释:

类型翻译机制优缺点代表语言
编译型一次性全部翻译为二进制exe文件,运行前完成翻译运行速度快,分发不暴露源码C、C++
解释型运行时逐行翻译、逐行执行,无独立exe开发调试便捷,分发必须附带源码Python、JS、PHP

1.2 编程语言三代发展 ​

  1. 第一代 机器语言 纯二进制数字,直接操作硬件,可读性极差、无法跨设备移植。
  2. 第二代 汇编语言 使用LOAD、MOVE等英文助记符替代二进制,依旧绑定特定硬件,移植困难。
  3. 第三代 高级语言 语法贴近自然语言、数学公式,脱离硬件限制,跨平台通用,Python属于高级语言。

1.3 Python语言详解 ​

1.3.1 起源与设计思想 ​

  • 作者:荷兰人 Guido van Rossum(吉多·范罗苏姆)
  • 诞生:1989圣诞编写编译器,1991年发布第一个公开版本
  • 命名来源:喜剧《蒙提·派森飞行马戏团》
  • 核心哲学:优雅、明确、简单;一件事最好只有一种清晰写法

1.3.2 Python主流应用场景 ​

  1. 网络爬虫:批量抓取网页图文、数据,用于舆情、数据采集
  2. 数据分析/科学计算:Numpy、Scipy、Pandas
  3. AI、机器学习、深度学习:TensorFlow、PyTorch
  4. Web网站开发:Django、Flask轻量框架
  5. 运维自动化:批量服务器脚本、监控工具
  6. 办公自动化:批量处理Excel、Word、图片
  7. 桌面GUI、小型2D游戏开发(Pygame)

1.3.3 Python优缺点 ​

优点 ​
  1. 语法极简,新手学习门槛低
  2. 内置庞大标准库,第三方开源库海量,不用重复造轮子
  3. 完全开源免费,跨Windows/macOS/Linux全平台
  4. 支持交互式运行,单行代码即时测试
  5. 可嵌入C/C++代码提升核心运行速度
缺点 ​
  1. 解释执行,运行速度远慢于编译型C/C++
  2. 无法编译加密,发布程序必须提供源码
  3. GIL全局锁限制多线程并发性能

1.3.4 Python版本区分 ​

  1. Python2:2020年1月1日官方停止所有维护,与Python3不兼容,新项目禁用
  2. Python3:当前唯一主流版本
    • 2008发布3.0,不向下兼容旧版本
    • 课程使用稳定版:Python3.12.8

1.3.5 主流Python解释器 ​

  1. CPython:C语言编写官方原版,全网通用,本教程全部基于此
  2. IPython:增强交互式外壳,底层依旧依赖CPython
  3. PyPy:搭载JIT即时编译,大幅提升运行速度,少量语法存在差异
  4. Jython:运行在Java虚拟机,可和Java代码交互
  5. IronPython:运行在.Net平台,对接C#程序

第2章 Python快速入门(环境安装+运行方式) ​

2.1 Windows系统安装Python ​

  1. 官方下载地址:https://www.python.org/
  2. 安装包选型
    • Windows installer 64-bit:完整版开发包,新手学习首选
    • embeddable 精简包:仅用于嵌入第三方软件,不推荐初学者使用
  3. 安装关键步骤
    1. 打开安装程序,必须勾选 Add python.exe to PATH,自动配置系统环境变量,不勾选则cmd无法识别python命令
    2. 选择 Custom installation 自定义安装路径,避免使用C盘默认目录
    3. Optional Features 页面保持全部默认勾选,直接点击 Next
    4. 在 Advanced Options 中修改安装路径为纯英文、无空格的文件夹
    5. 安装完成后点击 Disable path length limit,解除Windows系统260字符的路径长度限制
  4. 安装验证 按下 Win+R 输入 cmd 打开命令提示符,执行以下命令:
    bash
    python --version
    正常输出版本号即代表安装成功

2.2 PyCharm IDE 安装与基础配置 ​

2.2.1 版本区别 ​

  1. 社区版(Community):永久免费,基础Python开发功能齐全
  2. 专业版(Professional):30天免费试用,支持Web开发、数据库、数据分析等扩展插件

2.2.2 新建项目解释器选项 ​

  1. Project venv(推荐默认):项目独立虚拟环境,每个项目的第三方包完全隔离,不会出现版本冲突
  2. Base Conda:Anaconda 数据科学专用环境,需提前安装 Anaconda 软件
  3. Custom environment:自定义选择本地已安装的Python解释器

2.2.3 高频开发快捷键 ​

快捷键功能说明
Ctrl + /单行/多行批量注释、取消注释
Ctrl + D复制当前整行代码
Ctrl + Alt + L一键格式化代码,自动符合PEP8规范
Shift + Enter光标不在行尾也可直接换行
Ctrl + F / Ctrl + R全局查找 / 全局替换

2.3 三种Python代码运行方式 ​

2.3.1 交互式命令行模式 ​

  1. 打开cmd输入python回车进入交互环境,提示符为>>>
  2. 输入一行代码立即执行,无需保存文件
  3. 适用场景:临时测试小段代码、简单数值计算
  4. 示例:
    python
    print("hello")

2.3.2 脚本文件模式 ​

  1. 创建后缀为.py的文本文件,写入完整代码后保存
  2. 在cmd中切换到文件所在目录,执行命令运行:
    bash
    python hello.py
  3. 适用场景:完整可复用程序,代码可长期保存

2.3.3 PyCharm IDE运行模式(日常开发主流) ​

  1. 在项目目录右键 → New → Python File,创建代码文件
  2. 在代码编辑区空白处右键,选择「Run 文件名」运行脚本
  3. 内置控制台、断点调试工具,一站式完成代码编写、运行与排错

2.3.4 入门示例:HelloWorld ​

python
# 第一个Python程序
print("hello world")

第3章 Python基础语法 ​

3.1 注释 ​

3.1.1 单行注释 ​

使用#开头,#之后本行所有内容都会被解释器忽略,不执行 编码规范:代码与#之间空两格,#后空一格再写注释内容

python
print(123)  # 打印数字123

3.1.2 多行注释 ​

使用三对单引号'''或三对双引号"""包裹,本质是多行字符串,仅用作代码说明,三引号不可嵌套

python
"""
多行注释区域
可换行编写代码功能说明
"""
print("测试文本")

3.1.3 注释的作用 ​

  1. 解释复杂业务逻辑,提升代码可读性
  2. 临时屏蔽暂不需要执行的代码,无需删除
  3. 用于函数、类的文档说明,可配合help()查看

3.2 变量与标识符命名 ​

3.2.1 变量定义规则 ​

Python无需提前声明变量类型,变量名 = 值的赋值操作会自动创建变量

python
# 单个变量赋值
age = 18
# 多变量同步赋值
num1, num2, num3 = 10, 20, 30
# 一行代码快速交换两个变量的值
a, b = 5, 8
a, b = b, a
print(a, b)  # 输出 8 5

3.2.2 标识符命名规则(变量、函数、类通用) ​

  1. 只能由字母、数字、下划线组成,不能以数字开头
  2. 严格区分大小写:Name 和 name 是两个完全独立的变量
  3. 禁止使用Python内置关键字,如if、for、while、def、class等

3.2.3 行业通用命名规范 ​

  1. 普通变量、函数:蛇形命名法(snake_case),示例:user_name、student_age
  2. 常量(人为约定):全部大写,示例:PI = 3.14159
  3. 类名:大驼峰命名法(UpperCamelCase),示例:UserInfo

3.2.4 常量说明 ​

Python语法层面没有真正不可修改的常量,全大写只是编码约定,代码中仍可修改变量的值

3.3 进制表示与进制转换 ​

3.3.1 四种进制字面量写法 ​

  1. 二进制:前缀0b,示例:0b1010
  2. 八进制:前缀0o,示例:0o12
  3. 十进制:普通数字,无前缀标识
  4. 十六进制:前缀0x,用a-f代表10~15,大小写均可,示例:0xa

3.3.2 进制转换内置函数 ​

接收十进制数字,返回对应进制的字符串

python
num = 10
bin(num)   # 转为二进制字符串 '0b1010'
oct(num)   # 转为八进制字符串 '0o12'
hex(num)   # 转为十六进制字符串 '0xa'

3.4 基础数据类型 ​

3.4.1 数值类型(不可变类型) ​

  1. int 整型
    • 支持无限大的数字,不存在数值溢出问题
    • 可用下划线分隔提升可读性:1_000_000 等价于 1000000
    • 小整数池:[-5, 256] 区间的整数全局复用同一内存地址,减少性能开销
  2. float 浮点型
    • 带小数的数字,存在精度丢失问题:0.1 + 0.2 = 0.30000000000000004
    • 高精度小数运算需导入decimal模块的Decimal类
  3. bool 布尔型
    • 仅有两个取值:True、False
    • bool是int的子类:True == 1、False == 0 结果为真,但True is 1结果为假(内存地址不同)
  4. complex 复数:仅用于科学计算场景,日常开发极少使用

3.4.2 字符串 str(不可变类型) ​

  1. 三种定义方式:单引号'内容'、双引号"内容"、三引号"""多行文本"""
  2. 原始字符串r"":关闭转义字符,常用于文件路径、正则表达式
    python
    print(r"D:\new\test.txt")  # \n不会被识别为换行符
  3. 编码与解码
    • encode("utf-8"):字符串 → bytes字节(用于网络传输、文件存储)
    • decode("utf-8"):bytes字节 → 字符串,编码格式必须一致,否则会出现乱码

3.4.3 空值 None ​

独立的特殊数据类型,代表“空、无数据”,与0、空字符串完全不相等

3.4.4 可变类型与不可变类型 ​

  • 不可变类型(修改值会开辟新内存空间):int、float、bool、str、tuple
  • 可变类型(可原地修改内存中的数据):list、set、dict

3.4.5 逻辑假值 ​

在条件判断中会自动判定为False的值: None、0、0.0、False、空字符串""、空列表[]、空元组()、空集合set()、空字典{}

3.5 数据类型转换 ​

3.5.1 隐式自动转换 ​

不同数值类型运算时,范围小的类型会自动转为范围更大的类型

python
# int + float 结果自动变为浮点型
print(2 + 3.5)  # 输出 5.5
# / 除法无论是否整除,结果永远是float
print(10 / 2)   # 输出 5.0

3.5.2 强制显式转换 ​

通过内置函数手动转换数据类型

python
int("666")    # 字符串转整数
float(8)      # 整数转浮点数
str(3.14)     # 数字转字符串

3.6 输入与输出 ​

3.6.1 input() 键盘输入 ​

input()接收的所有用户输入,默认数据类型都是字符串,用于数值计算时必须手动转换

python
age = int(input("请输入你的年龄:"))
print(age + 1)

3.6.2 print() 输出与格式化 ​

  1. 基础输出:用逗号分隔多个内容,自动添加空格
    python
    print("姓名:", "张三", "年龄:", 18)
  2. 控制末尾字符:print默认end="\n"自动换行,可自定义
    python
    print("不换行输出", end="")
  3. 三种常用字符串格式化写法
    python
    name = "李四"
    age = 20
    # 1. % 老式占位符
    print("姓名:%s,年龄:%d" % (name, age))
    # 2. format 格式化
    print("姓名:{},年龄:{}".format(name, age))
    # 3. f-string(Python3.6+ 推荐,最简写法)
    print(f"姓名:{name},年龄:{age}")

3.7 运算符全分类 ​

3.7.1 算术运算符 ​

+、-、*、/、//(向下取整整除)、%(取余数)、**(幂运算)

3.7.2 赋值运算符 ​

基础赋值:=、+=、-=、*=、/=、//=、%=、**= 特殊:海象运算符:=,可在判断表达式内部完成变量赋值

3.7.3 比较运算符 ​

==、!=、>、<、>=、<= 注意:不同基础数据类型之间不能进行大小比较

3.7.4 逻辑运算符 ​

and、or、not 短路特性:and左侧为假则直接终止判断;or左侧为真则直接终止判断

3.7.5 身份运算符 ​

is、is not

  • ==:仅对比两个变量存储的值是否相等
  • is:对比两个变量是否指向同一个内存地址(是否为同一个对象)

3.7.6 成员运算符 ​

in、not in 判断元素是否存在于字符串、列表、元组、集合等序列中

3.7.7 位运算符 ​

&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移) 基于二进制补码运算,多用于底层性能优化场景

3.7.8 运算符优先级(从高到低) ​

幂运算 > 正负号 > 乘除取模 > 加减 > 移位运算 > 位运算 > 比较运算符 > 逻辑运算符

3.8 PEP8 Python官方编码规范 ​

  1. 缩进统一使用4个空格,禁止Tab制表符与空格混用
  2. 单行代码字符不超过80个,单行注释不超过72个字符
  3. 使用空行分割不同功能代码块,禁止大量连续空行
  4. 行末尾禁止保留多余空白空格
  5. 不推荐使用分号分隔,在一行内写多条代码
  6. 所有.py源文件统一使用 UTF-8 编码