24、for 和 else
eat1 = "fffffffffffff"
eat2 = "fffcfffffffcf"
# for 配合else: 正常执行循环后,会执行else中的代码,如果遇到break退出,else中的代码就不再执行
for i in eat2:
if i == "c":
print("吃到苍蝇了,不吃了")
break
else:
print("一口一口吃饭")
else:
print("吃的好饱呀")
25、while 循环嵌套
num1 = 0 # 初始化变量,负责循环行的
# 外层循环一次,内层循环一轮
while num1 < 7: # 外层循环,循环行数
num2 = 0 # 初始化变量,负责循环列的
while num2 < 3: # 内层循环,循环列数
print("吃饭---",end="") # 打印吃饭,加上 end="" 不回车
num2 += 1
print() # 没输入完行的内容,回车一下
num1 += 1
print()
print()
# num3 = 0
# while num3 < 8:
# num4 = 0
# while num4 < 4:
# print("哈哈---",end="")
# num4 += 1
# print()
# num3 += 1
num3 = 0
while num3 < 7:
num4 = 0
while num4 < 3:
print("吃饭---",end="")
num4 += 1
print()
num3 += 1
26、range
# range(开始, 结束, 步长) 能取到 开始位置数字,但 不能取到 结束位数字,步长默认为1
# range()顾头不顾尾
for i in range(1,6,1): # 12345
print(i)
print("---")
for i in range(1,6): # 12345 步长默认为1
print(i)
print("---")
for i in range(1,6,2): # 135
print(i)
print("---")
for i in range(6,1): # 当第一个值比第二个值要大,不会生成任何数据 这种写法 是错误的
print(i)
print("---")
for i in range(6,1,-1): # 65432 步长设置为-1,方向向左去寻找
print(i)
# 练习1
# 计算从0到100之间的所有偶数的累加和
sum = 0
for i in range(0,101,2):
sum += i
print(sum) # 2550
# 练习2
# 计算从0到100之间的所有奇数的累加和
sum1 = 0
for i in range(1,100,2):
sum1 += i
print(sum1) # 2500
sum = 0
for i in range(0,101,2):
sum += i
print(sum)
sum1 = 0
for i in range(1,100,2):
sum1 += i
print(sum1)
27、字符串相关
# 单引号、双引号、三引号
# python中单引号、双引号都可以定义字符串,建议使用双引号
# 正常双引号之中,不允许添加回车,会直接报错
str1 = "hehe"
print(str1)
str2 = 'hehe'
print(str2)
# 三个引号包裹的字符串,可以随意添加回车,叫做自定义显示格式
str3 = """
111
22
33
55
4
4
"""
print(str3) #
str4 = '''
22
55
44
6
'''
print(str4)
# 有些符号,不方便通过键盘输入,可以使用一些特殊符号来代替
# \t代表一个tab的间距
# \n代表一个回车、换行
# \\代表一个\
print("老师教你学python课程")
print("老师\t教你学\npython课\\程")
# \" 或者 \' 在字符串打印时显示 " 或者 '
print("恩\'老师\'教你学\"python\"课程")
# 如果不想让字符串的特殊符号生效,只需要在字符串前添加字母 r 即可
print(r"恩\'老师\'教你学\"python\"课程")
# 字符串相加就是连在一起
str1 = "abc"
str2 = "123"
print(str1 + str2)
# 字符串相乘,得到若干倍的字符串
str3 = "efg"
str4 = str3 * 3
print(str4)
# 通过地址下标(或索引值)获取字符串指定位置的内容:
# 在python中索引值、地址下标从0开始计数
str5 = "python课程"
print(str5[0])
for i in str5:
print(i)
print(str5[3])
str6 = "lishuguang 你好"
print(str6[1])
for i in str6:
print(i,end="")
28、字符串切片
# 下标可以获得单个字符,切片可以获取多个字符
# 语法:
# 字符串[开始位置下标:结束位置下标:步长]
import random
# 切片:[开始闭区间:结束开区间:步长]
# random.randint(1,3) 都是闭区间
# (闭区间 代表 能取到 开区间 代表 取不到)
# range(开始,结束,步长) 开始闭区间(取) 结束是开区间(不取) 步长默认为 1
# 口诀:range和切片 顾头不顾尾
str1 = "abcdefg"
print(str1[2:5:1]) # cde str1[2]能取到 str1[5]取不到
print(str1[2:5]) # 步长默认为1,可以不写
print(str1[:5]) # abcde 第一个参数不写,就代表从头开始
print(str1[2:]) # cdefg 第二个参数不写,代表获取到结尾
print(str1[:]) # abcdefg 前两个参数都不写,代表截取整个字符串
print(str1[::2]) # 从头到尾截取,步长为2
print(str1[5:1]) # 不打印任何东西,默认方向向右 这种写法是错的,除非步长为-1
print(str1[5:1:-1]) # fedc 负数步长,方向向左
# 反转字符串
print(str1[::-1])
print(str1[::-2]) # geca
print(str1[-4:-1]) # def
# 练习:
str2 = "lishuguang"
print(str2[2:5:1])
print(str2[2:5])
print(str2[:5])
print(str2[2:])
print(str2[:])
print(str2[::2])
print(str2[5:1:-1])
# 反转字符串
print(str2[::-1])
print(str2[::-2])
print(str2[-4:-1])
29、字符串查找和替换
# 语法:字符串.find
str1 = "恩老师教你python课程,让你学会python课程课程课程"
print(str1.find("你")) # 4 打印的内容是,所查找的东西的开始位 下标
print(str1.find("python")) # 5
print(str1.find("python",6)) # 18 从下标为6的位置开始取查询内容
print(str1.find("pythonhehe")) # 结果为-1 代表没有找到连续的内容为pythonhehe的字符串
print(str1.index("你")) # 4
print(str1.index("python",6)) # 18
# print(str1.index("pythonhehe")) # 没找到就会报错
# find 和 index都可以进行查找,find没有找到返回 -1 index没有找到,会报错
# count 出现次数
print(str1.count("你")) # 2
print(str1.count("课程")) # 4
print(str1.count("python课程",6)) # 1 从str1[6]往后出现的python课程,只有1个
print(str1.count("python课程lalala")) # 0
# 字符串的替换
# replace(要替换谁,替换成什么,是否都替换)
str2 = "傻和大傻都不是傻文明语言,大家自觉抵制"
print(str2)
str2 = str2.replace("傻","可爱")
print(str2)
str3 = "傻和大傻都不是傻文明语言,大家自觉抵制"
str3 = str3.replace("傻","可爱",2) # 第三个参数可以省略不写,代表全部替换,如果写了n个,就替换n个
print(str3)
# 练习 去掉没有的空格
str4 = " saaa fff rrrf flf fl "
print(str4)
str4 = str4.replace(" ","")
print(str4)
str2 = "傻和大傻都不是傻文明语言,大家自觉地址"
print(str2)
str2 = str2.replace("傻","可爱")
print(str2)
str3 = "傻和大傻都不是傻文明语言,大家自觉抵制"
str3 = str3.replace("傻","可爱",2)
print(str3)
30、split分割
str1 = "恩 老师-教你python-课程 让你学会-python课程"
# split分割字符串,按照符号把字符串分割成若干份,放入列表中
print(str1.split("-"))
print(str1.split("-",2)) # 第二个参数代表分割次数
print(str1.split()) # 参数为空,代表按照空格进行分割
print(str1.split("-"))
#练习 去掉没有的空格
str2 = " jj kkk ee vv v"
print(str2)
str2 = str2.replace(" ","")
print(str2)
str3 = " lsg-enyi python taiyang-yueliang cheng-ping-an "
print(str3.split("-"))
print(str3.split())
print(str3.strip()) # 去掉两头的空格
str1 = "恩 老师-教你python-课程 让你学会-python课程"
# split分割字符串,按照符号把字符串分割成若干份,放入列表中
print(str1.split("-"))
print(str1.split("-",2))
print(str1.split())
str2 = " jj kk ii yy tt rr "
print(str2)
str2 = str2.replace(" ","")
print(str2)
str3 = " how are you "
print(str3.strip())
31、大小写转换
str1 = "aaaaaAAAABBBBBBFFFFFFF"
print(str1.lower()) # 转小写
print(str1.upper()) # 转大写
# 去掉两边的空格 strip() 而单词中间的空格不动
str2 =" How are you "
print(str2.strip())
str3 = " kkkDDDDIIIIKKKKK KKKdddd kkkkkQQQQ"
print(str3.lower()) # 转小写
print(str3.upper()) # 转大写
print(str3.strip()) # 去掉两头的空格,单词之间空格不变
32、列表
# python中的列表,c 和 c++ 中叫数组,目的是存储一组数据
list1 = ["刘备","关羽","赵云","张飞","赵云"]
print(list1)
print(type(list1))
print(list1[1]) # 地址下标代表找到第几个元素
list1.insert(1,"大乔") # 插入新的元素到列表中(插入位置,插入元素)
list1.append("小乔") # 列表的最后位置插入数据
print(list1)
list2 = ["曹操","许褚","张辽"]
list1.extend(list2) # 把list2插入到list1的后面
print(list1)
# 练习:
list3 = ["诸葛亮","司马懿","鲁肃","陈宫"]
list3.insert(2,"水镜")
list3.append("周瑜")
print(list3)
list3.extend(list1) # 把list1插入到list3后面
print(list3)
print("-----------------------------------------------")
list4 = list3
print(list4)
# 列表的修改
list1[1] = "lsg--"
print(list1)
# 列表的删除
del(list1[4]) # 删除下标为4的人
print(list1)
list1.remove("刘备") # 直接删除你写的元素
print(list1)
list1.pop() # 删除列表最后一项
print(list1)
list1.pop(3) # 删除对应下标的元素,与del实现效果一样
print(list1)
#list1.clear() # 清空列别
print(list)
print(list4)
del(list4[0])
list4.remove("司马懿")
list4.pop()
list4.pop(2)
list4.remove("大乔")
print(list4)
# count(内容) 得到出现的次数
list2 = ["刘备","张飞","赵云","赵云","关羽","张飞"]
print(list2.count("赵云"))
print(len(list2)) # list2列表的长度 即 元素总个数
print(list2.index("张飞")) # 默认就是找元素第一次出现的索引值
print(list2.index("张飞",2)) # 第二个参数,从2号往后找
33、列表的排序
list1 = [3,1,9,88,66,0]
#list1.sort() # 升序排列,从小到大,小括号中reverse = False 不写也代表升序
list1.sort(reverse=False) # 升序排列
list1.sort(reverse=True) # 降序排列
print(list1)
34、复制列表
list1 = [3,1,9,88,66,0]
list2 = list1.copy()
print(list2)
35、列表的嵌套
# 列表的嵌套 又称 二维列表 C或C++中的二维数组
list1 = [ ["张三",18,True], ["李四",20,False] ]
print(list1)
print(list1[0])
print(list1[1][1])
36、列表的遍历
list1 = ["刘备","关羽","赵云","张飞","赵云"]
for i in list1:
print(i)
# 计算列表中的元素总个数
sum = 0
for i in list1:
print(i)
sum += 1
print(sum)