字符串的常用操作

## 注意:字符串的各种方法均不影响原有字符串的值

'''# 分割——split()——得出一个列表,不包含分割的元素'''
#str.split(str="", num=string.count(str))
#str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\y)等。
#num -- 分割次数。默认为 -1, 即分隔所有,如果参数 num 有指定值,则分隔 num+1 个子字符串
1 = 'Line1-abcdef\nLine2-abc \nLine4-abcd'
print(1.split()) # 以空格为分隔符,包含\n   ['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
print(1.split(' ',1)) # 以空格为分隔符,分隔成两个 ['Line1-abcdef\nLine2-abc', '\nLine4-abcd']
'''
特别注意:字符串没有remove方法!!只有列表有remove方法!
'''
'''# replace()——str.replace(old, new[, max])'''
# old -- 将被替换的子字符串。
# new -- 新字符串,用于替换old子字符串。
# max -- 可选字符串, 替换不超过 max 次。
str1 = 'this is is'
print(str1.replace('is','was')) #thwas was was
print(str1.replace('is','was',2)) #thwas was is

'''# is系列——返回bool类型'''
name = 'taitaile123'
print(name.isdigit())#是否全是数字 False
print(name.isalpha())#是否全是字母 False
print(name.isalnum())#是否是字母与数字 True
'''首字母大写、大小写反转'''
s = 'wangHW is A good boy'
print(s.capitalize())#首字母大写,剩下的均改成小写:capitalize()
print(s.swapcase())#大小写反转:swapcase()

print(s.title())#所有的首字母大写,剩下的均改成小写————非字母分隔符分隔的首字母大写
#也可以用string的capwords()方法
import string
print(string.capwords(s))   #—————— 只有空格隔开的首字母才大写

'''#内向居中,给出总长度,不够补齐:center()方法'''
print(s.title().center(50,'*'))

'''#字符串中元素出现的个数:count()方法'''
#可选参数为在字符串搜索的开始与结束位置——注意也是左闭右开区间(顾头不顾尾)
#要想连最后一个也找,那第二个参数空下不写
ret1 = s.count('y',2)
print(ret1)

'''#以...开头/结尾——startswith()、endswith()'''
#返回的是bool类型的值
w = 'asdaqwe91230akljd'
print(w.startswith('asd'))#True
print(w.startswith('asd',2,-1))#False #这个“搜索区间”与count()方法一样
print(w.endswith('jd'))#True
print(w.endswith('jd',0,-1))#False

'''#寻找字符串的元素是否存在——找到的话返回这个元素的索引,没有则返回-1'''
##(1)find()方法
print(w.find('a1'))#0
print(w.find('a1',-6,-1))#12——这里的“搜索区间”与上面的一样
print(w.find('a1',-3,-1))#-1
##(2)index()方法——找到则返回元素的额索引,找不到则报错
print(w.index('a1')) # 0
# print(w.index('a1',-3,-1))   ValueError: substring not found

'''#format——格式化输出'''
dic1 = {'name':'whw','age':22,'sex':'male'}
r1 = '{} {} {}'.format('whw',22,'male')
print(r1)
r2 = '{1} {0} {1}'.format('whw',12,'male')
print(r2) #12 whw 12
r3 = '{name} {age} {sex}'.format(name='whw',age=22,sex='male')
print(r3)
r4 = '{name}-{age}-{sex}'.format(**dic1)
print(r4)

'''#strip()——注意只能消除左右两边的字符,默认是空格与换行'''
ss = '*SAsad#*'
print(ss.strip('*'))#SAsad#
print(ss.lstrip('*'))#SAsad#*
print(ss.rstrip('*'))#*SAsad#

'''f格式化'''
name = "whw"
age = 18
print(f"我的名字是{name},年龄是{age}")