这是一个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}")
- 即使没有定义b,它也没有抛出错误。如果我在python中只做5:6,就会抛出一个错误。但是,如果我打印(f"{5:6}",它会打印在5之前添加6个空格并打印它。这里到底发生了什么,常见的用例是什么
- 打印报表中到底发生了什么?所有的o,X和b都做什么?为什么一个活动的{}中有一个{},它做什么
格式规范迷你语言
"格式规范"用于包含的替换字段在格式字符串中定义如何显示各个值(请参阅格式化字符串语法和格式化字符串文字(。他们可以也可以直接传递给内置的format((函数。每个formattable类型可以定义格式规范的方式解释。
可用的整数表示类型有:
类型 | 含义 |
---|---|
'b' | 二进制格式。输出基数为2的数字。 |
'd' | 十进制整数。输出基数为10的数字。 |
'x' | 十六进制格式。输出以16为底的数字,使用小写字母表示9以上的数字。 |
'X' | 十六进制格式。输出以16为底的数字,使用大写字母表示9以上的数字。如果指定了"#",前缀"0x"也将大写为"0x"> |
'n' | 编号。这与"d"相同,只是它使用当前区域设置插入适当的数字分隔符 |
无 | 与'd'相同 |