跳到主要内容

🚀 01-Python 语言特性

核心目标

打破“只会写脚本”的局限,从计算机底层运行机制出发,构建 AI 工程师必备的编程底层思维,理解 Python 在算力时代的统治力。

核心目标

掌握 Python 区别于 C/C++ 的核心语言特性,精准避开开发中的类型陷阱,为后续在边缘计算与大模型部署中的性能优化打下基础。


一、 计算机语言分类深度解析

1. 编译型 vs 解释型 (运行机制)

特性编译型语言 (如 C, Go, Rust)解释型语言 (如 Python, JS, PHP)
代表年份C (1970)Python (1990)
资源消耗极低 (适合 128KB 级别的嵌入式)较高 (适合 1GB 内存以上的架构)
转换过程使用 gcc 等编译器生成 .exe.out使用 python 解释器逐行实时翻译
执行效率极高,接近机器指令运行中等,存在解释开销
源码保护交付的是二进制文件,难以反编译直接交付源码,可见性高

2. 类型系统:静态/动态 vs 强/弱

概念纠正

很多教材会将 Python 称为弱类型,其实是不准确的。

  • Python 是动态强类型:不需要声明类型(动态),但不同类型不能乱算(强类型)。
  • C 语言是静态弱类型:需要声明类型(静态),但允许某些不安全的隐式转换(弱类型)。
关键纠正:Python 是弱类型吗?

绝对不是! * Python 是【动态强类型】:变量类型灵活(动态),但严禁不同类型隐式乱算(强类型)。

  • C 语言是【静态弱类型】:类型预先定死(静态),但允许危险的隐式指针转换(弱类型)。

💎 代码对比:标签 vs 盒子

1. 动态类型 (Dynamic Typing) — 以 Python 为例

在 Python 中,变量更像是一个“标签”,它可以随时贴在不同类型的对象上。

# 灵活:变量不需要声明类型,可以随时改变指向
x = 10 # 此时 x 是 int 类型
print(type(x))

x = "Hello" # 此时 x 变成了 str 类型,运行完全正常
print(type(x))

2. 静态类型 (Static Typing) — 以 C / Java 为例

// 严格:变量必须先声明类型,且类型不可更改
int x = 10;

x = "Hello"; // ❌ 编译阶段报错:无法将 const char* 赋值给 int 类型的变量
📌 点击展开:一张表看懂 Python 与 C/JS 的本质区别
类型象限代表语言典型行为
动态强类型Python1 + "2" -> ❌ 报错
动态弱类型JavaScript1 + "2" -> ✅ "12"
静态强类型Java / Go编译时严格检查类型
静态弱类型C / C++允许危险的隐式转换
  • Python 的哲学:语法规则相对宽松(动态特性),目标是为了降低门槛,快速推广。
  • 生态参考TIOBE 编程语言排行榜 —— Python 长期稳居第一,证明了其生态的强大。

二、 编程思想的演进

1. 面向过程 (Procedure Oriented)

  • 代表语言:C 语言。
  • 核心工具:结构体 (struct)。
  • 逻辑:将问题拆解为步骤,按照 1, 2, 3 的顺序执行。

2. 面向对象 (Object Oriented)

  • 代表语言:Python, Java, Go。
  • 核心思想万物皆对象
  • 四大特性抽象、封装、继承、多态

对象模型公式:

类 (Class) ==> 实例 (Object) 对象.属性 (它是谁?) 对象.方法() (它能做什么?)


三、 开发环境补充知识

1. 什么是 bin 目录?

在 Windows 或 Linux 安装包中,经常看到 bin 文件夹。

  • 含义:Binary (二进制)。
  • 作用:存放可执行文件(如 python.exe)。

2. C 语言工具链

如果您在 Windows 上开发嵌入式或 C++ 扩展,通常需要安装 MinGW-w64,它是 GCC 在 Windows 上的移植版本,为 Python 提供底层编译支持。


🛠️ 2W1H 总结

  • What:Python 是一门动态、强类型的面向对象解释型语言。
  • Why:开发效率高、跨平台、拥有海量 AI 库。
  • How:安装环境 ➔ 配置 PATH ➔ 编写第一个 .py 文件。