python 字符串介绍

Python 中字符串被定义为引号之间的字符集合。Python 支持使用成对的单引号或双引号、三引号(三个连续的单引号或者双引号)可以用来包含特殊字符。

字符串是一种直接量或者说是一种标量,这意味着Python解释器在处理字符串时是把它作为单一值并且不会包含其他Python类型的。字符串是不可变类型,就是说改变一个字符串的元素需要新建一个新的字符串.字符串是由独立的字符组成的,并且这些字符可以通过切片操作顺序地访问。使用索引运算符( [ ] )和切片运算符( [ : ] )可以得到子字符串。字符串有其特有的索引规则:第一个字符的索引是 0,最后一个字符的索引是 -1 ,加号( + )用于字符串连接运算,星号( * )则用于字符串重复。

Python 实际上有 3 类字符串.通常意义的字符串(str)和 Unicode 字符串(unicode)实际上都是抽象类 basestring 的子类.这个basestring 是不能实例化的。

原始字符串操作符( r/R )

在原始字符串(引号前面的字母"r"或“R”)里,所有的字符都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。

a = 'Hello\nJohnny'
print a
结果

Hello
Johnny

b = r'Hello\nJohnny'
print b
结果

Hello\nJohnny

Unicode字符串操作符( u/U ) 

ASCII 码:每个英文字符都是以七位二进制数的方式存贮在计算机内,其范围是 32 到 126.当用户在文件中键入一个大写字符 A时,计算机会把 A 的ASCII 码值 65。

Unicode :通过使用一个或多个字节来表示一个字符的方法突破了 ASCII 的限制. 在这样机制下,Unicode 可以表示超过 90,000 个字符。最直观的就是:

print u'你好'

Unocide 字符串操作符,用来把标准字符串或者是包含 Unicode 字符的字符串转换成完全地 Unicode 字符串对象。

Unicode 操作符也可以接受原始 Unicode 字符串,只要我们将 Unicode 操作符和原始字符串操作符连接在一起就可以了。注意:Unicode操作符必须出现在原始字符串操作符前面。

print ur'你好\nJohnny'

结果

你好\nJohnny

字符串格式化操作符

对于 Python 的格式化字符串的操作符,%s 把 Python 字符串中的 Unicode 对象执行了str(u)操作,所以,输出的应该是 u.encode(默认编码).如果格式化字符串是 Unicode 对象,所有的参数都将首先强制转换成 Unicode 然后根据对应的格式串一起进行格式转换.数字首先被转换成普通字符串,然后在转换成 Unicode.Python 字符串通过默认编码格式转化成Unicode.Unicode 对象不变,所有其他格式字符串都需要像上面这样转化,下面是例子: 

name = 'Johnny'
print "I'm %s" %name
#结果
I'm Johnny

反斜杠开头的转义字符 

/X   八进制     十进制      十六进制      字符     说明 
\0     000           0                 0x00         NUL    空字符 Nul 
\a     007           7                 0x07         BEL     响铃字符 
\b     010           8                 0x08         BS      退格 
\t      011          9                  0x09         HT       横向制表符 
\n     012        10                 0x0A         LF        换行 
\v     013         11                0x0B         VT        纵向制表符 
\f      014        12                0x0C          FF        换页 
\r      015        13                0x0D         CR       回车 
\e     033        27                0x1B         ESC    转义 
\"      042       34                 0x22           "           双引号 
\'       047       39                0x27           '            单引号 
\\      134        92               0x5C          \             反斜杠 

\OOO    八进制值(范围是 000 到 0177) 
\xXX     x 打头的十六进制值(范围是 0x00 到 0xFF) 
\           连字符,将本行和下一行的内容连接起来. 


字符串内建函数

方法

描述

string.capitalize()

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

string.center(width)

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

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

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

string.decode(encoding='UTF-8', errors='strict')

以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'

string.encode(encoding='UTF-8', errors='strict')

以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

string.endswith(obj, beg=0, end=len(string))

检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

string.expandtabs(tabsize=8)

把字符串 string 中的 tab 符号转为空格,默认的空格数 tabsize 是 8.

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

检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

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

跟find()方法一样,只不过如果str不在 string中会报一个异常.

string.isalnum()

如果 string 至少有一个字符并且所有字符都是字母或数字则返

回 True,否则返回 False

string.isalpha()

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

否则返回 False

string.isdecimal()

如果 string 只包含十进制数字则返回 True 否则返回 False.

string.isdigit()

如果 string 只包含数字则返回 True 否则返回 False.

string.islower()

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

string.isnumeric()

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

string.isspace()

如果 string 中只包含空格,则返回 True,否则返回 False.

string.istitle()

如果 string 是标题化的(见 title())则返回 True,否则返回 False

string.isupper()

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

string.join(seq)

Merges (concatenates)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

string.ljust(width)

返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

string.lower()

转换 string 中所有大写字符为小写.

string.lstrip()

截掉 string 左边的空格

string.partition(str)

有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.

string.replace(str1, str2,  num=string.count(str1))

把 string 中的 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 字符串末尾的空格.

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

以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串

string.splitlines(num=string.count('\n'))

按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.

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

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.

string.strip([obj])

在 string 上执行 lstrip()和 rstrip()

string.swapcase()

翻转 string 中的大小写

string.title()

返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

string.translate(str, del="")

根据 str 给出的表(包含 256 个字符)转换 string 的字符,

要过滤掉的字符放到 del 参数中

string.upper()

转换 string 中的小写字母为大写

string.zfill(width)

返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值