str.format格式化用法(通过{}来替代%)

时间:2023-03-09 14:47:50
str.format格式化用法(通过{}来替代%)
# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#str.format格式化用法(通过{}来替代%)
'''
>>> help(format)
Help on built-in function format in module __builtin__: format(...)
format(value[, format_spec]) -> string Returns value.__format__(format_spec)
format_spec defaults to ""
''' #1、通过位置:
#字符串的format函数可以接受不限个参数,位置可以不按顺序。
print 'name:{0},age:{1}'.format('xiaodeng',28)#name:xiaodeng,age:28
print '{},{}'.format('xiaodeng',28)#xiaodeng,28 #print '{},{},{}'.format('xiaodeng',28)
'''
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\新浪API\test.py", line 20, in <module>
print '{},{},{}'.format('xiaodeng',28)
IndexError: tuple index out of range
'''
#修改之:
print '{1},{1},{0}'.format('xiaodeng',28)#28,28,xiaodeng #2、通过关键字参数:
print '{name},{age}'.format(age=20,name='xiaodeng')#xiaodeng,20 #3、通过对象属性:
class Person():
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self):
return 'my name is {self.name},age is {self.age} years old'.format(self=self) print Person('xiaodeng',28)#my name is xiaodeng,age is 28 old #4、通过下标
list=['xiaodeng',28]
print '{0[0]},{0[1]}'.format(list)#xiaodeng,28;这里的0是默认的??? #5、填充与对齐
print '{:>8}'.format('')#>右对齐,后面带宽度,<表示左对齐,^表示居中对齐。
print '{:a>8}'.format('')#默认空格填充,这里为a字母填充
'''
>>>
125
aaaaa125
>>>
''' #6、精度和类型f
print '{:.2f}'.format(321.123)#321.12;其中.2表示长度为2的精度,f表示float类型 #7、其他类型:
#要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。
print '{:b}'.format(17)#
print '{:d}'.format(17)#
print '{:o}'.format(17)#
print '{:x}'.format(17)#
#用,号还能用来做金额的千位分隔符。
print '{:,}'.format(1234567890)#1,234,567,890 #8、指定宽度
print 'My name is {0:118}'.format('xiaodeng')#My name is xiaodeng