目录
一、顺序结构
二、分支结构(选择结构)
1.单分支结构
2.双分支结构
3.多分支语句
4.if语句的嵌套
三、循环结构
1.for循环
2.while循环
3.循环嵌套
四、break和continue
1.break语句
2.continue语句
在Python里,在处理一些工程的时候,需要在程序内部进行诸如判断、循环之类的处理。在这种情况下有的时候需要进行不止一次的“控制结构”,即有的时候要用到所谓的“嵌套”结构。有的时候嵌套会存在单一嵌套和多维嵌套等。
在程序流程控制中,我们难免会使用到条件语句,也就是条件表达式,在(一)程序设计基础中,“比较运算符”中介绍。
程序流程结构可以分为以下几种:
顺序结构:程序按照代码书写的顺序依次执行。
分支结构:根据条件来执行不同的代码块,包括if语句和else语句等。
循环结构:重复执行某一段代码,包括for循环和while循环。
跳转结构:用于跳出某一层循环或者函数返回值,包括break、continue以及return。
顺序结构是一种程序控制结构,指程序执行时按照代码所写的顺序,依次执行每个语句或表达式。
在顺序结构中,每一条语句都必须按照特定的顺序执行,直到执行完所有的语句为止。
在 Python 中,程序默认从上到下依次执行每条语句,如果要让程序按照特定的顺序执行语句,只需要按照需要的顺序编写代码即可。
顺序结构不仅简单易懂,而且通常执行效率高,但它无法实现程序中复杂的控制逻辑,例如循环、条件判断等。
在实际开发中,顺序结构需要与其他类型的结构(例如选择结构和循环结构)配合使用,以实现更加复杂的程序功能。
分支结构(选择结构)是一种用于判断选择的结构类型。
一般包括三个语句“if”、“else”、“elif”。
可以分为三种结构:单分支结构,双分支结构,多分支结构。
单分支结构依托一个if 语句来实现。
if 语句用来判断一个条件是否成立,如果成立则执行相应的代码块。if 语句的语法格式如下:
if 判断条件:
执行语句块
例如:
num = 10
if num > 0:
print("num大于0")
上面的代码中,如果num变量的值大于0,则打印"num大于0"。这里if语句后面的条件判断为num > 0,如果该条件成立,则会执行缩进的print语句。如果条件不成立,则该语句块不会执行。
双分支结构依托if-else语句实现,根据条件满足与否执行不同的代码块。
if 判断条件:
执行语句块1
else:
执行语句块2
上面的代码中,如果满足if的条件,则打执行语句块1;否则执行语句块2。if-else语句后面的代码块必须缩进,以表示其属于if或else语句的代码块。
需要注意的是,if和else语句中只有一个会被执行,取决于条件的结果。这种结构也可以称为二选一结构,因为只能在两个可能的结果中选择一个结果。
例如:
num = 10
if num > 0:
print("num大于0")
else:
print("num小于等于0")
上面的代码中,如果变量num的值大于0,则打印"num大于0";否则打印"num小于等于0"。if-else语句后面的代码块必须缩进,以表示其属于if或else语句的代码块。
多分支语句依托if-elif-else语句实现,可以用来判断多个条件,并根据不同的条件执行不同的代码块。
if 判断条件1:
执行语句块1
elif 判断条件2:
执行语句块2
elif 判断条件3:
执行语句块3
...
else:
执行语句块n
上面的代码中,如果判断条件1成立,则执行语句块1;如果判断条件1不成立,判断条件2是否成立,如果成立则执行语句块2;以此类推,直到最后一个条件,如果所有条件都不成立,则执行语句块n。
请注意,在多分支结构中,if 和 elif 语句后面的代码块分别在满足对应的条件时执行,但是该语句中只有一个会被执行,取决于条件的结果。如果所有条件都不满足,将执行 else 语句后面的代码块(如果有)。
例如:
score = 90
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print("您的成绩等级为:", grade)
在这个程序中,变量的值为90。程序使用if和 elif语句来检查此值是否大于或等于90、80、70 或 60。只有第一个匹配的条件会被执行,因此在这个程序中,执行的是第一个 if 语句。如果变量的值为80,那么程序将会执行 elif score >= 80 条件对应的代码块,打印出"B"。
嵌套 if 语句是指在 if 语句中嵌套另外的 if 语句(可以不止一个,可以多层嵌套),用于更复杂的条件判断,如下介绍最简单的双层嵌套。
if 判断条件1:
执行语句块1
if 判断条件2:
执行语句块2
else:
执行语句块3
else:
执行语句块4
其中,如果判断条件1成立,则执行语句块1,并判断判断条件2是否成立,如果成立则执行语句块2,否则执行语句块3;如果判断条件1不成立,则执行语句块4。
例如:
x = 10
y = 5
z = 3
if x > y:
if x > z:
print("x 是三个数中最大的数")
else:
print("z 是三个数中最大的数")
else:
if y > z:
print("y 是三个数中最大的数")
else:
print("z 是三个数中最大的数")
在这个示例程序中,我们比较了三个变量 x、y 和 z 的值,并找出了它们中的最大值。首先,第一个if语句检查x是否大于y,如果是,则进入内部if语句。内部if语句再次检查x是否大于z,如果是,则打印出"x 是三个数中最大的数"。否则,内部else语句打印出"z 是三个数中最大的数"。如果第一个if语句不成立,则执行外部else语句,该语句中的 if-else 语句检查 y 和 z 的大小。如果 y 大于 z,则打印出"y 是三个数中最大的数",否则打印出"z 是三个数中最大的数"。
值得注意的是,Python 中的分之语句需要一定要缩进正确,以确保代码块的层次结构正确。这在编写复杂的代码时尤其重要。
注:
if 1<=a<=3
相当于if a in range(1,4)
在Python中,循环结构可以使某些代码块重复执行多次,以便处理大量数据或使程序更加简洁。Python 提供了两种循环结构:for循环和 while循环。
在 Python 中,使用for循环对序列(如列表、元组、字符串等)或其他可迭代对象进行迭代或遍历,执行固定次数的操作或是迭代字典中的键值对。循环语句会执行循环体内的代码,针对序列中的每个元素,执行指定的操作。
for var in sequence:
# 执行的代码块
其中,var
是变量名,表示序列中的当前元素,在每次循环中被重新赋值;sequence
是要循环遍历的序列或其他可迭代对象。
在Python中,for
循环可以用于遍历以下类型的对象:
# 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
# 遍历字典
colors = {"red": 1, "blue": 2, "green": 3}
for color in colors:
print(color)
#遍历元组
numbers = (1, 2, 3, 4)
for number in numbers:
print(number)
#遍历集合
my_set = {1, 2, 3, 2}
for x in my_set:
print(x)
#遍历字符串
s = "Hello, world!"
for c in s:
print(c)
在遍历数值时,需要借助使用range()
函数生成一系列数字,然后使用 for
循环遍历这些数字。range()
函数有三种参数形式:
range(stop)
:返回一个从 0 开始到 stop-1 的数字序列;range(start, stop)
:返回一个从 start 开始到 stop-1 的数字序列;range(start, stop, step)
:返回一个从 start 开始,每次增加 step,直到 stop-1 的数字序列。# 遍历数字序列1
for i in range(5):
print(i,end=" ")
#输出0 1 2 3 4
# 遍历数字序列2
for j in range(1, 10):
print(j,end=" ")
#输出1 2 3 4 5 6 7 8 9
# 遍历数字序列3
for j in range(1, 10, 2):
print(j,end=" ")
#输出1 3 5 7 9
# 遍历数字序列4
for k in range(10, 0, -1):
print(k,end=" ")
#输出10 9 8 7 6 5 4 3 2 1
while
循环可以重复执行一个代码块,直到指定的条件不满足为止。
while 条件语句:
语句块
在执行 while
循环时,首先检查条件语句是否满足,如果为 True
就执行语句块,然后再次检查条件语句的值,如此反复直到条件语句的值为 False
为止。
例如:
# 计算 1 到10 的和
sum = 0
i = 1
while i <= 10:
sum += i
i += 1
print("1 到 10 的和为:", sum)
在这个例子中,while
循环重复执行了两个语句块,即 sum += i
和 i += 1
,直到变量 i
这个计数器的值大于 10 为止。需要注意的是,在 while
循环中必须确保循环条件最终会变为 False
,或者适时调用break,否则会出现无限循环的情况。
循环嵌套是指在一个循环语句内部嵌套了另一个完整的循环语句。Python 支持使用 for
和 while
关键字进行循环嵌套。
循环嵌套可以在处理复杂问题时提供更多的灵活性,能够让我们更好地组合和重复使用代码,具有非常广泛的应用场景。但是需要注意的是,如果层数过多或者循环次数过大,循环嵌套可能会导致程序执行效率降低。
例如:
# 打印九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print('{}×{}={}\t'.format(j, i, i*j), end='')
print()
在这个例子中,利用 for
循环嵌套遍历了九九乘法表中的所有元素,并打印出每个元素的值。外层循环控制行数,内层循环控制列数,通过适当地调整循环变量的取值范围和步长,即可生成不同大小、不同形式的乘法表。
需要注意的是,在循环嵌套中还可以使用 break
和 continue
等控制流语句来改变循环的执行方式。当出现嵌套循环时,需要注意循环变量的命名和作用范围,避免出现不必要的误解或错误。
在 Python 的循环语句中,break
和 continue
是两种控制循环流程的关键字,它们可以帮助我们在特定条件下改变循环的执行方式。
break
语句用于在循环中立即停止并退出循环,跳转到循环外的下一条语句。在编写循环时,有时我们需要在满足某些条件时提前结束循环,这时可以使用 break
语句来实现。
while 条件语句1:
语句块1
if 条件语句2:
break
在执行 while
循环时,首先检查条件语句的值,如果为 True
就执行循环体内的语句块,如果在执行循环体内的某条语句时,条件变为 True
,就会执行 break
语句,跳出循环并执行循环外的下一条语句。
例如:
# 找到第一个大于 100 的数
numbers = [1, 32, 56, 78, 102, 45, 67, 88]
for num in numbers:
if num > 100:
print("Found:", num)
break
在这个例子中,利用 for
循环遍历了一个整数列表,寻找其中第一个大于 100 的数。当找到符合条件的数时,执行 break
语句退出循环,并打印出找到的结果。
注意,如果循环执行完毕仍然没有找到符合条件的数,则不会执行 break
语句。
continue
语句用于跳过当前循环中的剩余语句,直接进入下一次循环。在编写循环时,有时我们需要在某些特定条件下跳过部分循环体内的语句,这时可以使用 continue
语句来实现。
while 条件语句1:
语句块
if 条件语句2:
continue
在执行 while
循环时,首先检查条件语句1的值,如果为 True
就执行循环体内的语句块,如果在执行循环体内的某条语句时,条件变为 True
,就会执行 continue
语句,跳出该次循环直接进入下一次循环。
例如:
for i in range(1, 11):
if i % 2 == 0:
continue
print(i)
上述代码使用 range()
函数生成一个从 1
到 10
的数列,并对其中的每个数进行判断。如果当前数可以被 2
整除,即为偶数,则执行 continue
语句,直接跳过本次循环中的剩余语句(这里只有一个 print()
函数),然后进入下一次循环。否则,执行 print()
函数打印当前数的值。
注意,如果循环执行完毕仍然没有找到符合条件的数,则不会执行 continue
语句。