摘要: 对比维度 C语言FILE结构体 Python文件对象 为什么本质不同? 模式字符串 "r", "w", "a", "r+", "w+", "a+", "rb", "wb", "ab", "rb+", "wb+", "ab+" "r", "w", "a", "r+", " 阅读全文
posted @ 2025-11-21 13:29 wangya216 阅读(0) 评论(0) 推荐(0)
摘要: C语言没有像Python、Java那样的“面向对象异常机制”(比如try-catch捕获、主动抛出异常对象),但它有一套“手动式错误处理逻辑”——核心靠“返回值+全局变量+状态标志”来标识和处理错误,本质是“开发者主动检查、手动处理”,而非语言层面的“自动异常机制”。 结合文件操作(FILE*指针) 阅读全文
posted @ 2025-11-21 12:42 wangya216 阅读(2) 评论(0) 推荐(0)
摘要: 两大OS的核心哲学:Linux“一切皆文件” vs Windows“一切皆对象” 在操作系统的设计内核中,Linux/Unix与Windows遵循着截然不同的核心哲学——前者信奉“一切皆文件”,后者坚守“一切皆对象”。这两种哲学不仅决定了系统的资源管理方式,更塑造了开发者的操作逻辑:Linux用简单 阅读全文
posted @ 2025-11-21 10:54 wangya216 阅读(2) 评论(0) 推荐(0)
摘要: 在Python中操作文件时,我们常接触open()函数、文件对象,却很少深究底层的“文件描述符”或“句柄”。这些概念是操作系统与程序交互文件的核心桥梁,理解它们不仅能避免“文件打开过多”等坑,还能搞懂Python文件操作的底层逻辑。本文将从概念辨析、底层原理、实战示例三个维度,结合常见疑问,系统拆解 阅读全文
posted @ 2025-11-21 10:13 wangya216 阅读(4) 评论(0) 推荐(0)
摘要: 为什么Python文件操作依赖系统open()/close(),而非C标准库fopen()/fclose()? Python(尤其是CPython,官方默认实现)的文件操作核心依赖操作系统原生的open()/close()系统调用,而非C语言标准库的fopen()/fclose()。这一设计抉择并非 阅读全文
posted @ 2025-11-21 09:40 wangya216 阅读(4) 评论(0) 推荐(0)
摘要: Python异常捕获终极指南:哪些能拦、哪些拦不住?(通俗+深度双解析) 在Python编程中,try-except 是保障程序健壮性的核心机制,就像给程序装了“智能安全盾”——能精准拦截预期内的错误,却挡不住底层逻辑漏洞或系统级故障。很多开发者(甚至中级工程师)都会陷入“异常捕获万能论”的误区,本 阅读全文
posted @ 2025-11-20 13:12 wangya216 阅读(3) 评论(0) 推荐(0)
摘要: for line in f? 以及文件打开模式 一、为什么 for line in f 可以逐行读取文件? 这是Python文件对象的一个「语法糖」特性,本质是利用了文件对象的可迭代性。 1. 什么是「可迭代对象」? 简单说,就是可以用 for 循环遍历的对象(比如列表、字符串都是可迭代对象)。Py 阅读全文
posted @ 2025-11-19 20:28 wangya216 阅读(7) 评论(0) 推荐(0)
摘要: 循环引用的核心就是 两个或多个对象互相引用,形成闭环,导致每个对象的引用计数都无法降至 0,GC 仅靠引用计数机制无法回收它们(需依赖标记-清除机制)。 你举的例子是最典型的场景: a = [] b = [] a.append(b) # a 引用 b(a 的元素是 b) b.append(a) # 阅读全文
posted @ 2025-11-19 10:42 wangya216 阅读(0) 评论(0) 推荐(0)
摘要: Python 的 GC(垃圾回收)核心是「引用计数 + 标记-清除 + 分代回收」机制,回收时机分「自动触发」和「手动触发」,不同机制的触发时机不同,核心原则是「不影响程序运行效率,同时及时回收无用资源」: 一、核心回收时机(按触发方式分类) 1. 自动触发(最常见,无需手动干预) (1)引用计数为 阅读全文
posted @ 2025-11-19 10:39 wangya216 阅读(6) 评论(0) 推荐(0)
摘要: 文件句柄(File Handle)本质是 操作系统给打开的文件分配的“资源标识ID” —— 你可以把它理解成「文件的专属通行证」: 当你用 open() 打开文件时,操作系统会: 在磁盘找到该文件,验证访问权限(读/写); 分配一块内存存储文件相关信息(如文件位置指针、打开模式、缓冲区); 生成一个 阅读全文
posted @ 2025-11-19 10:27 wangya216 阅读(11) 评论(0) 推荐(0)
摘要: 一、核心问题解答 1. 为什么Python有GC还需要关闭文件/用with打开? GC的核心作用是回收“内存资源”(如无引用的对象),但文件属于操作系统级别的外部资源(非内存资源),GC无法管理: 文件句柄(打开文件后操作系统分配的资源标识)不属于Python对象内存,GC无法自动释放; 若不关闭文 阅读全文
posted @ 2025-11-19 10:18 wangya216 阅读(4) 评论(0) 推荐(0)
摘要: 在文件操作中,这个“记录当前读写位置的指示器”,官方术语叫 File Position Indicator(文件位置指示器),也常称为“文件指针”(注意和C语言的内存指针完全不同,仅为位置标记)。 一、核心定义 本质:记录文件下次读写时的起始字节位置(从文件开头计数,默认以字节为单位)。 关键:每次 阅读全文
posted @ 2025-11-19 10:16 wangya216 阅读(5) 评论(0) 推荐(0)
摘要: re.compile(pattern, flags=0) 的核心作用是 “编译正则表达式模式,生成可重复使用的 Pattern 对象”——本质是把正则字符串“编译”成正则引擎可直接执行的“字节码”,核心价值是 提升重复使用时的效率 + 简化代码。 一、核心用途(用例子说清楚) 提升重复使用的效率(最 阅读全文
posted @ 2025-11-17 22:32 wangya216 阅读(7) 评论(0) 推荐(0)
摘要: { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Python 字符串常用操作完全教程(含代码演示)\n", "> 基于《Python字符串常用操作速查表》v1.0 编写,配套可运行代码示例,适合边学边练\n 阅读全文
posted @ 2025-11-17 22:22 wangya216 阅读(7) 评论(0) 推荐(0)
摘要: 正则表达式贪婪与非贪婪匹配:原理差异与底层算法(严谨版) 正则表达式中贪婪匹配与非贪婪匹配的核心差异,在于量词重复次数的尝试优先级与回溯机制的触发逻辑。二者底层均依赖NFA正则引擎的“逐字符扫描+决策回溯”算法,但匹配策略的本质不同,导致最终匹配结果天差地别。本文将以严谨的表述,系统拆解二者的定义、 阅读全文
posted @ 2025-11-17 21:31 wangya216 阅读(11) 评论(0) 推荐(0)
摘要: 从 C 到 Python:文件操作与上下文管理器的深度解析(避坑指南) 对于习惯了 C 语言手动管理资源的学习者,Python 的文件操作和上下文管理器常常带来认知混淆:为什么 C 必须手动 fopen/fclose,而 Python 能用 with 自动处理?as 关键字是不是多余的?本文将从“文 阅读全文
posted @ 2025-11-16 21:09 wangya216 阅读(7) 评论(0) 推荐(0)
摘要: 断言:从调试利器到程序守护者的全面解析 一、什么是断言?—— 定义与核心价值 断言(Assertion)是编程语言中一种调试与验证机制,用于在代码中嵌入“必须满足的条件”——当条件为True时,程序正常运行;当条件为False时,程序立即终止并抛出错误,暴露潜在问题。 核心价值: 提前暴露隐患:在开 阅读全文
posted @ 2025-11-16 11:17 wangya216 阅读(12) 评论(0) 推荐(0)
摘要: 一、IO编程的核心定义(通俗+严谨) 1. 通俗理解: IO 是 Input/Output(输入/输出) 的缩写,IO编程本质是 “程序与外部设备/资源之间的数据交互” ——就像程序的“进出口业务”: 输入(Input):外部数据流入程序(如读取文件内容、键盘输入、网络接收数据); 输出(Outpu 阅读全文
posted @ 2025-11-16 11:12 wangya216 阅读(11) 评论(0) 推荐(0)
摘要: CPython(Python 官方解释器)对 str 的底层存储实现,核心结论是:Python 3.3+ 采用“柔性字符串存储”(Flexible String Representation),优先使用 UTF-8 编码,仅在必要时动态切换到 UTF-16/UTF-32,而非固定某一种编码。 这种设 阅读全文
posted @ 2025-11-16 10:48 wangya216 阅读(6) 评论(0) 推荐(0)
摘要: C 语言中的字符串跟 Python 里面字符串都有哪些不同? 核心差异:C的字符串是需手动管理的字符数组,Python的是不可变对象,关键不同集中在5点: 本质与存储:C是char[](连续内存的字符序列,以'\0'结尾);Python是str对象(封装了字符数据,无需关注结束符)。 可变性:C字符 阅读全文
posted @ 2025-11-16 10:41 wangya216 阅读(4) 评论(0) 推荐(0)
摘要: 功能 声明(Declaration) 定义(Definition) 告知“有这个东西” ✅ 核心职责 ✅ 自带(包含声明) 绑定类型 ✅ 必须绑定 ✅ 必须绑定(和声明一致) 分配存储单元/实体 ❌ 不分配 ✅ 核心职责(变量给内存,函数给实现) 一句话记死: 声明:报名字+定类型(让编译器认识它) 阅读全文
posted @ 2025-11-16 10:33 wangya216 阅读(5) 评论(0) 推荐(0)
摘要: 对比维度 C 语言函数 Python 函数 声明与定义 可分离(声明写头文件,定义写.c文件),必须先声明(或定义)再使用 声明与定义合一(def语句即完成定义+声明),无需单独声明 类型绑定 必须指定返回值类型、参数类型,类型固定 无需显式指定类型(动态类型),参数/返回值类型可灵活变化 绑定时机 阅读全文
posted @ 2025-11-16 10:32 wangya216 阅读(5) 评论(0) 推荐(0)
摘要: 不完全准确,更严谨的表述是: “Python 淡化了静态语言中‘声明与定义分离’的严格区分,强化了‘对象创建与名称绑定’的核心逻辑” 原因: C 中 “定义” 是 “分配内存 + 绑定类型”,“声明” 是 “告知存在”;Python 无此二分法,但并非完全没有 “定义” 的口语场景(如 “定义函数” 阅读全文
posted @ 2025-11-16 10:25 wangya216 阅读(4) 评论(0) 推荐(0)
摘要: x = True # 全局名称x绑定布尔对象True print(locals()['x']) # 输出:True print(globals()['x']) # 输出:True 阅读全文
posted @ 2025-11-16 10:06 wangya216 阅读(2) 评论(0) 推荐(0)
摘要: 在 Python 错误信息 invalid literal for int() with base 10: 'abc' 中,涉及两个关键问题:base 10 的含义,以及程序如何知道错误输入是 'abc'。下面分别详细解释: 一、base 10 是什么意思? base 在这里表示“进制”,base 阅读全文
posted @ 2025-11-15 22:35 wangya216 阅读(15) 评论(0) 推荐(0)