【问题标题】:python 3 string formatting (alignment)python 3字符串格式化(对齐)
【发布时间】:2013-10-10 08:29:35
【问题描述】:

我有一个输出应该是这样的代码:

    hello   3454
    nice     222
    bye    45433
    well    3424

对齐和右对齐给我带来了问题。 我在我的字符串 {0:>7} 中尝试了这个,但是只有具有特定位数的数字才可以。其他数字或多或少会变得混乱。很明显理解他们为什么会搞砸,但我很难找到解决方案。我讨厌在所有地方都使用常量和 if 语句,只针对这样一个小问题。有什么想法吗?

【问题讨论】:

  • 能贴出代码吗?
  • 对不起.. 分配代码。我们不允许发帖。
  • 我相信你也不能要求作业答案。
  • 示例输出中的所有字段均未显示右对齐。也许你没有使用``发帖?否则你不需要任何格式,看起来你只需要打印一堆值。
  • @sPaz 只是要求一个简单逻辑的解决方案。这是一个普遍的问题。请尽量理解,不要造成不必要的冲突

标签: python string formatting text-alignment


【解决方案1】:

你可以试试:

"{:>10d}".format(n) 其中 n 是填充左侧数字的 int 和

"{:>10s}".format(s),其中 s 是填充左字符串的字符串

编辑:选择 10 是任意的。我建议先确定最大长度。

但我不确定这是你想要的.. 无论如何,这个链接包含一些关于字符串格式的信息:

String formatting

你可以试试这个:

def align(word, number):
    return "{:<10s}{:>10d}".format(word, number)

这将用 10 个空格填充您的字符串并用 10 个空格填充您的数字,给出所需的结果 示例:

align('Hello', 3454)
align('nice', 222)
align('bye', 45433)
align('well', 3424)

【讨论】:

  • 我试过这个,但它给了我相同的输出。 python中的这个对齐系统是如何工作的?
猜你喜欢
  • 2012-12-06
  • 2012-01-04
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多