var1 = 'Hello World!' var2 = "Python Programming"
访问字符串的值
#!/usr/bin/python3 var1 = 'Hello World!' var2 = "Python Programming" print ("var1[0]: ", var1[0]) print ("var2[1:5]: ", var2[1:5])
var1[0]: H var2[1:5]: ytho
更新字符串
可以通过(再)分配给另一个字符串变量来“更新”现有的字符串。新的值可以相关联它之前的值或使用另一个完全不同的字符串。例如 -
#!/usr/bin/python3 var1 = 'Hello World!' print ("Updated String :- ", var1[:6] + 'Python')
Updated String :- Hello Python
转义字符
反斜线
符号
|
十六进制
字符
|
描述 |
---|---|---|
\a | 0x07 |
响铃或警报
|
\b | 0x08 |
Backspace键
|
\cx |
|
Control-x |
\C-x |
|
Control-x |
\e | 0x1b | Escape |
\f | 0x0c | Formfeed |
\M-\C-x |
|
Meta-Control-x |
\n | 0x0a | 新行 |
\nnn |
|
Octal notation, where n is in the range 0.7 |
\r | 0x0d | Carriage return |
\s | 0x20 | 空格 |
\t | 0x09 | Tab |
\v | 0x0b | Vertical tab |
\x |
|
Character x |
\xnn |
|
十六进制表示法,其中n的范围是从 0.9, a.f, 或 A.F |
字符串特殊操作符
操作符 | 描述 | 示例 |
---|---|---|
+ |
拼接 - 操作符两边值相连接
|
a + b =' HelloPython' |
* |
重复 - 创建新的字符串,链接相同的字符串多个副本
|
a*2 = 'HelloHello' |
[] |
切片 - 提供从给定索引对应的字符
|
a[1] = 'e' |
[ : ] |
范围切片 - 提供从给定的范围内字符
|
a[1:4] =' ell' |
in |
成员操作符 - 如果一个字符在给定字符串中存在,则返回true
|
H in a = 1 |
not in |
成员操作符 - 如果一个字符在给定的字符串中不存在,则返回true
|
M not in = 1 |
r/R | 原始字符串 - 禁止转义字符实际意义。 字母“r”这是引号前导。 | print r'\n' 打印 \n , print R'\n' 打印 \n |
% |
格式 - 执行字符串格式化
|
参见下一节
|
字符串格式化操作
Python有一个最酷的功能是字符串格式运算符%。这个操作符对于字符串是是唯一的,并填补了 C语言中 printf()系列函数。下面是一个简单的例子-
#!/usr/bin/python3 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)
|
三重引号
#!/usr/bin/python3 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)
当执行上面的代码,它产生了以下结果。注意,如何每一个特殊字符已经转换到它的打印形式,一直到最后的NEWLINE之间的字符串的结尾关闭三重引号。还要注意的是出现新行或者使用一行或末尾明确回车其换码(\ 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.
原始字符串不会把反斜杠作为一个特殊字符。 把一个原始字符串中的每个字符保持原来编写的方式 -
#!/usr/bin/python3 ( print ('C:\\nowhere')
C:\nowhere
#!/usr/bin/python3 print (r'C:\\nowhere')
C:\\nowhere
Unicode字符串
在Python 3,所有的字符串都是以Unicode表示。在Python2中内部存储为8位ASCII,因此,它需要附上“u”以让明确使用的是Unicode。但在Python3 中现在不再是必要的。
字符串内置的方法
SN |
方法及描述
|
---|---|
1 |
将字符串的第一个字母大写
|
2 |
返回以fillchar填充的字符串以及原始字符串中心到总 width 列
|
3 |
count(str, beg= 0,end=len(string))
计数str有多少次出现在在字符串中;或如果开始索引beg和结束索引 end 给出,则计算子字符串在一个字符串中出现的次数
|
4 |
decode(encoding='UTF-8',errors='strict') 利用注册编解码器解码编码字符串。编码默认是系统默认字符串编码 |
5 |
encode(encoding='UTF-8',errors='strict') 返回字符串的编码字符串版本; 在出错时,默认引发 ValueError 错误,除非用“ignore”或“replace” |
6 |
endswith(suffix, beg=0, end=len(string)) 确定是否字符串或字符串的子串(如果开始索引beg和结束索引end给出)以 suffix 结束; 如果是这样返回true,否则为false |
7 | 扩展制表符字符串到多个空格; 默认每个制表符为8个空格,如果不提供制表符的大小 |
8 |
find(str, beg=0 end=len(string))
确定是否在字符串或字符串找到一个子字符str(如果开始索引beg和结束索引end给出),如果找到则返回索引,否则返回-1
|
9 |
index(str, beg=0, end=len(string))
同 find()方法,如果str没有找到则引发异常
|
10 |
如果string至少有1个字符,所有字符是字母数字则返回true,否则返回false
|
11 |
如果string至少有1个字符,所有字符是字母则返回true,否则为false
|
12 |
如果字符串仅包含数字返回true,否则为false
|
13 |
如果string至少有1个可转大小写字符,所有可转大小字符是小写字母则返回true,否则为false
|
14 |
如果一个Unicode字符串只包含数字字符则返回true,否则为false
|
15 |
如果字符串只包含空格字符则返回true,否则为false
|
16 |
如果字符串是否正确“titlecased”(首字母大写)返回true,否则为false
|
17 | 如果string至少有1个可转大小写字符,所有可转大小字符是大写字母则返回true,否则为false |
18 |
合并(符连接)序列 seq 融入一个字符串,以及使用分隔符字符串的字符串表示。
|
19 |
返回字符串的长度
|
20 |
返回一个空格填充字符串与原字符串左对齐到总宽度列
|
21 |
字符串中所有大写字母转换为小写
|
22 |
删除字符串的所有前导空格
|
23 |
返回要在转换函数使用的转换表
|
24 |
从字符串str返回最大拼音/字母字符
|
25 | 从字符串str返回最小拼音/字母字符 |
26 |
使用 new 替换所有出现在字符串中的 old 或 如果 max 给定,替换现的 max
|
27 |
rfind(str, beg=0,end=len(string))
类似于 find(),但在字符串中是向后搜索
|
28 |
rindex( str, beg=0, end=len(string))
类似于 index(),但在字符串中是向后搜索
|
29 |
返回一个空格填充字符串,以及原始字符串以总宽度列向右对齐
|
30 |
删除字符串结尾的所有空格
|
31 |
split(str="", num=string.count(str)) 根据分隔符str(如果未提供则默认为空格)分裂字符串并返回子字符串列表; 如果num给定,则分割成至多num个子字符串 |
32 |
splitlines( num=string.count('\n'))
拆分所有(或num)字符串换行符,并返回每行去除换行后的列表
|
33 |
startswith(str, beg=0,end=len(string)) 确定字符串或字符串的子串是否以(如果开始索引beg和结束索引end给出)子字串str开头; 如果是返回true,否则为false |
34 |
对字符串同时执行lstrip()和rstrip()
|
35 |
反转在字符串中的所有字母大小写(大写转小写,小写转大写)
|
36 |
返回“titlecased”字符串的版本,也就是所有的字开头大写,其余小写
|
37 |
translate(table, deletechars="")
根据翻译表str(256字母)转换字符串,删除那些在del字符串
|
38 |
将字符串的小写字母转换为大写
|
39 |
返回原字符串左边用零填充到总宽度的字符; zfill()保留给任何正负号(少一个零)
|
40 |
如果一个Unicode字符串只包含小数点字符则返回 true,否则为 false
|