Python |7—流程控制语句
本文最后更新于60 天前,其中的信息可能已经过时,如有错误请发送邮件到2031853749@qq.com

程序结构

程序结构主要分为三种: 顺序结构,选择结构,循环结构。

顺序结构: 程序按顺序执行,从上到下,从左到右.

选择结构: 程序根据条件选择执行的分支,如if-else语句.

循环结构: 程序重复执行某段代码,如while语句.

选择语句

最简单的if语句

if 条件表达式:
    语句块

其中表达式可以是布尔值或变量,也可以是比较表达式或逻辑表达式.如果表达式为True,则执行语句块,否则不执行.

相当于汉语的”如果…就…”

注意: if语句后面必须要有冒号(:), 语句块必须要有缩进.

if-else语句

if 条件表达式:
    语句块1
else:
    语句块2

如果条件表达式为True,则执行语句块1,否则执行语句块2.

相当于汉语的”如果…就…否则…”

if-else语句可以用条件表达式进行简化:

if 条件表达式:
    语句块1
else:
    语句块2

可以写成:

if 条件表达式: 语句块1
else: 语句块2

else不能单独存在,必须和if语句配合使用.

if-elif-else语句

if 条件表达式1:
    语句块1
elif 条件表达式2:
    语句块2
elif 条件表达式3:
    语句块3
else:
    语句块4

if-elif-else语句可以有多个条件表达式,当满足第一个条件表达式时,执行对应的语句块,然后结束.如果不满足任何条件表达式,则执行else语句块.

相当于汉语的”如果…就…否则如果…就…否则…”

注意: elif语句后面必须要有冒号(:), 语句块必须要有缩进.

使用if选择语句时,当使用布尔型变量作为判断条件时,假设布尔型变量为flag,则较为规范的写法为:

if flag:      #表示为True
if not flag:  #表示为False

以下为不规范的写法:

if flag == True:
if flag == False:

选择语句的嵌套

前面介绍的选择语句都可以互相嵌套,但是一定要控制好不同级别代码块的缩进,否则会出现语法错误.

同时也不能嵌套太深,否则会导致代码可读性差,不易维护.

match-case语句

Python3.10引入的match-case语句,可以用来进行多分支条件判断.可以实现类似if-elif-else的功能,但是更加简洁.

match 变量:
    case 值1:
        语句块1
    case 值2:
        语句块2
    case 值3:
        语句块3
    case _:
        语句块4

match语句后面接待判断的变量,然后用case语句块进行条件判断,case后面接待判断的值,如果变量的值与case的值相等,则执行对应的语句块,否则继续判断下一个case语句块.如果变量的值与所有case的值都不匹配,则执行最后一个语句块.

case _: 类似于 C 和 Java 中的 default:, 当其他 case 都无法匹配时, 匹配这条, 保证永远会匹配成功.

match-case语句的使用场景:

1.匹配字面值

例如通过结构化模式匹配语句实现判断今天是星期几:

from datetime import datetime
day=datetime.today().weekday()
match day:
    case 0:
        print("星期一")
    case 1:
        print("星期二")
    case 2:
        print("星期三")
    case 3:
        print("星期四")
    case 4:
        print("星期五")
    case 5:
        print("星期六")
    case 6:
        print("星期日")

2.绑定变量

match语句还可以绑定变量,可以将匹配的值绑定到变量上,然后在后续语句中使用:

a=input("请输入一个数字:")
match a:        #匹配变量a
    case b:     #使用不存在的变量b匹配变量a
        print(b)   

3.约束项

match语句还可以添加约束项,用于限制匹配的范围,例如只匹配整数:

a=input("请输入一个数字:")
match a:
    case int(b):    #匹配变量a为整数
        print(b)

4.多分支条件判断

match语句还可以实现多分支条件判断,例如判断一个数字是否为奇数或偶数:

a=input("请输入一个数字:")
match a:
    case int(b) if b%2==0:    #匹配变量a为整数,且为偶数
        print(b,"是偶数")
    case int(b) if b%2!=0:    #匹配变量a为整数,且为奇数
        print(b,"是奇数")

循环语句

反复执行某段代码,直到满足某种条件为止,称为循环语句.

