龙空技术网

Python的程序控制结构

但求无Bug 836

前言:

此时你们对“python程序的三种基本控制结构”可能比较关切,大家都想要剖析一些“python程序的三种基本控制结构”的相关文章。那么小编在网摘上收集了一些对于“python程序的三种基本控制结构””的相关文章,希望同学们能喜欢,你们一起来学习一下吧!

一、概述

对于编程语言而言,必然会存在对应的程序控制结构。常见的程序控制结构有三种,分别为:顺序结构、分支结构和循环结构。对于顺序结构而言,程序会按照语句声明的顺序依次执行。而分支结构则是按照某种条件选择对应的分支执行;循环则是按某种条件重复执行某些语句。

二、代码块

在说程序控制结构前先简单说一下Python中的代码块。所谓代码块是指使多条语句在逻辑上被当作一个整体的语法。对于大多数编程语言,如:Java、js等,代码块都使用"{"和"}"进行包裹,而在Python中则有些许不同,其使用":"结尾,而逻辑上被看作整体的多条语句则需进行缩径。至于缩径的字符则无所谓,但同一个代码块的语句必须缩径相同。从这点来看,则与yaml语法有些相似。

下面给出一个代码块例子:

# if代码块if 条件:    语句1    语句2# 循环代码块while 循环条件:    语句1    语句2

三、分支结构

对于Python而言,分支结构有if和switch两种。当然,switch分支结构是在Python3.10版本才开始支持。若使用的版本早于该版本,则无法使用switch功能。

3.1 If分支结构

对于If分支结构而言,其又分为多个类型,分别为:if、if-else、if-elif-else等。

3.1.1 if

if会根据指定的条件来决定是否执行对应分支的语句。若条件满足,则执行;若不满足,则忽略。其语法格式为:

if 条件:    语句1    语句2

下面给出示例:

age = int(input("请输入您的年龄:"))if age >= 18:    print("年龄已满18,属于成年人")print("程序执行完毕")

若输入的值大于等于18,则会打印if代码块中的语句,如下:

若输入的值小于18,则不会打印if代码块中的语句,如下:

3.1.2 if-else

对于if-else而言,当if指定的条件满足时,则执行if下的代码块;若不满足,则执行else下的代码块。其语法格式为:

if 条件:    执行语句1else:    执行语句2

下面给出对应的例子:

age = int(input("请输入您的年龄:"))if age >= 18:    print("年龄已满18,属于成年人")else:    print("年龄未满18,属于未成年人")print("程序执行完毕")

当输入的数字大于18时,会输出"年龄已满18,属于成年人",如下:

当输入的数字小于18时,会输出"年龄未满18岁,属于未成年人",如下:

3.1.3 if-elif-else

对于if-elif-else而言,会首先判断if的条件是否满足,若满足则执行if下的语句,若不满足,则开始判断elif指定的条件,满足时执行elif下的语句,不满足则继续判断下一个elif指定的条件。如此循环往复,若判断完所有的elif条件后无法满足,则执行else下的语句。其语法格式为:

if 条件1:    语法1elif 条件2:    语法2    ...else:    语法n

下面给出对应的例子:

score = float(input("请输入您的成绩:"))if 90 < score < 100:    print("A")elif score > 80:    print("B")elif score > 60:    print("C")else:    print("D")

执行结果如下:

3.1.4 if嵌套

if分支结构可进行嵌套,当存在嵌套时,会先判断外层if的条件,当外层条件满足时,会再次判断内层if指定的条件,当两者均满足时,才会执行真正的逻辑判断。其语法格式为:

if 外层条件:    语句1    if 内层条件:        语句2

下面给出对应的例子:

username = input("请输入用户名:")password = input("请输入密码:")if username == "admin":    if password == "123456":        print("验证通过")    else:        print("密码错误,请验证密码是否正确!")else:    print("您不是管理员,无法进行登录")

当输入的用户名为system时,会提示"您不是管理员,无法进行登录",如下:

当输入的用户名为"admin",密码为"123"时,会提示"密码错误,请验证密码是否正确!",如下:

当输入的用户名为"admin",密码为"123456"时,提示"验证通过",如下:

3.1.5 三目运算

对于Python而言,也提供了三目运算符,其格式为:

条件成立时执行的表达式 if 条件 else 条件不成立时执行的表达式

从格式来看,这与Java有所不同,Java中的三目表达式的 格式:

条件 ? 条件成立时执行的表达式 :条件不成立时执行的表达式

下面为对应的例子:

age = int(input("请输入年龄:"))message = "已满18岁,属于成年人" if age >= 18 else "未满18岁,属于未成年人"print(message)

当输入的值大于或等于18时,会提示"已满18岁,属于成年人", 如下:

当输入的值小于18时,会提示"未满18岁,属于未成年人",如下:

3.2 Switch分支结构

对于switch分支结构而言,大部分编程语言都会支持,但对于Python而言,直到Python3.10版本起,才开始支持该分支结构。当然,在Python中使用的关键字并非switch,而是match。其格式为:

match 表达式:    case 值1:        执行语句    case 值2 | 值3 :        执行语句        ...    case _:        缺省语句

