玩转字符串 2:字符串格式化高阶玩法
- 公众号:人生只不过是一场投资
- 温馨提示:每个笔记文档都会绑定一个笔记资源;手机端可能看不到,网页端请自行下载。
字符串处理,Python 编程的必备技能,这篇帮你更好地玩转字符串!
前言
在 Python 的世界里,字符串就像调皮的精灵,掌握了基础的操作,我们就能轻松地与它们互动。
但如果想要更好地驾驭这些精灵,展现更强大的字符串处理能力,我们需要更精妙的技巧,那就是——字符串格式化高阶玩法。
回顾:字符串格式化的三种方式
%
运算符:古老而经典,但灵活性稍逊一筹。
name = "Alice"
age = 30
print("My name is %s, and I'm %d years old." % (name, age))
format()
方法:更加灵活,可读性更强。
name = "Bob"
age = 25
print("My name is {}, and I'm {} years old.".format(name, age))
- f-string (格式化字符串):Python 3.6 版本引入,简洁优雅,表达力强。
name = "Charlie"
age = 28
print(f"My name is {name}, and I'm {age} years old.")
高阶玩法:让你的字符串格式化更上一层楼
1. 格式规格迷你语言:精细控制输出格式
format()
方法和 f-string 都支持使用格式规格迷你语言,对输出格式进行精细控制。
# 填充对齐:
print(f"{'Left':<10} | {'Right':>10}") # 左对齐,右对齐
print(f"{12345:=^10}") # 居中对齐,使用 '=' 填充
# 数字格式化:
pi = 3.1415926
print(f"保留两位小数:{pi:.2f}")
print(f"科学计数法:{pi:e}")
print(f"百分比格式:{0.75:.2%}")
# 日期时间格式化:
import datetime
now = datetime.datetime.now() # 获取计算机当前日期和时间
print(f"当前日期时间:{now:%Y-%m-%d %H:%M:%S}")
2. 自定义格式化:__format__()
魔法方法
通过自定义类的 __format__()
方法,可以实现自定义对象的格式化输出。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __format__(self, format_spec):
if format_spec == "name":
return self.name
elif format_spec == "age":
return str(self.age)
else:
return str(self)
person = Person("David", 40)
print(f"姓名:{person:name}")
print(f"年龄:{person:age}")
3. 格式化字符串字面值: f"..."
的灵活运用
name = "Eve"
greeting = f"Hello, {name}!"
# 多行 f-string:
long_string = f"""
This is a long string.
My name is {name}.
"""
# 表达式求值:
result = f"{10 + 5}"
总结
Python 字符串格式化是一个非常强大和灵活的工具,掌握了这些高阶玩法,你就可以像一个经验丰富的工匠一样,精雕细琢你的字符串,让你的代码更具表现力!
- 格式规格迷你语言:精细控制输出格式。
- 自定义格式化:
__format__()
魔法方法实现自定义对象的格式化输出。 - 格式化字符串字面值:
f"..."
的灵活运用。
记住,熟能生巧,多加练习才能将这些知识内化成你的编程技能,在 Python 的世界里自由驰骋!
标签:__,格式化,name,format,Python,age,玩转,字符串 From: https://blog.csdn.net/diy520just/article/details/139206240