为什么我没有得到预期的输出?

时间:2015-12-29 20:23:50

标签: python

我编写了以下简单的Python脚本:

def add(x,y):
    print '%d + %d = ' % (x,y)
    return x+y

def subtract(x,y):
    print '%d - %d = ' % (x,y)
    return x-y

def multiply(x,y):
    print '%d x %d = ' % (x,y)
    return x*y

def divide(x,y):
    print '%d / %d = ' % (x,y)
    return x/y

x = 8
y = 4

add(x,y)
subtract(x,y)
multiply(x,y)
divide(x,y)

问题是我没有得到每个操作的结果,输出如下:

8 + 4 = 
8 - 4 = 
8 x 4 = 
8 / 4 =

=符号后显示结果我错过了什么?

2 个答案:

答案 0 :(得分:1)

您的功能仅打印公式部分。您永远不会打印Python表达式的结果。 returnprint()不同。

您可能会对Python交互式解释器模式的行为感到困惑,其中任何表达式在>>>提示符处执行的结果是回显(除非它产生了特殊值None)。运行脚本不会这样做,表达式不会以这种方式自动回显。您需要明确打印结果:

def add(x,y):
    result = x + y    
    print '%d + %d = %' % (x, y, result)
    return result

然而,更好的设计是不在这些功能内打印。如果您想使用该功能并且打印等式和结果,您必须创建一个新功能。最好打印外部功能:

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

x = 8
y = 4

print '%d + %d = %d' % (x, y, add(x, y))
print '%d - %d = %d' % (x, y, subtract(x, y))
print '%d * %d = %d' % (x, y, multiply(x, y))
print '%d / %d = %d' % (x, y, divide(x, y))

答案 1 :(得分:0)

return x + y来自函数add内部,因此值x + y将被发送到您调用它的任何位置。但是,在呼叫网站,您只需拥有add(x, y);可以这么说,你并没有“抓住”它。你可以尝试:

result = add(x, y)
print(result)

或简单地说:

print(add(x, y))