什么是" return"声明说?

时间:2014-09-14 18:47:46

标签: python return

我正在通过艰难的方式学习Python,并且在练习21中使用了return语句。在浏览代码时,我理解return语句正在做什么,但我完全没有得到Zed Shaw的描述。我想确保我没有错过任何东西。练习有这个代码

def add(a, b):
    print "ADDING %d + %d" % (a, b)
    return a + b

def subtract(a, b):
    print "SUBTRACTING %d - %d" % (a, b)
    return a - b

def multiply(a, b):
    print "MULTIPLYING %d * %d" % (a, b)
    return a * b

def divide(a, b):
    print "DIVIDING %d / %d" % (a, b)
    return a / b


print "Let's do some math with just functions!"

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)


# A puzzle for the extra credit, type it in anyway.
print "Here is a puzzle."

what = add(age, subtract(height, multiply(weight, divide(iq, 2))))

print "That becomes: ", what, "Can you do it by hand?"

Shaw描述了这样的返回声明:

  
      
  1. 我们的函数使用两个参数调用:a和b。
  2.   
  3. 我们打印出我们的功能正在做什么,在这种情况下是“添加”。
  4.   
  5. 然后我们告诉Python做一些向后的事情:我们返回一个+ b的加法。您   可能会这样说,“我添加a和b然后返回它们。”
  6.   
  7. Python添加了两个数字。然后当函数结束时,任何运行它的行都会   能够将此a + b结果分配给变量。
  8.   

在第三位,当他说“做一些落后的事情”并且它返回“a和b”时(当他说'他们'时),似乎他正在返回表达式,或者只是两个变量,而不是两者的数值解。我不确定它在说什么。

2 个答案:

答案 0 :(得分:6)

本书中给出的第三步是不准确的(下面修改的单词用斜体字表示):

  
      
  1. 然后我们告诉Python做一些落后的事情:我们返回添加 a + b。你可能会这样说,“我添加一个和b然后返回他们。”
  2.   

这样写得更好:

  
      
  1. 然后我们告诉Python做一些向后的事情:我们返回添加 a + b的结果。您可能会这样说,“我添加a和b然后返回结果。”
  2.   

答案 1 :(得分:1)

不用担心,它并不太复杂。

return语句告诉计算机采用下一个值,然后返回指向调用函数的位置。

例如,假设您有一个功能:

def foo():
    return 5

然后你说:

x = foo()

然后你将x=5。因为foo() 返回 5。您可以将其视为代码主体中的foo()表达式替换为return所说的内容。

另一个例子:

def foo(a):
    return 5+a
x = foo(3)

然后你有x=8