"""
字符串常用的(内置函数)介绍:
内置函数: Python语言自带, 只要是装了Python解释器, 可以直接使用, 无需手动定义.
查找类:
字符串变量名.find(子串, 起始位置, 结束位置) 在字符串的指定区间(前闭后开)查找 子串第一次出现的位置, 并返回其索引, 找不到就返回: -1
字符串变量名.rfind(子串, 起始位置, 结束位置) 在字符串的指定区间(前闭后开)查找 子串最后一次出现的位置, 并返回其索引, 找不到就返回: -1
字符串变量名.index(子串, 起始位置, 结束位置) 功能和find()类似, 只不过找不到就报错.
字符串变量名.rindex(子串, 起始位置, 结束位置) 功能和rfind()类似, 只不过找不到就报错.
修改相关的函数:
字符串变量名.replace(旧子串, 新子串, 替换次数) 在字符串中, 用新串替换N个旧串
字符串变量名.split(切割符) 按照 切割符 切割字符串, 获取切割后的内容, 即: 列表形式, [子串1, 子串2...]
'连接符'.join(列表等容器类型) 用连接符把 列表中的元素, 拼接成字符串.
"""
# 场景1: 演示 字符串的 查找类相关的函数.k
# 1. 定义变量, 记录: 字符串
# 0 6 13 19 26 30
my_str = 'hello python world python sql python'
# 2. 演示 find() 和 rfind()函数
print(my_str.find('python')) # 如果没有指定区间, 就在 整个字符串中查找. 6
print(my_str.find('python', 7)) # 在字符串中第7个索引处开始往后查找. 19
print(my_str.find('python', 7, 21)) # 在字符串中[7, 21)处查找. -1
print(my_str.rfind('python')) # 30
print(my_str.rfind('python', 7)) # 30
print(my_str.rfind('python', 3, 27)) # 19
print(my_str.rfind('python', 3, 9)) # -1
print('-' * 30)
# 3. 演示 index() 和 rindex()函数
print(my_str.index('python')) # 如果没有指定区间, 就在 整个字符串中查找. 6
print(my_str.index('python', 7)) # 在字符串中第7个索引处开始往后查找. 19
# print(my_str.index('python', 7, 21)) # 报错
print(my_str.rindex('python')) # 30
print(my_str.rindex('python', 7)) # 30
print(my_str.rindex('python', 3, 27)) # 19
# print(my_str.rindex('python', 3, 9)) # 报错
print('-' * 30)
# 场景2: 演示 字符串的 修改类相关的函数.
# 1. 定义变量, 记录字符串.
my_str = 'hello python world python sql python'
# 2. 需求1: 用 '夯哥' 替换上述的 'python'
print(my_str.replace('python', '夯哥', 1)) # 只替换1次
print(my_str.replace('python', '夯哥')) # 替换所有
# 3. 需求2: 按照 空格 切割上述的字符串.
list_str = my_str.split(' ')
print(f'切割后的结果: {list_str}') # ['hello', 'python', 'world', 'python', 'sql', 'python']
# 4. 需求3: 重新用 '$' 拼接上述的列表.
new_str = '$'.join(list_str)
print(new_str) # hello$python$world$python$sql$python
# 其它字符串常用函数: strip() 和 len()
# 5. 定义字符串
s1 = ' 夯哥 你好 '
print(f'1{s1.strip()}1') # strip() 移除字符串的首尾空格
print(len(s1)) # len() 获取字符串的长度.