python--实验8 函数(2)
-
知识点
变量的作用域
- 定义:解释了局部变量和全局变量的概念。
- 局部变量:
- 局部变量是在函数内部定义的变量。它们只在该函数内部可见,一旦函数执行完毕,这些变量就会被销毁。
- 例子:在函数内部通过赋值创建的变量。
- 全局变量:
-
内置作用域(Built-in Scope)
- 内置作用域包含了Python解释器内置的函数和变量,如print()、len()等。这些可以在程序的任何地方访问。
-
非局部作用域(Nonlocal Scope)
- 非局部作用域是Python 3中引入的一个概念,用于在嵌套的函数中声明变量,使其在封闭作用域内可见,但又不属于全局作用域。
- 使用nonlocal关键字声明的变量,可以在嵌套函数外部的函数内部修改其值。
-
类作用域(Class Scope)
- 类作用域是类内部的变量,包括类属性和方法。这些变量对于类的实例和类方法是可见的。
-
模块作用域(Module Scope)
- 模块作用域是指模块内部定义的变量,这些变量在模块内部是全局的,但在模块外部则需要通过模块名来访问。
- global关键字:在函数内部使用global声明全局变量,允许修改全局变量。

- 变量作用域工具函数:globals()和locals()函数用于获取不同作用域内的变量字典。
- nonlocal关键字:Python 3.x引入,用于在嵌套函数中修改外层函数的变量。
函数嵌套定义
- 允许在一个函数内部定义另一个函数,称为内建函数。外部包含内建函数的称为外部函数。
函数的返回值
- 函数可以返回一个或多个值,如果没有return语句,默认返回None。
函数作为对象
- 赋值:可以把函数赋值给变量,通过变量名调用。
- 作为参数:可以把函数作为参数传递给另一个函数,如map函数。
- 作为返回值:函数可以返回另一个函数作为结果。
闭包
- 闭包是可以访问创建时所在作用域的函数,即使该作用域的代码已经执行完毕。就是能够读取其他函数内部变量的函数。


装饰器(Decorators)
- 装饰器是用于增加函数或方法功能的函数,本质上是闭包。
- 装饰器遵循开放封闭原则,可以在不修改源代码的情况下增加功能。


- 原理:
lambda函数
- 匿名函数,用于定义单行、简洁的函数。冒号前面是形参,冒号后面是返回值
- 可以包含多个参数,但只能有一个表达式。





- 可以作为函数的返回值或序列、字典的元素。

实验 函数(2)
一、实验目的:
- 掌握函数嵌套定义的用法
- 掌握特殊函数的定义和调用
- 掌握变量作用域
二、实验环境
本次实验需使用实验室提供的Windows主机环境+pycharm
三、实验内容
说明:基础题为必做题,提高题为选做题
1.(基础题)编写函数, 接收一个列表(包含10个整形数)和一个整形数k, 返回一个新列表.
函数需求:
- 将列表下标k之前对应(不包含k)的元素逆序;
- 将下标k及之后的元素逆序;
代码:
def reverse_sublists(lst, k): return lst[:k][::-1] + lst[k:][::-1] # 测试代码 original_list = [i for i in range(1, 11)] # 创建一个包含10个整数的列表 k = 3 new_list = reverse_sublists(original_list, k) print(new_list)2.(基础题)定义一个fn(n)函数,该函数可接收一个list作为参数,用于去除list中重复的元素。
程序代码:
def remove_duplicates(lst): return list(set(lst)) # 测试代码 original_list = [1, 2, 2, 3, 4, 4, 5, 6, 6, 7] new_list = remove_duplicates(original_list) print(new_list)3.(基础题)定义一个fn(n)函数,该函数返回一个包含n个不重复的0-100之间的整数的元组。
程序代码:
def unique_integers(n): return tuple(range(n)) # 测试代码 n = 100 result = unique_integers(n) print(result)4.(基础题)编程实现1~5各数的平方。用lambda函数实现
提示:python 内置函数map
代码:
squares = list(map(lambda x: x**2, range(1, 6))) print(squares)
5.(基础题)定义一个函数fib(n),用递归的方式实现斐波那契数列第n项求解,并输出斐波那契数列前20项的内容。
程序运行效果如下图所示:
代码:
def fib(n): if n
- 函数可以返回一个或多个值,如果没有return语句,默认返回None。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!























