(6-07)占位符和fromat方法
原创
©著作权归作者所有:来自51CTO博客作者喜欢打篮球的普通人的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
1.占位符
| | | |
占位符
| 描述
| 占位符
| 描述
|
%d或%i
| 有符号整型十进制数
| %o
| 有符号八进制数
|
%x
| 有符号十六进制数(字母小写)
| %X
| 有符号十六进制书(字母大写)
|
%e
| 指数格式的浮点数(字母小写)
| %E
| 指数格式的浮点数(字母大写)
|
%f或%F
| 有符号浮点型十进制数
| %g
| 浮点数(根据数指大小采用%e或%f)
|
%G
| 浮点数(根据始值大小采用%E或%f)
| %c
| 单个字符(整型或单个字符的字符串)
|
%r
| 字符串(使用repr函数进行对象转换)
| %s
| 字符串(使用str函数进行对象转换)
|
%a
| 字符串(使用ascii函数进行对象转换)
| %%
| 表示一个百分号
|
| | | |
n=20
f=35.67
print('n的十进制形式:%d,八进制形式:%o,十六进制形式:%x'%(n,n,n))
print('f的十进制形式:%f,指数形式:%e'%(f,f))
结果:
n的十进制形式:20,八进制形式:24,十六进制形式:14
f的十进制形式:35.670000,指数形式:3.567000e+01
e表示10的几次幂
2.format方法
- 使用字符串中的format方法也可以进行字符串的格式化操作,其语法格式为:
str.format(*args, **kwargs)
其中,str是用于格式化的字符串,可以包含由大括号{}括起来的替换字段。
每个替换字段可以是位置参数的数字索引,也可以是关键字参数的名称。
format方法返回的是格式化的字符串副本(即通过format方法调用并不会改变str的值)。
**kwargs:表示不定长参数
tr1='{0}的计算机成绩是{1},{0}的数学成绩是{2}' #{}中的替换字段是位置参数的数字索引
str2='{name}的计算机成绩是{cs},{name}的数学成绩是{ms}' #替换字段是关键字参数的名称
print(str1.format('李晓明',90,85))# '李晓明'替换{0},90替换{1},85替换{2}
print(str2.format(cs=90,ms=85,name='李晓明'))##关键字写对,顺序不重要
结果:
李晓明的计算机成绩是90,李晓明的数学成绩是85
李晓明的计算机成绩是90,李晓明的数学成绩是85
- 另外,在format方法格式化字符串时,字符串的替换字段中还可以包含对实参属性的访问。
为新创建对象的name,cs属性做初始化,即:用传入的参数来初始化
这两个属性的值
class Student: #定义Student类
def __init__(self,name,cs): #定义构造方法
self.name=name
self.cs=cs
s=Student('李晓明',90) ##保存至变量s中
str1='{0.name}的计算机成绩是{0.cs}' #{}中的替换字段是位 #置参数的数字索引
str2='{stu.name}的计算机成绩是{stu.cs}' #替换字段是关键字 #参数的名称
## {0.name}和{stu.name}会被替换成:s.name
## {0.cs}和{stu.cs}会被替换成:s.cs
print(str1.format(s))## s.name和s.cs
print(str2.format(stu=s))
结果:
李晓明的计算机成绩是90
李晓明的计算机成绩是90