循环语句分为两种: 迭代循环和条件循环.

  • 迭代循环: 迭代循环是最常见的循环语句,用于重复执行某段代码.如for循环.
  • 条件循环: 条件循环是根据条件判断是否继续执行循环,直到条件满足为止.如while循环.

while循环

while循环是最基本的循环语句,用于重复执行某段代码,直到条件表达式为False为止.

while 条件表达式:
    循环体 

当条件表达式为True时,执行循环体,然后再次判断条件表达式,如果还是True,则继续执行循环体,否则退出循环.

相当于汉语的”当…时,重复…”

注意: while语句后面必须要有冒号(:), 在使用while循环时,一定要保证循环体内的变量的变化能影响到条件表达式的判断, 即存在退出循环的条件, 否则会导致死循环.

for循环

for循环是迭代循环,一般运用在循环次数已知的情况下,用于重复执行某段代码,直到迭代对象中的元素全部被遍历为止.

for 变量 in 可迭代对象:
    循环体

其中变量是循环的临时变量,可迭代对象是需要循环的对象,如列表、元组、字符串等.

应用场景:

1.进行数值循环

如实现1到100的累加:

sum=0
for i in range(1,101):
    sum+=i
print(sum)

`

这里用到了range()函数,用于生成一个序列,序列的第一个参数是起始值(可以省略, 省略默认为0), 第二个参数是终止值(不能省略),第三个参数是步长即两个数之间的间隔,默认步长为1.

如果只有一个参数,则表示指定的是end, 则生成从0开始的序列.如果有两个参数,则表示指定的是start和end, 则生成从start开始的序列, 步长为1.只有三个参数都指定时, 则生成从start开始的序列, 步长为step.

2.遍历字符串

如实现字符串的循环:

s="hello world"
for c in s:
    print(c)

这里用到了字符串的遍历, 即依次访问字符串中的每个字符并打印.

for语句还可以用来迭代列表元组等, 后续会详细介绍.

循环语句的嵌套

前面介绍的循环语句都可以互相嵌套.

如while循环嵌套while循环:

while 条件表达式1:
    while 条件表达式2:
        循环体

如for循环嵌套for循环:

for 变量1 in 可迭代对象1:
    for 变量2 in 可迭代对象2:
        循环体

如while循环嵌套for循环:

while 条件表达式:
    for 变量 in 可迭代对象:
        循环体

如for循环嵌套while循环:

for 变量 in 可迭代对象:
    while 条件表达式:
        循环体

循环语句的退出

当循环条件一直满足时, 程序会一直执行循环体, 这称为死循环. 如果希望在中间离开循环也就是在for循环结束计数前或者while循环条件不满足时退出循环, 以下两种方法可以做到:

  • 使用break语句: break语句可以提前退出循环, 后续的循环体不会再执行.
  • 使用continue语句: continue语句可以提前结束本次循环, 然后继续执行下一次循环.

break语句

break语句可以提前退出循环, 后续的循环体不会再执行.

如果使用嵌套循环, 则break语句只会退出当前的循环, 不会影响嵌套循环.

在while语句中使用break语句:

while 条件表达式:
    循环体
    if 退出条件:
        break

在for语句中使用break语句:

for 变量 in 可迭代对象:
    循环体
    if 退出条件:
        break

continue语句

continue语句没有break语句强大,它只能终止本次循环而提前进入下一次循环.

如果使用嵌套循环, 则continue语句只会影响当前的循环, 不会影响嵌套循环.

在while语句中使用continue语句:

while 条件表达式:
    循环体
    if 退出条件:
        continue

在for语句中使用continue语句:

for 变量 in 可迭代对象:
    循环体
    if 退出条件:
        continue

例如, 计算100以内所有的奇数之和:

sum=0
for i in range(1,101):
    if i%2==0:
        continue
    sum+=i
print(sum)

这里用到了continue语句, 即如果i为偶数, 则跳过本次循环, 继续执行下一次循环.

pass语句

pass语句是空语句, 用于占位, 一般用在需要编写代码但还未编写的位置, 方便后续补充.

本文为2305拾柒原创.
文章作者:拾 柒
文章链接:Python |7—流程控制语句
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议. 转载请注明来自拾 柒
如果觉得有用,可以分享出去~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