🐍 Python 学习笔记(二)
承接上篇基础内容,本篇聚焦面向对象编程、常用模块进阶及实战技巧,助力从基础迈向应用。
👥 1. 面向对象编程(OOP)
🏗️ 类与对象
1 2 3 4 5 6 7 8 9 10 11 12
| class Dog: def __init__(self, name, age): self.name = name self.age = age
def bark(self): return f"{self.name} 汪汪叫,年龄 {self.age} 岁"
my_dog = Dog("小白", 3) print(my_dog.bark())
|
🔄 继承与多态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class Pet(Dog): def __init__(self, name, age, owner): super().__init__(name, age) self.owner = owner
def show_owner(self): return f"主人是 {self.owner}"
class Cat(Dog): def bark(self): return f"{self.name} 喵喵叫"
pet = Pet("豆豆", 2, "小明") cat = Cat("小花", 1) print(pet.show_owner()) print(cat.bark())
|
📦 2. 常用模块深度解析
📅 datetime 日期时间处理
1 2 3 4 5 6 7 8 9
| import datetime
now = datetime.datetime.now() print(f"当前时间:{now}")
one_week_ago = now - datetime.timedelta(weeks=1) print(f"一周前:{one_week_ago.strftime('%Y-%m-%d')}")
|
📊 random 随机数生成
1 2 3 4 5 6 7 8 9
| import random
print(random.randint(1, 10))
nums = [1, 2, 3, 4, 5] random.shuffle(nums) print("打乱后的列表:", nums)
|
📡 requests HTTP 请求(需安装)
1 2 3 4 5 6 7
| import requests
response = requests.get("https://api.example.com/data") if response.status_code == 200: data = response.json() print("请求数据:", data)
|
🛠️ 3. 实用编程技巧
🧵 列表推导式
1 2 3 4 5 6 7
| even_nums = [x for x in range(10) if x % 2 == 0] print(even_nums)
square_dict = {x: x**2 for x in range(5)} print(square_dict)
|
📌 生成器(Generator)
1 2 3 4
| even_gen = (x for x in range(10) if x % 2 == 0) for num in even_gen: print(num, end=" ")
|
🧩 装饰器(Decorator)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import time
def timer(func): def wrapper(): start = time.time() func() end = time.time() print(f"执行时间:{end - start:.2f} 秒") return wrapper
@timer def test_function(): time.sleep(1) print("函数执行完毕")
test_function()
|
📊 4. 数据处理入门(CSV 文件操作)
📄 读取 CSV 文件
1 2 3 4 5 6
| import csv
with open("data.csv", "r") as f: reader = csv.DictReader(f) for row in reader: print(f"姓名:{row['name']},年龄:{row['age']}")
|
✍️ 写入 CSV 文件
1 2 3 4 5 6 7
| with open("output.csv", "w", newline="") as f: fieldnames = ["name", "age"] writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader() writer.writerow({"name": "Bob", "age": 25}) writer.writerow({"name": "Lily", "age": 22})
|
🚀 5. 实战案例:简易学生信息管理系统
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| class Student: def __init__(self, sid, name, age): self.sid = sid self.name = name self.age = age
students = []
def add_student(): sid = input("请输入学号:") name = input("请输入姓名:") age = int(input("请输入年龄:")) students.append(Student(sid, name, age)) print("学生添加成功!")
def list_students(): print(" 学生列表:") for idx, stu in enumerate(students, 1): print(f"{idx}. 学号:{stu.sid},姓名:{stu.name},年龄:{stu.age}")
while True: choice = input(" 请选择操作:1.添加学生 2.查看列表 3.退出 ") if choice == "1": add_student() elif choice == "2": list_students() elif choice == "3": print("系统退出,感谢使用!") break else: print("无效选择,请重新输入!")
|