# 一、str类型
# 基本使用
# 1、用途:记录描述性质但状态,例如名字、性别、国籍等
# 2、定义方式
s ='hello'
# str功能可以把任意类型转换成str类型
# 3、常用操作 + 内置方法
# a.按照索引取值,(正向+反向取值)
s ="hello world"
# print(s[0],type(s[0])) # "h"
# print(s[-1])
# s[1] = "E" # 不能修改
# 非法操作
# s[2222]
# s[11] = "A"
# b.切片(顾头不顾尾)
str1 ='hello world'
new_s = str1[0:4]
print(new_s)
new_s = str1[::2]
print(new_s)
# c.长度len
print(len(str1))
# d.成员运算 in 和 not in
str1 ='hello world'
print('hel' in str1)
# e.移除空白strip
str2 =' \n hello \t'
print(str2.strip())
print(str2)# 没有改变原字符串
# 变体
print('****** **he*l *lo ******'.strip('*'))
print("**+=-%^#****he**llo**%^#**+=**".strip("*+=-%^#"))
# f.切分,split 把字符串按照某个分割符切成一个列表
userinfo ='egon:123:12:3.1'
res = userinfo.split(':')
print(res)
# 如果要拼回去:
userinfo1 =':'.join(res)
print(userinfo1)
# g.循环:
for iin str1:
print(i)
# 了解功能:
# a.lstrip和rstrip 去左空格
# b.lower, upper
msg='MasJfarQefrR'
print(msg.lower())
print(msg.swapcase())
# c. stratwith endwith
print(msg.endswith('frR'))
# d.format的三种玩法:
# 1.format1
name ='egon'
age =18
res1 ='{0} {1} {0}'.format(name, age)
# 2.format2
res2 ='my name is {name}, age is {age}'.format(name ='egon', age =18)
print(res2)
# 3.f''方法
res3 =f'my name is {name}, age is {age}'
print(res3)
res4 =f'{len("hello")}' #可以运行f'{}'里面的代码
print(res4)
# {}内不能有 \和 #,可以写两遍{},取消掉第一个的{}特殊意义
print(f'my name is {{egon}}')
# e. split, rsplit
print(userinfo.rsplit(':', 1))# 如果不指定次数,和strip一样
# f. replace
s ='lxx, hahha, lxx, st, 666'
res = s.replace('lxx', 'sb')
print(res)
# g. isdigit 判断字符串是否都是数字
print('123ada'.isdigit())
# 该类型总结
# 存一个值or存多个值
# 一个
# 有序or无序
#有序
# 可变or不可变
# 不可变