Python第3章 流程控制(一)

简介: Python第3章 流程控制

【本章导读】

进行程序设计时,复杂问题的求解通常需要通过流程进行控制。程序的流程控制可归纳为三种:顺序结构、分支(选择)结构和循环结构。每一个结构化的程序都可以由这三种结构组合或嵌套而成。这种程序设计方法,使程序具有良好的可读性和可维护性。


本章在讲解常用运算的基础上,应用一系列数学问题的求解案例,详细介绍了Python中利用for

关键字对range()函数产生的整数序列进行确定次数循环的方法和具体应用,介绍了利用while关键字实现循环次数不确定问题的求解方法。


介绍了用if…elif…else语句实现分支结构程序设计。简单介绍了利用pass、continue和break语句实现流程跳转的方法。


简单介绍了异常处理的概念和利用异常处理提高程序健壮性和容错性的程序设计方法。


【本章要点】

●常用运算及运算优先级

数值运算: +、-、*、/、//、%、**
真值测试:None,False, 0, 0.0, 0j, Decimal(0), Fraction(0, 1),'', (), [], {}, set(), range(0)
布尔运算:x or y, x and y, not x
比较运算:>、 >=、 <、 <=、 ==、 !=、 is、 is not 
成员运算:x in s 、x not in s

●for…in range()循环结构

for 循环变量 in 可遍历对象:
    重复执行的语句块    
[else]:
    循环正常结束后需执行的语句
for i in range(5):  # 遍历range
    print(i)
else:
    print('循环正常结束')
for c in string:  # 遍历字符串
    print(c)
for item in list:  # 遍历列表、元组、字典、集合等
    print(item)
for line in file:  # 遍历文件对象
    print(line)

while循环结构的流程控制

while 条件表达式:
    重复执行的语句块    
[else]:  # 只有当循环正常结束时,else子句中的语句才能被执行
    循环正常结束后需执行的语句

●流程跳转语句的功能与应用

break    跳过当前循环中未执行的次数,提前结束当前层次循环
continue 跳过本次循环中剩余语句的执行,提前进入下一次循环
pass     跳过执行或占位

●分支语句

if 条件表达式1:     # if 必须有且只能有一个
    语句块1
[elif 条件表达式2:  # 有0个或多个
    语句块2]
[elif 条件表达式3:
    语句块3]
[……]
[else:            # 0个或1个
    语句块n]

●异常处理的概念与应用

except <异常名称1>:
    <语句块2>   # 如果在try部份引发了异常名称1时执行的语句块
[except <异常名称2>:
    <语句块3>]  # 如果在try部份引发了异常名称2时执行的语句块
[else:
    <语句块4>]  # 没有异常发生时执行的语句块
[finally:
    <语句块5>]  # 无论有没有异常都会执行的语句块

思维导图:2.1.png

真值测试

对象出现在if或while语句中的条件表达式中, 或是作为布尔运算的操作数时,对象值表现为 True或False


值为False的内置对象: 被定义为假值的常量 任何数值类型的数字零 空的序列和多项集


会被视为假值的内置对象包括:

假值常量: None和False

print(bool(False))   # False
print(bool(None))    # False

会被视为假值的内置对象包括: 任何数值类型的数字零:

0, 0.0, 0j, Decimal(0), Fraction(0, 1)
print(bool(0.0))  # False
print(bool(0j))   # False
print(bool(0))    # False

会被视为假值的内置对象包括: 空的序列和多项集,len()测试长度为0: 空字符串’', 空元组(), 空列表[], 空字典{},

空集合set(), range(0)

print(bool(''))       # 空字符串,False
print(bool([]))       # 空列表,False
print(bool(()))       # 空元组,False
print(bool({}))        # 空字典,False
print(bool(set()))     # 空集合,False
print(bool(range(0)))  # 空range,False

除上述对象外,所有其他对象的真值测试结果都为True

