自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(493)
  • 收藏
  • 关注

原创 【学Python自动化】 11 标准库简介 —— 第二部分

日志级别:DEBUG, INFO, WARNING, ERROR, CRITICAL。输出选项:文件、邮件、套接字、HTTP服务器等。推荐使用 queue:集中资源请求,更易设计。同步原语:线程锁、事件、条件变量、信号量。string.Template 类。threading 模块。textwrap 模块。reprlib 模块。logging 模块。weakref 模块。decimal 模块。

2025-09-03 16:45:41 162

原创 【学Python自动化】 10 Python 标准库简介

xmlrpc.client 和 xmlrpc.server:远程过程调用。xml.etree.ElementTree:XML处理。gettext、locale、codecs:国际化支持。email:邮件处理(MIME、标头等)。sqlite3:SQLite数据库接口。json:JSON解析。csv:CSV文件读写。

2025-09-03 16:30:43 83

原创 【学Python自动化】 9.1 Python 与 Rust 类机制对比学习笔记

特性PythonRust类定义class 关键字继承直接支持多重继承通过特质(trait)实现多态动态分发(运行时)静态分发(编译时)或特质对象访问控制命名约定(和_)显式 pub 关键字方法定义显式 self 参数隐式 self(&self, &mut self, self)内存管理垃圾回收所有权系统和借用检查器迭代器协议(iternextIterator 特质。

2025-09-03 12:43:26 218

原创 【学Python自动化】 9 Python 类 (Classes) 笔记

"""类文档字符串"""# 类属性i = 12345# 实例属性类定义: 使用 class 关键字,支持继承和多态实例化: 通过调用类对象创建实例self 参数: 方法第一个参数代表实例本身变量作用域: 理解局部、全局、非局部变量的区别继承机制: 支持单继承和多继承,方法解析顺序重要私有变量: 通过命名约定实现,非强制约束迭代器和生成器: 提供统一的迭代接口,生成器更简洁Python 的类机制提供了面向对象编程的所有核心功能,同时保持了语言的简洁性和灵活性。

2025-09-03 08:34:16 377

原创 【学Python自动化】 8.1 Python 与 Rust 错误处理对比学习笔记

Python 自定义异常try:e } ")e } ")e } ")e } ")e } ")Rust 自定义错误} else {Ok(())

2025-09-02 16:29:43 234

原创 【学Python自动化】 8. Python 错误和异常学习笔记

从 Exception 类派生命名以 “Error” 结尾保持简单,主要提供错误信息# 文件会自动关闭区分语法错误和异常try-except 处理预期内的异常finally 确保清理操作执行with 语句自动管理资源自定义异常从 Exception 派生使用异常链和注释提供更多上下文信息ExceptionGroup 处理多个不相关异常这份笔记涵盖了 Python 错误和异常处理的主要概念和用法,可作为学习和参考的快速指南。

2025-09-02 16:04:47 265

原创 【学Python自动化】 7.1 Python 与 Rust 输入输出对比学习笔记

特性PythonRust错误处理异常机制Result/Option 类型文件操作with 语句自动关闭需要显式处理或使用作用域字符串格式化f-字符串,灵活format!宏,类型安全序列化json 模块内置需要 serde 外部库编码处理encoding 参数需要显式处理 UTF-8二进制安全需要指定 ‘b’ 模式默认就是字节操作。

2025-09-02 15:21:49 403

原创 【学Python自动化】 7. Python 输入与输出学习笔记

这个笔记涵盖了 Python 输入输出的核心概念,从简单的打印到复杂的文件操作和数据序列化!指定编码:特别是文本文件,推荐 encoding=‘utf-8’文件对象的 write() 方法:输出到文件。现代代码:使用 f-strings(最简洁)总是使用 with 语句:确保文件正确关闭。二进制文件用 ‘b’ 模式:如图片、视频等。兼容旧版本:使用 str.format()print() 函数:最常用的输出方式。表达式语句:直接写变量或表达式。大文件逐行处理:避免内存不足。避免使用:% 操作符(旧式)

2025-09-02 14:43:51 502

原创 【学Python自动化】 6.1 Python 模块系统学习笔记 (与 Rust 对照)

