多种格式化

'b' - 二进制。将数字以2为基数进行输出。

'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。

'd' - 十进制整数。将数字以10为基数进行输出。

'o' - 八进制。将数字以8为基数进行输出。

'x' - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。

'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。

'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。

'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。

'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。

>>> print('{0:b}'.format(3))

11

>>> print('{:c}'.format(20))

>>> print('{:d}'.format(20))

20

>>> print('{:o}'.format(20))

24

>>> print('{:x}'.format(20))

14

>>> print('{:e}'.format(20))

2.000000e+01

>>> print('{:g}'.format(20.1))

20.1

>>> print('{:f}'.format(20))

20.000000

>>> print('{:n}'.format(20))

20

>>> print('{:%}'.format(20))

2000.000000%

>>>

通过位置匹配参数

>>>

>>> '{0}, {1}, {2}'.format('a', 'b', 'c')

'a, b, c'

>>> '{}, {}, {}'.format('a', 'b', 'c') # 3.1+版本支持

'a, b, c'

>>> '{2}, {1}, {0}'.format('a', 'b', 'c')

'c, b, a'

>>> '{2}, {1}, {0}'.format(*'abc') # 可打乱顺序

'c, b, a'

>>> '{0}{1}{0}'.format('abra', 'cad') # 可重复

'abracadabra'

通过名字匹配参数

>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')

'Coordinates: 37.24N, -115.81W'

>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}

>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)

'Coordinates: 37.24N, -115.81W'

通过属性匹配参数

>>> c = 3-5j

>>> ('The complex number {0} is formed from the real part {0.real} '

... 'and the imaginary part {0.imag}.').format(c)

'The complex number (3-5j) is formed from the real part 3.0 and the imaginary part -5.0.'

>>> class Point:

... def __init__(self, x, y):

... self.x, self.y = x, y

... def __str__(self):

... return 'Point({self.x}, {self.y})'.format(self=self)

...

>>> str(Point(4, 2))

'Point(4, 2)'

通过下标或key匹配参数

>>>

>>> coord = (3, 5)

>>> 'X: {0[0]}; Y: {0[1]}'.format(coord)

'X: 3; Y: 5'

>>> a = {'a': 'test_a', 'b': 'test_b'}

>>> 'X: {0[a]}; Y: {0[b]}'.format(a)

'X: test_a; Y: test_b'

占位符%s和%r

replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"

conversion ::= "r" | "s" | "a"

这里只有三个转换符号,用"!"开头。

"!r"对应 repr();"!s"对应 str(); "!a"对应ascii()。

>>> "repr() shows quotes: {!r}; str() doesn't: {!s}".format('test1', 'test2')

"repr() shows quotes: 'test1'; str() doesn't: test2" # 输出结果是一个带引号,一个不带

设置长度及对齐

>>> '{:<30}'.format('left aligned') # 左对齐

'left aligned '

>>> '{:>30}'.format('right aligned') # 右对齐

' right aligned'

>>> '{:^30}'.format('centered') # 中间对齐

' centered '

>>> '{:*^30}'.format('centered') # 使用“*”填充

'***********centered***********'

>>>'{:0=30}'.format(11) # 还有“=”只能应用于数字,这种方法可用“>”代替

'000000000000000000000000000011'

%+f, %-f, 和 % f的用法

>>>

>>> '{:+f}; {:+f}'.format(3.14, -3.14) # 总是显示符号

'+3.140000; -3.140000'

>>> '{: f}; {: f}'.format(3.14, -3.14) # 若是+数,则在前面留空格

' 3.140000; -3.140000'

>>> '{:-f}; {:-f}'.format(3.14, -3.14) # -数时显示-,与'{:f}; {:f}'一致

'3.140000; -3.140000'

按2进制、10进制、16进制显示

>>>

>>> # format also supports binary numbers

>>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42)

'int: 42; hex: 2a; oct: 52; bin: 101010'

>>> # with 0x, 0o, or 0b as prefix:

>>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42) # 在前面加“#”,则带进制前缀

'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'

用“,”分隔数字,每一千进位

>>>

>>> '{:,}'.format(1234567890)

'1,234,567,890'

百分数%

>>>

>>> points = 19

>>> total = 22

>>> 'Correct answers: {:.2%}'.format(points/total)

'Correct answers: 86.36%'

时间

>>>

>>> import datetime

>>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)

>>> '{:%Y-%m-%d %H:%M:%S}'.format(d)

'2010-07-04 12:15:58'

占位符嵌套

>>>

>>> for align, text in zip('<^>', ['left', 'center', 'right']):

... '{0:{fill}{align}16}'.format(text, fill=align, align=align)

...

'left<<<<<<<<<<<<'

'^^^^^center^^^^^'

'>>>>>>>>>>>right'

>>>

>>> octets = [192, 168, 0, 1]

>>> '{:02X}{:02X}{:02X}{:02X}'.format(*octets)

'C0A80001'

>>> int(_, 16) # 官方文档给出来的,无法在IDLE复现

3232235521

>>>

>>> width = 5

>>> for num in range(5,12):

... for base in 'dXob':

