一名 PHP 工程师的 Python 系统学习笔记(01)|为什么我决定重新系统学一遍 Python
很多工程师其实都会一点 Python。
我也一样。
写过脚本、跑过工具、照着文档改过示例代码,但坦白说——一直没有把 Python 当成一门“工程语言”来认真对待。
直到最近一段时间,在 PHP 之外,我开始系统了解 Go,再回头看 Python,才意识到:
Python 不是“简单”,而是你是否真正理解它的使用边界和工程价值。
所以我决定:从工程师视角,重新、完整地学习一遍 Python。
这篇文章,是这个过程的第 1 天记录。
一、为什么不是“随便学学”,而是系统来一遍
在实际工作中,我见过太多这样的情况:
- Python 会一点,但不敢接手项目
- 脚本能写,但代码不敢给别人看
- 知道很多语法,却不知道哪些是 Pythonic 写法
问题不在于 Python 难,而在于:
大多数人从来没有“系统”学过 Python。
这一次,我给自己的要求很明确:
- 不走小白路线
- 不背语法表
- 只关注工程中真正会用到的东西
二、环境这一步,我刻意没有“折腾”
很多教程一开始就:
- IDE 对比
- 插件推荐
- 各种配置
但对我来说,第 1 天只做一件事:
确认:我能不能用最简单的方式,把 Python 跑起来。
Python 版本
python3 --version
建议直接使用:
- Python ≥ 3.9
- 我当前使用的是 Python 3.10
三、第一个 Python 文件(非常刻意地简单)
print("Hello, Python")
运行:
python3 day1_basic.py
这一行代码的意义不在于功能,而在于确认三件事:
- 运行路径清楚
- 环境没坑
- 没有隐藏魔法
四、Python 的几个核心数据结构(工程师版本)
1. list:比你想象中重要得多
nums = [1, 2, 3, 4]
nums.append(5)
如果你来自 PHP:
- 这就是最常用的顺序数组
- 后面会大量配合推导式使用
2. dict:更严格,但更安全
user = {
"id": 1,
"name": "ding",
"age": 18
}
print(user["name"])
和 PHP 不同的一点是:
key 不存在,Python 会直接抛异常。
但站在工程角度看,这反而能更早暴露问题。
3. set:自动去重,真的好用
ids = {1, 2, 3, 3}
print(ids)
非常适合用在:
- 判重
- 权限集合
- 中间态数据处理
4. tuple:一开始容易忽略,但后面无处不在
point = (10, 20)
x, y = point
Python 世界里:
- 返回多个值
- 参数解包
都离不开它。
五、控制流:Python 强迫你把代码写“干净”
if
if age >= 18:
print("adult")
else:
print("child")
没有括号,没有分号,缩进就是规则。
你写得乱,Python 直接不让你跑。
for + range
for i in range(1, 6):
print(i)
Python 不鼓励 C / PHP 那种 for 写法, 而是让你明确表达“我要遍历什么”。
六、真正拉开差距的一行代码
result = [i * 2 for i in range(1, 6)]
第一次真正用上列表推导式时,我的感受只有一句话:
这不是语法糖,这是思维方式的改变。
七、第 1 天我刻意只做了这几件事
- 不急着写复杂逻辑
- 不追求覆盖所有语法
- 只建立“Python 的手感”
对我来说,第 1 天的目标只有一个:
让我写的代码,开始“像 Python”。
写在最后
这是一名 PHP 工程师重新学习 Python 的真实记录。
后续我会继续分享:
- 函数与参数设计
- Python 高级特性
- 工程实践中的使用方式
- 以及与 PHP / Go 的对比理解
如果你也是从其他语言转向 Python,希望这系列内容能对你有所帮助。
本文为《一名 PHP 工程师的 Python 系统学习笔记》系列之一,持续更新中。