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! 🐍
1366

被折叠的 条评论
为什么被折叠?



