昨天我们学了变量和数据类型,代码已经能"记住"东西了。但光能记住不够啊——代码还得会"思考"。什么叫思考?就是根据不同的情况,做不同的事。
比如:
这种"如果……就……否则……"的逻辑,在编程里就叫 条件判断。
Python 的条件判断靠三个关键字:if、elif、else。今天我们就把它彻底搞明白。
1. 最简单的 if 判断
先看一个最基础的写法:
age = 18if age >= 18:print("你已经成年了")
运行结果:
你已经成年了
这里有个细节:if 后面跟的是一个条件表达式(age >= 18),然后冒号结尾,下一行缩进4个空格。
缩进是 Python 的灵魂。别的语言用花括号 {} 表示代码块,Python 用缩进。所以缩进不能乱,要么用4个空格,要么用1个Tab,别混着用。
2. if ... else —— 两条路
如果条件成立做什么,不成立又做什么:
age = 16if age >= 18:print("你可以进网吧了")else:print("小朋友回家写作业吧")
输出:
小朋友回家写作业吧
else 后面也是冒号,下面也要缩进。这个模式特别好理解:条件为真走 if,为假走 else。
3. if ... elif ... else —— 多条路
现实情况往往不只两个分支。比如成绩等级:
score = 85if score >= 90:print("优秀")elif score >= 80:print("良好")elif score >= 60:print("及格")else:print("不及格")
输出:
良好
elif 是 "else if" 的缩写。Python 会从上往下依次检查:
- score >= 80?成立 → 输出"良好" → 后面的都不看了
这就是条件判断的短路机制:一旦找到匹配的,后面的全都跳过。
4. 条件表达式能写什么?
if 后面能放任何"是或否"的东西。Python 里这些值会被当成 False(假):
除此之外,大部分东西都是 True(真)。
name = ""if name:print("名字不为空")else:print("名字是空的")
输出:
名字是空的
这个技巧很常用——判断一个字符串、列表或者字典是不是空的,不需要写 if len(name) == 0,直接 if name: 就行了。
5. 比较运算符
写条件判断少不了比较。Python 里的比较运算符:
| | |
|---|
== | | a == b |
!= | | a != b |
> | | a > b |
< | | a < b |
>= | | a >= b |
<= | | a <= b |
⚠️ 踩坑预警:新手最容易犯的错误是 = 和 == 搞混。
# 这是错的!if a = 10:print("a等于10")# 这才是对的if a == 10:print("a等于10")
6. 逻辑运算符:and / or / not
有时候一个条件不够用,需要组合多个条件。
and —— 两个条件都成立才为真
age = 22has_id_card = Trueif age >= 18and has_id_card:print("可以进网吧")else:print("进不去")
or —— 两个条件只要一个成立就为真
is_weekend = Trueis_holiday = Falseif is_weekend or is_holiday:print("不用上班")else:print("老实上班吧")
not —— 取反,真变假,假变真
is_raining = Falseifnot is_raining:print("不用带伞")
7. 嵌套判断
条件里面还能再套条件:
age = 20has_ticket = Trueif age >= 18:if has_ticket:print("请入场")else:print("请先买票")else:print("未成年禁止入场")
但嵌套太深代码会变得很难读。一般来说超过三层嵌套就该考虑简化了——可以用逻辑运算符合并条件,或者后面学的函数来拆分。
8. 真实场景:登录校验
把今天学的串起来,写一个简单的登录判断:
username = input("请输入用户名:")password = input("请输入密码:")# 假设正确的用户名和密码correct_user = "alice"correct_pwd = "123456"if username == correct_user and password == correct_pwd:print("登录成功!欢迎回来", username)elif username != correct_user:print("用户名不存在")else:print("密码错误")
这里用了 input() 函数——它会让程序停下来等用户输入,输入的内容以字符串形式返回。后面文章会细讲。
踩坑汇总
- 忘记冒号:
if、elif、else 后面一定要加 : - 忘记把字符串用引号包起来:字符串比较时记得加
"" 或 ''
# 错误示例合集if age >= 18# 漏了冒号print("ok")if name = "alice": # 应该用 ==print("hi")
今日总结
作业:写一个程序,让用户输入一个数字,判断它是正数、负数还是零。
明天的预告:Day 4: 循环——批量做事不用手写100遍,学会让代码自动重复执行,告别苦力活。
如果你觉得这篇文章对你有帮助,可以点个「在看」或者分享给同样在学编程的朋友~