Python格式化输出与format函数

Python格式化输出技巧
本文详细介绍了Python中各种格式化输出的方法,包括使用%操作符和str.format()函数进行整数、浮点数、字符串等类型的格式化输出,并展示了如何设置宽度、对齐方式和精度。

本文主要整理和汇总python一系列的格式化输出方式:

打印整数

print ("I'm number %d" % (20))

>>> I'm number 20  

打印浮点数(默认)

print("This book's weight is %f kg" % (0.85))

>>> This book's height is 0.850000 kg 

打印浮点数(指定位数)

print("His height is %.2f m" % (1.73))

>>> His height is 1.73 m 

打印字符串

print("My name is %s" % ('terry'))

>>> My name is terry 

打印指定占位符宽度

print("Type:%9s Value:%3d Latency:%5.2f" % ('AVP_KMOD', 44, 0.45))

>>> Type: AVP_KMOD Value: 44 Latency: 0.45 

打印指定占位符(左对齐)

print("Name:%-10s Age:%-8d Height:%-8.2f"%("Terry",25,1.83))

>>> Name:Terry      Age:25       Height:1.83 

打印指定占位符(前导0)

print ("Speed:%010d Rate:%08d Height:%08.2f"%(1000,25,1.83))

>>> Speed:0000001000 Rate:00000025 Height:00001.83 

在python2.6之后,又增加了一种格式化字符串的函数str.format(),通过{}来代替%。
用法主要包含以下几类:

通过位置
字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次:

print('{0},{1},{0}'.format('aaa', 'bbb'))

>>> aaa,bbb,aaa  

通过关键字参数

print('{name},{age}'.format(age=18,name='Terry'))

>>> Terry,18  

通过对象属性

class Person:
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def __str__(self):
        return 'This guy is {self.name},he is {self.age} old.'.format(self=self)

print str(Person('Terry',18))

>>> This guy is Terry,he is 18 old.

通过下标

person = ['Terry',18]
print('{0[0]},{0[1]}'.format(person))

>>> Terry,18

通过格式
如上面的前导0:

print('{:0>8}'.format('189'))
print('{:>8}'.format('189'))
print('{:a>8}'.format('189'))

>>> 00000189
>>>      189
>>> aaaaa189

以及浮点数:

print('{:.2f}'.format(321.33345))

>>> 321.33

其他类型
主要就是二进制b、十进制d、八进制o、十六进制x:

print('{:b}'.format(46))
print('{:d}'.format(46))
print('{:o}'.format(46))
print('{:x}'.format(46))

>>> 101110
>>> 46
>>> 56
>>> 2e

此外, 用逗号还能用来做金额的千位分隔符。

print('{:,}'.format(99988844333))

