字符串的处理方法

1.eval(str)
功能:将字符串str当成有效的表达式来求值并返回计算结果。

num1 = eval("123.1")
print(num1)					#(输出)123.1
print(type(num1))		#(输出)<class 'float'>				#type 看数值类型	float为 浮点数
															#即eval和float一样能转为小数; 还有其他的功能不局限
print(eval("+123"))		#(输出)123
print(eval("-123"))		#(输出)-123
print(eval("12+3"))		#(输出)15							 # 下面这两种 但用int 就会报错
print(eval("12-3"))		#(输出)9

print(int("12+3"))
print(int("12-3"))
#(输出)ValueError: invalid literal for int() with base 10: '12+3'
#(输出)ValueError:无效的字面意思为int()和基数10:12+3'

2.len(str)
返回字符串的长度(字符的个数)

print(len("wahat are you doing now"))
#(输出)23

3.(str).lower()
转化字符串的大学字母为小写字母

str1 = "Success can attract friends, frustration can be tested."
print(str1.lower())			#(输出)success can attract friends, frustration can be tested.
print("str1 = %s"%(str1))	#(输出)str1 = Success can attract friends, frustration can be tested.

4.upper()
转换字符串中小写字母为大写字母

str1 = "Success CAN attract friends, frustration can be tested."
print(str1.upper())
#(输出)SUCCESS CAN ATTRACT FRIENDS, FRUSTRATION CAN BE TESTED.

5.swapcase()
转换字符串中大小写字母为小大写字母

str2 = " AAAbbb"
print(str2.swapcase())
#(输出)	aaaBBB

6.(str).capitalize()
首字母大写,其他字母小写

str2 = "AAAbbb"
print(str2.capitalize())
#(输出)	 Aaabbb

7.(str).title()
每个单词的首字母大写 其他小写

str2 = "Success can attract friends, frustration can be tested."
print(str2.title())
#(输出)	Success Can Attract Friends, Frustration Can Be Tested.

8.(str).center()
center(width.fillchar)
#width 宽度 fillchar 为填充的字符串(不写则默认空格填充)
#char (character 缩写) 单词意思字符
#center字符居中 两边有自动填充字符

str2 = "Good job"
print(str2.center(40,"*"))			#字符有40个,不够的自动填充字符*,其实下标还是只有39(0-39)
print(str2.center(40))
#(输出)	****************Good job****************
              			Good job

9.(str).ljust()
ljust(width.fillchar)
left缩写成ljust的l
返回一个指定宽度的左对齐字符串,fillchar为填充字符
不写fillchar 则默认空格
ljust() L 的小写

str2 = "Good job"
print(str2.ljust(40) )			#(输出)Good job
print(str2.ljust(40,"*") )		#(输出)Good job********************************
								#从字符后面移植填充到指宽度
print(str2.ljust(40),"*" )		#(输出)Good job                                 *
 								#在宽度的最后填充一个字符结尾

10.(str).rjust()
rjust(width.fillchar)
right缩写成rjust的r
返回一个指定的宽度的的右对齐字符串
不写fillchar 则默认空格

str2 = "Good job"
print(str2.rjust(40) )			#(输出)                                Good job
print(str2.rjust(40,"&") )		#(输出)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Good job
print(str2.ljust(40),"&")		#(输出)Good job                                 &

11.(str).zfill()
zfill(width)
返回一个长度为width的字符串,右对齐 前面补0

str2 = "Good job"
print(str2.zfill(40) )
#(输出)	00000000000000000000000000000000Good job

12.(str).count()
count(str[,start][,end])
判断字符串中,从start开始的下标到字符串的结尾end中出现了多少个str (给定字符)
如果 start到end 没写 默认 从头到尾字符串中出现str出现的次数

str3 = "ABCD abc is is is end"
print(str3.count("is",9,len(str3)))     #就是从下标8以后开始
#(输出)	3

print(str3.count("is",10,len(str3)))  #就是从下标9以后开始
#(输出)	2

13.(str).find()
find(str[,start][,end])
start开始查找的位置,默认为 0
检测str字符串是否包含在字符串中,可以指定范围,默认从头到尾第一次出现的开始下标

str3 = "ABCD abc is is is end"
print(str3.find("sda"))					#(输出)-1  #如字符串中没有给定字符 则返回-1
print(str3.find("abc"))					#(输出)5
print(str3.find("abc",5,len(str3)))		#(输出)5

