python字符串是什么样的_python字符串专题

python中有个比较烦的地方就是编码

一、何为编码?

我的理解是:计算机是0和1的世界,所以计算机中的编码是指:将客观的感觉输入转换成主观(即转换为01)

二、何为字符编码?

既然知道了编码是将客观事物转换为主观事物,那是不是需要一套规则来规定这个过程是如何转换的?

所以要对自然语言的字符进行转换,就有了字符编码

字符编码就是一套规则,一套对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对的规则。

三、何为ASCII编码?

ASCII编码是字符编码的具体实现;

美国指定的这套ASCII编码,是对英语字符与二进制位之间的关系,做了统一规定;

ASCII 码一共定义了 128 个字符的对应转换;例如大写的字母A是65(二进制01000001)

其编码方案:1 字节对应 8 位二进制数;

八个二进制位就可以组合出256种状态,每一个状态对应一个符号,就是256个符号

四、何为Unicode编码?

ASCII编码显然不足展示世界上所有语言中的所有字符,所以unicode编码出现了;

其编码方案:所有的字符都用 4 个字节来表示,不够的就往前面补 0;

但可悲的是,unicode只是规定了各个符号的二进制代码,却没有规定这个二进制代码应该如何存储,而且也有空间浪费的存在

五、何为UTF-8编码?

utf-8根据字符的不同变换长度,且支持ASCII编码,可以将其理解为unicode的具体实现;

其编码方案:1、对于单个字节的字符,第一位设为 0,后面的 7 位对应这个字符的 Unicode 码点。因此,对于英文中的 0 - 127 号字符,与 ASCII 码完全相同。这意味着 ASCII 码那个年代的文档用 UTF-8 编码打开完全没有问题。

2、对于需要使用 N 个字节来表示的字符(N > 1),第一个字节的前 N 位都设为 1,第 N + 1 位设为0,剩余的 N - 1 个字节的前两位都设位 10,剩下的二进制位则使用这个字符的 Unicode 码点来填充。

解码规则:如果一个字节的第一位是 0 ,则说明这个字节对应一个字符;如果一个字节的第一位1,那么连续有多少个 1,就表示该字符占用多少个字节

六、三种编码方式在计算机内部是怎么被使用的呢?

在计算机内存中,统一使用Unicode编码;

当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码

Unicode转str:'a'.encode('utf-8')

七、python字符串是什么?

字符串是一系列字符组成的一种不可变序列;所以字符串具备序列类型都支持的操作

# 以下的s、t皆表示序列,x表示元素

x in s # 若s包含x,返回True,否则返回False

x not in s # 若s包含x,返回False,否则返回True

s + t # 连接两个序列

s * n # s复制n次

s[i] # s的索引第i项

s[i:j] # s切片从第i项到第j-1项

s[i:j:k] # s切片从第i项到第j-1项,间隔为k

len(s) # s的长度

min(s) # s的最小元素

max(s) # s的最大元素

s.index(x) # x的索引位置

s.count(x) # s中出现x的总次数

八、python字符串拼接

1、格式化类(%占位符)%d(代表一个整数)、%f(代表一个浮点数)、%x(代表一个16进制数)

例如:print('%s %s' % ('Hello', 'world')){}做占位符,format()函数拼接

例如:s1 = 'Hello {}! '.format('World')

2、拼接类+操作符、

例如:'Hello' + 'world'join()函数

例如:' '.join(str_list)

3、字符串乘法

例如:'hello' * 2

4、f-string

例如:

name = 'world'

myname = 'cat'

f'Hello {name}. My name is {myname}.'

总结:处理字符串列表等序列结构时,采用join()方式;

拼接长度不超过20时,选用+号操作符方式;

长度超过20的情况,高版本选用f-string,低版本时看情况使用format()或join()方式

九、python字符串拆分

字符串是不可变序列,所以字符串拆分过程是在拷贝的字符串上进行,并不会改变原有字符串;

所以python中是将长字符串拆分成一个列表split('分隔符', num)

splitlines(True|False) 按行拆分字符串

例如:

l = '''Hi there , my name is Python猫

Do you like me ?

'''

l.split(' ',3)

>>> ['Hi', 'there', ',', 'my name is Python 猫

Do you like me ?

']

'ab c

de fg

kl

'.splitlines()

>>> ['ab c', '', 'de fg', 'kl']

十、python替换字符串

十一、python查找字符串

正则表达式和 re 模块就是这样的工具,正则表达式用来定制匹配规则,re 模块则提供了 match() 、find() 及 findall() 等方法,它们组合起来

十二、python字符判断

参考:深入理解Python字符串的用法​mp.weixin.qq.com0cb5b846d0b51aaa2db72a569a30fbbf.pngPython拼接字符串的七种方式​mp.weixin.qq.com4421e82eafc6414b1c04a056d722c156.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值