<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cxs4808的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cxs4808</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cxs4808]]></copyright><item><title><![CDATA[海龟绘图--水波涟漪]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/159554271</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/159554271</guid><author>cxs4808</author><pubDate>Fri, 27 Mar 2026 22:49:31 +0800</pubDate><description><![CDATA[t.left(59)  #每次左转 59 度。由于角度不是 360 的整除因子，会不断改变方向，配合越来越长的步长，通常会画出一种“旋转扩展的花/星形螺旋”图案。t.forward(x)  #每次向前走 x 个单位并画线。因为 x 逐渐变大，所以每一步走得越来越远。t = turtle.Pen()  #创建一支“画笔”（海龟对象）t，后面所有移动/转向都会由它来画线。for x in range(360):  #循环 360 次，x 从 0 到 359。]]></description><category></category></item><item><title><![CDATA[开启AI大模型之旅]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154667157</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154667157</guid><author>cxs4808</author><pubDate>Tue, 11 Nov 2025 01:39:49 +0800</pubDate><description><![CDATA[如果你也渴望踏入这个激动人心的领域，那么"AI大模型基础预习篇"的学习目标将为你指明方向。提示工程（Prompt Engineering）是一门设计和优化输入（即"提示"或"Prompt"）的学科，旨在引导大模型生成更准确、相关和有用的输出。AI大模型是未来的趋势，而掌握其基础原理和提示工程的艺术，将是你在这场技术浪潮中乘风破浪的关键能力。**提示工程让你知道"如何做"**：如何与模型有效交互？**原理让你理解"为什么"**：为什么模型能工作？AI技术日新月异，新的模型架构、训练方法、应用场景不断涌现。]]></description><category></category></item><item><title><![CDATA[Python列表推导与Pythonic编程：从表象到本质的深度解析]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154531860</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154531860</guid><author>cxs4808</author><pubDate>Fri, 07 Nov 2025 15:31:22 +0800</pubDate><description><![CDATA[1. **解释器开销**：每次循环中，Python解释器都需要确定序列中的哪个部分被修改，增加了运行时开销。**实际情况：** 对于简单操作，列表推导确实更快。3. **内存操作**：频繁的`append`操作可能导致列表的多次内存重新分配。**原则：** 如果列表推导超过3-4行，或者包含复杂的嵌套逻辑，考虑使用循环。- **性能提升**：列表推导在C层面实现，比Python循环快得多。**建议：** 对于复杂逻辑，优先考虑可读性，性能差异通常可以忽略。]]></description><category></category></item><item><title><![CDATA[二十年编程路：从 Hello World 到技术导师的成长历程]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154410221</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154410221</guid><author>cxs4808</author><pubDate>Wed, 05 Nov 2025 20:04:34 +0800</pubDate><description><![CDATA[在计算机的世界里，二十年意味着什么？对于我来说，这是从懵懂少年到技术导师的完整旅程，是见证了编程语言从 C/C++ 到 Python、从单体应用到微服务架构的变迁史，更是从单纯追求技术到理解技术本质的认知升华。今天，我想分享这二十年来的心路历程，希望能给正在路上的程序员朋友们一些启发]]></description><category></category></item><item><title><![CDATA[Django 深度解析：从架构原理到生产实践的高级Web开发指南]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154403035</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154403035</guid><author>cxs4808</author><pubDate>Wed, 05 Nov 2025 20:04:07 +0800</pubDate><description><![CDATA[Django 作为 Python 生态系统中最成熟的 Web 框架之一，以其"约定优于配置"的设计哲学和完整的开箱即用功能而闻名。然而，要真正掌握 Django 并构建高性能、可扩展的生产级应用，需要深入理解其核心架构、中间件机制、ORM 优化、安全实践等高级主题。本文将从架构设计、性能优化、安全加固、最佳实践等多个维度，深入探讨 Django 的精髓。]]></description><category></category></item><item><title><![CDATA[Asyncio 深度解析：从原理到实践的高级异步编程指南]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154399625</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154399625</guid><author>cxs4808</author><pubDate>Tue, 04 Nov 2025 16:05:20 +0800</pubDate><description><![CDATA[Python 的 asyncio 模块自 Python 3.4 引入以来，已成为现代 Python 异步编程的核心。然而，许多开发者仅仅停留在表面使用，对其内部机制和高级特性缺乏深入理解。本文将从事件循环的底层实现、协程调度机制、性能优化策略、常见陷阱与最佳实践等多个维度，深入探讨 asyncio 的精髓。]]></description><category></category></item><item><title><![CDATA[Excel 处理库深度对比：openpyxl 与 xlrd 的实战解析]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154370932</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154370932</guid><author>cxs4808</author><pubDate>Tue, 04 Nov 2025 01:08:10 +0800</pubDate><description><![CDATA[在Python数据处理领域，Excel文件操作是最常见的需求之一。无论是数据分析、报表生成还是数据交换，选择合适的Excel处理库至关重要。本文将对Python生态中两个重要的Excel处理库 openpyxl 和 xlrd 进行深度解析和对比，帮助开发者根据实际场景选择最适合的工具。]]></description><category></category></item><item><title><![CDATA[itertools 模块深度解析：高效迭代工具的使用与实践]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154370471</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154370471</guid><author>cxs4808</author><pubDate>Tue, 04 Nov 2025 00:50:25 +0800</pubDate><description><![CDATA[在Python编程中，处理迭代器和生成器是日常开发中经常遇到的任务。Python标准库中的itertools模块提供了一系列高效、优雅的工具函数，可以帮助我们更简洁地处理各种迭代场景。本文将深入解析itertools模块的核心功能、使用技巧以及实际应用场景。]]></description><category></category></item><item><title><![CDATA[金蝶物料明细增量查询入库]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154370174</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154370174</guid><author>cxs4808</author><pubDate>Tue, 04 Nov 2025 00:32:07 +0800</pubDate><description><![CDATA[print(f"    ✅ 第 {batch_num}/{total_batches} 批: 已插入 {batch_inserted}/{total_rows} 条记录")print(f"  ⚠️ {table_name}: 成功插入 {batch_inserted}/{total_rows} 条记录，失败 {len(failed_batches)} 批")print(f"    ⚠️ 第 {batch_num} 批插入失败，重试中... ({retry_count}/{max_retries})")]]></description><category></category></item><item><title><![CDATA[WDT 平台货品查询接口数据增量提取入库]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154370122</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154370122</guid><author>cxs4808</author><pubDate>Tue, 04 Nov 2025 00:29:39 +0800</pubDate><description><![CDATA[print(f"✅ 成功加载数据库配置: {db_config['host']}:{db_config['port']}/{db_config['database']}")1. API响应格式：标准响应 {'status': 0, 'data': {'goods_list': [...], 'total_count': N}}return value, MATCH_TARGET_TYPE_MAP.get(type_code, f'未知({value})')]]></description><category></category></item><item><title><![CDATA[subprocess 模块深入解析：系统交互的必备技能]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154325273</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154325273</guid><author>cxs4808</author><pubDate>Mon, 03 Nov 2025 02:45:30 +0800</pubDate><description><![CDATA[最近在写一个自动化部署脚本，需要调用很多系统命令。刚开始用的是 `os.system()`，后来发现不够灵活，而且有些坑。查了资料后改用 `subprocess`，发现这玩意儿功能强大得多。今天就把我用 subprocess 的经验分享一下。]]></description><category></category></item><item><title><![CDATA[Pandas 实战：用它解决的数据处理问题]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154324738</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154324738</guid><author>cxs4808</author><pubDate>Mon, 03 Nov 2025 02:29:38 +0800</pubDate><description><![CDATA[最近在做一个数据分析项目，用 Pandas 处理了几百万行的数据。我用它处理过几百万行的数据，做过各种复杂的数据清洗和转换。df = pd.read_csv('large_file.csv', usecols=['列1', '列2', '列3'])user_stats.columns = ['用户ID', '总消费', '平均消费', '订单数', '最后购买日期']'城市': ['北京', '上海', '北京', None, '广州', '北京', '深圳', '北京']]]></description><category></category></item><item><title><![CDATA[聊聊 Python 的 heapq：你可能不知道的那些用法]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154324486</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154324486</guid><author>cxs4808</author><pubDate>Mon, 03 Nov 2025 02:14:53 +0800</pubDate><description><![CDATA[heapreplace()` 这个函数挺有意思的，它先把堆顶元素拿出来，然后把新元素放进去，一步到位。`heappush()` 用来添加元素，会自动维护堆的性质，时间复杂度 O(log n)。总的来说，`heapq` 是个非常实用的模块，特别是在刷题和做算法优化的时候。有时候只是想知道最小值是啥，不想真的取出来，直接用 `heap[0]` 就行，O(1) 操作，快得很。这个用得不多，但在某些场景下还是很有用的，比如在做滑动窗口的时候，需要频繁查看最小值但不想立马删除。这个在实现优先队列的时候是核心操作。]]></description><category></category></item><item><title><![CDATA[Python技术应用工程师认证需要学习什么？]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154320506</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154320506</guid><author>cxs4808</author><pubDate>Mon, 03 Nov 2025 00:36:24 +0800</pubDate><description><![CDATA[Python技术应用工程师证书考试旨在评估考生在实际项目开发中运用Python技术的能力，包括基础语法、常用库、Web开发、数据处理、系统运维等多个维度的综合应用能力。]]></description><category></category></item><item><title><![CDATA[写文件改为写库，使代码优雅示例]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154289059</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154289059</guid><author>cxs4808</author><pubDate>Sun, 02 Nov 2025 15:10:22 +0800</pubDate><description><![CDATA[python将接口输出结果写文件改为写数据库表，在做数据仓库时方便管理，避免数据丢失，并使代码更优雅]]></description><category></category></item><item><title><![CDATA[实时获取气象信息]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/154245210</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/154245210</guid><author>cxs4808</author><pubDate>Sat, 01 Nov 2025 17:48:03 +0800</pubDate><description><![CDATA[weather_keywords = ['晴', '雨', '雪', '阴', '雾', '霾', '多云', '小雨', '中雨', '大雨']print(f"  天气: {forecast.get('weather', '未知')}")print(f"🕐 更新时间: {data.get('update_time', '未知')}")print(f"  日期: {forecast.get('date', '未知')}")print(f"📍 城市: {data.get('city', '未知')}")]]></description><category></category></item><item><title><![CDATA[自动注释接口不存在的字段]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/153754351</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/153754351</guid><author>cxs4808</author><pubDate>Thu, 23 Oct 2025 00:36:39 +0800</pubDate><description><![CDATA[在调用金蝶云星空接口时，用金蝶云星空API文档提供的字段参数，由于API文档未及时更新，调用接口时，会有多次提示字段不存在，这样会严重影响开发效率，为了提高开发效率，需要在调用接口时，在返回结果中包含“字段不存在”字样时能自动注释不存在的字段]]></description><category></category></item><item><title><![CDATA[python读取金蝶物料接口]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/153696838</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/153696838</guid><author>cxs4808</author><pubDate>Tue, 21 Oct 2025 19:01:58 +0800</pubDate><description><![CDATA[print(f"正在获取第 {start_row//page_size + 1} 页数据 (StartRow: {start_row}, Limit: {page_size})")print(f"✅ 成功加载数据库配置: {db_config['host']}:{db_config['port']}/{db_config['database']}")print(f"✅ 第 {start_row//page_size + 1} 页获取到 {len(current_page_materials)} 条数据")]]></description><category></category></item><item><title><![CDATA[网络爬虫模拟浏览器,欺骗服务器,获取和浏览器一致的内容]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/153557222</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/153557222</guid><author>cxs4808</author><pubDate>Sun, 19 Oct 2025 07:48:02 +0800</pubDate><description><![CDATA[print(f"✅ 成功获取页面内容，长度: {len(content)} 字符")print(f"POST响应: {response[:200]}...")print(f"✅ 已更新请求头: {custom_headers}")print(f"页面标题: {content[:100]}...")print(f"正在发送POST请求: {url}")print(f"使用请求头: {headers}")print(f"JSON数据: {json_data}")]]></description><category></category></item><item><title><![CDATA[ORACLE锁]]></title><link>https://blog.youkuaiyun.com/cxs4808/article/details/42265723</link><guid>https://blog.youkuaiyun.com/cxs4808/article/details/42265723</guid><author>cxs4808</author><pubDate>Tue, 30 Dec 2014 14:24:06 +0800</pubDate><description><![CDATA[DML锁又可以分为，行锁、表锁、死锁

-行锁：当事务执行数据库插入、更新、删除操作时，该事务自动获得操作表中操作行的排它锁。 

-表级锁：当事务获得行锁后，此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL语句影响记录行的更新。事务也可以在进行过程中获得共享锁或排它锁，只有当事务显示使用LOCK TABLE语句显示的定义一个排它锁时，事务才会获得表上的排它锁,也可使用LOCK T]]></description><category></category></item></channel></rss>