【Python入门】第3篇:流程控制之条件判断
在上一篇中,我们学会了如何使用变量和数据类型这些“单词”来存储信息。但一个只会按顺序执行命令的程序,就像一辆只能直行的汽车,功能非常有限。今天,我们将为这辆车装上“方向盘”——流程控制。它将赋予程序判断和选择的能力,使其变得智能。
我们将首先学习流程控制的第一种形式:条件判断。
一、为什么需要条件判断?
现实世界中充满了选择:
- 如果天气好,我就去公园;否则,我就在家看书。
- 如果用户的年龄大于等于18岁,就显示成人内容;否则,显示青少年模式。
程序同样需要根据不同的情况执行不同的代码。这时,就要用到if
语句。
二、if语句的基本结构
if语句的核心是:如果某个条件成立(为True
),就执行对应的代码块;如果不成立(为False
),就跳过。
2.1 最简单的 if语句
注意: 在Python中,缩进(通常是4个空格)至关重要。它用来表示代码之间的从属关系。if语句下一行缩进的代码,就是这个条件成立后要执行的“代码块”。
age = 20if age >= 18:print("您已成年,可以进入。")print("请享受您的时光!") # 这行也在if的代码块内print("程序结束。") # 这行不在if的代码块内,无论条件是否成立都会执行
输出:
您已成年,可以进入。
请享受您的时光!
程序结束。
如果将 age改为 16,则输出仅为:
程序结束。
2.2 if-else语句:二者选一
当条件不成立时,我们可能想做另一件事。这时就需要else
。
age = 16if age >= 18:print("您已成年,可以进入。")
else:print("对不起,您未成年,禁止入内。")print("请在家人的陪同下访问。") # else的代码块print("程序结束。")
输出:
对不起,您未成年,禁止入内。
请在家人的陪同下访问。
程序结束。
2.3 if-elif-else语句:多条件判断
当情况不止两种时,我们需要 elif
(它是“else if”的缩写)来检查多个条件。
重要: if-elif-else
链会从上到下依次判断条件,一旦某个条件为 True
,就会执行对应的代码块,然后直接跳出整个判断结构,后面的 elif或 else都不会再被判断。
示例:成绩评级系统
score = 85if score >= 90:print("优秀!")
elif score >= 80: # 程序执行到这里时,score肯定小于90print("良好!")
elif score >= 70:print("中等!")
elif score >= 60:print("及格!")
else:print("不及格,需要努力!")print("评级完毕。")
输出:
良好!
评级完毕。
三、条件的构建:比较运算符与逻辑运算符
3.1 比较运算符
用于比较两个值,结果是布尔值(True
或 False
)。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
== | 等于 | 10 == 10 | True |
!= | 不等于 | 10 != 5 | True |
> | 大于 | 10 > 5 | True |
< | 小于 | 10 < 5 | False |
>= | 大于等于 | 10 >= 10 | True |
<= | 小于等于 | 10 <= 5 | False |
3.2 逻辑运算符
用于组合多个条件。
- and(与):左右两边的条件
都为 True
,结果才为 True。 - or(或):左右
两边的条件有一个为 True
,结果就为 True。 - not(非):对
条件取反
,True变 False,False变 True。
示例:
age = 25
has_id = True# 使用 and:必须同时满足两个条件
if age >= 18 and has_id:print("年龄和身份验证均通过,欢迎!")
else:print("条件不符,无法进入。")# 使用 or:满足其中一个条件即可
is_weekend = True
is_holiday = Falseif is_weekend or is_holiday:print("今天是休息日!")# 使用 not
is_raining = Falseif not is_raining: # 如果“没下雨”print("天气晴朗,适合出门!")
四、动手实践:智能登录检查
让我们编写一个程序,综合运用以上知识来模拟一个简单的登录检查。
# 模拟数据库中存储的正确用户名和密码
correct_username = "admin"
correct_password = "123456"# 用户输入
input_username = input("请输入用户名:") # input()函数用于接收用户输入
input_password = input("请输入密码:")print("正在进行验证...")
print("-" * 20)# 进行智能判断
if input_username == correct_username and input_password == correct_password:# 用户名和密码都正确print("登录成功!")print("欢迎回来,", correct_username, "!")elif input_username != correct_username and input_password != correct_password:# 用户名和密码都错误print("登录失败!用户名和密码均错误。")elif input_username != correct_username:# 只有用户名错误print("登录失败!用户名错误。")else: # 如果程序能执行到这里,说明用户名肯定是对的,那么错误只可能是密码print("登录失败!密码错误。")print("-" * 20)
print("验证流程结束。")
运行这个程序,尝试输入不同的用户名和密码,观察程序的判断结果,体会 if-elif-else的逻辑流程。