【问题标题】:Python: '%2s'% doesn't work after breaking the rowPython: '%2s'% 在断行后不起作用
【发布时间】:2015-07-18 17:36:33
【问题描述】:

我需要产生具有指定空格数的输出。这是一个包含一些列的表,用于将输出保存到我​​使用的文件中:

save_line = ('%8s' % label[each_atom + str(int(k) + 1)] +
             '%10s' % str(int(i) + 1) +
             '\n' + 
             '%2s' % x[i] +
             '%20s' % y[i] +
             '%20s' %z[i] +
             '\n')

'%2s'%x[i] 不会在输出中产生两个空格。我不能在那里使用+" "+。有什么想法我能做什么?

这是我的代码的输出:

      C1         1
2.482705            1.332897           13.175184

最后是我的输出应该是这样的(这是来自另一个输入的示例,我的任务是在此基础上生成我的输出):

      C1         1
  2.42416980          4.14117720          4.71196000

在任何列之间更改任意数量的空格都没有问题。唯一不起作用的是每隔一行的第一个。数字不匹配并不重要。问题出在空格上。

【问题讨论】:

  • 你为什么不用str.format
  • 为我工作。你有示例输出吗?
  • 清理了您的代码。不清楚你在问什么。这个问题与您在此处添加的数据有什么关系吗?还是与'%2s' % x[i] 没有按照您的预期做有关?在这种情况下,x[i] 是什么?
  • 好的,现在可以了。抱歉有问题。那是我第一次尝试 Python。

标签: python numbers row spaces


【解决方案1】:

请结合这些模板

save_line = "%8s%10s\n%2s%20s%20s\n" % (
    label[each_atom + str(int(k) + 1)],
    str(int(i) + 1),
    x[i],
    y[i],
    z[i])

% 运算符的右侧应该是一个元组。您的值都不是元组(据我所知),这是获得您不期望的输出的好方法。如果您只想格式化一项:

print "Hello %s!" % ("world",)

注意结尾的逗号。这是因为

("World")

是一个字符串(用括号括起来),而

("World",)

是一个包含一项的元组。

【讨论】:

    【解决方案2】:

    但 '%2s'%x[i] 不会在输出中产生两个空格。我不能在那里使用 +" "+。有什么想法我能做什么?

    为什么? % 后面的数字是新字符串字段的大小。

    print '%3s' % 'why'
    >>why
    print '%4s' % 'why'
    >> why
    

    'why' 字符串 = 'why' 的大小为 4 个符号。 如果您使用“%4s”,则只有 1 个剩余空间可容纳 3 个字母的单词。

    另外,您可以使用“-”。 如果你的字符串是's'并且你使用'%-2s',你会得到新的字符串's',在你的字符串后面有1个空格。您也可以在字符串格式化任务中使用它。

    >>> print "%-5s%s" % ("N", "Q")
    N    Q
    >>> print "%5s%s" % ("N", "Q")
        NQ
    >>> print "%5s%5s" % ("N", "Q")
        N    Q
    >>> '%.1s' % 'Hello!'
    'H'
    >>> '%.2s' % 'Hello!'
    'He'
    

    你可以使用元组的值:

    >>> '%.*s' % (2, 'Hello!')
    'He'
    

    谢谢,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 2015-05-12
      • 1970-01-01
      相关资源
      最近更新 更多