菜单

Administrator
发布于 2026-10-14 / 1 阅读
0
0

Python P1:写下你的第一行代码

Python P1:写下你的第一行代码

系列:Python 从零开始 · P1 这一课:认识 Python、检查环境、写下并运行第一个脚本

学完 Linux 系列(L1–L23),你已经是个合格的服务器玩家了:会装系统、配服务、查日志、写 shell。现在往前再走一步——学会让机器替你干活,而 Python 就是干这个最顺手的工具。

这不是教你去当程序员。目标很实在:能写小脚本,自动化服务器上那些重复的杂事。比如批量检查网站状态、定时清理日志、解析个配置文件——这些用 shell 也能做,但复杂一点 shell 就写得想哭,Python 写起来像说话一样自然。

一、Python 是什么

Python 是一种编程语言,1991 年诞生,名字来自英国喜剧团体 Monty Python(对,就是那个"巨蟒"剧团,不是蛇——虽然 logo 是两条蛇)。

它有三个特点,让它成了全世界初学者最多的第一语言:

  1. 像英语:print("你好") 这种代码,猜都能猜出它是干嘛的。

  2. 不用编译:写完直接运行,改一行、跑一行,反馈极快。

  3. 库多到离谱:你想干的事,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 就是正常。

举一反三

  1. 把 timeout=10 改成 timeout=3,体会下超时的感觉。

  2. 把网址换成一个不存在的域名,看看 except 分支打印出什么。

  3. 加一行注释,说明这个脚本是干嘛的、谁写的。

七、常见坑

坑 1:用了 python 而不是 python3 —— 永远敲 python3。

坑 2:中文引号 —— print(“你好”) 会报错,必须用英文引号 print("你好")。

坑 3:缩进 —— Python 靠行首空格划分代码块,同一层级空格数必须一致。

坑 4:文件名别叫 urllib.py —— 会和标准库重名,import 时优先找到你自己的文件。

八、本课小结

  • Python:像英语的编程语言,运维自动化的首选

  • python3:运行代码的命令;print():输出到屏幕

  • 交互模式:python3 回车,>>> 下即时试验

  • # 注释写给人看;import 拿来别人写好的轮子

  • 变量给数据起名字;try/except 出错了优雅处理

九、课后作业

  1. 在服务器上创建 hello.py 并运行成功,输出你自己的名字。

  2. 修改 check_site.py,让它检查 3 个不同的网站。

  3. 进交互模式,试试 2 ** 10 和 "Hello" + "World",猜猜结果再验证。


下一课 P2:变量、数据类型与输入输出。 Root 日记 · Python 系列 P1 · 2026-10-14


评论