【Python】关于 format() 函数的整理以及 f-string 功能
1.问题重述
传统的字符串拼接方法使用的时候不是很方便,这时候就考虑使用format()或者f-string处理
2. 用法汇总
Python中format()
方法用于格式化字符串,使其更易于阅读和理解。该方法可以接受不同类型的参数,如列表、元组、字典等,用于替换字符串中的占位符。
2.1基本用法:
# 使用位置参数替换占位符
print("Hello, {}!".format("World"))
# 使用索引号替换占位符
print("{1} is better than {0}".format("Java", "Python"))
# 使用关键字参数替换占位符
print("{name} is {age} years old".format(name="Alice", age=25))
输出:
“Hello, World!” - 使用位置参数替换占位符
“Python is better than Java” - 使用索引号替换占位符,按照索引号的顺序替换
“Alice is 25 years old” - 使用关键字参数替换占位符
2.2字段格式化:
# 设定填充字符和对齐方式
print("{:10}".format("hello")) # 左对齐
print("{:=^10}".format("hello")) # 居中对齐
print("{:>10}".format("hello")) # 右对齐
# 设置精度和宽度
print("{:.2f}".format(3.14159)) # 保留两位小数
print("{:10.2f}".format(3.14159)) # 占位符宽度为10,保留两位小数
左对齐
-
输出:"hello "
-
解释:”{:10}“中的”:"表示格式规范的开始,"10"表示占位符的宽度为10。这里的作用是告诉Python要对替换的字符串进行格式化,并确保输出的字符串长度为10,如果不够,则使用空格来填充。因此,输出字符串会左对齐并填充空格以满足宽度为10的要求。
-
注:这里是默认左对齐,也可以显示的:{:<10}".format(“hello”)
居中对齐
-
输出为:“=== hello ===”
-
解释:第一个”:“表示格式规范的开始,”=“表示用来填充空白的字符,”^"表示居中对齐,“10"表示字符串的宽度为10。因此,这个格式规范符号告诉Python对替换的字符串进行格式化,要求以”=“字符居中对齐,并确保输出的字符串长度为10,如果不够,则使用”="字符来填充。(居中对齐,=填充,长度为10)
右对齐
-
输出为:" hello"
-
解释:"{:>10}“中的第一个”:“表示格式规范的开始,”>"表示右对齐,"10"表示字符串的宽度为10。因此,这个格式规范符号告诉Python对替换的字符串进行格式化,要求以右对齐方式输出,并确保输出的字符串长度为10,如果不够,则在左侧使用空格来填充。
保留两位小数
- 输出为:输出为:3.14
- 解释:”."表示精度符号,"2"表示保留小数点后两位,"f"表示浮点数类型
2.3 新增功能(Python3):
# 使用f-string替代format方法,更加简洁
name = "Alice"
age = 25
print(f"{name} is {age} years old")
# 格式化字典
person = {'name': 'Bob', 'age': 30}
print(f"{ person['name'] } is { person['age'] } years old")
输出为:
“Alice is 25 years old”
“Bob is 30 years old”
2.4 return用法:
# 自定义类的格式化方法
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return 'Point({self.x}, {self.y})'.format(self=self)
point = Point(3, 4)
print(point)