字符串操作及命令

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Feng_xiaowu/article/details/99768732

字符串操作及命令

定义:使用单引号或者双引号括起来的任意文本

常用方法

字符串的拼接:

  1. 使用"+"号: str3 = str1 + str2

    str1 = "hello"
    str2 = "world"
    print(str1+str2)
    helloworld
    
  2. 使用",":

    str1 = "hello"
    str2 = "world"
    print(str1,str2)
    hello world
    

    注意使用","在输出的时候,会在逗号位置产生一个空格

  3. 使用%号:%s代表字符串

    print("%s%s"%(str1,str2))
    helloworld
    

  4. 使用join函数进行拼接: string.join(序列)

    功能:以指定的字符串对序列中的元素进行拼接,并且返回拼接后的字符串

    注意:序列中的元素必须是字符串

    l1 = ["you","are","a","good","man"]
    print(" ".join(l1))
    you are a good man
    

字符串重复

string = str1 *n

功能: 将指定的字符串str1重复n次输出,返回一个新的字符串

print(str1*5)
hellohellohellohellohello

索引

  • 功能:获取字符串中指定的字符 ,通过[索引/下标]来实现,下标或索引从0开始编号

  • 语法: 变量名[索引值]

  • 索引值的取值范围: [0,len(str)-1] 或者是[0,len(str)),索引可为负,为负的时候从0 开始取

    print(str1[0])		#'h'
    print(str1[1])		#'e'
    print(str1[-1])		#'o'
    

获取字符串长度

len(string)
print(len(str1))	#5

字符串截取

格式: string[start:stop:step]

start:默认为0 stop:默认len(string) step:默认为1
截取范围:[start,stop)

print(str1[:2:-1])		#	"ol"
print(str1[1::-1])		#	"eh"

字符串倒叙

  • string[::-1] 字符串倒序输出

  • string[start::-1] 正着数到start为止,倒着从start位置取到开始

  • string[:end-1] 倒着取到end的位置,不包含end

    print(str1[::-1])		#	"olleh"
    print(str1[2:1:-1])		#	"l"
    print(str1[:])			#	"hello"
    

判断是否包含指定的字符串

str1 in str2

若str1 是str2的子串则返回True,否则返回False

str1 = "hello"
str2 = "world"
print("hl" in str1)		#False

字符串常用函数

eval(string)

功能:将字符串转为有效的表达式,并且将表达式的结果返回

l1 = eval("(1,2,3,4)")
print(l1)
(1, 2, 3, 4)
str(object)

功能:将其他类型的数据转为字符串

大小写转换函数

  • str.lower():将大写字母转为小写字母

  • str.upper():将小写转为大写

  • str.swapcase:大写转为小写,小写转为大写

  • str.title():将字符转为标题化字符串,每个单词首字母大写

  • str.capitalize():将开头首字母大写,其他都小写

    string = "You Are very good!!!"
    print(string.lower())		#"you are very good!!!"
    print(string.upper())		#"YOU ARE VERY GOOD!!!"
    print(string.swapcase())	#"yOU aRE VERY GOOD!!!"
    print(string.title())		#"You Are Very Good!!!"
    print(string.capitalize())	#"You are very good!!!"
    
    

字符填充函数

  • str.center(width,fillchar)

    返回一个以指定字符串居中长度为width使用fillchar来进行填充的字符

  • str.ljust(width,fillchar)

    返回一个以指定字符串居左长度为width使用fillchar来进行填充的字符

  • str.rjust(width,fillchar)

    返回一个以指定字符串居右长度为width使用fillchar来进行填充的字符

  • str.zfill(width,fillchar)

    返回一个以指定字符串居右长度为width使用0来进行填充的字符

    string = "You Are very good!!!"
    print(string.center(50,"&"))
    print(string.ljust(50,"&"))
    print(string.rjust(50,"&"))
    print(string.zfill(50))
    
    结果如下:
    "&&&&&&&&&&&&&&&You Are very good!!!&&&&&&&&&&&&&&&"
    "You Are very good!!!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"
    "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&You Are very good!!!"
    "000000000000000000000000000000You Are very good!!!"
    
    

字符统计函数

str.count(x,start,end)

功能:统计x在string中出现的次数,若不指定start和end,默认统计整个字符串,若指定,取值范围为[start,end)

string = "You Are very good!!!"
print(string.count("o",0,14))	# 1

查找字符

str.find(sub,start, end)

功能:从左往右在string中查找sub,若找到则返回第一个匹配的下标,若找不到,则返回-1
范围:若不指定start和end则默认查找整个字符串,若指定start和end则查询范围为[start,end)

string = "You Are very good!!!"

print(string.find("o",3,14))	# -1
str.rfind(sub, start, end)

功能:从右往左在string中查找sub,若找到则返回第一个匹配的下标,若找不到则返回-1
范围:若不指定start和end则默认查找整个字符串,若指定start和end则查询范围为[start,end)

string = "You Are very good!!!"

print(string.rfind("o",3,14))	# -1
str.index(sub,start,end)

功能:从左往右在string中查找sub,若找到返回第一个匹配的下标,若找不到则报错
范围:若不指定start和end则默认查找整个字符串,若指定start和end则查询范围为[start,end)

