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.