跳转至

Python 核心基础语法

学习原则: 高效提问,独立思考。遇到问题先尝试 Debug,提问时附带代码与报错截图,避免无效沟通。


📅 Day 4 - 格式化输出与字符编码

1. 格式化输出

  • .format(): 使用 {} 作为占位符。
  • print('xxxx{}xxxx'.format(数据1))
  • 优点: 支持下标索引,可重复利用数据。
  • f-string: 数据类型无限制,支持在大括号内进行数学运算、切片等操作。
  • 占位符 (%): %d (整型), %s (字符串), %f (浮点型, %.2f 保留两位小数)。

2. 字符编码

  • 主流编码: utf-8。
  • 核心原则: 以什么编码写入,就以什么编码读取,否则会产生乱码或报错。
  • 内置函数:
  • ord(字符): 获取对应的序号(Unicode)。
  • chr(序号): 获取对应的字符。

📅 Day 5 - 运算符与变量修养

1. 程序的生命周期

  • 双击 .py 文件闪退是因为程序运行速度极快,执行完后立即关闭。建议在 IDLE 或 PyCharm 中运行以查看结果。

2. 基础规范

  • 变量命名: 由字母、数字、下划线组成;首字母不能为数字;避开关键字;区分大小写;推荐见名知义(小驼峰或下划线法)。
  • 注释: 单行使用 #,多行使用三对引号 ''' 或 """。

3. 数据类型

  • 数值: int, float, bool (True=1, False=0)。
  • 序列类型:
  • str: 不可变。
  • list: [] 包裹,可变,存放任意类型。
  • tuple: () 包裹,不可变(若只有一个元素需加逗号 (1,))。
  • 特性: 索引(从0开始)、切片(左闭右开 [start:end])、步长。

4. 运算符优先级

小括号 () > 幂 \** > 算术运算符 > 比较运算符 > 成员运算符 (in) > 逻辑运算符 (and/or/not)

  • 短路运算:
  • and: 前面为假,后面不执行。
  • or: 前面为真,后面不执行。

📅 Day 6 - 流程控制与调试

1. 三大结构

  1. 顺序结构: 从上往下。
  2. 选择结构: if...elif...else。注意:0, '', [], (), {}, None 在判断中视为 假。
  3. 循环结构: while (条件循环) 和 for (遍历循环)。

2. 循环控制

  • break: 彻底终止当前循环。
  • continue: 跳过本次循环,进入下一次。
  • pass: 空语句占位符,防止语法报错。

3. Debug 调试

  • 在 PyCharm 代码行左侧点击红点设置断点,右键选择 Debug,可步进查看变量实时变化。

📅 Day 7 - 序列类型常用方法

1. 列表 (List) - CRUD

  • 增: .append() (末尾追加), .insert(index, val) (插入), .extend() (合并序列)。
  • 删: .pop(index) (弹回被删值), .remove(val) (删首个匹配项), .clear(), del。
  • 改: 索引修改 list[0] = v 或切片修改。
  • 查: .index(), .count(), len()。
  • 排序: .sort(reverse=True/False)。

2. 字符串 (String)

  • 特性: 不可变数据类型。
  • 常用: .replace(), .upper(), .lower(), .strip() (去空格), .split() (切割), .isdigit() (判断纯数字), .join() (拼接)。

📅 Day 8 - 散列类型 (Set & Dict)

1. 集合 (Set) {}

  • 特性: 无序、去重、元素必须为不可变类型。
  • 运算: & (交集), | (并集), - (差集)。
  • 方法: .add(), .update(), .pop() (随机删)。

2. 字典 (Dict) {key: value}

  • 特性: 键唯一且不可变,无序(通过键取值)。
  • 常用方法:
  • .setdefault(): 键不存在则添加。
  • .update({k: v}): 批量更新或添加。
  • .get(key): 安全取值,不存在返回 None。
  • .keys(), .values(), .items()。

📅 Day 9 & 10 - 函数进阶与作用域

1. 函数参数

  • 形参/实参: 位置对应。
  • 默认参数: def fun(a, b=10),默认参数必在右侧。
  • 不定长参数:
  • *args: 接收多余位置参数,转为 元组。
  • **kwargs: 接收多余关键字参数,转为 字典。

2. 返回值 return

  • 结束函数并返回数据。若无 return,默认返回 None。

3. 作用域与名称空间

  • 三层空间: 内建 -> 全局 -> 局部。
  • 关键字:
  • global: 在局部修改全局变量。
  • nonlocal: 在嵌套函数中修改外层非全局变量。
  • 匿名函数: lambda 参数: 表达式 (自带 return)。

📅 Day 11 - 闭包与装饰器

1. 闭包 (Closure)

  • 条件: 嵌套函数 + 内部调用外部变量 + 外部返回内部函数名。
  • 作用: 保护私有变量,实现数据驻留。

2. 装饰器 (Decorator)

  • 核心原理: 在不修改原函数源码及调用方式的前提下,为其增加新功能。
  • 语法糖: @装饰器名。

Python

def wrapper(func):
    def inner(*args, **kwargs):
        # 执行前功能
        res = func(*args, **kwargs)
        # 执行后功能
        return res
    return inner

📅 Day 13 - 迭代器、生成器与文件操作

1. 迭代器 (Iterator)

  • 含有 __iter__() 和 __next__() 方法。

2. 生成器 (Generator)

  • 本质: 也是迭代器,但更省内存。
  • 实现:
  • 生成器表达式 (i for i in range(10))。
  • 函数内使用 yield。代码执行到 yield 会暂停并返回值,下次调用从该位置继续。

3. 文件操作

  • 模式: r (读), w (覆盖写), a (追加), b (二进制)。
  • 上下文管理器: with open(...) as f: (自动关闭文件)。

📅 Day 14 & 15 - 模块、包与 MVC 模式

1. 模块化

  • 导入: import 或 from...import...。
  • 程序入口: if __name__ == '__main__': 确保模块被导入时不自动执行测试代码。

2. 常用模块

  • time: time(), sleep(), strftime()。
  • random: randint(), choice(), shuffle()。
  • os: getcwd(), mkdir(), path.join(), path.exists()。
  • json: dump/load (文件操作), dumps/loads (字符串转换)。

3. MVC 开发理念

  • Model: 模型层,处理数据。
  • View: 视图层,用户界面。
  • Controller: 控制层,业务逻辑。

📅 Day 16 & 17 - ATM 项目实战架构

项目目录结构规范

Plaintext

ATM/
├── bin/            # 启动脚本 (run.py)
├── core/           # 核心业务逻辑 (src.py)
├── api/            # 接口处理 (user_i.py, bank_i.py)
├── db/             # 数据库操作 (db_handle.py)及数据文件 (user_data/)
├── lib/            # 公共组件/装饰器 (common.py)
├── conf/           # 配置文件 (setting.py)
└── readme.txt      # 说明文档