艰难地学习Python:Ex21,打印输出与预期不同

时间:2017-07-14 08:30:53

标签: python

def add(a,b):
    print "Adding %d and %d" %(a,b)
    return a+b
def subtract(a,b):
    print "Subtracting %d from %d" %(a,b)
    return a-b
def multiply(a,b):
    print "Multiplying %d and %d" %(a,b)
    return a*b
def divide(a,b):
    print "Divide %d and %d" %(a,b)
    return a/b

print "Let's do some math"

age = add(30,5)
height = subtract(78,4)
weight = multiply(90,2)
iq= divide(100,2)

print "Age: %d, Height : %d, Weight: %d, IQ: %d" % (age, height, weight, iq)

print "Here's a puzzle"
what = add(age, subtract(height, multiply(weight, divide(iq,2))))
print "That becomes:", what, "Can you do it by hand?" #line25

输出:

让我们做一些数学

添加30和5

从4

减去78

乘以90和2

除以100和2

年龄:35岁,身高:74,体重:180,智商:50

这是一个难题

除以50和2

乘以180和25

从4500减去74

添加35和-4426

那变为:-4391你能用手做吗?

我的问题:我觉得,看看第25行的print命令,输出保持不变直到“这是一个谜题”。所以,输出应该是:

这是一个难题

那变为:

除以50和2

乘以180和25

从4500减去74

添加35和-4426

-4391你能手工完成吗?

因为,明确打印“那变成:”即将到来之前。那么,为什么最终输出会有所不同? 谢谢!

2 个答案:

答案 0 :(得分:0)

当你定义what你的函数时,使用所有的print语句。因此,每次调用函数时都会执行这些操作。当您说what = ...时,您正在调用addsubtractmultiplydivide函数,并且所有函数在执行时都会打印出一条语句。

要解决此问题,您应该在定义what之前打印“That Becomes”,我想您会看到您希望看到的内容。

答案 1 :(得分:0)

在每个函数中,都有一个print语句,一旦执行就会打印文本。

所以"什么"变量保存计算值,它将具有所有可打印语句