'''
字符串的常用方法
'''
# s = "hello python"
# print(s.find('o')) # 寻找o在第几位索引,输出4 最小索引
# print(s.find('b')) # 输出-1 没有找到 但是不会报错
#
# print(s.index('o')) #4
# print(s.index('b')) # not found,会报错
# repalce,替换
a = "hello small small baby"
# 需求 将small换成 big
# print(a.replace("small","big"))
# 替换一次 只能替换前面的一个 后面的实现不了
# print(a.replace("small", "big", 1))
# result = a.replace("small", "big", 1)
# print(result)
# print(a) # 没有发生改变的
# 在做替换时 会返回一个副本 是先进行的复制 然后再去进行的操作
# 实际上是不会改变原来的值的
# split 切片,返回的是列表
# s = 'hello,python,hello,world'
# # 拿到s中单独的每一个单词
# print(s[0:5])
# print(s[6:12])
# print(s[13:18])
# print(s[19:25])
# # 默认是空格 你可以根据你的实际情况去进行对应的分割 并且返回的数据类型为列表
# print(s.split(",")) # ['hello', 'python', 'hello', 'world'] 字符串变成了列表
# startswith endswith 字符串的方法
# file = '42weiwei.py'
# print(file.startswith('42')) #42结尾
# print(file.endswith('py')) #py结尾,一般就是一个文件夹内的文件夹全部的数据确认结尾去除
# strip 剥去,除去
# b = ' hello world '
# c = ",,,hello,,,"
# print(b)
# print(b.strip()) #去除所有空格
# print(c.strip(","))
# join 加入 字符串中的方法
# 可迭代对象 : 能够一个个取出对象中的每一个元素值
# li = ["1", "2", "3", "4", "5"] # 列表
# a = 1 # TypeError: can only join an iterable,必须字符串,且两个以上
# b= "123"
# print("___".join(b)) # 用于连接字符串
# print(li)
''''
列表的介绍与创建
'''
# 列表的创建
# li = [] # 空列表
# print(type(li)) # <class 'list'>
#
# # 方法一
# python42 = ['梁达昌', '张红松', '岳岳']
# print(python42, type(python42))
#
# print(python42[1]) #张红松
# # 可变的
# python42[1] = '张红松哥哥' #把列表的第二个替换了
# print(python42)
#
# # 不可变的
# s = "hello"
# print(s[1])
# s[2] = 'E' # TypeError: 'str' object does not support item assignment 不支持项分配
# print(s)
# 创建方法二
# print(list("序列")) #['序', '列']
# print(list("1234565")) #['1', '2', '3', '4', '5', '6', '5'] TypeError: 'int' object is not iterabl 不是可迭代对象
# list = [1, 2, 3] #[1, 2, 3] 作为了一个变量名 不要以关键字命名
# print(list)
# print(list("123")) # TypeError: 'list' object is not callable 不可调用
'''
访问列表中的元素
'''
li = [1, 2, 3, 4, 5]
print(li[3])
# print(li[100]) # 报错 IndexError: list index out of range 索引越界
print(li[1:4]) #[2, 3, 4] 同样要满足左闭右开的区间
print(li[1:100]) #[2, 3, 4, 5] 同样要满足左闭右开的区间
'''
修改和删除列表中的元素
'''
li = [1, 2, 3, 4, 5, 3, 3, 3]
# print(li)
# 将3 换成100
# print(li[2])
# li[2] = 100
# print(li)
# 删除3
# 只会删除第一个和我们指定元素相同的 而且必须要保证我们删除的值是存在
# 否则就会报错
# li.remove(3) #删除第一个3 x not in list 根据元素删除
# print(li)
# li.pop() # 默认删除最后一个元素
# print(li)
# 如果想删除指定的元素 需要根据索引去进行删除
# 删除2
# li.pop(1) # 默认删除最后一个元素,这里指定是索引第二个
# print(li)
# li.clear()
# print(li) # [] 列表中的内容全部都被删除了 但是这个列表还是存在 只不过为空列表
# 整体删除
# del li # li已经被删除
# print(li) # NameError: name 'li' is not defined
# 单个删除
# del li[3]
# print(li)