【10月更文挑战第17天】「Mac上学Python 28」基础篇9 - 条件语句与逻辑判断

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 在Python中,条件语句和逻辑判断是控制程序执行流程的关键工具,帮助程序在不同条件下做出不同决策。通过本篇的学习,您将掌握单选、双分支、多选结构、单行条件表达式、条件嵌套、条件判断的类型和逻辑运算符的用法,从而更灵活地控制程序执行流程。

在Python中,条件语句和逻辑判断是控制程序执行流程的关键工具,帮助程序在不同条件下做出不同决策。通过本篇的学习,您将掌握单选、双分支、多选结构、单行条件表达式、条件嵌套、条件判断的类型和逻辑运算符的用法,从而更灵活地控制程序执行流程。


一、条件语句的基本结构

条件语句控制代码执行的顺序,主要包括以下三种结构:

  1. 单选结构 (if):当条件成立时,执行特定的代码块。
  2. 二选一结构 (if/else):根据条件成立与否,选择不同的执行路径。
  3. 多选一结构 (if/elif/else):适合多个条件分支的场景,按顺序判断并执行第一个满足的条件。

二、条件判断的类型

Python支持多种条件判断方式,帮助实现更复杂的逻辑控制:

2.1 比较运算符

比较运算符用于比较数值或表达式,判断是否相等或大小关系:

运算符 含义
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

示例

a, b = 10, 20
print(a < b)  # True
print(a != b)  # True
2.2 逻辑运算符

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

  • and:所有条件均满足时为真。
  • or:任一条件满足时为真。
  • not:对条件取反。

示例

age = 25
print(age > 18 and age < 60)  # True
print(age < 18 or age > 60)   # False
print(not (age > 18))         # False
2.3 成员运算符

成员运算符用于检查值是否存在于列表、元组、字典或字符串中,常用 innot in

示例

vowels = 'aeiou'
letter = 'e'
if letter in vowels:
    print("是元音字母")  # 输出:是元音字母
2.4 身份运算符

isis not 用于判断两个变量是否引用同一对象,通常在判断数据类型时有用。

示例

value = 123
if isinstance(value, int):
    print("这是一个整数")  # 输出:这是一个整数

三、条件结构的应用与示例

3.1 单选结构(if)

单选结构在条件为真时执行相应代码块,否则跳过。适合单一条件判断的场景。

# 输入温度,判断是否需要穿外套
temperature = int(input("请输入当前温度:"))
if temperature < 20:
    print("温度较低,建议带一件外套")
print("当前温度为:", temperature)

# 输入输出示例:
# 输入:18
# 输出:
# 温度较低,建议带一件外套
# 当前温度为: 18
3.2 二选一结构(if/else)

二选一结构根据条件选择不同的执行路径。

# 判断成绩是否及格
score = int(input("请输入成绩:"))
if score >= 60:
    print("成绩及格")
else:
    print("成绩不及格")

# 输入输出示例:
# 输入:55
# 输出:
# 成绩不及格
3.3 多选一结构(if/elif/else)

多选一结构适合多条件分支的情况,按顺序依次判断条件并执行第一个满足的代码块。

# 年龄段判断
age = int(input("请输入年龄:"))
if age < 13:
    print("儿童")
elif age < 18:
    print("青少年")
elif age < 60:
    print("成年人")
else:
    print("老年人")

# 输入输出示例:
# 输入:25
# 输出:
# 成年人

四、单行条件表达式

Python支持通过三元表达式实现简洁的条件判断:true_value if condition else false_value

# 12小时制时间转换
hour = int(input("请输入24小时制的小时数:"))
hour_12 = hour - 12 if hour > 12 else hour
print("12小时制时间:", hour_12)

# 输入输出示例:
# 输入:15
# 输出:
# 12小时制时间: 3

五、条件嵌套

在条件判断中可以嵌套其他条件语句以实现更细致的判断逻辑。适用于多级判断和分层决策的场景。

# 判断一个数是正数、负数还是零,并进一步判断是否为偶数或奇数
number = int(input("请输入一个整数:"))
if number > 0:
    if number % 2 == 0:
        print("该数为正偶数")
    else:
        print("该数为正奇数")
elif number < 0:
    print("该数为负数")
else:
    print("该数为零")

# 输入输出示例:
# 输入:7
# 输出:
# 该数为正奇数

六、典型应用场景

6.1 用户输入验证

通过条件判断验证用户输入内容是否符合要求,例如密码、分数等。

# 密码验证
password = input("请输入密码:")
if password == "secure123":
    print("密码正确,欢迎访问!")
else:
    print("密码错误,请重试!")

