一:元组和序列
2.1元组:不可变序列
元组和列表一样,也是一种序列,唯一的不同是元组不能修改,元组也是(大部分时候是)通过圆括号括起来的:
空元组可以用没有包含内容的两个圆括号来表示
如果元组中只含有一个元素,那么变现元组的方法有点特殊,必须加个逗号,
2.2.1 tuple函数
tuple函数的功能与list函数基本上市一样的,以一个序列作为参数并把它转换为元组
2.2.2基本元组操作
元组是不可变序列,除了创建元组和访问元组元素之外,没有其他太多的操作,元组的分片还是元组
二: 使用字符串
2.1 基本字符串操作
所有标准的序列操作(索引,分片,乘法,判断成员资格,长度,最小值,最大值)对字符串同样适用,但字符串是不可变的
2,2 字符串格式化
字符串格式化使用字符串格式化操作符即百分号%来实现(%也可以用作模运算操作符)
在%的左侧放置一个字符串,二右侧则放置希望格式化的值,可以使用一个值,如果字符串或者数字,也可以使用多个值的元组或者字典
格式化字符串的%s部分称为转换说明符,他们标记了需要插入转换值的位置,s表示值会被格式化为字符串,如果不是字符串则会用str将其转换为字符串(如果要在格式化字符串里面包换%name必须使用%%)
如果要格式化实数(浮点数),可以使用f说明符类型,同事提供所需要的精度,一个句点再加上希望保留的小数位数,因为格式化说明符总是以表示类型的字符结束,所以精度应该放在类型字符前面
基本的转换说明符:
1.%字符:笔记转换说明符的开始
2.转换标志(可选):-表示左对齐;+表示在转换值之前要机上正负号;" "(空白字符)表示整数之前保留空格;0 表示转换值若位数不够则用0填充
3.最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度,如果是*,则宽度会从值元组中读出
4.点(.)后跟精度值(可选):如果转换的是实数,精度值就表示出现在小数点后的位数如果转换的是字符串,那么该数字就表示最大字段宽度,如果是*,那么精度将会从元组中读出
5.转换类型
转换类型 | 含义 |
d,i | 带符号的十进制整数 |
o | 不带符号的八进制 |
u | 不带符号的十进制 |
x | 不带符号的十六进制(小写) |
X | 不带符号的十六进制(大写) |
e,E | 科学计数法表示的浮点数 |
f,F | 十进制浮点数 |
G,g | 如果指数大于-4或者小于精度值则和e/E相同,其他状态和f/F相同 |
C | 单字符(接受整数或者单字符字符串) |
r | 字符串(使用repr转换任意python对象) |
s | 字符串(使用str转换任意python对象) |
2.3 字符串方法
2.3.1 find 方法可以再一个较长的字符串中查找子字符串,它返回子串所在的位置的最左端索引,如果没有找到则返回-1
2.3.2 join方法是非常重要的字符串方法,他是split方法的逆方法,用来在队列中添加元素:
2.3.3 lower 方法 返回字符串的小写字母版 title方法是返回字符串的大写字母版
2.3.4 replace 方法 返回字符串的所有匹配项均被替换后得到的字符串
2.3.5 split 方法,他是join的逆方法,用来分割成序列
2.3.6 translate 方法和replace方法一样,可以替换字符串中的某些部分,但是和前者不同的是translate方法只处理单个字符,它的优势在于可以同时进行多个替换,有时候比replace效率高