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()


相关文章
|
21天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
20天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
8天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
101 80
|
7天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
34 2
|
20天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
44 10
|
21天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
20天前
|
人工智能 数据挖掘 开发者
探索Python编程之美:从基础到进阶
本文是一篇深入浅出的Python编程指南,旨在帮助初学者理解Python编程的核心概念,并引导他们逐步掌握更高级的技术。文章不仅涵盖了Python的基础语法,还深入探讨了面向对象编程、函数式编程等高级主题。通过丰富的代码示例和实践项目,读者将能够巩固所学知识,提升编程技能。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和启示。让我们一起踏上Python编程的美妙旅程吧!
|
JavaScript 前端开发 Python
《Python数据科学实践指南》一2.4 流程控制
到目前为止,我们所编写的程序都是线性的程序,程序中的语句按照顺序依次被执行,这样的程序能实现的功能非常有限,而且还需要编写大量的代码,损失了编写程序执行任务的大部分优势。事实上,可以使用条件判断及循环这两种常用的方式更有效率地编写程序。
1460 0