Python输出格式全总结

本文详细介绍Python中使用format()方法进行字符串格式化的技巧,包括基本使用、格式控制信息、填充、对齐、宽度、千位分隔符、精度及类型等。

字符串格式化方法

在Python语言编程中,我们会与字符串打交道,那务必会输出字符串来查看字符串的内容,Python中控制字符串格式通常有两种方法,一种是使用%,另一种是使用format()方法。

>>> "i learn %s"%('python')
'i learn python'
>>> "i learn {}".format('python')
'i learn python'

用%来格式化字符串是继承C语言的用法,而Python语言更高级的字符串格式化方法是format(),官方也更加推荐使用format()来格式字符串。

format()基本使用

format方法的基本使用语法是:<用{}表示的模板字符串>.format(<用逗号分隔的参数>),基本思想就是用逗号分隔的参数来替换到模板字符串中的花括号{}位置处,即用参数来传入具体的值,用花括号{}来指定字符串的格式。模板字符串中的花括号{}可以有序号和格式控制信息,这可以有各种方法组合在一起,下面为大家介绍它的主要用法。

如果花括号里面没有序号,则按照出现的顺序进行替换;如果花括号里制定了使用参数的序号,则按照序号对应参数进行替换,序号从0开始数字编号或者使用关键字参数。

>>> '{},{}'.format('abc',18)
'abc,18'
>>> '{0},{1}'.format('abc',18)
'abc,18'
>>> '{1},{0},{1}'.format('abc',18)
'18,abc,18'
>>> '{name},{age}'.format(age=18,name='abc')
'abc,18'

使用花括号{}可以很方便的输出不同的格式和内容,如果需要输出花括号{}本身,可以采用 “{{” 表示 “{” ,用 “}}” 表示 “}”。

>>> "圆周率{{{1}{2}}}是{0}".format("无理数",3.1415926,"...")
'圆周率{3.1415926...}是无理数'

格式控制信息

格式控制信息包括填充,对齐,宽度,千位分隔符,精度,类型等六个字段,这些字段可以组合使用。

填充,对齐,宽度是三个相关联的字段,通常在一起使用。宽度指的是设定输出字符串宽度,如果字符串实际宽度比设定值大,则使用实际宽度;如果字符串实际宽度比设定值小,则使用设定值,默认用空格符作为填充。填充则是指当字符串实际宽度小于设定的宽度时,除了实际的字符串外,用什么字符表示其他内容,默认用空格,也可以改为其他值。<对齐>则表示输出字符串的对齐方式,分别用<,>,^来表示左对齐,右对齐,居中对齐,默认使用左对齐。

>>> "{0:30}".format("PYTHON")
'PYTHON                        '
>>> "{0:>30}".format("PYTHON")
'                        PYTHON'
>>> "{0:*^30}".format("PYTHON")
'************PYTHON************'
>>> "{0:3}".format("PYTHON")
'PYTHON'

千位分隔符使用逗号(,)来表示,下面的代码对比了使用千位分隔符与不使用的区别。

>>> "{0:-^20,}".format(1234567890)
'---1,234,567,890----'
>>> "{0:-^20}".format(1234567890)
'-----1234567890-----'

精度控制信息,由小数点(.)开头,可表示两种含义。对于浮点数,精度表示小数部分输出的有效精度;对于字符串,精度表示输出的最大长度。

>>> "{0:.2f}".format(123.2345677)
'123.23'
>>> "{0:.4}".format("python")
'pyth'
>>> 

类型表示输出整数和浮点数的格式规则。对于整数类型,包括6种格式:b(输出整数对应的二进制),c(输出整数对应的Unicode字符),d(输出整数对应的十进制),o(输出整数对应的八进制),x(输出整数对应的小写十六进制),X(整数对应的大写十六进制)。

>>> "{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(324)
'101000100,ń,324,504,144,144'

对于浮点数,包括4种格式:e(浮点数对应的小写e指数形式),E(浮点数对应的大写E指数形式),f(标准浮点格式),%(浮点数的百分数形式),通常对于浮点数,我们还是用前面介绍过的精度控制信息来控制浮点数的有效数字。

>>> "{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14152)
'3.14e+00,3.14E+00,3.14,314.15%'

欢迎大家关注我的公众号
计算机视觉和机器学习

### Python 中 `print` 输出语句的格式化用法 在 Python 中,`print` 是一种非常重要的输出工具。它经历了从 Python 2 到 Python 3 的演变过程,逐渐成为了一种功能强大的函数[^2]。 #### 基础语法 在 Python 3 中,`print` 成为一个完整的函数而非简单的语句。它的基本语法如下: ```python print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) ``` - `*objects`: 需要打印的内容,可以是一个或多个对象。 - `sep`: 指定多个对象之间的分隔符,默认为空格 `' '`[^3]。 - `end`: 打印结束后的附加字符,默认为换行符 `\n`[^3]。 - `file`: 输出目标,默认为标准输出流 `sys.stdout`[^1]。 - `flush`: 如果设置为 `True`,则强制刷新输出缓冲区[^1]。 --- #### 格式输出方法 ##### 使用逗号分隔 最基础的方式是利用逗号将多个表达式连接起来,自动添加空格作为分隔符: ```python a = 10 b = 20 print(a, b) # 默认以空格分割 ``` ##### 自定义分隔符 (`sep`) 通过修改 `sep` 参数,可以改变默认的分隔方式: ```python print("apple", "banana", "cherry", sep=", ") # 输出: apple, banana, cherry ``` ##### 控制结尾字符 (`end`) 默认情况下,每次调用 `print` 后都会换行。可以通过调整 `end` 参数更改这一行为: ```python print("Hello", end=" ") print("World") # 输出: Hello World (在同一行显示) ``` ##### 文件重定向 (`>>` 或 `file`) 可以从 Python 2 开始使用 `>>` 来重定向到文件,而在 Python 3 中推荐显式指定 `file` 参数: ```python with open("output.txt", "w") as f: print("This is written to a file.", file=f) ``` ##### 字符串格式Python 提供了多种方式进行字符串格式输出: ###### 1. `%` 运算符(旧风格) 类似于 C 语言中的 `printf` 函数,适合简单场景[^4]: ```python name = "Alice" age = 25 print("My name is %s and I am %d years old." % (name, age)) # 输出: My name is Alice and I am 25 years old. ``` ###### 2. `str.format()` 方法(新风格) 更加灵活且易于阅读: ```python print("My name is {} and I am {} years old.".format(name, age)) # 输出: My name is Alice and I am 25 years old. # 可以命名占位符 print("Name: {n}, Age: {a}".format(n=name, a=age)) # 输出: Name: Alice, Age: 25 ``` ###### 3. F-string(Python 3.6+ 特性) 简洁高效,特别适用于复杂嵌套结构[^4]: ```python print(f"My name is {name} and I am {age} years old.") # 输出: My name is Alice and I am 25 years old. ``` --- ### 总结 无论采用哪种方式,合理选择取决于具体应用场景和个人偏好。对于现代开发环境,建议优先选用 `f-string` 和 `str.format()`,因为它们提供了更高的可读性和扩展能力[^4]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值