热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python流程控制结构简答_07Python基础知识学习—流程控制

流程控制即控制流程,具体指控制程序的执行流程。而程序的执行流程分为三种结构:顺序结构、分支结构、循环结构。分支结构分支结构就是根据条件判断的真假去执行不

流程控制即控制流程,具体指控制程序的执行流程。而程序的执行流程分为三种结构: 顺序结构、分支结构、循环结构 。

分支结构

分支结构就是根据 条件判断的真假去执行不同分支对应的子代码 ,可以使用 if关键字 来实现分支结构,该语句的核心是一个值为布尔类型的表达式,这个表达式称为条件测试,Python根据条件测试的值来决定是否执行if语句中的代码。如果为True,则执行紧跟在if语句后面的代码;如果为false,则忽略。简单的if语法如下:

if 条件:

do something

第1行if关键字后面可以包含任何条件测试,紧跟在测试后面的缩进代码块中可以执行任何操作。如果条件测试的结果为True,则执行if后面缩进的代码块中的代码,否则忽略:

age = 17

if age <18:

print("未成年")

# 输出&#xff1a;未成年

注意&#xff1a;

python用相同缩进(4个空格表示一个缩进)来标识一组代码块&#xff0c;同一组代码会自上而下依次运行

条件可以是任意表达式&#xff0c;但执行结果必须为布尔类型

在if判断中所有的数据类型也都会自动转换成布尔类型&#xff0c;其中 None&#xff0c;0&#xff0c;空(空字符串&#xff0c;空列表&#xff0c;空字典等) 三种情况下转换成的布尔值为False&#xff0c;其余均为True

还可以使用 if-else语句 实现当条件测试通过的时候执行一个操作&#xff0c;在没有通过的时候执行另外一个操作&#xff1a;

age &#61; 19

if age <18:

print("未成年")

else:

print("成年人")

# 输出&#xff1a;成年人

有时候检查的情形会超过两个&#xff0c;此时可以使用 if-elif-else结构 。python只执行if-elif-else结构中的一个代码块&#xff0c;它依次检查每个条件测试&#xff0c;直到遇到通过了条件的测试&#xff0c;测试通过后python就会执行紧跟在后面的缩进代码&#xff0c;并跳过余下的测试&#xff1a;

age &#61; 17

if age <3:

print("婴儿")

elif age <7:

print("幼儿")

elif age <18:

print("少年")

elif age <40:

print("青年")

elif age <60:

print("中年")

else:

print("老年")

注意&#xff1a;

elif可以有多个

最后的else可以省略

if语句是可以嵌套的&#xff1a;

age &#61; 17

gender &#61; 1

if age <18:

if gender &#61;&#61; 1:

print("女孩")

else:

print("男孩")

else:

if gender &#61;&#61; 1:

print("女人")

else:

print("男人")

# 输出&#xff1a;女孩

循环结构

循环结构就是重复执行某段代码块。

while循环

while循环的基本语法格式如下&#xff1a;

while 条件:

代码1

代码2

while的运行步骤&#xff1a;

步骤1&#xff1a;如果条件为真&#xff0c;那么依次执行&#xff1a;代码1、代码2、代码3、……

步骤2&#xff1a;执行完毕后再次判断条件&#xff0c;如果条件为True则再次执行&#xff1a;代码1、代码2、代码3、.....&#xff1b;如果条件为False则循环终止

while循环退出条件

1. 使用判断

number &#61; 10

while number > 5:

