Python的格式化输出和format函数总结

Python格式化输出详解
本文详细介绍了Python中用于格式化输出的方法,包括%操作符的使用,如%d用于整数,%f用于浮点数,并能指定浮点数的小数位数。还讲解了占位符宽度和对齐方式,如%-2d和%2d的区别,以及如何使用0填充。同时,文章也介绍了str.format()函数的各种用法,包括位置输出、关键字参数和下标输出。最后,展示了如何进行二进制、十进制、八进制和十六进制的转换,并利用逗号实现金额的千位分隔符。

打印输出整数

n = 20
print("this is %d" %(n))
>>>this is 20

%s是打印输出字符串
%f是打印浮点数用法与输出整数相同
而且打印浮点数还可以指定位数

n = 20.111
print("this is %.2f" %(n))

>>>this is 20.11

打印指定占位符宽度
都是在字符的前端多出一个空格

print("字符:%9s 整数:%3d 浮点数:%5.2f" % ('KKBBBKKC', 66, 0.88))
>>>字符: KKBBBKKC 整数: 66 浮点数: 0.88

打印指定的占位的字符(左右对齐)
并且将空格的地方用0去填充
左对齐(字符在左,空格在右):

hour1 = 13
m1 = 0
miao1 = 0
print("%-2d:%-2d:%-2d" %(hour1,m1,miao1))
>>>13:0 :0

右对齐

hour1 = 13
m1 = 0
miao1 = 0
print("%2d:%2d:%2d" %(hour1,m1,miao1))
>>>13: 0: 0

将空格处补上0(前导0)

hour1 = 13
m1 = 0
miao1 = 0
print("%02d:%02d:%02d" %(hour1,m1,miao1))
>>>13:00:00

str.format()函数的使用
可以通过位置输出

print('{0},{1},{0}'.format('1111', '222'))
>>>1111,222,1111

通过关键字参数:

print('{a},{b}'.format(a='1111', b='222'))
>>>1111,222

通过下标:

student = ['lihua', 22]
print('{0[0]},{0[1]}'.format(student))
>>>lihua,22

以特定的格式输出(前导0):
这里的0可以替换成自己想设定的其他字符

hour1 = 13
m1 = 0
miao1 = 0
print("{:0>2}:{:0>2}:{:0>2}".format(hour1,m1,miao1))
>>>13:00:00
#浮点数
print('{:.2f}'.format(3.1415926))
>>> 3.14

按进制输出(二进制b,十进制d,八进制o,十六进制x):

print('{:b}'.format(99))
print('{:d}'.format(99))
print('{:o}'.format(99))
print('{:x}'.format(99))
>>>1100011
99
143
63
#实例输出二进制的32个数
for i in range(32):
    print("{:0>5b}".format(i))
>>>00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

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

print('{:,}'.format(1000000000))
 
>>>1,000,000,000
<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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值