前言
该文章总结了之前学习的Python字符串内容
2020-01-16
天象独行
学习Python,首先我们需要引入一个‘对象’的概念。关于‘对象’的理解将会贯穿整个Python的学习。正所谓“万物皆对象”。如果要准确的描述Python对象是什么。我们可以从“身份”,“类型”,“值”三个维度来描述。同时这三个维度也构成了一个对象的特征。
学习字符串内容首先我们需要了解
1;什么是字符串?
2;变量概念
2;关于字符串的操作。
0X01;什么事字符串?
字符串(String),是由零个或多个字符组成的有限串行。一般记为s=a[1]a[2]...a[n]。
简单说就是多个字符连接起来形成了字符串。
0X02;变量概念
我们都知道对象是具备实际的物理位置的,但是变量是没有这个的。所以“变量无类型,对象有类型”。我们可以理解为变量相当于一个标签,这个标签贴在内存地址上。
0X03;字符串的操作
字符串本身也是一个对象,当然它属于一个序列。同样属于序列概念的有列表,元组,字典
1;连接字符串
使用“+”来连接字符。
比如:
>>> a = "abc" + "sdfsd" >>> print("a") a >>> print(a) abcsdfsd >>>
2;转译字符
使用“”符号来使一些特殊含义的字符失去特殊的含义,而仅仅代表这个字符。
3;原始字符串
原始字符串表示没有特殊含义的字符串。包括转译后的字符。
4;索引和切片
索引:类似给字符串做一个编号,从0开始编号。这个编号我们定义为索引。
切片:通过索引一块一块的取出字符串。
>>> a = "abc" + "sdfsd" >>> print("a") a >>> print(a) abcsdfsd >>> print(a[0:3]) abc >>>
5;序列基本操作
之前我们已经说过字符串也是属于序列的一种,所以字符串也是有一样的基本操作:
5.1;len() 返回序列长度
>>> a = "abc" + "sdfsd" >>> print("a") a >>> print(a) abcsdfsd >>> print(a[0:3]) abc >>> len(a) 8 >>>
5.2;“+” 连接两个序列
5.3;“*” 重复序列元素,字符串中的“乘法”含义是重复那个字符串
>>> print('-'* 20) -------------------- >>>
5.4;“in” 判断元素是否存在于序列中,存在返回True,不存在返回False
>>> a = 'qazwsxedcrfv' >>> 'a' in a True >>> 'o' in a False >>>
5.5;max(): 返回最大值,min():返回最小值
注意:在一个字符串中,每个字符在计算机内都是有编码的,也就是对应着一个数字,min()和max()就是根据这些数字获得最小值和最大值
>>> a = 'qazwsxedcrfv' >>> 'a' in a True >>> 'o' in a False >>> max(a) 'z' >>> min(a) 'a' >>>
5.6;cmp(str1,str2):比较两个序列值是否相同。(Python2.7当中存在,Python3不存在该函数)
注意:在字符串的比较中,两个字符串的第一个字符先比较,如果相等,就比较下一个,如果不相等,就返回结果。如果直到最后还相等,就返回0。位数不够时,按照“没有”处理(注意,“没有”不是0,0 在ASCII中对应的是NUL),位数多的那个大。ad中的a先和后面的c进行比较,显然a小于c,于是返回结果-1。但进行下面的比较,是最容易让人迷茫的。
>>> a = 'qwertyu' >>> b = 'asdfgh' >>> cmp(a,b) 1 >>>
Python3当中替代cmp的,使用模块operator模块
lt(a,b) 相当于 a<b 从第一个数字或字母(ASCII)比大小
le(a,b)相当于a<=b
eq(a,b)相当于a==b 字母完全一样,返回True,
ne(a,b)相当于a!=b
gt(a,b)相当于a>b
ge(a,b)相当于 a>=b
>>> b = 'qwertyu' >>> c = 'asdfghjk' >>> import operator >>> operator.le(b,c) False >>>
6;常见的字符串方法
6.1;split() 将字符串根据某个分割符进行分割
6.2;strip() 去掉字符串的左右空格
6.3;lstrip() 去掉字符串的左边的空格
6.4;rstrip() 去掉字符串的右边的空格
6.5;S.upper() , S.lower(), S.capitalize(),S.isupper(),S.islower(),S.istitle()