跳到主要内容

Python 条件语句

在编程中,我们经常需要根据不同的条件执行不同的操作。Python的条件语句允许我们实现这种"决策"逻辑,就像生活中的"如果...那么..."一样。本文将详细介绍Python条件语句的使用方法和应用场景。

什么是条件语句?

条件语句是根据特定条件的真假来决定执行哪些代码块的控制流结构。简单来说,它们使程序能够"做决定"。

提示

Python使用缩进(通常是4个空格)来区分代码块,而不是其他语言常用的花括号{}。正确的缩进对Python代码至关重要!

基本条件语句

if语句

最基本的条件语句是if语句。当条件为真时,执行相应的代码块:

python
age = 18
if age >= 18:
print("您已成年,可以投票!")

# 输出:您已成年,可以投票!

if-else语句

if-else语句提供了两种选择 - 如果条件为真,执行一组语句;如果条件为假,执行另一组语句:

python
temperature = 15
if temperature > 20:
print("今天天气暖和")
else:
print("今天有点冷")

# 输出:今天有点冷

if-elif-else语句

当需要检查多个条件时,可以使用if-elif-else语句:

python
score = 85

if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"

print(f"您的成绩是: {grade}")

# 输出:您的成绩是: B

elif是"else if"的缩写,可以有任意多个elif块,但只有一个else块(可选)。

条件表达式

比较运算符

Python提供了多种比较运算符来构建条件:

运算符描述
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于

逻辑运算符

逻辑运算符用于组合条件:

运算符描述
and逻辑与 - 所有条件都为真,结果才为真
or逻辑或 - 任一条件为真,结果就为真
not逻辑非 - 反转条件的真假值

例如:

python
age = 25
income = 30000

if age > 18 and income > 20000:
print("您有资格申请贷款")

# 输出:您有资格申请贷款

is_weekend = True
is_holiday = False

if is_weekend or is_holiday:
print("今天不用上班")

# 输出:今天不用上班

is_working_day = True
if not is_working_day:
print("休息日")
else:
print("工作日")

# 输出:工作日

嵌套条件语句

条件语句可以嵌套,即在一个条件语句内部再包含另一个条件语句:

python
user_age = 19
has_id = True

if user_age >= 18:
if has_id:
print("您可以购买酒精饮料")
else:
print("需要出示ID才能购买")
else:
print("您未满18岁,不能购买酒精饮料")

# 输出:您可以购买酒精饮料
警告

过多的嵌套会使代码难以理解和维护。通常,超过2-3层嵌套就应该考虑重构代码。

条件表达式(三元运算符)

Python提供了条件表达式(也称为三元运算符),可以用一行代码完成简单的条件赋值:

python
age = 20
status = "成年" if age >= 18 else "未成年"
print(status)

# 输出:成年

语法为:value_if_true if condition else value_if_false

真值测试

在Python中,条件判断不仅限于比较表达式。以下值在条件测试中被视为False

  • False
  • None
  • 数值0(包括0.00j
  • 空序列(如""()[]{}
  • 定义了__bool__()方法并返回False或定义了__len__()方法并返回0的对象

其他一切值都被视为True

例如:

python
name = ""
if name:
print("您好," + name)
else:
print("请输入您的名字")

# 输出:请输入您的名字

numbers = [1, 2, 3]
if numbers:
print("列表不为空")

# 输出:列表不为空

实际应用案例

案例1:简单登录验证

python
# 预设用户名和密码
correct_username = "admin"
correct_password = "password123"

# 获取输入
username = input("请输入用户名: ")
password = input("请输入密码: ")

if username == correct_username and password == correct_password:
print("登录成功!")
elif username == correct_username:
print("密码错误!")
elif password == correct_password:
print("用户名错误!")
else:
print("用户名和密码均错误!")

# 可能的输出:登录成功!

案例2:计算器程序

python
num1 = float(input("请输入第一个数字: "))
operator = input("请输入运算符(+, -, *, /): ")
num2 = float(input("请输入第二个数字: "))

if operator == "+":
result = num1 + num2
print(f"{num1} + {num2} = {result}")
elif operator == "-":
result = num1 - num2
print(f"{num1} - {num2} = {result}")
elif operator == "*":
result = num1 * num2
print(f"{num1} * {num2} = {result}")
elif operator == "/":
if num2 == 0:
print("错误:除数不能为零!")
else:
result = num1 / num2
print(f"{num1} / {num2} = {result}")
else:
print("不支持的运算符!")

# 可能的输出:2.0 + 3.0 = 5.0

案例3:BMI计算器

python
weight = float(input("请输入您的体重(kg): "))
height = float(input("请输入您的身高(m): "))

# 计算BMI
bmi = weight / (height ** 2)

print(f"您的BMI是: {bmi:.2f}")

if bmi < 18.5:
print("体重过轻")
elif bmi < 24:
print("体重正常")
elif bmi < 28:
print("超重")
elif bmi < 32:
print("肥胖")
else:
print("重度肥胖")

# 可能的输出:
# 您的BMI是: 22.86
# 体重正常

最佳实践

  1. 保持条件简单明了 - 复杂的条件可能导致逻辑错误。
  2. 避免深层嵌套 - 过多嵌套会使代码难以理解。
  3. 注意代码缩进 - Python是依靠缩进区分代码块的。
  4. 考虑所有可能性 - 确保条件语句覆盖所有可能的情况。

总结

条件语句是Python编程的基础组成部分,它们允许程序根据不同条件执行不同的代码路径。通过掌握ifif-elseif-elif-else语句,以及了解如何使用比较和逻辑运算符构建条件表达式,你就能编写出能够"做决定"的程序。

练习

  1. 编写一个程序,根据用户输入的年份,判断是否为闰年。(提示:如果年份能被4整除但不能被100整除,或者能被400整除,则为闰年)
  2. 创建一个简单的石头剪刀布游戏,让用户与电脑对战。
  3. 编写程序接收学生的分数,并根据分数范围输出对应的等级(A、B、C、D或F)。
  4. 创建一个简单的税率计算器,根据不同的收入区间计算应缴税款。

通过练习这些例子,你将能够更好地掌握Python条件语句的用法,并能在实际编程中灵活应用。

备注

条件语句只是Python控制流的一部分。结合循环语句(如forwhile)使用,可以创建更强大、更复杂的程序逻辑。