2026年4月6日 研究日志¶
今日研究内容: 为BioMedEng会议撰写摘要(我为什么不休息?我老家没有过复活节的习惯嘞)。
今天也是一个不能随便向外面发的主题……本来做这个日志是记录自己每天的工作的,虽然想也不会有人看,但保密就是保密,马虎不得。所以今天来点别的:来总结一下Python中的输出格式化系统。
旧式%格式化¶
真是让人怀念……我最开始学python的时候就是这套方法。我其实也没有学很久,但具体是什么时候来着……反正那会Novel AI都还没出,那会Python2和Python3勉强还共存的时候。当然我学的当然是Python3的语法,毕竟Python2很快就要不支持了。说来惭愧,学了Python之后就彻底把Perl扔下了,现在几乎想不起来Perl的语法了,真是惭愧。
| 控制符 | 含义 |
|---|---|
%d |
整数 |
%f |
浮点数 |
%.4f |
保留 4 位小数 |
%6.2f |
宽度 6,小数 2 |
%e |
科学计数法 |
%s |
字符串 |
x = 3.1415926
print("%.2f" % x) # 3.14
print("%8.3f" % x) # 3.142 因为是宽度8所以前面有空格
print("%d" % x) # 3
print("%e" % x) # 3.141593e+00
3.14 3.142 3 3.141593e+00
str.format() —— 更强大的格式化¶
实际上%即使在我学习的时代已经是早期遗留了,我当时找的自学教材实在是太老了。不得不说AI时代后Python相关模块多等优势让学它的初学者一下子变多了,我这才有了学习Python的足够好的自学教材。str.format()我用的不熟练,主要是我开始知道有其他的输入方法的时候已经是f-string时代了(笑)
我用str.format()最舒服的一点是可以调整字符居中了,而且还可以填充字符,让输出的格式化更清晰,一些比较好用的格式化见下表:
| 符号 | 含义 |
|---|---|
| `` | 左对齐 |
> |
右对齐 |
^ |
居中 |
= |
数字符号靠左,其余右对齐 |
# "{:格式说明}".format(value)
"{:.4f}".format(3.14159) # 3.1416
'3.1416'
"{:>10.2f}".format(3.14) # ' 3.14'
' 3.14'
"{:^10}".format("Hi") # ' Hi '
' Hi '
"{:*^10}".format("hi")
'****hi****'
f-string(Python 3.6+)¶
说真的,f-string确实有趣,但我那时忙于生物那个方面的学术问题,实在是无暇学习,后来就错过了学习的时机。我也不是非常了解f-string的全部语法,所以让Microsoft CoPilot写了个示例,大家看看就好(笑)说起来我最开始用电脑的时候还是Windows95来着,那时候我才上小学,和微软从那时就结缘了,后来学术需要也接触了Ubuntu,目前还没正经使用过苹果的iOS系统,不知道以后会不会有机会。
# 示例数据
name = "Shixiang"
score = 92.4567
items = 1234567
pi = 3.1415926
# 1. 基本变量插值
print(f"Hello, {name}!")
# 2. 控制小数位
print(f"Score (2 decimals): {score:.2f}")
# 3. 宽度、对齐、填充
print(f"Centered: |{name:^20}|")
print(f"Left: |{name:<20}|")
print(f"Right: |{name:>20}|")
print(f"Fill & align: |{name:*^20}|")
# 4. 数字格式化
print(f"With commas: {items:,}")
print(f"Binary: {items:b}")
print(f"Hex: {items:#x}")
# 5. 表达式直接写在 f-string 中
print(f"pi * 2 = {pi * 2:.4f}")
# 6. 调用函数
def square(x):
return x * x
print(f"Square of 7 is {square(7)}")
# 7. 字典、列表等结构也能直接格式化
user = {"name": "Shixiang", "age": 30}
print(f"User: {user['name']} is {user['age']} years old.")
Hello, Shixiang! Score (2 decimals): 92.46 Centered: | Shixiang | Left: |Shixiang | Right: | Shixiang| Fill & align: |******Shixiang******| With commas: 1,234,567 Binary: 100101101011010000111 Hex: 0x12d687 pi * 2 = 6.2832 Square of 7 is 49 User: Shixiang is 30 years old.
今天的分享就到这里了,对了,这周四我有私事处理,可能周四就没有博客了。这里也没有评论区和游客计数器,有没有人看就不知道了,总之先通知了,下个工作日见!