书接上回html
看到工程师李雷能用一行命令,更新flutter工程下全部图标,python
韩梅梅深入的体会到,这(zhe)门(ge)语(nan)言(ren)如此优秀,必定不能错过。post
因而找到李雷:spa
韩梅梅:“李雷,上次见到你用python更新图标,感受好棒啊”
李雷:“Python确实是很好用的”
韩梅梅:“我能学会吗”
李雷:“有我在,怎么可能学不会呢?咱们先从最简单的Hello world开始吧”
......
复制代码
通过一通折腾,韩梅梅望着屏幕有些不满设计
第1次 Hello world
第2次 Hello world
...
第8次 Hello world
第9次 Hello world
第10次 Hello world
第11次 Hello world
第12次 Hello world
韩梅梅:“怎么不齐呢,好心塞”
李雷:“别担忧,刚才咱们用的f-string,它提供了固定宽度的格式化方法,只要在须要固定宽度的变量后面加上冒号和表明宽度数字就能够了。”
复制代码
def without_fix(base_index):
i = 0
while i < ROW_COUNT:
print(f'第{base_index+i}次 Hello world')
i += 1
复制代码
def with_fix2(base_index):
i = 0
while i < ROW_COUNT:
print(f'第{base_index+i:2}次 Hello world with_fix2({base_index})')
i += 1
复制代码
...
第 8次 Hello world with_fix2(8)
第 9次 Hello world with_fix2(8)
第10次 Hello world with_fix2(8)
第11次 Hello world with_fix2(8)
第12次 Hello world with_fix2(8)
第13次 Hello world with_fix2(8)
...
韩梅梅:“这个 ‘第 8次’里面8前面空了个位置,8又不能居中,好心塞”
复制代码
韩大设计师的心,真的是,很容易塞啊。code
不过,这难不倒李雷,通过一番努力终于知足了韩梅梅。htm
第08次 Hello world with_fix02(8)
第09次 Hello world with_fix02(8)
第10次 Hello world with_fix02(8)
第11次 Hello world with_fix02(8)
第12次 Hello world with_fix02(8)
第13次 Hello world with_fix02(8)
韩梅梅:“舒服,雷哥好棒,你是怎么作到的”
李雷:“你看看我改的地方就明白了,第{base_index+i:02}次里面的0表明用0填充空位。”
复制代码
print(f'第{base_index+i:02}次 Hello world with_fix02({base_index})')
复制代码
其实咱们还能够作的更好。让python本身判断最大宽度是多大。文档
def with_auto_fix(base_index):
MAX_NUM = base_index+ROW_COUNT
MAX_WIDTH = len(f"{MAX_NUM}")
i = 0
while i < ROW_COUNT:
print(f'第{base_index+i:0{MAX_WIDTH}}次 Hello world with_auto_fix({base_index})')
i += 1
复制代码
没错,f-string 里的宽度能够用变量替代 多亏平时学的扎实,凭借对以前看过的f-string官方文档的记忆,get
李雷又为韩梅梅展现了f-string 固定宽度的进阶用法string
def fix_float():
percent = .01987654321
print(f"{percent:010.3%}\t-浮点数-保留3位小数位百分比,固定宽度10")
print(f"{percent:010.3f}\t-浮点数-固定宽度10,保留3位小数")
print(f"{percent:010.5f}\t-浮点数-固定宽度10,保留5位小数")
print(f"{1.1:010.5f}\t-浮点数-固定宽度10,保留5位小数")
复制代码
看到各类输出都能变得干净整齐,韩梅梅终于心情舒畅了。
00001.988% -浮点数-保留3位小数位百分比,固定宽度10
000000.020 -浮点数-固定宽度10,保留3位小数
0000.01988 -浮点数-固定宽度10,保留5位小数
0001.10000 -浮点数-固定宽度10,保留5位小数
韩梅梅:“雷哥,我想平时在家也能练习python,但是我家里的电脑没有安装python”
李雷:“要不我周末去帮你装一下?”
...
复制代码
且不提李雷和韩梅梅下面作了什么,咱们回顾一下完整代码:
#!/usr/bin/env python3
ROW_COUNT = 6
def without_fix(base_index):
# 宽度不固定
i = 0
while i < ROW_COUNT:
print(f'第{base_index+i}次 Hello world')
i += 1
def with_fix2(base_index):
# 固定宽度2
i = 0
while i < ROW_COUNT:
print(f'第{base_index+i:2}次 Hello world with_fix2({base_index})')
i += 1
def with_fix02(base_index):
# 固定宽度2,前面不足的话补0
i = 0
while i < ROW_COUNT:
print(f'第{base_index+i:02}次 Hello world with_fix02({base_index})')
i += 1
def with_auto_fix(base_index):
# 自动判断宽度
max_num = base_index+ROW_COUNT
max_width = len(f"{max_num}")
i = 0
while i < ROW_COUNT:
print(
f'第{base_index+i:0{max_width}}次 Hello world with_auto_fix({base_index})'
)
i += 1
def fix_fmts():
# 汇总
number = 123
print(f"{number:10}\t-整数,固定宽度10")
print(f"{number:010}\t-整数,固定宽度10,前面不足补0")
percent = .01987654321
print(f"{percent:10.3%}\t-浮点数-保留3位小数位百分比,固定宽度10")
print(f"{percent:010.3%}\t-浮点数-保留3位小数位百分比,固定宽度10,前面不足补0")
print(f"{percent:10.3f}\t-浮点数-固定宽度10,保留3位小数")
print(f"{percent:010.3f}\t-浮点数-固定宽度10,保留3位小数,前面不足补0")
print(f"{percent:10.5f}\t-浮点数-固定宽度10,保留5位小数")
print(f"{percent:010.5f}\t-浮点数-固定宽度10,保留5位小数,前面不足补0")
print(f"{1.1:10.5f}\t-浮点数-固定宽度10,保留5位小数")
width = 10
print(f"{1.1:0{width}.5f}\t-浮点数-经过变量指定宽度10,保留5位小数,前面不足补0")
if __name__ == "__main__":
print('====================')
print('-- without_fix(8) --')
without_fix(8)
print('-- without_fix(98) --')
without_fix(98)
print('-- with_fix2(8) --')
with_fix2(8)
print('-- with_fix2(98) --')
with_fix2(98)
print('-- with_fix02(8) --')
with_fix02(8)
print('-- with_fix02(98) --')
with_fix02(98)
print('-- with_auto_fix(8) --')
with_auto_fix(8)
print('-- with_auto_fix(98) --')
with_auto_fix(98)
print('-- fix_fmts() --')
fix_fmts()
print('===============')
复制代码