臭名昭著aTrust隔离计划1.臭名昭著aTrust隔离计划2.VPN原理与aTrust隔离网络实践3.docker-easyconnect到底做了什么4.TUN(tunnel-隧道-虚拟网卡)模式
个人项目
personal(个人展示)GitHub Actions 自动部署个人展示项目
基于Quartz搭建的个人博客1.Quartz个人博客使用教程2.使用 rsync 增量部署 Quartz 博客3.使用 GitHub Actions 自动部署 Quartz 博客5.域名绑定6.CDN加速Obsidian、双向链接与知识图谱
旅行
行程攻略青岛三日游行程攻略
前端
NginxNginx配置与反向代理入门
Nodenpm与npx的区别
中华财险-公司项目
对外接口文档
基础数据码表对外接口(仅支持rpc调用)业务码表对外接口应用主数据对外接口
基础运营查询版本更新日志详情消息中心对外接口站内信对外接口站内信模板配置手册
权限中心权限中心对外接口文档(最新)权限中心对外接口文档前端ACL-CORE FACADE依赖版本
审计中心审计中心对外接口文档audit-center-facade版本
审批中心工作流迁审批流现状工作流迁审批流API能力替换方案老审批流接口文档审批中心接口文档审批中心业务回调FAQ
账号中心内部系统对接单点登录内部系统对接认证中心三方网页应用登录授权账号中心对外接口文档前端账号中心RPC接口文档账户变更对外广播消息文档账户中心对外接口HRMS外部员工变更广播消息文档HRMS外部员工对外接口
组织员工岗位🔥机构映射SDK接口文档员工岗位变更通知说明组织机构管营一体概念与用法组织员工对外广播消息文档组织员工岗位对外接口文档组织员工岗位对外接口文档前端组织员工岗位数据模型组织员工主数据业务场景案例organization-facade版本
hrms(大型人力资源外包管理系统)
项目架构说明HRMS Maven模块与依赖说明
项目说明0.流程中心模块0.组织模块说明1.业务线模块2.计划模块3.项目模块4.协议模块5.供应商模块6.合约域模块7.外包人员模块*核心:外包人员生命周期
项目运维外包人员项目编制差异排查与修复2.HRMS相关问题排查4.修改externalId(externalId和accountId不一致)
需求-系分
1.内部转外包0723外包人员关联历史内部账号系分新增外包人员关联历史账号内容(紧急0723上线)需求
2.工作岗位0820工作岗位0820需求工作岗位0820需求-系分
3.用工模式调整0917内部人员转外包用工系统需求2内部人员转外包用工系统需求-系分
sso(账号中心-单点登录)
项目架构说明aboss-sso项目架构入门AOP统一日志打印链路Maven多模块项目高级知识OAuth2.0
项目说明1.SSO-OAuth2.0与IDaaS登录流程2.外部账号创建流水号并发问题分析
AI
使用说明
第三方插件&技能简介Archify使用与安装指南Ponytail使用指南
CodexCodex CLI与IDE区别及使用指南Codex Hook单独配置与提交通知Codex MCP安装与使用指南Codex第三方插件安装与使用指南
Agent开发1.LLM、Token、上下文窗口与模型参数2.大模型 API、请求参数与响应结构3.Spring AI ChatClient4.Prompt、System Prompt、Prompt 模板6.结构化输出、JSON Schema7.SSE 流式响应8.会话 ID、聊天记录、Redis9.超时、重试、限流、降级10.完成可运行聊天接口
GitGit常用命令与Obsidian推送排查
Java
面试题Java基础与集合面试题
AtomicInteger原子计数与并发安全ConcurrentHashMap并发安全与计数Java线程、线程池与Future
python
基础Python基础语法
HTTPXHRMS员工详情接口调用(Python HTTPX)

一、💡 一句话理解

核心结论

学 Python 不必一次复习完所有语法。先掌握“变量和字典 → 函数 → 判断 → 异常处理 → JSON → 异步”这条链,就能写出结构清晰的小程序。

二、🧭 理论:它是什么

2.1 Python 程序就是“按顺序处理数据”

可以把一个小程序理解为一条流水线:

这篇笔记只复习这条链上真正会用到的基础语法。所有示例都使用本地模拟数据。

2.2 缩进是 Python 的花括号

Java 用 {} 表示代码块,Python 用统一的缩进表示代码块。通常使用 4 个空格。

if True:
    # 缩进的代码属于 if 分支
    print("条件成立")
 
print("这一行不在 if 内")

冒号 : 表示一个代码块即将开始;冒号后面的代码必须缩进。

三、⚙️ 理论:每个语法怎么理解

3.1 变量、字符串与 f-string

变量可以看成一个有名字的标签,用来引用一个值。Python 不需要先声明类型。

name = "小李"                # 字符串 str
score = 88                   # 整数 int
is_passed = True             # 布尔值 bool
 
# f-string:把变量值插入字符串;比字符串拼接更好读。
print(f"学生:{name},分数:{score},是否及格:{is_passed}")

输出:

学生:小李,分数:88,是否及格:True

3.2 dict:用名字组织数据

字典(dictionary)是一组“键 → 值”的映射,类似 Java 的 Map<String, Object>。适合保存一条有多个字段的信息。

# 一名学生的信息。
student = {
    "name": "小李",
    "score": 88,
}
 
# 读取一个可能不存在的键时,优先使用 get,避免 KeyError。
print(student.get("name"))
print(student.get("class_name", "未填写班级"))

记忆方式:data["key"] 是“我确定它存在”;data.get("key") 是“它可能没有”。

3.3 list:一批数据

列表(list)是有顺序的一组值,类似 Java 的 List。它适合保存一批同类数据。

