# 字符串
# 字符串取值:字符串名[索引值] 只能取单个值
# 正序访问,从0开始
str1 = "hello world"
print(str1[3]) # 输出"l"
# 反序访问,从-1开始
print(str1[-3]) # 输出"r"
# 字符串运算:+、*
str2 = " go!go!go!"
print(str1+str2) # 输出“hello world go!go!go!”
print(str2*2) # 输出“ go!go!go! go!go!go!”
# 判断字符串in、not in成员运算符
print('0' in str1) # 输出“False”
print('0' not in str1) # 输出“True”
# 不同类型拼接
num = 9527
#print(str2 + num) # 报错
print(str2 + str(num)) # 输出“go!go!go!9527” str函数转换类型
# 字符串切片
# 字符串名[m:n:k] m:索引开始的地方 n:索引结束的地方+1 k:步长
print(str1[3:7]) # 输出“lo w” k默认为1
print(str1[3:10:2]) # 输出“l ol”
print(str1[:]) # 输出“hello world”
# 字符串内建函数
# 1、upper():转换为大写 lower():转换为小写
str_1 = "Hello"
str_2 = " World"
print('转换后的内容是:{}'.format(str_1.upper() + str_2.lower()))
# 2、find():返回查找内容在字符串中得位置,如没有找到子返回-1
print('返回的内容是:{}'.format(str_1.find('o')))
# 3、replace():替换字符串中的内容
print('替换后的内容是:{}'.format(str_1.replace('l','大哥',2))) # 将‘l’替换为‘大哥’,替换两次
# 4、split():字符串切割,返回列表型的数据,列表中的元素依然是字符串类型
res = str_1.split('e')
print('切割后的内容是:{}'.format(res))
# 5、strip():处理字符串头尾
print('处理后的内容是:{}'.format(str_1.strip('o')))
# 格式化输出
# 第一种:%d整数 %f浮点数 %s字符串
name = "王锦时"
age = 20
math = 84.25
print("%s今年%d岁,数学考了%.3f分"%(name,age,math)) # 输出“王锦时今年20岁,数学考了84.250分”
# %d只能放一个整数;%f可以放一个整数,也可以放一个浮点数;%s可以放任一一个值
# 第二种:format {}
print("{}今年{}岁,数学考了{}分".format(name,age,math)) # 输出“王锦时今年20岁,数学考了84.25分”
print("{1}今年{0}岁,数学考了{2}分".format(age,name,math)) # 输出“王锦时今年20岁,数学考了84.25分”
print("{a}今年{b}岁,数学考了{c}分".format(a=age,b=name,c=math)) # 输出“王锦时今年20岁,数学考了84.25分”