Python 编程 | 连载 13 - Python 的流程控制

简介: Python 编程 | 连载 13 - Python 的流程控制

一、Python 的逻辑语句

逻辑与 if 语句

逻辑判断与逻辑语句:

  • 对于一件事情正确与否的判断
  • 根据判断的结果做不同的事情
  • 对于条件满足的判断语句,就是条件语句
  • 一个逻辑语句是由条件语句和业务语句组合而成

判断一个命题的真实性,如果命题为真(True)则执行 if 的逻辑语句

if bool_result: # 语法块
    do # 业务代码块,有缩进
复制代码
  • if 关键字后的 bool_result 是结果的真假,为布尔类型既 True 或者 False
  • do 代码块是在 bool_result 为 True 的条件下执行的
  • if 是关键字,不是函数,无返回值
info = 'i am iron man'
info_list = info.split(' ')
print(info_list)
if info_list[0] == 'iron':
    info_list[0] = 'spider'
if info_list[1] == 'iron':
    info_list[1] = 'spider'
if info_list[2] == 'iron':
    info_list[2] = 'spider'
if info_list[3] == 'iron':
    info_list[3] = 'spider'
print(info_list)
info_02 = ' '.join(info_list)
print(info_02)
复制代码

1690e38ecc6a488f8ca500082e29b993_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

使用成员运算符进行逻辑判断

message = 'Will says:"Keep my wife's name out of your fucking mouth"'
message_list = message.split()
if 'fucking' in message_list:
    message = message.replace('fucking', '*')
print(message)
复制代码

4c4b0b628f7e44cfa4d0ee46446fadc6_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

条件语句中的 else 关键字

else 就是对于不满足 if 条件的时候执行另一个代码块的入口

if bool_result:
    do
else:
    else do # else 代码块,当满足if条件时执行,需要与if代码块有同样的缩进    
复制代码

else是关键字,不是函数,无返回值

name = 'peter'
if name == 'stark':
    print('I am IronMan')
else:
    print('Who are you then?')
复制代码

ce976e78a6c643afbe9b65190cc494f7_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

不满足 if 的条件,则会执行 else 代码块。

条件语句中的 elif 关键字

elif(或者如果)对于条件的非第一次的多种判断,每种判断条件对应一个代码块

if bool_reslut:
    do
elif bool_result:
    elif do # 当前elif对应的代码块, 缩进与上面保持一致
elif bool_result:
    elif do
else:
    else do
复制代码

elif 是关键字,不是函数,没有返回值

num = 8
if num >= 10:
    print('num的值大于等于10')
elif num > 5:
    print('num的值大于5小于10')
else:
    print('num的值小于等于5')
复制代码

条件语句总结

  • 条件语句中满足一个条件后,将推出当前条件语句
  • 每条语句中有且只有一个if语句,可以有0个或者多个elif语句,可以有0个或者1个else语句
  • 每个条件语句中的第一个条件语句必须是if条件语句

16efd7a399f44d978a9f36975fe760dc_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

二、for 循环

for 关键字可以将列表、元组、字典、字符串中的每个元素按照队列中的顺序进行遍历

for item in iterable: # iterable 既可迭代的数据类型,元组、字典、字符串、列表等
    print(item) # item 是指队列中的一个元素
复制代码
list_01 = ['stark', 'wanda', 'steve', 'strange', 'loki']
for item in list_01:
    print(item)
    if item == 'stark':
        print('I am IronMan')
    elif item == 'peter':
        print('I am SpiderMan')
    elif item == 'banner':
        print('Incredible Hulk')
    elif item == 'thor':
        print('Thor Odin')
    else:
        print('We are Heros')
复制代码

6f3e59d255344124b305a489aef46fef_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

字典的 item 函数

items函数可以将字典转成伪列表,每个Key、Value转换成元组

利用字典的item函数对字典进行for循环

for key, value in dict.items():
    print(key, value)
复制代码

items函数无参数 key:for循环体中获取的字典的当前元素的key value:for循环体中对应当前Key的Value值

list_dict = [
    {'name': 'stark', 'age': 40},
    {'name': 'thor', 'age': 1500},
    {'name': 'banner', 'age': 40},
    {'name': 'clint', 'age': 37},
]
for i in list_dict:
    for k, v in i.items():
        print(k ,v)