string = "You Are very good!!!"
print(string.index("o",3,14))	
'''print(string.index("o",3,14))
ValueError: substring not found'''
str.rindex(sub, start,end)

功能:从右往左在string中查找sub,若找到返回第一个匹配的下标,若找不到则报错
范围:若不指定start和end则默认查找整个字符串,若指定start和end则查询范围为[start,end)

string = "You Are very good!!!"
print(string.index("o",3,14))	
'''print(string.index("o",3,14))
ValueError: substring not found'''

strip函数

str.lstrip(chars)

功能:去掉string左边指定的chars.若不指定,默认去除空白符[’’ \t \n \f \r]

str.rstrip(chars)

功能:去掉string右边指定的chars.若不指定,默认去除空白符

str.strip(chars)

功能:去掉左右两边指定的chars.若不指定,默认去除空白符

string2 = "*******You Are **very** good!!!**********"
print(string2.lstrip("*"))
print(string2.rstrip("*"))
print(string2.strip("*"))
print(string2.lstrip("*").rstrip("*"))
运行结果如下:
"You Are **very** good!!!**********"
"*******You Are **very** good!!!"
"You Are **very** good!!!"
"You Are **very** good!!!"

split函数

str.split(seq,maxsplit)

功能:从左往右以指定的seq对string进行切片,并将切片后的结果以列表的方式返回
若不指定seq默认情况下使用空白符进行切片

str.rsplit(seq,maxsplit)

功能:从右往左以指定的seq对string进行切片,并将切片后的结果以列表的方式返回
若不指定seq默认情况下适用空白符进行切片

str.splitlines(keepends)

功能:对string按行进行切片,切片的结果以列表的方式返回,keepends默认为False,
不保留换行符,当keepends为True时保留换行符

string = "You Are very good!!!"

print(string.split(maxsplit=10))
print(string.rsplit(maxsplit=2))
print(string.splitlines(keepends=True))

结果:
"['You', 'Are', 'very', 'good!!!']"
"['You Are', 'very', 'good!!!']"
"['You Are very good!!!']"

max和min

max(str): 返回str中ASCII最大的值
min(str): 返回str中ASCII最小的值

replace函数

str.replace(old,new,count)

old: 旧字符串
new: 新字符串
count: 替换次数
功能:将str中指定的旧字符串替换成新字符串,并将替换的新字符串返回;
若指定count,则替换count次,不指定,则替换全部

映射替换:
1.生成一个映射表
table = str.maketrans(‘god’,‘123’)
2.根据映射表进行替换
str2.translate(table)

str1 = "hello world, hello"
str2 = str1.replace("hello","hi",1)
print(str2)
"hi world, hello"
str3 = "good"
table = str3.maketrans("god","123")
print(str1.translate(table))
"hell2 w2rl3, hell2"

startwith和endwith

  • str.startwith(sub): 判断str是否以sub开头
  • str.endwith(sub): 判断str是否已sub结尾
phonenum = "12478880233"
print(phonenum.startswith("123"))	#False
print(phonenum.startswith("124"))	#True
print(phonenum.endswith("244"))		#False
print(phonenum.endswith("233"))		#True

encode和decode

str.encode(“utf-8”)

功能:将普通字符串转为二进制字符串

str.decode(“utf-8”)

功能:将二进制字符串转为普通字符
注意:编码与解码使用相同的编码格式

print(phonenum.encode("utf-8"))
bstr = "你好啊".encode("utf-8")
print(bstr)
print(bstr.decode("utf-8"))
结果:
"b'12478880233'"
"b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x95\x8a'"
"你好啊"

判断组成

str.isalpha()

功能:判断str中的字符是否为字母,若是,返回True,否则返回False
注意:中午不考虑[出现中文也为True]

str.isalnum()

功能:判断str中的字符是否为字母或者数字,是,返回True,否则返回False

str.isspace()

功能:判断str是否只包含空白符,是,返回True,否则,返回False

str.isupper()

功能:判断str中所有的字符是否都为大写,是,返回True ,否则返回False

str.islower()

功能:判断str中所有的字符是否都为小写,是,返回True ,否则返回False

str.title()

功能:判断str中所有的字符是否为标题化字符[所有单词首字符大写],是,返回True ,否则返回False

str4 = 'hello中国'
str5 = 'Hello World'
str6 = 'Hello2World'
str7 = 'GOO D'

print(str4.isalpha())	#	Ture
print(str5.isalpha())	#	False
print(str6.isalpha())	#	False

print(str4.isalnum())	#	True
print(str5.isalnum())	#	False
print(str6.isalnum())	#	True
#
print(str4.istitle())	#	False
print(str5.istitle())	#	True
print(str6.istitle())	#	True
print(str7.istitle())	#	Falss

print(str4.islower())	#	True
print(str5.islower())	#	False
print(str6.islower())	#	False
print(str7.islower())	#	False

print(str4.isupper())	#	False
print(str5.isupper())	#	False
print(str6.isupper())	#	False
print(str7.isupper())	#	True

编码与解码

  • ord(char)

    功能:返回char的ASCII码值

  • chr(code)

    功能:返回code对应的ASCII的字符

猜你喜欢

转载自blog.csdn.net/Feng_xiaowu/article/details/99768732
今日推荐