【问题标题】:outputting a string to terminal and otherwise in a correct format将字符串输出到终端,否则以正确的格式输出
【发布时间】:2016-03-11 14:00:38
【问题描述】:

我有一个字符串,我想将其输出到终端并随后写入文件。我已经设法在我的代码中做到了这一点,但我希望改变它的格式。

通常这是任何打印语句都会发生的情况:

 x = scatter
 print (x)

并输出到终端屏幕

 scatter

我的字符串格式如下

n = 1
x = 'scatter -n', n

将此语句打印到终端给出....

('scatter -n', 1)

我想要做的是能够打印一个字符串,其中它包含一个文本字符串的多个元素,然后是前面在上面的程序中声明的变量。我不确定如何设置语法,以便在我打印到终端时字符串显示如下:

scatter -n 1

此处提供的文本是我需要打印的完整字符串的一个较小示例。在其中我有大量在我的程序中定义的变量,但在这里我将把它们放在这篇文章中,因为这主要是我坚持的语法问题。我需要写的完整字符串如下:

test = '"scatter -n',n,'-A ',A,' -g ',g,' -t ',stime,' -i "-M',Mbu,' -rm ',rm,' -R ',R,' -v ',vrel,' -t -q',qout,' -a ',aoutu,' -e ',eout,' -r1 ',r1,' -t1 -q ',qin,' -a ',ainu,' -e ',ein,' -r1 ',r1,' -r2 ',r2,'"'

我如何在此处格式化字符串是我设法让它在当前迭代的程序中正常工作的唯一方法。

我们将不胜感激。

【问题讨论】:

  • 你搜索一个简单的:' '.join(['a', 'b', 'c']) 吗?或者,以您的示例' '.join(x)

标签: python string syntax output


【解决方案1】:
x = 'scatter -n', n

代码中的这一行没有连接,它正在打包一个元组。这就是括号出现在输出中的原因。此外,无论如何,如果不先转换它,您就不能将 int 类型连接到字符串上。

相反,您可以使用这种格式进行字符串转换和连接:

x = "scatter"
y = "-n"
z = 1
cmd = "{} {} {}".format(x, y, z)
print cmd

打印

scatter -n 1

【讨论】:

  • 这是我发现最适合我需要的解决方案,谢谢。
【解决方案2】:

您为什么将序列定义为隐式元组?

如果您想将其保留为列表/元组/任何集合,请考虑:

' '.join([str(i) for i in test])

提示:我使用str() 来说明最终出现在变量列表中的所有非字符串值。

否则,如果变量的数量是固定的,您可以只使用常规字符串格式'%s, ...' % (val, ...)

【讨论】:

    【解决方案3】:

    你好,你的意思是这样吗?

    test= test.replace(",", " ")
    

    【讨论】:

      【解决方案4】:
      print(x)
      ('scatter -n', 1)
      

      这是预期的行为,因为它声明为变量 x 中的元素元组。 而python按原样打印它。

      print(', '.join(str(i) for i in x))
      scatter -n, 1
      

      您实际上是在寻找 join() 方法。

      【讨论】:

        猜你喜欢
        • 2018-01-01
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多