一名 PHP 工程师的 Python 系统学习笔记(01)|为什么我决定重新系统学一遍 Python

19 阅读3分钟

一名 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 系统学习笔记》系列之一,持续更新中。