如何在Python 3中的括号内打印两个变量?

时间:2015-04-24 09:10:22

标签: python variables printing var

我有这行代码:

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'

3 个答案:

答案 0 :(得分:3)

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

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

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

有关详细信息,请参阅printf-style String Formatting

  

注意

     

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

答案 1 :(得分:0)

这里你不需要在变量变量中使用'x'。 这将解决:

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

另外,.format优于%

请参阅: Python string formatting: % vs. .format

答案 2 :(得分:0)

您可以使用str.format

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE table_schema = "DATABASE_NAME"