%是字符串本身的操作符,跟print无关,前面是格式化字符串,后面是元组或其它可迭代对象组成的参数表。比如:
"server listen on %s, %d" % (self.addr[0], self.addr[1])
'COM%d' % i for i in range(1, 10)
而f"{var}"是print的格式化字符串,print(f"receive {len(msg)} bytes, msg: {msg}")
{!r}跟%r对应,直接反应对象本体,比如字符串会自带''。
{!r}用于format,%r和%配合
参考链接:https://blog.csdn.net/sinat_38682860/article/details/102822040
输出百分比:
print('distinct / sum: {:.2%}'.format(distinct_count / count))
{:.2%}表示输出保留2位小数。