原文链接:http://learnpythonthehardway.org/book/ex21.html
你已经使用过 = 字符来给一个命名的变量赋予一个数值或者字符串。现在我打算再向你展示一个引起你头脑风暴的内容,我将展示如何使用 = 字符和Python中一个新的关键字reaturn来一个来自函数的返回值赋给一个变量。这里可能有一件事情你需要特别注意,但是你还是馅饼下面的代码输入先:
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 ,40)
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 becomer:" ,what ,"Can you do it by hand?"
我们现在可以用我自己写的 add ,subtract ,multiply ,divide函数来做数学运算。这里最重要的东西就是在 add 函数里面的最后一行 return a + b这句代码。它依次做了下面这些事情:
1、我们的函数要带有两个参数 a 和 b来被调用。
2、我们打印出我们函数正在做什么事情,在这里在做 “ADDING"操作。
3、然后我们让Python做一个回传的操作:我们返回了 a + b相加后的值。你可以像这样描述它,“我让 a 和 b相加然后返回其相加的结果”。
4、Python 会将这两个数值相加。然后当函数结束的时候,在调用了这个函数任何一行都可以将 a+b的结果赋给某一个变量。
和这本书中其他东西一样,你应该慢慢消化这些知识点,试着一步一步跟踪看看发生了什么。为了让你更好的理解这里需要你解决一个加分难题,它会让你学到一些很酷的东西。
输出的结果如下:
c:\>python ex21.py
Let's do some math with just functions!
ADDING 30 + 5
SUBTRACTING 78 - 40
MULTIPLYING 90 * 2
DIVIDING 100 / 2
Age: 35, Height: 38, Weight: 180, IQ: 50
Here is a puzzle.
DIVIDING 50 / 2
MULTIPLYING 180 * 25
SUBTRACTING 38 - 4500
ADDING 35 + -4462
That becomer: -4427 Can you do it by hand?
研究训练:
1、如果你还是无法确认return到底做了什么话,那你试着写一些你自己的函数让它们返回一些值。你可以返回任何可以放在 = 右边的任何东西。2、在脚本的最后面是一个加分题。我把一个函数返回来的值又作为另一个函数的参数。我将它们链接到了一起,就跟写数学等式一样。这看起来好像有点奇怪,不过你运行脚本的话会看到它输出结果。你要试试看能不能用正常的方法写一个和这个功能一样的公式。
3、一旦你写出了公式解决了这个难题,那么就修改其中的部分函数看看会发生什么。试着有姆地区的改变它来计算出其它的值。
4、最后,做相反的操作。写一个简单的数学公式然后用同样的方法调用函数来计算它。
这个练习可能会让你感到头大,不过不要急慢慢来,就像把它当做一个小游戏来对待。解决这种谜题是编程的乐趣之一。后面我们将给你更多这样的小谜题。