print(number, end&#61;" ")

number -&#61; 1

# 输出 10 9 8 7 6

2. 使用标记

在复杂的程序中会存在很多不同的事件导致while停止运行&#xff0c;这时候可以定义一个变量&#xff0c;用于判断整个程序是否处于活动状态&#xff0c;这个就称为标志&#xff1a;

number &#61; 10

flag &#61; True

while flag:

print(number, end&#61;" ")

number -&#61; 1

if number <&#61; 5:

flag &#61; False

# 输出 10 9 8 7 6

3. break语法

python提供了break语句来结束while循环&#xff1a;

number &#61; 10

while True:

print(number, end&#61;" ")

number -&#61; 1

if number <&#61; 5:

break

# 输出 10 9 8 7 6

但是while循环是可以嵌套使用的&#xff0c;而break语法只能结束本身所在的while的循环&#xff0c;不能结束其它层级的while循环&#xff1a;

number2 &#61; 5

while number2 > 0:

number &#61; 10

while True:

print(number, end&#61;" ")

number -&#61; 1

if number <5:

break

number2 -&#61; 1

print()

# 输出

# 10 9 8 7 6 5

# 10 9 8 7 6 5

# 10 9 8 7 6 5

# 10 9 8 7 6 5

# 10 9 8 7 6 5

此时可以使用其它方法结束外层的循环&#xff0c;比如可以使用标签&#xff1a;

number2 &#61; 5

flag &#61; True

while number2 > 0 and flag:

number &#61; 10

while True:

print(number, end&#61;" ")

number -&#61; 1

if number <5:

flag &#61; False

break

number2 -&#61; 1

print()

# 输出

# 10 9 8 7 6 5

4. continue语法

break代表结束本层循环&#xff0c;而continue则用于 结束本次循环 &#xff0c;直接进入下一次循环&#xff1a;

number &#61; 10

while number > 0:

if number % 2 &#61;&#61; 0:

number -&#61; 1

continue

print(number, end&#61;" ")

number -&#61; 1

# 结果是&#xff1a;9 7 5 3 1

while &#43; else用法

在while循环的后面可以跟上else语句&#xff0c;当while 循环正常执行完并且中间没有被break 中止的话&#xff0c;就会执行else后面的语句&#xff0c;否则就不执行。所以我们可以用else来验证循环是否正常结束&#xff1a;

number1 &#61; 5

while number1 > 0:

print(number1, end&#61;" ")

number1 -&#61; 1

else:

print("全部打印完毕.....")

# 5 4 3 2 1 全部打印完毕.....

number2 &#61; 5

while number2 > 0:

if number2 % 2 &#61;&#61; 0:

print(number2)

break

number2 -&#61; 1

else:

print("全部打印完毕.....")

# 4

for循环

循环结构的第二种实现方式是for循环&#xff0c;for循环可以做的事情while循环都可以实现&#xff0c;之所以用for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁。for循环的基本语法如下&#xff1a;

for 变量名 in 可迭代对象:

代码1

代码2

....

for循环的运行步骤如下&#xff1a;

步骤1&#xff1a;从可迭代对象中读出第一个值赋值给变量&#xff0c;然后执行循环体代码

步骤2&#xff1a;从可迭代对象中读出第二个值赋值给变量&#xff0c;然后执行循环体代码

步骤3: 重复以上过程直到可迭代对象中的值读尽

# for循环迭代数字

for number in range(10):

print(number, end&#61;" ")

print()

# for循环迭代列表

for number in [1, 2, 3, 4]:

print(number, end&#61;" ")

print()

# 迭代元祖

for number in (1, 2, 3, 4):

print(number, end&#61;" ")

print()

# 迭代集合

for number in {1, 2, 3, 4}:

print(number, end&#61;" ")

print()

# 迭代字典

for key in {"name": "Tom", "age": 18}:

print(key, end&#61;" ")

# 0 1 2 3 4 5 6 7 8 9

# 1 2 3 4

# 1 2 3 4

# 1 2 3 4

# name age

for循环也支持break和continue语法&#xff0c;它们的作用和while循环中的一样&#xff0c;分别用来终止循环和跳过本次循环&#xff1a;

# for循环中使用continue

for number in range(10):

if number % 2 &#61;&#61; 0:

continue

print(number, end&#61;" ")

# 上面的输出&#xff1a; 1 3 5 7 9

print()

# for循环中使用break

for number in range(10):

if number % 2 &#61;&#61; 0:

break

print(number, end&#61;" ")

# 什么都不输出

for循环也可以嵌套使用&#xff1a;

# for循环嵌套

for i in range(9):

for j in range(9):

if j > i:

break

print(f"{i &#43; 1}*{j &#43; 1}&#61;{ ( i &#43; 1 ) * ( j &#43; 1 ) } ", end&#61;"\t")

print()

# 1*1&#61;1

# 2*1&#61;2 2*2&#61;4

# 3*1&#61;3 3*2&#61;6 3*3&#61;9

# 4*1&#61;4 4*2&#61;8 4*3&#61;12 4*4&#61;16

# 5*1&#61;5 5*2&#61;10 5*3&#61;15 5*4&#61;20 5*5&#61;25

# 6*1&#61;6 6*2&#61;12 6*3&#61;18 6*4&#61;24 6*5&#61;30 6*6&#61;36

# 7*1&#61;7 7*2&#61;14 7*3&#61;21 7*4&#61;28 7*5&#61;35 7*6&#61;42 7*7&#61;49

# 8*1&#61;8 8*2&#61;16 8*3&#61;24 8*4&#61;32 8*5&#61;40 8*6&#61;48 8*7&#61;56 8*8&#61;64

# 9*1&#61;9 9*2&#61;18 9*3&#61;27 9*4&#61;36 9*5&#61;45 9*6&#61;54 9*7&#61;63 9*8&#61;72 9*9&#61;81



推荐阅读
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了使用Python根据字典中的值进行排序的方法,并给出了实验结果。通过将字典转化为记录项,可以按照字典中的值进行排序操作。实验结果显示,按照值进行排序后的记录项为[('b', 2), ('a', 3)]。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
author-avatar
oth0037112
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有