疑点难点:
1 字符串有提供子串查找的方法find。利用find方法可以查找子串第一次出现的位置索引。如果子串不存在,find方法的返回值为-1。
问题:返回值为什么是-1,不是0?
思考题:
1 反斜杠”\”+字符,构成特殊的字符,用转义字符来表示字符集中定义的字符
问题:为什么用转义字符来表示?
知识点总结:
字符串:
1 字符串子串的查找方法:find
找到子串的位置索引,如果存在,返回位置索引的值。如果不存在,返回值为-1
2 用引号括起来的(单引号、双引号、三引号)都是字符串。
3 字符串是一种线性的结构,对应的空间是一块连续的内存。
4 字符串的类型名为str,通过type()可以输出数据的类型名
5 定义字符串有两种方法:对象定义法str()、直接定义法” “。
字符编码与字节解码:
1 ord函数可以获取字符十进制的数字码,基本语法:ord(character)
character:字符
2 chr函数可以将数字码转换成字符,基本语法:chr(code)
code:编码
3 常用的字符编码:ASCII、UNICODE、UTF-8、GBK
ASCII:有7位或者8位二进制位组成的字符编码,最多可包含256个字符。基本的ASCII字符有128个
UNICODE:为每种语言、每个字符设定了唯一的编码,编码形式是在十六进制的数字前面加上U+
UTF-8:是针对UNICODE长度可变的字节编码,例如对ASCII 的字符还是1个字节,汉字则采用3个字节
GBK:是针对汉字的编码规范,单双字节码结合使用。英文用单,部分汉字用双
4 python默认用UNICODE进行编码,所以python里面的字符串是UNICODE字符编码。
5 编码和解码:编码是将字符转换成字节码,解码是将字节码转换成字符
6 字符串类型的encode方法,基本语法:str .encode(encoding),encoding表示字符的编码方式
返回值为bytes类型,
7 字节码类型的decode方法,基本语法:bytes.decode(encoding),encoding表示字符的编码方式
返回值是str数据类型
转义字符:
1 反斜杠”\”+字符,构成特殊的字符,用转义字符来表示字符集中定义的字符
2 在某些情景下,需要禁止转义符号对字符的转义,通过在字符串前面加上前缀r
例如:file = r”D:\none”
字符串常用的操作符及操作方法:
1 +(拼接) (重复) : in(存在) not in(不存在) %(格式化输出)
2 len(str) 返回字符串的字符个数(字符串的长度)
3 str.lower(),返回值为全部小写。 str.upper(),返回值为全部大写
4 str.islower(),是否全部小写(返回值为Ture/False)。str.isupper()是否全部大写(返回值为Ture/false)
5 删除字符串的空白字符:
6 字符串字串的查找:
7 字符串字串的统计:
8 字符串字串的替换:
9 字符串的拆分函数:
10 字符串的前缀和后缀:
*字符串的格式化:
1 按照特定的格式将字符串输出
2 %d(格式化为整数)、%f(格式化为浮点数)、%s(格式化为字符串)
3 %e()、%g()
4 格式化操作符:%
5 format方法进行格式化
列表:
1 类型名为list(动态),是一种数据集合。有对象定义法和直接定义法。
2 对象定义法:
3 直接定义法:
4 列表是一种序列结构,是可迭代的。可以在for循环中对元素进行遍历
5 常用操作符:+ * [] [:] in not in > ==
6 常用操作方法:添加 、查找 、修改 、删除
7 其他有关的操作方法:原地排序法
8 列表推导式:本质是一个for循环
for循环、嵌套for循环、if条件控制、for+if的
元组:
1 类型名为tuple(静态),是一种数据集合。有对象定义法和直接定义法。
2 对象定义法:
3 直接定义法:
4 列表是一种序列结构,是可迭代的。可以在for循环中对元素进行遍历
5 常用操作符:+ * [] [:] in not in > ==
6 常用操作方法:读取(查找)
7 元组的自动解包:
8 与列表的区别:元组是静态、不可变的。列表是动态、可变的。
字典:
1 类型名为dict,是一种数据集合。有对象定义法和直接定义法。
2 对象定义法:
3 直接定义法:
4 列表是一种序列结构,是可迭代的。可以在for循环中对元素进行遍历
5 常用操作符:+ * [] [:] in not in > ==
6 常用操作方法:添加 、查找 、修改 、删除
7 字典的底层实现基于哈希表,键名必须是静态的、可哈希的数据类型
8 字典的格式化:”%(key)s” % (dict)
format格式化:
集合:
1 类型名为set,是一种数据集合。有对象定义法和直接定义法。
2 对象定义法:
3 直接定义法:
4 列表是一种序列结构,是可迭代的。可以在for循环中对元素进行遍历
5 常用操作符:+ * [] [:] in not in > ==
6 常用操作方法:添加 、查找 、删除
7 集合的底层实现基于哈希表,键名必须是静态的、可哈希的数据类型
集合和字典很相似,集合的元素只有字典元素里的键名。
键名是唯一的,具有天然排重功能。
8 集合的运算:交集、并集、差集
类型的转换:
1 显性类型转换:整型与浮点型、字符串类型与数值类型、复合型的转换
2 隐形类型转换:范围小的数据类型转换成范围大的数据类型
3 非法转换:字符串转换成数值类,里面的字符必须是连续的合法的数字。
4 转换成布尔类型:每一种数据类型都有其对应的假植和真值。
