今天看个代码,给我整不会了。
试了半天,终于大概知道是啥意思了。浅记录一下。这是个挺基础的知识点,主要是记录思考过程。
如何打印一个包含时间递增的列表:如:
['00:00', '00:01', '00:02', '00:03', '00:04', '00:05'.................'23:55', '23:56', '23:57', '23:58', '23:59']
re_list = []
# 分钟间隔
time_step = 1
for i in range(0, 24, 1):
for j in range(0, 60, time_step):
time_str = f'{i:0>2}:{j:0>2}' # 0>2是啥意思?
re_list.append(time_str)
print(time_str)
print(re_list)

f-string 这个玩意儿我倒是知道,也经常用。但是这个0>2就不明白了,也不像是三元表达式啊?
先去百度搜一搜看看。好像没找到(关键是不知道该搜什么好,关键词搜不对就挺难找到正确答案的)
那就自己试试吧。
a =1 # 先定义一个变量
print(f'{a:0>2}:{a:0>2}') # 再按上边的格式打印一下看看效果

打出来的效果是01:01
f’{a:0>2}:{a:0>2}'中
a、0、>、2这四个都能改,随便改改试试:
把0换成x,可以打印。如下:

把0换成6,也可以打印,如下

那么,盲猜一下,好像跟补齐相关。
如果是补齐,那么参与补齐的字符应该是哪个?大概率是0,因为01:01、x1:x1、61:61中,并没有出现源代码里边的2的字样。
以上,说明这东西大概是补齐对齐的意思,并且源码里的0,应该是用于补齐的字符。
如下:
打印输出内容,居然变成了001,那这个2大概率就是位数。也就是控制补全到多少位的那个东西。

为了证明猜想,再试一组:把2换成字符串。
如下,报错了。
因为对于补全,我们一般都会说:最少10位,不足的用0补全。
而不会说:最少a位,不足的用0补全。

以上,说明猜想基本2正确,2应该就是那个用于控制补全到多少位的那个东西。
大于号的作用就呼之欲出了,大概率是控制左补全还是右补全的
如下:
把大括号改成小于号,打印输出就变成了10000

贴个对比图:

以上,说明猜想基本3正确,>应该就是控制补全方向的。
f"{object:str:int}" # 官方文档太多了,没找到。等找到了再补上官网的语法
object:要被补全的内容。可以是数字、字符串(其他的列表、元组、集合、字典都不行)
str:用什么来补全。可以是数字、字符串(其他的列表、元组、集合、字典都不行)
int:补全多少位(注意,这个是加上原始内容之后补全的位数,是object+str合起来的位数)。只能是整数,不能是小数(这里有点好玩,我试了下负数,居然结果一样)

多说一句:居然还有^这个符号,代表居中。


参考资料:
Python格式化字符串f-string概览