目录
1.字符串
字符串的定义
a = '好好吃'
b = "hello python"
c = str("啦啦啦")
字符串的输出
str_01 = "小奇同学是最可爱的女孩子!"
print("取出第三个字:",str_01[2])
print("字符串的长度是:",len(str_01))# 将字符串依次输出
i = 0
while i < len(str_01):
print(str_01[i])
i+=1
字符串截取
str[开始:结束:步长]:步长默认从左往右,如果步长为-1从右往左
单个取出: str_01[下标]:通过下标可以取出字符串里面的字符,下标从0开始 (默认从左往右)
多个取出: str_01[开始下标:结束下标]:包含开始,不包含结束,如果开始不写,默认从0开始,如果结束不写,默认到结尾 (默认从左往右)
从后往前取: 将步长改成 -1
print(str_01[0:2])
print(str_01[:2])
print(str_01[:])
print(str_01[::3])
print(str_01[::-1])
print(str_01[20000])
字符串的常用方法
*重点:
myStr = "my shenti is Rerere,\n my Koudai ,is kongkong"
myStr.find("is") # 从字符串中查找is,默认从左往右查找,如果找到返回第一次出现的下标,如果不存在返回 -1
myStr.rfind("is") # 从字符串中查找is,右往左查找,如果找到返回第一次出现的下标,如果不存在返回 -1
myStr.index("is") # 从字符串中查找is的下标,默认从左往右,如果找到返回第一次出现的下标,如果找不到就报错
myStr.rindex("is") # 从字符串中查找is的下标,右往左查找,如果找到返回第一次出现的下标,如果找不到就报错
myStr.count("is") # 从myStr中统计is出现的个数,如果存在返回个数,如果不存在返回0 myStr.startswith("hello") # 判断myStr是否以hello开头
myStr.endswith("kongkong") # 判断myStr是否以kongkong结束
myStr = "my shenti is Rerere,\n my Koudai ,is kongkong"
myStr.replace("is", "IS") # 将myStr中所有的is替换成IS,对原来的数据不会产生改变
myStr.split(",") # 将myStr按照","号进行切割成若干个部分
myStr.splitlines() # 将text按照换行符进行切割myStr = "my shenti is Rerere,\n my Koudai ,is kongkong"
myStr.capitalize() # 将字符串myStr的首字母大写
myStr.title() # 将字符串的每一个单词的首字母大写
myStr.lower() # 将字符串统一转化成小写字母
myStr.upper() # 将字符串统一转化成大写字母
str_01 = "HONG KONG, March 15 Xinhua"
print("我的字符串为:"+str_01)
str_02 = str_01.find("15") # 默认从左往右查找,如果找到返回第一次出现的下标,如果不存在返回 -1
print("str_01.find(15)输出:{}".format(str_02))
str_02 = str_01.rfind("H") # 右往左查找,如果找到返回第一次出现的下标,如果不存在返回 -1
print("str_01.rfind(H)输出:{}".format(str_02))
print("="*20)
str_03 = str_01.index("Ma") # 查找字符串下标,默认从左往右,如果找到返回第一次出现的下标,如果找不到就报错
print("str_01.index(Ma)输出:{}".format(str_03))
str_03 = str_01.rindex("Ma") # 右往左查找
print("str_01.index(Ma)输出:{}".format(str_03))
print("="*20)
str_04 = str_01.count("a") # 统计a出现的个数,如果存在返回个数,如果不存在返回0
print("str_01.count(a)输出:{}".format(str_04))
str_04 = str_01.startswith("HO")
print("str_01.startswith(HO)输出:{}".format(str_04)) # 判断字符串是否以HO开头
str_04 = str_01.endswith("HO")
print("str_01.endswith(HO)输出:{}".format(str_04)) # 判断字符串是否以HO结尾
print("="*20)
str_05 = str_01.replace("Ma","ma") # 将字符串中所有的Ma替换成ma,对原来的数据不会产生改变
print("str_01.replace(Ma,ma)输出:{}".format(str_05))
str_05 = str_01.split(",") # 按照","号进行切割成若干个部分
print("str_01.split( , ))输出:{}".format(str_05))
str_05 = str_01.splitlines() # 按照换行符进行切割成若干个部分
print("str_01.splitlines() 输出:{}".format(str_05))
print("="*20)
print("我的字符串为:"+str_01)
print("判断a在str_01里面吗?")
print("a" in str_01)
print("判断a不在str_01里面吗?")
print("a" not in str_01)
print("="*20)
str_06 = str_01.partition(",") # 将字符串按照默认从左往右出现的第一个","分割成若干部分,小没有删除
print(" str_01.partition(,)输出:{}".format(str_06))
str_06 = str_01.rpartition("a") # 将字符串按照默认从左往右出现的第一个"a"分割成若干部分,小没有删除
print("str_01.rpartition(a) 输出:{}".format(str_03))
print("="*20)
myStr = "china successfully sends a new remote sensing satellite of the Yaogan-34 series into space from the Jiuquan Satellite Launch Center in Northwest China at 3:09 pm on March 17, 2022."
print("myStr为:"+myStr)
print("将字符串首字母大写:{}".format(myStr.capitalize()))
print("将字符串的每一个单词的首字母大写:{}".format(myStr.title()))
print("将字符串统一转化成小写字母:{}".format(myStr.lower())) # 将字符串统一转化成小写字母
print("将字符串统一转化成大写字母:{}".format(myStr.upper())) # 将字符串统一转化成大写字母
print("="*30)
print(" 去除字符串左边的空格 ".lstrip())
print(" 去除字符串右边的空格 ".rstrip())
print(" 去除字符串两边的空格 ".strip())
print("="*20)
print("判断myStr中是否有特殊字符:{}".format(myStr.isalnum()))
print("判断myStr是否为纯字母:{}".format(myStr.isalpha()))
print("判断123497是否为纯数字")
print("123497".isdigit())
2.列表
列表的定义及相关功能
列表的定义: 它就是存储数据的一种容器,且对存储在其中的数据类型没有限制。
格式:[元素1; 元素2; 元素3; ......]
# 定义一个列表
list_test = list() # 定义空列表
list_01 = ["姓名",12,True,1.2,["啦啦啦啦"],"@"]
print("输出列表:",list_01) # 输出列表
列表的功能:
① append()函数:在列表的末尾添加数据
② insert()函数 : 在指定的位置插入内容
③ list_01.extend(list_02)函数:将list_02的元素合并到list_01里面,对liset_02没有影响
④ pop()函数:删除列表末尾的元素
⑤ remove()函数:删除列表中的指定内容
⑥ del list_01[1]:删除指定列表的指定下标的元素
⑦ sort:将列表中的数据由小到大排序
⑧ reverse:将列表中的数据由大到小排序
⑨ index:查询指定元素在列表中的下标,如果元素不存在就报错
代码示例:
list_01 = ["姓名",12,True,1.2,["啦啦啦啦"],"@"]
# 添加数据
list_01.append(6666) # 在列表末尾添加6666
list_01.insert(3,"小明同学") # 在列表第三个位置插入元素
# 定义两个列表
list_02 = ["我","是","不","是"]
list_03 = ["你","最","疼","爱","的","人"]
list_02.extend(list_03) # 将list_03的元素添加到list_02里面
# 删除数据
list_01.pop()
print("执行一次pop",list_01)
list_01.remove(True)
print("执行一次remove",list_01)
del list_01[1]
print("执行一次del",list_01)
# 查询数据
print("查询下标为2的数据:",list_02[2])
print("查询从列表开始到结束的数据:",list_02[:])
print("查询从列表下标3开始到5结束的数据:",list_02[3:5])
print("反转列表",list_02[::-1])
# 将所有的数据依次输出
i = 0
while i < len(list_02):
print(list_02[i])
i+=1
print("for循环取出内容")
for j in list_02:
print(j)
print("第二种for循环取出内容")
# 执行 range 括号中的那个数字的次数循环
for i in range(len(list_02)) :
print(list_02[i])
# 修改数据
list_02[2] = "成年"
print("修改下标为2的数据",list_02)
# 判断该元素是否存在列表中 in not in
if "成年" in list_02:
print("可以玩游戏")
else:
print("请使用青少年模式!")
if "成年" not in list_02:
print("请使用青少年模式!")
else:
print("可以玩游戏")
# 列表排序
list_03 = [57,156,4568,53,7,2,45,2,23]
# list_03.sort() 这个函数没有返回值
list_03.sort()
print(list_03)
list_03.reverse()
print(list_03)
列表与字符串的转换
list(序列):将目标序列转换成列表
"目标".join(序列) :将目标序列内的元素一次取出和目标拼接成新的字符串
# 定义字符串
str1 = "hello"
# 定义空列表
list1 = []
# 传统做法
for i in str1:
list1.append(i)
print(list1)
# 简单写法
list2 = list("hello")
print(list2)
# 将列表转换成字符串
list3 = ["h","e","l","l","o"]
# str2 = str(list3) 此方法会将列表当成一个整体进行转换
str2 = "".join(list3)
print(str2)
str3 = "123".join("我爱python")
print(str3)
列表推导式
格式1: value1 for i in data if 判断条件
解释:value1:当条件成立时执行
i:循环中的变量
data:序列
if:判断的条件
# 需求 获取0 - 20 之间的偶数乘以10,并统计所有得到的结果
# 传统写法
# 定义一个列表
numbers = []
for i in range(21):
if i % 2 == 0:
j = i * 10
numbers.append(j)
print(numbers)
# 列表推导式格式1的写法
numbers_01 = [j = i * 10 for i in range(21) if i%2== 0]
print(numbers_01)
格式2:value1 if 判断条件 else value2 for 变量 data
解释:value1:在for循环中,if条件成立则执行value1
value2:在for循环中,if条件不成立则执行value2
# 获取0 - 20 之间的偶数乘以10,奇数乘以100 并统计所有得到的结果
# 传统写法
numbers_02 = []
for i in range(21):
if i % 2 == 0:
j = i * 10
numbers_02.append(j)
else:
j = i * 100
numbers_02.append(j)
print(numbers_02)
# 列表推导式格式2写法
numbers_03 = [i * 10 if i % 2 == 0 else i * 100 for i in range(21)]
print(numbers_03)
3.元组
元组定义格式
(元素1,元素2,元素,3...)
元组知识点
元组可以通过下标的方式查询,和字符串以及列表的方式一样
元组和列表不一样,元组中的元素一但定义就是不可变的
元组中的元素跟列表一样是可以重复的
# 定义一个元组
tuple_1 = (1,2,3,3) # 同类型数据
tuple_2 = (1,True,1.2,"我爱python") # 不同类型
tuple_3 = tuple() # 定义一个空元组
# 查询元组
# 通过下标查询
print("="*10,"元组的查询","="*10)
print("目标元组:",tuple_2)
print("查询下标为1的元素",tuple_2[-1])
for i in tuple_2:
print(i)
for i in range(len(tuple_2)):
print(tuple_2[i])
# 修改元组
# tuple_2[0] = 666 # 会报错:TypeError: 'tuple' object does not support item assignment
# 删除元组中的元素
# del tuple_2[0] # 也会报错
4.字典
字典的定义
键值对:{key:value,key:value,key:value,....}
# 定义一个字典
dict1 = {"姓名":"老王","地址":"隔壁","性别":"男","爱好":"打球"}
print(dict1)
print("dict1的类型是:",type(dict1))
字典的用法
*注意:
1.字典的操作都是根据 key,所以字典的key是不能重复的
2.字典里面的元素是无序的
3.在字典添加元素时,如果key存在就覆盖value值,如果不存在就添加新的键值对
4.字典的key的类型是不可变类型
可变类型 : 列表、字典
不可变类型 : 字符串、元组、数字类型
# 添加元素
dict1["电话"] = "123321"
print("添加没有的key",dict1)
# 修改元素
dict1["地址"] = "长沙"
print("添加已经有的key",dict1)
# 删除元素
del dict1["地址"]
print("删除地址",dict1)
# 查询元素
print("查询电话:",dict1.get("电话"))
① dict1.update(dict2):合并两个字典
② setdefault():在字典中插入一个值,如果这个key不存在就添加到列表里,如果存在就返回这个key对应的value值
③ dict1.keys():获取列表中所有的key值
④ dict1.values():获取列表中所有的value值
⑤ dict1.items():获取所有的key和value值
⑥ dict2 = dict1.copy():拷贝
⑦ dict3 = dict3.fromkeys(["姓名","地址","性别","年龄"]):根据括号内的内容(序列)创建key值,默认添加的value值为None
⑧ dict1.pop("姓名"):根据key值删除
⑨ dict1.popitem():删除最后一个元素
⑩ dict1.clear():清除整个字典
字典推导式
格式1:{value1 for 变量 in 序列 if 判断条件}
dict_source = {"a":10,"B":20,"C":True,"D":"hello python","e":"python"}
# 需求 提取字典中的小写key值的键值对
# 传统写法
dict1 = {}
for key,value in dict_source.items():
if key.islower(): # 判断是否为小写
dict1[key] = value # 将元素添加到dict1中
# 字典推导式格式1写法
dict1_1 = {key:value for key,value in dict_source.items() if key.islower()}
格式2:value1 if 判断条件 else value2 for 变量 in 序列
# 需求 : 将所有小写的key的值都变成性别
# 传统写法
dict3 = {}
for key,value in dict_source.items():
if key.islower():
dict3[key] = "性别"
else:
dict3[key] = value
# 字典推导式格式2写法
dict4 = {key:"性别" if key.islower() else value for key,value in dict_source.items()}