加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

笨办法学Python 习题 21: 函数可以返回东西

发布时间:2020-12-17 16:59:11 所属栏目:Python 来源:网络整理
导读:你已经学过使用 = 给变量命名,以及将变量定义为某个数字或者字符串。接下来我们将让你见证更多奇迹。我们要演示给你的是如何使用 = 以及一个新的 Python 词汇 return 来将变量设置为“一个函数的值”。有一点你需要及其注意,不过我们暂且不讲,先撰写下面

你已经学过使用 = 给变量命名,以及将变量定义为某个数字或者字符串。接下来我们将让你见证更多奇迹。我们要演示给你的是如何使用 = 以及一个新的 Python 词汇 return 来将变量设置为“一个函数的值”。有一点你需要及其注意,不过我们暂且不讲,先撰写下面的脚本吧:

#?-*-?coding:utf-8?-*-
def?add(a,b):
????print?"ADDING?%d?+?%d"?%?(a,b)
????return?a+b??#return?返回a+b

def?subtract(a,b):
????print?"SUBTRACTING?%d?-?%d"?%?(a,b)
????return??a-b?#return?返回a-b

def?multiply(a,b):
????print?"MULTIPLYING?%d?*?%d"?%?(a,b)
????return?a?*?b?#return?返回a*b

def?divide(a,b):
????print?"DIVIDING?%d?/?%d"?%?(a,b)
????return?a?/?b??#return?返回a?/?b

print?"Les'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"

现在我们创建了我们自己的加减乘除数学函数: add,subtract,multiply,以及 divide 。重要的是函数的最后一行,例如 add 的最后一行是 return a + b ,它实现的功能是这样的:

1. 我们调用函数时使用了两个参数: a 和 b 。

2. 我们打印出这个函数的功能,这里就是计算加法( adding )

3. 接下来我们告诉 Python 让它做某个回传的动作:我们将 a + b 的值返回 (return) 。或者你可

以这么说:“我将 a 和 b 加起来,再把结果返回。”

4. Python 将两个数字相加,然后当函数结束的时候,它就可以将 a + b 的结果赋予一个变量。

和本书里的很多其他东西一样,你要慢慢消化这些内容,一步一步执行下去,追踪一下究竟发生了什么。

为了帮助你理解,本节的加分习题将让你解决一个迷题,并且让你学到点比较酷的东西。

结果:

Les's?do?some?math?with?just?functions
ADDING?30?+?5
SUBTRACTING?78?-?4
MULTIPLYING?90?*?2
DIVIDING?100?/?2
Age:?35,?Height:?74,?Weight:?180,?IQ:?50
Here?is?a?puzzle
DIVIDING?50?/?2
MULTIPLYING?180?*?25
SUBTRACTING?74?-?4500
ADDING?35?+?-4426
That?becomes:?-4391?Can?you?do?it?by?hand

加分习题

1. 如果你不是很确定 return 的功能,试着自己写几个函数出来,让它们返回一些值。你可以将任何可以放在 = 右边的东西作为一个函数的返回值。

2. 这个脚本的结尾是一个迷题。我将一个函数的返回值用作了另外一个函数的参数。我将它们链接到了一起,就跟写数学等式一样。这样可能有些难读,不过运行一下你就知道结果了。接下来,你需要试试看能不能用正常的方法实现和这个表达式一样的功能。

3. 一旦你解决了这个迷题,试着修改一下函数里的某些部分,然后看会有什么样的结果。你可以有目的地修改它,让它输出另外一个值。

4. 最后,颠倒过来做一次。写一个简单的等式,使用一样的函数来计算它。这个习题可能会让你有些头大,不过还是慢慢来,把它当做一个游戏,解决这样的迷题正是编程的乐趣之一。后面你还会看到类似的小谜题。

常见问题回答

为什么 Python 会把函数或公式倒着打印出来?

其实不是倒着打印,而是自内而外打印。如果你把函数内容逐句看下去,你会发现这里的规律。试着搞清楚为什么说它是“自内而外”而不是“自下而上”。

怎样使用 raw_input() 输入自定义值?

记得 int(raw_input()) 吧?不过这样也有一个问题,那就是你无法输入浮点数,所以你可以试着使用 float(raw_input()) 。

你说的“写一个公式”是什么意思?

来个简单的例子吧: 24 + 34 / 100 - 1023 —— 把它用函数的形式写出来。然后自己想一些数学式子,像公式一样用变量写出来。

#?-*-?coding:utf-8?-*-
def?fnc2(a,b,c,d):
????return?a?+?b?/?c?-?d
print?fnc2(24,34,100,1023)


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读