参考找一找教程网:
字符串是Python中最受欢迎、最常使用的数据类型。可以通过用引号括起字符来创建它们。 Python将单引号与双引号相同。创建字符串和向一个变量赋值一样简单。 例如 -
var1 = 'Hello World!' var2 = "Python Programming"
1.访问字符串中的值
Python不支持字符类型; 字符会被视为长度为1
的字符串,因此也被认为是一个子字符串。要访问子串,请使用方括号的切片加上索引或直接使用索引来获取子字符串。 例如 -
#!/usr/bin/python3 var1 = 'Hello World!' var2 = "Python Programming" print ("var1[0]: ", var1[0]) print ("var2[1:5]: ", var2[1:5]) # 切片加索引,www.zyiz.net
当执行上述代码时,会产生以下结果 -
var1[0]: H
var2[1:5]: ytho
2.更新字符串
可以通过将变量分配给另一个字符串来“更新”现有的字符串。 新值可以与其原值相关或完全不同的字符串。 例如 -
#!/usr/bin/python3 var1 = 'Hello World!' print ("Updated String :- ", var1[:6] + 'Python')
当执行上述代码时,会产生以下结果 -
Updated String :- Hello Python
3.转义字符
下表是可以用反斜杠表示法表示转义或不可打印字符的列表。单引号以及双引号字符串的转义字符被解析。
反斜线符号 | 十六进制字符 | 描述/说明 |
---|---|---|
a |
0x07 |
铃声或警报 |
|
0x08 |
退格 |
cx |
Control-x | |
C-x |
Control-x | |
e |
0x1b |
Escape |
f |
0x0c |
换页 |
M-C-x |
Meta-Control-x | |
|
0x0a |
新一行 |
nn |
八进制符号,其中n 在0.7范围内 |
|
|
0x0d |
回车返回 |
s |
0x20 |
空格 |
|
0x09 |
制表符 |
v |
0x0b |
垂直制表符 |
x |
字符x |
|
xnn |
十六进制符号,其中n 在0~9 ,a~f 或A~F 范围内 |
4.字符串特殊运算符
假设字符串变量a
保存字符串值’Hello
‘,变量b
保存字符串值’Python
‘,那么 -
运算符 | 说明 | 示例 |
---|---|---|
+ |
连接 - 将运算符的两边的值添加 | a + b 结果为 HelloPython |
* |
重复 - 创建新字符串,连接相同字符串的多个副本 | a*2 结果为 HelloHello |
[] |
切片 - 给出指定索引中的字符串值,它是原字符串的子串。 | a[1] 结果为 e |
[:] |
范围切片 - 给出给定范围内的子字符串 | a[1:4] 结果为 ell |
in |
成员关系 - 如果给定字符串中存在指定的字符,则返回true |
'H' in a 结果为 1 |
not in |
成员关系 - 如果给定字符串中不存在指定的字符,则返回true |
'Y' not in a 结果为 1 |
r/R |
原始字符串 - 抑制转义字符的实际含义。原始字符串的语法与正常字符串的格式完全相同,除了原始字符串运算符在引号之前加上字母“r ”。 “r ”可以是小写(r )或大写(R ),并且必须紧靠在第一个引号之前。 |
print(r'
') 将打印
,或者 print(R'
') 将打印
,要注意的是如果不加r 或R 作为前缀,打印的结果就是一个换行。 |
% |
格式 - 执行字符串格式化 | 请参见本文第5节 |
5.字符串格式化运算符
Python最酷的功能之一是字符串格式运算符%
。 这个操作符对于字符串是独一无二的,弥补了C语言中 printf()
系列函数。 以下是一个简单的例子 -
#!/usr/bin/python3 print ("My name is %s and weight is %d kg!" % ('Maxsu', 71))
当执行上述代码时,会产生以下结果 -
My name is Maxsu and weight is 71 kg!
以下是可以与%
符号一起使用的完整符号集列表 -
编号 | 格式化符号 | 转换 |
---|---|---|
1 | %c |
字符 |
2 | %s |
在格式化之前通过str() 函数转换字符串 |
3 | %i |
带符号的十进制整数 |
4 | %d |
带符号的十进制整数 |
5 | %u |
无符号十进制整数 |
6 | %o |
八进制整数 |
7 | %x |
十六进制整数(小写字母) |
8 | %X |
十六进制整数(大写字母) |
9 | %e |
指数符号(小写字母’e ‘) |
10 | %E |
指数符号(大写字母’E ‘ |
11 | %f |
浮点实数 |
12 | %g |
%f 和%e |
13 | %G |
%f 和%E |
其他支持的符号和功能如下表所列 -
编号 | 符号 | 功能 |
---|---|---|
1 | * |
参数指定宽度或精度 |
2 | - |
左对齐 |
3 | + |
显示标志或符号 |
4 | <sp> |
在正数之前留空格 |
5 | # |
根据是否使用“x ”或“X ”,添加八进制前导零(‘0 ‘)或十六进制前导’0x ‘或’0X ‘。 |
6 | 0 |
使用零作为左边垫符(而不是空格) |
7 | % |
‘%% ‘留下一个文字“% ” |
8 | (var) |
映射变量(字典参数) |
9 | m.n. |
m 是最小总宽度,n 是小数点后显示的位数(如果应用) |
6.三重引号
Python中的三重引号允许字符串跨越多行,包括逐字记录的新一行,TAB
和任何其他特殊字符。
三重引号的语法由三个连续的单引号或双引号组成。
#!/usr/bin/python3 para_str = """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. """ print (para_str)
当执行上述代码时,会产生以下结果。注意每个单独的特殊字符如何被转换成其打印形式,它是直到最后一个NEWLINEs
在“up
”之间的字符串的末尾,并关闭三重引号。 另请注意,NEWLINEs
可能会在一行或其转义码(
)的末尾显式显示回车符 -
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.
原始字符串根本不将反斜杠视为特殊字符。放入原始字符串的每个字符都保持所写的方式 -
#!/usr/bin/python3 print ('C:\nowhere')
当执行上述代码时,会产生以下结果 -
C: owhere
现在演示如何使用原始的字符串。将表达式修改为如下 -
#!/usr/bin/python3 print (r'C:\nowhere')
当执行上述代码时,会产生以下结果 -
C:\nowhere
7.Unicode字符串
在Python 3中,所有的字符串都用Unicode表示。在Python 2内部存储为8
位ASCII,因此需要附加’u
‘使其成为Unicode,而现在不再需要了。