目录:
- 第06节 字符串
- (1)下标/索引
- (2)切片----语法、方向
- 🔺(3)字符串常用操作方法----查找(语法、find、index、count、r)、修改(replace-替换,split- 分割,join-合并,大小写转换,删除空白字符、对齐)、判断
- (4)字符串输出输入
- 第07节 列表和元组
- (1)列表的格式
- (2)列表的常用操作–增删改查、判断、复制
- 🔺(3)列表的循环遍历
- (4)列表的嵌套使用
- 🔺(5)实例应用
- (6)元组tuple与列表的区别
- (7)元组的定义、常见操作(只支持查找)
- 第08节 字典和集合
- (1)创建字典语法–键值对、有数据1、空2
- 🔺(2)字典常见操作–增/改、删(del、clear)、查(key、函数4种)
- 🔺(3)字典的循环遍历–4种
- (4)集合创建、特点
- 🔺(5)集合的常见操作–增(add、update)删(remove、discard)查(in、not in)
学习内容:
第06节 字符串
目录
- (1)下标/索引
- (2)切片----语法、方向
- 🔺(3)字符串常用操作方法----查找(语法、find、index、count、r)、修改(replace-替换,split- 分割,join-合并,大小写转换,删除空白字符、对齐)、判断
- (4)字符串输出输入
(1)下标/索引
print(strl[0])
(2)切片
-
语法- 序列[开始位置下标 : 结束位置下标 : 步长]
-
注意:正向从[0]开始;反向从[-1]开始;
-
注意:结束位置不选
-
注意:选取方向(下标开始到结束的方向)、步长方向
如果选取方向和步长方向冲突,则无法选取数据
# 切片测试 stel = '012345678' print(stel[1:3:1]) # 12 print(stel[::-1]) # 876543210--如果步长为负,表示倒叙选取 print(stel[-4:-1]) # 567 print(stel[-4:-1:-1]) # 无法选取数据 print(stel[-4:-1:1]) # 567
(3)字符串常用操作方法
-
查找-查找子串 在字符串中的位置或出现的次数
-
注意:子串记得加引号
-
find( )–检测是否存在
- 语法:字符串序列 . find (子串 , 开始位置下标 , 结束位置下标)
- [开始位置下标 , 结束位置下标]-省略的话表示在整个字符串中查找
- 返回值:存在返回字串开始位置的下标,否则返回 -1
-
index( )–与find( )语法相同,区别在于不存在不返回值,直接报错
-
rfind( )与rindex( )表示查找方向为-右侧开始
-
count( )–与find( )语法相同,返回值为子串出现次数
stel01 = 'abcdefg' print(stel01.find('cd')) # 2 print(stel01.index('cd')) # 2 print(stel01.count('cd')) # 1 print(stel01.rfind('cd')) # 2-下标仍从左往右计算
-
-
修改-
- replace( ): 替换
- 语法-字符串序列. replace( 旧子串,新子串,替换次数)
- [替换次数]可以不写–表示所有次数替换
- replace函数有返回值,调用后,原字符串的数据没有修改,修改的是replace函数的返回值;说明字符串是不可变数据类型
stel02 = 'hello word and hello word' stel02.replace('and', 'or') print(stel02) # 打印原来的字符串 new_stel02 = stel02.replace('and', 'or') print(new_stel02) # 打印替换后的字符串
- split( ): 分割
- 语法-字符串序列. split( 分割字符,num)
- num表示分割字符的次数,即返回数据num+1个
- 返回一个列表;丢失分割字符
print(stel02.split('and', 1)) # 打印['hello word ', ' hello word']
- join( ): 合并列表为一个字符串
- 语法-字符或子串.jion(多字符串组成的序列)
list = ['a', 'b', 'c'] print('*'.join(list)) # 打印a*b*c
- 大小写转换
- capitalize()–只把字符串第一个字符大写
- title()–字符串每个单词首字母大写
- lower()–大写转小写
- upper()–小写转大写
print(stel02.capitalize()) # 打印 Hello word and hello word print(stel02.title()) # 打印 Hello Word And Hello Word print(stel02.lower()) # 打印 hello word and hello word print(stel02.upper()) # 打印 HELLO WORD AND HELLO WORD
-
删除空白字符-
- lstrip()–删除字符串左侧空白字符
- rstrip()–删除字符串右侧空白字符
- strip()–删除字符串两侧空白字符
-
字符串对齐-
- ljust()–字符串左对齐,且可填充对应长度的新字符串
- 语法-字符串序列.ljust(长度,填充字符)
- rjust()–居中、同上
- center()–居中、同上
print(stel02.center(30, '*')) # 打印**hello word and hello word***
- ljust()–字符串左对齐,且可填充对应长度的新字符串
- replace( ): 替换
-
判断-判断真假,返回值为True/False
- startswith()/endswith–检查字符串是否以指定子串开头/结尾
- 语法-字符串序列.startswith(子串,开始位置下标,结束位置下标)
- [开始位置下标,结束位置下标]–可不写,默认检查开头/结尾
- isalpha():如果字符串至少有一个字符,且所有字符都是字母,返回True
- isdigit():如果字符串只包含数字,返回True
- isalnum():如果字符串至少有一个字符,且所有字符为字母/数字,返回True
- isspace():如果字符串中只包含空白,返回True
- startswith()/endswith–检查字符串是否以指定子串开头/结尾
(4)字符串
- 输出
- print()输出、格式化输出 % 、f
- 输入
- input()
第07节 列表和元组
目录
- (1)列表的格式
- (2)列表的常用操作–增删改查、判断、复制
- (3)列表的循环遍历
- (4)列表的嵌套使用
- (5)实例应用
- (6)元组tuple与列表的区别
- (7)元组的定义、常见操作(只支持查找)
(1)列表的格式
- [数据1,数据2,数据3,…]
- 列表可一次性存储多个数据,且可以为不同数据类型
- 建议一个列表存储相同数据类型
(2)列表的常用操作–增删改查、判断、复制
-
查找
- 下标
- 相关函数-
- index()、count()–与字符串一样
- len(序列名)–返回列表长度,即列表中数据的个数
-
判断-是否存在–返回布尔值
- in、not in
- 语法-
stel = ['a', 'b', 'c', 'd'] print('a' in stel) # 返回True print('a' not in stel) # 返回False ''' 应用 1、用户输入名字 2、判断if...else... ''' name = input('请输入名字') if name in stel: print('NO') else: print('Yes')
-
增加
- append():列表结尾追加数据
- 语法-列表序列.append(数据)
- 追加的数据是序列时,把序列整体添加到列表
- extend():与append()相同
- 区别在于-
- 追加的数据是序列时,把序列的数据逐一添加到列表
- insert():指定位置新增数据
- 语法-列表序列.insert(位置下标,数据)
- append():列表结尾追加数据
-
删除
- del
- 语法-del 目标 | del(目标)
- 即可删除列表,也可删除列表中指定数据
- pop()
- 语法-列表序列.pop(下标)
- 删除指定下标的数据,默认删除最后一个数据
- 返回值为被删除的数据
- remove()
- 语法-列表序列.remove(数据)
- 移除列表中某个数据的第一个匹配项
- clear()–清空列表
- 保留空列表,删除里面数据
- del
-
修改
- 修改指定下标数据----直接给指定下标赋值
- 逆序 reverse( )
stel1 = [1, 2, 2, 3, 4] print(stel1.reverse()) # 打印 None print(stel1) # 打印[4, 3, 2, 2, 1]
-
sort()----排序:升序、降序
- 语法-列表序列.sort(key=None,reverse=False)
- reverse表示排序规则,默认升序False(从小到大),True为降序
stel1.sort() print(stel1) # 打印[1, 2, 2, 3, 4]
-
复制
- 函数:copy()
stel2 = stel1.copy()
(3)列表的循环遍历
- while循环遍历、for循环遍历
'''
需求:依次打印列表中的各个数据
1、列表数据
2、循环while
条件i<len()
打印print()
遍历i+=1
3、for循环遍历
'''
stel_list = ['a', 's', 'sf']
i = 0
while i < len(stel_list):
print(stel_list[i])
i += 1
# for循环遍历
for j in stel_list:
print(j)
(4)列表的嵌套使用
-
嵌套后数据的查找
stel_list[0][1]#表示列表中-下标为1的列表-中的下标为1的数据
(5)实例应用
# 需求:8位老师,3个办公室,将三位老师随机分配到办公室
'''
步骤:
1、准备数据
8位老师--列表
3个办公室--列表嵌套
2、分配老师到办公室
***随机分配
把老师名字写入办公室列表--办公室列表追加老师名字数据
3、验证是否分配成功
打印办公室详细信息,每个办公室的人数和对应的老师名字
'''
import random
# 1、准备数据
teachers = ['张一', '张二', '张三', '张四', '张五', '张六', '张七', '张八']
offices = [[], [], []]
# 2、分配老师到办公室
# 遍历老师列表
for name in teachers:
# 在办公室列表中追加老师名字--append(选中)、extend()、insert()
num = random.randint(0, 2)
offices[num].append(name)
# print(offices)
# 3、验证是否分配成功--打印--使用遍历
i = 1
for office in offices:
# 打印办公室人数--子列表数据的个数 len()
print(f'办公室{i}人数为{len(office)},老师分别是:')
# 打印老师名字
# print(office)--打印结果为列表,不能一一打印
# 考虑遍历子列表
for name in office:
print(name)
i += 1
(6)元组tuple与列表的区别
- 列表内的数据可以修改;元组内的数据不能修改
- 元组–(1,2,…)
(7)元组的定义、常见操作(只支持查找)
- 定义–t1=(1,)
- 注意----如果定义的元组只有一个数据,后面也需要添加逗号,否则**数据类型**为‘唯一的这个数据’的数据类型
- 查找
- 使用下标查找
- index( ‘某个数据’)–存在则返回对应的下标,否则报错;与列表、字符串相同
- count(‘某个数据’)–统计某个数据在当前元组出现的次数
- len(元组序列名)–统计元组中数据的个数
- 修改
- 元组中数据进行修改时报错–TypeError: ‘tuple’ object does not support item assignment
- 注意–如果元组中嵌套的有列表,可以修改里面列表的数据
第08节 字典和集合
目录
- (1)创建字典语法–键值对、有数据1、空2
- (2)字典常见操作–增/改、删(del、clear)、查(key、函数4种)
- (3)字典的循环遍历–4种
- (4)集合创建、特点
- (5)集合的常见操作–增(add、update)删(remove、discard)查(in、not in)
(1)创建字典语法
- 字典不支持下标,数据以键值对的形式出现;后期无论数据如何变化,只需按照对应的键的名字查找数据即可
- 有数据字典-dict1 = {‘key’ : ‘值’, ‘’ : ‘’, …}
- 创建空字典-2种
- dict2={ }
- dict3=dict( )
(2)字典常见操作
- 增
- 写法-字典序列[key]=值
- 注意:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对
- 注意:字典为可变类型
- 删
- del 删除字典或指定的键值对
- del(字典序列)
- del 字典序列[‘key’] #key不存在就会报错
- 字典序列.clear( )—清空字典数据,保留空字典
- del 删除字典或指定的键值对
- 改
- 写法-字典序列[key]=值—与新增操作一样
- 查
- key值查找
- 字典序列[‘key’]----如果当前查找的key存在,则返回对应的值,否则报错
- 函数查找
- get( )
- 语法–字典序列.get(key,默认值)
- 如果key不存在返回默认值;如果没有默认值,返回None
- keys( )
- 语法–字典序列.keys()
- 查找字典中所有的key值,返回结果为可迭代对象
- values( )
- 语法–字典序列.values()
- 查找字典中所有的values值,返回结果为可迭代对象
- items( )
- 语法–字典序列.values()
- 查找字典中所有的键值对,返回可迭代对象
- get( )
- key值查找
(3)字典的循环遍历
- 遍历字典的key
- 遍历字典的value
- 遍历字典的元素(键值对)
- 遍历字典的键值对
dict1 = {'name': 'z', '性别': '男', 'age': 22}
# 1、遍历key
for key in dict1.keys():
print(key)
# 2、遍历value
for value in dict1.values():
print(value)
# 3、遍历元素(键值对)
for item in dict1.items():
print(item) # 打印('name', 'z')('性别', '男')('age', 22)
# 4、遍历键值对
for key, value in dict1.items():
print(f'{key} = {value}') # 打印name = z 性别 = 男 age = 22
(4)集合创建、特点
- 使用{}或set()进行创建
- 注意:创建空集合只能用set(),{}是用来创建空字典的
- 集合特点:
- 集合是可变类型的数据
- 打印集合内的数据没有顺序,不支持下标
- 有去重功能–打印数据时不打印重复数据
(5)集合的常见操作
-
增
- add()–用来追加单一数据
- update()–增加的数据是序列
set1 = set('1,2,3,4') print(set1) # 打印 {',', '3', '4', '2', '1'} # 增 # add() set1.add(100) print(set1) # 打印 {'2', 100, '4', '3', ',', '1'} set1.add(1) print(set1) # 注意区分int与str set1.add('1') print(set1) # 有去重功能,什么事情都不做 # set1.add([1, 2]) # print(set1) # 报错 # update set1.update(['a', 'b']) print(set1) # 打印 {1, 'b', 100, 'a', '3', '4', ',', '2', '1'}
-
删
- remove()–删除集合中指定数据,数据不存在则报错
- discard()–删除集合中指定数据,数据不存在不报错
- pop()–随机删除集合中的某个数据,并返回这个数据
# 删 set1.remove(100) print(set1) # set1.remove(100) # 报错 set1.discard(100) print(set1) # 不报错 delete_date = set1.pop() print(delete_date) # 打印删除的数据 print(set1) # 随机删除一个数据
-
查
- in 和 not in----判断数据在不在集合里面
# 查 s2 = {2, 3, 4, 5} print(1 in s2) # 打印 False print(1 not in s2) # 打印 True