需要说明的是,Python则是用case _作为缺省时的情况,而非像其他语言的switch使用default来声明。当然,其存在很多模式,且不存在case穿透的情况。

下面给出对应的例子:

season = "spring"match season:    case "spring":        print("春季")    case "summer":        print("夏季")    case "autumn":        print("秋季")    case "winter":        print("冬季")    case _:        print("无效的季节")

执行结果如下:

当然,对于match而言,有很多种使用模式,这里就不再过多提及。

四、循环结构

对于Python的循环结构而言,其共有两种,分别是:while循环和for循环。这与Java有所不同。在Java中,while循环有while和do-while之分,for循环也有普通for循环和for-each循环之分。但是,在Python就只有while循环和for循环。

4.1 while循环

while循环的语法格式如下:

while 条件:    语句1

下面给出几个例子来演示一下while循环的使用。

计算1-100的累加和

对应的例子如下:

result = 0i = 1while i <= 100:    result += i    i += 1print("100内的所有数字之和为:", result)

执行结果如下:

获取100以内的所有偶数

对应的例子如下:

result = []i = 1while i <= 100:    if i & 1 == 0:        result.append(i)    i += 1print("100内的所有偶数为:", result)

执行结果如下:

求100以内的所有素数

对应的例子如下:

result = []i = 2while i <= 100:    j = 2    while j <= (i / j):        if not i % j:            break        j += 1    if j > (i / j):        result.append(i)    i += 1print("100内的所有偶数为:", result)

执行结果如下:

4.2 for循环

for循环的语法格式如下:

for 临时变量 in 序列:    循环执行语句

下面还是使用上面的几个例子来演示for循环的使用。

计算1-100的累加和

对应的例子如下:

result = 0for i in range(1, 101, 1):    result += iprint("100之内所有数之和为:", result)

执行结果如下:

获取100以内的所有偶数

对应的例子如下:

result = []for i in range(1, 101):    if i & 1 == 0:        result.append(i)print("100内的所有偶数为:", result)

执行结果如下:

求100以内的所有素数

对应的例子如下:

result = []for i in range(2, 101):    j = 2    for t in range(2, (i // j) + 1):        if not i % t:            break        j = t    if j > i / j:        result.append(i)print("100内的所有偶数为:", result)

执行结果如下:

当然,for循环最主要的作用还是用来遍历序列,如下面的例子:

# 遍历列表print("开始遍历列表:")listData = ["Tom", "Jerry", "Spike"]for item in listData:    print(item, end="\t")# 遍历集合print("")print("开始遍历集合:")setData = {1, 2, 3}for num in setData:    print(num, end="\t")# 遍历元组print("")print("开始遍历元组")tupleData = ("a", "b", "c")for ch in tupleData:    print(ch, end="\t")# 开始遍历字典print("")print("开始遍历字典:")dictData = {"name": "Tom", "age": 18, "sex": "男"}for item in dictData.items():    print(item, end="\t")

执行结果如下:

需要说明的是,Python中的字符串也可被当作列表直接进行遍历,如下面的例子:

s = "Hello world"for c in s:    print(c.upper(), end="\t")

执行结果如下:

4.3 循环跳转

对于Python而言,与其他编程语言一样,均提供了break跳转和continue跳转。

4.3.1 break跳转

当使用break关键字控制循环跳转时,会直接退出整个循环。下面为对应的例子:

data = ["Tom", "Jerry", "Spike"]for item in data:    if item == "Jerry":        break    print(item)

执行结果如下:

4.3.2 continue跳转

当使用continue关键字进行循环跳转时,会结束本次循环,开始下一次循环。下面为对应的例子:

data = ["Tom", "Jerry", "Spike"]for item in data:    if item == "Jerry":        continue    print(item)

执行结果如下:

4.4 else

在Python中,循环还可与else进行搭配使用,表示当循环正常结束后需执行的代码。while循环和for循环均可使用。但此时也许大家会有疑问,因为按照执行顺序来说,当循环结束后,之后的代码本来就会被执行,额外整个语法出来是否有点画蛇添足?刚开始我也这么认为,直到使用break关键字后才发现,else代码竟然未执行。此时才有点明白,所谓正常循环结束的含义。想来,break也算到了非正常结束循环的范畴。

下面以for循环为例,演示一下else的使用。至于while循环的使用,大家可举一反三。

4.4.1 正常结束

下面为对应的例子:

data = ["Tom", "Jerry", "Spike"]for item in data:    print(item)else:    print("循环正常结束")

执行结果如下:

4.4.2 break终止循环

下面为使用break终止循环后的示例:

data = ["Tom", "Jerry", "Spike"]for item in data:    if item == "Jerry":        break    print(item)else:    print("循环正常结束")

执行结果如下:

4.4.3 coninue跳过本次循环

下面为使用continue跳过本次循环的示例:

data = ["Tom", "Jerry", "Spike"]for item in data:    if item == "Jerry":        continue    print(item)else:    print("循环正常结束")

执行结果如下:

标签: #python程序的三种基本控制结构