python中%和format

两者都是格式化字符串用的,前者是比较老的版本,现在已经不推荐,后者更强大一些

%

In [22]: print ‘%s‘ % ‘hello world‘
hello world

In [23]: print ‘%s: %d‘ % (‘name‘, 13)
name: 13

In [24]: import math

In [25]: print ‘PI: %.5f‘ % pi
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-25-b457c33a3305> in <module>()
----> 1 print ‘PI: %.5f‘ % pi

NameError: name ‘pi‘ is not defined

In [26]: print ‘PI: %.5f‘ % math.pi
PI: 3.14159

In [27]: a = (‘Bill‘, ‘Gates‘)

In [28]: ‘%s, %s‘ % a
Out[28]: ‘Bill, Gates‘

  

format

Help on method_descriptor:

format(...)
    S.format(*args, **kwargs) -> string

    Return a formatted version of S, using substitutions from args and kwargs.
    The substitutions are identified by braces (‘{‘ and ‘}‘).
(END)

用法如下:

In [29]: "{}".format(‘hello‘)
Out[29]: ‘hello‘

In [30]: ‘{} {}‘.format(‘hello‘, ‘world‘)
Out[30]: ‘hello world‘

In [31]: ‘{1} {0} {0}‘.format(‘hello‘, ‘python‘)
Out[31]: ‘python hello hello‘

In [32]: ‘{0} {0} {1}‘.format(*(‘hello‘, ‘Python‘))
Out[32]: ‘hello hello Python‘

In [33]: ‘{length} {width}‘.format(length=12, width=13)
Out[33]: ‘12 13‘

In [34]: ‘{length} {width}‘.format(width=12, length=13)
Out[34]: ‘13 12‘

In [35]: ‘{length} {width}‘.format({‘width‘: 12, ‘length‘: 13})
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-35-f8990d240643> in <module>()
----> 1 ‘{length} {width}‘.format({‘width‘: 12, ‘length‘: 13})

KeyError: ‘length‘

In [36]: ‘{length} {width}‘.format(**{‘width‘: 12, ‘length‘: 13})
Out[36]: ‘13 12‘

In [37]: "‘x‘: {0[0]}, ‘y‘: {0[1]}".format((12, 13))
Out[37]: "‘x‘: 12, ‘y‘: 13"

最常用的可能就是上面这些,不过format不仅仅如此,还可以做前分位符,指定字符串宽度,代替%s %r,处理时间的格式等

>>> "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‘)  # use ‘*‘ as a fill char
‘***********centered***********‘

>>> ‘{:+f}; {:+f}‘.format(3.14, -3.14)  # show it always
‘+3.140000; -3.140000‘
>>> ‘{: f}; {: f}‘.format(3.14, -3.14)  # show a space for positive numbers
‘ 3.140000; -3.140000‘
>>> ‘{:-f}; {:-f}‘.format(3.14, -3.14)  # show only the minus -- same as ‘{:f}; {:f}‘
‘3.140000; -3.140000‘

>>> # 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.5
>>> total = 22
>>> ‘Correct answers: {:.2%}‘.format(points/total)
‘Correct answers: 88.64%‘

>>> 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‘

大家可以看看官方文档(以上部分例子摘自官方文档):

https://docs.python.org/2/library/string.html

  

  

时间: 2024-11-03 21:54:13

python中%和format的相关文章

Python中格式化format()方法详解

Python中格式化format()方法详解 Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法; Python是完全面向对象的语言, 任何东西都是对象; 字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加; 使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等; 还可以添加特定的字母, 如: 'b' - 二进制. 将数字以2为基数

Python中的format()函数

普通格式化方法 (%s%d)生成格式化的字符串,其中s是一个格式化字符串,d是一个十进制数; 格式化字符串包含两部分:普通的字符和转换说明符(见下表), 将使用元组或映射中元素的字符串来替换转换说明符; **如果d是元组的话,必须与s中的转换说明符个数一致; 如果d是dict的话,每个转换说明符都必须与dict中一个有效的键名相关联.** 转换说明符,都以%开始 输出格式 d,i 十进制 u 无符号数 o 八进制 x 十六进制或长整数 X 十六进制 f,e,E 浮点数 g,G 指数小于-4时使用

Python中print/format字符串格式化实例

Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(变量1,变量2),%格式表示接受变量的类型.简单的使用例子如下 # 例:字符串格式化Name = '17jo'  print 'www.%s.com'%Name  >> www.111cn.net Name = '17jo'Zone = 'com'print 'www.%s.%s'%(Name,Zone)>> www.111cn.net 字符串格式化时百分号后面有不同的格式符号,代表要转换的不

python中的format方法和int方法

一.背景 我们在进行计算机进制转换的时候需要用到一些其他的进制,最常见的就是二进制,八进制,16进制.这里介绍两种方法去完成进制之间的转换. 二.使用 2.1 format方法 format方法中包含两个参数,第一个是一个十进制数,第二个参数表示格式化的方法.第二个参数表示的内容如下 # 0填充的字符(只能是0) # 4表示填充后的位数(12,就表示填充后为12位) # x表示进制数(b:二进制,o:八进制,x:16进制,d:十进制) 输出的结果如下: print(format(22, '04x

Python中的format函数

format函数 这是一种字符串格式化的方法,用法如str.format(). 基本语法是通过 {} 和 : 来代替以前的 % . 以下展示两种主要用法: (1)如:语句print("{:.2f}".format(3.1415926)),它的输出为3.14,可以看出命令为保留两位小数点. (2)如:语句"{1} {0} {1}".format("hello", "world"),它的输出为'world hello world'

Python中str.format()字典及list传入详解

原文地址:https://www.cnblogs.com/qiaoxin/p/10109877.html

python format字符串格式化、数学意义的函数与python中的函数 day14

format字符串格式化,必须一一对应 tpl = 'i am {}, age{},{}'.format('seven',18,12) print(tpl) tpl = 'i am {1}, age{2},{2}'.format('seven',18,12) print(tpl) 取元组第一个 tpl = 'i am {0[0]}',format([1,2,3],[123]) python 中函数定义方法: def test(x): 'The function definitions'#注释函数

Python之路--Python中应该使用%还是format来格式化字符串?

一.%还是format 1.%.format皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问题.不信你往下看. # 定义一个坐标值 c = (250, 250) # 使用%来格式化 s1 = "敌人坐标:%s" % c 上面的代码很明显会抛出一个如下的TypeError: TypeError: not all arguments con

python中字符串格式化%与.format

Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator. 1.百分号