代码仓库地址: https://gitee.com/andox_yj/python 一、字符串
介绍 双引号或者单引号中的数据 就是字符串string
字符串的基本操作# 1.定义字符串 name1 Andox name2 张三 # 2.字符串输入 str1 input( 请输入字符串: ) # 3.字符串输出 print(str1)字符串的常见操作
my_str Life is short use Python 1.find 返回my_str中找到sub字符串sub的最低索引 否则返回-1 # 使用 my_str.find(str, start 0, end len(my_str)) print(my_str.find( is , 1, 10)) # 5 print(my_str.find( iss )) # -1 2.index 跟find()方法一样 只不过如果str不在 my_str 中会报一个异常. # 使用 my_str.index(str, start 0, end len(my_str)) print(my_str.index( is , 1, 10)) # 5 # print(my_str.index( iss )) # ValueError: substring not found 3.count 返回 sub在start和end之间 在 my_str 里面出现的次数 # 使用 my_str.count(str, start 0, end len(my_str)) print(my_str.count( e , 0, 20)) # 2 print(my_str.count( x )) # 0 4.replace 把 my_str 中的 str1 替换成 str2,如果 count 指定 则替换 count 个。 # 使用 my_str.replace(str1, str2, count) # 注意 替换后原字符串不变。如果要替换的str1找不到 则不替换 返回原字符串 my_str1 my_str.replace( s , x , 1) # 替换1个 print(my_str1) # Life ix short use Python my_str2 my_str.replace( s , x ) # 替换所有 print(my_str2) # Life ix xhort uxe Python my_str3 my_str.replace( yy , x ) # 找不到就不替换 返回原字符串 print(my_str3) # Life is short use Python 5.split 使用sep作为分隔符字符串。如果 maxsplit有指定值 则仅分隔 maxsplit 个子字符串。将分开后的字符串放入列表返回 # 注意 替换后原字符串不变。如果要替换的seq找不到 则不分割 将原字符串放入列表中返回 # 使用 my_str.split(seq, maxsplit) my_str1 my_str.split( e , 1) # 分割1个 print(my_str1) # [ Lif , is short use Python ] my_str2 my_str.split( e ) # 分割所有 print(my_str2) # [ Lif , is short us , Python ] my_str3 my_str.split( yy ) # 找不到就不分割 将原字符串放入列表中返回 print(my_str3) # [ Life is short use Python ] 6.capitalize title lower upper # capitalize 把整个字符串的第一个字母大写 其余的小写 # title 把字符串的每个单词首字母大写 单词与空格区分 既第一个字符和空格后面的第一个字符大写 其余的小写 # lower 所有单词小写 # upper 所有单词大写 print(my_str.capitalize()) # Life is short use python print(my_str.title()) # Life Is Short Use Python print(my_str.lower()) # life is short use python print(my_str.upper()) # LIFE IS SHORT USE PYTHON 7.startswith endswith # startswith 判断是否以某字符串开头 返回True或False # endswith 判断是否以某字符串结尾 返回True或False print(my_str.startswith( Python )) # False print(my_str.endswith( Python )) # True 8.ljust rjust center # ljust 填充字符串 使新字符串总长度为width 不够向右填充str # rjust 填充字符串 使新字符串总长度为width 不够向左填充str # center 填充字符串 使新字符串总长度为width 不够向左右填充str # 注意 默认填充空格。只能填充一个字符 否则报错 # 使用 my_str.center(width, str) print( you .ljust(10, 你 )) # you 你你你 print( you .rjust(10, 你 )) # 你你 you print( you .center(10, 你 )) # 你你你you你你你你 9.lstrip rstrip strip # lstrip 删除 字符串 左边的空白字符 # rstrip 删除 字符串 右边的空白字符 # strip 删除 字符串 两边的空白字符 print( str .lstrip()) # str print( str .rstrip()) # str print( str .strip()) # str 10.rfind rindex 与find和index使用方法差不多 只不是过是从右边开始 print(my_str.rfind( s )) # 15 print(my_str.rindex( s )) # 15 11.partition rpartition splitlines # partition 把mystr以str分割成三部分,str前 str和str后 # rpartition 类似于 partition()函数,不过是从右边开始. # 注意 返回的是元祖 如果没有找到 则补充两个空字符 print(my_str.partition( e )) # ( Lif , e , is short use Python ) print(my_str.rpartition( eyy )) # ( Life is short us , e , Python ) 12.splitlines 按照行分隔 返回一个包含各行作为元素的列表 print( abcd n defg .splitlines()) # [ abcd , defg ] 12.isalpha isdigit isalnum isspace # isalpha 判断字符串是否只有 字母 # isdigit 判断字符串是否只有 数字 # isalnum 判断字符串是否只有 字母 和 数字 # isspace 判断字符串是否只有 空格 print( abc .isalpha()) # True print( 123 .isdigit()) # True print( abc123 .isalnum()) # True print( .isspace()) # True 14.join 把str1插入到join里的序列中的每个元素之间 结果返回一个字符串 str1 -- print(str1.join([ Life , is , short , use , Python ])) # Life--is--short--use--Python二、下标与字符串切片
下标介绍 下标就是对一个序列中的每个元素的一个编号 第一个元素的下标为0 依次往后排序
用法 对象[下标]注意 下标不能超出对象元素的个数 如果超出就是截取到最后一个str1 Andox print(str1[0]) # A print(str1[1]) # n print(str1[2]) # d print(str1[3]) # o print(str1[4]) # x
切片介绍 切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片用法 对象[起始:结束:步长]切片规则 切取规则为 从 起始 下标开始获取 到 结束 下标的前一个元素结束。既 包括开头不包括结尾步长表示选取间隔。如果不需要可以不写步长可以省略 起始 或 结束 或起始结束都省略str2 Andox # 截取下标1到下标4的前一个元素 print(str2[1:4]) # ndo # 截取下标0到下标4的前一个元素 每次间隔两个 print(str2[0:4:2]) # Ad # 截取下标0到指定下标结束 print(str2[:3]) # And # 截取指定下标开始到最后结束 print(str2[2:]) # dox # 截取所有元素 print(str2[:]) # Andox # 在所有元素中间隔截取 print(str2[::2]) # Adx # 步长为-号 既为逆序截取 print(str2[::-2]) # xdA # 从倒数第4个元素开始截到取倒数第2个元素 print(str2[-4:-1]) # ndo三、列表 列表简单使用 介绍 列表list可以用来存储多个不同类型的元素 包括字符串 列表 元祖 字典 对象等等…格式 list1 [元素1, 元素2, 元素3]
# 1.列表的定义 list1 [ Andox , 18, 男 ] # 2.打印列表 print(list1) # [ Andox , 18, 男 ] # 3.使用 下标或者切片 打印列表 print(list1[1]) # 18 print(list1[1:3]) # [18, 男 ] # 4.使用 for 循环输出列表 for item in list1: print(item) # 5.使用 while 循环输出列表 # 步骤 获取列表长度 定义下标变量 每循环获取一次元素下标就加1 直到下标小于列表的长度为止 length len(list1) while i length: print(list1[i])列表的增删改查与排序
1.添加元素 append, extend, insert # append 将一个元素添加到列表的最后 my_list [ 张三 , 李四 , 王五 ] my_list.append( 赵六 ) print(my_list) # extend 将一个序列中第一层的所有元素添加到另外一个列表中 # 注意 如果是字符串 则会将字符串中每个字符单独插入到元祖中 my_list [ 张三 , 李四 , 王五 ] my_list.extend([ 阿Q , Andox ]) # 添加列表 print(my_list) # [ 张三 , 李四 , 王五 , 阿Q , Andox ] my_list [ 张三 , 李四 , 王五 ] my_list.extend( 阿Q ) # 添加字符串 print(my_list) # [ 张三 , 李四 , 王五 , 阿 , Q ] # insert(index, object) 在指定位置index处插入一个元素object 原来index处和后面的元素往后移 my_list [ 张三 , 李四 , 王五 ] my_list.insert(1, Andox ) print(my_list) # [ 张三 , Andox , 李四 , 王五 ] 2.修改元素 将想要修改的元素用下标指出来后直接赋值即可 # 使用 my_list[2] Andox my_list [ 张三 , 李四 , 王五 ] my_list[2] Andox print(my_list) # [ 张三 , 李四 , Andox ] 3.查找元素 in, not in, index, count my_list [ 张三 , 李四 , 王五 ] # in 判断元素是否在列表里 # not in 判断元素是否不在列表里 print( 张三 in my_list) # True print( 张三 not in my_list) # False # index 返回要查找的元素在 my_list 中的下标 没有就报错 列表没有find方法 # count 返回要查找的元素在 my_list 中的出现的次数 没有返回0 print(my_list.index( 王五 )) # 2 print(my_list.count( 王五 )) # 1 4.删除元素 del, pop, remove # del 根据下标进行删除 my_list [ 张三 , 李四 , 王五 ] del my_list[0] print(my_list) # [ 李四 , 王五 ] # pop 默认删除最后一个元素并且返回删除的元素 也可以删除指定下标 超出下标报错 my_list [ 张三 , 李四 , 王五 ] print(my_list.pop()) print(my_list) # remove 根据元素的值进行删除 如果没有要删除的值报错 没有返回值 my_list [ 张三 , 李四 , 王五 ] print(my_list.remove( 李四 )) # None print(my_list) # [ 张三 , 王五 ] 5.排序 sort, reverse # sort 按照ASCII码的顺序对列表进行排序 my_list [ 张三 , 2 , 1 , Andox ] my_list.sort() print(my_list) # [ 1 , 2 , Andox , 张三 ] # sort(reverse True) 逆序排序 my_list [ 张三 , 2 , 1 , Andox ] my_list.sort(reverse True) print(my_list) # reverse 将列表翻转 my_list [ 张三 , 2 , 1 , Andox ] my_list.reverse() print(my_list) # [ Andox , 1 , 2 , 张三 ]列表嵌套与案例
# 列表嵌套 既列表中的元素也是列表 可以多层嵌套 import random my_list [ [ 张三 , 18, 男 ], [ 小红 , 18, 小兰 ] 1.列表嵌套的获取 print(my_list[0][1]) # 18 2.列表嵌套的应用 # 有10名学生和三间教室 需要将这10名学生随机分配到这三间教室中去 # 定义三个列表来当做三间教室 class_room [[], [], []] # 定义一些学生 students_name [ A , B , C , D , E , F , G , H , I , j ] # 将学生随机放入三间教室里去 for student in students_name: class_room[random.randint(0, 2)].append(student) for temp_class in class_room: print( 教室%d的人数为:%d % (i, len(temp_class))) print( 分别为 , end ) for name in temp_class: print( %s % name, end ) print( r ) print( - * 20)四、元祖 介绍 Python的元组与列表类似 不同之处在于元组的元素不能修改。元组使用小括号 列表使用方括号。注意 元祖不能增删改
1.定义元祖 my_tuple ( Andox , 18, 男 ) 2.访问元祖 # 下标访问元祖 print(my_tuple[0]) # Andox # 切片访问元祖 print(my_tuple[0:3]) # ( Andox , 18, 男 ) # for循环访问元祖 for item in my_tuple: print(item) 3.count, index index和count与字符串和列表中的用法相同 # count 查询数量 没有返回0 print(my_tuple.count( 男 )) # 1 # index 返回下标 没有报错 print(my_tuple.index( 男 )) # 2五、字典 字典的简单使用
介绍 字典是另一种可变容器模型 且可存储任意类型对象。字典的每个键值key:value对用冒号:分割 每个键值之间用逗号,分割 整个字典包括在花括号 {} 中。
1.定义字典
my_dict { name : Andox , age : 18, 性别 : 男 }
2.添加元素
my_dict[ phone ] 157*********
print(my_dict) # { name : Andox , age : 18, 性别 : 男 , phone : 157********* }
3.修改元素
my_dict[ age ] 20
print(my_dict[ age ]) # 20
4.删除元素
# del 按照键删除指定元素
del my_dict[ phone ]
print(my_dict) # { name : Andox , age : 20, 性别 : 男 }
# clear 清空字典里的所有键值对数据
my_dict.clear()
print(my_dict) # {}
# del 删除整个字典
del my_dict
# print(my_dict) # NameError name my_dict is not defined
访问字典的各种方法my_dict { name : Andox , age : 18, 性别 : 男 }
1.全部输出
print(my_dict) # { name : Andox , age : 18, 性别 : 男 }
2.根据键访问值,若键不存在会报错
print(my_dict[ name ]) # Andox
3.len() 测量字典中 键值对的个数
print(len(my_dict)) # 3
4.keys() 获取字典中的所有keys键
# 知识点补充
# type 该方法可以查看对象的数据类型
# 视图对象 可以用list()方法来转换为列表 视图对象不可以增删改 只能查看
# 视图对象是动态的 受字典变化的影响 如删除了字典的 key 视图对象转为列表后也跟着变化
keys_list my_dict.keys()
print(keys_list) # dict_keys([ name , age , 性别 ])
print(type(keys_list)) # class dict_keys
print(list(keys_list)) # [ name , age , 性别 ]
5.values() 获取字典中所有的value值 与获取键的返回值一样 都是视图集对象
values my_dict.values()
print(values) # dict_values([ Andox , 18, 男 ])
6.items() 获取字典中所有键值对 与获取键的返回值一样 都是视图集对象
# 注意 视图集转换为列表后 每个键值对都单独在一个元祖里 元祖里的两个元素为键值
items my_dict.items()
print(items) # dict_items([( name , Andox ), ( age , 18), ( 性别 , 男 )])
7.遍历字典的key 键
for key in my_dict: # 循环字典时默认输出的是字典的key
print(key)
for key in my_dict.keys(): # 指定输出key
print(key)
8.遍历字典的value 值
for value in my_dict.values():
print(value)
9.遍历字典的键值对 返回每个键值对的元祖
for item in my_dict.items():
print(item) # ( name , Andox )
10.遍历字典的键值对时 对返回的元祖进行拆包
for key, value in my_dict.items():
print(key, value) # name Andox
11.遍历时带索引(枚举) enumerate
# enumerate输出的第一个是当前元素的下标 第二个是实际的数据
for index, item in enumerate(my_dict.items()):
print(index, item) # 0 ( name , Andox )
六、公用方法
字符串 列表 元祖 字典的公用方法
拼接判断是否存在内置方法比较运算符运算符 Python 表达式 结果 描述 持的数据类型 [1, 2] [3, 4] [1, 2, 3, 4] 合并 字符串、列表、元组 * [ Hi! ] * 2 [ Hi! , Hi! ] 复制 字符串、列表、元组 in 3 in (1, 2, 3) T rue 元素是否存在 字符串、列表、元组、字典 not in 4 not in (1, 2, 3) True 元素是否不存在 字符串、列表、元组、字典 my_dict1 (1, 2) my_dict2 (2, 3) print(my_dict1 my_dict2) # (1, 2, 2, 3) print(my_dict2 * 3) # (2, 3, 2, 3, 2, 3) print(1 in my_dict1) # True print(1 not in my_dict1) # False



