当前位置: 首页 > news >正文

【Python基础】 15 Rust 与 Python 基本类型对比笔记

一、核心哲学差异

特性Rust 🦀Python 🐍
类型系统静态、强类型。编译时必须确定所有类型。动态、强类型。运行时确定类型。
内存管理编译时所有权系统运行时垃圾回收 (GC)
** 数值精度 **** 精确控制**。有多种固定位数的整数和浮点数类型。抽象简化。通常使用一种通用整数和一种通用浮点数。
**核心目标 **性能、安全、零成本抽象开发效率、简洁性、易用性

二、基本类型详细对比

数值类型
类型Rust 🦀Python 🐍
整数i8, u8, i16, u16, i32, u32, i64, u64, i128, u128, isize, usizeint (无限精度)
浮点数f32, f64float (通常为64位)
布尔值bool (true/false)bool (True/False)
文本类型
类型Rust 🦀Python 🐍
字符char (4字节Unicode)N/A (长度1的字符串)
字符串&str (切片), String (可变)str (不可变Unicode)
集合类型
类型Rust 🦀Python 🐍
序列/列表Vec<T>list
元组(T1, T2, ...)tuple
映射/字典HashMap<K, V>dict
集合HashSet<T>set
其他重要类型
类型Rust 🦀Python 🐍
空类型() (单元类型)NoneType (None)
可选值Option<T> (Some/None)N/A (用 None 约定)
错误处理Result<T, E> (Ok/Err)异常机制 (try/except)

三、内存与行为对比

方面Rust 🦀Python 🐍
赋值语义移动语义为主赋值即引用
可变性显式声明 (mut)隐式可变
类型转换显式转换 使用 as隐式转换

四、示例代码对比

数值与字符串

Rust


// 整数:必须指定类型或由编译器推断
let count: u32 = 100;
let price = 29.99; // 编译器推断为 f64// 字符串:区分 &str 和 String
let greeting: &str = "Hello, world!"; // 不可变视图
let mut name = String::from("Alice"); // 可变,拥有的字符串
name.push_str(" Smith");

Python


# 整数和浮点数:无需声明类型
count = 100       # 这是一个 int
price = 29.99     # 这是一个 float# 字符串:只有一种不可变字符串
greeting = "Hello, world!"
name = "Alice"
name = name + " Smith"  # 创建了一个新的字符串对象集合与可选值

Rust


// Vec 必须声明元素类型
let numbers: Vec<i32> = vec![1, 2, 3];
numbers.push(4);// Option 强制处理Some和None
let maybe_number: Option<i32> = Some(5);
// let maybe_number: Option<i32> = None;
if let Some(num) = maybe_number {println!("The number is: {}", num);
} else {println!("There is no number");
}
// 也可以使用 match 或 .unwrap() (不推荐安全代码中使用)

Python


# List 可以包含任何类型
numbers = [1, 2, 3]
numbers.append(4)# 使用 None 表示可选值,但需要手动检查
maybe_number = 5
# maybe_number = None
if maybe_number is not None:print(f"The number is: {maybe_number}")
else:print("There is no number")

五、总结

特性Rust 🦀Python 🐍
核心优势性能、内存安全、并发安全开发速度、灵活性、易学性
类型风格显式、精确、严格隐式、通用、灵活
适用场景系统编程、性能关键型应用Web开发、数据分析、机器学习

简单来说:Rust 给你控制权,但需要你负责;Python 给你便利,但隐藏了细节。


文章转载自:

http://ybe19rq8.gmwdL.cn
http://Qo7op3Ed.gmwdL.cn
http://WR1EeYGl.gmwdL.cn
http://7xvMYt85.gmwdL.cn
http://9KC5dzq1.gmwdL.cn
http://UumytDom.gmwdL.cn
http://MmUa47eH.gmwdL.cn
http://I3bOdhr5.gmwdL.cn
http://tr3OablX.gmwdL.cn
http://1EUG3Ybp.gmwdL.cn
http://BbSZ80Mr.gmwdL.cn
http://3KpD2vUV.gmwdL.cn
http://gxy8UGdB.gmwdL.cn
http://1CkLS5BP.gmwdL.cn
http://BqcBDiix.gmwdL.cn
http://YRKdg19k.gmwdL.cn
http://boytAx8S.gmwdL.cn
http://BVVP9roK.gmwdL.cn
http://IcxSqLxk.gmwdL.cn
http://QPVmXPsu.gmwdL.cn
http://8fgS796z.gmwdL.cn
http://CONczNk2.gmwdL.cn
http://Qqu1xhDR.gmwdL.cn
http://1qFUQJev.gmwdL.cn
http://sI1AL5if.gmwdL.cn
http://AOKdkqhH.gmwdL.cn
http://yM4JsC36.gmwdL.cn
http://DW3cuNSC.gmwdL.cn
http://Ute6Dac8.gmwdL.cn
http://W7HoPJok.gmwdL.cn
http://www.dtcms.com/a/366508.html

相关文章:

  • 景区负氧离子气象站:引领绿色旅游,畅吸清新每一刻
  • 旅游安全急救实训室助力应急处置技能实战化
  • 【RK3576】【Android14】如何在Android kernel-6.1 的版本中添加一个ko驱动并编译出来?
  • 学习日记-SpringMVC-day49-9.4
  • 弃用MinIO,拥抱全新一代分布式文件系统RustFS
  • 信息化安全性测试中漏洞扫描的定义与核心目的
  • 第四十八篇-Dockker+yusiwen/llama.cpp简单试用+CPU
  • 低代码选型避坑指南:告别封闭与绑定,星图云开发者平台定义开放灵活新标准
  • 新一代Agent(智能体),路在低代码?
  • 十四、STM32-----低功耗
  • Jenkins调用ansible部署lnmp
  • 快鹭云业财一体化系统技术解析:低代码+AI如何破解数据孤岛难题
  • 微信小程序校园助手程序(源码+文档)
  • 搭建商城系统安全防护体系的核心要点与实施策略
  • Java 方法:从定义调用到重载,入门到面试全攻略
  • 基于腾讯云MCP广场服务Firecrawl MCP网络采集服务构建自动化竞品监测工作日志
  • ICCV-2025 | 清华动以知景导航框架!MTU3D:连接视觉定位与探索,实现高效多样的具身导航
  • 论文解读 | Franka 机器人沉浸式远程操作:高斯溅射 VR 赋能的遥操框架研发与应用
  • Linux-xargs-seq-tr-uniq-sort
  • C# FileInfo 类深度解析文件时间属性
  • 强化学习DQN解决Cart_Pole问题
  • Cursor 辅助开发:快速搭建 Flask + Vue 全栈 Demo 的实战记录
  • 【Spring Cloud Alibaba】Sentinel(一)
  • Java开发中的依赖环境管理
  • Ubuntu 使用 Samba 共享文件夹
  • HCIA备考:常见路由协议及特点
  • 【LeetCode热题100道笔记】缺失的第一个正数
  • List<?>和List<Object>区别
  • 【开题答辩全过程】以 基于微信小程序的宠物领养系统为例,包含答辩的问题和答案
  • 近期算法学习记录