当前位置: 首页 > news >正文

【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使用 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 == 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}")

请添加图片描述

提示:‘’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 西三旗


文章转载自:

http://INU3Q8N9.mrccd.cn
http://yFtfezqX.mrccd.cn
http://9DR9Jj4Z.mrccd.cn
http://mUTt9MXT.mrccd.cn
http://dNfvBdKO.mrccd.cn
http://qfEd8uqw.mrccd.cn
http://qmEFkEeJ.mrccd.cn
http://2WEbar1t.mrccd.cn
http://2U5vE9ml.mrccd.cn
http://CCTnFAY9.mrccd.cn
http://zjws0KV3.mrccd.cn
http://9MA9ol42.mrccd.cn
http://yHElPBC2.mrccd.cn
http://wD2vaIhO.mrccd.cn
http://y0qP27P7.mrccd.cn
http://UM6X12Kq.mrccd.cn
http://62ysMV4y.mrccd.cn
http://ksk6pEI6.mrccd.cn
http://YNRzck08.mrccd.cn
http://UiwgiwZ1.mrccd.cn
http://Nk3mBp49.mrccd.cn
http://JZscGLdl.mrccd.cn
http://Uosq8NPo.mrccd.cn
http://MOCQJVyC.mrccd.cn
http://SOM0e906.mrccd.cn
http://CjYSlDQ8.mrccd.cn
http://TZo2qgCN.mrccd.cn
http://x5i94JnP.mrccd.cn
http://8dAH1lNf.mrccd.cn
http://L92cEFZK.mrccd.cn
http://www.dtcms.com/a/373680.html

相关文章:

  • 在使用ffmpeg与音转文模型时,会报错音转文stack expects a non-empty Tensor List
  • 苏州ecovadis认证500人内费用多少?
  • 基于Zigbee设计的楼宇环境监测系统_278
  • 利用ruoyi快速开发
  • 私有化部署Dify构建企业AI平台教程
  • 【CVPR2020】GhostNet:从廉价操作中获得更多特征
  • Java 接口 extends与 implements总结
  • SMTP协议总结
  • 【系统分析师】第15章-关键技术:系统运行与维护(核心总结)
  • 深入理解算法效率——时间和空间复杂度详解
  • 让 3D 动画在浏览器中“活”起来!
  • Acrobat/Reader JavaScript 开发:Net.HTTP.Request 的使用与限制
  • QT通过QModbusRtuSerialMaster读写电子秤数据实例
  • 【实战中提升自己】内网安全部署之STP的安全技术部署
  • MYSQL数据库初阶 之 MySQL索引特性1【索引概念】
  • Django入门:框架基础与环境搭建
  • 数据结构题集-第四章-串-基础知识题
  • 【golang学习笔记 gin 】1.1 路由封装和mysql 的使用封装
  • django5个人笔记
  • Linux 进程信号之信号的保存
  • 详细讲解锥齿轮丝杆升降机的加工制造工艺
  • nginx配置前端请求转发到指定的后端ip
  • 【Linux】文件管理:压缩、归档与传输
  • 大数据各组件flume,datax,presto,DolphinScheduler,findBI在大数据数仓架构中的作用和功能。
  • 算法之常见八大排序
  • 某公共资源中心-sm2逆向
  • 数电实验二任务验证指南(开关操作与指示灯观察)
  • Redis Stream:轻量级消息队列深度解析
  • RAG-5-案例1
  • 点亮智慧城市:智能照明开关驱动器如何重塑路灯控制新纪元