关于字符串

字符串定义 初始化 s = r"hello \n mageedu.com" s = R"c:\windows\nt" 字符串元素访问 --- 下标 字符串支持使用索引访问 sql = '' select * from user where name = ' tom ' " sql[4] # 字符串 ' c ' 有序的字符集合,字符序列 for c in sql: print(c) print(type(c)) # 什么类型 可迭代 lst = list(sql) 字符串join连接 " string ".join(iterable) --> str 将可迭代对象连接起来,使用string 做分隔符 可迭代对象本身元素都是字符串 返回一个新字符串 lst = ['1' , '2' , '3'] print(" " ".join(lst)) # 分隔符是双引号 字符串+连接 将两个字符串来连接在一起,返回一个新的字符串 字符串分割 分为两类 split 将字符串按照分隔符分割成若干字符串,并返回列表 partition 将字符串按照分隔符分割成两段,返回这两段和分割符的元组

字符串大小写 upper() 全大写 lower() 全小写 swapcase() 交互大小写 字符串排版 title() -> str 标题每个单词都大写 capitalize() -> str 首个单词大写 center(width[,fillchar]) -> str width 打印宽度 ; fillchar 填充的字符

字符串修改 replace(old, new[,count]) --> str 字符串找到匹配替换为新字串,返回新字符串

字符串查找 index(sub[,start[,end]])->在指定区间[start,end),从左至右查找,没找到ValueError

len(string) 返回字符串长度,即字符的个数 字符串判断 endswith(suffix[,start[,end]]) -> bool 在指定的区间[start,end),字符串是否是suffix结尾 startswith(prefix[,start[,end]]) -> bool 在指定的区间[start,end),字符串是否是prefix开始 字符串判断 is系列 isalnum() -> bool 是否是字母和数字组成 isspace() 是否只包含空白字符 字符串格式化 *join 拼接只能使用分隔符,且要求被拼接的是可迭代对象

  • 拼接字符串还算方便,但是非字符串需要转化为字符串才能拼接 格式要求

     占位符:使用%和格式符组成,例如%s、%d等
     s调用str(),r会调用repr()。所有对象都会被这两个转换
    

另外还有位置参数、访问元素、关键字参数或命名参数、对象属性访问、对齐( '{0}{1}={2:<2}'.format(3,2,23))、进制、浮点数等

关于bytes 、bytearray

bytes  不可变字节序列
bytearray   字节数组  可变

字符串与bytes 字符串是字符组成的有序序列,字符可以使用编码来理解 bytes是字节组成的有序的不可变序列 batearray是字节组成的有序的可变序列 编码与解码 字符串按照不同的字符集编码encode返回字节序列bytes 字节序列按照不同的字符集解码decode返回字符串 bytes定义

	bytes()空bytes
	bytes(int)指定字节的bytes,被0填充
	bytes(iterable_of_ints) -> bytes[0,255] 的int组成的可迭代对象
	bytes(string,encoding[,errors]) ->bytes 等价于string.encode()
	bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer从一个字节序列或者buffer复制出一个不可变的bytes对象

使用b前缀定义

只允许使用ASCII使用字符形式b'abc9'
使用16进制表示b"\x41\x61"

bytes 操作

和str类型类似,都是不可变类型,所以很多方法一样。只不过bytes方法,输入是bytes,输出是bytes
类方法bytes.formhex(string)
hex()  返回16进制表示的字符串
索引

baterarry定义

bytearry() 空btearray
bytearray(int)指定字节的bytearray,被0填充
bytearray(iterable_of_ints) -> bytearray[0,255] 的int组成的可迭代对象
bytearray(string,encoding[,errors]) ->bytearray近似string.encode(),不过返回可变对象
bytearray(bytes_or_buffer) -> 从一个字节序列或者buffer复制出一个新的可变的bytearray对象
b前缀定义的是bytes类型

int和bytes

int.from_bytes(bytes,byteorder)将一个字节数组表示成整数
int.to_bytes(length,byteorder)将一个整数表达成一个指定长度的字节数组

关于切片

线性结构

 可迭代for...in 
 len() 获取长度
 通过下标可以访问
 可以切片

学过的线性结构包括列表、元组、字符串、bytes、bytearray 切片

	通过索引区间访问线性结构的一段数据
	sequence[start:stop] 表示返回[start,stop]区间的子序列
	支持负索引
	start为0,可以省略
	超过上边界(右边界),就取到末尾;超过下界(左边界),取到开头
	start一定要在stop的左端
	[:] 表示从头至尾,全部元素被取出,等效于copy()方法

步长切片

step为步长,可以正负整数,默认是1
step要和start:stop同向,否则返回空序列