前言:
此时你们对“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程序的三种基本控制结构