Python三大结构

发布时间 2023-03-24 21:15:30作者: XuShuo_Self

顺序结构

一般的Python代码都是使用的顺序结构,顺序结构即从上往下依次执行代码。

graph LR S(开始执行) --> E(结束执行)

代码示例:

print("Hello, World!")
def sayHi():
	print('Hi')
sayHi()

分支结构

在Python中,判断(if、elif、else)与异常捕获(try、except、else、finally)都是用的分支结构,分支结构会根据具体情况选择不同的执行代码。

graph LR S(开始执行) -->N1{情况1}--> E1(结束执行1) S(开始执行) -->N2{情况2}--> E2(结束执行2) S(开始执行) -->N3{情况3}--> E3(结束执行3)

单分支结构

if就是单分支结构。

graph LR S(开始执行) -->N1{是否符合if情况}--是--> E1(执行if语句)
if 条件:
	执行代码

代码示例:

if True:
	print('Hello World')

双分支结构

if-else就是双分支结构。

graph LR S(开始执行) -->N1{是否符合if情况}--是--> E1(执行if语句) N1{是否符合if情况}--否--> E2(执行else语句)
if 条件:
	执行代码
else:
	执行代码

代码示例:

if 1+1==2:
	print('一加一等于二')
else:
	print('一加一不等于二')

同时,双分支结构还有一种紧凑格式:表达式1 if 条件 else 表达式2。条件成立则表达式1,条件不成立就表达式2。
代码示例:

print('一加一等于二') if 1+1==2 else print('一加一不等于二')
print('一加一等于二' if 1+1==2 else '一加一不等于二')

值得注意的是,赋值等语句不算是表达式,也就是说name = 'value1' if True else name='value2'语句是错误的写法(SyntaxError: cannot assign to conditional expression,语法错误:无法分配给条件表达式)。对于赋值,您可以使用name = 'value1' if True else 'value2'的方法使解释器把整个右值当作一个表达式。

多分支结构

if-elif、if-elif-else就是多分支结构。

graph LR S(开始执行) -->N1{是否符合if情况}--是--> E1(执行if语句) N1{是否符合if情况}--否--> N2(是否符合elif情况)--是-->E2(执行elif语句) N2--否-->E3(执行else语句)
if 条件1:
	执行代码
elif 条件2:
	执行代码
else:
	执行代码

代码示例:

if 1+1==1:
	print('一加一等于一')
elif 1+1==2:
	print('一加一等于二')
else:
	print('一加一既不等于一也不等于二')

循环结构

在Python中,for循环(遍历循环)及while循环(条件循环)就是循环结构,循环结构会将某一段程序重复执行。

graph LR S(开始执行) -->E(循环代码)-->E2{是否结束循环} E2--是-->EE(结束执行) E2--否-->E

for循环(遍历循环)

for 局部变量名 in 可迭代对象:
	执行代码

代码示例:

nums = [0,1,2,3,4,5]
for num in nums:
	print(num)

while循环(条件循环)

while 条件:
	执行代码

代码示例:

while True:
	print('无限循环!')
while 1+1==3:
	print('看来一加一不等于三,所以无法输出...')

退出循环

  • continue:退出当次循环,进入到下次循环
  • break:退出当前循环,执行下一段命令
  • for-elsewhile-else:如果在循环体中未使用break,则会执行else语句(如下)
for i in range(5):
    ...
else:
    print('没有用break')

for i in range(5):
    break
else:
    print('用了break')

(最终只打印“没有用break”)