当前位置:网站首页 > Python编程 > 正文

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



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

每个函数都会有返回值,如果没有指定返回值,默认返回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中函数的定义与调用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • python 没有return返回none(python函数中没有return)2025-01-29 18:27:08
  • python3.8新建py文件(python3.8怎么新建文件)2025-01-29 18:27:08
  • py文件怎么生成exe(python生成pyc文件)2025-01-29 18:27:08
  • python中如何向字典中添加删除元素(python字典删除指定元素)2025-01-29 18:27:08
  • py文件怎么保存到桌面(怎么将python文件保存)2025-01-29 18:27:08
  • python函数的定义与应用(python程序中函数的定义)2025-01-29 18:27:08
  • python list字符转数字(python list字符串转list)2025-01-29 18:27:08
  • pivot函数 excel(pivot函数 python)2025-01-29 18:27:08
  • win32gui python 如何获取list 控件内容(python list中的list怎么获得)2025-01-29 18:27:08
  • python函数总结(python函数详解)2025-01-29 18:27:08
  • 全屏图片