字符串类型的表示
字符串是由0个或多个字符组成的有序数列。一般由一对单引号,或者双引号表示,比如’niubi’与”niubi”。
字符串是字符的有序序列,可以对其中的字符进行索引。字符的序号从0往后,或者从-1往前,前面第一章已经解释了。
现在深入一点,字符串总共有2类共4种表示方法。
0《由一对单引号或双引号表示,仅表示单行字符串》
1《由一对三引号,或者三双引号表示,可以表示多行字符串》
字符串中有单引号时,要用双引号表示字符串;字符串中有双引号时,要用单引号表示字符串;如果字符串中既有单引号又有双引号,要用一对三引号表示字符串。
字符串的索引与切片,参考一下案例:
c=“醉红尘真帅”
c[0]是醉,c[1]是红,以此类推...
c[0:3]是醉红尘,不包括c[3];明白了吗?
直接看图,来看看切片的高级用法
c[:3]是醉红尘,从开头到c[2]位.
c[3:]是真帅,从c[3]到结尾。
c[0:1]就是c[0](醉),不包括c[1]; 强调了那么多遍记住了吗?
c[1:4:3]表示以c[1]为起点,c[4]为终点(不包括c[4]),隔3个选一个;
看下面大例子
先选从c[1]=1,接着到第c[4]=4,再到c[7]=7,结束,因为终点是c[8],但是c[1:8]不包括c[8].。
字符串的逆序用c[::-1]来表示,就变成了帅真尘红醉,不做程序演示了,自己动手吧你们。
字符串的数据类型,转义符 ‘\’
转义符表达特定符号的本意,前面也说了,如果字符串里有双引号,我们就用单引号来表示字符串,有些人就不服了,老子不干,老子就要用双引号表示含有双引号的字符串,下面讲的就是对付这种愣头的。看例
“这里有个双引号(\”)”输出就是-----这里有个双引号(“)。
转义符还可以形成一些组合,表达一些不可打印的含义。
“\b”回退 (使当前光标向前回退一个位置)
”\n”下一行 (换一行)
”\r”回车,(使光标回到本行首位置)
字符串操作符
简单的举几个例子:
X+Y连接两个字符串
n*X或者X*n复制n次字符串x
X in S如果X是S的子串,返回True ,否则返回False
下面举一个例子,如果你输入1,就输出星期一,如果输入2,就输出星期二,以此类推。
肯定很多人就说了,写判断语句,就可以了,但是判断那么多次是不是很麻烦,下面给出一种很巧妙地方法,为了避免错误,可以加上一个分支语句,如图运行结果
这种思想方法,是不是给你很多启发?
字符串的处理函数
len(x)返回字符串x的长度
str(x)转化为x对应的字符串的形式,比如str(1.23)结果为”1.23”字符串,str([1,2])结果为”[1,2]”与eval函数相反。
hex(x)与oct(x)是对整数X进行十六进制与八进制转换,得到小写形式的字符串。
chr(u),x为Unicode编码,返回其对应的字符
ord(x),x为字符,返回其对应的Unicode编码
chr与ord,是在单字符与Unicode之间的桥梁
Unicode编码形式,是Python字符串的编码方式,从0到1114111(0x10FFFF)空间内把世界上所有的字符放进去。
统一字符编码,覆盖所有字符的编码方式。每个编码对应一个字符,python字符串中每个字符都Unicode编码字符。大概意思呢就是,能包括世界上所有的字符,包括汉字,纳进去,这就是Unicode编码方式。可以适用中文,日文,韩文,俄文等等。
通俗来讲,我们使用的字符,每一个字符都有一个编码,我们可以直接用字符,也可以用字符的编码。看个例子
十二星座的字符号是从9800开始的,很好理解,看看print语句中的end。如果end=” ”结果就是整行输出,没有空格。这里的方法是编程的专有名词,
字符串也是对象,也存在方法。理解不了就算了。来看看字符串处理方法。
str.lower()或者str.upper返回字符串的副本,全部字符小写或者小写。
例如:”AbCdEfGh”.lower结果为”abcdefgh”
str.split(sep=None)返回一个列表,由str根据sep被分隔的部分组成例如”A,B,C”.split(“,”)结果为[‘A’,’B’,’C’](看sep,以sep为标准分解字符串);
str.count(sub)返回子串sub在str中出现的次数”a apple a day ”.count(“a”)结果为4;
str.replace(old,new)返回字符串副本,所有old子串,被替换为new ;
例如“python”.replace(“n”,”n123.io”)就是”python123.io” ;
str.center(width[,fillchar])字符串str根据宽度width,fillchar可选;
如”python”.center(20,”=”)结果为”=======python=======”
str.strip(chars),从str中去掉在其左侧和右侧chars中列出的字符
如”=python=”.strip(“=np”)结果为”ytho”,
如图:
str.join(iter),就是把str加入iter中,
如例子”,”.jion(“12345”),它的结果就是”1,2,3,4,5”主要用于字符串的分隔。
字符串类型的格式化
格式化是对字符串类型表达的方式。
字符串格式化使用.format()方法,用法如下:
.format()
具体的使用中,我们需要用到一个概念“槽”。
如图:
默认是与format参数中是相一致的。但是也可以规定归属。
“:计算机的CPU占用率为%”.format(“2018-10-10”,”C”,10),
槽里面的数字,代表了format参数的位置,类比上图。
看一下槽内部的配置方式
{:}
参数序号就是上面讲的那个,看看格式控制方式。
填充,对齐,和宽度
>:(右对齐)
^:(居中对齐)
看例子:
1、“”.format(”PYTHON”)
输出:”=======PYTHON=======”
语句中冒号是引导符,=号是填充符号(在空余空间中,填充等号的单字符),^是居中对齐,20是槽的输出宽度。
2、”python”.center(20,”=”)
输出:”=======python=======”
3、“”.format(”BIT”)
输出:”*****************BIT”
填充是*,右对齐,宽度是20
4、“{:20}”.format(”BIT”)
输出:”BIT ”
默认填充是空格,左对齐,宽度是20
下一个是.,表示的是浮点数小数的精度,或者表示字符串的最大输出长度。
比如{:.2f}
例如:
“”.format(12345.678)的输出结果是’123,456.68’,其中逗号是千字分隔符,2f保留两位。
最后一个:
”,,,,,”.format(425)
输出:’110101001,(),425,651,1a9,1A9’
以上各个字母一一对应为二进制,字符,十进制,八进制,十六进制的小写,大写。
还有”,,,,”科学计数法,浮点数,以及百分数。
很幸运终于把第五章更完了,写的东西很杂,昨个和舍友去毕业聚会,喝的有点难受,本来想把一个舍友灌醉,反而是我有点迷糊,手机还让我扔了,屏没碎,不用换手机了。但是毕业离别关头,我还是想祝福我的舍友,我的同学,我的朋友,都能前程似锦,不敢说苟富贵勿相忘,只是希望你们都过得好,
--吉尔弗约尔
关注我们
三更编程菌
你身边的哆啦咔梦
领取专属 10元无门槛券
私享最新 技术干货