程序的组织结构(计算机的流程控制)
任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组成。 程序的组织结构包含以下三种:
1.顺序结构
程序从上到下顺序地执行代码,中间没有任何的判断和跳转,知道程序结束 例:“把大象放进冰箱一共分几步”
例:“把大象放进冰箱一共分几步”
print('1.把大象门打开')
print('2.把大象放进冰箱')
print('3.把冰箱门关上')
1.把大象门打开
2.把大象放进冰箱
3.把冰箱门关上
2.选择结构:if语句
程序根判断条件的布尔值选择性地执行部分代码,明确的让计算机知道在什么条件下,该去做什么。选择结构包含以下六种:
1.单分支结构
中文语义:如果…就…
语法结构:if 条件表达式:
条件执行式 例:
money=1000
s=int(input('请输入取款金额'))
请输入取款金额600
if money>= s:
money=money-s
print('取款成功,余额为:',money)
取款成功,余额为: 400
2.双分支结构
二选一执行
中文语义:如果…不满足…就… (二选一执行)
语法结构:if条件表达式:
条件执行体1
else:
条件执行体2 例:从键盘输入一个整数,编写程序让计算机判断是奇数还是偶数
num=int(input('请输入一个整数'))
请输入一个整数8
if num%2==0:
print(num,'是偶数')
else:
print(num,'是奇数')
8 是偶数
3.多分支结构
多选一执行,常用于解决连续的区间段问题
中文语义:身高在180以上吗? 不是
身高在170-180之间吗? 不是
身高在160-170之间吗?不是
身高在150-160之间吗?不是
身高在150以下吗? 是
语法结构:if 条件表达式1: (条件表达式的为True,就不会往下继续执行了,条件表达式1为False,就会继续往下执行2)
条件执行体1
elif条件表达式2:
条件执行体2
elif条件表达式N:
条件执行式N
[else:] (方括号的else是可以省略的,可写可不写)
条件执行体N+1 例:从键盘录入一个整数成绩90-100 A 80-89 B 70-79 C 60-69 D 0-59 E 小于0或大于100 为非法数据(不在范围內)
score=int(input('输入一个成绩:'))
输入一个成绩:98
if score>=90 and score<=100:
print('A级')
elif score>=80 and score<=89:
print('B级')
elif score>=70 and score<=79:
print('C级')
elif score<=60 and score<=69:
print('D级')
elif score>=0 and score<=59:
print('E级')
else:
print('对不起,成绩有误,不在有限范围')
A级
4.嵌套if
语法结构:
if 条件表达式1: #外分支结构条件表达式
if 内层条件表达式1: #内分支结构条件表达式,只有外分支结构的条件表达式1为True,才能执行此行
内存条件执行体1 #内分支结构条件执行式
else:
内存条件执行体2
else:条件执行体 #外分支结构的条件执行式,当外分支结构的条件表达式为False的时候,执行此行
例:会员 >=200 8折
>=100 9折
不打折
非会员 >=200 9折
不打折
例1:会员
answer=input('您是会员吗?y/n')
money=float(input('请输入您的购物金额'))
您是会员吗?y/ny
请输入您的购物金额300
if answer=='y':
if money>=200:
print('打8折,付款金额为:',money*0.8)
elif mone>=100:
print('打9折,付款金额为:',money*0.9)
else:
if money>=200:
print('打9.5折,付款金额:',money*0.95)
else:
print('不打折,付款金额:',money)
打8折,付款金额为: 240.0
例2:非会员
answer=input('您是会员吗?y/n')
money=float(input('请输入您的购物金额'))
您是会员吗?y/nn
请输入您的购物金额300
if answer=='y':
if money>=200:
print('打8折,付款金额为:',money*0.8)
elif mone>=100:
print('打9折,付款金额为:',money*0.9)
else:
if money>=200:
print('打9.5折,付款金额:',money*0.95)
else:
print('不打折,付款金额:',money)
打9.5折,付款金额: 285.0
5.条件表达式
条件表达式是 :if…else的简写
语法结构:X if 判断条件 else Y
运算法则:如果判断条件的布尔值为True,条件表达式的返回值为X,否则条件表示的返回值为False
例:从键盘录入两个整数,比较两个整数的大小
num_a=int(input('请输入一个整数'))
num_b=int(input('请输入一个整数'))
请输入一个整数10
请输入一个整数20
if num_a>=num_b:
print(num_a,'大于等于',num_b)
else:
print(num_a,'小于',num_b)
10 小于 20
条件表达式的写法(简化代码),也就是if…else的简写写法如下:
print(str(num_a)+'大于等于'+str(num_b) if num_a>=num_b else str(num_a)+'小于'+str(num_b))
10小于20
6.pass语句
语句什么都不做,只是一个占位符,用在语法上需要语句的地方
什么时候使用:先搭建语法结构,还没想好代码怎么写的时候
哪些语句一起使用:
if语句的条件执行体
for-in语句的循环体
定义函数时的函数体
answer=input('您是会员吗?y/n')
if answer=='y':
pass
else:
pass
您是会员吗?y/ny
3.循环结构:while语句、for in语句
反复做同一件事情的情况,称为循环
循环结构的流程图
循环的分类:while
for-in
while循环语法机构:
while 条件表达式:
条件执行式(循环体)
选择机构的if与循环结构while的区别: if是判断一次,条件为True执行一行 while是判断N+1次,条件为True执行N次
a=1
while a<10:
print(a)
a+=1
1
2
3
4
5
6
7
8
9
while循环的执行流程
四部循环法:
初始化变量
条件判断
条件执行体(循环体)
改变变量 (初始化变量与条件判断的变量与改变的变量为同一个)
while循环的执行流程
例:计算0到4之间的累加和
sum=0
a=0
while a<5:
sum+=a
a+=1
print('和为',sum)
和为 10
例:计算0-100之间的偶数和
sum=0
a=1
while a<=100:
if a%2==0:
sum+=a
a+=1
print('1-100之间的偶数和',sum)
1-100之间的偶数和 2550
for-in 循环
in表达从(字符串、序列等)中依次取值,又称为遍历
for-in遍历的对象必须是可迭代对象
for-in 语法结构
for 自定义变量 in 可迭代对象:
循环体
for-in的执行图
循环体内不需要访问自定义变量,可以将自定义变量替代为下_线
for item in 'Python':
print(item)
P
y
t
h
o
n
for i in range(10):
print(i)
0
1
2
3
4
5
6
7
8
9
如果在循环中不需要使用自定义变量,可将自定义变量写为“_”
for _ in range(5):
print('我爱学习')
我爱学习
我爱学习
我爱学习
我爱学习
我爱学习
例:使用for循环计算1-100之间的偶数和
sum=0
for a in range(1,101):
if a%2==0:
sum+=a
print('1-100之间偶数和:',sum)
1-100之间偶数和: 2550
4.流程控制语句break
用于结束循环结构,通常与分支结构if一起使用
for …in … :
......
if ... :
break
while(条件):
......
if ... :
break
例:从键盘录入密码,最多录入3次,如果正确就结束循环
例1.(for … in…)输入三次不正确就结束循环
for item in range(3):
pwd=input('请输入密码:')
if pwd=='888':
print('密码正确')
break
else:
print('密码不正确')
请输入密码:999
密码不正确
请输入密码:777
密码不正确
请输入密码:666
密码不正确
例2.(for ... in...)输入正确就结束循环
for item in range(3):
pwd=input('请输入密码:')
if pwd=='888':
print('密码正确')
break
else:
print('密码不正确')
请输入密码:888
密码正确
例3.用(while)输入三次不正确就结束循环
a=0
while a<3:
pwd=input('请输入密码:')
if pwd=='888':
print('密码正确')
break
else:
print('密码不正确')
a+=1
请输入密码:777
密码不正确
请输入密码:999
密码不正确
请输入密码:666
密码不正确
例4.用(while)输入正确就结束循环
a=0
while a<3:
pwd=input('请输入密码:')
if pwd=='888':
print('密码正确')
break
else:
print('密码不正确')
a+=1
请输入密码:888
密码正确
5.流程控制语句continue
用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用
for … in …:
......
if ... :
continue
...
while(条件):
......
if ... :
continue
...
例:要求输出1到50之间所有5的倍数,5,10,15,20…
for item in range(1,51):
if item%5!=0:
continue
print(item)
5
10
15
20
25
30
35
40
45
50
6.else语句
与else语句配合使用的三种情况( if ,else ,while )
if…:
.....
else:
......
1. if条件表达式不成立时执行else
while…:
......
else:
......
for…:
......
else:
......
2.与while,for搭配使用,没有碰到break时执行else
例1:与for搭配使用时,遇到break
for item in range(3):
pwd=input('请输入密码:')
if pwd=='888':
print('密码正确')
break
else:
print('密码不正确')
else:
print('对不起,三次密码均错误')
请输入密码:888
密码正确
for item in range(3):
pwd=input('请输入密码:')
if pwd=='888':
print('密码正确')
break
else:
print('密码不正确')
else:
print('对不起,三次密码均错误')
请输入密码:777
密码不正确
请输入密码:666
密码不正确
请输入密码:999
密码不正确
对不起,三次密码均错误
例2.与while搭配使用时,遇到break
a=0
while a<3:
pwd=input('请输入密码')
if pwd=='888':
print('密码正确')
break
else:
print('密码不正确')
a+=1
else:
print('对不起,三次密码均错误')
请输入密码888
密码正确
a=0
while a<3:
pwd=input('请输入密码')
if pwd=='888':
print('密码正确')
break
else:
print('密码不正确')
a+=1
else:
print('对不起,三次密码均错误')
请输入密码777
密码不正确
请输入密码999
密码不正确
请输入密码666
密码不正确
对不起,三次密码均错误
7. 嵌套循环
循环结构中又嵌套了另外的完整的循环结构,其中内层循环作为外层循环的循环体执行
例:输出一个三行四咧的矩形
for i in range(1,4):
for i in range(1,5):
print('*',end='\t')
print()
* * * *
* * * *
* * * *
for i in range(1,10):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')
print()
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
8.二重循环中的break和continue
二重循环中的break和contiue用于控制本层循环
流程控制语句break与continue在二重循环中的使用
例:
for i in range(5):
for j in range(1,10):
if j%2==0:
break
print(j)
1
1
1
1
1
for i in range(5):
for j in range(1,10):
if j%2==0:
continue
print(j,end='\t')
print()
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
小白学python的学习笔记,后续持续更新,敬请关注!共同学习进步,有问题的地方欢迎评论区留言讨论!点赞是我更新的动力,哈哈~~
下期见伙计们
|