python 字符串赋值操作(分别使用三 种分隔符),Python笔记第四节:字符串及其操作...

字符串

一个个字符组成的有序序列

字符的集合 使用单引号,双引号,三引号引住的字符序列

字符串是不可变对象

Python3起 字符串就是Unicode类型

字符串定义 初始化

s1 = 'string'

s2 = "string"

s3 = """ this is a "String" """

s4 = 'hello \n magedu.com' #\n代表换行

s5 = r 'hello \n magedu.com'#\r 表示转义 让\n就表示为字符串

字符串元素访问–下标(索引)

字符串支持使用索引 因为是有序序列

sql = “dasfsd dsda fafsf”

sql[4] #字符串 's'

字符串还可以迭代

sql = list(sql)

join连接 (拉链)

74138fab52d98c79e2fbd633f3f6e0a9.png

字符串分割

1.分割字符串方法有两种

split系:将字符串按照分隔符分割成若干字符串,并返回新列表,只会往前切 不会往后 索引超界不报错

ls = 'a b dd d '

split() # 默认按照尽量长的空格进行分割返回['a' ,'b', 'dd', 'd']

split( ' ')# 按照一个空白切除 不保留切割符

partition系:将字符串按照字符串分割成2段,返回2段和分割符的元组

从右到左,遇到分隔符就把字符串分割成两部分,返回头,分隔符,尾三部分的三元组如果没有找到分割符,就返回头,2个空元素的三元组

ccd52f62e8988b6897ffa451ad584b79.png

字符串大小写

upper() # 全大写

lower()# 全小写

swapcase()#交换大小写

2941f6677a17446ddac80ebd31330c6d.png

字符串修改*

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

count表示替换几次,不指定就是全部替换

‘heLLLo world ’.replace('l', 'p')# 把L替换为p全部换掉

‘heLLLLo world ’.replace('l', 'p', 2)#把L替换为p 替换两个

strip([chars])–> str

从字符串两端去除指定的字符集chars中的所有字符

如果chars没有指定,去除两端的空白字符

s = " Hello Python \n \t"

s.strip()#不指定 返回”Hello Python“ 去掉了两头的空格

s.strip(' ' ) #指定了去掉空格‘\r \n \t Hello Python \n \t‘ (\n \t不算空格)

s.strip(' Hell ' )#返回”o Python \n \t“去掉了指定字符

字符串查找

时间复杂度

index和count方法都是O(n)

随着列表数据规模的增大,而效率下降

len(string)

返回字符串的长度,即字符的个数

index(sub[,start[,end]])–>int

在指定的区间[start,end],从左到右。查找子串sub,找到就返回索引,没找到返回ValueError

法跟find一样

find(sub[,start[,end]])–>int

在指定的区间[start,end],从左到右。查找子串sub,找到就返回索引,没找到返回-1

rfind(sub[,start[,end]])–>int

在指定的区间[start,end],从右到左。查找子串sub,找到就返回索引,没找到返回-1

s = 'I am very very very sorry'

s.find('very')#返回【2】 very的索引

s. find('very',5)#返回【5】 从索引5开始找

#只能正这找 反着找要指定负索引

字符串判断*

时间复杂度是O(1) 可以常用

31e264e8c6cb9647bd05a50e2087d941.png

字符串判断is系列

2665e38c817496d2eb76fb68a285dba0.png

字符串格式化

字符串的格式化是一种拼接字符串输出样式的手段,更灵活方便

join拼接只能使用字符串分隔符,且要求拼接的是可迭代对象且某元素是字符串

+号拼接字符串还算方便,但是非字符串需要先转换为字符串才能拼接

在2.5版本之前,只能使用printf style风格的print输出

printf-style formatting,来自于C语言的print函数

格式要求

占位符:使用%和格式字符组成,例如%s %d等

s调用str(),r会调用repr()/所有对象都可以被这两个转换

占位符中还可以插入修饰符,列如%3d表示打印3个位置,不够前面补零

format % values,格式字符串和被格式的值之间使用%分割

values只能是一个对象,或是一个与格式字符串占位符数目相等的元组,或一个字典

535e11342b282f97419cc256a1f3ff75.png

7961bd1da84369852699c3b13dfdd91a.png

578c70b5fd917e66042d4c312ecb6fdc.png

7f3d44f395b38808ce4ccdb53555f3d5.png

ca31bb056f48a08aa0d6bf001ff3b273.png

切片

通过索引区间访问线性结构的一段数据

sequence[start:stop] 表示返回(sart,stop)区间的子序列

支持负索引

start为0,可以省略

stop为末尾。可以省略

超过上界,就去到末尾;超过下界,就去到开头

start 一定要在stop左边

[ : ]表示从头到尾,全部元素被取出,等效copy()方法

e93a816d8897fda0c6824e29a18b089c.png

步长切片

【start:stop:stpe】

step为步长 可以正,负整数,默认是1

step要和start:stop同向否则返回空序列

4316012d22dbe0762c63f7c8e6b45011.png

切片赋值

切片操作写在等号左边

被插入值是可迭代对象写在右边

a = list(range(5))

a[1:2] = 10 # 这是错误的 右边必须为可迭代对象

a [1:2] = {10,11}# 将索引为1到2 的替换成10 11

bytes ,bytearray

所有数据都是用2进制存储在计算机中

b5194ac260c3c33e64425351056d1149.png

python3引入两个新类型

bytes:不可变的字节序列

字符串与bytes

字符串是字符组成的有序序列,字符可以使用编码来理解

bytes是字节组成的有序的不可变的序列

bytearray是字节组成的有序的可变序列

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"

所有操作:b"abcdef"[2] 返回该字节对应的数,int类型

c79c2be02c6a57e27f8d50fd00eca0ce.png

bytearray定义

bytearray()空的bytearray

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。

bytearray前缀就是bytearray()

9b0a5cea704efdae1a5c74058937ec39.png

int 和bytes

int.from_bytes(bytes,byteorder)

将一个字节数组表示成整数

int.to_bytes(length,byteorder)

byteorder字节序:将一个整数表达成一个指定长度的字节数组

i = int.from_bytes(b'abc',,"big") #大头

print(i,hex(i)) 返回# 6382179 0x61663

print(i.to_bytes(3,'big')) # 返回b"adc"

编码与解码

字符串按照不同的字符集编码encode返回字节序列bytes

encode(encodin = utf-8,errors = ‘stric’)–bytes

字节序列按照不同的字符集解码decode返回字符串

bytes。decode(encoding = ‘utf-8’,errors= ‘strict’)–str

bytes(string,encoding[,errors])->bytes 等价于string。encode(),不过返回的是可变对象

bytearray 字节数组 可变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值