python中%和format

时间:2022-09-10 07:38:37

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

%

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

注意:大括号和变量名之间是不能有空格的,否则会提示错误keyerror,如下

In [1]: print '{name}'.format(name='wang')
wang In [2]: print '{ name }'.format(name='wang')
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-2-7b45246725e0> in <module>()
----> 1 print '{ name }'.format(name='wang') KeyError: ' name ' In [3]: print '{ name }'.format(name='wang')

  

  

python中%和format的更多相关文章

  1. Python中格式化format&lpar;&rpar;方法详解

    Python中格式化format()方法详解 Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法; Python是完全面向对象的语言, 任何东西都是对象; 字符串的参 ...

  2. Python中的format&lpar;&rpar;函数

    普通格式化方法 (%s%d)生成格式化的字符串,其中s是一个格式化字符串,d是一个十进制数; 格式化字符串包含两部分:普通的字符和转换说明符(见下表), 将使用元组或映射中元素的字符串来替换转换说明符 ...

  3. Python中的format函数

    format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 2.单个参数可以多次输出,参数顺序 ...

  4. Python中print&sol;format字符串格式化实例

    Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(变量1,变量2),%格式表示接受变量的类型.简单的使用例子如下 # 例:字符串格式化Name = '17jo' ...

  5. python中的format

    format()格式化字符串,将占位符替换成内容,举个例子: 1 a = "hello {0} welcome to {1}" 2 a1 = a.format("dlrb ...

  6. python 中str format 格式化数字补0方法

      >>> "{0:03d}".format(1)'001'>>> "{0:03d}".format(10)'010'&gt ...

  7. Python中str&period;format&lpar;&rpar;字典及list传入详解

  8. python开发&lowbar;python中str&period;format&lpar;&rpar;

    格式化一个字符串的输出结果,我们在很多地方都可以看到,如:c/c++中都有见过 下面看看python中的字符串格式函数str.format(): 1 #使用str.format()函数 2 3 #使用 ...

  9. python中的printf:&percnt;号拼接字符串和format函数

    在C语言中,我们使用printf("%s","hello")这种形式进行字符串的拼接 在python中,进行这样的拼接有两种实现方式,分别是%号拼接以及使用fo ...

随机推荐

  1. QQ聊天界面模式切换

    1.打开一个聊天窗口 2.按照图上步骤 3.模式 3-1气泡模式 3-2文本模式

  2. socket基本

    fd_set用法: http://blog.sina.com.cn/s/blog_5c8d13830100erzs.htm socket连接: lpszHost="127.0.0.1&quo ...

  3. 验证工具类 - ValidateUtils&period;java

    验证工具类,提供验证email格式.是否ipv4.是否ipv6.是否中文.是否数字.正则表达式验证的方法. 源码如下:(点击下载 - ValidateUtils.java .commons-lang- ...

  4. android 与usb 设备通信(二)

    再次遇到android  mUsbManager.getDevicelist() 得不到usb 设备的问题.于是深入去探讨android 与usb 外围设备通信的问题.第一篇文章写的有点乱,本质就是需 ...

  5. 【HDOJ】1495 非常可乐

    bfs. #include <iostream> #include <queue> #include <cstdio> #include <cstring&g ...

  6. js获取当前事件键盘按钮

    用户名:<input type="text" name="username" id="username"><br /&gt ...

  7. 面向对象程序设计-C&plus;&plus;&lowbar;课时16子类父类关系

    初始化列表 类名::类名(形参1,形参2,...形参n):数据成员1(形参1),数据成员2(形参2),...,数据成员n(形参n) { ... } 规则1,初始化列表进行数据成员的初始化 规则2,初始 ...

  8. &period;NET基础笔记(C&num;)

    闲着没事就把以前学习时的笔记拿出来整理了一下,个人感觉有点用,就想拿出来跟园友共享一下.有些基础性的内容比如基本概念.语法什么的就不发了. 内容:1.构造方法(函数) 2.继承   3.访问修饰符   ...

  9. 使用nginx实现浏览器跨域请求

    跨域访问问题, 相信很多人都遇到过, 并且都用不同的办法去解决过. 方法有很多种, 不一一叙述了. 这里主要使用nginx反向代理来解决跨域问题. 啥是跨域? 假如你是百度开发人员, 在百度页面去请求 ...

  10. python递归的例子

    例子1:递归实现嵌套列表求和 #encoding=utf-8 a=[[1,2,3],  [4,5,6],  [7,8,9]]def listsum(L):    result=0    for i i ...