python字符串处理

1、字符串运算

str3=str1 + str2     #字符串连接

str3=str1*x        #重复输出字符串,x代表重复次数

str3=str1[x]        #通过索引查找字符,x从0开始

str3=str1[x:y]       #截取字符串,从第x个字符到第y-1个字符,x默认为0,y如果为空,则代表末尾。

2、格式化字符串

str1 = "I am str1"                         #定义一个字符串
num = 40                                    #定义一个整数
f1 = 3.1415926                           #定义一个浮点数

print("str1 = %s" %(str1))           #%s代表一个字符串,%(str1)代表用str1这个变量的值替代前面的%s
print("num = %d" %(num))         #%d代表一个整数,%(num)代表用num这个变量的值替代前面的%d
print("f1 = %f" %(f1))                  #%f代表一个浮点数,%(f1)代表用f1这个变量的值替代前面的%f
print("f1 = %.3f" %(f1))                #%.2f代表一个浮点数,并通过四舍五入保留三位小数,%(f1)代表用f1这个变量的值替代前面的

输入结果如下:

3、转义符

\b  :删除符

\t 的意思是 :水平制表符。将当前位置移到下一个tab位置。

\r 的意思是: 回车。将当前位置移到本行的开头。

\n 的意思是:回车换行。将当前位置移到下一行的开头。

\f 的意思是:换页。将当前位置移到下一页的开头。

str1 = 'good\nnice\nhandsome'      #定义一个带\n换行符的字符串变量
str2 = 'good\tnice\thandsome'       #义一个带\t制表符的字符串变量
str3 = 'good\rnice handsome'        # 回车。将当前位置移到本行的开头。
str4 = 'good\bnice\bhandsome'     #定义一个带\b删除符的字符串变量 会将\b前面的一个字符删掉
print('=========str1==========')
print(str1)
print('=========str2==========')
print(str2)
print('=========str3==========')
print(str3)
print('=========str4==========')
print(str4)

以下是输入结果:

如果字符中有好多字符串都需要转义,就需要加入好多\,为了简化,Python允许用r表示内部的字符串默认不转义

str1 = "abcd\nefgh\nijk" #这里的\n会被认为是一个换行符
str2 = r"abcd\nefgh\nijk" #前面加个r以后,这里的\n会被认为是一个普通字符
print('=========str1==========')
print(str1)
print('=========str2==========')
print(str2

以下是输出结果:

4、将字符串str当成有效的表达式来求值并返回计算结果

eval(str)

str1 = '1+1'
str2 = '3-2'
str3 = '4*4'
str4 = '10/2'
str5 = 'abc'
print('str1 = ' + str(eval(str1))) #将str1作为一个算式,并返回计算结果
print('str2 = ' + str(eval(str2))) #将str2作为一个算式,并返回计算结果
print('str3 = ' + str(eval(str3))) #将str3作为一个算式,并返回计算结果
print('str4 = ' + str(eval(str4))) #将str4作为一个算式,并返回计算结果
print('str5 = ' + str(eval(str5))) #将str5作为一个算式,并返回计算结果,由于str5不是一个有效的算式,会报错。

 输出结果:

5、返回字符串的长度(字符个数)

len(str)

6、转换字符串中大写字母为小写字母

str.lower()

7、转换字符串中小写字母为大写字母

str.upper()

8、转换字符串中小写字母为大写字母,大写字母为小写字母

str.swapcase()

9、首字母大写,其他小写

str.capitalize()

10、每个单的首字母大写,其它小写

str.title()

11、返回一个指定宽度的居中字符串

str.center(width[,fillchar])

width :填充后的字符串长度

fillchar:填充字符,默认为空格

12、返回一个指定宽度的左对齐字符串

str.ljust(width[,fillchar])

width :填充后的字符串长度

fillchar:填充字符,默认为空格

13、返回一个指定宽度的右对齐字符串

str.rjust(width[,fillchar])

width :填充后的字符串长度

fillchar:填充字符,默认为空格

14、返回一个长度为width的字符串,原字符串右对齐,前面补0

15、返回字符串中str出现的次数

str.count(str[,start][,end])

str:要查找的字符串

start:查找的起始位置

end:查找的结束位置

16、查找字符串是否存在

str.find(str[, start][,end])                   #从左向右找

str.rfind(str[, start][,end])]                #从右向左找

str.index(str[, start][,end])               #和find一样,不过未找到会报错。

str.rindex(str[, start][,end])               #和rfind一样,不过未找到会报错。

str:要查找的字符串

start:查找的起始位置

end:查找的结束位置