哲学差异Python: 动态、灵活、隐式Rust: 静态、明确、显式访问控制Python: 默认都是公开的Rust: 默认私有,需要 pub 关键字模块声明Python: 文件系统驱动,自动发现Rust: 需要显式 mod 声明包管理Python: pip + 虚拟环境Rust: cargo + 工作空间编译模型Python: 解释执行,运行时加载Rust: 静态编译,链接时解析。

2025-09-01 14:03:47 682

原创 【学Python自动化】 6. Python 模块系统学习笔记

模块特性name变量:模块名,“main” 表示直接运行独立命名空间:避免全局变量污染一次性初始化:避免重复执行初始化代码包特性必须包含init.py:标识目录为包分层组织:使用点号表示法相对导入:支持包内模块间的相对引用最佳实践使用绝对导入:提高代码可读性和可维护性避免 from module import *:明确导入所需内容使用 ifname== “main”:使模块可执行也可导入合理组织包结构:按功能划分模块。

2025-09-01 11:33:01 440

原创 【学Python自动化】5.1 Python 与 Rust 数据结构对比学习笔记

特性PythonRust类型系统动态,鸭子类型静态,强类型可变性默认可变,可控制默认不可变,需要 mut所有权引用计数所有权系统错误处理异常空值 NoneOption迭代器推导式迭代器适配器方法链有限支持强大的方法链。

2025-09-01 10:16:26 878

原创 【学Python自动化】 4.1 Python 与 Rust 控制流和函数对比学习笔记

Python 函数"""打印小于n的斐波那契数列"""print()"""返回小于n的斐波那契数列列表"""Rust 函数print!("{} ", a);println!();result特性PythonRust类型系统动态,鸭子类型静态,强类型错误处理异常所有权引用计数所有权系统模式匹配相对简单非常强大函数参数灵活,支持默认值严格,需要明确类型闭包lambda 表达式闭包,处理所有权代码组织缩进花括号。

2025-09-01 09:37:24 664

原创 【学Python自动化】 5. Python 数据结构学习笔记

方法描述等价操作rust Vec类似操作末尾添加元素扩展列表或者更高效:vec.extend_from_slice(&[4, 5, 6]);指定位置插入删除第一个值为x的元素移除并返回指定位置元素vec.pop();及vec.remove(1);清空列表del a[:]返回第一个x的索引统计x出现次数原地排序vec.sort();原地反转浅拷贝a[:]示例代码fruits.index('banana', 4) # 6 (从索引4开始找)

2025-08-31 19:48:53 485

原创 【学Python自动化】 3. Python 速览学习笔记 (Windows 环境)

运算符优先级:** 比 - 优先级更高,-3**2 结果是 -9。这些基础操作是Python编程的基石,建议在交互模式下多加练习!缩进很重要:Python 用缩进来标识代码块,必须保持一致。引号使用:单引号和双引号功能相同,选择一种保持代码一致性。列表可变:列表可以直接修改,注意引用和拷贝的区别。字符串不可变:所有字符串操作都会创建新字符串。print函数的高级用法。混合运算和特殊变量 _转义字符和原始字符串。

2025-08-31 01:00:00 248

原创 【学Python自动化】 4. Python 控制流与函数学习笔记

斐波那契函数"""打印小于n的斐波那契数列"""print()返回列表的函数"""返回小于n的斐波那契数列列表"""

2025-08-30 21:18:06 539

原创 【学Python自动化】 2. Windows Python 解释器使用笔记

现在你已经掌握了Windows下Python解释器的基本用法,开始你的编程之旅吧!实践应用:用Python解决生活中的小问题,如计算器、文件整理等。善用帮助:遇到不熟悉的函数随时使用 help() 查看文档。重新安装Python,勾选"Add to PATH"逐步深入:先从简单的计算和打印开始,逐渐尝试复杂功能。按 Win + R,输入 cmd 打开命令提示符。每日练习:每天花10分钟在交互模式下尝试新命令。或按 Ctrl+Z 然后按 Enter。按 Ctrl+Z + Enter。按上下箭头查看历史命令。

2025-08-30 19:29:01 470

原创 【学Python自动化】 1. Python 安装与配置完全指南 (Windows)

