了解一种不常见的python语法



这是一个hackerbank实践问题https://www.hackerrank.com/challenges/python-string-formatting/problem。这实际上不是一个难题,但讨论中发布的一个解决方案令人困惑。我正在添加他们的功能,以完成以下操作:

def print_formatted(number):
p = len(f"{number:b}")
for i in range(1,number+1): print(f"{i: >{p}} {i: >{p}o} {i: >{p}X} {i: >{p}b}")
  1. 即使没有定义b,它也没有抛出错误。如果我在python中只做5:6,就会抛出一个错误。但是,如果我打印(f"{5:6}",它会打印在5之前添加6个空格并打印它。这里到底发生了什么,常见的用例是什么
  2. 打印报表中到底发生了什么?所有的o,X和b都做什么?为什么一个活动的{}中有一个{},它做什么

格式规范迷你语言

"格式规范"用于包含的替换字段在格式字符串中定义如何显示各个值(请参阅格式化字符串语法和格式化字符串文字(。他们可以也可以直接传递给内置的format((函数。每个formattable类型可以定义格式规范的方式解释。

可用的整数表示类型有:

字符。在打印之前,将整数转换为相应的unicode字符八进制格式。输出以8为基数的数字。
类型 含义
'b' 二进制格式。输出基数为2的数字。
'd'十进制整数。输出基数为10的数字。
'x'十六进制格式。输出以16为底的数字,使用小写字母表示9以上的数字。
'X'十六进制格式。输出以16为底的数字,使用大写字母表示9以上的数字。如果指定了"#",前缀"0x"也将大写为"0x">
'n'编号。这与"d"相同,只是它使用当前区域设置插入适当的数字分隔符
与'd'相同

最新更新