字符串String
使用引号定义的一组可以包含数字,字母,符号(非特殊系统符号)的集合。
如:
Strval=“This is a test!” Strval1=‘This is a test!‘ Strval2="""This is a test"""
三重引号(DocString)
Python三重引号允许字符串跨越多行,包括逐字换行符,制表符和其他特殊字符。
三重引号语法由三个连续的单引号或双引号。
#!/usr/bin/python para_str = """this is a long string that is made up of several lines and non-printable characters such as TAB ( \t ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ \n ], or just a NEWLINE within the variable assignment will also show up. """ print para_str;
当执行上面的代码中,产生以下结果。请注意如何每一个特殊字符被转换到打印形式,一直到最后的换行符之间的字符串“up”结束闭三重引号。还要注意的是发生或者使用显式回车在一行或它的转义代码(\ n)的尾部的换行:
this is a long string that is made up of several lines and non-printable characters such as TAB ( ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ ], or just a NEWLINE within the variable assignment will also show up.
需要注意的是,python会认为 成对的引号之间的内容为字符串内容。
如下面的例子 会有语法错误
say=’let‘s go’ File "<stdin>" , line1 say=’let‘s go’ ^ SyntaxError:invalid syntax
正确的做法是
如果只包含单引号: 使用双引号来包含字符串
如果包含单引号,双引号: 使用双引号来包含字符串,并且字符串内的双引号用转义字符 \ 来转义
say=“let‘s \" go”
转义字符
下表是未转义非打印字符的列表,可以用反斜线符号来表示。
转义字符被解释;在一个单引号和双引号字符串。
反斜线 符号 |
十六进制 字符 |
描述 |
---|---|---|
\a | 0x07 | 铃声或警报 |
\b | 0x08 | 退格键 |
\cx | Control-x | |
\C-x | Control-x | |
\e | 0x1b | 转义 |
\f | 0x0c | 换页 |
\M-\C-x | Meta-Control-x | |
\n | 0x0a | 新一行 |
\nnn | 八进制表示法,其中n的范围为0.7 | |
\r | 0x0d | 回车 |
\s | 0x20 | 空格 |
\t | 0x09 | Tab键 |
\v | 0x0b | 垂直制表 |
\x | 字符x | |
\xnn | 十六进制表示法,其中n的范围是从0.9,a.f,或AF |
字符串特殊操作符
操作符 | 描述 | 例子 a= Hello b=Python |
---|---|---|
+ | 串联- 对操作符的两侧值增加 |
a + b 的值为 HelloPython |
* | 重复 - 创建新的字符串,链接相同的字符串的多个副本 | a*2 的值为 -HelloHello |
[] | 切片- 从给定的索引字符指定 | a[1] 的值为 e |
[ : ] |
范围切片 - 给定的范围内的字符 可以给定三个值,起始索引,结束索引,步长值 结束值的索引之前的会被取出来 省略起始索引,从0开始 省略结束索引,到末尾。 如果索引值为负数的话,则从末尾开始 步长值则表示,在切片范围取值的时候没间隔多少个字符串取出一个字符,默认值为1 如果步长值为负数也可表示 从右往左取 |
a[1:4] 的值为 ell a[:4]的值为Hell a[1:]的值为ello a[-4:-1]的值为ello a[::2]的值Hlo |
in | 成员 - 如果一个字符存在给定的字符串中,则返回true | H in a 结果值为 1 |
not in | 成员 - 如果输入的字符不给定的字符串中不存在,则返回true | M not in a 结果值为 1 |
r/R | 原始字符串- 禁止转义字符的实际意义。语法原始字符串是完全一样的普通字符串,除了原始的字符串运算符,字母“r”,这之前的引号。在“r”可以小写(r)或大写字母(R)的,必须立即放置在第一引号前面。 | print r‘\n‘ 打印 \n 并且 print R‘\n‘ 打印 \n |
字符串格式化操作
Python最酷的功能是字符串格式运算符%。这种操作是唯一的字符串,弥补了C语言的printf()系列函数功能。下面是一个简单的例子:
#!/usr/bin/python print "My name is %s and weight is %d kg!" % (‘Zara‘, 21)
当执行上面的代码中,产生以下结果:
My name is Zara and weight is 21 kg!
下面是完整的,它可以与%符号使用列表:
格式符号 | 转换 |
---|---|
%c | 字符 |
%s | 通过str() 字符串转换来格式化 |
%i | 有符号十进制整数 |
%d | 有符号十进制整数 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写字母) |
%X | 十六进制整数(大写字母) |
%e | 索引符号(小写‘e‘) |
%E | 索引符号(大写“E”) |
%f | 浮点实数 |
%g | %f和%e 的简写 |
%G | %f和%E的简写 |
其他支持的符号和功能如下表:
符号 | 功能 |
---|---|
* | 参数指定宽度和精度 |
- | 左对齐 |
+ | 显示符号 |
<sp> | 一个正数前留一个空格 |
# | 添加前导零(‘0‘)或十六进制前导0x“或”0X“,取决于”x“或”X“是否使用八进制。 |
0 | 从键盘左边添加零(而不是空格) |
% | ‘%%‘给留下一个文字‘%‘ |
(var) | 映射变量(字典参数) |
m.n. | m是最小的总宽度和n是数字,显示小数点后的位数(如果appl) |
Unicode字符串
在Python普通字符串在内部存储为8位ASCII,而Unicode字符串被作为16位Unicode存储。这使得一组字符更加多样化,包括大多数语言在世界上的特殊字符。限制处理Unicode字符串
#!/usr/bin/python print u‘Hello, world!‘
当执行上面的代码,产生以下结果:
Hello, world!
正如你所看到的,Unicode字符串使用前缀 u,就像原始字符串使用前缀 r