python3 字符串的基本用法
文章目录
- Python3 字符串
- Python 访问字符串中的值
- Python 字符串更新
- Python 字符串运算符
- Python 字符串格式化
- Python 三引号
- 实例(Python 3.0+)
- f-string
- Unicode 字符串
- Python 的字符串内建函数
- capitalize()
- center(width, fillchar)
- count(str, beg=0, end=len(string))
- bytes.decode(encoding="utf-8", errors="strict")
- encode(encoding='UTF-8', errors='strict')
- endswith(suffix, beg=0, end=len(string))
- expandtabs(tabsize=8)
- find(str, beg=0, end=len(string))
- index(str, beg=0, end=len(string))
- isalnum()
- isalpha()
- isdigit()
- islower()
- isnumeric()
- isspace()
- istitle()
- isupper()
- join(seq)
- len(string)
- ljust(width[, fillchar])
- lower()
- lstrip()
- maketrans()
- max(str)
- min(str)
- replace(old, new[, max])
- rfind(str, beg=0, end=len(string))
- rindex(str, beg=0, end=len(string))
- rjust(width, [, fillchar])
- rstrip()
- split(str="", num=string.count(str))
- splitlines([keepends])
- startswith(substr, beg=0, end=len(string))
- strip([chars])
- swapcase()
- title()
- translate(table, deletechars="")
- upper()
- zfill(width)
- isdecimal()
Python3 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号(''
或""
)来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "Runoob"
Python 访问字符串中的值
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python 访问子字符串,可以使用方括号[]
来截取字符串,字符串的截取的语法格式如下:
变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
]
如下实例:
var1 = 'Hello World!'
var2 = "Runoob"
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])
以上实例执行结果:
var1[0]: H
var2[1:5]: unoo
Python 字符串更新
你可以截取字符串的一部分并与其他字段拼接,如下实例:
var1 = 'Hello World!'
print ("已更新字符串 : ", var1[:6] + 'Runoob!')
以上实例执行结果
已更新字符串 : Hello Runoob!
Python 转义字符
在需要在字符中使用特殊字符时,python 用反斜杠\
转义字符。如下表:
转义字符 | 描述 | 实例 |
---|---|---|
\ (在行尾时) | 续行符 | >>> print(“line1 \ … line2 \ … line3”) line1 line2 line3 >>> |
\ | 反斜杠符号 | >>> print(" \ ") \ |
’ | 单引号 | >>> print(’’’) ’ |
" | 双引号 | >>> print(""") " |
\a | 响铃 | >>> print("\a") 执行后电脑有响声。 |
\b | 退格(Backspace) | >>> print(“Hello \b World!”) Hello World! |
\000 | 空 | >>> print("\000") >>> |
\n | 换行 | >>> print("\n") >>> |
\v | 纵向制表符 | >>> print(“Hello \v World!”) Hello World! >>> |
\t | 横向制表符 | >>> print(“Hello \t World!”) Hello World! >>> |
\r | 回车 | >>> print(“Hello\rWorld!”) World! |
\f | 换页 | >>> print(“Hello \f World!”) Hello World! >>> |
\yyy | 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。 | >>> print("\110\145\154\154\157 \40\127\157\162\154\144\41") Hello World! |
\xyy | 十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行 | >>> print("\x48\x65\x6c\x6c \x6f\x20\x57\x6f\x72\x6c\x64\x21") Hello World! |
\other | 其它的字符以普通格式输出 |
Python 字符串运算符
下表实例变量 a 值为字符串 “Hello”,b变量值为 “Python”:
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | a + b 输出结果: HelloPython |
* | 重复输出字符串 | a*2 输出结果:HelloHello |
[] | 通过索引获取字符串中字符 | a[1] 输出结果 e |
[:] | 截取字符串中的一部分,遵循左闭右开原则 ,str[0:2]是不包含第3个字符的。 | a[1:4] 输出结果 ell |
in | 成员运算符 - 如果字符串中包含给定的字符返回True | ’H’ in a 输出结果 True |
not in | 成员运算符 - 如果字符串中不包含给定的字符串返回True | ** ‘M’ not in a** 输出结果 True |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | print( r’\n’ ) print( R’\n’ ) |
% | 格式字符串 | 请看下一节内容。 |
a = "Hello"
b = "Python"
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])
if( "H" in a) :
print("H 在变量 a 中")
else :
print("H 不在变量 a 中")
if( "M" not in a) :
print("M 不在变量 a 中")
else :
print("M 在变量 a 中")
print (r'\n')
print (R'\n')
以上实例输出结果为:
a + b 输出结果: HelloPython
a * 2 输出结果: HelloHello
a[1] 输出结果: e
a[1:4] 输出结果: ell
H 在变量 a 中
M 不在变量 a 中
\n
\n
Python 字符串格式化
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
以上实例输出结果:
我叫 小明 今年 10 岁!
python 字符串格式化符号:
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
在正数前面显示空格 | |
# | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
0 | 显示的数字前面填充’0’而不是默认的空格 |
% | ‘%%‘输出一个单一的’%’ |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
Python 三引号
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下
实例(Python 3.0+)
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)
以上实例执行结果为:
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( )。
也可以使用换行符 [
]。
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。
errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (
login VARCHAR(8),
uid INTEGER,
prid INTEGER)
''')
f-string
f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。
之前我们习惯用百分号 (%):
>>> name = 'Runoob'
>>> 'Hello %s' % name
'Hello Runoob'
f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:
>>> name = 'Runoob'
>>> f'Hello {name}' # 替换变量
>>> f'{1+2}' # 使用表达式
'3'
>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'
用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。
在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:
>>> x = 1
>>> print(f'{x+1}') # Python 3.6
2
>>> x = 1
>>> print(f'{x+1=}') # Python 3.8
'x+1=2'
Unicode 字符串
在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u。
在Python3中,所有的字符串都是Unicode字符串。
Python 的字符串内建函数
Python 的字符串常用内建函数如下:
capitalize()
描述
Python capitalize()将字符串的第一个字母变成大写,其他字母变小写。
语法
capitalize()方法语法:
str.capitalize()
参数
- 无。
返回值
该方法返回一个首字母大写的字符串。
实例
以下实例展示了capitalize()方法的实例:
#!/usr/bin/python3 str = "this is string example from runoob....wow!!!" print ("str.capitalize() : ", str.capitalize())
以上实例输出结果如下:
str.capitalize() : This is string example from runoob....wow!!!
center(width, fillchar)
描述
center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
语法
center()方法语法:
str.center(width[, fillchar])
参数
- width – 字符串的总宽度。
- fillchar – 填充字符。
返回值
返回一个指定的宽度 width 居中的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充。
实例
以下实例展示了center()方法的实例:
str = "[runoob]" print ("str.center(40, '*') : ", str.center(40, '*'))
以上实例输出结果如下:
str.center(40, '*') : ****************[runoob]****************
count(str, beg=0, end=len(string))
描述
count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
语法
count()方法语法:
str.count(sub, start= 0,end=len(string))
参数
- sub – 搜索的子字符串
- start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
- end – 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
返回值
该方法返回子字符串在字符串中出现的次数。
实例
以下实例展示了count()方法的实例:
#!/usr/bin/python3 str="www.runoob.com" sub='o' print ("str.count('o') : ", str.count(sub)) sub='run' print ("str.count('run', 0, 10) : ", str.count(sub,0,10))
以上实例输出结果如下:
str.count('o') : 3 str.count('run', 0, 10) : 1
bytes.decode(encoding=“utf-8”, errors=“strict”)
描述
decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 ‘utf-8’。
语法
decode()方法语法:
bytes.decode(encoding="utf-8", errors="strict")
参数
- encoding – 要使用的编码,如"UTF-8"。
- errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。
返回值
该方法返回解码后的字符串。
实例
以下实例展示了decode()方法的实例:
str = "菜鸟教程"; str_utf8 = str.encode("UTF-8") str_gbk = str.encode("GBK") print(str) print("UTF-8 编码:", str_utf8) print("GBK 编码:", str_gbk) print("UTF-8 解码:", str_utf8.decode('UTF-8','strict')) print("GBK 解码:", str_gbk.decode('GBK','strict'))
以上实例输出结果如下:
菜鸟教程 UTF-8 编码: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b' GBK 编码: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc' UTF-8 解码: 菜鸟教程 GBK 解码: 菜鸟教程
encode(encoding=‘UTF-8’, errors=‘strict’)
描述
encode() 方法以指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。
语法
encode()方法语法:
str.encode(encoding='UTF-8',errors='strict')
参数
- encoding – 要使用的编码,如: UTF-8。
- errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。
返回值
该方法返回编码后的字符串,它是一个 bytes 对象。
实例
以下实例展示了encode()方法的实例:
str = "菜鸟教程"; str_utf8 = str.encode("UTF-8") str_gbk = str.encode("GBK") print(str) print("UTF-8 编码:", str_utf8) print("GBK 编码:", str_gbk) print("UTF-8 解码:", str_utf8.decode('UTF-8','strict')) print("GBK 解码:", str_gbk.decode('GBK','strict'))
以上实例输出结果如下:
菜鸟教程 UTF-8 编码: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b' GBK 编码: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc' UTF-8 解码: 菜鸟教程 GBK 解码: 菜鸟教程
endswith(suffix, beg=0, end=len(string))
描述
endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。可选参数 “start” 与 “end” 为检索字符串的开始与结束位置。
语法
endswith()方法语法:
str.endswith(suffix[, start[, end]])
参数
- suffix – 该参数可以是一个字符串或者是一个元素。
- start – 字符串中的开始位置。
- end – 字符中结束位置。
返回值
如果字符串含有指定的后缀返回 True,否则返回 False。
实例
以下实例展示了endswith()方法的实例:
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
expandtabs(tabsize=8)
描述
expandtabs() 方法把字符串中的 tab 符号 \t 转为空格,tab 符号 \t 默认的空格数是 8,在第 0、8、16…等处给出制表符位置,如果当前位置到开始位置或上一个制表符位置的字符数不足 8 的倍数则以空格代替。
语法
expandtabs() 方法语法:
str.expandtabs(tabsize=8)
参数
- tabsize – 指定转换字符串中的 tab 符号 \t 转为空格的字符数。
返回值
该方法返回字符串中的 tab 符号 \t 转为空格后生成的新字符串。
实例
以下实例展示了 expandtabs() 方法的实例:
str = "runoob\t12345\tabc" print('原始字符串:', str) # 默认 8 个空格 # runnob 有 6 个字符,后面的 \t 填充 2 个空格 # 12345 有 5 个字符,后面的 \t 填充 3 个空格 print('替换 \\t 符号:', str.expandtabs()) # 2 个空格 # runnob 有 6 个字符,刚好是 2 的 3 倍,后面的 \t 填充 2 个空格 # 12345 有 5 个字符,不是 2 的倍数,后面的 \t 填充 1 个空格 print('使用 2 个空格替换 \\t 符号:', str.expandtabs(2)) # 3 个空格 print('使用 3 个空格:', str.expandtabs(3)) # 4 个空格 print('使用 4 个空格:', str.expandtabs(4)) # 5 个空格 print('使用 5 个空格:', str.expandtabs(5)) # 6 个空格 print('使用 6 个空格:', str.expandtabs(6))
以上实例输出结果如下:
原始字符串: runoob 12345 abc 替换 \t 符号: runoob 12345 abc 使用 2 个空格替换 \t 符号: runoob 12345 abc 使用 3 个空格: runoob 12345 abc 使用 4 个空格: runoob 12345 abc 使用 5 个空格: runoob 12345 abc 使用 6 个空格: runoob 12345 abc
find(str, beg=0, end=len(string))
描述
find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。
语法
find()方法语法:
str.find(str, beg=0, end=len(string))
参数
- str – 指定检索的字符串
- beg – 开始索引,默认为0。
- end – 结束索引,默认为字符串的长度。
返回值
如果包含子字符串返回开始的索引值,否则返回-1。
实例
以下实例展示了find()方法的实例:
str1 = "Runoob example....wow!!!" str2 = "exam"; print (str1.find(str2)) print (str1.find(str2, 5)) print (str1.find(str2, 10))
以上实例输出结果如下:
7 7 -1
>>>info = 'abca' >>> print(info.find('a')) # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0 0 >>> print(info.find('a', 1)) # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3 3 >>> print(info.find('3')) # 查找不到返回-1 -1 >>>
index(str, beg=0, end=len(string))
描述
index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
语法
index()方法语法:
str.index(str, beg=0, end=len(string))
参数
- str – 指定检索的字符串
- beg – 开始索引,默认为0。
- end – 结束索引,默认为字符串的长度。
返回值
如果包含子字符串返回开始的索引值,否则抛出异常。
实例
以下实例展示了index()方法的实例:
#!/usr/bin/python3 str1 = "Runoob example....wow!!!" str2 = "exam"; print (str1.index(str2)) print (str1.index(str2, 5)) print (str1.index(str2, 10))
以上实例输出结果如下(未发现的会出现异常信息):
7 7 Traceback (most recent call last): File "test.py", line 8, in <module> print (str1.index(str2, 10)) ValueError: substring not found
isalnum()
描述
Python isalpha() 方法检测字符串是否只由字母或文字组成。
语法
isalpha()方法语法:
str.isalpha()
参数
- 无。
返回值
如果字符串至少有一个字符并且所有字符都是字母或文字则返回 True,否则返回 False。
实例
以下实例展示了isalpha()方法的实例:
str = "runoob" print (str.isalpha()) # 字母和中文文字 str = "runoob菜鸟教程" print (str.isalpha()) str = "Runoob example....wow!!!" print (str.isalpha())
以上实例输出结果如下:
True True False
isalpha()
描述
Python isalpha() 方法检测字符串是否只由字母或文字组成。
语法
isalpha()方法语法:
str.isalpha()
参数
- 无。
返回值
如果字符串至少有一个字符并且所有字符都是字母或文字则返回 True,否则返回 False。
实例
以下实例展示了isalpha()方法的实例:
str = "runoob" print (str.isalpha()) # 字母和中文文字 str = "runoob菜鸟教程" print (str.isalpha()) str = "Runoob example....wow!!!" print (str.isalpha())
以上实例输出结果如下:
True True False
isdigit()
描述
Python isdigit() 方法检测字符串是否只由数字组成。
语法
isdigit()方法语法:
str.isdigit()
参数
- 无。
返回值
如果字符串只包含数字则返回 True 否则返回 False。
实例
以下实例展示了isdigit()方法的实例:
str = "123456"; print (str.isdigit()) str = "Runoob example....wow!!!" print (str.isdigit())
以上实例输出结果如下:
True False
islower()
描述
islower() 方法检测字符串是否由小写字母组成。
语法
islower()方法语法:
str.islower()
参数
- 无。
返回值
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
实例
以下实例展示了islower()方法的实例:
str = "RUNOOB example....wow!!!" print (str.islower()) str = "runoob example....wow!!!" print (str.islower())
以上实例输出结果如下:
False True
isnumeric()
描述
isnumeric() 方法检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字。
指数类似 ² 与分数类似 ½ 也属于数字。
# s = '½' s = '\u00BD'
语法
isnumeric()方法语法:
str.isnumeric()
参数
- 无。
返回值
如果字符串中只包含数字字符,则返回 True,否则返回 False
实例
以下实例展示了 isnumeric() 方法的实例:
str = "runoob2016" print (str.isnumeric()) str = "23443434" print (str.isnumeric())
以上实例输出结果如下:
False True
Unicode 数字:
#s = '²3455' s = '\u00B23455' print(s.isnumeric()) # s = '½' s = '\u00BD' print(s.isnumeric()) a = "\u0030" #unicode for 0 print(a.isnumeric()) b = "\u00B2" #unicode for ² print(b.isnumeric()) c = "10km2" print(c.isnumeric())
以上实例输出结果如下:
True True True True False
isspace()
描述
Python isspace() 方法检测字符串是否只由空白字符组成。
语法
isspace() 方法语法:
str.isspace()
参数
- 无。
返回值
如果字符串中只包含空格,则返回 True,否则返回 False.
实例
以下实例展示了isspace()方法的实例:
str = " " print (str.isspace()) str = "Runoob example....wow!!!" print (str.isspace())
以上实例输出结果如下:
True False
istitle()
描述
istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
语法
istitle()方法语法:
str.istitle()
参数
- 无。
返回值
如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.
实例
以下实例展示了istitle()方法的实例:
str = "This Is String Example...Wow!!!" print (str.istitle()) str = "This is string example....wow!!!" print (str.istitle())
以上实例输出结果如下:
True False
isupper()
描述
isupper() 方法检测字符串中所有的字母是否都为大写。
语法
isupper()方法语法:
str.isupper()
参数
- 无。
返回值
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
实例
以下实例展示了isupper()方法的实例:
#!/usr/bin/python3 str = "THIS IS STRING EXAMPLE....WOW!!!" print (str.isupper()) str = "THIS is string example....wow!!!" print (str.isupper())
以上实例输出结果如下:
True False
join(seq)
描述
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
语法
join()方法语法:
str.join(sequence)
参数
- sequence – 要连接的元素序列。
返回值
返回通过指定字符连接序列中元素后生成的新字符串。
实例
以下实例展示了join()的使用方法:
s1 = "-" s2 = "" seq = ("r", "u", "n", "o", "o", "b") # 字符串序列 print (s1.join( seq )) print (s2.join( seq ))
以上实例输出结果如下:
r-u-n-o-o-b runoob
len(string)
描述
Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。
语法
len()方法语法:
len( s )
参数
- s – 对象。
返回值
返回对象长度。
>>>str = "runoob" >>> len(str) # 字符串长度 6 >>> l = [1,2,3,4,5] >>> len(l) # 列表元素个数 5
ljust(width[, fillchar])
描述
ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
语法
ljust()方法语法:
str.ljust(width[, fillchar])
参数
- width – 指定字符串长度。
- fillchar – 填充字符,默认为空格。
返回值
返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
实例
以下实例展示了ljust()的使用方法:
#!/usr/bin/python3 str = "Runoob example....wow!!!" print (str.ljust(50, '*'))
以上实例输出结果如下:
Runoob example....wow!!!**************************
lower()
描述
Python lower() 方法转换字符串中所有大写字符为小写。
语法
lower()方法语法:
str.lower()
参数
- 无。
返回值
返回将字符串中所有大写字符转换为小写后生成的字符串。
实例
以下实例展示了lower()的使用方法:
#!/usr/bin/python3 str = "Runoob EXAMPLE....WOW!!!" print( str.lower() )
以上实例输出结果如下:
runoob example....wow!!!
lstrip()
描述
lstrip() 方法用于截掉字符串左边的空格或指定字符。
语法
lstrip()方法语法:
str.lstrip([chars])
参数
- chars --指定截取的字符。
返回值
返回截掉字符串左边的空格或指定字符后生成的新字符串。
实例
以下实例展示了lstrip()的使用方法:
str = " this is string example....wow!!! "; print( str.lstrip() ); str = "88888888this is string example....wow!!!8888888"; print( str.lstrip('8') );
以上实例输出结果如下:
this is string example....wow!!! this is string example....wow!!!8888888
maketrans()
描述
maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
两个字符串的长度必须相同,为一一对应的关系。
**注:**Python3.4 已经没有 string.maketrans() 了,取而代之的是内建函数: bytearray.maketrans()、bytes.maketrans()、str.maketrans() 。
语法
maketrans()方法语法:
str.maketrans(intab, outtab)
参数
- intab – 字符串中要替代的字符组成的字符串。
- outtab – 相应的映射字符的字符串。
返回值
返回字符串转换后生成的新字符串。
实例
以下实例展示了使用maketrans() 方法将所有元音字母转换为指定的数字:
#!/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!!!
max(str)
描述
max() 方法返回字符串中最大的字母。
语法
max()方法语法:
max(str)
参数
- str – 字符串。
返回值
返回字符串中最大的字母。
实例
以下实例展示了max()函数的使用方法:
#!/usr/bin/python3 str = "runoob" print ("最大字符: " + max(str))
以上实例输出结果如下:
最大字符: u
min(str)
描述
Python min() 方法返回字符串中最小的字母。
语法
min()方法语法:
min(str)
参数
- str – 字符串。
返回值
返回字符串中最小的字母。
实例
以下实例展示了min()函数的使用方法:
str = "runoob"; print ("最小字符: " + min(str));
以上实例输出结果如下:
最小字符: b
replace(old, new[, max])
描述
replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法
replace()方法语法:
str.replace(old, new[, max])
参数
- old – 将被替换的子字符串。
- new – 新字符串,用于替换old子字符串。
- max – 可选字符串, 替换不超过 max 次
返回值
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
实例
以下实例展示了replace()函数的使用方法:
str = "www.w3cschool.cc" print ("菜鸟教程旧地址:", str) print ("菜鸟教程新地址:", str.replace("w3cschool.cc", "runoob.com")) str = "this is string example....wow!!!" print (str.replace("is", "was", 3))
以上实例输出结果如下:
菜鸟教程旧地址: www.w3cschool.cc 菜鸟教程新地址: www.runoob.com thwas was string example....wow!!!
rfind(str, beg=0, end=len(string))
描述
Python rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
语法
rfind()方法语法:
str.rfind(str, beg=0 end=len(string))
参数
- str – 查找的字符串
- beg – 开始查找的位置,默认为0
- end – 结束查找位置,默认为字符串的长度。
返回值
返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
实例
以下实例展示了rfind()函数的使用方法:
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
rindex(str, beg=0, end=len(string))
描述
rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。
语法
rindex()方法语法:
str.rindex(str, beg=0 end=len(string))
参数
- str – 查找的字符串
- beg – 开始查找的位置,默认为0
- end – 结束查找位置,默认为字符串的长度。
返回值
返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常。
实例
以下实例展示了rindex()函数的使用方法:
#!/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 "test.py", line 6, in <module> print (str1.rindex(str2,10)) ValueError: substring not found
rjust(width, [, fillchar])
描述
rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。
语法
rjust()方法语法:
str.rjust(width[, fillchar])
参数
- width – 指定填充指定字符后中字符串的总长度.
- fillchar – 填充的字符,默认为空格。
返回值
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
实例
以下实例展示了rjust()函数的使用方法:
#!/usr/bin/python3 str = "this is string example....wow!!!" print (str.rjust(50, '*'))
以上实例输出结果如下:
******************this is string example....wow!!!
rstrip()
描述
rstrip() 删除 string 字符串末尾的指定字符(默认为空格).
语法
rstrip()方法语法:
str.rstrip([chars])
参数
- chars – 指定删除的字符(默认为空格)
返回值
返回删除 string 字符串末尾的指定字符后生成的新字符串。
实例
以下实例展示了rstrip()函数的使用方法:
#!/usr/bin/python3 str = " this is string example....wow!!! " print (str.rstrip()) str = "*****this is string example....wow!!!*****" print (str.rstrip('*'))
以上实例输出结果如下:
this is string example....wow!!! *****this is string example....wow!!!
split(str="", num=string.count(str))
描述
split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
语法
split() 方法语法:
str.split(str="", num=string.count(str))
参数
- str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num – 分割次数。默认为 -1, 即分隔所有。
返回值
返回分割后的字符串列表。
实例
以下实例展示了 split() 函数的使用方法:
str = "this is string example....wow!!!" print (str.split( )) # 以空格为分隔符 print (str.split('i',1)) # 以 i 为分隔符 print (str.split('w')) # 以 w 为分隔符
以上实例输出结果如下:
['this', 'is', 'string', 'example....wow!!!'] ['th', 's is string example....wow!!!'] ['this is string example....', 'o', '!!!']
以下实例以 # 号为分隔符,指定第二个参数为 1,返回两个参数列表。
txt = "Google#Runoob#Taobao#Facebook" # 第二个参数为 1,返回两个参数列表 x = txt.split("#", 1) print(x)
以上实例输出结果如下:
['Google', 'Runoob#Taobao#Facebook']
splitlines([keepends])
描述
Python splitlines() 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
语法
splitlines()方法语法:
str.splitlines([keepends])
参数
- keepends – 在输出结果里是否去掉换行符(’\r’, ‘\r\n’, \n’),默认为 False,不包含换行符,如果为 True,则保留换行符。
返回值
返回一个包含各行作为元素的列表。
实例
以下实例展示了splitlines()函数的使用方法:
>>> '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(substr, beg=0, end=len(string))
描述
startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。
语法
startswith()方法语法:
str.startswith(substr, beg=0,end=len(string));
参数
- str – 检测的字符串。
- substr – 指定的子字符串。
- strbeg – 可选参数用于设置字符串检测的起始位置。
- strend – 可选参数用于设置字符串检测的结束位置。
返回值
如果检测到字符串则返回True,否则返回False。
实例
以下实例展示了startswith()函数的使用方法:
str = "this is string example....wow!!!" print (str.startswith( 'this' )) # 字符串是否以 this 开头 print (str.startswith( 'string', 8 )) # 从第九个字符开始的字符串是否以 string 开头 print (str.startswith( 'this', 2, 4 )) # 从第2个字符开始到第四个字符结束的字符串是否以 this 开头
以上实例输出结果如下:
True True False
strip([chars])
描述
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。
**注意:**该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
语法
strip()方法语法:
str.strip([chars]);
参数
- chars – 移除字符串头尾指定的字符序列。
返回值
返回移除字符串头尾指定的字符序列生成的新字符串。
实例
以下实例展示了 strip() 函数的使用方法:
str = "*****this is **string** example....wow!!!*****" print (str.strip( '*' )) # 指定字符串 *
以上实例输出结果如下:
this is **string** example....wow!!!
从结果上看,可以注意到中间部分的字符并未删除。
以上下例演示了只要头尾包含有指定字符序列中的字符就删除:
str = "123abcrunoob321" print (str.strip( '12' )) # 字符序列为 12
以上实例输出结果如下:
3abcrunoob3
swapcase()
描述
swapcase() 方法用于对字符串的大小写字母进行转换。
语法
swapcase()方法语法:
str.swapcase();
参数
- NA。
返回值
返回大小写字母转换后生成的新字符串。
实例
以下实例展示了swapcase()函数的使用方法:
#!/usr/bin/python3 str = "this is string example....wow!!!" print (str.swapcase()) str = "This Is String Example....WOW!!!" print (str.swapcase())
以上实例输出结果如下:
THIS IS STRING EXAMPLE....WOW!!! tHIS iS sTRING eXAMPLE....wow!!!
title()
描述
Python title() 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写(见 istitle())。
语法
title()方法语法:
str.title();
参数
- NA。
返回值
返回"标题化"的字符串,就是说所有单词的首字母都转化为大写。
实例
以下实例展示了 title()函数的使用方法:
str = "this is string example from runoob....wow!!!" print (str.title())
以上实例输出结果如下:
This Is String Example From Runoob....Wow!!!
请注意,非字母后的第一个字母将转换为大写字母:
txt = "hello b2b2b2 and 3g3g3g" x = txt.title() print(x)
输出结果为:
Hello B2B2B2 And 3G3G3G
translate(table, deletechars="")
描述
translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars 参数中。
语法
translate()方法语法:
str.translate(table) bytes.translate(table[, delete]) bytearray.translate(table[, delete])
参数
- table – 翻译表,翻译表是通过 maketrans() 方法转换而来。
- deletechars – 字符串中要过滤的字符列表。
返回值
返回翻译后的字符串,若给出了 delete 参数,则将原来的bytes中的属于delete的字符删除,剩下的字符要按照table中给出的映射来进行映射 。
实例
以下实例展示了 translate() 函数的使用方法:
intab = "aeiou" outtab = "12345" trantab = str.maketrans(intab, outtab) # 制作翻译表 str = "this is string example....wow!!!" print (str.translate(trantab))
以上实例输出结果如下:
th3s 3s str3ng 2x1mpl2....w4w!!!
以下实例演示如何过滤掉的字符 o:
# 制作翻译表 bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ') # 转换为大写,并删除字母o print(b'runoob'.translate(bytes_tabtrans, b'o'))
以上实例输出结果:
b'RUNB'
upper()
描述
Python upper() 方法将字符串中的小写字母转为大写字母。
语法
upper()方法语法:
str.upper()
参数
- NA。
返回值
返回小写字母转为大写字母的字符串。
实例
以下实例展示了 upper()函数的使用方法:
#!/usr/bin/python3 str = "this is string example from runoob....wow!!!"; print ("str.upper() : ", str.upper())
以上实例输出结果如下:
str.upper() : THIS IS STRING EXAMPLE FROM RUNOOB....WOW!!!
zfill(width)
描述
Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
语法
zfill()方法语法:
str.zfill(width)
参数
- width – 指定字符串的长度。原字符串右对齐,前面填充0。
返回值
返回指定长度的字符串。
实例
以下实例展示了 zfill()函数的使用方法:
#!/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!!!
isdecimal()
描述
isdecimal() 方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
**注意:**定义一个十进制字符串,只需要在字符串前添加 ‘u’ 前缀即可。
语法
isdecimal()方法语法:
str.isdecimal()
参数
- 无
返回值
如果字符串是否只包含十进制字符返回True,否则返回False。
实例
以下实例展示了 isdecimal()函数的使用方法:
#!/usr/bin/python3 str = "runoob2016" print (str.isdecimal()) str = "23443434" print (str.isdecimal())
以上实例输出结果如下:
False True