Python使用format输出时还想输出‘{‘,‘}‘的方法

在字符串中要print的’{‘或者’}’,用‘{{’或者‘}}’来表示:
例如

    print("(a_Plus_b [{:>3d}] == a_Plus_b [{:>3d}]) ? {{a_Plus_b[{:>3d} -: 13],1'b0}} : a_Plus_b[{:>3d} -: 14];".format(i*step+13,i*step+12,i*step+12,i*step+13))

下文是转载的关于format的具体用法,原文地址:http://www.chenxm.cc/article/237.html:


format 基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序。

format基本用法

"Hello {0} {1}".format("Chen","xin"# 引用第一个参数
# 输出 'Hello Chen xin'
"{} is cute".format("Chen xin"# 引用第一个参数
# 输出 'Chen xin is good'
"My name is {name}".format(name="Chen xin"# 引用名字为name的参数
# 输出 'My name is Chen xin'

1. 类型转换

  • !s

  • !r

"Chen xin is a cute {!s}".format("baby"# !s 相当于对于参数调用str()
# 输出 'Peppa pig is a cute baby'
"Chen xin is a cute {!r}".format("baby"# !r 相当于对于参数调用repr()
# 输出 "Peppa pig is a cute 'baby'"

2. 通过位置来填充字符串

print('{0}, {1}, {2}'.format('a''b''c'))  # a, b, c
print('{}, {}, {}'.format('a''b''c'))     # a, b, c
print('{2}, {1}, {0}'.format('a''b''c'))  # c, b, a
print('{2}, {1}, {0}'.format(*'abc'))         # c, b, a
print('{0} {1} {0}'.format('aa''bb'))         # aa bb aa

同一个参数可以填充多次,这个是format比%先进的地方

3. 按名称访问参数

print('name: {last_name}{first_name}'.format(last_name='chen', first_name='xin'))
# name: chenxin
name= {'last_name''chen''first_name''xin'}
print('name: {last_name}, {first_name}'.format(**name))
# name: chenxin

4. 通过参数属性访问

class MyList:
    def __init__(self, x, y):
        self.x, self.y = x, y
        
    def __str__(self):
        return 'MyList({self.x}, {self.y})'.format(self = self)
print(str(MyList('陈新明''www.chenxm.cc')))
# 网站名:陈新明, 地址 www.chenxm.cc

5. 通过参数的items访问

my_list = ['陈新明''www.chenxm.cc']
 
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的
# 网站名:陈新明, 地址 www.chenxm.cc

6. 对齐字符串

"{:>5}".format(1) # 设置宽度为5,右对齐
"{:>5}".format(10)
"{:>5}".format(100)
"{:>5}".format(1000)
# 输出下面的结果
'    1'
'   10'
'  100'
' 1000'
print('{:_<30}'.format('left aligned'))
#'left aligned__________________'
print('{:_>30}'.format('right aligned'))
#'__________________right aligned'
print('{:_^30}'.format('centered'))
#'__________________centered__________________'
  • ^   居中     后面带宽度,

  • <   左对齐 后面带宽度,

  • >   右对齐 后面带宽度,

  •  :   号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

7. 截断字符串

'{:.5}'.format('Hello Chen'# 截取前5个字符
# 输出 'Hello'

8. 数字格式化

print("{:.2f}".format(3.1415926));
# 3.14


  • + 表示在正数前显示 +,

  • -  负数  

  • (空格) 表示在正数前加空格

  • b  二进制

  • d  十进制

  • o  八进制

  • x  十六进制


更多样式

9. 使用逗号作为千位分隔符

print('{:,}'.format(1234567890))
#'1,234,567,890'

10. 表示一个百分比

print('number: {:.2%}'.format(0.61898))
# number: 61.90%

11. 时间格式化

import datetime
d = datetime.datetime(2018731155858)
print('{:%Y-%m-%d %H:%M:%S}'.format(d))
# 2018-07-31 15:58:58

12. 访问元组中的元素

a = (1,2)
'X: {0[0]};  Y: {0[1]}'.format(a)
# 输出 'X: 1;  Y: 2'
# 注意:用%格式化字符串不支持此功能

13. 访问字典中的元素

people = {"name""Chen""age": 18}
"My name is {p[name]} and my age is {p[age]}".format(p=people )
# 输出 'My name is Chen and my age is 18'
# 注意:用%格式化字符串不支持此功能


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值