关于字符串的格式化----format与%

关于字符串的格式化----format与%

格式化字符串一般有两种方法

1、%(d整数,s字符,f浮点数) 2、format 用处极为广泛且限制不多

注意:第一种对于数组的传递会报TypeError,所以必须传递数组

a = (1, 2, 3)
# b = 'I have %s' % (a)
b = 'I have %s' % (a,)
print(b)

format传递参数

1、位置

a = '{0}:{1}'.format('abc', 123)
print(a)

2、关键字

a = '{name},{age}'.format(name='Mike', age=28)
print(a)

3、对象属性

class Person:
    def __init__(self, name, age):
        self.name, self.age = name, age

        def __str__(self):
            return 'This guy is {self.name},is {self.age} old'.format(self=self)


a = str(Person('Lucy', 18))
print(a)

4、下标 针对列表、数组等有序集合

p = ['kzc', 18]
a = '{0[0]},{0[1]}'.format(p)
print(a)

format 限定格式

1、填充与对齐 下面 > 表右对齐 < 左对齐 ^ 居中对齐 符号前的字符表示填充的对象

a = '{:>8}'.format('189')
print(a)
b = '{:0>8}'.format('189')
print(b)
c = '{:a>8}'.format('189')
print(c)

2、精度与类型 常与f搭配使用

a = '{:.2f}'.format(33.333333)
print(a)

3、转换数字进制

a = 17
print('{:b}'.format(a), '二进制')
print('{:x}'.format(a), '十六进制')
print('{:d}'.format(a), '十进制')
print('{:o}'.format(a), '八进制')

4、千位分隔符

a = 1234567890

print('{:,}'.format(a))