什么是转义字符呢?
就是反斜杠+想要实现的转移功能首字母
为什么需要转移字符?
当字符串中包含反斜杠、单引号和双引号等有特殊用途的字符时,必须使用反斜杠对这些字符进行转义(转换一个含义)
反斜杠\\
单引号\’
上引号\”
当字符串中包含换行,回车,水平制表符或者退格等无法直接标识的特殊字符时,也可以使用转义字符
换行\n
回车\r
水平制表符\t
退格\b
字符串类型又被成为不可变的字符序列(值一旦改变,内存地址改变)
可以使用单引号,双引号,或三引号来定义
单引号和双引号定义的字符串必须在一行
三引号定义的字符串可以分布在连续的多行
字符串的大小写转换:
功能 |
方法名 |
作用 |
大小写转换 |
Upper() |
所有字符转大写 |
Lower() |
所有字符转小写 |
|
Swapcase() |
大写转小写,小写转大写 |
|
Capitalize() |
第一个字符转大写,其余字符小写 |
|
Title() |
把每个单词的第一个字符转为大写,把每个单词剩余的转为小写 |
功能 |
方法名 |
作用 |
字符串对齐 |
Center() |
居中对齐,第一个参数指定宽度,第二个参数指定填充符号,第二个参数是可选的,默认是空格,如果设置的开端度小于实际宽度,则返回源字符串。 |
Ljust() |
左对齐 |
|
rjust() |
右对齐 |
|
zfill() |
右对齐,左边用0填充 |
功能 |
方法名 |
|
判断字符串的方法 |
Isidentifier() |
判断指定的字符串是不是合法的标识符 |
Isspace() |
判断指定的字符串是否全部由空白字符串组成(回车、换行、水平制表符) |
|
Isalpha() |
判断指定的字符串是否全部由字母组成 |
|
Isdecimal() |
判断指定的字符串是否全部由十进制的数字组成 |
|
|
Isnumeric() |
判断指定的字符串是否全部由数字组成 |
|
Isanalnum() |
判断指定的字符串是否全部由字母和数组组成 |
str()、int()、float()
布尔值:
0位False,1位True、空字符为False
为什么要将元组设计为可变序列?
在多任务环境下,同时操作对象是不需要加锁
因此,在程序中尽量使用不可变序列
注意事项:元组中存储的是对象的引用
如果元组中的对象本身不可变对象,则不能再引用其他对象
如果元组中的对象本身是可变对象,则可变对象的引用不改变,但数据可以改变
数据结构 |
是否可变 |
是否重复 |
是否有序 |
定义符号 |
列表(list) |
可变 |
可重复 |
有序 |
[] |
元组(tuple) |
不可变 |
可重复 |
有序 |
() |
字典(dict) |
可变 |
Key不可重复,value可重复 |
无序 |
{key:value} |
集合(set) |
可变 |
不可重复 |
无序 |
{} |
字符串驻留机制的优缺点:
当需要值相同的字符串时,可以直接从字符串池里拿来使用,避免频繁的创建和销毁,提升效率和节约内存,因此拼接字符串和修改字符串是会比较影响性能的。
在需要进行字符串的拼接时候建议使用str类型的jion方法,而非+,因为join方法是先计算出所有字符串的长度,然后再拷贝,只new一次对象,效率要比”+”要高。
序号 |
异常类型 |
描述 |
1 |
ZeroDivisionError |
除0了 |
2 |
IndexError |
序列中没有此索引 |
3 |
KeyError |
映射中没有这个key |
4 |
NameError |
未声明/初始化对象 |
5 |
SyntaxError |
Python语法错误 |
6 |
ValueError |
传入无效的参数 |