-
程序的流程结构
-
算法: 算法就是解决一个程序的步骤
算法不唯一,但是有优劣。评价算法的维度:时间复杂度,空间复杂度。(数据结构具体学)
表示算法的方式有很多,最主要的一种是流程图。
符号:圆角矩形----程序的开始/结束。
平行四边形----输入,输出。
直角矩形—处理步骤(运算,赋值)
菱形—判断(bool表达式)
流程线
计算机专家发现,不管多简单多么复杂的算法都可以有顺序结构,选择结构,循环结构组合而成。 -
顺序结构
代码从左到右,从上往下依次执行
写出来的代码都会执行 -
选择结构/条件结构
场景:需要做出选择,做出判断,才知道如何执行。
方式:
单分支结构:
语法:
if条件: 代码块
1) 条件:如果只要是布尔值就可以,所以也叫布尔表达式。可以是变量,关系表达式,逻辑表达式,bool(变量)-----0,0.0,0,空字符串,空字典,空集合,空列表等返回false,其他都返回true。
2)代码块:可以赋值,运算,流程结构。
3)python靠缩进表达代码的层次关系,缩进一般使用tab键。(一个tab 四个字节)
执行顺序:先判断条件,如果条件为true,则执行代码块,否则不执行代码块。
搞清楚代码谁和谁是一层的!!!!
aply = input('笔试通过了吗?')
if aply =='y'
print('明天参加面试')
#输入三个数,求最大值
a= int(input('输入第一个数:'))
b= int(input('输入第二个数:'))
c= int(input('输入第三个数:'))
max =a
if max > b:
max =b
if max < c:
max =c
print(f'最大值是:{max})
双分支结构
语法:
if 条件: 代码块1 else : 代码块2
执行顺序:先判断条件,条件为true 则执行代码1,否则执行代码块2
eg:#模拟QQ登录
account = input('请输入QQ账号;')
pwd = inout('请输入密码:')
if account == '123' and pwd =='123':
print('登录成功')
else:
print(‘账号密码不对’)
简化写法;条件表达式
表达式 1 if条件 else 表达式2
执行顺序:条件为true,表达式的结果就是表达式1,否则整个表达式得结果就是表达式2
#输入一个数,判断奇偶性
num = int(input('请输入一个整数:'))
s ='奇数' if num % 2 == 1 else '偶数'
print(s)
print('奇数',if num %2 ==1 else '偶数')
多分支结构
多重if
语法:
if 条件1: 代码块1 elif 条件2: 代码块2 elif 条件3: 代码块3 else: 代码块4
执行顺序:线判断条件1,如果条件1为ture ,则执行代码块1
否则判断条件2,如果条件2为true,则执行代码块2,
。。。。。
当条件都不成立时,则执行else后面的代码。
场景:一个维度连续区间的多路分支
# 给成绩评级 60以下差,60-80中 80-90良,90以上优
# 一个维度(成绩),特点是连续区间
#自上而下运行
score = int(input('请输入成绩'))
if 0=score > 90:
print('优')
elif score>=80:
print('良')
elif score>=60:
print('中')
else:
print('差')
注:python中关系表达式允许连写0
语法:
if 条件1: if 条件2: 代码块1 else: 代码块3 else: 代码块
场景:多个维度的多路分支
例题
# 超市活动 如果不是会员,消费满100打9折;如果是会员,消费满200打7折,不满200打8折。
# 根据会员及消费金额输出应付金额
# pass 什么都不做,只是一个占位符,代替需要写的语句
# 进行代码建构的时候,还不想写代码,可以使用pass先代替
isVip = input('是否是会员?')
sumMoney = int(input('请输入消费金额:'))
discount=1
if isVip=='y':
if sumMoney>=200:
discount=0.7
else:
discount=0.8
else:
#不是会员
if sumMoney>=100:
discount=0.9
print(f'应该支付{sumMoney*discount}')
switch语句在python没有.



