字符串是Python中最受欢迎的类型之一.我们可以通过在引号中包含字符来创建它们. Python将单引号视为双引号.创建字符串就像为变量赋值一样简单.例如 :
var1 = 'Hello World!'var2 = "Python Programming"
访问字符串中的值
Python不支持字符类型;这些被视为长度为1的字符串,因此也被视为子字符串.
要访问子字符串,请使用方括号与索引或索引一起切片以获取子字符串.例如 :
#!/usr/bin/pythonvar1 = 'Hello World!'var2 = "Python Programming"print "var1[0]: ", var1[0]print "var2[1:5]: ", var2[1:5]
执行上述代码时,会产生以下结果 :
var1[0]: Hvar2[1:5]: ytho
更新字符串
您可以通过(重新)将变量分配给另一个字符串来"更新"现有字符串.新值可以与其先前的值相关联,也可以与完全不同的字符串相关联.例如 :
#!/usr/bin/pythonvar1 = 'Hello World!'print "Updated String :- ", var1[:6] + 'Python'
当上面的代码执行后,它产生以下结果 :
Updated String :- Hello Python
转义字符
下表是可以用反斜杠表示法表示的转义或不可打印字符的列表.
转义字符得到解释;单引号和双引号字符串.
范围内
反斜杠表示法 | 十六进制字符 | 描述 |
---|---|---|
\ a | 0x07 | 贝尔或警报 |
\ b | 0x08 | Backspace |
\ cx | Control-x | |
\Cx | Control-x | |
\ e | 0x1b | Escape |
\f | 0x0c | Formfeed |
\M-\Cx | Meta-Control-x | |
\ n | 0x0a | 换行符 |
\ nnn | 八进制表示法,其中n在0.7 | |
\ r | 0x0d | 回程 |
\s | 0x20 | 空格 |
\t | 0x09 | Tab |
\\ \\ v | 0x0b | 垂直标签 |
\ x | 字符x | |
\ xnn | 十六进制表示法,其中n在0.9范围内,af或AF |
字符串特殊运算符
假设字符串变量 a 持有'Hello',变量 b 持有'Python',然后&减去;
$中给出
Opera tor | 描述 | 示例 |
---|---|---|
+ | 连接 - 在两侧添加值运算符 | a + b将给出HelloPython |
* | 重复 - 创建新字符串,连接相同 字符串的多个副本 | a * 2将给-HelloHello |
[] | Slice - 给出来自给定索引的字符 | a [1]将给出e |
[:] | 范围切片 - 给出给定范围内的字符 | a [1:4]将在 |
b $ b | Membership - 如果给定字符串中存在某个字符,则返回true | H中的H将给1 |
不在 | Membership - 如果给定字符串中不存在某个字符,则返回true | M不在一个会给1 |
r/R | 原始字符串 - 禁止转义字符的实际含义.原始字符串的语法与普通字符串的语法完全相同,原始字符串运算符除外,字母"r"在引号之前. "r"可以是小写(r)或大写(R),必须紧接在第一个引号之前. | print r'\ n'打印\ n并打印R'\\\ 'prints \ n |
% | 格式 - 执行字符串格式化 | 参见下一节 |
字符串格式化运算符
Python最酷的功能之一是字符串格式运算符%.该运算符对于字符串是唯一的,并且具有来自C的printf()系列的功能.以下是一个简单的示例 :
#!/usr/bin/pythonprint "My name is %s and weight is %d kg!" % ('Zara', 21)
执行上述代码时,会产生以下结果 :
My name is Zara and weight is 21 kg!
以下是可与%&minus一起使用的完整符号集列表;
格式符号 | Conversion |
---|---|
%c | 字符 |
%s | 通过str转换字符串()格式化之前 |
%i | 签名十进制整数 |
%d | 带符号的十进制整数 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写字母) |
%X | 十六进制整数(大写字母) |
%e | 指数表示法(小写'e' ) |
%E | 指数表示法(带UPPERcase) 'E') |
%f | 浮点实数 |
%g | %的较短者f和%e |
%G | 较短of%f和%E |
下表列出了其他支持的符号和功能 :
符号 | 功能 |
---|---|
* | 参数指定宽度或精度 |
- | 左对齐 |
+ | 显示符号 |
< sp> | 在正数之前留空格 |
# | 添加八进制前导零('0')或十六进制前导'0x'或'0X',具体取决于是使用'x'还是'X'. |
0 | 从左边用零填充(而不是空格) |
% | '%%'为您留下一个文字'%' |
(var) | 映射变量(字典参数) ) |
mn | m是最小总宽度和n是小数点后显示的位数(如果是应用) |
三重引号
Python的三重引号通过允许字符串跨越多行来实现拯救,包括逐字NEWLINE,TAB和任何其他特殊字符.
三重引号的语法由三个连续的单引号或双引号组成.
#!/usr/bin/pythonpara_str = """this is a long string that is made up ofseveral lines and non-printable characters such asTAB ( \t ) and they will show up that way when displayed.NEWLINEs within the string, whether explicitly given likethis within the brackets [ \n ], or just a NEWLINE withinthe variable assignment will also show up."""print para_str
执行上述代码时,会产生以下结果.请注意每个特殊字符的编写方式已经转换为打印形式,直到最后一个NEWLINE,在"up."和结束三个引号之间的字符串末尾.还要注意NEWLINE发生在一行的末尾有一个明确的回车符或者它的转义代码(\ n) :
this is a long string that is made up ofseveral lines and non-printable characters such asTAB ( ) and they will show up that way when displayed.NEWLINEs within the string, whether explicitly given likethis within the brackets [ ], or just a NEWLINE withinthe variable assignment will also show up.
原始字符串根本不会将反斜杠视为特殊字符.每个字符都是放入原始字符串保持你写的方式&减去;
#!/usr/bin/pythonprint 'C:\\nowhere'
执行上述代码时,它会产生以下结果 :
C:\nowhere
现在让我们使用原始字符串.我们将表达式放在 r'expression'中,如下所示 :
#!/usr/bin/pythonprint r'C:\\nowhere'
当上面的代码是执行后,它会产生以下结果 :
C:\\nowhere
Unicode字符串
Python中的普通字符串在内部存储为8位ASCII,而Unicode字符串存储为16位Unicode.这允许更多变化的字符集,包括来自世界上大多数语言的特殊字符.我将我对Unicode字符串的处理限制为以下 :
#!/usr/bin/pythonprint u'Hello, world!'
执行上述代码时,会产生以下结果&minus ;
Hello, world!
如您所见,Unicode字符串使用前缀u,就像原始字符串使用前缀r一样.
内置字符串方法
Python包含以下内置方法来操作字符串 :