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

Python 为什么我没有得到预期的输出?,python,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 =

我编写了以下简单的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 =

=
符号后显示结果,我缺少了什么?

从函数
add
内部返回x+y
,因此值
x+y
将被发送到您调用它的任何地方。然而,在呼叫站点,您只需添加(x,y);可以说,你没有“抓住”它。你可以试试:

result = add(x, y)
print(result)
或者简单地说:

print(add(x, y))

函数只打印方程部分。您永远不会打印Python表达式的结果<代码>返回与打印()不同

您可能会对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))

打印(添加(x,y))
?您从未对返回值进行过任何操作?如果您在交互模式下向解释器中键入表达式,Python将自动打印其值,但这只是一个交互操作<代码>返回和
打印
执行几乎不相关的作业。