format
是Python内置函数之一,用于对字符串进行格式化操作。它可以将不同类型的数据转换为字符串,并根据指定的格式进行格式化输出。
format函数语法:
- 语法:format(value, format_spec='')
- 格式化指定的值,并将其插入字符串的占位符内。
- 可以使用内置函数
format()
来格式化数字。 format()
函数的第一个参数是要格式化的数字,第二个参数是格式化的模板,使用逗号作为千位分隔符。
希望这些提示对你有帮助!
参数和返回值:
format
函数的参数包括格式字符串和一个或多个要格式化的值,参数的类型如下:
-
format_string
:字符串,用于指定格式化输出的格式。 -
*args
:可变参数,要格式化的值。
format
函数的返回值是格式化后的字符串。
示例:
format
函数具有非常丰富的用法和功能,下面将列举出一些常见的用法。
1. 基本的占位符替换:使用{}
作为占位符,并通过位置参数传递要替换的值。
示例:
name = 'Alice'
age = 25
formatted_string = "My name is {} and I am {} years old.".format(name, age)
print(formatted_string)
输出结果:
My name is Alice and I am 25 years old.
2. 使用位置参数:可以通过位置参数指定要替换的值的顺序。
示例:
name = 'Bob'
age = 30
formatted_string = "My name is {0} and I am {1} years old.".format(name, age)
print(formatted_string)
输出结果:
My name is Bob and I am 30 years old.
参数的数量可以是多个,但需要注意前后顺序对应。
3. 使用关键字参数:可以通过关键字参数指定要替换的值的字段名。
示例:
name = 'Charlie'
age = 35
formatted_string = "My name is {name} and I am {age} years old.".format(name=name, age=age)
print(formatted_string)
输出结果:
My name is Charlie and I am 35 years old.
4. 使用索引和字段名:可以在占位符中使用索引或字段名来引用要替换的值。
示例:
name = 'David'
age = 40
formatted_string = "My name is {0[0]} and I am {1[age]} years old.".format([name], {'age': age})
print(formatted_string)
输出结果:
My name is David and I am 40 years old.
5. 指定值的格式:可以通过格式规范语法来指定值的显示格式,如小数位数、对齐方式、填充字符等。
示例:
value = 123.45678
formatted_value = "{:.2f}".format(value)
print(formatted_value)
输出结果:
123.46
6. 使用名称或属性访问:可以通过名称或属性访问的方式来引用要替换的值。
示例:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person('Emily', 50)
formatted_string = "My name is {p.name} and I am {p.age} years old.".format(p=person)
print(formatted_string)
输出结果:
My name is Emily and I am 50 years old.
7. 嵌套的格式化:可以在格式规范语法中嵌套使用其他格式规范,实现复杂的格式化。
示例:
value = 1234.5678
formatted_value = "The value is {:{width}.{precision}f}".format(value, width=10, precision=2)
print(formatted_value)
输出结果:
The value is 1234.57
8. 对象的字符串表示:可以使用特殊的格式规范符号来访问对象的字符串表示,如!s
、!r
、!a
。
'!s'
会对值调用 str()
,'!r'
调用 repr()
,而 '!a'
则调用 ascii()
。
示例:
data = [1, 2, 3]
formatted_data = "Data: {!r}".format(data)
print(formatted_data)
输出结果:
Data: [1, 2, 3]
9. 指定进制:可以使用格式规范符号来指定整数的进制。
示例:
number = 42
binary = "{:b}".format(number)
octal = "{:o}".format(number)
hexadecimal = "{:x}".format(number)
print(binary, octal, hexadecimal)
输出结果:
101010 52 2a
10. 对齐文本:可以使用格式规范语法中的对齐符号来对文本进行对齐。
示例:
name = 'John'
formatted_name = "{:<10}".format(name)
print(formatted_name)
输出结果:
John
格式规范迷你语言
当涉及字符串格式化时,Python提供了一个强大而灵活的功能,即格式规范迷你语言。格式规范迷你语言允许您在格式化字符串时指定值的显示方式,例如小数位数、对齐方式、填充字符等。标准格式说明符的一般形式如下:
format_spec ::= [[fill]align][sign]["z"]["#"]["0"][width][grouping_option]["." precision][type]
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= digit+
grouping_option ::= "_" | ","
precision ::= digit+
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
sign 选项仅适用于数字类型,它可以是以下之一:
各种对齐选项的含义如下:
示例:
1. 不同进制的输出: 使用 #
选项,并在其后添加进制标志。
示例:
binary = 0b101
octal = 0o10
hexadecimal = 0x2A
float_number = 3.0
print("{:#b}".format(binary)) # 0b101
print("{:#o}".format(octal)) # 0o10
print("{:#x}".format(hexadecimal)) # 0x2a
print("{:#X}".format(hexadecimal)) # 0x2A
print("{:#.0f}".format(float_number)) # 3.
2. 数值格式化: 可以使用格式规范指定数值的显示方式,例如小数位数、千位分隔符等。
示例:
value = 12345.6789
formatted_value = "The value is {:.2f}".format(value)
print(formatted_value)
程序输出:
The value is 12345.68
3. 字符串对齐: 可以使用格式规范指定字符串的对齐方式,包括左对齐、右对齐和居中对齐。
示例:
text = 'Hello'
left_aligned = "{:<10}".format(text)
right_aligned = "{:>10}".format(text)
center_aligned = "{:^10}".format(text)
print(left_aligned)
print(right_aligned)
print(center_aligned)
程序输出:
Hello
Hello
Hello
4. 填充字符: 可以使用格式规范指定填充字符来填充对齐字符串。
示例:
text = 'Hello'
filled = "{:*^10}".format(text)
print(filled)
程序输出:
**Hello***
5. 宽度和精度控制: 可以使用格式规范指定字段的宽度和小数精度。
示例:
value = 3.14159
width_and_precision = "{:8.2f}".format(value)
print(width_and_precision)
程序输出:
3.14
6. 符号和正负号控制: 可以使用格式规范指定正负号的显示方式。
示例:
number = -42
sign = "{:+}".format(number)
print(sign)
程序输出:
-42
7. 十六进制和二进制表示: 可以使用格式规范指定整数的十六进制和二进制表示。
示例:
value = 42
hexadecimal = "{:x}".format(value)
binary = "{:b}".format(value)
print(hexadecimal)
print(binary)
程序输出:
2a
101010
8. 百分比表示: 可以使用格式规范将数值表示为百分比形式。
示例:
value = 0.25
percentage = "{:.2%}".format(value)
print(percentage)
程序输出:
25.00%
9. 科学计数法表示: 可以使用格式规范将数值表示为科学计数法形式。
示例:
value = 12345.6789
scientific = "{:.2e}".format(value)
print(scientific)
程序输出:
1.23e+04
注意事项:
-
format
函数通过占位符{}
来指定要替换的位置,可以使用位置参数或关键字参数来传递要格式化的值。 -
可以在占位符中使用索引或字段名来引用要替换的值。
-
可以通过格式规范语法来指定值的显示格式,如小数位数、对齐方式、填充字符等。
-
格式规范语法使用冒号
:
来指定,可以在占位符中使用{索引:格式}
或{字段名:格式}
的形式。 -
格式规范语法非常灵活,可以根据需要进行各种格式化操作,如数字的精度控制、日期的格式化、对齐方式等。
-
format
函数可以与其他字符串操作函数一起使用,如split
、join
等,以实现更复杂的字符串处理。