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
|