到找返回0,未找到返回-1

17、截掉字符串指定的字符

str1.lstrip(chars)                 #截掉左侧

str1.rstrip(chars)                #截掉右侧

str1.strip(chars)                 #截掉两侧

chars:指定裁掉的字符,默认为空格

18、分隔符截取字符串

str_name.split(str[,num])       #截取后以列表方式保存

str:分隔符

num:截取次数

str.splitlines([keepends])                     #以\n \r为分隔符截取字符串

keepends: 为True时,保留换行符。

str1 = "I am goodman\nI am nice main\rI am handsome man"
print(str1.splitlines())                         #以\n \r为分隔符截取字符串

 输出结果:

str1 = "I am goodman\nI am nice main\rI am handsome man"
print(str1.splitlines(True))                #以\n \r为分隔符截取字符串,保留换行符

19、以指定的字符串分隔符组合成字符串

list1 = ['I','am','good','man']
str2 = ' '.join(list1)                 #以空格为分隔符,组合list1中的元素为一个字符串
str3 = '*'.join(list1)                 #以*为分隔符,组合list1中的元素为一个字符串
print('str2=%s\nstr3=%s' %(str2,str3))

输出结果: 

 

20、获取字符串中的最大值和最小值 (ASCII码)

str4 = 'I am good man'
print('max=',max(str4)) #找出字符串中的最大值(ASCII码值)
print('min=',min(str4)) #找出字符串中的最小值(ASCII码值)

21、替换字符串的某些内容

 replace(oldstr, newstr, count)

oldstr:被替换的内容

newstr:替换的新内容

count:替换次数(默认为全部替换)

str5 = 'I am a good good man'
str6 = str5.replace('good','nice')          #用'nice'替换字符串中的'good',全部替换
str7 = str5.replace('good','nice',1)        #用'nice'替换字符串中的'good',替换一次
print('str6=',str6)
print('str7=',str7)

输出结果:

22、字符串映射表

str.maketrans(oldstr,newstr)              #oldstr和newstr中的字符一一映射,而不是映射整个字符串

#创建一个字符串映射表
#=============================
t1 = str.maketrans('gd','12')      #创建一个字符串映射表,g--1,d--2
str1 = 'I am good man'
str2 = str1.translate(t1)          #引用字符串映射表
print(str2)

输出结果:

23、判断是否是以给定的字符串开头/结尾

startswith(str[, start=0, end=len(str)])            #判断开头,返回True或False

endswith(str[, start=0, end=len(str)])             #判断开头,返回True或False

start:起始位置(默认为0)

end:结尾位置(默认为len(str),即字符串尾

#在给定的范围内判断是否是以给定的字符串开头,如果没有指定范围,默认整个字符串
#===============================================================
str1 = 'I am good main'
print(str1.startswith('I'))
print(str1.startswith('I',1))

输出结果:

24、编解码

str.encode(encoding='str',errors='strict |  ignore')

encoding:编码方式如utf-8,gbk

errors='strict |  ignore' :编码错误后的处理方式,默认为strick,会报错,ignore:忽略错误

#编解码
#=======================================================================
str1 = 'I am good man,我是一个好男人'
str2 = str1.encode(encoding='utf-8')                #将str1进行解码
print('str2=',str2)
str3 = str2.decode(encoding='utf-8')                #将str2进行解码,解码的格式要与编码格式相同
str4 = str2.decode(encoding='gbk',errors='ignore')  #用不同的格式,将str2进行解码,结果会出错
print('str3=',str3)
print('str4=',str4)

输出结果:

25、判断字符串中是否为字母

str.alpha() 

如果字符串中至少有一个字符,且字符串全部都为字母则返回True,否则返回False.

26、判断字符串中是否为数字和字母

str.isalnum()

如果字符串中至少有一个字符,且字符串全部都为字母和数字,则返回True,否则返回False.

27、判断字符串中是否为大写字母

str.isupper()

如果字符串中至少有一个英文字符,且字符中的字母全部都为大写字母,则返回True,否则返回False.

28、判断一个字符是否为标题化

str.istitle()

字符串中的单词首字母为大写,则返回True,否则返回False

29、判断一个字符串中是否只包含数字

str.isdigit()

str.numeric()

字符串的字符全是数字,返回True,否则返回False.

30、判断一个字符串中是否只包含十进制数字

str.isdecimal()

字符串的字符全是十进制数字,返回True,否则返回False.

31、判断一个字符串中是否只包含空白符

str.isspace()

字符串的字符全是空白符(或是\t \n \r),返回True,否则返回False.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暮毅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值