... print('{0:{width}{base}}'.format(num, base=base, width=width), end=' ')

... print()

...

5 5 5 101

6 6 6 110

7 7 7 111

8 8 10 1000

9 9 11 1001

10 A 12 1010

11 B 13 1011

另,可在字符串前加f以达到格式化的目的,在{}里加入对象,此为format的另一种形式:

name = 'jack'

age = 18

sex = 'man'

job = "IT"

salary = 9999.99

print(f'my name is {name.capitalize()}.')

print(f'I am {age:*^10} years old.')

print(f'I am a {sex}')

print(f'My salary is {salary:10.3f}')

# 结果

my name is Jack.

I am ****18**** years old.

I am a man

My salary is 9999.990

python语言format用法_python格式化输出之format用法相关推荐

  1. python如何控制输出格式_python格式化输出

    python格式化输出 一.格式化输出三种方式 在写程序的过程中难免要得,输出有有特色的格式来,没有特色,谁还会耐得下去看呢,恐怕自己都写小烦躁,不要不要得,毕竟人就是个神奇的小动物嘛,所以说不得不提 ...

  2. python数值运算优先级_python格式化输出、比较优先级与数据类型。

    格式化输出 %s与%d msg = '我叫%s,今年%d岁' % ('老男孩',51)print(msg) 字典 msg = '我叫%(name)s,今年%(age)d岁' % {'age':12,' ...

  3. python中return和printf的区别_Python格式化输出:%s和format()用法比较

    1.python格式化输出历史起源 python2.5之前,我们使用的是老式格式化输出:%s.从python3.0开始起(python2.6同期发布),同时支持两个版本的格式化,多出来的一个新版本就是 ...

  4. python的format用法打印表格_Python格式化输出——format用法示例

    format OR % 提到Python中的格式化输出方法,一般来说有以下两种方式: print('hello %s' % 'world') # hello world print('hello {} ...

  5. c++输出小数点后几位_Python格式化输出:%s和format()用法比较

    1.python格式化输出历史起源 python2.5之前,我们使用的是老式格式化输出:%s.从python3.0开始起(python2.6同期发布),同时支持两个版本的格式化,多出来的一个新版本就是 ...

  6. python基础语法手册format-python的格式化输出(format,%)实例详解

    皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问 ...

  7. python格式化输出以及format()函数

    1.格式化输出 # 根据我们用户的需求,在指定的位置输出内容 """ %s 格式化输出字符串 str %d 格式化输出有符号的整数 %f 格式化输出浮点数 "& ...

  8. 初识python语言微课_Python语言程序设计(微课版)

    目录 Contents 第1章Python语言基础1 1.1Python语言的特点1 1.2Python应用领域2 1.3Python解释器3 1.4Python开发环境的安装3 1.5编写Pytho ...

  9. python中日期和时间格式化输出的方法

    1.将字符串的时间转换为时间戳 方法: a = "2013-10-10 23:40:00" #将其转换为时间数组 import time timeArray = time.strp ...

最新文章

  1. 云计算时代的P2P技术
  2. LINUX :标准c库
  3. 蝴蝶曲线python_ProE常用曲线方程:Python Matplotlib 版本代码(蝴蝶曲线)
  4. 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV
  5. Oracle利用序列实现自动增长列
  6. 2011 - 12 - 12记录2011 - 12 - 11
  7. oracle新建一个用户_Kettle 连接oracle将数据保存到Excel
  8. 计算机网络---TCP/UDP协议(一)
  9. 程序员竟然钟爱这个!我 low了
  10. osi模型_OSI模型
  11. WEBPACK+ES6+REACT入门(2/7)-在项目中使用react以及JSX语法介绍
  12. 2020年第十届C/C++ B组第二场蓝桥杯省赛真题
  13. 一周9本上榜新书推荐:软件调试、机器学习成为本周最亮的星
  14. 读网卡MAC地址的几种方法
  15. 用了半年的时间,把python学到了能出书的程度
  16. 苹果ipad找不到服务器怎么办,找不到网络怎么办 ipad无法加入无线网络解决方法【详解】...
  17. 最新的三星android版本号,三星率先公布Android 12/13升级机型名单,可惜S9/Note9被抛弃...
  18. pymysql.err.OperationalError: (1054, “Unknown column ‘xxx‘ in ‘where clause‘“)问题解决方法
  19. sql中的date的使用
  20. android 启动图片 大小,ios 和安卓常用图标、启动图 尺寸

热门文章

  1. Android的移动存储解决方案“.NET研究”之SharedPreferences
  2. NVIDIA显卡Linux驱动180.44正式版
  3. Explorer.exe程序在系统中的作用
  4. 编程零基础做程序员,该怎么学习?首先要学习什么?
  5. Excel表哥表姐如何突破职业天花板?我有两个忠告
  6. 局域网聊天关心他们的教育
  7. 飞鸽传书2009绿色版 官方网站下载地址
  8. 飞鸽类能记住传书的人类
  9. 【新年礼物】阿里资深p8教你学习Web全栈架构师!
  10. 经典面试题(7):下面的代码运行结果是什么么?