【Python】S1 基础篇 P4 if 语句指南
目录
- 简单示例
- 条件测试
- 检查是否相等与不等
- 检查多个条件
- 检查特定的值是否在/不在列表中
- 布尔表达式
- if语句
- 简单的if语句
- if-else语句
- if-elif-else语句
- 使用if语句处理列表
- 检查特殊元素
- 确定列表非空
- 使用多个列表
- 总结
if 语句是Python编程中最基本也是最重要的控制结构之一。它允许程序根据不同的条件执行不同的代码块,是实现程序逻辑判断的核心工具。我们从一个简单的示例开始。
简单示例
cars = ['audi', 'bmw', 'volvo', 'toyota']
for car in cars:if car == 'bmw':print(car.upper())else:print(car.title())
在上面的例子中,大多数汽车品牌都应以首字母大写的方式打印其名称,但是汽车品牌 ‘bmw’ 应以全大写的方式打印。上述示例应用 if
语句,成功将 ‘bmw’ 字段从 cars 列表中识别并处理。
条件测试
条件测试是 if 语句的核心,每条 if 语句都是一个值为 True 或 False 的表达式,这种表达式即称为条件测试。它决定了程序的执行路径,而Python,则提供了多种方式来构建条件测试。
检查是否相等与不等
最常见的条件测试是检查两个值是否相等或不等:
# 相等检查
name = "Alice"
if name == "Alice":print(f"你好,{name}!")# 不等检查
temperature = 25
if temperature != 30:print("温度不是30度")# 忽略大小写的字符串比较
city = "Beijing"
if city.lower() == "beijing":print("欢迎来到北京!")
注意事项:
- 使用
==
进行相等比较,而不是单个=
(赋值运算符) - 字符串比较是区分大小写的,可以使用
.lower()
或.upper()
方法进行不区分大小写的比较
检查多个条件
Python使用 and
、or
和 not
操作符来组合多个条件:
# 使用 and:所有条件都必须为真
age = 25
income = 50000
if age >= 18 and income >= 30000:print("符合贷款条件")# 使用 or:至少一个条件为真
weather = "晴天"
temperature = 22
if weather == "晴天" or temperature > 20:print("今天适合外出")# 使用 not:条件为假时执行
is_weekend = False
if not is_weekend:print("今天是工作日")# 复杂条件组合
score = 85
attendance = 90
if (score >= 80 and attendance >= 85) or score >= 95:print("获得优秀成绩!")
- 使用 and:所有条件都必须为真
- 使用 or:至少一个条件为真
- 使用 not:条件为假时执行
检查特定的值是否在/不在列表中
使用in
和not in
关键字可以方便地检查元素是否存在于序列中:
# 检查值是否在列表中
favorite_fruits = ['苹果', '香蕉', '橙子', '葡萄']
fruit = '苹果'if fruit in favorite_fruits:print(f"{fruit}是我喜欢的水果之一")# 检查值是否不在列表中
banned_users = ['user123', 'spammer', 'troll']
username = 'alice'if username not in banned_users:print("欢迎登录!")# 在字符串中查找子字符串
message = "Python是一门强大的编程语言"
if "Python" in message:print("这条消息提到了Python")# 检查字典中的键
user_info = {'name': '张三', 'age': 25, 'city': '上海'}
if 'email' not in user_info:print("用户信息中缺少邮箱")
布尔表达式
下面我们继续深入,布尔表达式。布尔表达式直接返回True或False值,可以直接用作条件:
# 布尔变量
is_student = True
if is_student:print("学生价格优惠")# 函数返回布尔值
def is_even(number):return number % 2 == 0num = 10
if is_even(num):print(f"{num}是偶数")# 列表的布尔值:空列表为False,非空列表为True
shopping_list = []
if shopping_list:print("购物清单不为空")
else:print("购物清单是空的")# 数字的布尔值:0为False,非0为True
balance = 0
if balance:print("账户有余额")
else:print("账户余额为零")
在很多实际示例中,应用布尔表达式进行判断,是一种高效的、易读易懂的方式。
if语句
简单的if语句
if语句有很多种,具体选择哪一种取决于要测试的条件数。简单的 if
语句只包含一个条件和对应的执行操作代码块:
# 基本语法
password = "123456"
if len(password) < 8: # 条件print("密码太短,请使用至少8个字符") # 执行操作代码块# 多行代码块
score = 95
if score >= 90: # 条件print("优秀成绩!")print(f"你的分数是:{score}")print("继续保持!")# 嵌套if语句
user_type = "admin"
is_logged_in = Trueif is_logged_in:print("用户已登录")if user_type == "admin":print("管理员权限已激活")
if-else语句
有时,我们不仅需要在条件测试时执行一个操作,在没有通过时也需指定另一个操作。if-else
语句提供了条件为假时的备选执行路径:
# 基本if-else结构
age = 16
if age >= 18:print("可以投票")
else:print("还不能投票")# 处理用户输入
number = int(input("请输入一个数字: "))
if number > 0:print("这是一个正数")
else:print("这是零或负数")# 字符串处理
username = input("请输入用户名: ").strip()
if username:print(f"欢迎,{username}!")
else:print("用户名不能为空")
当然,if-else
语句只能用在逻辑上或真或假的情况下。
if-elif-else语句
当需要检查多个条件时,if-elif-else
语句提供了清晰的解决方案:
# 成绩等级划分
score = 78
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"成绩:{score},等级:{grade}")# 季节判断
month = 7
if month in [12, 1, 2]:season = "冬季"
elif month in [3, 4, 5]:season = "春季"
elif month in [6, 7, 8]:season = "夏季"
elif month in [9, 10, 11]:season = "秋季"
else:season = "无效月份"print(f"{month}月是{season}")# 复杂的条件判断
age = 25
income = 45000
credit_score = 720if age >= 21 and income >= 50000 and credit_score >= 700:loan_status = "批准 - 优惠利率"
elif age >= 18 and income >= 30000 and credit_score >= 650:loan_status = "批准 - 标准利率"
elif age >= 18 and income >= 20000:loan_status = "需要担保人"
else:loan_status = "拒绝"print(f"贷款状态:{loan_status}")
当然,读者需要注意,else
模块非必须,即条件判断语句可忽略 else
代码块。
使用if语句处理列表
列表处理是Python编程中的常见任务,结合if语句可以实现强大的数据筛选和处理功能,且一般对于列表的操作,都会与循环 for
结合在一起,从而轮询的方式实现对整个列表的条件测试。
检查特殊元素
在处理列表时,经常需要对特定元素进行特殊处理:
# 处理VIP用户
users = ['alice', 'bob', 'admin', 'charlie', 'guest']print("用户登录状态:")
for user in users:if user == 'admin':print(f"{user}: 管理员 - 全部权限")elif user == 'guest':print(f"{user}: 访客 - 只读权限")else:print(f"{user}: 普通用户 - 基本权限")# 处理订单状态
orders = [{'id': 1, 'status': 'pending', 'amount': 100},{'id': 2, 'status': 'completed', 'amount': 250},{'id': 3, 'status': 'cancelled', 'amount': 80},{'id': 4, 'status': 'pending', 'amount': 150}
]print("\n订单处理:")
for order in orders:if order['status'] == 'pending':print(f"订单 {order['id']}: 等待处理,金额 {order['amount']}元")elif order['status'] == 'completed':print(f"订单 {order['id']}: 已完成,收入 {order['amount']}元")elif order['status'] == 'cancelled':print(f"订单 {order['id']}: 已取消,退款 {order['amount']}元")# 数据清洗示例
raw_data = [1, '', 0, 'hello', None, 42, [], 'world', False]
cleaned_data = []for item in raw_data:if item: # 过滤掉"假值"cleaned_data.append(item)elif item == 0: # 保留数字0cleaned_data.append(item)print(f"\n原始数据:{raw_data}")
print(f"清洗后数据:{cleaned_data}")
提示:‘’
、0
、None
、[]
、False
都为假值,但在 Python 中,为了方便数值计算,bool 类型是 int 类型的子类。True
等于 1,False
等于 0。所以 False == 0
的结果是 True
。
确定列表非空
在处理列表之前,检查列表是否为空是一个好习惯:
# 基本的空列表检查
shopping_cart = []if shopping_cart:print("购物车商品:")for item in shopping_cart:print(f"- {item}")print(f"总计 {len(shopping_cart)} 件商品")
else:print("购物车是空的,快去添加商品吧!")# 更复杂的列表处理
def process_scores(scores):if not scores:return "没有成绩数据"total = sum(scores)average = total / len(scores)highest = max(scores)lowest = min(scores)return f"""
成绩统计:
- 总分:{total}
- 平均分:{average:.2f}
- 最高分:{highest}
- 最低分:{lowest}
- 学生人数:{len(scores)}
"""
使用多个列表
在实际应用中,经常需要同时处理多个列表:
# 学生信息管理
students = ['张三', '李四', '王五', '赵六', '陈七']
scores = [85, 92, 78, 96, 88]
grades = ['B', 'A', 'C', 'A', 'B']# 确保所有列表长度一致
if len(students) == len(scores) == len(grades):print("学生成绩报告:")print("-" * 40)for i in range(len(students)):student = students[i]score = scores[i]grade = grades[i]# 根据成绩给出评价if score >= 90:comment = "优秀"elif score >= 80:comment = "良好"elif score >= 70:comment = "中等"elif score >= 60:comment = "及格"else:comment = "不及格"print(f"{student:6s} | 分数:{score:3d} | 等级:{grade} | 评价:{comment}")
else:print("错误:学生信息数据不完整")
总结
if语句是Python编程的基石,掌握其各种用法对于编写高效、清晰的代码至关重要。本文涵盖了:
- 基础概念:从简单示例入手,理解if语句的基本工作原理
- 条件测试:掌握各种条件判断方式,包括相等性检查、逻辑运算符、成员测试和布尔表达式
- 语句结构:深入了解if、if-else和if-elif-else三种基本结构
- 实际应用:学会在列表处理中应用if语句,解决实际编程问题
通过大量的实例代码,我们看到if语句在数据处理、用户交互、条件判断等场景中的强大功能。熟练掌握这些技能将为你的Python编程之路奠定坚实的基础。
最后,记住,良好的编程实践包括:
- 使用清晰、有意义的变量名
- 保持代码缩进一致
- 在复杂条件中使用括号提高可读性
- 处理好边界情况(如空列表、None值等)
- 编写简洁而富有表现力的条件语句
2025.09 西三旗