9月16日
一、if分支结构
1.流程控制 --三种结构
1)顺序结构(默认)
程序执行默认按顺序结构
代码从上往下一条条依次执行,每条代码只执行一次
2)分支结构(if)
可以根据条件的成立和不成立选择执行某段代码(if)
3)循环结构(for/while)
让代码重复执行
2.顺序结构
print(‘你好吗?’)
print(‘how are you!’)
print(‘hello!’)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kw3CrQUH-1631805556727)(E:\Python2106\课上知识点截图\9.16if分支结构和for循环\顺序结构1.png)]
print(‘启动程序加载静态资源’)
print(‘检查网络状态’)
print(‘连接爱奇艺服务器,获取网络数据’)
print(‘提示无网络可用’)
print(‘加载本地缓存数据’)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HKSoY8g1-1631805556729)(E:\Python2106\课上知识点截图\9.16if分支结构和for循环\顺序结构2.png)]
当碰到这种情况时,不适用于顺序结构在执行过程中会有选择,不能这么按顺序结构写,需要判断有网无网
3.if分支结构
1)单分支结构:
–要满足某个条件才执行某种操作,条件不满足,操作不执行时用单分支结构
语法:(有冒号的地方都会产生缩进,同一个缩进里是一个代码块,和c语 > 言{}括起来的代码块效果相同)
if 条件语句:
代码段
(一般四个空格表示一个缩进,按一个tab键就是四个空格一个缩进)
结构说明:
1.if ------- 关键字,固定写法
2.条件语句 ------要求:任何有结果的表达式
例如:具体数据,已经赋值过的变量,运算表达式,函 > 数调用表达式
( 赋值语句没有结果,不能放在条件语句)
3冒号: -------- 必须是英文的,程序里边所有的符号都必须是英文的, > > 固定写法必须写
4.代码段 -------结构上和if保持缩进的一条或者多条语句(至少一条)
满足条件时才需要执行的代码
执行过程:
if xxx(条件语句) 就 xxx(代码段)(如果怎么样就怎么样)
先判断条件语句是否为True,(如果条件语句的结果不是布尔值,先转 > 换成布尔值,如果为True就执行,否则代码段不执行)
if 100: #100换成布尔值为True print('A') print('B') print('C')
注意:赋值语句不能作为if分支的条件语句,if后面的代码段至少有一条语句
if 0: #0换成布尔值为False print('A') print('B') print('C')
练习:
练习1:根据制定的年龄值打印'可以进网吧' age = int(input('请输入你的年龄')) if age >= 18: print('可以进网吧') # 练习2:根据分数值打印'优秀'(90分以上) score = int(input('请输入你的分数')) if score >= 90: print('优秀')
2)双分支结构
-------满足某个条件就执行某个操作,否则就执行另外一个操作
语法:
if 条件语句:
代码段1(满足条件要执行的代码)
else:
代码段2(不满足条件时要执行的代码)
(要求和单支结构相同)
执行过程:如果 xxx 就 xxx 否则就 xxx
练习:
练习:根据制定整数的值,打印’奇数‘或者’偶数‘: num = 23 if num % 2 == 0: print('这个数为偶数') else: print('这个数为奇数') # 方法二: if num % 2: print('奇数') else: print('偶数')
3)多分支结构
----根据不同的条件做不一样的事情
方案一:
只能解决多个条件之间的存在:如果其中一个条件成立,那么其他条件绝对不会成立的关系
#只能解决多个条件之间存在:如果其中一个条件成立,那么其他条件绝对不会成立的关系 if 条件语句1:#条件语句1成立后边的条件语句不会判断不会执行。 代码段1 elif 条件语句2:#后边条件判断在前面条件判断不成立的情况下执行的。 代码段2 elif 条件语句3: 代码段3 。。。。 else: 代码段N
方案二:
如果多个条件之间不存在说其中一个满足,另外的条件绝对不满足的情况
if 条件语句1: 代码段1 if 条件语句2: 代码段2 。。。以此类推
根据分数的范围打印优秀-90分以上 良好-80-90分包含90分 中等60-79 不及格60分以下 num = int(input('请输入您的分数')) # 方法一: if num > 90: print('优秀') elif 90 >= num >=80: print('良好') elif 79 >= num >= 60: print('中等') else: print('不及格') # 方法二:(多分支结构判断条件一不成立的情况下才会判断条件2,所以不用谢<=90,因为不判断条件一的范围) if num > 90: print('优秀') elif num >= 80: print('良好') elif num >= 60: print('中等') else: print('不及格')
4.if嵌套语句 -在if语句里面的代码段嵌套if语句
# 练习:根据指定数的值打印’奇数‘’偶数‘和’4的倍数‘
# 奇数:指定的数字取余2不为0
# 偶数:指定的数字取余2为0
# 4的倍数:指定的数字取余4为0
print('------------------------------------------------------')
if num % 2:
print('奇数')
else:
if num % 4 == 0:
print('4的倍数')
else:
print('偶数')
二、for循环
1.for循环
语法: for 变量 in 序列: 循环体 说明: 1)for - 关键字固定写法 2)变量 - 变量名,可以是定义过的也可以是没有定义过的,和定义变量时的变量名要求相同 3)in - 关键字,固定写法 4)序列 - 任何容器型数据类型,比如:字符串、列表、元组、字典、集合、迭代器、生成器、range等 (数字、空值、布尔等数据类型不能放在in后面) 5):冒号 - 固定写法 6)循环体 - 和for保持一个缩进的一条或者多条语句(至少有一条语句); 需要重复执行的代码放进循环体内,和前面的for保持缩进则在循环体里 执行过程:让变量去序列中取值,,一个一个的取,取完为止,每取一个值就执行一次循环体。 (for循环的循环次数和序列中元素的个数有关) 字符串里面的每一个字母或者数字都是一个元素 执行过程: x = '葛' 取一个值执行一次循环体 接着变量取下一个值 进入第二次循环 x= '淼',然后执行一次循环体 进入第三次循环 x = 'N' 然后在执行一次循环体 进入第四次循环 x = 'B' 然后再1执行一次循环体 没有第五个值可以取则循环结束 之前变量如果赋过值并不影响去序列里取值,在序列里取的值赋值给了变量覆盖了变量原来存储的值
2.range函数 -本身功能产生指定范围的数字序列
(N)表示任意正整数 用法1:range(N) - 产生0~N-1的数字序列,[0,N)(开区间小括号取不到) 例如:range(4)产生的数字是:0、 1、 2、 3 (四个数字—)。 用法2:range(M,N) - 产生M到N-1的数字序列,[M,N)(M必须小于N,且都是整数,否则是空序列,一次都不循环) 例如:range(2,6) -- 产生数字是:2、 3、 4、 5、 range(-2,2) -- 产生数字:-2、 -1、 0、 1 用这个方法时可能会用的到变量取到的值 看多少次循环就用N-M 用法3:range(M,N,step) - 产生区间还是[M,N),这个区间中取得值每次增加step(步长) 例如:range(1,10,2) - 取到的值:1,3,5,7,9 如果step值为负数则M大于N且从M取值N娶不到 range(10,1,-1) 当循环次数大的时候,用字符串就不合适了,元素太多没办法列出 for x in range(100): print(x, '++++++++++++++++') # range(循环次数)在括号内填入循环次数,想写多少次就填多少 for x in range(-4, 4): print(x) for x in range(-4, 4,3): print(x)
3.套路一:求和
# 第一步:定义一个变量默认值是0(这个变量就是用来保存最后的和) # 第二步:使用for循环的变量依次取出需要求和的所有数据 # 第三步:在循环中变量每取一个值,就往保存和的变量中加一个值 # 1+2+3+。。。+100 sum1 = 0#先定义一个变量,取出一个数来往里加一个。 for x in range(1,101): sum1 += x print(sum1) print(sum1) ''' scores = [89,99,90,50] sum1 = 0 for x in scores: - 字符串赋值的变量 sum1 += x print(sum1) '''
4.套路二:统计个数
# 统计20~100之间偶数的个数 # 方法一: num = 0 for x in range(20, 101): if x % 2 == 0: num += 1 print(num) # 方法二 num = 0 for x in range(20, 101, 2): num += 1 print(num) # 练习:统计不及格的分数的个数 scores = [30, 89, 99, 90, 50] num1 = 0 num2 = 0 num3 = 0 for x in scores: if x < 60: num1 += 1 elif x >= 90: num3 += 1 else: num2 += 1 print('不及格得人有:', num1, '个人', sep='') print('及格得人有:', num2, '个人', sep='') print('优秀得人有:', num3, '个人', sep='')
, 50]
num1 = 0
num2 = 0
num3 = 0
for x in scores:
if x < 60:
num1 += 1
elif x >= 90:
num3 += 1
else:
num2 += 1
print(‘不及格得人有:’, num1, ‘个人’, sep=’’)
print(‘及格得人有:’, num2, ‘个人’, sep=’’)
print(‘优秀得人有:’, num3, ‘个人’, sep=’’)