当我打印此代码时,我试图摆脱括号和逗号,但找不到我需要合并.join()的位置,以便可以删除它们。 我真的很想弄清楚这一点,所以如果你能帮助我帮助推动我朝着正确的方向努力。谢谢
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
return x / y
print ("Calculator: ")
print ("add : 1")
print ("subtraction: 2")
print ("multiply: 3")
print ("divide: 4")
foo = input("math solution: ")
num1 = float(raw_input("number 1: "))
num2 = float(raw_input("number 2: "))
if foo == 1:
print (num1, "+", num2, "=", add(num1, num2))
elif foo == 2:
print (num1, "-", num2, "=", subtract(num1, num2))
elif foo == 3:
print (num1, "*", num2, "=", multiply(num1, num2))
elif foo == 4:
print (num1, "/", num2, "=", divide(num1, num2))
答案 0 :(得分:0)
您无需在代码中加入.join()
。只需从print
语句中删除括号,如下所示:
if foo == 1:
print num1, "+", num2, "=", add(num1, num2))
elif foo == 2:
print num1, "-", num2, "=", subtract(num1, num2)
elif foo == 3:
print num1, "*", num2, "=", multiply(num1, num2)
elif foo == 4:
print num1, "/", num2, "=", divide(num1, num2)
原因是在Python 2中,print
实际上并不像函数那样被调用;当你添加parens时,你只需将数据打包到tuple
s(用逗号分隔的不可变迭代集合)。然后print
语句打印这些元组,而不是您要打印的数据。
tl; dr从print
语句中删除了parens,你不小心添加了破坏打印格式的数据包:)
答案 1 :(得分:0)
您应该利用python的print 功能,而不是使用str.join
。要做到这一点,只需输入:
from __future__ import print_function
位于文件的顶部(如果存在模块doctring之后)。这将在python 2.6及更高版本上运行(IIRC)。在您的情况下发生的是当您在python2.x上运行代码时,
print (this, that, something_else)
被解释为print
语句,然后是tuple
来打印 - 因为元组用括号表示自己(字符串用引号表示自己),你得到输出中不需要的parens和引号。使用future语句启用print函数会将其转换为函数调用,该函数调用应该在python2.6 +和python3.x上执行正确的操作。
答案 2 :(得分:0)
您应该考虑使用sting格式。
在您的python版本中,您应该尝试
print "%d + %d = %d" % (num1, num2, , add(num1, num2))
和
print "{0} + {1} = {2}".format(num1, num2, add(num1, num2))
前者会起作用,但后者(我认为)更漂亮,但仅限于更新版本的Python。