我有一个代码,输出应该是这样的:
hello 3454
nice 222
bye 45433
well 3424
对齐和正确的理由给我带来了问题。我在我的字符串 {0:>7} 中尝试了这个,但是只有具有特定位数的数字才可以。其他数字或多或少会变得混乱。很明显理解他们为什么会搞砸,但我很难找到解决方案。我讨厌在所有地方都使用常量和 if 语句来解决这样一个小问题。有任何想法吗?
我有一个代码,输出应该是这样的:
hello 3454
nice 222
bye 45433
well 3424
对齐和正确的理由给我带来了问题。我在我的字符串 {0:>7} 中尝试了这个,但是只有具有特定位数的数字才可以。其他数字或多或少会变得混乱。很明显理解他们为什么会搞砸,但我很难找到解决方案。我讨厌在所有地方都使用常量和 if 语句来解决这样一个小问题。有任何想法吗?
你可以试试:
"{:>10d}".format(n)
其中 n 是填充左数的 int 和
"{:>10s}".format(s)
, 其中 s 是填充左字符串的字符串
编辑:选择 10 是任意的。我建议首先确定最大长度。
但我不确定这是你想要的。无论如何,这个链接包含一些关于字符串格式的信息:
你可以试试这个:
def align(word, number):
return "{:<10s}{:>10d}".format(word, number)
这将用 10 个空格填充您的字符串,用 10 个空格填充您的数字,给出所需的结果示例:
align('Hello', 3454)
align('nice', 222)
align('bye', 45433)
align('well', 3424)