1.程序的流程图
程序流程图用一系列图形,流程线和文字说明描述程序的基本操作和控制流程,它是程序分析和过程描述的最基本方式。
流程图的基本元素包括:
![](https://img2018.cnblogs.com/blog/1557410/201907/1557410-20190712152903180-1260135409.png)
起止框:表示程序逻辑的开始或结束。判断框:表示一个判断条件,并根据判断结果选择不同的执行路径。处理框:表示一组处理过程,对应于顺序执行的程序逻辑。输入输出框:表示程序中的数据输入或结果输出。注释框:表示程序的注释。流向线:表示程序的控制流,以带箭头直线或曲线表达程序的执行路径。连接点:表示多个流程图的连接方式,常用于将多个较小流程图组织成较大流程图。
![](https://img2018.cnblogs.com/blog/1557410/201907/1557410-20190712153525542-1325375893.png)
程序由三种基本结构组成:顺序结构,分支结构和循环结构。任何程序都由这三种基本结构组合而成。基本结构都有一个入口和一个出口。
循环结构是程序根据条件判断结果向后反复执行的一种运行方式, 根据循环体触发条件不同,包括条件循环和遍历循环结构 。
2.顺序结构
顺序结构是程序按照线性顺序依次执行的一种运行方式, 其中语句块1S1和语句块S2表示一个或一组顺序执行的语句 。
![](https://img2018.cnblogs.com/blog/1557410/201909/1557410-20190902095315162-623076249.png)
3.程序的分支结构
(1).单分支结构:if语句
if :
语句块
# 示例:判断用户输入数字的奇偶性
s = eval(input('请输入一个整数:'))
if s % 2 == 0:
print('这是一个偶数')
print('输入数字是:{}'.format(s))
# 条件可以是一个或多个条件,多个条件采用and或or进行逻辑组合,
# and表示多个条件‘与’的关系,
# or表示多个条件'或'的关系,
(2).二分支结构:if-else语句
if 条件:
语句块1 # 语句块1在if中满足条件时,执行
else:
语句块2 # 语句块2在if中不满足条件时,执行
# 更简洁的表达方式:语句块1 if 条件 else 语句块2
# 示例:
username = input('请输入登录账号:')
password = int(input('请输入登录密码:'))
if username == 'admin' and password == 123456:
print('登录成功!')
else:
print('账号或密码错误!')
(3).多分支结构:if-elif-else语句
# 多分支结构通常用于判断同一个条件或一类条件的多个执行路径。
# 多分支结构从上到下依从评估判断条件,寻找并执行第一个结果为True条件对应的语句。
# 示例:将百分制创建转换为五分制成绩
score = eval(input('请输出一个百分制成绩:'))
if score >= 90.0:
grade = 'A'
elif score >= 80.0:
grade = 'B'
elif score >= 70.0:
grade = 'C'
elif score >= 60.0:
grade = 'D'
else:
grade = 'E'
print('成绩等级为:{}'.format(grade))
4.程序的循环结构
(1)遍历循环: for
# 遍历循环可以理解为从遍历结构中逐一提取元素, 放在循环变量中, 对于每个所提取的元素执行一次语句块。
for in :
语句块
# 可以为字符串,文件,range()函数以及组合数据类型等
# 遍历字符串:
for in :
语句块
# 遍历range():
for in range(循环次数):
语句块
# 示例:
for s in 'py':
print('循环执行中:' + s)
else:
s = '循环正常结束'
print(s)
(2).无限循环:while
while :
# 判断条件是否为True,是,则执行语句。语句结束后返回再次判断while语句的条件。
# 当条件为False时,循环终止。
# while语句扩展模式:
while :
else:
# 循环正常执行之后,才执行else下的语句
# 示例:求1-10以内的整数
i = 1
while i 0:
print(x / y)
raise DivisionException(x, y)
except DivisionException as div: # 抛出异常
print('异常DivisionException:x / y = %.2f' % (div.x / div.y))
5.8 assert(断言)
t = 'hello'
assert len(t) >= 2 # 条件为True,不抛出异常
assert len(t) == 1 # 条件为False,断言失败,抛出异常。
6.案例
import random
target = random.randint(1,1000)
count = 0
while True:
try:
guess = eval(input('请输入一个猜测的整数(1至1000): '))
except:
print('输入有误, 请重试, 不计入猜测次数哦! ')
continue
count = count + 1
if guess > target:
print('猜大了')
elif guess |