# 输入输出示例:
# 输入:secure123
# 输出:
# 密码正确,欢迎访问!
6.2 等级分类

可以使用多层次条件结构对数值进行分类,如成绩等级、年龄段、BMI分类等。

# 成绩等级分类
grade = int(input("请输入成绩:"))
if grade >= 90:
    print("优等")
elif grade >= 80:
    print("甲等")
elif grade >= 70:
    print("乙等")
elif grade >= 60:
    print("丙等")
else:
    print("丁等")

# 输入输出示例:
# 输入:85
# 输出:
# 甲等
6.3 金额折扣计算

使用嵌套条件语句为不同金额设定不同的折扣。

# 购物折扣计算
amount = float(input("请输入购物金额:"))
if amount >= 10000:
    if amount >= 100000:
        discount = 0.8
    elif amount >= 50000:
        discount = 0.85
    elif amount >= 30000:
        discount = 0.9
    else:
        discount = 0.95
else:
    discount = 1.0
total = amount * discount
print("折后金额为:", total)

# 输入输出示例:
# 输入:35000
# 输出:
# 折后金额为: 31500.0

七、小结

本篇内容全面讲解了Python中的条件语句和逻辑判断,包括条件判断的类型、基本结构、嵌套、单行表达式及典型应用场景。条件判断使得程序具备多种逻辑分支,能够根据不同条件做出决策,是实现复杂程序逻辑的基础技能。掌握这些内容后,您可以在Python编程中更加灵活地控制程序流程。


上一篇: 「Mac上学Python 27」小学奥数篇13 - 动态规划入门

下一篇: 「Mac上学Python 29」基础篇10 - 循环结构与迭代控制


目录
相关文章
|
2月前
|
Java 索引 Python
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
66 5
|
2月前
|
Python
【10月更文挑战第18天】「Mac上学Python 29」基础篇10 - 循环结构与迭代控制
在Python中,循环结构是控制程序执行的重要工具。通过学习本篇内容,您将掌握如何使用for循环和while循环来高效地处理重复任务,并了解break、continue和else的使用方式。同时,我们还会探索嵌套循环和典型应用场景中的实际应用。
41 2
|
2月前
|
存储 算法 Python
【10月更文挑战第16天】「Mac上学Python 27」小学奥数篇13 - 动态规划入门
本篇将通过 Python 和 Cangjie 双语介绍动态规划的基本概念,并解决一个经典问题:斐波那契数列。学生将学习如何使用动态规划优化递归计算,并掌握编程中的重要算法思想。
101 3
|
2月前
|
Python
【10月更文挑战第15天】「Mac上学Python 26」小学奥数篇12 - 图形变换与坐标计算
本篇将通过 Python 和 Cangjie 双语实现图形变换与坐标计算。这个题目帮助学生理解平面几何中的旋转、平移和对称变换,并学会用编程实现坐标变化。
66 1
|
2月前
|
移动开发 数据可视化 Python
【10月更文挑战第13天】「Mac上学Python 24」小学奥数篇10 - 数列求和
本篇将通过 Python 和 Cangjie 双语实现数列求和的计算。通过这个题目,学生将学会如何通过公式法和循环法求解等差数列与等比数列的和。
71 3
|
2月前
|
算法 数据可视化 Python
【10月更文挑战第14天】「Mac上学Python 25」小学奥数篇11 - 最大公约数与最小公倍数
本篇将通过 Python 和 Cangjie 双语实现最大公约数(GCD)和最小公倍数(LCM)的计算。这个题目帮助学生理解如何运用数学算法,并将其与编程实现结合。
52 1
|
2月前
|
机器学习/深度学习 移动开发 Python
【10月更文挑战第11天】「Mac上学Python 22」小学奥数篇8 - 排列组合计算
本篇将通过 Python 和 Cangjie 双语讲解如何计算排列与组合。这道题目旨在让学生学会使用排列组合公式解决实际问题,并加深对数学知识和编程逻辑的理解。
65 4
|
2月前
|
数据可视化 Python
【10月更文挑战第12天】「Mac上学Python 23」小学奥数篇9 - 基础概率计算
本篇将通过 Python 和 Cangjie 双语实现基础概率的计算,帮助学生学习如何解决简单的概率问题,并培养逻辑推理和编程思维。
52 1
|
2月前
|
Python
【10月更文挑战第11天】「Mac上学Python 21」小学奥数篇7 - 二元一次方程组求解
本篇将通过 Python 和 Cangjie 双语讲解如何求解二元一次方程组。通过这道题,学生将学会如何使用代数方法和编程逻辑求解方程组中的未知数。
75 1
|
3月前
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错