python中函数的定义和调用(python中函数的定义与调用)

python中函数的定义和调用(python中函数的定义与调用)能够创建简单的自定义函数 掌握自定义函数的调用 理解函数的返回值 理解变量的作用域 理解全局变量与局部变量的含义 每个函数都会有返回值 如果没有指定返回值 默认返回 None 函数通过 return 语句将值 计算结果 返回给调用函数的代码行 如果没有 return 语句 默认返回 None 在函数调用的过程中 只要遇到 return 语句 就会返回当前的计算结果 并且结束本次的函数调用 所以

大家好,我是讯享网,很高兴认识大家。



能够创建简单的自定义函数,掌握自定义函数的调用。

每个函数都会有返回值,如果没有指定返回值,默认返回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分)

小讯
上一篇 2025-06-02 07:06
下一篇 2025-04-30 10:42

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/180861.html