python的format函数

还在用%吗?快学会使用format吧!!!好处大大的有:

1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型

2.单个参数可以多次输出,参数顺序可以不相同

3.填充方式十分灵活,对齐方式十分强大

4.官方推荐用的方式,%方式将会在后面的版本被淘汰


所以看完这篇文章后你又进击了一步:

再说一句,我以前也一直使用%,这是在学习C语言的时候留下的“坏习惯”,当时就觉的很
不方便。当然知识是需要活学活用的,%也有它的一点点好处,看情况使用,但是一般情况下

在python3中使用format是没有错的,它也是2和3很大的一个区别,好啦看看基本的format使用,学会了一般情况都能应付了

通过关键字输出:

print('{学习}使我{快乐}'.format(学习='学习',快乐='痛苦'))
study = {'语言':'python','排名':'天下第一'}
print('{语言} 是 {排名}'.format(**study))    #这里的**和*如何使用在前面的一篇文章中有专门的介绍
#学习使我痛苦
#python 是 天下第一

通过位置输出:

print('{0} @ {1}'.format('DH','nihaoa'))
print('{1} @ {0}'.format('DH','nihaoa'))
print('{} @ {}'.format('DH','nihao'))        #如果你是按顺序排列,则可以不用填写序号
#DH @ nihaoa
#nihaoa @ DH
#DH @ nihao

使用特殊字符 ^<>来填充和对齐,分别表示居中、左对齐、右对齐,后面的数字表示填充:

print('你好 {:^10}'.format('python'))
print('你好 {:<10}'.format('python'))
print('你好 {:>10}'.format('python'))
print('你好 {:@<10}'.format('python'))
print('你好 {:@>10}'.format('python'))
#你好   python
#你好 python
#你好     python
#你好 python@@@@
#你好 @@@@python

精度和类型f:

print('{:.1f}'.format(3.1415926))
print('{:.5f}'.format(3.1415926))
#3.1
#3.14159

进制的转化,b o d x 分别表示二、八、十、十六进制:

print('{:b}'.format(100))
print('{:o}'.format(100))
print('{:d}'.format(100))
print('{:x}'.format(100))
#1100100
#144
#100
#64

针对与数字可以使用:千分位分隔符:

print('{:,}'.format(123456712))
print('{:,}'.format(1234567123456))
#123,456,712
#1,234,567,123,456

OK!基本的语法就这么多,当然我也是在看过了许多博客后,总结了一下,我觉得这些已经够简单的使用了



若学不能以致用,学以何用


### Python 中 `format` 函数的使用指南 #### 基础概念 `format` 是 Python 字符串的一个内置方法,用于格式化字符串。它通过 `{}` 占位符替代传统的 `%` 符号来进行数据替换[^2]。 #### 调用机制 当调用 `format(value, format_spec)` 方法时,实际上是将其转化为 `type(value).__format__(format_spec)` 的形式来执行。这意味着会优先在对象类型的定义中寻找 `__format__()` 方法并调用;如果没有找到该方法,则抛出 `TypeError` 异常[^1]。 #### 格式说明符 (`format_spec`) `format_spec` 参数允许指定详细的显示规则,比如对齐方式、填充字符、精度等。其通用结构如下: ``` [[fill]align][sign][#][0][width][grouping_option][.precision][type] ``` 以下是部分常用选项解释: - **Align**: `<`, `>`, `=`, 或者 `^` 控制左对齐、右对齐、数值前补零或者居中。 - **Sign**: 可选加号 `+` 显示正负数标志,空格保留符号位置但仅标记负数 `-`. - **Width**: 定义字段宽度。 - **Precision**: 对浮点型设置有效数字数量。 - **Type**: 如整数(`d`)、十六进制(`x`)、科学计数法(`e`)等形式表示[^2]. #### 实际应用案例 ##### 简单示例 ```python print("Hello {}, your score is {}".format("Alice", 95)) ``` 这段代码将输出 `"Hello Alice, your score is 95"`[^2]。 ##### 自定义类支持 可以通过实现特殊方法 `__str__` 和 `__format__` 来控制自定义类型如何被格式化展示。例如下面的例子展示了一个人的信息打印: ```python class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return "这个人的名字叫 {name} 年龄为 {age}".format(name=self.name, age=self.age) person_instance = Person('张三', 30) print(person_instance) ``` 这里利用了 `.format(self=self)` 技巧传递实例本身给内部模板解析器[^3]。 ##### 复杂格式化 考虑更复杂的场景下需要精确控制输出样式的情况: ```python number = 1234.56789 formatted_number = "{:.2f}".format(number) # 输出 '1234.57' percentage_value = "{:%}".format(0.75) # 输出 '75%' binary_representation = "{:#b}".format(255) # 输出 '0b11111111' ``` 以上分别演示了四舍五入到两位小数、百分比转换以及二进制表现的功能。 #### 总结 综上所述,Python 的 `format` 函数提供了强大而灵活的文字拼接能力,并且能够很好地兼容各种复杂的数据呈现需求。无论是基本变量还是定制化的对象都可以借助这一工具优雅地完成最终结果构建。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值