14.(str).find()
rfind(str[,start][,end])
start开始查找的位置,默认为 0
检测str字符串是否包含在字符串中,可以指定范围,默认从右往左检测

str3 = "ABCD abc is is is end"
print(str3.rfind("sda"))					#(输出)-1  #如字符串中没有给定字符 则返回-1
print(str3.rfind("abc"))					#(输出)5
print(str3.rfind("abc",13,len(str3)))		#(输出)-1

15.(str).find()
rfind(str[,start][,end])
start开始查找的位置,默认为 0
和find()一样,只不过如果str不存在会报错
一样的有 rindex 从右往左

str4 = "zxcvb is is a goa goaSSsdAod asd"
print(str4.index("goa"))		#(输出)14
print(str4.rindex("goa"))		#(输出)18

str3 = "ABCD abc is is is end"
print(str4.index("abc"))		#(输出)5
print(str4.rindex("abc"))		#(输出)5
#这里就可以看出,如果字符串中有两个对应值,左右查找结果是不一样的,
如果只有一个值,查找的结果是一样的,默认为从左到右的开始下标。

16.(str).lstrip()
截掉(删掉)左侧指定的字符,默认状态下为空格

str5 = "    AAAAAAA"
str6 = "*****AAAAAAAA"
print(str5.lstrip())			#(输出)AAAAAAA
print(str6.lstrip("*"))			#(输出)AAAAAAAA

17.(str).rstrip()
截掉(删掉)截掉右侧指定的字符,默认状态下为空格

str7 = "*****A AA AAA    "
str8 = "*****A AA AAA***"
print(str7.rstrip())			#(输出)*****A AA AAA
print(str7.rstrip("*"))			#(输出)*****A AA AAA

18.(str).strip()
截掉(删掉)截掉字符传中左右两端的指定字符,默认状态下为空格

str9 = "*****AAAAAAAA ****"
print(str9.strip("*"))
#(输出)AAAAAAAA

19.ASCII表
字符的存储是以ASCII进行转化 即一个参照表
a-先变成数字-转化为二进制
ord.(str)将字符转化为数字
chr.(int)将数字转换为字符

str112 = "a"  				#将字符转化为数字
print(ord(str112))			#(输出)97
str113=chr(45)				#将数字转换为字符
print(str113)				#(输出)-

20.字符串的比较
从第一个字符开始比较谁的ASCII值谁就大
如果前面相同 则比较后一位直到比较出谁大
如果都相同 则相等

print("acc"<"b")			#(输出)True
print("sunck"=="sunck")		#(输出)True
print("acc"<"bcc")			#(输出)True
print("zaa">"azz")			#(输出)True

21.(str).split()
split(str="",num)
以str为分隔符截取字符串,则仅截取num 个字符串

str5 = "sunck*is**a*****good man"
print(str5.split("*",4))
#(输出)['sunck', 'is', '', 'a', '****good man']

22.(str).splitlines()
splitlines([keepends]) 按行(’\r’,’\r\n’,’\n’ )分隔,返回
keepends == True 会保留换行符

str40 = """sunck is a good man
sunck is a beautiful man
sunck is a nice man
"""
print(str40.splitlines())
#(输出)['sunck is a good man ', 'sunck is a beautiful man ', 'sunck is a nice man ']

print(str40.splitlines(True))
#(输出)['sunck is a good man \n', 'sunck is a beautiful man \n', 'sunck is a nice man \n']

23.(str).join()
join(sep)
以指定的字符串分隔符,将sep中的所有元素组合成一个字符串

list41 = ['sunck','is', 'a','good','man']
str42 = "&%".join(list41)
print(str42)
#(输出)sunck&%is&%a&%good&%man

24.字符串中的max() min()
其实就是按照ASCII来转换成数字进行比较大小。

str43 ="sunck is a good man!z"
print(max(str43))
print(min(str43))  #空格为最小 需要下面这种标记才看得到
print("*",min(str43),"*")
#(输出)	z
												#此处为空格
		*   *									#两个*中间有一个空格

25.(str).replace()
替换
replace(oldstr,newstr,count)
用newstr替换oldstr,默认是全部替换,如果制定了count,那么直替换前count个

str44 = "AAAA  is a good good good boy"
str45 = str44.replace("good","nice",1)
print(str45)
#(输出)sunck is a nice good good man  			#即将第一个good替换为nice

26.创建一个字符串映射表
(str).maketrans
这里使用str.maketrans函数来创建一个表,它可以使用各种参数,但是需要三个Arguments(参数)。
一对一替换,一个字符对应另外一个字符。替换不可控

