day6-流程控制语句
书写规范 : code --Reformat code
红色波浪线:提醒可能报错
黄色波浪线:提醒书写不规范(code --Reformat code,就可以去掉黄线)
一、程序三大执行流程
1.顺序执行:
程序执行时,代码从上往下执行,从左往右依次执行,中间如果有报错,后面的内容不再执行,如果遇到报错,后面的内容不再执行,终止程序
2.选择执行:
根据条件满足与否,执行对应代码--让你用如果/或者来造句
3.循环执行:
根据条件满足与否,循环执行对应代码--让你重复做一件事
上述提到这个满足与否,是通过布尔类型来判断
二、代码块的艺术–缩进
在python中,是通过缩进来表示一个代码块的权限
相当于缩进的代码,就是他的上一级代码(没缩进)的小弟,小弟听大哥的话
陌上:
应江奔 #这个加了缩进才是陌上的小弟
李震
许叶彤
精神小伙 #这个跟陌上平级
python 中,缩进是用一个tab(四个空格)来表示
num=20
if num>10:
print('我是你小弟,因为我加了缩进')
print('我是if外面的,没加缩进,我不归if管')
三、选择执行(条件判断语句,if)
if语句的作用为'条件判断',根据判断结果执行对应代码
if:如果
else:否则
elif:或者
3.1单分支结构(if)
单分支:满足条件就执行对应if里的代码,不满足就无事发生
语法格式:
if 判断条件:
执行语句 #该代码执行,就是当if后面的判断条件成立是(True)就执行,否则就不执行
实例:
age=int(input('请输入你的年龄'))
if age>=18:
print('恭喜你成年了')
3.2双分支结构(if…else)
双分支语句:满足条件就执行if里的代码,否则不满足就执行else里的代码
语法格式:
if 判断条件:
执行语句 #如果满足if的条件,就执行if里的代码
else:
执行语句 #否则执行else里的代码
实例:
money=400
if money>=500:
print('我真有钱,富婆!!!')
else:
print('穷鬼')
3.3多分支结构(if…elif…else)
多分支语句:满足条件就执行if里的代码,如果不满足if条件的代码,就接着往下判断elif的语句,满足elif的条件就执行elif里的代码,if和elif都不满足才会执行else里的代码
语法格式:
if 判断条件:
执行语句 #如果满足if的条件,就执行if里的代码
elif 判断条件:
执行语句 #如果if的代码不满足,才会执行到这,如果满足elif的条件,就执行elif的代码
else:
执行语句 #否则if和elif都不满足 就执行else里的代码
实例:
score=int(input('请输入你的考试成绩:'))
if score == 100:
print('吃大餐')
elif score>=80:
print('玩十分钟游戏')
elif score>=60:
print('再接再厉')
else:
print('男女混合双打')
elif可以有多个,一组里面if和else只能有一个
判断数字大小的条件 最好是由大往小去判断
if还有个特性 判断的条件有值就执行,否则就else里的代码
有值为真 没有值为假([],(),'',{},None)
num=() #空元组
if num:
print(1234)
else:
print(56) #打印56
四、循环结构
所谓的循环就是把一件相同的事情重复执行N次,-->比如抄写单词
抄一百遍-->执行100次
在编程中,循环语句的作用是为了让开发:
1.减少代码量
2.提高运行效率
比如说我要输出100次我是最棒的
1.打100次print
2.字符串*100
3.用循环
4.1循环执行(while循环)
while循环语句:判断循环条件是否为真,满足就循环执行代码,不满足结束循环
语法格式:
while 循环条件:
执行语句
更新语句
实例:
i=1
while i<=100:
print(f'我在抄书,这是第{i}遍')
i+=1 #等价于i=i+1,也就是说让这个次数每循环一次加一次1
死循环:一直循环,不会停止的
#最简单的死循环:
while 1:
循环语句
while 1: #while True,条件为真,一直满足条件
print(123) #一直打印123
4.2迭代循环(for循环)
可以理解为while的升级版,作用跟while相似
在1.在遍历数据时2.循环次数已知时,会比while更高效
遍历(迭代):在一堆数据里,把这些数据一个个的取出来
1.可迭代对象:以后在专门讲,现在理解为有多个数据的值
2.里面的变量:这里的变量是作为临时容器用,一般取名i,也可以叫其他的,但是默认这个i这个变量是不需要提前声明,作为一个临时存储的作用
1.遍历数据
语法格式1:
for 变量 in 可迭代对象(字符串,列表,元组,字典,集合)
执行语句
实例:
li=['伊诺',123,True,88.88,'多喝热水']
for i in li:
print(i) #把列表里的数据一个个取出来,赋值给i
2.确定了循环指定的次数
语法格式2:
1.for 变量 in range(数值):
实例:
for i in range(100): #要循环多少次,里面就填几,循环了100次
print(i)
2.for 变量 in range(起点,终点):
实例:
for i in range(3,71): #设置了起点值 3 到终点70
print(i)
2.for 变量 in range(起点,终点,步长):
for i in range(1,100,2):
print(i)
range() 这个方法 可以表示一个数值的范围 结合 in 就可以做一个简单的数值范围判断
range的值默认从0开始,终点值到它的前一位
五、break与continue
break-->终止,结束本轮循环
continue-->跳过,跳过本次循环
1.本来要跑100圈,你跑了10圈就偷懒了选择摆烂--break 结束循环
for i in range(1,101):
print(f'我跑了第{i}圈')
if i==10:
print('我不跑了')
break
2.抄书,找到一些页面我就跳过不写,耍滑头-->continue 跳过
for i in range(1,21):
if i==10 or i==15 or i==20:
continue
print(f'这是我抄书的第{i}遍')
六、pass语句
if 判断条件:
空着不写
while 判断条件:
空着不写
如果你空着不写,这样会报错,因为你写了一个if或者循环语句,但是里面又不写内容,相当于站着位置不干活,会造成性能浪费
但是在开发的时候,会遇到这种情况
已知一个地方要写一个条件判断/循环,但是还没有想好底下写什么东西,这时就可以先写个pass,表示跳过,防止程序报错
if 判断条件:
pass
while 判断条件:
pass
a=1
if a==1:
pass
print(123)
七、嵌套
7.1分支结构嵌套
现在那你是个宫女 有个飞上枝头变凤凰的机会 你现在要在御花园里邂逅这个皇上
你去问皇上身边的太监:'皇上会不会来'(第一个判断)
如果来 我是跳舞还是唱歌(第二个判断) 吸引皇上
如果跳舞就飞黄腾达
如果唱歌就拖出去斩了
如果不来 白日梦破灭
'''
1.皇上会不会来
2.来 我是唱歌/跳舞
3.不来 梦破灭
'''
boy=input('小李子,皇上会不会来')
if boy=='会':
talk=input('那么我是唱歌还是跳舞好呢')
if talk=='跳舞':
print('好美啊,封为贵妃')
elif talk=='唱歌':
print('好难听,斩了')
else:
print('请你正确选择')
elif boy=='不会':
print('白日梦破灭')
else:
print('请你正确回答')
7.2循环嵌套
我想做个数字方阵长宽各为5 该怎么输出呢
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
for i in range(5): #range 就是范围 相当于范围到5 #列
for j in range(5): #不能使用两个i,因为分不清,#行
print('2',end=' ') #end 换成空格的字符串就不换行 因为有空字符串替代了print原本的\n属性
print('') #到第五个就换行,因为print自带换行功能
八、print的end
print输出函数,默认是有换行这个属性:里面有一个属性叫做end
end的默认值是\n
end=''的意思是给末尾end传递一个空字符串,你print打印时加了这个end='',就相当于print没有自动换行的这个功能了,因为你是传递了一个空字符串替代了\n
day7-序列类型方法
初识序列类型方法
序列类型的概念:数据的集合,在序列类型里面可以存放任意的数据也可以对数据进行更方便的操作 这个操作是叫增删改查(curd)
( 增加(Creat),读取查询(Retrieve),更新(Update),删除(Delete) 几个单词的首字母简写)
增删改查是操作数据最底层的操作(从本质除法 我们对数据所有的行为归根到底就是增删改查四个字)
增加新的数据
修改原有数据
查看指定数据
删除指定数据
因为我们在操作序列类型数据的时候,会经常用到增删改查操作 所以python给我们提供了一些内置的功能函数
作用就是帮助我们更好的对数据进行增删改查
方法都是固定好的语法 不需要死记硬背
如果忘了翻笔记.百度,pycharm还会有代码补全
len函数-->获取一个容器的长度/一个容器里面有几个数据
语法:
len(数据)
案例:
a=[1,2,3]
b='好好学习'
c='陌 上'
print(len(a),len(b),len(c))
列表方法
food = [‘麻辣烫’,‘螺蛳粉’,‘火锅’,‘泡菜’]
增
1.append:追加一个数据,添加一个数据到列表的最后一位
列表.append(内容)
food.append('奶茶')
food.append(['蜜雪冰城',12])
2.insert:在指定的位置上添加一个数据,原数据会被挤到后面(插队)
列表.insert(下标,内容)
food.insert(0,'咖啡')
food.insert(3,'幽兰拿铁')
3.extend:追加一个序列类型的数据到最后一位
列表.extend(序列内容)
[1]追加单个字符串,是把字符串拆分追加(不能追加单个数字)
food.extend('冰激凌') #单个字符串是打散
food.extend(11) #报错,不能是单个数字
[2]追加一个序列类型,把值分别追加进去
food.extend((1,2,3)) #添加序列类型的值进去
food.extend(['绿豆雪糕',12])
删
1.pop:在有指定下标后删除一个值 没有指定的下标时 会默认删除最后一个数据
列表.pop()
food.pop() #默认删最后一位
列表.pop(下标)
food.pop(0) #删除指定下标的数据
2.remove: 删除一个指定的数据 如果有重复的数据 从第一个开始删
列表.remove(数据)
food.remove('螺蛳粉')
3.clear: 清空列表里的所有数据
列表.clear()
food.clear()
4.del 删除数据.也可以直接删除这个变量
1.删除整个变量
del 变量名
2.删除变量里的值
del 列表[下标]
del food[1] #删除food里下标为1 的数据
改
1.修改单个值:通过索引直接修改
列表[下标]=值
food[0]='水果'
2.修改多个值:通过切片来修改
列表[起点:终点]=数据1,数据2,数据3,...
food[1:4]='草莓','葡萄','芒果','榴莲','香蕉'
print(food)
查
所有的查询方法,里面的内容是显示出来看的,而不是修改的,所以都要用print来输出
number=[1,2,5,3,4,68,4,2,6,1,1]
1.index: 根据内容,获取指定数据的下标
列表.index(数据) #默认从下标为0的位置开始搜索
print(number.index(68))
列表.index(数据,起点下标) #从起点下标开始找数据
print(number.index(1,4)) #从4这个下标开始找第一个1这个数据的下标
2.count: 求和,统计数据出现的次数
列表.count(数据)
print(number.count(1))
其他
num = [6.66,520,70,123,888,False,9]
sort: 对列表的内容进行排序. 如果列表里面有字符串是不可以排序.
列表.sort() #默认是升序排序 从小到大
num.sort()
print(num)
列表.sort(reverse=True)
num.sort(reverse=True) #从大到小
print(num)
元组方法
查
demo=(30,34,24,520,True,520,'好好学习')
1.index:根据内容,获取指定数据的下标
元组.index(数据) #默认从下标为0的数据开始搜索
print(demo.index(520))
元组.index(数据,起点下标) #从起点下标开始找数据
print(demo.index(520,4))
2.count: 求和,统计数据出现的次数
元组.count(数据)
print(demo.count(520))
元组不可修改,所有没有增删改的操作,没有修改的方法
字符串方法
字符串和元组一样是不可变类型,里面的数据是不可以改变的,除非重新赋值,否则里面的数据是改变不了的(所有的字符串的方法操作都要用print来输出才能看到效果)
字符串本体是不变的, 但是可以通过方法给你看修改结果
女孩子都喜欢化妆
人的脸 不管你怎么化妆 人是不会换的 还是原来的你
字符串本体--不变
但是可以给你看改变的样子--化妆的样子
增
talk = ‘我爱学python,每天都要学习’
字符串严格来讲没有专门的增加方法,直接用+拼接即可
字符串+字符串
print(talk + '所以你今天学了吗') #这样可以看到talk拼接后的效果
print(talk)#字符串本体不变
删
talk1='你这傻逼玩的这么傻逼的操作还来玩游戏'
replace:可以删除/可以替换
字符串.replace('要删除的值','') #把你要删的值,改为空
print(talk1.replace('傻逼', ''))
字符串.replace('要修改的值','新的值')
print(talk1.replace('傻逼', '**')) #把敏感词用*来替代
字符串.replace('要修改的值','新的值',修改的次数)
print(talk1.replace('傻逼', '**',1)) #把傻逼修改一次
改
name=' Hello World hello world 陌上 '
upper:字符串里的字母全部大写
字符串.upper()
print(name.upper())
lower:字符串里的字母,全部小写
字符串.lower()
print(name.lower())
title: 字符串里的单词首字母改为大写. 以空格为标准
字符串.title()
print(name.title())
strip: 去除字符串左右两边的空格
字符串.strip()
print(name.strip())
split: 切分.根据指定的内容.切分字符串
字符串.split('分割对象')
print(name.split('o'))
查
find:通过内容获取数据的下标
字符串名.find(内容)
print(name.find('o'))
字符串名.find(内容,下标)
print(name.find('o',6))
count:求和,统计数据出现的次数
字符串.count('数据')
print(name.count('l'))
isdigit: 判断字符串里是否为纯数字.结果为布尔值
字符串.isdigit()
print(a.isdigit())
print(aa.isdigit())
isalpha: 判断字符串是否为纯中文/字母
字符串.isalpha()
b='yn陌上'
bb='yn陌上12'
bbb='yn陌上%$'
print(b.isalpha())
print(bb.isalpha())
print(bbb.isalpha())
endswith: 判断字符串的后缀.是否为指定字符.结果为布尔
字符串.endswith('数据')
print(c.endswith('很帅'))
print(c.endswith('很棒'))
后面我们可能也会遇到这种场景 把jpg后缀的图片改为png后缀的
可以用到这个方法
主要用来判断后缀