我有这行代码:
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'
答案 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优于%
答案 2 :(得分:0)
您可以使用str.format
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = "DATABASE_NAME"