一、程序流程图
程序流程图是一种表达程序控制结构的方式,主要用于关键部分的程序分析和过程描述,由一系列图形、流程线和文字说明等组成。流程图对程序的描述最为直观,这里仅使用这种形式介绍 3 种控制结构的基本和扩展含义。
顺序结构:
说白了就是代码依次执行。
chinese = float(input("请输入语文成绩:"))
math = float(input("请输入数学成绩:"))
avg = (chinese+math)/3
print("平均成绩为:{:2f}".format(avg))
流程图:
程序的分支控制结构
1.单分支结构
分支结构是程序根据条件判断结果而选
择不同向前执行路径的一种运行方式。
if <条件>:
<代码块>
n = eval(input("请输入一个整数: "))
s = 0
if n>=5:
n -= 1
s = 4
if n<5:
n -= 1
s = 3
print(s)
print(n)
2.二分支结构
语句 1 是在条件为真时执行,语句 2 是在条件为假时执行
if <条件>:
<代码块 1>
else:
<代码块 2>
s = eval(input("请输入一个整数:"))
if s % 2 == 0:
print("{}可以被 2 整除".format(s))
else:
print("{}不可以被 2 整除".format(s))
3.多分支结构
多分支结构一般用于判断同一个条件或一类条件的多个执行路径。依次判断条件并执行对应的语句。若没有条件成立,执行 else 下面的语句。
if <条件 1>:
<代码块 1>
elif <条件 2>:
<代码块 2>
elif <条件 3>:
<代码块 3>
…
else:
<代码块 N>
4.分支嵌套
age = 50
if age < 18:
print("未成年")
else:
if 18 <= age < 30:
print("年轻人")
elif 30 <= age <=60:
print("中年人")
else:
print("老年人")
程序的循环结构
1.while 循环
程序执行 while 语句时,判断条件,若为 True,执行循环体语句,语句结束后返回再次判断条件,直到条件为 False 时,循环终止,执行与while 同级别的后续语句。
while <条件>:
<代码块 1>
<代码块 2>
2.while 循环扩展模式
当 while 循环正常执行之后,程序会继续执行 else 语句中内容。else语句只在循环正常执行之后才执行并结束。
while <条件>:
<语句块 1>
else:
<语句块 2>
3.for 循环
从遍历结构中逐一提取元素,放在循环变量中,对于每个提取的元素执行一次语句块。for语句的循环执行次数是根据迭代器中元素个数确定的。遍历结构可以是字符串、文件、range()函数或其他组合数据类型等。
for <element> in <iterable>:
<block>
for 循环经常和 range()函数一起使用,
基本使用方式如下:
for <循环变量> in range(<循环次数>):
<语句块>
4.for 循环扩展模式
当 for 循环正常执行之后,程序会继续执行 else 语句中内容。else 语句只在循环正常执行之后才执行并结束。
for <element> in <iterable>:
<语句块 1>
else:
<语句块 2>
循环控制语句
continue 语句
用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。
#写个for循环:
for s in "testatest":
if s=="a" or s=='e':
continue
print(s, end='')
#### 输出结果:tsttst
break 语句
用来结束当前循环,即跳出循环体中下面尚未执行的语句,并跳出当前循环。
for s in "testatest":
if s=="a" or s=='e':
break
print(s, end='')
#### 输出结果:te
三、程序的异常处理
实际编程中,程序一般对输入有一定的要求,当实际输入不满足程序要求时,可能会
产生程序的运行错误。
try…except…
try:
可能会发生异常的代码,先执行以下试试看
except <异常类型>:
如果 try 中代码抛出异常并被 except 捕获,执行此处代码
s = input("Please input number:")
while True:
try:
s = int(s)
print(s)
break
except ValueError:
print("Please input a number!")
s = input("Please input number:")
try…except…else…
try:
可能会发生异常的代码,先执行以下试试看
except <异常类型>:
如果 try 中代码抛出异常并被 except 捕获,执行此处代码
else:
如果 try 中代码没有抛出异常,执行此处代码
s = input("Please input number:")
while True:
try:
s = int(s)
print(s)
break
except ValueError:
print("Please input a number!")
s = input("Please input number:")
else:
print("Success!")
try…except…finally…
try:
可能会发生异常的代码,先执行以下试试看
except <异常类型>:
如果 try 中代码抛出异常并被 except 捕获,执行此处代码
else:
如果 try 中代码没有抛出异常,执行此处代码
finally:
无论 try 中代码是否抛出异常,都会执行此处代码
s = input("Please input number:")
while True:
try:
s = int(s)
print(s)
break
except ValueError:
print("Please input a number!")
s = input("Please input number:")
else:
print("Success!")
finally:
print("End!")
捕捉多种异常的异常处理结构
实际开发中,同一段代码可能会抛出多种异常,并且针对不同异常进行相应的处理。
使用语法为:
try:
可能会发生异常的代码,先执行以下试试看
except <异常类型1>:
如果 try 中代码抛出异常并被 except 捕获,执行此处代码
except <异常类型2>:
如果 try 中代码抛出异常并被 except 捕获,执行此处代码
except <异常类型3>:
如果 try 中代码抛出异常并被 except 捕获,执行此处代码
s = input("Please input number:")
while True:
try:
s = int(s)
print(s)
break
except ValueError:
print("Please input a number!")
s = input("Please input number:")
except NameError:
print("Please input a number!")
s = input("Please input number:")
except TypeError:
print("Please input a number!")
s = input("Please input number:")
`