[python]format函数的用法

本文详细介绍了Python中str.format()函数的各种使用方法,包括通过位置和关键字传递参数、数字格式化操作等,并提供了丰富的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python中的  str.format() 函数用于格式化输出,有下列几种使用方式:


通过位置传递实参

字符串可以接受不限个参数,位置可以不按照顺序

1、不指定位置,按默认顺序

>>>print("{} love {}".format('Johnny', 'Timmy'))
Johnny love Timmy

2、指定位置

>>>print("{1} love {0}".format('Johnny', 'Timmy'))
Timmy love Johnny
>>>print("{1} {2} {0}".format('Johnny', 'Timmy', 'love'))
Timmy love Johnny


通过关键字传递实参

1、

>>>print('{学校}位于{省份}'.format(学校 = '中山大学', 省份 = '广东'))
中山大学位于广东

2、通过字典设置参数

>>>universe = {'学校':'中山大学', '省份':'广东', '级别':'一本'}
>>>print('{学校}位于{省份}'.format(**universe))
中山大学位于广东

3、通过列表索引设置参数(不要漏掉0[1]前面的0)

>>>uv = ['Tom', 'Jerry']
>>>print('I am a nice {0[1]}.\nI am a naught {0[0]}.'.format(uv))
I am a nice Jerry.
I am a naught Tom.


数字格式化

操作:print('格式'.format(字符或数字))

数字格式输出描述
12{:^14}      12 居中对齐,宽度为14
12{:<14}12 向左对齐,宽度为14
12{:14}             12 默认向右对齐,宽度为14
12{:*>6}****12 向右对齐,用*填充
3.1415926{.4f }3.1416 保留小数点后4位
-3.14{+.4f }
-3.1400 带符号输出
0.45{:.2%}45.00% 百分形式输出
50049663
{:,}
50,049,663
千分位分隔符形式输出
1000000{:2e}1.00e+06 科学计数法输出
11

{:b}

{:d}

{:o}

{:x}

{:#x}

{:#X}

1011

11

13

b

0xb

0xB

2进制

10进制

8进制

16进制

16进制0x格式

16进制0X格式


   
备注:
    1、默认空格填充

    2、^ < > 分别表示居中、向左对齐、向右对齐


 想输出大括号时用双大括号{{}}:print('{ }的重点是第{{1}}题'.format('考试'))

 输出为:考试的重点是第{1}题

### Python 中 `format` 函数的详细用法和示例 `format` 是 Python 中用于格式化字符串的强大工具,它允许将变量或表达式嵌入到字符串中。以下是关于 `format` 函数的详细用法和示例。 #### 基本用法 `format` 函数通过大括号 `{}` 来占位,并使用 `.format()` 方法将值插入到这些占位符中[^2]。 ```python name = "Alice" age = 30 message = "My name is {} and I am {} years old.".format(name, age) print(message) # 输出: My name is Alice and I am 30 years old. ``` #### 指定位置参数 可以通过在大括号内指定索引来控制参数的位置[^2]。 ```python greeting = "{1} {0}!".format("morning", "Good") print(greeting) # 输出: Good morning! ``` #### 关键字参数 可以使用关键字参数来增强代码的可读性[^2]。 ```python message = "Hello, {name}. You are {age} years old." formatted_message = message.format(name="Bob", age=25) print(formatted_message) # 输出: Hello, Bob. You are 25 years old. ``` #### 格式化数字 `format` 支持对数字进行格式化,例如指定小数位数或添加千分位分隔符[^2]。 ```python price = 1234.5678 formatted_price = "The price is ${:,.2f}".format(price) print(formatted_price) # 输出: The price is $1,234.57 ``` #### 对齐和填充 可以使用 `:<`, `:>`, `:^` 来指定文本的对齐方式,并结合宽度参数实现填充[^2]。 ```python left_aligned = "{:<10}".format("left") # 左对齐 right_aligned = "{:>10}".format("right") # 右对齐 center_aligned = "{:^10}".format("center") # 居中对齐 print(f"'{left_aligned}'") # 输出: 'left ' print(f"'{right_aligned}'") # 输出: ' right' print(f"'{center_aligned}'") # 输出: ' center ' ``` #### 使用类型转换 可以在大括号中指定类型转换标志,如 `!s` 表示字符串转换,`!r` 表示 repr 转换。 ```python class Person: def __str__(self): return "str conversion" def __repr__(self): return "repr conversion" person = Person() str_conversion = "Str: {!s}".format(person) repr_conversion = "Repr: {!r}".format(person) print(str_conversion) # 输出: Str: str conversion print(repr_conversion) # 输出: Repr: repr conversion ``` #### 自定义格式化 可以为对象定义自定义的 `__format__` 方法,从而支持特定的格式化规则[^2]。 ```python class Point: def __init__(self, x, y): self.x = x self.y = y def __format__(self, format_spec): if format_spec == "coord": return f"({self.x}, {self.y})" return super().__format__(format_spec) point = Point(10, 20) formatted_point = "Point: {:coord}".format(point) print(formatted_point) # 输出: Point: (10, 20) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值