Python中format()方法里的{0:{w}d}是什么含义?
理解Python格式化字符串中的
{0:{w}d}语法 先看你提供的完整代码:
def print_formatted(number): width = len("{0:b}".format(number)) for i in range(1, number + 1): print("{0:{w}d} {0:{w}o} {0:{w}X} {0:{w}b}".format(i, w = width)) if __name__ == '__main__': n = int(input()) print_formatted(n)
你疑惑的{0:{w}d}是Python str.format()方法的嵌套格式化语法,拆解开每个部分就清楚了:
{0}:代表调用format()时传入的第0个位置参数,这里就是循环里的变量i。{w}:代表调用format()时传入的命名参数w的值,也就是前面计算的width(即输入数字的二进制长度),用来指定输出内容的总宽度。d:是格式说明符,指定把参数以十进制整数的形式输出。
合起来的意思就是:把i以十进制格式输出,并且让输出内容的总宽度等于width,如果数字本身的长度小于width,就用空格在左侧填充(默认右对齐),这样所有进制的输出就能整齐对齐。
同理,代码里的其他格式符对应不同进制的输出规则:
{0:{w}o}:将i以八进制格式输出,宽度为width{0:{w}X}:将i以大写十六进制格式输出,宽度为width{0:{w}b}:将i以二进制格式输出,宽度为width
内容的提问来源于stack exchange,提问作者Heet Shah
相关产品推荐
相关产品推荐

