python3基础之字符串

python中有些方法参数中有等号的,参数 可有可没有

def center(self, width, fillchar=None) #类似这样的方法中,当我们调用center方法时,width参数必须填写,fillchar参数可传可不传

#字符串首字母大写方法

test = 'alex'

v = test.capitalize()

print(v)

Alex

#大写变成小写

v1 = test.casefold()  #将大写变成小写,可以将其他的语言如法语 等的大写变成小写,
v2 = test.lower()  #只能将英文字母大写变成小写

# 字符串居中

v3 = test.center(20,'*')  # 设置宽度,将字符串居中,两边默认用空格填充,当前用*填充

print(v3)

********aLex********

#统计字符串中指定字符的个数

test = 'aLex'
v4 = test.count('a',0,2)   # 统计字符串中指定字符串或字符的数量,并指定字符串从索引0开始到索引2的范围

print(v4)

#字符串以什么结尾或开头,返回布尔值

v5 = test.endswith('x',1,2)  #以x结尾  指定范围
V6 = test.startswith('a',2,3) # 以a开头  指定范围

#查找子字符串,并返回第一次找到的下标位置

v7 = test.find('ex',3,5) # 从左到右查找ex,找到第一个结束,并返回找到的下标位置值,可指定范围,但是指定范围后返回下标值也是整个字符串对应的下标值,未找到返回-1
vv =test.index('ex',3,5) # 从左到右查找ex,找到第一个结束,并返回找到的下标位置值,可指定范围,但是指定范围后返回下标值也是整个字符串对应的下标值,找不到会报错

  

# 字符串格式化,将字符串中的占位符{}天换成格式化指定的值

test = ' dadd {a},sdse {b}'   #用具体的变量 占位
v8 = test.format(a='dd',b=11)  # 指定占位符的值
test1 = ' dadd {0},sdse {1}'  #用下标占位获取格式化的值
v9 = test1.format('ss',33)  
#format_map中指定的是字典,字符串中的占位符与字典中的key值想对应
test = ' dadd {a},sdse {b}'   #用具体的变量 占位
v10 = test.format_map({"a":"nih","b":10})

  

# 判断字符串中只能出现数字、字母,不能有其他字符,返回布尔值

test = "sdswe111"
v11 = test.isalnum()
print(v11)

true

test = "sdswe111!!!"
v11 = test.isalnum()
print(v11)

false

#字符串中\t替换为空格

test = '123456ABC\tabd\t'

v12 = test.expandtabs(6)   # 字符串从左数如果没有遇上\t则数6个字符为一组,然后继续往下数如果数了3个字符第4个是\t,则3个字符加\t为一组,因为设置了6个字符为一组,所以3个字符加\t满足6个字符\t就会替换为3个空格,以此类推
print(v12)
123456ABC   abd   

#判断字符串中只包含字母、汉字,返回布尔值 

test = "jiad你好"
test2 = "jiaee22"
v = test.isalpha()   
v2 = test2.isalpha()
print(v)
print(v2)

#判断是否只是数字,返回布尔值

test = "1233②"
v = test.isdecimal()  #判断当前字符串是否包含数字 ,只能判断普通的数字,不能判断特殊的数字② 。。。

v1= test.isdigit()  #判断当前字符串是否包含数字 ,可以判断特殊的数字

print(v,v1)

   False True

 

test = "二"

v = test.isnumeric() # 除了判断十进制数字和特殊数字之外,还可以判断汉字的数字

print(v)
true

  

# 判断是否为标识符:字母,数字,下划线,并且数字不能开头  
test ="_opsde"
test1 = "123sdrwe"
test2 = "jiang"

v = test.isidentifier()
v1 = test1.isidentifier()
v2 = test2.isidentifier()

print(v,v1,v2)

#判断是否存输出时不可见字符,如:\n,\t,\r,如果不存在 true,存在 false

test = 'jiangs\nsdsd'

v = test.isprintable()

print(v)

false

#判断是否全是空格

test = ' '

v = test.isspace()   # 全是空格返回true,否则false

print(v)
false

#判断字符串是不是标题,标题的中每个单词的首字母必须大写

test = 'Hello World !'

v = test.istitle()

print(v)

true

# 将字符串转换为标题,只转换字母

test = 'hello world !'

v = test.title()

print(v)

