#Python 字符串常用方法总结---明确:对字符串的操作方法都不会改变原来字符串的值
#1,去掉空格和特殊符号
str1=' snqwidwqidjwidj\n'
str2=str1.strip()#去掉空格和换行符
print(str2)
str3=str2.strip('s4 ')#去掉某个字符串,必须前后没空格的字符串
print(str3)
str1.lstrip()#去掉左边的空格和换行符
str1.rstrip()#去掉右边的空格和换行符
#2.字符串的搜索和替换
str4='dwsdwefdkeowifjerijfeir'
print(str4.count('d'))#查找某个字符在字符串里面出现的次数
str5=str4.capitalize()#首字母大写
print(str5)
str6='dwsdwefdkeowifjerijfeir'
print(str6.center(22,"#"))#把字符串放中间,两边用- 补齐
print(str6.find('2'))#找到这个字符返回下标,多个时返回第一个;不存在的字符返回-1
##找到这个字符返回下标,多个时返回第一个;不存在的字符报错
str7=str6.replace('d','2')#字符串替换
print(str7)
print(("名字:{name}".format(name='dd')))#字符串格式化
print(("名字:dd".format({'name':'dd'})))# 字符串格式化,传进去的是一个字典
print("Year {} Rs. {:.2f}".format(2020, 12))#称为字符串格式化,大括号和其中的字符会被替换成传入 str.format() 的参数,也即 year 和 value。其中 {:.2f} 的意思是替换为 2 位精度的浮点数。
print('{:5d}'.format(65))#的意思是替换为 5 个字符宽度的整数,宽度不足则使用空格填充
#divmod(num1,num2)返回一个元组,这个元组包含两个值,第一个是num1 与 num2 相整除得到的值,第二个是num1 与 num2 求余得到的值
# 用 * 运算符查封这两个元组,得到这两个值。
# days=int(input('enter days:'))
# # print("months:{} day:{}".format(*divmod(days+30,30)))
# # #等价于
# # days=int(input('enter days:'))
# # months=days//30
# # day=days%30
# # print("months:{} day:{}".format(months+1,day))
#3.字符串的测试和替换函数
str8='任务法尔hyHhiuiu范接口'
print(str8.startswith('c'))#是否以c开头
print(str8.endswith('i'))#以i结尾
print(str8.isalnum())#是否全是字母和数字,并至少有一个字符
print(str8.isalpha())##是否全是字母,并至少有一个字符
print(str8.isdigit())#是否全是数字,并至少有一个字符
print(str8.isspace())##是否全是空白字符,并至少有一个字符
print(str8.isupper())##S中的字母是否全是大写
print(str8.islower())#print(str8.lower())
print(str8.istitle())##S是否是首字母大写的
#4,字符串的分割
str9='sd,j iowf,joew jfi,ser'
str10=str9.split()#默认是按照空格分割
print(str10)
str11=str9.split(',')
print(str11)#按照逗号分割
list1={'dewwe':['dss','dscsd']}
#5,连接字符串
print(str9,','.join(list1))#用逗号连接slit 变成一个字符串,slit 可以是字符,列表,字典(可迭代的对象),int 类型不能被连接
# 6,截取字符串(切片)
str ='0123456789'
print(str[0:3] )#截取第一位到第三位的字符012
print(str[:])#截取字符串的全部字符0123456789
print(str[6:])#截取第七个字符到结尾6789
print(str[:-3])#截取从头开始到倒数第三个字符之前0123456
print(str[2])#截取第三个字符2
print(str[-1])#截取倒数第一个字符9
print (str[::-1])#创造一个与原字符串顺序相反的字符串9876543210
print (str[-3:-1] )#截取倒数第三位与倒数第一位之前的字符78
print (str[-3:] )#截取倒数第三位到结尾789
print (str[:-5:-3])#逆序截取96
#7.string 模块
import string
print(string.ascii_uppercase)#所有大写字母
print(string.ascii_lowercase)#所有小写字母
print(string.ascii_letters)#所有字母
print(string.digits)#所有数字