>>> 99,988,844,333
<think>好的,用户现在想了解如何使用Pythonformat函数格式化输出整数。根据用户之前的问题,他们在处理嵌套元组的列表排序时已经接触过一些Python的基础知识,可能对字符串格式化有一定的了解,但需要更具体的指导。 首先,我需要参考用户提供的引用内容,特别是引用[2]和[3],因为它们详细介绍了format函数的用法。用户提到了格式化输出整数,所以需要涵盖整数的基本格式化、对齐方式、填充字符、进制转换以及千位分隔符等。 用户可能需要具体的示例,因此我应该分门别类地给出不同场景下的应用例子。比如,基本的整数插入、指定宽度和对齐、填充字符、进制转换、符号显示、千位分隔符以及组合使用多个参数的情况。每个示例都需要清晰的代码和输出结果,方便用户理解。 同时,用户可能对format函数的不同参数位置和关键字参数的使用不太清楚,所以需要解释清楚位置参数和关键字参数的区别。例如,使用{}、{0}、{name}等形式,让用户了解如何灵活应用。 另外,用户可能在实际使用中遇到需要组合多个格式化选项的情况,比如同时使用千位分隔符和指定宽度,这时候需要说明如何将这些选项结合在同一个格式规范中,例如"{:0>15,}",并解释每个符号的作用。 还要注意,用户可能对进制转换的符号(如x、X、b、o)不太熟悉,需要明确说明每个符号对应的进制,以及如何控制字母的大小写。例如,x代表十六进制小写,X则是大写,b是二进制,o是八进制。 最后,考虑到用户之前的问题涉及性能分析,可能在处理大数据时需要注意格式化操作的效率,但这个问题更多是基础用法,所以暂时不需要深入性能方面,但可以简要提到format函数的灵活性和效率。 需要确保所有示例都正确无误,符合Python语法,并且输出结果实际运行结果一致。同时,语言要简洁明了,避免使用过于专业的术语,让初学者也能轻松理解。此外,结合用户之前的问题,可能他们在处理数据输出时需要这些技巧,所以示例应贴近实际应用场景,如生成报告、数据展示等,增加实用性。</think>以下是使用Python `format()` 函数格式化输出整数的详细示例和说明: --- ### 一、基础整数格式化 #### 1. **基本整数插入** ```python num = 123 print("整数: {}".format(num)) # 输出:整数: 123 ``` #### 2. **指定位置参数** ```python print("{}的平方是{}".format(5, 25)) # 输出:5的平方是25 print("{1}的平方是{0}".format(25, 5)) # 输出:5的平方是25 ``` #### 3. **关键字参数** ```python print("商品ID: {id}, 库存: {stock}".format(id=1001, stock=50)) # 输出:商品ID: 1001, 库存: 50 ``` --- ### 二、对齐填充 #### 1. **右对齐(默认)** ```python print("{:5}".format(7)) # 总宽度5,默认右对齐,输出: 7(前导4空格) ``` #### 2. **左对齐** ```python print("{:<5}".format(7)) # 输出:7 (后导4空格) ``` #### 3. **居中对齐** ```python print("{:^5}".format(7)) # 输出: 7 (两侧各2空格) ``` #### 4. **自定义填充字符** ```python print("{:*>10}".format(123)) # 右对齐,填充*,输出:*******123 print("{:0<8}".format(99)) # 左对齐,填充0,输出:99000000 ``` --- ### 三、进制转换 #### 1. **二进制(`b`)** ```python print("{:b}".format(10)) # 输出:1010 ``` #### 2. **八进制(`o`)** ```python print("{:o}".format(10)) # 输出:12 ``` #### 3. **十六进制(`x`小写/`X`大写)** ```python print("{:x}".format(255)) # 输出:ff print("{:X}".format(255)) # 输出:FF ``` #### 4. **显示进制前缀** ```python print("{:#b}".format(10)) # 输出:0b1010 print("{:#X}".format(255)) # 输出:0xFF ``` --- ### 四、符号千位分隔符 #### 1. **强制显示正负号** ```python print("{:+}".format(5)) # 输出:+5 print("{:+}".format(-5)) # 输出:-5 ``` #### 2. **千位分隔符(`,`)** ```python print("{:,}".format(1234567)) # 输出:1,234,567 ``` #### 3. **组合使用** ```python print("{:+,>20,}".format(1234567)) # 输出:>>>>>>>>>>+1,234,567(右对齐,填充>,显示符号和千位分隔符) ``` --- ### 五、特殊格式 #### 1. **固定宽度不足补零** ```python print("{:05}".format(7)) # 输出:00007 ``` #### 2. **百分比格式(需结合浮点转换)** ```python print("{:.0%}".format(0.85)) # 输出:85% ``` --- ### 六、综合示例 ```python data = {"price": 9999, "sales": 1500} print("价格: ¥{:0>10,} | 销量: {:*^10}".format(data["price"], data["sales"])) # 输出:价格: ¥000009,999 | 销量: ***1500*** ``` --- ### 附:格式规范语法速查 格式规范:`{[参数]:[填充][对齐][符号][#][0][宽度][,][进制]}` 示例:`"{:*>+#20,b}".format(12345)` - `*>`:右对齐,填充`*` - `+`:显示符号 - `#`:显示进制前缀 - `20`:总宽度20 - `,`:千位分隔符 - `b`:二进制 --- ### 注意事项 1. 整数无法直接使用`%f`格式化,需先转换为浮点数 2. 若需同时使用对齐、填充、进制等参数,需按语法顺序书写[^2][^3]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值