在这里插入图片描述

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使用 andornot 操作符来组合多个条件:

# 使用 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:条件为假时执行

检查特定的值是否在/不在列表中

使用innot 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 == 0

num = 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 = True

if 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 = 720

if 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:  # 保留数字0
        cleaned_data.append(item)

print(f"\n原始数据:{raw_data}")
print(f"清洗后数据:{cleaned_data}")

请添加图片描述

提示:‘’0None[]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编程的基石,掌握其各种用法对于编写高效、清晰的代码至关重要。本文涵盖了:

  1. 基础概念:从简单示例入手,理解if语句的基本工作原理
  2. 条件测试:掌握各种条件判断方式,包括相等性检查、逻辑运算符、成员测试和布尔表达式
  3. 语句结构:深入了解if、if-else和if-elif-else三种基本结构
  4. 实际应用:学会在列表处理中应用if语句,解决实际编程问题

通过大量的实例代码,我们看到if语句在数据处理、用户交互、条件判断等场景中的强大功能。熟练掌握这些技能将为你的Python编程之路奠定坚实的基础。

最后,记住,良好的编程实践包括:

  • 使用清晰、有意义的变量名
  • 保持代码缩进一致
  • 在复杂条件中使用括号提高可读性
  • 处理好边界情况(如空列表、None值等)
  • 编写简洁而富有表现力的条件语句

2025.09 西三旗

更多推荐