Python 从入门到精通
第 5 / 36 篇
从环境安装和基础语法出发,逐步学习工程实践、自动化、数据处理与 Web 开发。
-
01
Python 怎么装、怎么用 -
02
变量、数字和字符串 -
03
列表:把一组数据放在一起 -
04
元组、集合和字典 -
05
条件判断:让程序做选择正在阅读 -
06
循环:重复的事交给程序 -
07
函数:把代码整理成可复用的块 -
08
模块与包:拆分你的程序 -
09
输入、输出与字符串格式化 -
10
文件读写:保存程序的数据 -
11
异常处理:程序出错时怎么办 -
12
基础阶段练习:命令行记账本 -
13
类和对象:面向对象入门 -
14
继承、组合与特殊方法 -
15
迭代器与生成器 -
16
列表推导式与生成器表达式 -
17
装饰器:给函数增加能力 -
18
上下文管理器与 with -
19
类型标注与 dataclass -
20
正则表达式:从文本中找规律 -
21
日期、时间与时区 -
22
日志与调试 -
23
虚拟环境与依赖管理 -
24
测试:让修改不再提心吊胆 -
25
网络请求:用 Python 调用 API -
26
网页解析与合规采集 -
27
操作 Excel、CSV 与批量文件 -
28
SQLite:给程序加一个数据库 -
29
数据分析入门:NumPy 与 Pandas -
30
画图:把数据变得直观 -
31
Flask 入门:做一个小网站 -
32
异步编程:同时处理多项任务 -
33
线程、进程与并发选择 -
34
性能分析与优化 -
35
项目结构、配置与发布 -
36
综合项目:从需求到上线
到现在为止,程序都是直着往下走的:从上到下,一行一行执行。但现实里的逻辑不是直线——”如果下雨就带伞,否则就晒被子”。让程序学会做选择,靠的就是条件判断。
if 语句:最简单的分支
weather = "晴"
if weather == "晴":
print("出门散步")
print("程序结束")
结构拆解:if + 条件 + 冒号,下面缩进的代码块是条件成立时执行的。== 是比较相等(= 是赋值,别写混!)。
if / elif / else:多分支
score = 85
if score >= 90:
grade = "优秀"
elif score >= 80:
grade = "良好"
elif score >= 60:
grade = "及格"
else:
grade = "不及格"
print(f"成绩等级:{grade}")
elif 是 “else if” 的缩写,可以有多个。程序从上往下找,命中第一个成立的就停,后面的不再看。所以顺序很重要——把最严格的条件放前面。
比较运算符
a, b = 5, 3
print(a == b) # False 相等
print(a != b) # True 不相等
print(a > b) # True 大于
print(a < b) # False 小于
print(a >= 5) # True 大于等于
print(a <= 3) # False 小于等于
字符串也能比较(按字典序):
print("abc" < "abd") # True
print("南山" == "南山") # True
逻辑运算符:and / or / not
多个条件组合,用逻辑运算符:
age = 25
has_ticket = True
# and:两个都成立才 True
if age >= 18 and has_ticket:
print("可以进场")
# or:一个成立就行
if age < 12 or age >= 60:
print("免费")
# not:取反
if not has_ticket:
print("请先买票")
注意:Python 里写 &&、||、! 会报语法错误,那是别的语言的习惯,这里要用英文单词。
in:判断包含
判断一个东西在不在容器里,用 in:
fruits = ["苹果", "香蕉", "橘子"]
print("苹果" in fruits) # True
name = "南山小站"
print("小站" in name) # True(字符串包含)
config = {"debug": True}
print("debug" in config) # True(字典的键)
真值判断:别写 == True
Python 里很多东西可以直接当条件用:空的东西是 False,非空是 True。
items = []
if items: # 空列表 → False
print("有货")
else:
print("空了")
name = "南山"
if name: # 非空字符串 → True
print(f"你好,{name}")
空字符串、空列表、空字典、空元组、空集合、0、0.0、None、False 都是假值,其余通常是 True。所以 if items == True 这种写法是多余的,直接 if items: 就好。
三元表达式:一行写判断
简单的二选一赋值,可以用一行搞定:
age = 17
status = "成年" if age >= 18 else "未成年"
print(status) # 未成年
逻辑:值1 if 条件 else 值2,条件成立取值1,否则取值2。超过一行就别硬用,可读性优先。
新手坑
坑 1:忘记冒号。if age > 18 后面必须有冒号,漏了报 SyntaxError。
坑 2:缩进不一致。Python 用缩进表示代码块,同一块必须对齐(推荐 4 个空格)。Tab 和空格混用会报 IndentationError。
坑 3:= 和 == 写混。if score = 85: 是赋值,会直接报语法错误(Python 干脆不允许,反而好)。
坑 4:elif 写成 else if。Python 没有 else if,只有 elif。
小结
if/elif/else构成分支,从上往下命中即停,严格条件放前面- 比较用
==!=><>=<=,组合用andornot in判断包含;空值(空串/空列表/0/None)是 False,直接if x:判断- 三元表达式
a if 条件 else b适合简单二选一 - 别忘了冒号和一致的缩进
练习
- 写一个程序:输入一个数字,判断它是正数、负数还是零
- 写一个程序:输入年份,判断是不是闰年(能被 4 整除且不能被 100 整除,或者能被 400 整除)
- 思考:
if 0:、if ""、if []会执行 if 还是 else?为什么 Python 要这样设计”空即假”?