大家可能有疑问,前面不是在讲字符串吗?单引号、双引号里边就是字符串?以下把字符串里边很多操作,给大家仔细的挖掘出来,我们去细细的推敲,在字符串里边有一些方法和一些其他的地方还是需要我们去仔细挖掘的,那我们就一起来看一下字符串。
格式化
字符串格式化是一个百分号来实现的,我们在前面在讲算术运算符的时候说百分号是一个取余的动作,然后我们来看这个百分号。他分为左侧和右侧,左侧呢,是放置一个字符串,就是被格式化的字符串,它的右侧是放着希望被格式化的值,可以替换任何变量。代码示例:
fomat = "hello,%s,%s enough for ya?"
values = ("world!" ,"Hot" )
print(fomat % values)
结果:
hello,world!,Hot enough for ya?
formate,这是整个的一个字符串。我们希望在这里边格式化values。values放在右侧,希望被格式化的值,就是我把%s替换为values里面的内容。
基本的转换说明符,注意:这些项的顺序很重要。 1. %字符: 标记转换说明符的开始 2. 转换标志 (可选 ):-表示 左对齐; +表 示在转换值之前要加上正负号;“”示正数之前保留空格; 0表示转换值若位数不够则用 0填充。 3. 最小字段宽度 (可选 ):):转换后的字符串至少应该具有值指定宽度。 4. 点(.) 后跟精度值 (可选 ): 如果转换的是实数,精度值就表示出现在小点后的位数。如果转换是字符串,那么该就表示最大段宽度是”*” ,那么精度将会从元组中读出。
- 转换类型:
接下来实例,我们先来看简单的操作。
# 简单转化
print("Price of eggs: $%d " 42)
print("Price of eggs: $%x" 42)
import math
print("pi: %f ..." % math.pi)
print ("Using str: %s" % 42 )
print ("Using str: %r" % 42 )
结果:
Price of eggs: $42
Price of eggs: $2a
pi: 3.141593...
Using str: 42
Using str: 42
以上实例我们将数字转换为了字符串。那么,对于浮点数,如何控制字符的宽度和精度呢?
# 字段宽度与精度
import math
print ("%10f" % math.pi)
# 10.2f 10 是宽度 ,.2 是精度
print ("%10.2f" % math.pi)
print ("%.2f" % math.pi)
# 点(.) 后跟精度值 (可选 ): 如果转换的是实数,
# 精度值就表示出现在小数点后的位数。
# 如果转换的是字符串,那么该数就表示最大段宽度。
# 如果是” *”,那么精度将会从元组中读出。
print ("%.5s" % "python is great!" )
print ("%*.*s" % (7,6,"python is great!" ))
print ("%.*s" % (6,"python is great!" ))
结果:
3.141593
3.14
3.14
pytho
python
python
符号、对其和0填充
在字段宽度和精值之前还可以放置一个“标志”,该标志可以是零、加号、减号或空格。
如果说跨度与精度,那大家运行一下,看看结果,对比一下结果就OK了。转换标志,如减号,表示左对齐,加号表示,在转换值之前要加上正负号,然后双引号表示正数值前,保留空格,零表示转换值不够则用零补充。