首页 > 代码库 > 字符串

字符串

常见字符串常量和表达式

s = ‘‘ #空字符串
s = "spam‘s" #双引号和单引号
s = s\np\ta\x00m #转义序列
s = """...""" #三重引号字符串块
s = r\temp\spam #Raw字符串
s = bspam #python3.0中的字节字符串
s = uspam #仅在python2.6中使用的unicode字符串
s1 + s2 #合并
s * 3 #重复
s[i] #索引
s [i:j] #分片
len(s) #求长度
"a %s parrot" % kind #字符串格式化表达式
"a {0} parrot".format(kind) #python2.6和python3.0的字符串格式方法
s.find(pa) #字符串方法:搜索
s.rstrip() #移除空格
s.replace(pa, xx) #替换
s.split(,) #用占位符分割
s.isdigit() #检查是否只由数字组成
s.lower() #转为小写
s.endswith(spam) #是否以制定后缀结尾
spam.join(strlist) #插入分割符
s.encode(latin-1) #unicode编码
for x in s: print(x) #迭代,成员关系
spam in s
[c * 2 for c in s]
map(ord, s)

字符串常量

单双引号字符串是一样的,而且python会自动在任意表达式中合并相邻的字符串常量。

title = "Meaning " of " Life"
#‘Meaning of Life‘

用转义序列代表特殊字节

\newline #忽视(连续)
\\ #反斜杠
\ #单引号
\" #双引号
\a #响铃
\b #倒退
\f #换页
\n #换行
\r #返回
\t #水平制表符
\v #垂直制表符
\N #unicode数据库ID
\uhhhh #unicode 16位的十六进制值
\Uhhhhhhhh #unicode 32位的十六进制值
\xhh #十六进制值
\0xx #八进制值
\0 #Null
\other #不转义

一些转义字符允许一个字符串中嵌入绝对的二进制值。

s = a\0b\0c
s
#‘a\x00b\x00c‘
len(s)
#5

注意,python以十六进制现实非打印的字符。

如果python找不到合法的转义编码,就会保留反斜杠。

raw字符串抑制转义

如果使用以下参数去打开文件就会出错:

myfile = open(C:\new\text.dat, w)

\n会被识别为一个换行字符,\t会被识别为一个制表符。如果在字符串第一个引号前面放一个字母r(大写或小写),它就会关闭转义机制。

myfile = open(rC:\new\text.dat, w)

还有一种办法,用两个反斜杠来代表一个反斜杠。

myfile = open(C:\\new\\text.dat, w)

三重引号编写多行字符串块

如果希望一些行的代码不工作,之后再运行,可以简单在这几行前后加入三重引号。

x = 1
"""
import os
print(os.getcwd())
"""
y = 2

 

字符串