format函数使用方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了format函数使用方法相关的知识,希望对你有一定的参考价值。
参考技术A 本人只是初学阶段,在学习过程中的一些笔记。想借此平台也分享给刚刚学习的朋友,如有错的地方欢迎各位大神与高手指点。通过 和 : 替换 %
通过format函数可以接受不限参数个数、不限顺序
format括号内用=给变量赋值
例子一:
a = 1
b = 2
c = 3
print('x+y+z=w'.format(x=a, y=b, z=c, w=a + b + c))
例子二:
def debug(func):
def wrapper():
print("[DEBUG]: enter ".format(func.__name__))
return func()
return wrapper
@debug
def say_hello():
print("hello!")
say_hello()
通过对象属性
class Person:
def __init__(self, name, age):
self.name, self.age = name, age
def __func__(self):
return "This guy is self.name , is self.age old".format(self=self)
s = Person('single', 4)
a1 = s.__func__()
print(a1)
填充和对齐
^<>分别表示居中、左对齐、右对齐,后面带宽度
print(':>10'.format('single')) # 右对齐
' single'
print(':<10'.format('single')) # 左对齐
'single '
print(':^10'.format('single')) # 居中
' single '
精度和类型f
精度常和f一起使用
print(':.2f'.format(3.1415)) # 精密到2位
‘3.14'
print(':.4f'.format(3.1)) # 精密到4位
‘3.1000'
进制转化
其中b o d x分别表示二、八、十、十六进制
print(':b'.format(10)) # 二进制
‘1010'
print(':o'.format(10)) # 八进制
‘12'
print(':d'.format(10)) # 十进制
‘10'
print(':x'.format(10)) # 十六进制
‘a'
千位分隔符
只针对数字
print(':,'.format(1000000)) # 整数
'1,000,000'
print(':,'.format(1000000.22555)) # 含小数
'1,000,000.22555'
print(':,.2f'.format(1000000.22555)) # 含小数,结合精准使用
'1,000,000.23'
python format函数的使用
转载自:http://www.cnblogs.com/kaituorensheng/p/5709970.html
python自2.6后,新增了一种格式化字符串函数str.format(),威力十足,可以替换掉原来的%
注:以下操作版本是python2.7
映射示例
语法
通过{} 和 : 替换 %
通过位置
>>> \'{0} is {1}\'.format(\'jihite\', \'4 years old\') \'jihite is 4 years old\' >>> \'{0} is {1} {0}\'.format(\'jihite\', \'4 years old\') \'jihite is 4 years old jihite\'
通过format函数可以接受不限参数个数、不限顺序
通过关键字
>>> \'{name}:{age}\'.format(age=4,name=\'jihite\') \'jihite:4\' >>> \'{name}:{age}\'.format(age=4,name=\'jihite\',locate=\'Beijing\') \'jihite:4\'
format括号内用=给变量赋值
通过对象属性
>>> class Person: ... def __init__(self, name, age): ... self.name,self.age = name, age ... def __func__(self): ... return "This guy is {self.name}, is {self.age} old".format(self=self) ... >>> s =Person(\'jihite\', 4) >>> s.__func__() \'This guy is jihite, is 4 old\'
通过下标
>>> \'{0[0]} is {0[1]} years old!\'.format([\'jihite\', 4]) \'jihite is 4 years old!\' >>> \'{0} is {1} years old!\'.format(\'jihite\', 4) \'jihite is 4 years old!\'
其实就是通过位置
格式限定符
通过{} : 符号
填充和对齐
^<>分别表示居中、左对齐、右对齐,后面带宽度
>>> \'{:>10}\'.format(\'jihite\') \' jihite\' >>> \'{:<10}\'.format(\'jihite\') \'jihite \' >>> \'{:^10}\'.format(\'jihite\') \' jihite \'
精度和类型f
精度常和f一起使用
>>> \'{:.2f}\'.format(3.1415) \'3.14\' >>> \'{:.4f}\'.format(3.1) \'3.1000\'
进制转化
>>> \'{:b}\'.format(10) \'1010\' >>> \'{:o}\'.format(10) \'12\' >>> \'{:d}\'.format(10) \'10\' >>> \'{:x}\'.format(10) \'a\'
其中b o d x分别表示二、八、十、十六进制
千位分隔符
>>> \'{:,}\'.format(1000000) \'1,000,000\'
>>> \'{:,}\'.format(100000.23433)
\'100,000.23433\'
>>> \'{:,}\'.format(\'abcedef\') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: Cannot specify \',\' with \'s\'.
尤其是其中的精度与类型,用起来很方便
以上是关于format函数使用方法的主要内容,如果未能解决你的问题,请参考以下文章