Python字符串及其简单格式化
1.字符串介绍
字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。单行字符串可以由一对单引号(')或双引号(“)作为边界来表示,单引号和双引号作用相同,使用单引号时,双引号可以作为字符串的一部分;使用双引号时,单引号可以作为字符串的一部分。
多行字符串可以由一对三单引号('’’)或一对三双引号(“””)作为边界来表示,两者作用相同。实例如下所示:
>>> print("这是单行'字符串'")
这是单行'字符串'
>>> print('这是单行"字符串"')
这是单行"字符串"
#下段代码演示使用IDLE编辑器
print('''这是多行'字符串'的第一行
这是多行"字符串"的第二行'''
#输出结果为:
这是多行'字符串'的第一行
这是多行"字符串"的第二行
在Python中,如'、“、\等具有特殊意义的字符,可以使用转义的方法表示。反斜杠字符(\)是一个特殊字符,表示“转义”。该字符与相连的后面一个字符会一同构成一个新的含义。例如:\n表示换行符,\’表示是一个单引号,\”表示会双引号,\t表示制表符(键入一个Tab键)等等。
用法如下:
>>> print("这是一个\n换行符")
这是一个
换行符
>>> print("这是一个\\反斜杠")
这是一个\反斜杠
>>> print("这里急需要'单引号',也需要\"双引号\"")
这里急需要'单引号',也需要"双引号"
>>> print('这里急需要\'单引号\',也需要"双引号"')
这里急需要'单引号',也需要"双引号"
反斜杠还可以用来做续行符,将一行长代码分为几行书写:
print( "假设这是很长的一行代码,", "导致在一行内无法全部看完,", "所以需要适当换行,", "以增加代码的可读性。")
假设这是很长的一行代码, 导致在一行内无法全部看完, 所以需要适当换行, 以增加代码的可读性。
2.字符串的索引
对字符串的某个字符的检索称为索引,索引的使用方式如下:
<字符串或字符串变量>[序号]
字符串包括两种序号体系:正向递增序号和反向递减序号。
>>> a = "这是一个普通字符串序号有两种计发"
>>> a[2]
'一'
>>> a[-2]
'计'
#<字符串或字符串变量>[N:M],此种用法可以获得子字符串
#N,M参数为索引区间
>>> a[0:9]
'这是一个普通字符串'
>>> a[-7:-1]
'序号有两种计'
>>> a[7:-8]#可以混合使用
'符'
>>> a[10:-1]#混合使用时,是开区间,不包含两端
'号有两种计'
>>> a[:9]#如果缺失,默认是0
'这是一个普通字符串'
(例子中有错别字,但是改着好麻烦0.0)
字符串以Unicode编码存储,字符串的英文字符和中文字符都计作一个字符。在IDLE交互式环境默认输出单引号字符串形式,这与双引号形式的字符串没有任何区别。
3.format()方法的基本使用
Format()函数用于解决字符串和变量同时输出的问题,使用方式如下:
<模板字符串>.format(<以逗号分隔的参数>)
其中模板字符串以字符串和槽构成,槽用一对大括号({})表示,参数可以是可输出的任何参数,函数默认会按顺序输出,案例如下:
>>> a
'字符串'
>>> b
1
>>> c
'。'
>>> "这是{}个格式化后的{}{}".format(b,a,c)
'这是1个格式化后的字符串。'
#可以向槽中传入参数控制输出的顺序,默认第一个序号是0
>>> "这是{1}个格式化后的{0}{2}".format(a,b,c)
'这是1个格式化后的字符串。'
如果希望在模板字符串中直接输出大括号,使用{{表示{,}}表示},类似于\表示\。
4.format()方法的格式控制
可以通过格式控制标记来控制格式信息,用法如下:
{<参数序号>:<格式控制标记>}
演示如下:
>>> a = "一个"
>>> b = "字符串"
>>> "{0:25}{1}".format(a,b)#设定a宽度为25,默认左对齐
'一个 字符串'
>>> "{0:>25}{1}".format(a,b)#设定a宽度为25,右对齐
' 一个字符串'
>>> "{0:~^25}{1}".format(a,b)#设定a宽度为25,居中对齐,并以~填充空白
'~~~~~~~~~~~一个~~~~~~~~~~~~字符串'
#格式控制标记可以是参数
>>> x = '~'
>>> y = '^'
>>> z = 25
>>> "{0:{2}{3}{4}}{1}".format(a,b,x,y,z)
'~~~~~~~~~~~一个~~~~~~~~~~~~字符串'
>>> "{0:,} 对比 {0}".format(c)#<,>开启数字的千位分隔符
'123,456,789 对比 123456789'
#<.精度>可用于数字和字符串,数字需要加f标识
>>> "{0:.4f} 对比 {1:.1}".format(c,b)
'123456789.0000 对比 字'
<类型>表示输出的整数和浮点数类型的格式规则。
对于整数类型,格式规则如下:
b:输出整数的二进制形式
c:输出整数对应的Unicode字符
d:输出整数的十进制形式
o:输出整数的八进制形式
x:输出整数的小写十六进制形式
X:输出整数的大写十六进制形式
使用如下:
>>> "{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(351)
'101011111,ş,351,537,15f,15F'
对于浮点数,输出格式包括以下四种:
e:输出浮点数对应的小写字母e的指数形式
E:输出浮点数对应的大写字母E的指数形式
f:输出浮点数的标准浮点形式
%:输出浮点数的百分比形式
使用如下
>>> "{0:e},{0:E},{0:f},{0:%}".format(1.25)
'1.250000e+00,1.250000E+00,1.250000,125.000000%'
>>> "{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(1.25)#保留两位小数
'1.25e+00,1.25E+00,1.25,125.00%'
这些就是字符串格式化的亿点点简单操作,建议掌握!