Hello World !

#将字符串中每个字符使用指定的符号重新拼接成新的字符串 ********

test= '你是风儿我是沙'
tes = "_"
v = tes.join(test)  #使用下划线将test字符串中每个字符重新拼接起来
print(v)

你_是_风_儿_我_是_沙

# 指定宽度左右对齐

test = 'ted'

v = test.ljust(20,'*')  #字符串左对齐,占位20个字符,右边默认使用空格填充,这里使用*号填充

v1 = test.rjust(20,'#') #字符串右对齐,占位20个字符,左边默认使用空格填充,这里使用#号填充

print(v+'\n',v1)

ted*****************
#################ted

# 判断 是都全部为小写

test = 'JDSangd'

v = test.islower()  #判断是否全部是小写
v2 = test.lower()   #全部转换为小写

v3 = v2.islower()

print(v,v2,v3)

False  jdsangd  True

# 转换为小写

test = 'SJIISDWE'
v = test.lower()

print(v)

sjiisdwe

# 判断是否全是大写

test = 'SJIISDWE'
v = test.isupper()

print(v)

true

#全部转换成大写

test ='jiangdee'

v = test.upper()

print(v)

JIANGDEE

#处理字符串前后空格或指定字符

test = 'aeles'

v = test.rstrip('eds')  #不写参数默认去除右边空格、\n,\r,\t。。。,使用参数则是从右边剔除参数中包含的所有字符,按字符递归去除
v2 = test.lstrip('dds') #不写参数默认去除左边空格、\n,\r,\t。。。,使用参数则是从左边剔除参数中包含的所有字符,按字符递归去除
v3 = test.strip('ase') #不写参数默认去除两边边空格、\n,\r,\t。。。,使用参数则是从两边边剔除参数中包含的所有字符,按字符递归去除
print(v,v2,v3)

# 根据创建的对应关系,替换字符串中的值

test = 'aeiou'
test1 = '12345'
test2 = 'aaabbbeeedddiiioooouuu'
m= str.maketrans(test,test1) # 创建对应关系

v = test2.translate(m) #字符串根据对应关系替换 字符

print(v)

111bbb222ddd3334444555

#字符串分割

test = 'jiangdesjjdfsddessee'

v = test.partition('s')   #从左边使用指定的字符分割字符串只分割一次,指定的字符串被单独的分割成一个字符串,输出元组
v2 = test.rpartition('ss') # 从右边使用指定的字符分割字符串只分割一次,指定的字符串被单独的分割成一个字符串,输出元组
v3 = test.split('s',1) # 用指定的字符串分割字符串,默认全部分割,也可指定从左分割次数,分割后作为分隔符的字符被去掉  ,输出列表
v4 = test.rsplit('s',2) # 用指定的字符串分割字符串,默认全部分割,也可指定从右分割次数,分割后作为分隔符的字符被去掉 ,输出列表


print(v) print(v2) print(v3) print(v4)

('jiangde', 's', 'jjdfsddessee')
('jiangdesjjdfsdde', 'ss', 'ee')
['jiangde', 'jjdfsddessee']
['jiangdesjjdfsdde', '', 'ee']

#只根据换行符进行分割字符串 ,参数true和false 决定是否保留换行符或回车符

test = 'sdssdd\nsdsdfew\nsdsde\rwwe'

v = test.splitlines(True)  #只对换行和回车符进行分割 ,True作为参数的时候分割的字符串包含换行符和回车符,False则不包含,默认False

print(v)
['sdssdd\n', 'sdsdfew\n', 'sdsde\r', 'wwe']

  

#字符串以什么什么开否或结尾

test = 'sadrsee'

v = test.startswith('s') #是否以s 开头
v1 = test.endswith('e') # 是否以s 结尾
print(v,v1)

# 大小写转换

test= 'jiadSDEFEW'

v = test.swapcase()

print(v)

JIADsdefew

#字符串替换

test = 'jiangdggef'
red = test.replace('d','y',1) #替换第一次匹配的结果,2代表替换前两次匹配的结果,默认全部替换
print(red)

  

  

  

  

  

  

  

 

  

  

  

 

  

  

  

  

  

  

  

  

  

  

  

  

posted @ 2019-08-26 10:17  jiayusheng  阅读(148)  评论(0编辑  收藏  举报