字符串是 Python 中最常用的数据类型。我们可以使用引号(单引号或双引号)来创建字符串。本文主要介绍字符串常用操作和42个字符串相关的方法,下面具体看一下。

1、创建字符串

创建很简单,只要为变量分配一个值即可。

例如:

var1 = 'Hello World!'
var2 = "Python Good"

2、Python 访问字符串中的值

Python不支持单字符类型,像C#等其它语言中还有Char类型。访问子字符串,可以使用方括号来截取字符串(切片访问),代码如下:

#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Good"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

执行结果:

var1[0]: H
var2[1:5]: ytho

3、python转义字符

在使用特殊字符时,python也和其它语言类似,用反斜杠(\)转义字符。

特殊字符描述
\续行符(在行尾使用)
\\反斜杠符号
\'单引号
\"双引号
\a响铃
\b退格(Backspace)
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页

4、python字符串运算符

1)两个字符串连接,通过"+"连接字符串,或字符串变量。

>>>"hi" + "man"
'himan'

2)重复输出字符串,通过"*"重复输出。

>>>"hi"*4
'hihihihi'

3)in 成员运算符,如果给定的字符串中包含给定的字符返回True,否则返回False。

>>>"h" in "helloworld!"
True

4)not in 成员运算符,如果字符串不包含给定的字符返回True,否则返回False。

>>>"a" not in "hello world!"
True

5)"r" 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法,正则表达式中比较常用。

>>>print r'abc\n' 
abc\n 
>>> print R'abc\n' 
abc\n

5、python 字符串格式化

在Python中也是支持字符格式化,基本上和C语言类似。代码如下:

#!/usr/bin/python
print "My name is %s and age is %d !" % ('Liangliang', 21) 

输出结果:

My name is Liangliang and age is 21 !

python字符串格式化符号:

1)格式化字符及其ASCII码:%c
2)格式化字符串:%s
3)格式化整数:%d 例如: print '%d'%10 # 输出十进制

>>> 10

4)格式化无符号整数:%u
5)格式化无符号八进制数:%o 例如:print '%o'%10 # 输出八进制

>>> 12

6)格式化无符号十六进制数:%x 或 %X 例如:print '%02x'%10 # 输出两位十六进制,字母小写空缺补零

>>> 0a

print '%04X'%10 # 输出四位十六进制,字母大写空缺补零

>>> 000A

7)格式化浮点数字,可指定小数点后的精度:%f
8)用科学计数法格式化浮点数:%e 或 %E 例如:print '%.2e'%1.2888 # 以科学计数法输出浮点型保留2位小数

>>> 1.29e+00

9)%f%e的简写:%g
10)%f%E 的简写: %G
11)用十六进制数格式化变量的地址: %p
12)'%%'输出一个单一的'%'

5、Python三引号(triple quotes)

python中三引号可以将复杂的字符串进行复制:
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。

例如:

>>> hi = '''hi 
 there'''
 >>> hi 
'hi\nthere' 
>>> print hi 
hi 
there

6、Unicode字符串

Python中定义一个Unicode字符串,就是在字符串的的引号前边加小写字母u.

>>> u'Hello World !' 
u'Hello World !'
>>> u'Hello\u0020World !' # \u0020 表示编码值为 0x0020 的 Unicode 字符(空格符)。
u'Hello World !'

7、python的字符串内建方法和函数

