Python字符串方法大全

capitalize

描述

将字符串的第一个字符大写

语法

value.capitalize()

实例

city = 'shenzhen'
shanghai = 'ShangHai'
print(city.capitalize())
print(shanghai.capitalize())

输出:

'Shenzhen'
'Shanghai'

islower

描述

判断字符串是否都为为小写

语法

value.islower()

实例

city_shanghai = 'shanghai'
city_shenzhen = 'Shenzhen'
print(city_shanghai.islower())
print(city_shenzhen.islower())

输出:

True
False

casefold

描述

lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。

语法

value.casefold()

实例

s1 = 'Peter Borwn' # 英文
s2 = "ß"  #德语

print(s1.lower())
print(s1.casefold())
print(s2.lower())
print(s2.casefold()) # #德语的"ß"正确的小写是"ss"

输出:

peter brown
peter brown
ß

lower

描述

lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。

语法

value.lower()

实例

s1 = 'Peter Borwn' # 英文
s2 = "ß"  #德语

print(s1.lower())
print(s1.casefold())
print(s2.lower())
print(s2.casefold()) # #德语的"ß"正确的小写是"ss"

输出:

peter brown
peter brown
ß

center

描述

center()返回一个原字符串居中,并使用空格填充填充至长度width的新字符串。默认填充字符为空格。

语法

value.center(width[, fillchar])

参数

  • width:字符串的总宽度。
  • fillchar:填充字符。
city = 'shenzhen'
print(city.center(24, '*'))
print(city.center(20))

输出:

'********shenzhen********'
'      shenzhen      '

count

描述

count()方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

语法

value.count(sub, start= 0,end=len(string))

参数

  • sub:搜索的子字符串
  • start:字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
  • end:字符串中结束索引的位置。字符中第一个字符的索引为0。默认为字符串的最后一个位置。