复制代码

1ee28d1ba3d6401797126ddcef511c3d_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

range 函数

range函数返回的是一个一定范围的可迭代对象,元素为整型,不是列表,无法打印信息,但是可以进行循环。

for item in range(start, stop, step=1):
    print(item)
复制代码
  • start: 开始的数字,类似切片时的起始位置
  • stop:结束的数字,类似切片的结束位置
  • step:步长,类似切片中的步长

返回一个可迭代的整型的对象,且与切片一样是左包含右不包含

for i in range(1, 5):
    print(i)
print('--------------')
for j in range(1, 10, 2):
    print(j)
复制代码

ef3776246a1b470fb3dd55f5b74b877f_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

else 在 for 循环中的使用

else语句只有在for循环正常退出后才执行

for i in range(1, 5):
    print(i)
else:
    print('for循环执行结束')
复制代码

aaec1b87a9924a1d80ca8186f38388da_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

嵌套for 循环

for循环中的for循环称为嵌套for循环

for i in range(1, 3):
    print('第一层for循环')
    print(i)
    for j in range(1, 3):
        print('第二层for循环')
        print(i, ',', j)
print(i, j)
复制代码

b37fae8f02d441e187503ad35e941324_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

可以使用上一层的for循环中的变量,可以在 for 循环外使用 for 循环中的两个变量。

三、while 循环

以一定条件为基础的循环,条件满足则无限循环,条件不满足则退出循环,for循环是有限循环,有一定的迭代次数,while循环是无限循环,while循环不依赖可迭代的数据类型,for循环依赖可迭代的数据类型。

while bool_result:
    do
复制代码
  • bool_result:True 或 False
  • do:while循环的代码块
count = 0
total = 0
while count <= 100:
    total += count
    count += 1
print(total)
复制代码

71b9d344504947c88fe19d3b54c8c59c_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

index = 0
list_01 = ['stark', 'banner', 'peter', 'clint', 'thor']
while index < len(list_01):
    print(list_01[index])
    index += 1
复制代码

141e5573a9f04e069779d24731434e90_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

四、continue 与 break 关键字

continue 关键字可以停止当前循环,直接进入下一次循环,continue 关键字在循环中使用

while bool_result:
    if bool_result:
        contineu
复制代码

break 关键字可以使循环停止,并且不会执行当前语句中的else语句

while bool_result:
    break
复制代码
  • continue 与 break 通常伴随着循环语句中的条件语句,满足某些条件可以继续执行,不满足条件提前退出或者结束循环
  • 在while循环中,break语句优先与while逻辑体中的判断
heros = [
    {'name': 'stark', 'age': 40, 'address': 'NY'},
    {'name': 'peter', 'age': 18, 'address': 'NY Queens'},
    {'name': 'steve', 'age': 40, 'address': 'NY Brooklyn'},
    {'name': 'thor', 'age': 1500, 'address': 'Asgard'},
]
humans = []
for hero in heros:
    if hero.get('name') == 'thor':
        continue
    humans.append(hero)
    print('{} is human'.format(hero.get('name')))
print(humans)
复制代码

9954c6fe232744af8702e1b33981b950_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

heros = [    {'name': 'stark', 'age': 40, 'address': 'NY'},    {'name': 'peter', 'age': 18, 'address': 'NY Queens'},    {'name': 'steve', 'age': 40, 'address': 'NY Brooklyn'},    {'name': 'thor', 'age': 1500, 'address': 'Asgard'},]
humans = []
for hero in heros:
    if hero.get('name') == 'steve':
        break
    humans.append(hero)
    print('{} is human'.format(hero.get('name')))
else:
    print('for循环执行完毕')
print(humans)
复制代码

e3d74e73fdfc468fb787ccb1122c7194_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

continue、break只能在循环中使用。

嵌套循环实现九九乘法表

num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in num:
    # print(i)
    for j in range(1, i+1):
        # 输出乘法口诀
        print('{} * {} = {}'.format(j, i, i * j), end=' ')
        if j == i:
            # 换行
            print()


相关文章
|
3月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
4月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
323 102
|
4月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
350 104
|
3月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
300 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
3月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
243 3
|
3月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
495 3
|
3月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
316 3
|
3月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
335 0
|
4月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
4月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1014 0

推荐镜像

更多