数据类型之字符串
关于字符串类型,在Python 3.x 的版本中,这一类型有很广泛的使用空间。
先来看一看它的基本解释:由0个或多个字符组成的有序的字符序列。 说简单点,就是 一串字符连在一起。紧接着来说一下它的特性和方法。
首先,它身为字符串,我们可以通过像数组一样的 a[ ],通过在括号内添加不同的数字,来找到对应的字符。以一个表格为
例:令 m = "abcdefghij"
-10 |
-9 |
-8 |
-7 |
-6 |
-5 |
-4 |
-3 |
-2 |
-1 |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1)通过索引,来从字符串中获取对应的字符。 与数组相似,m[0]对应 a,m[1]对应 b,......,m[9]对应 j
值得一提的事,在Python中,我们可以倒着来查找对应的字符。 m[-1]对应 j,m[-2]对应 i,......,m[-10]对应 a
2)关于基本操作,在这里介绍 分(切)片,加法(连接),乘法(复制多个),判断成员资格,求长度
- 分(切)片:在索引的基础上,通过 m[x: y: z] 来选出 从 x 开始,到 y 截至,步长为 z 的一串字符串。 包括 x 对应的字符,不包括 y 对应的字符。 x, y, z 的数值不要越界。x, y, z 均可置空,x缺失表示从头开始,y缺失表示至结尾,z缺失表示其默认值为1。 例,m[ : 3] = "abc"; m[8 : ] = "i"; m[2: 8: 3] = "c, f"; m[ : : -1] = "jihgfedcba"
- 加法(连接):m1 + m2 用于两个字符串之间的连接, "abc" + "def" = "abcdef"
- 乘法(复制多个):m * n 复制n次字符串m。 例,m * 2 = "abcdefghijabcdefghij"
- 判断成员资格:in 可用于判断一个字符串 n 是否在字符串 m 中存在。 用 n in m 来判断。 像 "abc" in m 返回的值就是True;"666" in m 返回的值就是False
- 求长度:通过 len(m) 返回该字符串的长度
3)大家都知道,在计算机的世界里,有很多种编码方式。字符串也可以在它们之间进行转换。
- chr(u):u为Unicode编码,该函数返回其对应的字符
- ord(x):x为字符,该函数返回其对应的Unicode编码
4)关于字符串的方法
- str.lower( ) / str.upper( ) 返回字符串的全 小写 / 大写 格式。
- str.split( ) 返回一个列表,将整个字符串根据 ( ) 内的字符进行分割。常在读取文件内容时使用。
- str.find( ) 返回 ( ) 内字符第一次在字符串中出现的位置,以索引形式输出,值为数字。
- str.count() 返回 ( ) 内字符在字符串中出现的次数,值为数字。
- str.replace( old , new ) 将字符串中与 old 相同的部分,替换为 new 部分。
- str.strip( ) 从字符串的左右两侧,去除 ( ) 内包含的字符,并返回。
- str.join( ) 在 ( ) 的字符串中,除最后一个字符外,其余字符后增加 str 字符。 例,"*".join("123") = "1*2*3"
5)关于格式化
在我们输入信息的时候,常常会需要以特定的格式,输出某一段内容。这个时候,就需要用到字符串的格式化。这一部分内容个人认为还是相当重要的。下面,我们来介绍一下。
在Python中,我们格式化使用的是 format( ),具体格式为:<要输出的文本> . format <参数(可用逗号分隔)>
- 最常用的类型: "{ }计算机{ }的占有率为{ }%。" . format("2018-5-21", "PYTHON", 22.8),这就是将format后的多个字符串按顺序对应到format前的槽里。 此例,输出为 '2018-5-21计算机PYTHON的占有率为22.8%'。
- 在上面的基础上,有这样的形式:"圆周率{1} {2} 是{0}" . format("无理数", 3.1415926, "...")。这种情况呢,我们发现在format的前面的槽中有数字标识,我们就需要将后面的对应到前面的槽里。与数组相似,也是从 0 开始,0,1,2...... 在此例中,输出结果为:'圆周率3.1415926...是无理数'。
- 还有相关进阶格式。如图所示
经过了上述这么多内容,字符串的内容也就差不多了。但是呢,还有一点需要注意。
在广泛的用途中,我们经常通过 input( ) 函数从用户处获取键入的内容,在系统中便是以 字符串 的形式存储在缓存中。
例如:
从中我们可以看到,无论输入的是数字,亦或是一串字符,它的类型都是 str 字符串 类型。
那么,如果我想要利用这个值,去进行运算,该怎么办呢? 从图中我们可以看到,在利用 a 的时候,直接拿它去进行运算的时候,它会给我们抛出 TypeError 这个异常。 那么问题来了,我们如何正确的运用这个值?
这个时候,要用到 eval( ) 这个函数,关于这个函数,官方给出的解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果。 简单点,它可以把括号内部的内容作为可运算的数值返回。 这样一来,我们就可以利用输入的值进行运算了。