能够创建简单的自定义函数,掌握自定义函数的调用。
每个函数都会有返回值,如果没有指定返回值,默认返回None。
函数通过return语句将值(计算结果)返回给调用函数的代码行。如果没有return语句,默认返回None。
在函数调用的过程中,只要遇到return语句,就会返回当前的计算结果,并且结束本次的函数调用。所以,return语句有两个作用:1、返回值;2、结束调用的函数。
下面定义了一个简单的函数,接收姓氏和名字,返回完整的人名信息。
函数可以返回任何类型的值,比如:字典、列表等复杂的数据类型。
下面定义一个函数,用于接收姓名、年龄和身高三个参数,返回一个人的简介信息。
如果形参的数量比较多,定义函数的时候要写很长很长的参数列表,这样会显得比较麻烦。我们可以将多个相同属性的参数以列表的形式定义形参,调用的时候,实参也以列表的形式传入函数。
比如,向多位同学打招呼,可以定义以下函数:
思考并运行以下两段代码:
代码1:
代码2:
一般来说,在程序最开始处,且无缩进定义的变量,称为“全局变量”,在函数中定义的变量(有缩进)称为“局部变量”。全局变量的作用域是整个程序文件,为局部变量的作用域是函数内部。作用域可以理解成作用范围。
当函数调用运行到变量的时候,首先在函数内部查找局部变量,如果找到就直接使用;如果局部变量没找到,程序会到函数外面查找全局变量;如果全局变量也没找到,程序就会报错!
局部变量与全局变量重名演示代码:
上面的情况,只能在函数内使用全局变量,不能对全局变量进行修改操作。因为,在执行修改操作的时候,Python会将全局变量当做局部变量进行处理,但是函数内部又没定义这个变量,所以会报错!
如果想在函数内修改全局变量,需要使用“global”关键字,在函数内部将局部变量声明为全局变量。
在实际编程过程中,还会遇到一种情况:在函数内又嵌套定义了内层函数,在内层函数中,怎么使用外层函数定义的变量呢?
可以使用“nonlocal”关键字将内层函数的变量声明为非局部变量,从而可以使用外层函数的非全局变量,即:外层函数的局部变量。
在外层函数add中定了一个局部变量count,变量count的作用域是整个add函数内部,所以,在内层函数fun内部也是可以使用变量count,但也只是访问读取,不能修改count值。如果想在内层函数fun中修改count值,需要在内层函数fun中使用关键字“nonlocal”关键字将其声明为非局部变量,即:变量count不是内层函数fun的局部变量,使用上一层命名空间的局部变量。
注意:nonlocal只能声明上层空间的局部变量,不能声明全局变量,所以,被nonlocal声明的变量,既不是当前命名空间的局部变量,也不是全局变量,而是介于两者之间的命名空间。
思考并运行以下程序:
(1)对于局部变量作用域,输入下列代码,运行并纠错。
(2)如果在函数中定义的局部变量与全局变量同名,则调用函数时,局部变量屏蔽全局变量。输入下列代码,先预测输出结果,然后在运行代码。
Python是动态类型的编程语言,创建变量时不需要声明、指定数据类型,自定义函数时也是如此。但是,在Python3.5之后的版本就新增了对函数参数和返回值的类型指定和检查,新建变量也可以指定类型。
例如,下面自定义的函数中指定了形参a的类型为int,形参b的类型为str,并且指定返回值的类型为str。
实际上,在指定参数和返回值类型之后,就算传入的实参类型或返回值类型与指定的不同,程序也不会报错。毕竟Python的本质是动态类型语言。
(一)单选题:
1、关于以下程序,下列表述中错误的一项是( )。
A、demo(n)函数的功能是求n的阶乘
B、s是局部变量
C、n是形参
D、range()函数是Python的内置函数
2、运行以下程序,输出结果正确的是( )。
A、1
B、2
C、4
D、8
A、1 1
B、2 1
C、1 2
D、2 2
4、运行以下代码,正确的结果是( )。
A、0
B、1
C、2
(二、判断题)
1、函数体内必须包含return语句。( )
2、调用嵌套函数outer(),两次输出变量x的值是不一样的。( )
(三、编程题)
描述:设计一个算法,根据邮件的重量和用户是否选择加急计算运费。
计算规则:重量在1000克以内(含1000克),基本运费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算。如果用户选择加急,多收加急费5元。
函数名:postage(w:int, f:str) -> int
参数表:w代表邮件的重量(整数)。f表示是否加急的字符串,其中“y”和“n”分别表示加急和不加急。
返回值:返回运费金额(整数)。
示例:当w=1200,f=‘y’时,返回17。
根据上述计算规则,编写自定义函数实现程序功能,或补全代码。
-->参考答案往下翻<--
-->参考答案<--
一、单选题:
1~4:A、D、D、D
二、判断题:
1~2:错、对
三、编程题:
1、5+8 或等效答案(4分)
2、8 或等效答案(4分)
3、(w-1000)//500*4 或等效答案(4分)
到此这篇python中函数的定义和调用(python中函数的定义与调用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/pythonbc/38541.html