龙空技术网

风变编程-python基础语法-第9关深夜食堂营业记

2ⁿeⁿ·FeatureLoops 47

前言:

此时大家对“python设计程序教程第2版答案”都比较看重,我们都需要知道一些“python设计程序教程第2版答案”的相关文章。那么小编同时在网摘上汇集了一些对于“python设计程序教程第2版答案””的相关文章,希望你们能喜欢,我们一起来学习一下吧!

1. 初识函数。

想必我们学习初中的时候,就有了解过什么是函数了吧,但是数学中的函数和编程中的函数不相同,形式并不是类似于 y = x + a

1.2 编程之中遵循DRY 原则,即 don't repeat yourself ! 之前有讲过减少重复可以使用循环,但是循环本身不就是一种函数吗,所以我们今天系统性地认识一下编程中的函数,如图示

1.3 深度理解函数

什么意思呢?我们之前所写的代码都是立即运行且只能被执行一次,而函数可以让我们整合打包好代码,以便这些代码能够随时被复用,这样能极大地减少代码冗余。

1.4 函数的结构

函数(Function)能实现的功能从简单到复杂,各式各样,但其本质是相通的,我们可以看作成三个部分。

在Python中,函数也是如此,“喂”给函数一些数据,它就能内部消化,执行相应的功能,最终给你“吐”出你想要的东西,就好比自动贩卖机一样。如图示

1.5 括号里放的东西,也就是我们需要输入给函数的数据,它在函数中被称作【参数】。【参数】指向的是函数要接收、处理怎样的数据(你也可以把它理解成自变量)。比如len()函数会根据括号里放的参数的不同,输出(返回)不同的值。如图示

2. 定义和调用函数

2.1 简单描述,如图示

2.2 系统性地描述,以及一些必要细节,如图示

2.3 用五六行代码举例一下,如图示

2.4 写一个函数模拟len()函数的功能,如图示,使用到了遍历

3. 函数有关参数类型

3.1 以深夜食堂为题,讲出一个故事,深夜食堂,开张!,如图示

3.2 一些要点

我们可以看到,这里定义了一个opening()函数,但是括号里没有带参数,原因是这个函数的功能是打印出固定的三句话,不需要参数的参与。需要强调的是,即便是没有参数,我们在调用函数的时候也不能省略括号,如此例中的opening()。在这个例子里,也不需要return语句,原因是这个函数直接在屏幕打印出内容,不需要返回值。事实上,没有return语句的函数,Python也会在末尾隐性地加上return None,即返回None值。

3.3 继续跟进,五行表示开胃菜和主食的代码,以及运行结果,如图示

3.4 如果每点一份开胃菜和一份主食都可以免费送一份甜品,那么代码可以写为,如图示

3.5 但是默认参数,也就是那个绿豆汤可以改变的,代码可以写为,如图示

这个是参数值的传递,python将银耳羹传递给了参数dessert

3.6 还有一个小小的知识点,那就是前缀星号 * ,代码如图示

3.7 元组是可以迭代的对象,如图示代码

3.8 print()函数参数细致的说明一下,如图示

3.8.1 用代码来说明一下这些参数,如图示

4. 返回多个值。

函数,不仅可以支持输入多个参数,而且也可以同时输出多个值吗。接下来,我们就来讲讲如何用return语句来返回多个值。依旧回到我们的食堂,后来你决定推出不定额的优惠券,到店顾客均可参与抽奖:5元以下随机赠送一碟小菜,5-10元随机赠送一碟餐前小菜和一个溏心蛋。那么代码就可以写成这样(注:随机功能我们可以用random模块中的random.choice()函数来),如图示

5. 多个函数间的配合

5.1变量作用域

如图示程序报错

报错信息指出问题出在第10行,sum_cost()函数内的变量variable_cost没有被定义,我们应该注意两点

第一点:一个在函数内部赋值的变量仅能在该函数内部使用(局部作用域),它们被称作【局部变量】,如cost()函数里的variable_cost。

第二点:在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域),它们被称作【全局变量】,如第一行的rent。

分析如图示

解决这个问题的办法有两个,1. 把所有变量都放到函数外部,2.利用global()函数

6. 函数的嵌套和整合

6.1 还是刚刚的案例,如图示

6.2 如图示,解释一下代码运行的机制

7. 本关课后小练习《年终奖有多少》

7.1 练习要求

眼看要过年了,深夜食堂经营的不错,你打算给员工发奖金犒劳一下。请你定义函数,当输入员工姓名和工作时长两个参数,即可打印出该员工获得多少奖金。

发放奖金的要求如下:

工作时长不满六个月,发放固定奖金500元。

工作时长在六个月和一年之间(含一年),发放奖金120元*月数(如8个月为960元)

工作时长在一年以上,发放奖金180元*月数 (如20个月为3600元)

7.2 书写代码

定义两个函数:第一个函数功能为根据工作月数返回奖金额,第二个函数功能为打印出'该员工来了XX个月,获得奖金XXX元'。

发放奖金的要求如下:

工作时长不满六个月,发放固定奖金500元。

工作时长在六个月和一年之间(含一年),发放奖金120元*月数(如8个月为960元)

工作时长在一年以上,发放奖金180元*月数 (如20个月为3600元)

最后传入参数('大聪',14)调用第二个函数,打印结果'大聪来了14个月,获得奖金2520元'

7.3 参考答案

——Directly made by 次级指数EX

标签: #python设计程序教程第2版答案