Python分支结构和循环结构
(1).分支结构
分支结构是根据判断条件结果而选择不同向前路径的运行方式,分支结构分为:单分支,二分支和多分支。
1)单分支结构
单分支结构是分支结构中最简单的一种方式,它的使用方法如下:
1 2 | if <条件>: <语句块> |
单分支结构只需要判断一个条件,根据这个条件是否成立来决定是否执行一段语句。
实例1:猜数字
1 2 3 | num_in = eval ( input ( "请输入数字:" )) if num_in = = 59 : print ( "猜对了" ) |
2)二分支
二分支结构是根据条件判断的不同而选择不同执行路径的一种分支结构,它的使用方法如下:
1 2 3 4 | if <条件>: <语句块 1 > else : <语句块 2 > |
二分支结构也只需要判断一个条件,根据这个条件来决定执行的语句块,成立执行语句块1,不成立执行语句块2。
实例2:猜数字
1 2 3 4 5 | num_in = eval ( input ( "请输入数字:" )) if num_in = = 59 : print ( "猜对了" ) else : print ( "猜错了" ) |
3)多分支
多分支结构是根据不同条件来选择语句块运行的一种分支结构,它的使用方法如下:
1 2 3 4 5 6 7 | if <条件 1 >: <语句块 1 > elif <条件 2 >: <语句块 2 > ...... else : <语句块n> |
多分支结构需要判断多个条件,根据判断当前条件是否成立来决定是否执行当前语句块,当所有条件都不成立时,执行else的语句块。
实例3:猜数字
1 2 3 4 5 6 7 | num_in = eval ( input ( "请输入数字:" )) if num_in> 59 : print ( "数字大了" ) elif num_in< 59 : print ( "数字小了" ) else : print ( "数字正确" ) |
(2).条件判断
1)条件判断操作符
操作符 | 描述 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
== | 等于 |
!= | 不等于 |
2)条件组合关键字(Python保留字)
关键字及使用方法 | 描述 |
x and y | 两个条件判断x和y同时为True时,才为True,否则为False |
x or y | 两个条件判断x和y同时为False时,才为False,否则为True |
not x | 条件判定取反 |
(3).异常处理
当使用以下实例时
1 2 | num_in = eval ( input ( "请输入数字:" )) print (num_in) |
如果不输入数字,而输入字符串,此时会出现如下报错:
1 2 3 4 5 6 | 请输入数字:abc Traceback (most recent call last): File "C:\Users\Administrator\Desktop\hello_world.py" , line 1 , in <module> #异常发生的代码行数 num_in = eval ( input ( "请输入数字:" )) File "<string>" , line 1 , in <module> NameError: name 'abc' is not defined #异常类型和异常内容提示 |
此时就需要使用到Python通过的异常处理的相关机制,异常处理有两种非常基本的使用方法,使用保留字try和except,格式如下:
1 2 3 4 | try : <语句块 1 > except <异常类型>: <语句块 2 > |
放在try中的语句块1如果出现异常,将会在except中查找相同的异常类型,执行相应的语句块。如果except后面不跟随异常类型,那么就必须是最后一个except,表示除以上提到的异常类型,其余的异常都采用这个except的语句块。
实例:
1 2 3 4 5 | try : num_in = eval ( input ( "请输入数字:" )) print (num_in) except NameError: print ( "当前输入不是数字" ) |
异常处理的高级用法使用到了保留字try、except、else和finally,格式如下:
1 2 3 4 5 6 7 8 | try : <语句块 1 > except <异常类型>: <语句块 2 > else : <语句块 3 > finally : <语句块 4 > |
多出来的else语句块在没有发生异常时执行,finally语句块一定执行。
(4).循环结构
循环语句分为:遍历循环和无限循环
1)遍历循环
遍历循环指遍历某一个结构形成的循环运行方式,它的使用方法如下:
1 2 | for <循环变量> in <遍历结构>: <语句块> |
简单说遍历循环是由for in保留字构成的循环结构,它可以从遍历结构中逐一提取元素放到循环变量里。当遍历结构中的所有元素都放入循环变量,并且都已循环执行之后,那么循环程序退出。注意:遍历结构不是一种特殊的类型,它可以是range(m,n,k)、字符串、序列等等。
当遍历结构采用range(m,n,k)时,可以称这种遍历循环结构为计数循环,通过range(m,n,k)产生一个数字序列,这个序列包含(n-m)/k个元素,每个元素都是整数。实例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | >>> for i in range ( 5 ): print (i) #输出效果如下 0 1 2 3 4 >>> for i in range ( 1 , 6 , 2 ): print (i) #输出效果如下 1 3 5 |
当遍历结构采用字符串时,可以称这种遍历循环结构为字符串遍历循环,循环变量将会遍历字符串的每一个字符。实例如下:
1 2 3 4 | >>> for i in "Python123" : print (i,end = "," ) #输出效果如下 P,y,t,h,o,n, 1 , 2 , 3 , |
当遍历结构采用列表时,可以称这个遍历结构为列表遍历循环,循环变量将会遍历列表中的每一个元素。(其他序列也可作为遍历结构)实例如下:
1 2 3 4 | >>> for i in [ 123 , "PY" , 456 ]: print (i,end = "," ) #输出效果如下 123 ,PY, 456 , |
当变量结构采用文件(标识符)时,可以称这个遍历结构为文件遍历循环,循环变量将会遍历文件的每一行。
一般只要是多个元素组成的数据类型,都可以被采用。
2)无限循环
无限循环是由条件控制的循环运行方式,它的使用方法如下:
1 2 | while <条件判断>: <语句块> |
简单来说,它已经不再是遍历某一个结构,而是根据条件判断来进行循环。如果这个条件成立,那么下面的语句块就会被执行,执行之后再次判断条件,如果这个条件再次成立,它就会继续再执行下面的语句块,然后再回来判断循环。所以无限循环是反复执行语句块,直到条件不满足时结束。
实例:
1 2 3 4 5 6 7 8 | >>> a = 3 >>> while a> 0 : a - = 1 print (a) #输出效果如下 2 1 0 |
如果不小心写成了死循环,可以使用<Ctrl>+<C>退出循环。
3)循环控制保留字break和continue
和其他语言一样,Python通过了两个循环控制保留字break和continue(几乎所有的语言都是这两个)。break表示结束当前所在循环,continue表示跳过当次循环并不影响循环的继续,它们都可以与for循环和while循环搭配使用。
continue实例:
1 2 3 4 5 6 | >>> for c in "PYTHON" : if c = = "T" : continue print (c,end = "") #输出效果如下 PYHON |
break实例:
1 2 3 4 5 6 | >>> for c in "PYTHON" : if c = = "T" : break print (c,end = "") #输出效果如下 PY |
注意:使用break时,注意其所在的循环位置,只跳出break所在的循环。
4)循环的高级用法
循环可以和else搭配使用,else与循环处于同一级,在循环语句之后,使用方法如下:
1 2 3 4 5 6 7 8 9 | for <循环变量> in <遍历结构>: <语句块 1 > else : <语句块 2 > while <条件>: <语句块 1 > else : <语句块 2 > |
无论是for还是while,当循环没有被break保留字退出时(允许存在break),此时执行else的语句块。简单来讲,else语句块可以作为“正常”完成循环的一种奖励,与异常处理中的else类似。
实例1:
1 2 3 4 5 6 7 8 | >>> for c in "PYTHON" : if c = = "T" : continue print (c,end = "") else : print ( "正常退出" ) #输出效果如下 PYHON正常退出 |
实例2:
1 2 3 4 5 6 7 8 | >>> for c in "PYTHON" : if c = = "T" : break print (c,end = "") else : print ( "正常退出" ) #输出效果如下 PY |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性