Python 编程基础全面综述
一、文章概述
本文涵盖了从环境搭建到异常处理等十大核心模块。以"理论 + 代码示例"的方式,循序渐进地讲解了 Python 编程的基础知识,适合零基础读者入门学习。
二、文章核心内容梳理
2.1 Python 概述与环境搭建
| |
|---|
| 诞生时间 | 1989 年由 Guido van Rossum 设计,1991 年首次发布 |
| 语言类型 | |
| 核心优势 | |
2.2 基础语法三要素
- 注释:单行用
#,多行用三引号 """...""" - 缩进:Python 用缩进(通常 4 个空格)代替大括号来表示代码块,这是 Python 最鲜明的特色
- 语句与换行:支持反斜杠
\ 续行,括号内可自由换行
# 缩进示例 — Python 用缩进区分代码层级defgreet(name):if name: print(f"你好, {name}!") # 缩进 4 个空格
小结:缩进不仅是规范,更是语法的一部分。这是 Python 与 C/Java 等语言最大的区别之一。
2.3 变量与数据类型
变量特点
- 多重赋值:支持
a, b = 1, 2 以及 a, b = b, a 优雅交换
四大数据类型
| | | |
|---|
| int | 42 | |
| float | 3.14 | |
| str | "Hello" | |
| bool | True | |
字符串格式化演进
# 方式一:% 格式化(传统)"姓名:%s,年龄:%d" % ("张三", 25)# 方式二:format() 方法"姓名:{},年龄:{}".format("张三", 25)# 方式三:f-string(推荐,Python 3.6+)f"姓名:{'张三'},年龄:{25}"
小结:Python 的动态类型系统让编码更灵活,但也需要注意类型转换和类型检查(type() / isinstance())。
2.4 运算符体系
运算符├── 算术运算符:+ - * / // % **├── 比较运算符:== != > < >= <=├── 赋值运算符:= += -= *= /= //= %= **=├── 逻辑运算符:and or not├── 位运算符:& | ^ ~ << >>├── 成员运算符:in not in└── 身份运算符:is is not
值得注意的 Python 特色:
- 链式比较:
18 <= age <= 60 等价于 age >= 18 and age <= 60 - **整除
//**:10 // 3 = 3,区别于 / 的浮点除法 - **幂运算
****:2 ** 10 = 1024 - **
is vs ==**:is 比较对象身份(内存地址),== 比较值
小结:运算符优先级遵循 not > and > or,括号可以改变优先级。
2.5 输入与输出
| | |
|---|
print() | | sep(分隔符)、end(结束符)、file(输出到文件) |
input() | | |
# 格式化输出技巧print(f"{3.14159:.2f}") # 保留两位小数 → 3.14print(f"{0.25:.1%}") # 百分比格式 → 25.0%print(f"{123456:,}") # 千位分隔符 → 123,456# 一行输入多个值a, b, c = map(int, input().split())
小结:print() 的 sep 和 end 参数非常实用,input() 记得做类型转换。
2.6 流程控制
条件语句
# if-elif-else 结构if score >= 90: grade = "优秀"elif score >= 60: grade = "及格"else: grade = "不及格"# 三元表达式(简洁写法)status = "成年"if age >= 18else"未成年"
循环语句
| | |
|---|
while | | |
for | | 配合 range()、enumerate()、zip() 使用 |
循环控制
- **
continue**:跳过本次迭代,进入下一轮 - **
for-else / while-else**:循环正常结束时执行 else 块(被 break 中断则不执行)
小结:Python 的 for-else 语法是独特设计,常用于搜索场景——找到目标就 break,没找到则执行 else。
2.7 四大数据结构
| | | | |
|---|
| 可变性 | | | | |
| 有序性 | | | | |
| 重复元素 | | | | |
| 语法 | [1, 2, 3] | (1, 2, 3) | {"a": 1} | {1, 2, 3} |
| 索引访问 | | | | |
列表推导式 — Python 的"语法糖"
# 列表推导式:一行代码生成列表squares = [x**2for x in range(10)]evens = [x for x in range(20) if x % 2 == 0]# 字典推导式word_count = {word: len(word) for word in ["hi", "hello", "hey"]}# 集合推导式unique_lengths = {len(word) for word in ["hi", "hey", "yo"]}
集合运算 — 数学集合的直接映射
A = {1, 2, 3, 4}B = {3, 4, 5, 6}A | B # 并集 → {1, 2, 3, 4, 5, 6}A & B # 交集 → {3, 4}A - B # 差集 → {1, 2}A ^ B # 对称差集 → {1, 2, 5, 6}
小结:列表最常用,元组适合存储不变数据,字典是键值映射的首选,集合擅长去重和集合运算。
2.8 函数
参数类型全景
deffunc(a, b=10, *args, c=20, **kwargs):""" 参数顺序:位置参数 > 默认参数 > *args > 关键字参数 > **kwargs """pass
| | |
|---|
| def f(a, b) | |
| def f(a, b=10) | |
| def f(*args) | |
| def f(**kwargs) | |
| def f(a, *, b) | * |
作用域规则 — LEGB
L (Local) → 函数内部E (Enclosing) → 外层嵌套函数G (Global) → 模块全局B (Built-in) → Python 内置
Lambda 与递归
# Lambda:匿名函数,适合简单逻辑square = lambda x: x ** 2# 配合 map / filter 使用result = list(map(lambda x: x**2, [1, 2, 3])) # [1, 4, 9]# 递归 + 记忆化(lru_cache 优化)from functools import lru_cache@lru_cache(maxsize=None)deffibonacci(n):if n <= 1:return nreturn fibonacci(n-1) + fibonacci(n-2)
小结:函数是代码复用的基本单位。掌握参数类型和作用域规则是写出清晰 Python 代码的关键。
2.9 常用内置函数速查
| | |
|---|
| 数学 | abs(), pow(), round(), sum(), max(), min() | |
| 类型转换 | int(), float(), str(), bool(), list(), dict() | |
| 序列操作 | len(), sorted(), reversed(), enumerate(), zip() | |
| 逻辑判断 | all() | |
| 对象检查 | type(), isinstance(), id(), callable() | |
小结:zip() 和 enumerate() 是遍历时的好搭档,isinstance() 比 type() 更推荐用于类型检查。
2.10 异常处理
# 完整的异常处理结构try: result = 10 / numexcept ValueError: print("输入无效")except ZeroDivisionError: print("不能除以零")except Exception as e: print(f"未知错误: {e}")else: print("没有异常时执行")finally: print("无论如何都执行")
关键概念:
| |
|---|
try | |
except | |
else | |
finally | |
raise | |
assert | 断言,条件不满足时抛出 AssertionError |
小结:良好的异常处理能让程序更健壮。生产代码中应尽量捕获具体的异常类型,而非笼统的 Exception。
三、知识体系总览
Python 基础知识体系│├── 🖥️ 环境搭建│ ├── 安装 Python(Win / Mac / Linux)│ └── 开发工具(PyCharm / VS Code / Jupyter)│├── 📝 基础语法│ ├── 注释(# / 三引号)│ ├── 缩进(4 空格)│ └── 语句与换行│├── 📦 变量与类型│ ├── 数字(int / float / complex / bool)│ ├── 字符串(格式化 / 方法)│ └── 类型转换(int() / str() / float())│├── ➕ 运算符(7 大类)│├── 📥 输入输出(print / input)│├── 🔀 流程控制│ ├── 条件(if / elif / else / 三元表达式)│ ├── 循环(while / for / range)│ └── 控制(break / continue / else)│├── 🗂️ 数据结构│ ├── 列表 list(可变、有序)│ ├── 元组 tuple(不可变、有序)│ ├── 字典 dict(键值对)│ └── 集合 set(去重、集合运算)│├── 🔧 函数│ ├── 定义与调用│ ├── 参数类型(6 种)│ ├── 作用域(LEGB)│ ├── Lambda 匿名函数│ └── 递归│├── 🛠️ 内置函数│└── 🛡️ 异常处理 ├── try / except / else / finally ├── raise / assert └── 自定义异常
四、总结与建议
| |
|---|
| 入门期 | |
| 巩固期 | |
| 进阶期 | 补充学习 OOP、模块化、文件 I/O、正则表达式等主题 |
| 实践期 | 做一个小项目(如计算器、爬虫、数据分析),将知识串联起来 |
一句话总结:Python 的语法简洁优雅,但"简单"不等于"容易"——真正的能力来自于大量的动手实践。