步骤内容状态1下载 Python 3.13.x✅2管理员权限安装,勾选 Add to PATH✅3安装 VS Code + Python 插件✅4创建虚拟环境✅5安装 pyautogui 等库✅6编写第一个自动化脚本✅最终建议:Python 3.13.x + VS Code + 虚拟环境 是目前最适合新手入门Windows自动化的组合,既有现代语言的特性,又有完善的生态支持。

2025-08-30 18:45:36 1332

原创 【Rust】 6. 字符串学习笔记

str - 字符串切片(通常作为引用出现)String - 动态可变的、拥有所有权的字符串&str: 静态、不可变、零成本抽象的字符串视图String: 动态、可变、拥有所有权的字符串UTF-8 编码确保完整的 Unicode 支持设计注重内存安全和性能丰富的API支持各种字符串操作性能提示:频繁的字符串修改建议使用 String,只读操作使用 &str。

2025-08-29 15:52:28 454

原创 【Rust】 5. Trait 与运算符重载

Trait 是 Rust 多态性的核心机制标记特质用于在类型系统中标记类型属性关联类型和 GATs 支持高级类型计算区分静态分发与动态分发的适用场景遵循一致性原则(孤儿规则)合理使用 derive 派生宏减少样板代码标准库 trait 为运算符重载和类型转换提供基础Trait 对象 (dyn Trait) 提供运行时多态性Supertraits 支持 trait 组合和继承通过熟练掌握 trait 系统,可以编写出灵活、高效且类型安全的 Rust 代码。

2025-08-29 12:55:31 803

原创 【Rust】 4. 函数与闭包

总结: 闭包提供了比函数更大的灵活性,特别是在需要捕获上下文和进行函数式编程的场景中。在 Rust 中,函数是一等公民(First-class citizens),可以像普通值一样被赋值、传递和返回。特点: 发散表达式可以被转换为任何类型,这在需要统一类型的场合(如 match 表达式的不同分支)很有用。函数体内可以定义其他项(如静态变量、常量、嵌套函数、trait、类型等)。这是闭包与函数最核心的区别:闭包可以捕获并使用其定义作用域内的变量。返回值:函数可以返回一个值,或不返回任何值(即返回 ())。

2025-08-28 16:42:57 898 2

原创 【Rust】 3. 语句与表达式笔记

连续比较:a == b == c // 错误!// 应写成:a == b && b == cif 表达式遗漏 else 分支:// 错误!if 是 i32,隐含 else 是 ()// 应补充 else 分支或使用其他控制流误在表达式末尾加分号(尤其是在函数最后一行和块的最后一行):42;// 错误!变成了语句,返回 () 而非 i32// x 的类型是 (),而不是 i32。

2025-08-28 16:10:10 801

原创 【Rust】 2. 数据类型笔记

Rust 是静态类型语言,所有变量类型在编译时就必须确定。Rust的类型系统设计强调安全性和性能:静态类型检查在编译期捕获错误丰富的标量和复合类型满足各种需求明确的类型转换规则防止隐式错误内存安全的设计避免常见编程错误选择合适的数据类型需要综合考虑数据的特性、内存使用、性能需求和代码可维护性等因素。

2025-08-27 15:27:44 722

原创 【Rust】 1. 变量学习笔记

Rust 的变量系统体现了语言的核心理念:安全第一:默认不可变、必须初始化明确表达:显式的可变性声明灵活实用:变量遮蔽、类型推导、模式解构零成本抽象:编译期检查,运行时无额外开销掌握 Rust 的变量系统是学习这门语言的重要第一步,它为理解所有权、借用等更高级概念奠定了基础。

2025-08-27 13:55:14 1010

原创 【typenum】30 类型级别的取负(Neg)

解释:这是一个类型别名,用于简化代码Negate等价于::Output(即类型A实现Neg特质后的输出类型)作用:让代码更简洁易读,避免重复写冗长的关联类型语法。

2025-08-26 22:33:34 446

原创 【typenum】 29 类型级别的数字数组标记特质(TypeArray)

//关键概念:标记特质(Marker Trait):不包含任何方法的特质,仅用于在类型系统中标记某些类型具有特定属性类型级别数组:在编译时表示数组的类型信息,而不是运行时的实际数据Sealed:这是一个密封特质,防止外部crate实现该特质,确保只有当前crate能控制哪些类型实现它注释说明:未来可能添加关联常量来生成运行时数组目前受限于 Rust issue #44168(常量泛型相关限制)