print(bool(0.00001))                   # 非0浮点数
print(bool([1]))                       # 非空列表
print(bool((1,)))                      # 非空元组
print(bool('me'))                      # 非空字符串
print(bool({1, 2, 3}))                 # 非空集合
print(bool(range(5)))                  # 非空range
print(bool({'tom': 99, 'jerry': 86}))  # 非空字典

比较运算

用于比较两个值,确定它们之间的关系
结果为逻辑值,即True 或False

8 种比较运算:

2 种一致性比较(==、!=)

4 种次序比较(<、>、<=、>=)

2 种标识号比较(is 和is not)

比较运算符可以连续使用

例如:x < y <= z
     90 <= score <= 100
等价于 x < y andy <= z
      score >= 90 and score <= 100

数值类型会根据数字大小和正负进行比较

print(100 > 99)   # True
print(3.14> 3.141)  # False
print(1.0==1)  # True,值相等的不同对象
整数和浮点数可以跨类型比较
print(1e18 == 1e18 + 10)  # True
大浮点数比较精度影响结果

字符串比较根据其字符的Unicode 码数字值大小
按字典顺序进行

print('ji lin' > 'ji an')   # True
print([ord(y) for y in 'ji lin’])
print([ord(x) for x in 'ji an'])
ord()获取字符Unicode 码数字值
[106, 105, 32, 108, 105, 110]
[106, 105, 32, 97, 110]

元组、列表和range等序列只可进行类型内部的比较
比较方法是依次比较元素的值

print([1, 2, 3, 4] > [1, 2, 3])# True
print((1, 2, 3, 4) > (1, 2, 3)) # True
print(range(5) == range(0,5)) # True
print([1, 2, 3, 4] > [3, 2, 3]) # False
print((3, 2, 3) > (1, 2, 3)) # True

None和任何其他的数据类型的一致性比较永远返回False

// An highlighted block
var foo = 'bar';print(range(0) == None)#RangeFalse
print([] == None)# 空列表,False
print('' == None)# 空字串符,False
print(0 == None)# 整数0,False

运算符is 和is not 用于检测对象的标识号是否相同
仅当id(x) == id(y)时,x is y 结果为True

print(id(5) == id(5.0))  # False
print(id(5),id(5.0)) # 21975364018402197543023344
print(5 is 5.0)          # False
print(5 == 5.0) # True,值相等
相关文章
|
2月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
256 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
2月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
3月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
3月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
806 0
JSON 监控 API
102 0
|
4月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
844 1
|
4月前
|
设计模式 算法 大数据
Python流程控制:让代码按你的节奏跳舞
Python流程控制是编程核心,通过if条件判断、for循环与while循环,控制代码执行顺序与逻辑分支。它帮助开发者实现智能决策、重复任务处理与交互式应用,是编写高效、清晰程序的关键。掌握这三大控制结构,将显著提升代码逻辑与程序性能。
153 0
|
5月前
|
数据采集 数据可视化 搜索推荐
Python数据分析全流程指南:从数据采集到可视化呈现的实战解析
在数字化转型中,数据分析成为企业决策核心,而Python凭借其强大生态和简洁语法成为首选工具。本文通过实战案例详解数据分析全流程,涵盖数据采集、清洗、探索、建模、可视化及自动化部署,帮助读者掌握从数据到业务价值的完整技能链。
622 0
|
7月前
|
JSON 算法 API
1688商品详情API实战:Python调用全流程与数据解析技巧
本文介绍了1688电商平台的商品详情API接口,助力电商从业者高效获取商品信息。接口可返回商品基础属性、价格体系、库存状态、图片描述及商家详情等多维度数据,支持全球化语言设置。通过Python示例代码展示了如何调用该接口,帮助用户快速上手,适用于选品分析、市场研究等场景。
|
8月前
|
数据采集 机器学习/深度学习 数据挖掘
Python爬虫生成CSV文件的完整流程
Python爬虫生成CSV文件的完整流程

推荐镜像

更多