【问题标题】:How do you print two variables within brackets in Python 3?如何在 Python 3 的括号内打印两个变量?
【发布时间】:2015-07-02 19:26:06
【问题描述】:

我有这行代码:

print ("(x %s)(x %s)") % (var_p1, var_p2)

但它不起作用,我是编程新手,我不知道我做错了什么。有没有高手给个简单的答案?

我希望它随机选择抛物线方程。例如(x-3)(x+1) 但是,它出现了错误消息:

Traceback (most recent call last): 
"File "E:/Python34/MyFiles/Math Study Buddy.py", line 26 in <module> 
print ("(x %s)(x %s)") % (var_p1, var_p2) 
TypeError: unsupported operand type (s) for %: 'NoneType' and 'tuple'

【问题讨论】:

  • 使用 str.format print ("(x {})(x {})".format(var_p1, var_p2))
  • 谢谢@Padriac Cunningham,它成功了!

标签: python variables printing var


【解决方案1】:

在 python 3 中,您需要将变量放在字符串后面的括号内:

>>> print ("(x %s)(x %s)"%(2, 3))
(x 2)(x 3)

注意在python 3中print是一个函数,你需要将字符串作为它的参数传递。所以你不能把你的变量放在函数之外!

更多详情请阅读printf-style String Formatting

注意

此处描述的格式化操作具有多种怪癖,这些怪癖会导致许多常见错误(例如无法正确显示元组和字典)。使用较新的str.format() 界面有助于避免这些错误,并且还提供了一种更强大、更灵活和可扩展的文本格式设置方法。

【讨论】:

    【解决方案2】:

    您不需要在此处使用“x”来替换变量。 这将解决:

    print ("(%s)(%s)") % (var_p1, var_p2)
    

    另外,.format 比 % 好

    见: Python string formatting: % vs. .format

    【讨论】:

    • 如前所述,在 python 3 中,您需要在要打印的整个内容周围加上括号。我这里用的是python2.7,所以你可能想稍微改一下。
    【解决方案3】:

    你可以使用str.format

    >>> var_p1 = 'test'
    >>> var_p2 = 'test2'
    >>> print(("(x {})(x {})".format(var_p1, var_p2))) 
    (x test)(x test2)
    

    【讨论】:

      猜你喜欢
      • 2015-03-31
      • 2015-11-14
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多