Python 学习笔记
Python 简介
- 特点:
- 语法简洁:代码可读性高,接近自然语言。
- 解释型语言:无需编译,一行一行执行,开发效率高。
- 动态类型:变量类型在运行时确定,无需预先声明。
- 功能强大:拥有丰富的标准库和第三方库(“电池 included”)。
- 跨平台:可在 Windows, macOS, Linux 等多种操作系统上运行。
- 应用领域:Web 开发、数据科学、人工智能、自动化脚本、网络爬虫、游戏开发等。
基础语法
变量与数据类型
-
变量赋值:使用 进行赋值,无需指定类型。
(图片来源网络,侵删)name = "Alice" # 字符串 age = 30 # 整数 height = 5.6 # 浮点数 is_student = True # 布尔值
-
基本数据类型:
str(字符串):用单引号 或双引号 括起来。greeting = 'Hello, World!'
int(整数):没有小数部分的数字。float(浮点数):带小数点的数字。bool(布尔值):True或False,常用于条件判断。
-
复合数据类型:
list(列表):有序、可变、可容纳任意类型元素的集合。fruits = ["apple", "banana", "cherry"] fruits.append("orange") # 添加元素 fruits[0] = "pear" # 修改元素tuple(元组):有序、不可变的集合,一旦创建,不能修改。coordinates = (10.0, 20.0) # coordinates[0] = 5.0 # 这行会报错
dict(字典):无序、键值对 集合,键 必须是唯一且不可变的。person = {"name": "Bob", "age": 25, "city": "New York"} print(person["name"]) # 通过键访问值set(集合):无序、不重复元素的集合,常用于去重和数学运算。unique_numbers = {1, 2, 2, 3, 4, 4, 5} # 结果为 {1, 2, 3, 4, 5}
运算符
- 算术运算符:, , , (浮点除法), (整除), (取余), (幂)。
- 比较运算符:, ,
>,<,>=,<=,返回布尔值。 - 逻辑运算符:
and,or,not。 - 成员运算符:
in(检查元素是否存在),not in。print("apple" in fruits) # True - 身份运算符:
is(检查两个变量是否指向同一个对象),is not。
控制流
-
条件语句:
if age >= 18: print("Adult") elif age >= 13: print("Teenager") else: print("Child") -
循环语句:
(图片来源网络,侵删)-
for循环:用于遍历序列(如列表、元组、字符串、字典等)。# 遍历列表 for fruit in fruits: print(fruit) # 遍历数字范围 for i in range(5): # 生成 0, 1, 2, 3, 4 print(i) -
while循环:当条件为True时,重复执行代码块。count = 0 while count < 5: print(count) count += 1 -
break:跳出整个循环。 -
continue:跳过本次循环,直接进入下一次循环。
-
函数
-
定义函数:使用
def关键字。def greet(name, greeting="Hello"): # greeting 是默认参数 """这是一个文档字符串,用于说明函数功能。""" return f"{greeting}, {name}!" message = greet("Charlie") print(message) # 输出: Hello, Charlie! -
参数类型:
- 位置参数:按顺序传递。
- 关键字参数:按参数名传递。
- 默认参数:定义时给默认值。
- 可变参数 (
*args):接收任意数量的位置参数,并将其打包成一个元组。 - 可变关键字参数 (
**kwargs):接收任意数量的关键字参数,并将其打包成一个字典。
模块与包
-
模块:一个
.py文件,包含相关的函数、类和变量。 -
导入模块:
# 导入整个模块 import math print(math.sqrt(16)) # 导入特定函数 from math import pi print(pi) # 导入并使用别名 import numpy as np
-
包:一个包含多个模块的目录,通常有一个
__init__.py文件。
进阶概念
面向对象编程
-
类:创建对象的蓝图,定义了对象的属性和方法。
-
对象:类的实例。
-
self:代表类的实例本身,在调用方法时由 Python 自动传递。 -
构造函数:
__init__方法,在创建对象时自动调用。class Dog: def __init__(self, name, breed): self.name = name self.breed = breed def bark(self): return f"{self.name} says Woof!" my_dog = Dog("Rex", "German Shepherd") print(my_dog.bark()) # 输出: Rex says Woof!
文件操作
-
打开文件:使用
open()函数,推荐使用with语句,它能自动处理文件关闭。# 写入文件 with open("my_file.txt", "w") as f: # "w" 表示写入模式,会覆盖文件 f.write("Hello, Python!") # 读取文件 with open("my_file.txt", "r") as f: # "r" 表示读取模式 content = f.read() print(content) -
常用模式:
"r":读取 (默认)"w":写入 (覆盖)"a":追加"b":二进制模式 (如"rb","wb")
异常处理
- 使用
try...except...finally结构来捕获和处理程序运行时可能发生的错误,使程序更健壮。try: num = int(input("请输入一个数字: ")) result = 10 / num print(f"结果是: {result}") except ValueError: print("输入无效,请输入一个数字!") except ZeroDivisionError: print("不能除以零!") finally: print("程序执行完毕。")
推导式
- 一种简洁、高效创建列表、字典、集合的方式。
- 列表推导式:
# 创建一个包含 0-9 平方的列表 squares = [x**2 for x in range(10)] # 等价于: # squares = [] # for x in range(10): # squares.append(x**2)
- 字典推导式:
# 创建一个数字及其平方的字典 square_dict = {x: x**2 for x in range(5)} # 结果: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Pythonic 风格与最佳实践
- PEP 8:Python 的官方代码风格指南,遵循它能让你的代码更易读、更专业。
- 使用 4 个空格缩进。
- 行长建议不超过 79 个字符。
- 使用下划线命名变量和函数 (
snake_case)。 - 使用大写字母命名常量和类 (
UPPER_CASE,PascalCase)。
- 虚拟环境:为每个项目创建独立的 Python 环境,避免包版本冲突。
- 创建:
python -m venv myenv - 激活:
- Windows:
myenv\Scripts\activate - macOS/Linux:
source myenv/bin/activate
- Windows:
- 创建:
- 列表/字典/集合的常用方法:
list.append(),list.pop(),list.remove()dict.keys(),dict.values(),dict.items(),dict.get()(安全获取值)set.add(),set.remove(),set.union(),set.intersection()
常用标准库
os:与操作系统交互,如文件路径操作 (os.path)、环境变量 (os.environ)。sys:与 Python 解释器交互,如获取命令行参数 (sys.argv)、退出程序 (sys.exit())。json:用于 JSON 数据的编码和解码。import json data = {"name": "David", "age": 40} json_str = json.dumps(data) # 转为 JSON 字符串 parsed_data = json.loads(json_str) # 从 JSON 字符串转为字典datetime:处理日期和时间。from datetime import datetime, timedelta now = datetime.now() yesterday = now - timedelta(days=1)
collections:提供额外的数据类型,如defaultdict,Counter,deque。itertools:创建高效循环的迭代器工具。
学习路径建议
- 打好基础:熟练掌握第二部分“基础语法”,特别是数据类型、控制流和函数,这是所有后续学习的基础。
- 动手实践:不要只看不练,尝试用 Python 解决小问题,
- 编写一个简单的计算器。
- 写一个脚本批量重命名文件。
- 爬取你喜欢的网站的标题。
- 学习 OOP 和文件操作:这是构建大型应用的核心技能。
- 选择一个方向深入:
- Web 开发:学习 Django (功能全面,适合快速开发) 或 Flask (轻量级,灵活)。
- 数据科学:学习 Pandas (数据处理), NumPy (数值计算), Matplotlib/Seaborn (数据可视化), Scikit-learn (机器学习)。
- 自动化与爬虫:学习 Requests (发送 HTTP 请求), BeautifulSoup 或 lxml (解析 HTML), Selenium (自动化浏览器操作)。
- 阅读优秀代码:在 GitHub 上找一些你感兴趣的开源项目,阅读别人的代码,学习他们的设计模式和编码风格。
- 持续学习:关注 Python 社区,了解新特性和新技术。
这份笔记涵盖了 Python 学习的核心内容,祝你学习愉快,早日成为 Python 高手!
