center
- 1、指定字符串的宽度
- 2、指定填充字符
- 3、返回的是新字符串
- 4、常见错误
center() 可以使字符串「居中」,并在两边「填充」指定数量的新字符。
语法
string.center( width, fillchar )
参数
- width :(必选,整型)字符串的宽度
- fillchar :(可选,字符串类型)填充的字符,默认填充空格
返回值
- 返回格式修改后的「新字符串」
实例:字符串居中并且两边空出来20个字符的宽度
print('Helo World'.center(20))
输出:
1、指定字符串的宽度
宽度「大于」字符串「长度」时,会在两边空出来,比如字符串长度时6,宽度为8时,左右两边各空一个宽度;宽度为10时,左右两边各空两个宽度,以此类推。如果宽度是「奇数」,就优先空「左边」。
print('123456'.center(8))
print('123456'.center(9))
print('123456'.center(10))
输出:
宽度「小于」字符串「长度」时,两边不会空。
print('123456'.center(3))
print('123456'.center(5))
print('123456'.center(0))
输出:
2、指定填充字符
只有设置的宽度「大于」字符串「长度」时,才会「填充」字符,否则无法填充;如果不指定填充字符,就默认填充空格。
print('123456'.center(10, '-'))
输出:
--123456--
如果设置的宽度「小于」字符串, center() 不会填充字符串,而是返回原字符串,我们打印一下转换前、后的字符串「内存地址」,可以发现,是同一个变量。
str1 = '123456'
print(id(str1))
print(id(str1.center(5, '-')))
输出:
1844873596784
1844873596784
3、返回的是新字符串
Python中的字符串是「不可变」类型,两边填充的字符并不是在原字符串上填充,而是「创建」一个两边添加了指定字符的新字符串。
我们打印一下内存地址,就能发现,转换前、后的字符串是两个「不同的变量」。
str1 = 'hello world'
print(id(str1))
print(id(str1.center(20)))
输出:
2051430879088
2051430643312
4、常见错误
使用 center() 时,必须指定「宽度」,否则会报错 TypeError: center expected at least 1 argument
宽度必须是「整型」,否则会报错 TypeError: integer argument expected
填充的字符必须是 Unicode 字符,否则会报错 TypeError: The fill character must be a unicode character
提示:Python的string类基于Unicode字符集,所以这里必须是Unicode字符。
填充的字符只能是「一个字符」,否则会报错 TypeError: The fill character must be exactly one character long