参考找一找教程网:
字符串是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,而现在不再需要了。