names = ["小李", "小王", "小陈"]
 
for name in names:
    print(f"你好,{name}")

for 会逐个取出列表里的元素。不要用下标也能完成绝大多数遍历。

3.4 函数:把重复步骤装进一个名字里

函数用 def 定义。括号里是输入(参数),return 是输出。

def build_student(name: str, score: int) -> dict:
    """根据姓名和分数创建一条学生信息。"""
    return {"name": name, "score": score}
 
 
student = build_student("小李", 88)
print(student)

staff_id: str-> dict 是类型标注:它们帮助阅读和编辑器检查,不会替代运行时校验。

3.5 if / elif / else:根据条件走不同分支

条件判断让程序根据不同数据做不同的事。

score = 88
 
if score >= 90:
    print("优秀")
elif score >= 60:
    print("及格")
else:
    print("需要继续努力")

注意:比较两个值是否相等用 ==;单个等号 = 是赋值。

3.6 try / except:预期会出错的地方要接住

异常(exception)是程序运行中发生的问题。比如把不能转成数字的文字传给 int(),就会产生 ValueError

def parse_score(value: str) -> int:
    """把字符串分数转成整数;示例只用于理解异常。"""
    return int(value)
 
 
try:
    score = parse_score("不是数字")
    print(score)
except ValueError:
    # 只处理预期的 ValueError;不要用空 except 吞掉所有错误。
    print("分数不是纯数字,无法转换。")

3.7 with:用完自动收尾

with 适合管理需要关闭的资源。最常见的是打开文件:离开缩进块后,文件会自动关闭。

with open("hello.txt", "w", encoding="utf-8") as file:
    file.write("你好,Python!")

3.8 环境变量:把敏感配置放在代码外

os.getenv() 从操作系统环境读取值。它适合读取 Token、Cookie 或测试账号等不应写进源码的配置。

import os
 
# 第二个参数是默认值;未设置环境变量时不会返回 None。
user_name = os.getenv("USER_NAME", "访客")
print(f"当前用户名:{user_name}")

3.9 JSON:文本和 Python 字典之间的转换

JSON 是一种文本格式;json.loads() 把 JSON 文本转成 Python 字典,json.dumps() 则反过来。

import json
 
json_text = '{"name": "小李", "score": 88}'
student = json.loads(json_text)
 
print(student.get("name", "未知"))
 
# ensure_ascii=False 让中文正常显示;indent=2 让结果更容易阅读。
print(json.dumps(student, ensure_ascii=False, indent=2))

3.10 async / await:等待网络时先做别的事

同步代码会在一个任务完成前等待;异步代码遇到 await 时可以暂时让出执行权,等待多个任务时更有效率。

先后顺序

先把函数、循环和异常处理写明白,再学习 async / await。异步不是更高级的同步写法,而是另一种组织等待任务的方式。

四、🚀 实践:从准备到验证

4.1 前置准备

本练习只需要 Python 3.9 或更高版本,不会访问外部网络。

检查版本:

python3 --version

4.2 可以拿来干什么

这段练习会把前面学到的语法串起来:创建字典、条件判断、从 JSON 中提取字段、处理错误,并演示异步批量执行的写法。

先理解每一步的输入、处理过程和输出,再进入更具体的项目练习。

4.3 完整实践:代码、启动和验证

新建文件:python_basics_practice.py

"""Python 基础语法练习:所有数据都在本地生成。"""
 
import asyncio
import json
import os
 
 
def build_student(name: str, score: int) -> dict:
    """根据姓名和分数创建一条学生信息。"""
    return {"name": name, "score": score}
 
 
def get_level(score: int) -> str:
    """根据分数返回等级,用于练习 if、elif 和 else。"""
    if score >= 90:
        return "优秀"
    elif score >= 60:
        return "及格"
    else:
        return "需要继续努力"
 
 
async def complete_one_task(task_name: str) -> str:
    """模拟一个异步任务:await 表示程序暂时等待任务完成。"""
    await asyncio.sleep(0.1)
    return f"已完成:{task_name}"
 
 
async def practice_async() -> None:
    """并发执行三个模拟任务,并逐条打印结果。"""
    tasks = ["阅读", "练习", "复盘"]
    results = await asyncio.gather(*(complete_one_task(item) for item in tasks))
 
    for result in results:
        print(result)
 
 
def main() -> None:
    """按同步 → 异步的顺序执行本次练习。"""
    # 环境变量不存在时使用“访客”,不依赖任何外部配置。
    name = os.getenv("USER_NAME", "访客")
    score_text = "88"
 
    try:
        score = int(score_text)
        student = build_student(name, score)
        student["level"] = get_level(score)
 
        # 使用 get 安全读取字典中的值。
        print(f"姓名:{student.get('name', '未知')}")
        print(json.dumps(student, ensure_ascii=False, indent=2))
    except ValueError as error:
        print(f"分数格式错误:{error}")
 
    # asyncio.run 负责创建并运行异步事件循环。
    asyncio.run(practice_async())
 
 
if __name__ == "__main__":
    main()

运行:

python3 python_basics_practice.py

预期会看到学生信息的格式化 JSON,以及三行 已完成。如果想练环境变量,可以先运行:

export USER_NAME="小张"
python3 python_basics_practice.py

此时模拟 JSON 中的 name 会变为 小张

五、📌 总结

  • 变量保存值,字典组织有关联的数据,列表组织一批数据。
  • 函数把重复逻辑封装起来;return 把结果交给调用处。
  • if / elif / else 按条件分支;try / except 处理可预期的失败。
  • with 管理需要关闭的资源,os.getenv 读取代码外的配置。
  • 先同步、后异步:把函数、循环和异常写明白后再学 async / await

六、📚 官方资料