t46 =str.maketrans("good","abcd")
print(t46)
#(输出) {103: 97, 111: 99, 100: 100}		#g-a o-b  o-c d-d   对面替换  不可控
										#103: 97, 111: 99, 100: 100 其实是对应的值,映射的值

(str).translate()
替换字符串

t46 =str.maketrans("good","abcd")
print(t46)
str47 = "AAAAA is a good good AAA"
str48 = str47.translate(t46)
print(str48)
#(输出)	{103: 97, 111: 99, 100: 100}
		AAAAA is a accd accd AAA

27.(str).starswith()
在一个范围内查找字符串,如果有即返回True,否则False
查找范围,如果没有范围,默认整个字符串。
starswith(str,start=0,end=len(str))

str49 = "sunck is a good good man"
print(str49.startswith("sunck",5,16))
#(输出)False

28.(str).endswith()
判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False

str50 = "sunck is a good good man"
print(str50.endswith("man"))
#(输出)True

29.字符串的编码与解码
编码(str).encode()
encode(encoding=“utf-8”,errors=“strict”)
encoding 默认 utf-8
errors 默认 strict
gbk为国标码
编码用的什么码 解码的时候就要用对应的码解

str51 = "AAAAA is a good good man"
data52 = str51.encode()
print(str51.encode())
#(输出)b'AAAAA is a good good man'

str54 = "AAAAA is a good good man 赵"
data55 = str54.encode()
print(str54.encode())
#(输出)b'AAAAA is a good good man \xe8\xb5\xb5'

解码(str).decode()
注意:要与编码是的编码格式一致

str51 = "AAAAA is a good good man"
data52 = str51.encode()
str54 = "AAAAA is a good good man 赵"
data55 = str54.encode()

str53 = data52.decode()
print(str53)
#(输出)AAAAA is a good good man

str56 = data55.decode()
print(str56)
#(输出)AAAAA is a good good man 赵

29.(str).isalpha()
检测字符串是否只由字母组成。
判断如果字符传中至少有一个字符(长度大于1) 且所有字符都是字母 返回True
否则返回false

str54 = "sunckisagoodman"
print(str54.isalpha())
#(输出)True

30.(str).isalnum()
检测字符串是否只由字母和数字组成。
#如果字符传中至少有一个字符(长度大于1)且所有字符都是字母或者数字返回True,否则返回False。

str55 = "aa123"
print(str55.isalnum())
#(输出)True

31.(str).issupper()
检测字符串是否只由大写英文字母或者数字组成。
#如果字符传中至少有一个字符(长度大于1) 且所有的字符都是大写英文字母或者数字返回True,否则返回False。

print("ABC".isupper())			#(输出)True
print("ABC1".isupper())			#(输出)True
print("ABC#".isupper())			#(输出)True
print("ABCa".isupper())			#(输出)False

32.(str).islower()
检测字符串是否只由小写字母组成。
#如果字符传中至少有一个字符(长度大于1) 且所有的字符都是小写字母返回True
,否则返回False

print("ABC".isupper())			#(输出)True
print("ABC1".isupper())			#(输出)False
print("ABC#".isupper())			#(输出)True
print("ABCa".isupper())			#(输出)True

33.(str).istitle()
检测字符串是否首字母大写。
如果字符串是首字母大写的返回True,否则返回False

print("Sunck Is".istitle())		 #(输出)True
print("sunck is".istitle()) 	 #(输出)False

34.(str).isdigit()
检测字符串是否只由数字组成。
如果字符传中只包含数字,返回True 否则返回False

print("123".isdigit())			#(输出)True
print("123a".isdigit())			#(输出)False
print("123B".isdigit())			#(输出)False

35.(str).isnumeric ()
检测字符串是否只由数字组成。
如果字符传中只包含数字,返回True 否则返回False

print("1234".isnumeric())		#(输出)True
print("1234a".isnumeric())		#(输出)False
print("1234A".isnumeric())		#(输出)False

36.(str).isdecimal ()
字符传中只包含十进制字符

print("1234".isdecimal())		#(输出)True
print("1234a".isdecimal())		#(输出)False
print("1234B".isdecimal())		#(输出)False

36.(str).isspace ()
字符传中只包含十进制字符

print(" ".isspace())			#(输出)True
print("   ".isspace())			#(输出)True
print("\t ".isspace()) 			#(输出)True		 	# \t 四个空格
print("\n".isspace())			#(输出)True
print("\r".isspace())			#(输出)True
10-03 18:30