方法描述
string.capitalize()将字符串的第一个字符大写。
string.center(width)返回一个原字符串居中,
并使用空格填充至指定宽度 width 的新字符串。
string.count(str, beg=0, end=len(string))返回字符串中 str 出现的次数,
如果指定了起始索引 beg 和结束索引 end
则返回在指定范围内 str 出现的次数。
string.decode(encoding='UTF-8', errors='strict')使用指定的编码 encoding 解码字符串。
如果出错默认抛出一个 ValueError 异常,
除非 errors 被设置为 'ignore' 或 'replace'。
string.encode(encoding='UTF-8', errors='strict')使用指定的编码 encoding 编码字符串。
如果出错默认抛出一个 ValueError 异常,
除非 errors 被设置为 'ignore' 或 'replace'。
string.endswith(obj, beg=0, end=len(string))检查字符串是否以指定的 obj 结尾。
如果提供了 begend
则检查指定范围内是否以 obj 结尾。
string.expandtabs(tabsize=8)将字符串中的制表符转换为指定数量的空格(默认为8个)。
string.find(str, beg=0, end=len(string))在字符串中搜索 str(或指定范围),
并返回它开始的第一个索引位置,
如果未找到则返回 -1。
string.format()格式化字符串。
string.index(str, beg=0, end=len(string))find() 方法相似,
但如果未找到 str 会抛出一个异常。
string.isalnum()如果字符串至少有一个字符
且所有字符都是字母或数字,
则返回 True,否则返回 False。
string.isalpha()如果字符串至少有一个字符
且所有字符都是字母,
则返回 True,否则返回 False。
string.isdecimal()如果字符串只包含十进制数字,
则返回 True,否则返回 False。
string.isdigit()如果字符串只包含数字,
则返回 True,
否则返回 False。
string.islower()如果字符串包含至少一个区分大小写的字符,
并且所有这些(区分大小写的)字符都是小写,
则返回 True,否则返回 False。
string.isnumeric()如果字符串只包含数字字符,
则返回 True,
否则返回 False。
string.isspace()如果字符串只包含空格,
则返回 True,
否则返回 False。
string.istitle()如果字符串是标题化的(见 title()),
则返回 True,否则返回 False。
string.isupper()如果字符串包含至少一个区分大小写的字符,
并且所有这些(区分大小写的)字符都是大写,
则返回 True,否则返回 False。
string.join(seq)以字符串作为分隔符,
seq 中所有的元素(的字符串表示)
合并为一个新的字符串。
string.ljust(width)返回一个原字符串左对齐,
并使用空格填充至长度 width 的新字符串。
string.lower()转换字符串中所有大写字符为小写。
string.lstrip()截掉字符串左边的空格。
string.maketrans(intab, outtab)用于创建字符映射的转换表,
maketrans() 方法对于接受
两个参数的最简单的调用方式,
第一个参数是字符串,表示需要转换的字符,
第二个参数也是字符串表示转换的目标。
max(str)返回字符串 str 中最大的字母。
min(str)返回字符串 str 中最小的字母。
string.partition(str)有点像 find()split() 的结合体,
str 出现的第一个位置起,
把字符串 string 分成一个 3 元素的元组
 (string_pre_str, str, string_post_str),
如果字符串中不包含 strstring_pre_str
等于 string
string.replace(str1, str2, num=string.count(str1))把字符串中的 str1 替换成 str2
如果指定了 num,则替换不超过 num 次。
string.rfind(str, beg=0, end=len(string))类似于 find() 函数,
不过是从右边开始查找。
string.rindex(str, beg=0, end=len(string))类似于 index(),不过是从右边开始。
string.rjust(width)返回一个原字符串右对齐,
并使用空格填充至长度 width 的新字符串。
string.rpartition(str)类似于 partition() 函数,
不过是从右边开始查找。
string.rstrip()删除字符串末尾的空格。
string.split(str="", num=string.count(str))str 为分隔符切片字符串,
如果指定了 num 值,
则仅分隔 num 个子字符串。
string.splitlines([keepends])按照行('\r', '\r\n', '\n')分隔,
返回一个包含各行作为元素的列表,
如果参数 keepends 为 False,
不包含换行符,如果为 True,
则保留换行符。
string.startswith(obj, beg=0, end=len(string))检查字符串是否以 obj 开头,
是则返回 True,否则返回 False。
如果指定了 begend 值,
则在指定范围内检查。
string.strip([obj])在字符串上执行 lstrip()rstrip()
string.swapcase()翻转字符串中的大小写。
string.title()返回“标题化”的字符串,
即所有单词都以大写开始,
其余字母均为小写(见 istitle())。
string.translate(str, del="")根据 str 给出的表(包含 256 个字符)
转换字符串的字符,
要过滤掉的字符放到 del 参数中。
string.upper()转换字符串中的小写字母为大写。
string.zfill(width)返回长度为 width 的字符串,
原字符串右对齐,前面填充 0。

推荐文档

相关文档

大家感兴趣的内容

随机列表