2025-08-26 22:07:02 308

原创 【typenum】 28 数组长度和二进制数的位数(Len)

/ 输出类型必须是Unsigned// 运行时获取长度的方法类型级操作符: 在编译时计算长度Output: 关联类型,表示长度的类型(必须是Unsigned类型)len(): 运行时方法,实际返回类型级别的长度值。

2025-08-25 21:02:47 607

原创 【typenum】 27 二进制数反转的trait实现(private.rs片段)

PrivateInvert trait: 一个私有trait,用于实现二进制数的位反转操作Rhs: 类型参数,表示当前已经处理的结果Output: 关联类型,表示反转操作的最终结果类型PrivateInvertOut: 类型别名,简化对Output类型的访问。

2025-08-25 12:58:15 587

原创 【typenum】 26 标准数字和“反转数字“之间进行转换的 trait 系统(private.rs片段)

反转表示: InvertedUInt<InvertedUInt<InvertedUInt<InvertedUTerm, B1>, B0>, B1> (LSB在外)这段代码实现了一个用于在标准数字和"反转数字"之间进行转换的 trait 系统,主要用于处理大数的数字表示。标准表示: UInt<UInt<UInt<UTerm, B1>, B0>, B1> (MSB在外)定义 Invert trait,用于将数字从标准表示转换为反转表示,或反之。零大小类型: 所有类型在运行时都是零大小的,编译时完成所有计算。

2025-08-24 19:34:04 338

原创 【typenum】 25 去除无符号整数前导零的特性(private.rs片段)

这个 trait 提供了一个简洁的接口来处理数值的前导零问题,通过组合现有的 Invert 和 TrimTrailingZeros 功能来实现。这段 Rust 代码定义了一个用于处理无符号整数的便利 trait,主要用于去除数值前导的零(实际上是通过反转字符串处理方式来实现的)。方法链: 使用 self.invert().trim_trailing_zeros().invert() 的流畅接口。任何实现这个 trait 的类型都可以调用 trim() 方法来获得修剪后的结果。避免前导零影响数值比较和显示。

2025-08-24 19:10:50 364

原创 【typenum】 24 去除尾部零的特性(private.rs片段)

/ 关联类型:修剪后的输出类型。

2025-08-23 23:02:05 562 1

原创 【typenum】 23 倒序存储的无符号整数(private.rs片段)

msb: IU, // 更高位的数字(在外部)lsb: B, // 最低位数字这个结构使用类型级编程,在编译时表示数字。

2025-08-23 22:47:31 309

原创 【typenum】 22 类型级别二进制对数运算(Logarithm2)

封装实现细节:PrivateLogarithm2 是私有trait,隐藏具体算法。这种设计模式在类型级编程中很常见,提供了良好的封装性和可维护性。控制可见性:用户只能看到公开的 Logarithm2 接口。实现:具体的算法实现(使用了私有trait模式)定义了一个公开的trait Logarithm2。这段代码实现了一个类型级别的二进制对数运算系统。防止误用:用户不能直接实现或依赖私有trait。这是一个类型运算符,在编译时计算二进制对数。关键设计模式:私有trait模式。别名:提供简洁的类型别名。

2025-08-22 22:33:12 540

原创 【typenum】 21 类型级别计算最大公约数(Gcd)

这是一个类型级编程的实现,使用Rust的trait系统在编译时计算GCD,而不是运行时。这是一个典型的使用Rust类型系统进行编译时计算的例子,展示了如何利用trait系统和关联类型来实现复杂的数学运算。双奇数:gcd(x, y) = gcd(|x-y|, min(x,y))(利用两奇数差为偶数的性质)双偶数:gcd(x, y) = 2 * gcd(x/2, y/2)x奇y偶:gcd(x, y) = gcd(x, y/2)x偶y奇:gcd(x, y) = gcd(x/2, y)

2025-08-22 22:00:32 516

原创 【typenum】 20 类型函数Abs(type_operators.rs片段)

