a = "hello python"
print(a)
# string类型
# 1. 多个字符串如何拼接
# 拼接就是数学上的加法符号即可
# +是拼接,但是-*/是未定义行为
# 语法:结果 = 字符串1 + 字符串2
b = "ok!"
c = a + b
# 2. 把一个字符串重复3次
# * n如果乘以的东西n是整数,那就重复n次
# 语法:结果 = 字符串 * 整数
c = a + a + a
c = b * 3
print(c)
# 3. 提取某个位置的字符
# 语法:单个字符 = 字符串[位置/索引]
# 索引,从0开始,表示开头为起点
# 索引,从-1开始,表示最后为起点,往回推
# 01234567
# -3 -2 -1
# "hello pyt h o n"
print(a[-3])
# 4. 提取某部分字符串
# 语法:字符串 = 字符串[起点:终点:步长]
# 正向提取:你的步长是正数时
# 起点:[默认是0],都是跟索引一样,可以是正数,可以是负数(表示最后一个位置)
# 终点:[默认是字符串长度],都是跟索引一样,可以是正数,可以是负数(表示最后一个位置)
# 步长:[默认是1],正数,大于0的正数
# 字符串[起点:终点:步长],此时,终点所在位置,不会被保留
#
# 反向提取:你的步长是负数时
# 起点:[字符串长度],都是跟索引一样,可以是正数,可以是负数(表示最后一个位置)
# 终点:[-1],都是跟索引一样,可以是正数,可以是负数(表示最后一个位置)
# 字符串[起点:终点:步长],此时,终点所在位置,不会被保留
# -10123456789012
a = "hello python"
# print(a[0:])
# tpolh
# print(a[1::-1])
print(a[8::-2])
print(a[11:6:-3])
print(a[4::-1])
print(a[::-1])
# 叫做切片语法,slice
# print(a[11:6:-3])
# print(a[slice(11, 6, -3)])
# 切片,是对于线性容器都可用
# string,list,tuple
# 0 1 2 3 4
a = ["h", "e", "l", "l", "o"]
a = ("h", "e", "l", "l", "o")
print(a[:3])
print(a[2::-1])
# 5. 扩展string的一些方法
a = "hello python"
# 拓展1:格式化
age = 18
name = "张三"
# 张三的年龄是18岁
# 把整数转换为str,语法是:str(变量)
c = name + "的年龄是" + str(age) + "岁"
# 格式化的语法,format
c = f"{name}的年龄是{age}岁"
print(c)
# 扩展2:查找字符串
# 0123456
a = "hello zhangsan, how are you."
# 语法1:str.find(需要查找的字符串)
# 语法2:str.find(需要查找的字符串,查找的起点)
# 语法3:str.find(需要查找的字符串,查找的起点,查找的终点)
# a.find("zhangsan")
# print(dir(str))
# print(help(str.find))
# print(a.find("zhangsan"))
# print(a[a.find("zhangsan")+8:])
# 扩展3:替换字符串
# 语法:replace(旧字符串,新字符串,替换的次数)
# print(help(str.replace))
a = "hello zhangsan, how are you zhangsan."
print(a.replace("zhangsan", "wangwu", 1))