Str 字符串
基本操作
本章主整理关于Python中Str字符串的相关字符及操作方法。
1.格式化输出
相关代码:
str = "天气不错"
num = 12.567
ASC = 65
print("您的字符串是%s,数字是%0.2f"%(str,num))
print("您的字符串是%s,数字是%0.2f,asc值:%c"%(str,num,ASC))
2.转义字符
相关代码:
print(" \"床前明月光\",\
疑是地上霜;\r\
举头望明月,\
低头思故乡。")
print("\\床前明月光\\,\n\\疑是地上霜\\。\n\\举头望明月\\,\n\\低头思故乡\\。")
3.Str_运算符
相关代码:
a = "Hello"
b = "Python"
print(a + b) #HelloPython
print(a * 2) #HelloHello
4.Str_操作方法
(1)查找
string.find(str, beg=0, end=len(string))
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,
如果是返回开始的索引值,否则返回-1
string.rfind(str, beg=0, end=len(string))
类似于 find()函数,不过是从右边开始查找.
相关代码:
str = "1263456789"
#find and rfind 操作
a = str.find("6")
b = str.find("6",7,len(str))
c = str.rfind("6")
d = str.rfind("6",7,len(str))
print(a) # 2 找到返回索引值
print(b) # -1 找不到返回 -1
print(c) # 6 找到返回索引值(从右往左找)
print(d) # -1 找不到返回 -1
string.index(str, beg=0, end=len(string))
类似于 find()函数,但是找不到报异常.
string.rindex(str, beg=0, end=len(string))
类似于 rfind()函数,但是找不到报异常.
相关代码:
a = str.index("6")
b = str.index("6",7,len(str))
c = str.rindex("6")
d = str.rindex("6",7,len(str))
print(a) # 2 找到返回索引值
print(b) # -1 找不到返回 ValueError
print(c) # 6 找到返回索引值(从右往左找)
print(d) # -1 找不到返回 ValueError
(2)统计
string.count(str, beg=0, end=len(string))
检测 str 是否包含在 string 中出现的次数,如果 beg 和 end 指定范围,则检查是否包含在指定范围内
相关代码:
a = str.count("6")
b = str.count("6",7,len(str))
print(a) #2
print(b) #0
(3)分割.切片
string.split(str="", num=string.count(str))
以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
string.splitlines([keepends])
按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
相关代码:
str = "床前明月光,\r疑似地上霜,\r\n举头望明月,\n低头思故乡。"
a = str.split(",")
b = str.split(",",2)
c = str.splitlines(False)
d = str.splitlines(True)
print(a) #["床前明月光", "\r疑似地上霜", "\r\n举头望明月", "\n低头思故乡。"]
print(b) #["床前明月光", "\r疑似地上霜", "\r\n举头望明月,\n低头思故乡。"]
print(c) #["床前明月光,", "疑似地上霜,", "举头望明月,", "低头思故乡。"]
print(d) #['床前明月光,\r', '疑似地上霜,\r\n', '举头望明月,\n', '低头思故乡。']
string.partition(str)
有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
string.rpartition(str)
类似于 partition()函数,不过是从右边开始.
str = "aaa111aaa"
a = str.partition("111")
b = str.partition("1")
c = str.rpartition("1")
print(a) #('aaa', '111', 'aaa')
print(b) #('aaa', '1', '11aaa')
print(c) #('aaa11', '1', 'aaa')
(4)判断
string.startswith(obj, beg=0,end=len(string))
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
string.endswith(obj, beg=0,end=len(string))
检查字符串是否是以 obj 结尾,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
相关代码:
str = "aaa111aaa"
a = str.startswith("a")
b = str.startswith("a",3,len(str))
c = str.endswith("a")
d = str.endswith("1")
print(a) #True
print(b) #False
print(c) #True
print(d) #False
string.isalnum()
所有字符都是字母或数字则返回 True,否则返回 False
相关代码:
str = "sdasdfd123244s"
str1 = "sd123das/"
a = str.isalnum()
b = str1.isalnum()
print(a) #True
print(b) #False
string.isalpha()
所有字符都是字母则返回 True,否则返回 False
相关代码:
str = "sdmfsdfmdksDFfdsf啊"
str1 = "kdfjsdkfj111"
a = str.isalpha()
b = str1.isalpha()
print(a) #True
print(b) #False
string.isdigit()
所有字符都是数字则返回 True,否则返回 False
相关代码:
str = "21321412132"
str1 = "2da1321412132"
a = str.isdigit()
b = str1.isdigit()
print(a) #True
print(b) #False
string.isupper()
所有字符都是大写则返回 True,否则返回 False
相关代码:
str = "ASDSAFFDFAS"
str1 = "SADSDAsddas"
a = str.isupper()
b = str1.isupper()
print(a) #True
print(b) #False
string.islower()
所有字符都是小写则返回 True,否则返回 False
相关代码:
str = "ASDSAFFDFAS"
str1 = "asdsasddas"
a = str.islower()
b = str1.islower()
print(a) #False
print(b) #True
string.isspace()
只包含空格则返回 True,否则返回 False
相关代码:
str = " "
str1 = " , "
a = str.isspace()
b = str1.isspace()
print(a) #True
print(b) #False
(5)大小写转化
string.capitalize()
把字符串的第一个字符大写
相关代码:
str = "sdsahhsadisa"
a = str.capitalize()
print(a) #Sdsahhsadisa
string.upper()
转换 string 中的小写字母为大写
相关代码:
str = "abcdEFG"
a = str.upper()
print(a) #ABCDEFG
string.lower()
转换 string 中的大写字母为小写
相关代码:
str = "dddadERQR"
a = str.lower()
print(a) #dddaderqr
(6)对齐
string.ljust(width)
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
相关代码:
str = "1"
a =str.ljust(3,"0")
print(a) #100
string.rjust(width)
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
相关代码:
str = "2"
a = str.rjust(3,"0")
print(a) #002
string.center(width)
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
相关代码:
str = "3"
a = str.center(3,"0")
print(a) #030
(7)裁剪
string.strip([obj])
删除 string 字符串前后的的obj,如果不传参数,删除前后空格
相关代码:
str = " aaaa "
str1 = "1aaa1"
a = str.strip()
b = str1.strip("1")
print(a) #aaaa
print(b) #aaa
string.lstrip([obj])
删除 string 字符串左面的obj,如果不传参数,删除左面空格
相关代码:
str =" 12314"
str1 = "1ewe1"
a = str.lstrip()
b = str1.lstrip("1")
print(a) #12314
print(b) #ewe1
string.rstrip([obj])
删除 string 字符串右面的obj,如果不传参数,删除右面空格
相关代码:
str = "1234141 "
str1 = "abcdef1"
a = str.rstrip()
b = str1.rstrip("1")
print(a) #1234141
print(b) #abcdef
(8)替换
string.replace(str1,str2)
将字符串string中的str1字串替换为str2
相关代码:
str = "12365"
a = str.replace("6","4")
print(a) #12345
(9)合并
string.join(seq)
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
相关代码:
list = ["a","d""12","34211"]
a = "-".join(list)
print(a) #a-d12-34211
(10)编码解码
string.encode(encoding=‘UTF-8’, errors=‘strict’)
以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
bytes.decode(encoding=‘UTF-8’, errors=‘strict’)
以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 ‘ignore’ 或
者’replace’
相关代码:
str = "addasd"
a = str.encode("UTF-16")
b = a.decode(encoding="UTF-16")
print(a) #b'\xff\xfea\x00d\x00d\x00a\x00s\x00d\x00'
print(b) #addasd
(11)整数 字符 互转
字符->整数:x=ord(“a”)
相关代码:
b = ord("a")
print(b) #97
整数->字符:x=chr(97)
相关代码:
b = chr(97)
print(b) #a