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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 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 - 循环结构与迭代控制


目录
相关文章
|
3天前
|
SQL 人工智能 安全
【灵码助力安全1】——利用通义灵码辅助快速代码审计的最佳实践
本文介绍了作者在数据安全比赛中遇到的一个开源框架的代码审计过程。作者使用了多种工具,特别是“通义灵码”,帮助发现了多个高危漏洞,包括路径遍历、文件上传、目录删除、SQL注入和XSS漏洞。文章详细描述了如何利用这些工具进行漏洞定位和验证,并分享了使用“通义灵码”的心得和体验。最后,作者总结了AI在代码审计中的优势和不足,并展望了未来的发展方向。
|
11天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
18天前
|
存储 人工智能 缓存
AI助理直击要害,从繁复中提炼精华——使用CDN加速访问OSS存储的图片
本案例介绍如何利用AI助理快速实现OSS存储的图片接入CDN,以加速图片访问。通过AI助理提炼关键操作步骤,避免在复杂文档中寻找解决方案。主要步骤包括开通CDN、添加加速域名、配置CNAME等。实测显示,接入CDN后图片加载时间显著缩短,验证了加速效果。此方法大幅提高了操作效率,降低了学习成本。
2780 8
|
13天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1576 12
|
5天前
|
人工智能 关系型数据库 Serverless
1024,致开发者们——希望和你一起用技术人独有的方式,庆祝你的主场
阿里云开发者社区推出“1024·云上见”程序员节专题活动,包括云上实操、开发者测评和征文三个分会场,提供14个实操活动、3个解决方案、3 个产品方案的测评及征文比赛,旨在帮助开发者提升技能、分享经验,共筑技术梦想。
715 95
|
1月前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
18天前
|
人工智能 Serverless API
AI助理精准匹配,为您推荐方案——如何快速在网站上增加一个AI助手
通过向AI助理提问的方式,生成一个技术方案:在网站上增加一个AI助手,提供7*24的全天候服务,即时回答用户的问题和解决他们可能遇到的问题,无需等待人工客服上班,显著提升用户体验。
1468 9
|
6天前
|
SQL 存储 人工智能
【产品升级】Dataphin V4.3重大升级:AI“弄潮儿”,数据资产智能化
DataAgent如何助理业务和研发成为业务参谋?如何快速低成本的创建行业数据分类标准?如何管控数据源表的访问权限?如何满足企业安全审计需求?
355 0
【产品升级】Dataphin V4.3重大升级:AI“弄潮儿”,数据资产智能化
|
2天前
|
人工智能 自然语言处理 程序员
提交通义灵码创新实践文章,重磅好礼只等你来!
通义灵码创新实践征集赛正式开启,发布征文有机会获得重磅好礼+流量福利,快来参加吧!
196 7
|
16天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
877 29