https://www.freecodecamp.org/news/content/images/2020/12/Python-1.png
面向对象编程(OOP)
类与对象基础
python
复制
下载
class Dog: """一个表示狗的简单类""" def __init__(self, name, age): """初始化属性name和age""" self.name = name self.age = age def sit(self): """模拟狗坐下""" print(f"{self.name} is now sitting.") def roll_over(self): """模拟狗打滚""" print(f"{self.name} rolled over!") # 创建实例 my_dog = Dog('Willie', 6) print(f"My dog's name is {my_dog.name}.") print(f"My dog is {my_dog.age} years old.") my_dog.sit() my_dog.roll_over()
https://media.geeksforgeeks.org/wp-content/uploads/20200506214744/Class-Objects-in-Python.png
继承与多态
python
复制
下载
class Car: """汽车类""" def __init__(self, make, model, year): self.make = make self.model = model self.year = year self.odometer_reading = 0 def get_descriptive_name(self): long_name = f"{self.year} {self.make} {self.model}" return long_name.title() def read_odometer(self): print(f"This car has {self.odometer_reading} miles on it.") class ElectricCar(Car): """电动汽车,继承自Car""" def __init__(self, make, model, year): super().__init__(make, model, year) self.battery_size = 75 def describe_battery(self): print(f"This car has a {self.battery_size}-kWh battery.") my_tesla = ElectricCar('tesla', 'model s', 2019) print(my_tesla.get_descriptive_name()) my_tesla.describe_battery()
常用内置模块
os模块 - 操作系统交互
python
复制
下载
import os # 获取当前工作目录 print(os.getcwd()) # 列出目录内容 print(os.listdir()) # 创建目录 os.makedirs('test_dir', exist_ok=True) # 文件路径操作 file_path = os.path.join('test_dir', 'test.txt') print(f"文件路径: {file_path}")
https://www.tutorialspoint.com/python/images/python_os.jpg
datetime模块 - 日期时间处理
python
复制
下载
from datetime import datetime, timedelta # 获取当前时间 now = datetime.now() print(f"当前时间: {now}") # 格式化日期 formatted = now.strftime("%Y-%m-%d %H:%M:%S") print(f"格式化后: {formatted}") # 时间计算 one_week_later = now + timedelta(weeks=1) print(f"一周后: {one_week_later}") # 解析字符串为日期 date_str = "2023-01-15" parsed_date = datetime.strptime(date_str, "%Y-%m-%d") print(f"解析后的日期: {parsed_date}")
虚拟环境与包管理
创建和使用虚拟环境
bash
复制
下载
# 创建虚拟环境 python -m venv myenv # 激活虚拟环境 (Windows) myenv\Scripts\activate # 激活虚拟环境 (macOS/Linux) source myenv/bin/activate
https://miro.medium.com/max/1400/1*_8yTgZPZwMZqA1vWq4X9FA.png
使用pip管理包
bash
复制
下载
# 安装包 pip install requests pandas # 列出已安装包 pip list # 生成requirements文件 pip freeze > requirements.txt # 根据requirements文件安装 pip install -r requirements.txt
实战项目:简易待办事项应用
python
复制
下载
import json from datetime import datetime class TodoApp: """简易待办事项应用""" def __init__(self, filename='todos.json'): self.filename = filename self.todos = self._load_todos() def _load_todos(self): try: with open(self.filename, 'r') as f: return json.load(f) except FileNotFoundError: return [] def _save_todos(self): with open(self.filename, 'w') as f: json.dump(self.todos, f, indent=4) def add_todo(self, task): """添加新待办事项""" todo = { 'id': len(self.todos) + 1, 'task': task, 'created_at': datetime.now().strftime("%Y-%m-%d %H:%M:%S"), 'completed': False } self.todos.append(todo) self._save_todos() print(f"已添加任务: {task}") def list_todos(self): """列出所有待办事项""" print("\n待办事项列表:") for todo in self.todos: status = "✓" if todo['completed'] else " " print(f"{todo['id']}. [{status}] {todo['task']} ({todo['created_at']})") def complete_todo(self, todo_id): """标记待办事项为完成""" for todo in self.todos: if todo['id'] == todo_id: todo['completed'] = True self._save_todos() print(f"已完成任务: {todo['task']}") return print(f"未找到ID为{todo_id}的任务") def main(): app = TodoApp() while True: print("\n1. 添加任务") print("2. 查看任务") print("3. 完成任务") print("4. 退出") choice = input("请选择操作: ") if choice == '1': task = input("请输入任务内容: ") app.add_todo(task) elif choice == '2': app.list_todos() elif choice == '3': todo_id = int(input("请输入要完成的任务ID: ")) app.complete_todo(todo_id) elif choice == '4': print("再见!") break else: print("无效输入,请重新选择") if __name__ == "__main__": main()
https://miro.medium.com/max/1400/1*_Z6JzF4VXvXJ7Q5Q5Q5Q5Q.png
调试技巧
使用print调试
python
复制
下载
def calculate_average(numbers): print(f"[调试] 输入数据: {numbers}") # 调试输出 total = sum(numbers) print(f"[调试] 总和: {total}") # 调试输出 avg = total / len(numbers) print(f"[调试] 平均值: {avg}") # 调试输出 return avg scores = [85, 90, 78, 92, 88] result = calculate_average(scores) print(f"最终结果: {result}")
使用pdb调试器
python
复制
下载
import pdb def problematic_function(data): pdb.set_trace() # 设置断点 result = [] for item in data: processed = item * 2 result.append(processed) return result data = [1, 2, 3, 'a', 5] print(problematic_function(data))
https://miro.medium.com/max/1400/1*_Z6JzF4VXvXJ7Q5Q5Q5Q5Q.png
性能优化建议
-
使用内置函数和库:它们通常用C实现,速度更快
-
避免全局变量:局部变量访问更快
-
使用列表推导式:比普通循环更高效
-
适当使用生成器:节省内存
-
缓存重复计算结果:避免重复计算
python
复制
下载
# 列表推导式示例 squares = [x**2 for x in range(10) if x % 2 == 0] # 生成器示例 even_numbers = (x for x in range(100) if x % 2 == 0) # 使用functools.lru_cache缓存结果 from functools import lru_cache @lru_cache(maxsize=None) def fibonacci(n): if n < 2: return n return fibonacci(n-1) + fibonacci(n-2)
结语与学习路径
https://www.edureka.co/blog/wp-content/uploads/2019/08/Python-Tutorial.png
通过这三篇Python入门指南,你已经掌握了:
-
基础语法和数据结构
-
函数和文件操作
-
面向对象编程
-
常用标准库使用
-
简单项目开发
下一步建议:
-
选择一个感兴趣的领域深入(Web、数据科学、自动化等)
-
参与开源项目或自己创建项目
-
学习Python设计模式和最佳实践
-
探索异步编程(asyncio)
-
持续练习,解决实际问题
记住,编程是一项实践技能,多写代码是最好的学习方式!Happy Coding! 🐍