python 去除字符串的标点符号 用_小疯谈python:(六)数据类型之序列类型(下)...

在上一篇文章中,我介绍了序列类型的列表和元组,主要讲列表的一些特有方法介绍给了大家,今天我将向大家介绍序列类型中的最后一个数据类型——字符串。

2ca019382ad768cccc209dec9cabb503.png

字符串:是字符的序列表示,可以用单引号(' ')双引号(" ")或三引号(''' ''') + 元素 来构成,这里的元素不在是任意数据类型,而是字符,即我们常说的语言文字极其标点符号和数字等,其中单引号和双引号表示单行字符串三引号表示多行字符串(需用变量名接受,否则视为注释)。它们之间可以互相包含,即在双引号内使用单引号会将单引号看出字符,在单引号内使用双引号可以把双引号看成字符,三引号同理,同样的,我们不能在单引号中在此使用单引号,这样会使的解释器发生解释错误。

注意:之前可能没有说,这里的引号和之前元组列表的括号都是在英文键盘下的符号,在中文键盘下是不能被解释器识别的,毕竟这是外国人写的语言。

b5d923e690fdb8c1dbb280e22c495780.png

字符串作为序列类型的一种,因此之前说的所有关于序列类型的通用方法,它都适用这里就不在多说了。由于字符串和元组一样,属于不可变的数据类型,因此我们无法像列表对其中的元素进行改变,但是我们可以通过内置字符串的函数和方法,对字符串进行特殊操作。

内置字符串处理函数:

  • len (str) :返回字符串的长度
  • ord (str) :返回字符串对应的Unicode编码
  • chr (str) :返回Unicode编码对应的字符
  • hex (int) :返回整数int对应的十六进制的小写形式的字符串
  • oct (int) :返回整数int对应的十六进制的小写形式的字符串

以上内容,除了第一个len方法外,其他的不需要掌握,只需要了解,如果你感兴趣可以自行百度。因为这不是这篇文章的重点。

内置字符串处理方法:

e8af7be165d14aa366bae35ca4ec676c.png

这里再次向大家简单解释一下什么是方法,之后会有专门一篇介绍,在面向对象的语言中的我们常常将具有相同特征的物质封装成一个类,在这个类中我们通过函数给给这个类定义一个方法,一旦我们将具体的事物实例化到这一类中,我们就可以通过调用这个方法,实现某些功能。

例如,我封装一个名为的类,在类中我定义一个函数为跑步,这时候我将张三归为这个类中,则张三就可以调用跑步,使张三实现跑步的功能。这个跑步就是方法,当然一个类中往往有很多的方法。

在python中,方法的调用往往是 “变量名”+“.”+“方法名”+“()”的形式实现,针对字符串的方法共有43个,这里主要介绍几个常见的方法。

  • str.lower():返回字符串str的副本,使内部字符全部写,如需储存需要用变量接收,同时不改变str原本的值。
276c5e4f8cff6e6712cd44643367d193.png
  • str.upper():返回字符串str的副本,使内部字符全部写,如需储存需要用变量接收,同时不改变str原本的值。
  • str.split(A):将字符串以字符A分割(不包括A),返回一个列表。如果不填默认以空格分割,当然你也可以填一个空格,就像下面代码所示
6ff88ced973233c6ff91fd1e6720edfe.png
  • str.replace(A,B,C):返回字符串str的副本,把字符串中的A替换成B,重复C次,如果没有给出C则默认全部替换。如需储存需要用变量接收,同时不改变str原本的值。
7de865684e34fa5be22a8281db9bdc3c.png
  • str.strip():返回字符串str的副本,把字符串中左右两边的空格去除,如果只想去除左边空格可用str.lstrip(),只想去除右边可用str.rstrip()。如需储存需要用变量接收,同时不改变str原本的值。
6621306736c823e32bc92285f0cd8d7a.png
  • str.jion(interable):将可迭代对象(通俗的将就是可以利用for循环遍历其中所有的元素,以后在介绍完程序结构后会介绍,python中的列表,元组,字符串,字典都是可迭代对象)中interable中的所有元素以字符穿str为分隔符进行拼接。(这个将会在文件操作的时候详细介绍。)下面是几个例子
14dddb354e4dfacd295c40c5a91ea785.png
1a5e945ed1075def96a9f02faa648c27.png

以上便是内置字符串操作的主要方法,其中split,remove,join是最为重要的,剩下的方法大家有兴趣可以自行了解。

拓展:Unicode编码

由于计算机只能识别二进制代码,所以我们所有输入的字符在计算机中都是以二进制代码的形式存在。在计算机刚开始发展的时候,主要是由英文国家发展的,所以为了统一每种字符在计算机中的二进制代码便规定的ASCII编码表,以便于不同计算机,系统上面同样的操作返回同样的字符,但是由于ASCII表只针对英文字符(包括字母,数字,各种控制符号),这些字符总共才100多个,所以ASCll采用8个二进制数字(即1个字节)表示一个字符,例如01100001代表的是字母a。

但是随着计算机的发展,越来越多的语言需要处理,但是ASCII表却无法表示这些语言,并且由于是ASCII表最多只能表示2的8次方即256个字符,所以对于汉语这种字符巨大的语言来说是不适用的,因此中文字符需要有新的编码表示,在1981年,中国国家标准局颁布了国际码,也称GB2312编码,规定了中文在计算机中编码的规范。

但是这还不够,因为世界上的语言千千万万,国际码也仅仅针对中文,那韩语,日语怎么办?为了解决这一问题,计算机科学家从全球化的视野角度出发,设计了一种能囊括世界所有语言字符编码方式,即Unicode编码。

Unicode编码如何实现将所有语言都囊括进去的呢?其实很简单,既然1个字节无法表示所有的字符,那么我们就用2个字节,所以Unicode编码采用2字节,即16位二进制对字符编码,因此可以表示2的16次方(65536)个字符。

但是Unicode只规定了符号编码,例如 0X0050(这是将二进制转化成了十六位进制,从而方便书写)代表为P,并没有规定如何储存和传输这些编码。因此以UTF-8为主的编码方式便诞生了,它们用于规范Unicode编码的储存和使用。

它其实是通过Unicode编码划分范围,不同范围使用不同的字节,最长的为4字节,最短的为1字节,其中所有ASCII中的字符都是一个字节,因此它可以兼容ASCII表,由于英文是目前计算机文本信息的主要书写方式,用一个字节的UTF-8显然比Unicode编码的2个字节更能节省资源。至于UTF-8如何规范储存和使用的这里由于篇幅问题,就不在展开了。

006753680c7ed60d0cf481c83af7afc8.png

点击了解更多,获取上一篇文章内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值