这是一个典型的类型级别编程范例,将数值运算提升到类型系统层面,在编译期完成计算,确保运行时效率。代码定义了一个用于计算类型级别绝对值的 trait Abs,是类型级别编程的典型示例。类型级别绝对值计算:在编译时计算整数的绝对值,结果也是一个类型。类型安全:通过 trait 系统保证正确性。零运行时开销:所有计算在编译期完成。泛型编程:支持任意大小的整数类型。PInt = 类型级别的 +3。NInt = 类型级别的 -5。Z0 = 类型级别的 0。维度检查(如矩阵运算)数学库的类型安全运算。

2025-08-21 22:31:57 504

原创 【typenum】 19 类型相同检查(type_operators.rs片段)

这是一个零开销的编译时类型检查工具:✅ 运行时无性能损耗✅ 编译时类型安全✅ 支持泛型编程和宏扩展✅ 利用 Rust 的 trait 系统和惰性求值特性主要用于构建类型安全的领域特定语言(DSL)和高级类型系统操作。

2025-08-21 22:13:32 233

原创 【unitrix数间混合计算】3.4 无符号小数部分标记trait(bin_Frac.rs)

这段代码定义了一个类型级二进制小数系统,用于在编译时表示和验证二进制小数部分的有效性。这是一个优雅的类型级编程示例,展示了如何在编译时确保数据的有效性和正确性。表示小数部分为 0(如:101. → 整数部分后面没有小数)递归定义:每个 BFrac 包含一个比特和剩余的小数部分。trait 约束:为其他需要小数参数的函数提供类型约束。类型安全:要求 B 是合法比特,F 是合法小数。类型验证:确保只有合法的小数类型才能被使用。编译时保障:防止无效的小数类型被误用。类型安全:防止无效的小数构造。

2025-08-20 20:53:50 314

原创 【unitrix数间混合计算】3.3 无符号整数标记trait(bin_unsigned.rs)

这段代码是用 Rust 语言实现的一个类型级无符号二进制整数系统,通过类型系统在编译时表示和操作二进制数字。这是一种典型的"类型级编程"(type-level programming)技术。这是一种高级的 Rust 编程技术,展示了 Rust 强大的类型系统和编译时计算能力。这种设计既解决了技术问题,又提供了更好的开发体验,是一个很优秀的重构方案。to_u8()/to_u16()/…编译时计算:使用 const 常量在编译时完成数值计算。类型安全:通过类型系统保证数值的有效性。

2025-08-20 17:57:00 504

原创 【unitrix数间混合计算】3.2 非零标记trait(non_zero.rs)

原代码通过NonZero特质标记非零整数类型(包括正负整数和无符号整数)。扩展到小数(定点数)时,需要同时检查整数部分和小数部分。扩展到浮点数时,需要根据指数和尾数的状态判断非零条件。通过增加位数(类型参数)可以拓宽表示范围和提高精度。这种类型级编程常用于嵌入式系统、数值计算和高安全性领域,在编译期确保数值有效性(如避免除零错误)。

2025-08-19 22:16:58 1083

原创 【typenum】 18 调试代码(test.rs)

作用: 这段代码只有在运行 cargo test 时才会被编译和执行,正常构建 (cargo build) 时会完全忽略。这段代码的意思是:在测试模式下,将 OUT_DIR/tests.rs 文件的内容包含到当前模块中。这段代码是 Rust 项目中常见的测试模块配置,主要用于条件编译和动态包含测试文件。这种动态包含的方式主要适用于需要自动生成测试或管理大量测试文件的复杂项目。这是一个内置宏,用于在编译时将指定文件的内容直接包含到当前位置。test: 指定条件 - 只在运行测试时编译。2. include!

2025-08-19 21:35:55 395

原创 【unitrix数间混合计算】3.1 零标记trait(zero.rs)

定义了一个公开的标记特征Zero它要求实现者必须也实现Sealed trait(这是一种防止下游crate实现该trait的模式,称为"sealed trait"模式)

2025-08-18 16:55:16 339 1

从头写CAD完成部分源码

从头写CAD完成部分源码

2024-09-08

角度类、长度类及相关文件源码

角度类、长度类及相关文件源码

2024-09-03

【从头写CAD】 几何体类系列一 开篇

Point类源码

2024-08-28

【从头写CAD】点类Point

【从头写CAD】点类Point

2024-08-25

【从头写CAD】 主程序

相关源码

2024-08-21

【从头写CAD】 程序集

【从头写CAD】 程序集

2024-08-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除