03 Python 进阶:文件操作、模块与异常处理Python 语法基础:变量、类型与流程控制
从零写出第一个 Python 程序,掌握变量、数据类型、条件判断、循环与函数读完本篇你将能:用三种方式运行 Python 程序,区分整数、浮点数、字符串、布尔四种基本类型,用 f-string 格式化输出,编写 if/elif/else 条件分支和 for/while 循环,并定义带参数和返回值的函数,独立完成一个命令行计算器。01 运行 Python 的三种方式
上一篇你在三台设备上跑通了 Hello World。现在正式学语法之前,先掌握三种运行 Python 代码的方式,在不同场景下灵活切换。
方式一:脚本文件(最常用)
用 Vim 创建 .py 文件,写完代码后用 python3 命令执行。这是日常开发的标准做法。
方式二:交互模式(练手专用)
直接输入 python3 进入交互式解释器,输一行执行一行。适合随手测试语法,但代码不会保存。按 Ctrl+D 或输入 exit() 退出。
Python 3.12.x (default, ...)方式三:shebang 直接执行
在文件第一行写 #!/usr/bin/env python3,给文件加上执行权限后就能像系统命令一样直接运行。这在树莓派和云服务器上部署脚本时很有用。
02 变量与基本数据类型
Python 变量像贴了标签的盒子——你不需要提前声明盒子的类型,放进去什么数据,变量就是什么类型。用 = 赋值,用 type() 查看类型。
四种基本类型
| | | |
|---|
| | 25, -100, 0 | |
| | 3.14, -0.5, 2.0 | |
| | "hello", 'Python' | |
| | True, False | |
print(type(device_name)) # <class 'str'>print(type(ram_gb)) # <class 'int'>print(type(cpu_temp)) # <class 'float'>变量命名规则
•用蛇形命名法(snake_case):cpu_temp 而非 cpuTemp•不能用 Python 关键字:if、for、def、class 等1st_device = "mac" — 变量名不能以数字开头,会报 SyntaxError 03 字符串操作与 f-string
你已经会定义字符串变量了。现在学习字符串最常用的三个操作:f-string 格式化、切片、内置方法。这三个技能覆盖日常 80% 的文本处理需求。
f-string 格式化输出
f-string 是 Python 3.6+ 推荐的字符串格式化方式。在字符串前加 f,用 {} 嵌入变量。比旧的 %s 和 .format() 更直观。
print(f"设备: {device}, 已运行: {uptime_hours} 小时")# 输出: 设备: Termux, 已运行: 72 小时print(f"已运行 {uptime_hours / 24:.1f} 天")字符串切片
用 [起始:结束] 截取字符串的一段。索引从 0 开始,结束位置不包含。省略起始默认从头开始,省略结束默认到末尾。
filename = "sensor_log.txt"print(filename[0:6]) # sensorprint(filename[-4:]) # .txt(负索引从末尾倒数)print(filename[:-4]) # sensor_log(去掉扩展名)常用字符串方法
| | |
|---|
.upper() | | "abc".upper() |
.strip() | | " hi ".strip() |
.split() | | "a,b,c".split(",") |
.replace() | | "v1".replace("1","2") |
04 运算符速览
掌握了变量和字符串,接下来需要运算符把数据「加工」成结果。Python 运算符分三类:算术、比较、逻辑。重点记住两个容易混淆的: / 是真除法(结果有小数), // 是整除(直接砍掉小数)。
算术运算符
| | | |
|---|
+ | | 7 + 3 | |
/ | | 7 / 2 | |
// | | 7 // 2 | |
% | | 7 % 2 | |
** | | 2 ** 10 | |
判断一个整数是奇数还是偶数,只需看 x % 2 的结果:0 是偶数,1 是奇数。这在循环跳行、数据分组的场景中非常常用。比较与逻辑运算符
比较运算符返回 True 或 False,逻辑运算符把它们组合起来。这是下一节条件判断的基础。
print(temp == 37) # Falseprint(temp > 37and temp < 42) # Trueprint(not (temp > 40)) # True05 条件判断:if / elif / else
你已经会比较运算了。条件判断让程序根据比较结果走不同分支——比如温度超过阈值就报警,否则继续监控。Python 用 if / elif / else 三个关键字实现,靠缩进(4 个空格)区分代码块。
| cpu_temp = int(input("输入CPU温度: "))print(f"⚠️ 危险! CPU温度 {cpu_temp}°C,立即降温")print(f"⚠ 温度偏高: {cpu_temp}°C")print(f"✅ 温度正常: {cpu_temp}°C") |
运行后输入不同温度值,程序走不同分支。关键点:if 条件为 True 时执行其下缩进块,否则检查 elif,都不满足则走 else。
if cpu_temp > 80:
print("危险") — print 行没有缩进,Python 报 IndentationError ✓ 正确:if 下方的代码行必须缩进 4 个空格(不是 Tab)。Vim 配置了 expandtab 后按 Tab 自动转空格。 06 循环结构:for 与 while
条件判断让程序分叉,循环让程序重复。for 循环用于「已知次数」的重复,while 循环用于「满足条件就继续」的重复。两个控制语句 break 跳出循环, continue 跳过本轮。
for 循环 + range()
range(n) 生成 0 到 n-1 的整数序列。range(a, b) 生成 a 到 b-1。
| # 输出: 第1次... 第2次... 第3次... 检测完成 |
while 循环
while 适合「不知道要循环几次,但知道什么时候停」的场景。条件为 True 就继续,为 False 就退出。务必确保循环体内有改变条件的操作,否则死循环。
print(f"重连尝试 {retry + 1}/3")for 和 while 的选择原则:知道循环次数用 for(如遍历设备列表),不知道次数但知道终止条件用 while(如重试直到成功)。不确定时优先 for,它更不容易写出死循环。07 函数定义与使用
前面写的代码都是「从上到下执行一次」。当同一段逻辑要重复使用时,把它封装成函数——给这段代码起个名字,传入参数就能调用。函数是代码复用的基本单元,后续所有项目都建立在函数之上。
定义和调用函数
用 def 定义函数,括号内写参数, return 返回结果。调用时写函数名加括号。
| def check_device(name, temp, threshold=60):returnf"{name}: ⚠ {temp}°C 超标"returnf"{name}: ✅ {temp}°C 正常"# 调用函数(threshold 有默认值,可省略)print(check_device("树莓派", 52))print(check_device("云服务器", 78, 70)) |
第 1 行定义了 check_device 函数,三个参数中 threshold=60 是默认参数——调用时不传就用 60。第 2 行三引号字符串是文档说明,可用 help(check_device) 查看。
函数的四个关键概念
2return 是出口——函数通过 return 把结果交还给调用者result = check_device("树莓派") — 函数需要 name 和 temp 两个必传参数,只传一个会报 TypeError ✓ 正确:result = check_device("树莓派", 52) — 必传参数必须都给值 08 动手练习
以下练习在任意一台设备上完成(推荐 macOS 或 Termux)。用 Vim 编辑,用 python3 文件名.py 运行。
创建 device_info.py,定义三个变量:设备名(字符串)、内存大小(整数)、是否在线(布尔值),用 f-string 输出格式化信息。参考解法:
name = "树莓派"
ram = 8
online = True
print(f"{name} | {ram}GB | 在线: {online}")编写一个命令行计算器程序 calc.py:用 input() 接收两个数字和一个运算符(+、-、*、/),用 if/elif 判断运算符并输出结果。要求:除法时检测除数是否为 0,是则输出错误提示。提示:用 float(input("...")) 把输入转为浮点数。结构参考:input 取值 → if/elif 判断运算符 → print 结果或错误。 设计一个多设备温度监控脚本 monitor.py:定义一个函数 check_temp(name, temp, threshold),然后用 for 循环遍历一个包含 3 台设备温度数据的列表(用嵌套列表或字典存储),对每台设备调用该函数并输出结果。要求:函数能根据温度返回不同级别的告警信息,循环结束后统计有多少台设备超标。参考方向:设备数据可用列表存储,如 devices = [["树莓派", 52], ["云服务器", 78], ["Termux", 45]]。函数返回 "正常"/"警告"/"危险" 三种状态,循环中用变量计数超标设备数。 三种运行方式int/float/str/boolf-string 格式化字符串切片算术/比较/逻辑运算符if/elif/elsefor + range()while 循环break / continuedef 定义函数参数与返回值默认参数03 Python 进阶:文件操作、模块与异常处理掌握了变量、类型、流程控制和函数后,下一篇将学习读写文件、导入标准库模块、用 try/except 处理程序运行时错误,编写更健壮的 Python 工具。