Python P1:写下你的第一行代码
系列:Python 从零开始 · P1 这一课:认识 Python、检查环境、写下并运行第一个脚本
学完 Linux 系列(L1–L23),你已经是个合格的服务器玩家了:会装系统、配服务、查日志、写 shell。现在往前再走一步——学会让机器替你干活,而 Python 就是干这个最顺手的工具。
这不是教你去当程序员。目标很实在:能写小脚本,自动化服务器上那些重复的杂事。比如批量检查网站状态、定时清理日志、解析个配置文件——这些用 shell 也能做,但复杂一点 shell 就写得想哭,Python 写起来像说话一样自然。
一、Python 是什么
Python 是一种编程语言,1991 年诞生,名字来自英国喜剧团体 Monty Python(对,就是那个"巨蟒"剧团,不是蛇——虽然 logo 是两条蛇)。
它有三个特点,让它成了全世界初学者最多的第一语言:
像英语:
print("你好")这种代码,猜都能猜出它是干嘛的。不用编译:写完直接运行,改一行、跑一行,反馈极快。
库多到离谱:你想干的事,99% 已经有人写好轮子了,直接拿来用。
在运维圈子里,Python 的地位很特殊:Ansible、SaltStack 这些自动化工具本身就是 Python 写的;Docker 背后的很多组件也有 Python 的影子。会 Linux + 会 Python,你在服务器这个领域就算两条腿走路了。
Python 2 还是 Python 3?
你可能会在网上看到 python 和 python3 两个命令。简单说:Python 2 已经死了(2020 年官方停止维护),现在只学 Python 3。有些老系统上 python 指向 Python 2、python3 指向 Python 3,记住用 python3 就对了。
二、检查你的环境
Debian 12/13 默认就带 Python 3,不用装。先确认一下:
python3 --version
正常会输出类似:
Python 3.11.2
3.8 以上都够用。再确认 pip(Python 的包管理器,后面装第三方库用它):
pip3 --version
如果提示找不到 pip,一条命令装上:
sudo apt update && sudo apt install -y python3-pip
三、第一个脚本:hello.py
编程界的规矩:学任何语言,第一件事都是让它跟你打招呼。
用 nano 新建一个文件:
nano hello.py
写下这一行:
print("Hello, Python!")
保存退出(Ctrl+O 回车,Ctrl+X),然后运行:
python3 hello.py
屏幕上出现:
Hello, Python!
恭喜,你已经是个 Python 程序员了。就这么简单:写代码 → 保存成 .py 文件 → 用 python3 运行它。
这行代码在干嘛
print() 是 Python 内置的函数,作用是把括号里的东西输出到屏幕上。双引号包起来的是字符串(string),就是一段文字。
试试改成中文:
print("你好,Python!")
再运行一次。没问题,Python 3 对中文支持很好,不用任何额外设置。
四、交互模式:即时试验场
除了写文件运行,Python 还有个交互模式,敲一行、执行一行,特别适合做实验:
python3
你会看到提示符 >>>。在这里直接敲:
>>> print("试试")
试试
>>> 1 + 2
3
>>> "abc" * 3
'abcabcabc'
在交互模式里,表达式的值会自动打印出来,不用写 print。
退出按 Ctrl+D,或者输入 exit()。
五、注释:写给人看的话
代码是写给机器执行的,但注释是写给人看的。Python 里 # 后面的内容会被忽略:
# 这是一行注释,Python 会直接跳过
print("Hello") # 行尾也可以加注释
养成写注释的习惯。三个月后回看自己写的脚本,没有注释的话,你会觉得那是别人写的。
六、动手:写个有点用的脚本
写个检查网站能不能访问的小脚本:
nano check_site.py
内容:
# check_site.py - 检查网站能不能打开
import urllib.request
url = "https://halo.nya.je"
try:
response = urllib.request.urlopen(url, timeout=10)
print(url, "能打开,状态码:", response.status)
except Exception as e:
print(url, "打不开了,原因:", e)
运行:
python3 check_site.py
https://halo.nya.je 能打开,状态码: 200
逐行解释一下:
import urllib.request:导入 Python 自带的网络库。url = "https://halo.nya.je":把网址存进变量url里。try: ... except: ...:异常处理,失败了别崩溃,把原因打印出来。urllib.request.urlopen(url, timeout=10):打开网址,最多等 10 秒。response.status:HTTP 状态码,200 就是正常。
举一反三
把
timeout=10改成timeout=3,体会下超时的感觉。把网址换成一个不存在的域名,看看 except 分支打印出什么。
加一行注释,说明这个脚本是干嘛的、谁写的。
七、常见坑
坑 1:用了 python 而不是 python3 —— 永远敲 python3。
坑 2:中文引号 —— print(“你好”) 会报错,必须用英文引号 print("你好")。
坑 3:缩进 —— Python 靠行首空格划分代码块,同一层级空格数必须一致。
坑 4:文件名别叫 urllib.py —— 会和标准库重名,import 时优先找到你自己的文件。
八、本课小结
Python:像英语的编程语言,运维自动化的首选
python3:运行代码的命令;print():输出到屏幕交互模式:
python3回车,>>>下即时试验#注释写给人看;import拿来别人写好的轮子变量给数据起名字;
try/except出错了优雅处理
九、课后作业
在服务器上创建
hello.py并运行成功,输出你自己的名字。修改
check_site.py,让它检查 3 个不同的网站。进交互模式,试试
2 ** 10和"Hello" + "World",猜猜结果再验证。
下一课 P2:变量、数据类型与输入输出。 Root 日记 · Python 系列 P1 · 2026-10-14