121 lines
3.1 KiB
Python
121 lines
3.1 KiB
Python
"""
|
|
01 对 Python 的理解:Python = 算法 + 数据
|
|
|
|
这份文件适合作为课堂导入材料。
|
|
|
|
核心观点:
|
|
Python 程序 = 数据 + 算法
|
|
|
|
一、什么是数据?
|
|
数据就是程序要处理的东西。
|
|
|
|
1. 一个数据:
|
|
name = "张三"
|
|
age = 18
|
|
|
|
变量不是盒子,更准确地说:
|
|
变量名指向一个数据对象。
|
|
|
|
2. 多个同类数据:
|
|
students = ["张三", "李四", "王五"]
|
|
|
|
当同类数据变多后,就需要列表。
|
|
列表适合按顺序存放数据,通过索引访问:
|
|
students[0]
|
|
students[1]
|
|
|
|
3. 一个对象有多个属性:
|
|
student = {"id": 1, "name": "张三", "age": 18}
|
|
|
|
当一个学生不只是一个名字,而是包含学号、姓名、年龄、电话等信息时,
|
|
用字典比列表更清楚。
|
|
|
|
4. 多个对象,每个对象又有多个属性:
|
|
students = [
|
|
{"id": 1, "name": "张三", "age": 18},
|
|
{"id": 2, "name": "李四", "age": 19},
|
|
]
|
|
|
|
这就是最常见的业务数据结构:
|
|
列表负责“多个”,字典负责“一个对象的多个字段”。
|
|
|
|
二、什么是算法?
|
|
算法就是处理数据的步骤。
|
|
|
|
在 Python 基础阶段,算法主要靠这些语法表达:
|
|
|
|
1. 顺序执行:
|
|
程序从上往下执行。
|
|
|
|
2. if 判断:
|
|
根据条件选择不同的执行路径。
|
|
|
|
3. while / for 循环:
|
|
重复处理一批数据。
|
|
|
|
4. 函数:
|
|
把一段处理逻辑封装起来,方便重复使用。
|
|
|
|
5. 类:
|
|
把数据和操作数据的方法放在一起,形成更清晰的对象模型。
|
|
|
|
三、用学生管理系统串起来
|
|
|
|
学生管理系统的本质:
|
|
数据:学生信息
|
|
算法:增、删、改、查
|
|
|
|
最初级写法:
|
|
用列表保存学生。
|
|
|
|
进一步:
|
|
用函数拆分增删改查逻辑。
|
|
|
|
再进一步:
|
|
用类把“学生管理器”抽象出来。
|
|
|
|
再进一步:
|
|
用反射根据用户输入自动调用方法。
|
|
|
|
再进一步:
|
|
把数据保存到文件,程序关闭后数据不丢。
|
|
|
|
再进一步:
|
|
把数据保存到数据库。
|
|
|
|
再进一步:
|
|
用 ORM 把数据库表映射成 Python 类。
|
|
"""
|
|
|
|
|
|
def main():
|
|
print("Python = 算法 + 数据")
|
|
print()
|
|
|
|
name = "张三"
|
|
age = 18
|
|
print("一个学生:", name, age)
|
|
|
|
names = ["张三", "李四", "王五"]
|
|
print("多个学生姓名:", names)
|
|
print("第一个学生姓名:", names[0])
|
|
|
|
student = {"id": 1, "name": "张三", "age": 18}
|
|
print("一个完整学生:", student)
|
|
print("学生姓名:", student["name"])
|
|
|
|
students = [
|
|
{"id": 1, "name": "张三", "age": 18},
|
|
{"id": 2, "name": "李四", "age": 19},
|
|
]
|
|
print("多个完整学生:")
|
|
for item in students:
|
|
if item["age"] >= 18:
|
|
print(item["name"], "已经成年")
|
|
else:
|
|
print(item["name"], "未成年")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|