教程云原生【免费下载链接】learn-to-cloudA courseware built on the belief that anyone can learn foundational cloud engineering skills with the right guide and discipline项目地址https://gitcode.com/gh_mirrors/le/learn-to-cloud点击查看免费下载本篇指南对应 Learn to CloudL2C课程 Phase 2编程与 AI 集成的第一个主题讲解课程如何带你系统掌握 Python 基础以《Python Crash Course》为主线教材、以 CS50 Python 讲座为检验关卡、以 10 组 AI 辅助提问作为练习工具。读完本文你将明确 Python 在云工程技能树中的位置、掌握一套可执行的四周学习节奏并理解本主题涉及的列表/元组、字典、列表推导式、lambda、异常、装饰器、类、文件读写、生成器与map/filter/reduce等核心知识点的考察方式与实战要点。⏱️本主题建议用时4 周每天 1 章一、为什么云工程要先学 Python在 L2C 的课程设计里Phase 2 的目标是编程 AI 集成编程是云工程的基础技能能让你高效地创建、管理和优化云资源同时把 AI 与大语言模型LLM集成进应用已经成为现代云工程师的必备能力。本主题是整条学习链的起点之后依次是 REST APIs、FastAPI、数据库、GenAI APIs、提示工程 与最终的 Capstone 项目全部建立在 Python 基础之上参见 Phase 2 总览。学习本主题前需要先完成 Phase 1Linux 与 Bash 及其 Linux CTF 挑战。此外课程 Phase 2 总览 中有一条重要的学习纪律不要复制粘贴任何人的解决方案也建议关闭代码补全类 AI 助手但用 AI 来提问、请求解释和澄清是被强烈推荐的——这正是本主题AI 辅助练习环节的设计初衷。选择 Python 的原因也很直接它是极受欢迎的语言在云工程中有大量应用场景且社区庞大因此被选为整门课程的核心教学语言。二、学习路径以《Python Crash Course》为主线本主题的学习路径是逐章推进 Eric Matthes 所著的《Python Crash Course》Python 快速上手。课程给出的节奏是每天 1 章配合每天两小时左右的学习预计一个月约 4 周完成全书全书覆盖 Python 基础语法、数据结构、函数与模块书中包含大量动手项目帮助你练习技能、构建真实世界应用而非只看不练。这本书被定位为初学者友好即使你此前没有编程经验也能顺着章节循序渐进。完成度上课程强调做完而非看完——每一章的练习代码都应亲手敲一遍。三、检验知识CS50 的 Python 讲座读完书之后课程安排了一个过关测试观看CS50 课程中关于 Python 的讲座。这个环节的验收标准非常明确讲座里的一切都应当让你觉得理所当然——如果发现大量内容听不懂说明基础还不扎实不要急于进入下一主题。这条看不懂就不前进的原则贯穿整个 L2C 课程防止学习者带着知识漏洞进入后续依赖 Python 的章节FastAPI、数据库、GenAI 集成等。四、AI 辅助练习10 组自测 Prompt 及核心考点精讲这是本主题最具特色的环节利用 AI 助手LLM作为私人考官通过以下 10 组提问自测学习成果。每组提问对应的都是一项 Python 核心能力下面逐条给出考点解读与要点说明帮助你自查。使用方式把下面的提问原样发给你的 AI 助手让它以问答/测验形式考察你回答后请它追问细节、指出错误并讲解。1. 列表list与元组tuple的区别Can you ask me about the difference between a list and a tuple in Python?请就 Python 中列表与元组的区别考考我核心考点是可变性mutabilitylist可变可以增删改元素tuple不可变创建后不能修改因此更安全、可哈希适合作为字典键或需要保持不变的记录。lst [1, 2, 3] lst.append(4) # 合法 tup (1, 2, 3) # tup.append(4) # AttributeError: tuple object has no attribute append在性能上元组通常更轻量在语义上元组常被用于打包/解包如a, b b, a与函数多返回值场景。2. 如何创建字典dictionaryCan you quiz me on how to create a dictionary in Python?请就如何创建 Python 字典对我进行测验考点覆盖多种创建方式# 方式一花括号字面量 d1 {name: L2C, phase: 2} # 方式二dict() 构造器 d2 dict(nameL2C, phase2) # 方式三dict.fromkeys()批量初始化键 d3 dict.fromkeys([a, b, c], 0) # {a: 0, b: 0, c: 0} # 方式四zip 配对两个序列 keys [name, phase] d4 dict(zip(keys, [L2C, 2]))还需掌握访问与安全取值d[key]键不存在会抛KeyError而d.get(key, default)更安全Python 3.9 可用|合并字典3.10 可用match语句处理字典模式。3. 列表推导式list comprehensionsCan you ask me to explain the concept of list comprehensions with an example?请要求我用示例解释列表推导式列表推导式是用一行表达式构建列表的语法等价于for循环 append()但更简洁、通常更快# 基本形式[表达式 for 变量 in 可迭代对象] squares [x ** 2 for x in range(10)] # 带条件过滤 evens [x for x in range(20) if x % 2 0] # 嵌套循环优先考虑可读性 pairs [(x, y) for x in range(3) for y in range(3)]派生形式还包括字典推导式{k: v for ...}与集合推导式{x for x in ...}。需理解其先循环、后条件、再求值的顺序。4. lambda 函数及其用法Can you ask me what a lambda function is and how it is used?请考我什么是 lambda 函数以及如何使用lambda 是创建匿名小函数的语法糖适用于一次性、简单的操作add lambda a, b: a b print(add(2, 3)) # 5 # 典型用法作为排序/映射的回调 words [banana, apple, cherry] words.sort(keylambda w: len(w)) # 按长度排序注意 lambda 只能包含单个表达式不能包含语句如if/else块或赋值复杂逻辑应改用def定义具名函数以保持可读性。5. 异常处理exceptionsCan you quiz me on how to handle exceptions in Python?请考我如何处理 Python 异常考点是try/except/else/finally的完整结构与常见异常类型try: num int(input(Enter a number: )) result 10 / num except ValueError: print(不是合法数字) except ZeroDivisionError: print(不能除以 0) else: print(f结果是 {result}) # 仅当 try 无异常时执行 finally: print(无论是否异常都会执行)还应理解except可以捕获多个异常except (A, B):、可以raise主动抛出自定义异常以及Exception是所有内置异常的基类。6. 装饰器decoratorsCan you ask me about Python decorators and how they work?请考我 Python 装饰器及其工作原理装饰器是接收函数并返回新函数的高阶函数用于在不修改原函数代码的前提下增强其行为def timer(func): import time def wrapper(*args, **kwargs): start time.time() result func(*args, **kwargs) print(f{func.__name__} 耗时 {time.time() - start:.2f}s) return result return wrapper timer def slow_add(a, b): time.sleep(1) return a btimer等价于slow_add timer(slow_add)。实践要点用functools.wraps(func)保留原函数的元信息__name__、__doc__等并掌握带参数的装饰器与类装饰器。7.__init__与__new__的区别Can you ask me to explain the difference between__init__and__new__methods in Python classes?请考我 Python 类中__init__与__new__的区别这是一个经典的进阶考点__new__(cls, ...)在实例创建之前被调用负责创建并返回实例通常返回super().__new__(cls)是真正的构造函数__init__(self, ...)在实例创建之后被调用负责初始化实例属性不返回值。class Demo: def __new__(cls, *args, **kwargs): print(1. __new__ 创建实例) return super().__new__(cls) def __init__(self, value): print(2. __init__ 初始化实例) self.value value__new__通常只在特殊场景使用实现单例模式、继承不可变类型如tuple、str子类、或需要控制实例创建过程时普通类只需要__init__。8. 读写文件Can you quiz me on how to read and write files in Python?请考我如何在 Python 中读写文件考点是open()的用法与with上下文管理器# 写入 with open(notes.txt, w, encodingutf-8) as f: f.write(Hello, L2C\n) # 读取整读 / 逐行读 with open(notes.txt, r, encodingutf-8) as f: content f.read() # 全部内容 # for line in f: ... # 逐行迭代 # 追加模式 with open(notes.txt, a, encodingutf-8) as f: f.write(追加一行\n)要点with语句确保文件在异常时也会被正确关闭encodingutf-8可避免中文等字符编码问题常见模式有r读、w写覆盖、a追加、rb/wb二进制等。9. 生成器generatorsCan you ask me about generators in Python and how they differ from regular functions?请考我生成器是什么以及与普通函数的区别生成器用yield取代return是惰性求值的迭代器一次只产生一个值、不把全部结果加载进内存def count_up_to(n): i 1 while i n: yield i # 暂停并返回 i下次迭代继续 i 1 for num in count_up_to(5): print(num)与普通函数的区别普通函数执行到return即结束并释放栈帧生成器函数每次next()才推进到下一个yield状态在两次调用之间保留。适合处理大文件、无限序列等内存敏感场景。相关工具还有生成器表达式(x for x in range(10))。10.map、filter与reduceCan you quiz me on how to use themap,filter, andreducefunctions in Python?请考我如何使用map、filter和reduce三者都是函数式编程工具from functools import reduce nums [1, 2, 3, 4, 5] # map对每个元素应用函数返回迭代器 doubled list(map(lambda x: x * 2, nums)) # [2, 4, 6, 8, 10] # filter按条件筛选返回迭代器 evens list(filter(lambda x: x % 2 0, nums)) # [2, 4] # reduce累积归约需要从 functools 导入 total reduce(lambda acc, x: acc x, nums, 0) # 15注意Python 3 中map/filter返回的是惰性迭代器需要list()转换才能一次性查看reduce已从内置函数移入functools模块。实践中三者常可被列表推导式替代但理解它们有助于读懂函数式风格的代码。五、主题清单Topic Checklist在进入下一主题前请逐项确认自己能否回答是我理解 Python 语法和数据类型我能处理列表、元组和字典我理解函数及其定义方式我能正确处理异常我理解类与面向对象编程的基础[ * ] 我能读写文件CS50 的 Python 讲座我能完全听懂对照上文 10 组 AI 自测题若任一清单项存在疑问建议回到《Python Crash Course》对应章节复习再继续推进。六、承上启下Python 将如何被用到后续主题本主题不是孤立的背语法它直接支撑 Phase 2 余下所有内容参见 Phase 2 主题表REST APIs用 Python 理解并调用 HTTP 接口FastAPI课程用 FastAPI 构建 L2C Journal 应用它基于 Python 类型注解type hints与async异步编程——这正是需要扎实掌握函数、类、异常与生成器理解async生成器的基础的原因数据库通过 Python 官方快速入门如 AWS DynamoDB、Azure Cosmos DB 的 Python Quickstart完成 CRUD 操作GenAI APIs用pip install openai/boto3/google-cloud-aiplatform等 SDK 在 Python 中调用大语言模型 API涉及环境变量存密钥、异常与限流处理、异步调用等提示工程为 Journal 应用设计情感分析、摘要、主题提取等结构化输出提示词Capstone 项目在 Dev Containers 中完成 Journal API 的全部实现并将在 Phase 3 部署到云端。课程设计者尤其强调学习者之间会互相分享代码但不要复制粘贴任何人的解决方案——只有亲手写出每一行这些 Python 基础才会真正变成你的云工程能力。完成本主题后即可进入 Phase 2 主题二REST APIs 的学习。赞分享教程云原生【免费下载链接】learn-to-cloudA courseware built on the belief that anyone can learn foundational cloud engineering skills with the right guide and discipline项目地址https://gitcode.com/gh_mirrors/le/learn-to-cloud点击查看免费下载相关推荐Learn to Cloud Phase 2 实战指南Python 编程与 AI 集成的完整学习路线Learn to Cloud Phase 2 实战指南Python 编程与 AI 集成的完整学习路线 本指南基于 learn to cloud 开源课程仓库的教程云原生learn-to-cloud 零基础起步指南Phase 0 从零开始阶段的完整学习路线learn to cloud 零基础起步指南Phase 0 从零开始阶段的完整学习路线 本文对应仓库文档 i18n/es/docusaurus plugi教程云原生Learn to Cloud 云工程师路线Python 基础学习路线、AI 自测与验收清单Learn to Cloud 云工程师路线Python 基础学习路线、AI 自测与验收清单 本篇指南对应 Learn to CloudL2C开源课程 do教程云原生上一篇NodeMCU 固件中的 Yeelink 客户端模块用 Lua 将 ESP8266 传感数据上报云平台下一篇SmallRomance与Webpack构建现代前端项目的最佳实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考