Python流程控制详解

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

和其它编程语言一样Python流程控制可分为 3 大结构顺序结构、选择分支结构和循环结构。

Python对缩进的要求重点

Python 是一门非常独特的编程语言它通过缩进来识别代码块所以你不能胡乱缩进这样很容易导致语法错误。

  • Python 是以缩进来标记代码块的代码块一定要有缩进没有缩进的不是代码块。
  • Python 要求代码块必须缩进但是却没有要求缩进量你可以缩进 n 个空格或者 n 个 Tab 键的位置。推荐缩进 1 个 Tab键或者 4 个空格。
  • 同一个代码块的缩进量要相同缩进量不同的不属于同一个代码块。如果某个语句忘记缩进了Python 解释器并不一定会报错但是程序的运行逻辑往往会有问题。
  • 不需要使用代码块的地方千万不要缩进一旦缩进就会产生一个代码块

一、条件控制

1、if语句

1.1 if else语句

使用 if else 语句对条件进行判断然后根据不同的结果执行不同的代码这称为选择结构或者分支结构。

Python 中的 if else 语句可以细分为三种形式分别是

  • if 语句
  • if else 语句
  • if elif else 语句。Python 中用 elif 代替了 else if。elif 和 else 都不能单独使用必须和 if 一起出现并且要正确配对。

if 语句的一般格式

if 表达式 1
    代码块 1
elif 表达式 2
    代码块 2
... //其它elif语句
else
    代码块 n

注意

  • 代码块由具由相同缩进量的若干条语句组成。
  • if、elif、else 语句的最后都有冒号:不要忘记。

示例代码如下

age = 18

if age <= 18:
    print("小于等于18")
else:
    print("大于18")

1.2 if语句嵌套

Python 中if、if else 和 if elif else 之间可以相互嵌套。需要注意在相互嵌套时一定要严格遵守不同级别代码块的缩进规范。

if 语句嵌套的一般格式

if 表达式1:
    代码块
    if 表达式2:
        代码块
    elif 表达式3:
        代码块
    else:
        代码块
elif 表达式4:
    代码块
else:
    if 表达式 5
        代码块
    else
        代码块

示例代码如下

age = int(input("请输入你的年龄"))

if age < 18:
    if age < 13:
        print("青少年")
    else:
        print("小屁孩")
else:
    print("成年人")

2、match…case语句

在 Python 中没有 switch…case 语句但在 Python3.10 版本添加了 match…case的条件判断不需要再使用一连串的 if-else 来判断了。

语法格式如下

match subject:
    case <pattern_1>:
        <action_1>
    case <pattern_2>:
        <action_2>
    case <pattern_3>:
        <action_3>
    case _:
        <action_wildcard>

match 后的对象会依次与 case 后的内容进行匹配如果匹配成功则执行匹配到的表达式否则直接跳过_ 可以匹配一切类似 Java 中的 default。

示例代码如下

sex = -1

match sex:
    case 1:
        print("男")
    case 0:
        print("女")
    case _:
        print("未知")

二、循环语句

1、while循环语句

Python 中 while 语句的一般形式

while 条件表达式
    代码块

示例代码如下

# 求 num 到 count之和
num = 1
count = 100
sum = 0
while num <= 100:
    sum += num
    num += 1
else:
    print("求和操作完成")
    
print("%d 到 %d 之和为: %d" % (num, count, sum))

在这里插入图片描述

2、循环使用 else 语句

Python 中无论是 while 循环还是 for 循环其后都可以紧跟着一个 else 代码块它的作用是当循环条件为 False 跳出循环时程序会最先执行 else 代码块中的代码。

while 语法格式如下

while 条件表达式
    代码块
else:
	循环结束后执行的代码块

for 语法格式如下

for 迭代变量 in 字符串|列表|元组|字典|集合
    代码块
else:
	循环结束后执行的代码块

3、for 循环语句

Python for 循环的语法格式如下

for 迭代变量 in 字符串|列表|元组|字典|集合
    代码块

示例代码如下

# 遍历数值
for i in range(0, 10, 2):
    print(i)

# 遍历列表
arr = ["A", "B", "C", "D"]
for ele in arr:
    print(ele)
else:
    print("------------")

# 遍历元组
tup1 = ("Python", 1, [2, 'a'], ("abc", 3.0))
for i in tup1:
    print(i)

4、循环嵌套

Python 不仅支持 if 语句相互嵌套while 和 for 循环结构也支持嵌套。分支结构语句与循环结构语句也可以相互嵌套甚至可以多层嵌套。

示例代码如下

for sex in range(0, 3):
    match sex:
        case 1:
            n = 1
            while n <= 2:
                print("我是男" + str(n) + "号")
                n += 1
        case 0:
            for letter in 'female':
                if letter == 'a':
                    pass
                    print('执行 pass 块')
                print('当前字母 :', letter)
        case _:
            print("未知")
else:
    print("-----执行完毕-----")

在这里插入图片描述

5、强制跳出循环

Python 提供了 2 种强制离开当前循环体的办法

  • break 语句可以完全终止当前循环。如果你从 for 或 while 循环中终止循环任何对应的循环 else 块将不执行。
  • continue 语句可以跳过执行当前循环体中的剩余语句然后继续进行下一次的循环。

注意

  • 如果循环后面使用一个 else 语句那么在循环过程中遇到了 break 语句则会终止循环此时不会执行 else 子句。
  • 对于嵌套的循环结构来说break 语句只会终止所在循环体的执行而不会作用于所有的循环体。
  • break 语句一般会结合 if 语句进行搭配使用表示在某种条件下跳出循环体。

示例代码如下

for sex in range(0, 3):
    match sex:
        case 1:
            n = 1
            while n <= 2:
                print("我是男" + str(n) + "号")
                n += 1
        case 0:
            for letter in 'female':
                if letter == 'a':
                    continue
                    pass
                    print('执行 pass 块')
                print('当前字母 :', letter)
        case _:
            break
            print("未知")
else:
    print("-----执行完毕-----")

在这里插入图片描述

三、其他语句

1、pass语句

pass 是 Python 中的关键字pass是空语句用来让解释器跳过此处什么都不做。是为了保持程序结构的完整性。

pass 语句不做任何事情一般用做占位语句或者放一条语句。有时使用 pass 语句比使用注释更加优雅。

使用 pass 语句非常简单示例代码如下

for letter in 'female':
    if letter == 'a':
        pass
        print(' ->> 执行 pass 块')
    print('当前字母 :', letter)

在这里插入图片描述

– 求知若饥虚心若愚。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python