greeting  = 'Hello,What your name? My name is Peter Brown'
print(gretting.count('name', 0, len(greeting))

输出:

2

encode

描述

encode() 方法以 encoding 指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。

语法

value.encode(encoding='utf-8', errors='strict')

参数

  • encoding:要使用的编码,如"utf-8"。
  • errors:设置不同错误的处理方式。默认为'strict'意味着编码错误引起的一个UnicodeError。其它可能的值有'ignore','replace','xmlcharrefreplace','backslashreplace'以及通过 codecs.register_error()注册的任何值。

实例

value = "中国"
print(value.encode("utf-8", "strict")
print(value.encode("gb2312", "strict")

输出:

b'\xe4\xb8\xad\xe5\x9b\xbd'
b'\xd6\xd0\xb9\xfa'

decode

描述

decode()方法以encoding指定的编码格式解码字符串。默认编码为字符串编码。

语法

value.decode(encoding='utf-8', errors='strict')

参数

  • encoding:要使用的编码,如"utf-8"。
  • errors:设置不同的错误处理方案。默认为'strict',意味着编码错误引起一个UnicodeError。其它可能的值有'ignore','replace','xmlcharrefreplace','backslashreplace'以及通过 codec.register_error()注册的任何值。

实例

value1 = b'\xe4\xb8\xad\xe5\x9b\xbd'
value2 = b'\xd6\xd0\xb9\xfa'
print(value1.decode(encoding="utf-8", errors="strict"))
print(value2.decode(encoding="gb2312", errors="strict"))

输出:

'中国'
'中国'

expandtabs

描述

expandtabs()方法把字符串中的tab符号('\t')转为空格,tab符号('\t')默认的空格数是8。

语法

value.expandtabs(tabsize=8)

参数

  • tabsize:指定转换字符串中的tab符号('\t')转为空格的字符数。

返回值

该方法返回字符串中的tab符号('\t')转为空格后生成的新字符串。

实例

motto= "Constant dropping wears the stone."
print("原始字符串:" + motto)
print("替换 \\t符号:" + motto.expandtabs())
print("使用16个空格替换 \\t符号:" + motto.expandtabs(16))

输出:

原始字符串:Constant       dropping wears the stone.
替换 \t符号:Constant        dropping wears the stone.
使用16个空格替换 \t 符号:Constant        dropping wears the stone.

find

描述

find()方法检测字符串中是否包含子字符串str,如果指定 beg (开始) 和 end (结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的实索引值在字符串中的起始位置。如果不包含索引值,返回-1。

语法

value.find(str, beg=0, end=len(string))

参数

  • str:指定检索的字符串。
  • beg:开始索引,默认为0。
  • end:结束索引,默认为字符串的长度。

返回值

如果包含子字符串返回开始的索引值,否则返回-1。

实例

str1 = "Experience is the mother of wisdom."
str2 = "mother "

print(str1.find(str2))
print(str1.find(str2, 5))
print(str.find(str2, 19))

输出

18
18
-1

rfind

描述

rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

语法

str.rfind(str, beg=0, end=len(string))

参数

  • str:查找的字符串。
  • beg:开始查找的位置,默认为0。
  • end:结束查找的位置,默认为字符串的长度。

返回值

返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

实例

#!/usr/bin/python3

str1 = "this is really a string example....wow!!!"
str2 = "is"

print (str1.rfind(str2))

print (str1.rfind(str2, 0, 10))
print (str1.rfind(str2, 10, 0))

print (str1.find(str2))
print (str1.find(str2, 0, 10))
print (str1.find(str2, 10, 0))

输出

5
5
-1
2
2
-1

format

描述

Python2.6开始,新增了一种格式化字符串的函数,str.format(),它增强了字符串格式化的功能。基本语法是通过{}:来替代以前的%。format函数可以接受不限个参数,位置可以不按顺序。

语法

"{} {}".format("Hello", "World") # 不设置指定位置,按默认顺序
"{0}, {1}".format("Hello", "World") # 设置指定位置
"{1} {0} {1}".format("Hello", "World") # 设置指定位置
"姓名:{name}, 爱好:{hobby}".format(name="peter", hobby="篮球") # 设置指定参数
person = {"name": "peter", "hobby": "basketball"}
"姓名:{name}, 爱好:{hobby}".format(**person) # 通过字典设置参数
my_list = ["peter", "basketball"]
"姓名: {0[0]}, 爱好: {0[1]}".format(my_list) # "0"是必须的,通过列表索引设置参数

语法

str.format("")

返回值

返回格式化后的字符串。

实例

print("{} {}".format("Hello", "World")) # 不设置指定位置,按默认顺序
print("{0}, {1}".format("Hello", "World")) # 设置指定位置
print("{1} {0} {1}".format("Hello", "World")) # 设置指定位置
print("姓名:{name}, 爱好:{hobby}".format(name="peter", hobby="篮球")) # 设置指定参数
person = {"name": "peter", "hobby": "basketball"}
print("姓名:{name}, 爱好:{hobby}".format(**person)) # 通过字典设置参数
my_list = ["peter", "basketball"]
print("姓名: {0[0]}, 爱好: {0[1]}".format(my_list)) # "0"是必须的,通过列表索引设置参数

输出

Hello World
Hello World
World Hello World
姓名:peter, 爱好:篮球
姓名:peter, 爱好:basketball
姓名: peter, 爱好: basketball

index

描述

index()方法检测字符串中是否包含子字符串str,如果指定 beg (开始) 和 end (结束) 范围,则检查是否包含在指定范围内,该方法与find() 方法一样,只不过如果str不在string中会报一个异常。

语法

str.index(str, beg=0, end=len(string))

参数

  • str:指定检索的字符串。
  • beg:开始索引,默认为0。
  • end:结束索引,默认为字符串的长度。

返回值

如果包含子字符串返回开始的索引值,否则抛出异常。

实例

motto = "It is never too late to learn."
search = "late"

print(motto.index(search))
print(motto.index(search, 5))
print(motto.index(search, 17))

输出

16
16
Traceback (most recent call last):
  File "", line 1, in 
ValueError: substring not found

rindex

描述

rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。

语法

str.rindex(str, beg=0, end=len(string))

参数

  • str:查找的字符串。
  • beg:开始查找的位置,默认为0。
  • end:结束查找的位置,默认为字符串的长度。

返回值

返回子字符串str在字符串中最后出现的位置,如果没有匹配的字符串会报异常。

实例

#!/usr/bin/python3
str1 = "this is really a string example....wow!!!"
str2 = "is"

print (str1.rindex(str2))
print (str1.rindex(str2,10))

输出

5
Traceback (most recent call last):
  File "", line 1, in 
ValueError: substring not found

isalnum

描述

isalnum()方法检测字符串是否由字母和数字组成。

语法

str.isalnum()

返回值

如果string至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。

实例

str1 = "hello2018"
print(str1.isalnum())

str2 = "hello,world"
print(str2.isalnum())

输出

True
False

isalpha

描述

isalpha()方法检测字符串是否只由字母组成。

语法

str.isalpha()

返回值

如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。

实例

str1 = "hello"
print(str1.isalpha())

str2 = "Hello World!"
print(str2.isalpha())

输出

True
False

isdecimal

描述

isdecimal()方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。注意:定义一个十进制字符串,只需在字符串前添加'u'前缀即可。

语法

str.isdecimal()

返回值

如果字符串是否只包含十进制字符返回True,否则返回False。

实例

str1 = "hello2018"
print(str1.isdecimal())

str2 = "9527"
print(str2.isdecimal())

输出

False
True

isdigit

描述

isdigit() 方法检测字符串是否只由数字组成。

语法

str.isdigit()

返回值

如果字符串只包含数字则返回True,否则返回False。

实例

str1 = "123456"
print(str1.isdigit())

str2 = "string example"
print(str2.isdigit())

输出

True
False

isnumeric

描述

isnumeric()方法检测字符串是否只由数字组成。这种方法是只针对Unicode对象。注意:定义一个字符串为Unicode,只需要在字符串前添加 'u' 前缀即可。

语法

str.isnumeric()

返回值

如果字符串中只包含数字字符,则返回True,否则返回False。

实例

str1 = "hello2018"
print(str1.isnumeric())

str2 = "12345678"
print(str2.isnumeric())

输出

False
True

isspace

描述

isspace()方法检测字符串是否只由空白字符组成。

语法

str.isspace()

返回值

如果字符串中只包含空格,则返回True,否则返回False。

实例

str1 = "          "
print(str1.isspace())

str2 = "Hello World"
print(str2.isspace())

输出

True
False

title

描述

title()方法用于返回“标题化”的字符串,就是说所有的单词都是以大写开始,其余字母均为小写(见istitle())。

语法

str.title()

返回值

返回"标题化"的字符串,就是说所有的单词都是以大写开始的。

实例

name = "peter brown"
print(name.title())

输出

Peter Brown

istitle

描述

istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

语法

str.istitle()

返回值

如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.

实例

str1 = "Peter Brown"
print(str1.istitle())

str2 = "peter"
print(str2.istitle())

输出

True
False

isupper

描述

isupper() 方法检测字符串中所有的字母是否都为大写。

语法

str.isupper()

返回值

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

实例

str1 = "WHAT WOULD YOUR LIKE?"
print (str1.isupper())

str2 = "THIS is string example....wow!!!"
print (str2.isupper())

输出

True
False

upper

描述

upper() 方法将字符串中的小写字母转为大写字母。

语法

str.upper()

返回值

返回小写字母转为大写字母的字符串。

实例

motto = "It is never too late to mend. "

print ("motto .upper() : ", motto .upper())

输出

motto .upper() :  IT IS NEVER TOO LATE TO MEND.

join

描述

join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

语法

str.join(sequence)

参数

  • sequence:要连接的元素序列。

返回值

返回通过指定字符序列中元素生成的新字符串。

实例

s1 = "-"
s2 = ""
seq = ("hello", "world")
print(s1.join(seq))
print(s2.join(seq))

输出

hello-world
helloworld

len

描述

len() 方法返回对象(字符、列表、元组等)长度或项目个数。

语法

len(s)

参数

  • s :对象

返回值

返回对象长度。

实例

name = "peter"
print(len(name))

my_list = [1, 2, 3, 4, 5, 6]
print(len(my_list))

my_dict = {"name": "peter", "age": 18}
print(len(my_dict))

输出

5
6
2

ljust

描述

ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

语法

str.ljust(width[, fillchar])

参数

  • width:指定字符串长度。
  • fillchar:填充字符,默认为空格。

返回值

返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

实例

str1 = "hello,world"

print(str1.ljust(20, '*'))

输出

hello,world*********

rjust

描述

rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

语法

str.rjust(width[, fillchar])

参数

  • width:指定填充指定字符后中字符串的总长度。
    -fillchar:填充的字符,默认为空格。

返回值

返回一个原字符串右对齐,并使用空格填充至长度width的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

实例

str1 = "Hello,World"

print(str1.rjust(20, '*'))

输出

*********Hello,World

replace

描述

replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法

str.replace(old, new[, max])

参数

  • old:将被替换的子字符串。
  • new:新字符串,用于替换old子字符串。
  • max:可选字符串,替换不超过max次。

返回值

返回字符串中的old (旧字符串) 替换成new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过max次。

实例

#!/usr/bin/python3

motto =  "Nothing down, nothing up."
print ("motto :", motto )
print ("motto :", motto.replace("down", "raise"))

value= "this is string example....wow!!!"
print (value.replace("is", "was", 3))

输出

motto : Nothing down, nothing up.
motto : Nothing raise, nothing up.
thwas was string example....wow!!!

strip

描述

strip() 方法用于移除字符串头尾指定的字符(默认为空格)。

语法

str.strip([chars])

参数

chars:移除字符串头尾指定的字符。

返回值

返回移除字符串头尾指定的字符生成的新字符串。

实例

value = "****** Hello World ******"
print(value.strip('*'))

输出

 Hello World

lstrip

描述

lstrip() 方法用于移除字符串头部指定的字符(默认为空格)。

语法

str.lstrip([chars])

参数

chars:移除字符串头部指定的字符。

返回值

返回移除字符串头部指定的字符生成的新字符串。

实例

value = "****** Hello World ******"
print(value.lstrip('*'))

输出

  Hello World ******

rstrip

描述

rstrip() 方法用于移除字符串尾部指定的字符(默认为空格)。

语法

str.rstrip([chars])

参数

chars:移除字符串尾部指定的字符。

返回值

返回移除字符串尾部指定的字符生成的新字符串。

实例

value = "****** Hello World ******"
print(value.rstrip('*'))

输出

  ****** Hello World

split

描述

split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串

语法

str.split(str="", num=string.count(str))

参数

  • str:分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num:分隔次数。

返回值

返回分隔后的字符串列表。

实例

#!/usr/bin/python3

str = "this is string example....wow!!!"
print (str.split( ))
print (str.split('i',1))
print (str.split('w'))

输出

['this', 'is', 'string', 'example....wow!!!']
['th', 's is string example....wow!!!']
['this is string example....', 'o', '!!!']

splitlines

描述

splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

语法

str.splitlines([keepends])

参数

  • keepends:在输出结果里是否去掉换行符('\r','\r\n','\n'),默认为False,不包含换行符,如果为True,则保留换行符。

返回值

返回一个包含各行作为元素的列表。

实例

>>> 'ab c\n\nde fg\rkl\r\n'.splitlines()
['ab c', '', 'de fg', 'kl']
>>> 'ab c\n\nde fg\rkl\r\n'.splitlines(True)
['ab c\n', '\n', 'de fg\r', 'kl\r\n']
>>> 

startswith

描述

startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

语法

str.startswith(str, beg=0, end=len(string))

参数

  • str:检测的字符串。
  • beg:可选参数用于设置字符串检测的起始位置。
  • end:可选参数用于设置字符串检测的结束位置。

返回值

如果检测到字符串则返回True,否则返回False。

实例

#!/usr/bin/python3

str = "this is string example....wow!!!"
print (str.startswith( 'this' ))
print (str.startswith( 'string', 8 ))
print (str.startswith( 'this', 2, 4 ))

输出

True
True
False

endswith

描述

endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

语法

str.endswith(suffix[, start[, end]])

参数

  • suffix:该参数可以是一个字符串或者是一个元素。
  • start:可选参数用于设置字符串检测的起始位置。
  • end:可选参数用于设置字符串检测的结束位置。

返回值

如果检测到字符串则返回True,否则返回False。

实例

#!/usr/bin/python3

Str='Runoob example....wow!!!'
suffix='!!'
print (Str.endswith(suffix))
print (Str.endswith(suffix,20))
suffix='run'
print (Str.endswith(suffix))
print (Str.endswith(suffix, 0, 19))

输出

True
True
False
False

swapcase

描述

swapcase() 方法用于对字符串的大小写字母进行转换。

语法

str.swapcase()

返回值

返回大小写字母转换后生成的新字符串。

实例

motto = "A GOOD BOOK IS YOUR BEST FRIEND. "
print(motto.swapcase())

motto2 = "a good book is your best friend. "
print(motto2.swapcase())

输出

a good book is your best friend.
 GOOD BOOK IS YOUR BEST FRIEND.

translate

描述

translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars 参数中。
语法

str.translate(table)
bytes.translate(table[, delete])
bytearray.translate(table[, delete])

参数

  • table:翻译表,翻译表是通过maketrans()方法转换而来。
  • deletechars:字符串中要过滤的字符列表。

返回值

返回翻译后的字符串,若给出了delete参数,则将原来的bytes中的属于delete的字符删除,剩下的字符要按照table中给出的映射来进行映射。

实例

#!/usr/bin/python3
 
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)   # 制作翻译表
 
str = "this is string example....wow!!!"
print (str.translate(trantab))

输出

th3s 3s str3ng 2x1mpl2....w4w!!!

zfill

描述

zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。

语法

str.zfill(width)

参数

  • width:指定字符串的长度。原字符串右对齐,前面填充0。

返回值

返回指定长度的字符串。

实例

#!/usr/bin/python3

str = "this is string example from runoob....wow!!!"
print ("str.zfill : ",str.zfill(40))
print ("str.zfill : ",str.zfill(50))

输出

str.zfill :  this is string example from runoob....wow!!!
str.zfill :  000000this is string example from runoob....wow!!!

关于更多Python字符串方法请参考:http://www.runoob.com/python3/python3-string.html

你可能感兴趣的:(Python字符串方法大全)