编程中控制代码执行流程的三种基本结构顺序结构、选择结构和循环结构。
1.顺序结构
顺序结构是最基本的编程结构,它按照代码的书写顺序,从上到下依次执行。没有使用任何控制流程语句,如if
、for
、while
等。顺序结构通常用于执行一系列不需要条件判断或循环的简单操作。
2.选择结构
选择结构允许程序根据条件选择不同的执行路径。Python中选择结构是if
语句。if
语句根据条件是否为真来决定是否执行特定的代码块。if
语句用于在满足特定条件时执行一段代码。可以与 elif
(else if 的缩写)和 else
结合使用。
单分支
...(正常的顺序结构)
if 条件语句:
pass#代表有内容,但是现在还没写,不影响程序运行
#满足条件时执行
...(正常的顺序结构)
双分支
...(正常的顺序结构)
if 条件语句:
pass
#满足条件语句时执行
else:
pass
#不满足条件语句时执行
....(正常的顺序结构)
多分支
...(正常的顺序结构)
if 条件语句1:
pass
#满足条件语句1时执行
elif 条件语句2:
pass
#不满足条件语句1,满足条件语句2时执行
elif 条件语句3:
pass
#不满足条件语句1,2,满足条件语句3时执行
...(多个elif语句)
else:
pass
#不满足以上条件时执行
(else语句可写可不写)
....(正常的顺序结构)
pass关键字
在编程语言中,pass
是一个特殊的关键字,它用于占位或作为空操作符。当语法上需要一个语句但程序逻辑不需要任何操作时,可以使用 pass。
if-elif-else实例
age = 18
if age >= 18:
print("成年人")
elif age >= 13:
print("青少年")
else:
print("儿童")
score = 85
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("F")
三元运算符
三元条件运算符是一种简洁的方式来表达 if-else
逻辑。
status = "pass" if score >= 60 else "fail"
print(f"考试结果: {status}")
3.循环结构
循环结构允许程序重复执行一段代码,直到满足某个条件。有两种主要类型的循环结构:for
循环和while
循环。
for循环
通常用于遍历序列(如列表、元组、字符串等)或迭代范围(使用range()
函数)。for
循环知道循环的结束条件。
for 变量 in 序列:
循环体
else:#else可写可不写
#for循环正常结束时执行
for i in range(a, b, c):
循环体
range()函数
① Iterable可迭代类型
Iterable是Python中可以被迭代的对象,即拥有 __iter__()
或 __getitem__()
方法的对象。常见的可迭代类型包括列表(list)、元组(tuple)、字典(dict)、集合(set)和字符串(str)。此外,文件对象和生成器也是可迭代的,在for 循环中当作序列遍历。
#遍历数组
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
print(site)
#依次输出0-10
for i in range(10):
print(i)
② for两种常见形式
-
基本形式:
for item in iterable: # 处理 item
-
带索引的形式:
for index, item in enumerate(iterable): # 使用 index 和 item
③ break与continue
break
语句用于立即退出for
或while
循环,不再执行后续的迭代。continue
语句用于跳过当前迭代的剩余代码,直接开始下一次迭代。
for i in range(10):
if i == 5:
break # 当 i 等于 5 时退出循环
print(i)
for i in range(10):
if i % 2 == 0:
continue # 跳过偶数,不执行下面的打印语句
print(i) # 只打印奇数
④ for与else
for
循环可以与 else
子句一起使用。else
子句将在循环正常结束时执行,即没有遇到 break
导致的退出。如果 for
循环由于 break
而提前退出,则不会执行 else
子句。
for i in range(10):
if i == 5:
break
else:
# 循环没有提前退出时执行
print("循环正常结束。")
如果需要在循环中使用 else
子句,要确保 for
和 else
在同一个缩进级别上。else
子句可以用于在循环完成后执行一些清理工作,或者当循环没有找到想要的元素时执行一些操作。
while循环
根据一个条件来重复执行代码块,直到条件不再为真。while
循环可能不知道循环的结束条件,因此需要在循环内部适当地更新条件。
while 条件语句:
循环体
else:
#while循环正常结束时执行
count = 1
while count <= 5:
print(count)
count += 1 # 重要的是要修改条件变量,否则可能导致无限循环
while
循环的关键点
- 条件测试: 在每次迭代之前,会测试条件是否为
True
。 - 无限循环: 如果条件始终为
True
,循环将变成无限循环。例如,while True:
。 - 控制流语句: 使用
break
可以立即退出while
循环,而continue
可以跳过当前迭代的剩余部分,直接进入下一次迭代。
无限循环的例子
while True:
response = input("你想要继续吗?(y/n):")
if response != 'y':
break
print("你选择继续。")
#这段代码会不断请求用户输入,直到用户输入了 'y' 以外的任何内容
带有 else
子句的 while
循环
while
循环可以与 else
子句一起使用。else
子句将在循环正常结束时执行,即没有遇到 break
导致的退出。如果 while
循环由于 break
而提前退出,则不会执行 else
子句
while not found:
# 寻找某物
if found:
break
else:
# 如果没有找到,执行这里
print("没有找到。")
在这个例子中,如果找到了,循环会通过 break
退出,不会执行 else
子句。如果没有找到,循环会正常结束,然后执行 else
子句中的代码。
4.嵌套
分支嵌套是指在一个条件分支(如 if
语句)内部再使用另一个或多个条件分支,形成一个嵌套结构。这种结构在需要根据多个条件进行复杂决策时非常有用。以下是一些使用分支嵌套的示例:
简单的 if-else
嵌套
x = 10
y = 20
if x > y:
print("x 大于 y")
if x > 15:
print("并且 x 大于 15")
else:
print("x 不大于 y")
if x < 5:
print("并且 x 小于 5")
嵌套在循环中的条件分支
for i in range(1, 6):
if i % 2 == 0:
print(f"{i} 是偶数")
if i == 4:
print("并且 4 是 2 的平方")
else:
print(f"{i} 是奇数")
注意事项
- 当使用嵌套分支时,确保逻辑清晰,避免过度嵌套,这可能会导致代码难以阅读和维护。
- 适当使用缩进和注释可以帮助理解嵌套的逻辑。
- 在某些情况下,可以使用更高级的控制结构或设计模式来简化复杂的嵌套条件。