字符串是由0个或多个字符组成的有序字符序列。
今天的学习的内容如下:
字符串类型的表示,字符串是字符的序列表示,可以由一对单引号'x'或双引号"x"或三引号'''x'''构成,使用总结如下表:
我们输入一段代码来展示:
print('1单行,两边可以是单或双引号')
print("2单行,两边可以是单或双引号")
print('3单行,中间有"单或双"引号')
print("4单行,中间有'单或双'引号")
print('''5单行,中间有'单引号',"双引"号''')
print('''6多行输入,
字符串用三"引号"表示''')
'''7字符串没有被使用,
三引号还可以当做多行注释使用'''
输出结果如下:
最后一句为什么没有被输出呢?
是因为最后一句的字符串没有被定义,当做注释使用。以上是官方给的规定,我们再试试单引号或双引号可不可以换行呢:
输入代码测试:
print('1多行输入
可以是单或双引号')
print("2多行输入
试试可不可以")
输出结果是错误,看来不行,换种方式再试一次,代码如下:
print('1多行输入'
'可以是单或双引号')
print("2多行输入"
"试试可不可以")
输出结果如下:
代码输出结果可以看出,使用单双引号可以实现分行写,一行前后必须有单或双引号,输出结果仍然是单行显示。
索引功能,索引字符串的序列表示,它还包括两种序号体系,正向递增序号和方向递减序号。
我们之间已经学过这方面的知识,现在概述一下:
字符串采用[M:N]格式,表示字符串中从N到M(不包括M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号,如果表示中M或N索引缺失,则表示字符串把开始或结束索引值设为默认值。通常索引与切片混合使用。
索引:返回字符串种单个字符,<字符串>[M]
切片:返回字符串中一段字符子串,<字符串>[M:N]
索引和切片的高段位玩法如下:
<字符串>[M:N] #M到N-1的索引,M缺失表示至开头,N缺失表示至结尾
<字符串>[M:N:K] #根据步长K对字符串切片,[::-1]字符串逆序排列
另外,字符串还有个特殊字符,叫转义符
转义符表达特定字符的本意(格式化控制符),可以形成一些组合,表达一些不可打印的含义。
(在行尾时) | 续行符 | n | 换行 |
反斜杠符号 | v | 纵向制表符 | |
' | 单引号 | t | 横向制表符 |
" | 双引号 | r | 回车 |
a | 响铃 | f | 换页 |
b | 退格(Backspace) | oyy | 八进制数,y 代表 0~7 的字符,例如:012 代表换行。 |
e | 转义 | xyy | 十六进制数,以 x 开头,yy代表的字符,例如:x0a代表换行 |
000 | 空 | other | 其它的字符以普通格式输出 |
(在行尾时) | 续行符 | n | 换行 |
反斜杠符号 | v | 纵向制表符 | |
' | 单引号 | t | 横向制表符 |
" | 双引号 | r | 回车 |
a | 响铃 | f | 换页 |
b | 退格(Backspace) | oyy | 八进制数,y 代表 0~7 的字符,例如:012 代表换行。 |
e | 转义 | xyy | 十六进制数,以 x 开头,yy代表的字符,例如:x0a代表换行 |
000 | 空 | other | 其它的字符以普通格式输出 |
编写代码如下:
print("1使用转义符"")
print("2使用转义符空格n换行了")
print("3使用转义符空000")
字符串操作符,内容简单,但是在编程中会经常遇到,格式如下:
我们编写个程序,在动物园中,每个动物有自己的编号。假设输入数字1-6,自动输出对应的动物(字符串)名称,代码如下:
zoo="小鸭子小狐狸大老虎大狮子小青蛙小猴子" #字符串
num=eval(input("输入动物编号")) #输入数字并去掉双引号
max=(num-1)*3 #输入的数字乘以3,确定对应动物最大的字符串位置
print(zoo[max:max+3]) #输出动物园的动物名称
字符串处理函数的学习。Python解释器提供了一些内置函数,共5个,如下图所示:
这些只是需要记忆,没有复杂的要求,举例如下:
print(len("一二三四五")) #计算字符串的元素个数
print(str(1234)) #将1234(任意类型)转换成字符串
print(chr(1004)) #将Unicode中的1004对应的字符输出
print(ord("真")) #将字符串对应的Unicode值输出
print(hex(72)) #将十进制72转换成十六进制
print(oct(10)) #将十进制10转换成八进制
输出的结果如下图所示:
小知识:每个字符在计算机中可以表示一个数字,叫做编码,通常用的是ASCII码,主要用在英文字符,很多国家的字符都没有收录,这时提出了建立Unicode码,涵盖了几乎所有的字符。
有趣的字符串处理函数学习完毕,进入字符串处理方法的学习中,在python中,所有数据类型都封装成一个类,字符串也是一个类,在面向对象中,称这类函数为“方法”,表达式为<a>.<b>(),内置方法有43个,现在把最最常用的展示出来,以后遇到其他的再学习(str代表字符串或变量)
这些该怎么用呢?很简单,我们编写个小程序展示一下:
print("伟大的祖国".split()) #字符串输出为列表
print("伟大的祖国".center(15,'*'))
#字符串居中显示,定义为15个字符,不够的用*添加,
print("伟大的祖国".zfill(10))
#定义为10个字符,字符串不够,在之前以0添加
print("*".join("伟大的祖国")) #在每个字符串后加*
输出结果如下:
format(),字符串格式化用于解决字符串和变量同时输出时的格式安排。格式如下:
槽用{}表示,如果大括号中没有序号,则按照出现顺序排列。
具体使用方法举例如下:
print('{} and {}'.format('hello','world')) # 默认左对齐
print('{:10s} and {:>10s}'.format('hello','world')) # 取10位左对齐,取10位右对齐
print('{:^10s} and {:^10s}'.format('hello','world')) # 取10位中间对齐
print('{} is {:.2f}'.format(1.123,1.123)) # 取2位小数
print('{0} is {0:>10.2f}'.format(1.123)) # 取2位小数,右对齐,取10位
输出结果如下图: