当前位置: 首页 > news >正文

level2.5 函数高阶

一、课程内容

  • 返回值和return关键字
  • 求中位数
  • 局部变量和全局变量

二、学习目标

  • 理解函数返回值的意义、掌握return关键字的用法
  • 了解中位数的含义并定义函数求解中位数
  • 了解局部变量和全局变量的概念及global关键字的作用

三、知识点

1.返回值和return关键字

如果将函数比喻成一台榨汁机,那么它拥有的榨汁功能相当于函数体;实现榨汁功能需要水果原料,水果相当于函数的参数;榨汁成功后,果汁属于水果的提供者即函数的调用者,如何将果汁传递给调用者呢?使用return关键字!而传递的果汁也被称为函数的返回值。比如:

def juicer(fruit):juice = fruit + '汁'return juiceprint(juicer('苹果'))

传递“苹果”参数便得到“苹果汁”返回值。

跟函数定义时可以拥有任意多个、任意类型的参数类似,return关键字后面可以跟任意多个、任意类型的返回值。

2.求中位数

中位数是统计学中的重要概念,指一列有序数字最中间的那个,求解中位数要区分数列长度为奇数和偶数两种情况,代码如下:

# 参数:任意多个数
# 返回值:排序后的数列和中位数
def median(*b):li = sorted(b)# 获取“奇数”长度下唯一中间数的索引index = len(li) // 2if len(li) % 2 == 1:m = li[index]else:m = (li[index] + li[index - 1]) / 2return li, m

3.局部变量和全局变量

在函数内部定义的变量称为局部变量,它只能在该函数内使用,在函数运行之前或者完成运行之后是没有被定义的、也就是不存在的。

在函数外部定义的变量称为全局变量,全局变量的值可以在函数内部被获取。

如果在函数内、外定义了同名变量,虽然它们的名称一样,但却是两个完全不同的变量;建议避免这种全局变量和局部变量用同一个名称的命名方法,这样很容易让代码变得混乱难懂。

如果想要在函数内部使用全局变量,可以使用“global”语句。比如:

四、难点

返回值的意义:明确了为什么函数需要返回值、才能在合适的情况下使用return关键字向调用者返回合适的值。

五、延伸

return关键字除了用于向调用者返回特定的值外,还可以单独使用以结束函数的执行、跟break语句被执行时跳出循环结构的功能类似。比如:

def f():print('a')returnprint('c')
​
f()
执行结果为:a


文章转载自:
http://allision.apjjykv.cn
http://balame.apjjykv.cn
http://billposting.apjjykv.cn
http://adynamia.apjjykv.cn
http://anencephalia.apjjykv.cn
http://anthracoid.apjjykv.cn
http://capitalize.apjjykv.cn
http://ccst.apjjykv.cn
http://anticipant.apjjykv.cn
http://carpel.apjjykv.cn
http://bie.apjjykv.cn
http://abroad.apjjykv.cn
http://backwash.apjjykv.cn
http://belgique.apjjykv.cn
http://catena.apjjykv.cn
http://amylopsin.apjjykv.cn
http://capsulotomy.apjjykv.cn
http://banjo.apjjykv.cn
http://cheesecake.apjjykv.cn
http://camphoric.apjjykv.cn
http://blasphemous.apjjykv.cn
http://camber.apjjykv.cn
http://chasmophyte.apjjykv.cn
http://chimp.apjjykv.cn
http://bestiarian.apjjykv.cn
http://aldose.apjjykv.cn
http://booth.apjjykv.cn
http://airing.apjjykv.cn
http://chestertonian.apjjykv.cn
http://bucksaw.apjjykv.cn
http://www.dtcms.com/a/171371.html

相关文章:

  • 气泡图、桑基图的绘制
  • MySQL--索引精通详解
  • TestBench激励与待测
  • 驱动开发硬核特训 · Day 27(上篇):Linux 内核子系统的特性全解析
  • 引入spdlog后程序链接很慢
  • 系统思考:核心价值与竞争力
  • Python绘制误差棒:深入解析数据的不确定性
  • 比HashTable更先进的ConcurrentHashMap及其多线程协助扩容机制
  • 汇编常用语法
  • Spring的数据库编程
  • Linux:web服务
  • Warp调度器:藏在显卡里的时间管理大师
  • 【vue3】黑马程序员前端Vue3小兔鲜电商项目【八】
  • Flowable7.x学习笔记(十九)归还我的待办
  • ARM寻址方式
  • 【时时三省】(C语言基础)怎样定义和引用一维数组
  • 【Redis】Redis常用命令
  • 排序功法入门指南【江湖算法笔记】
  • 13.Excel:分列
  • 【论文阅读】LLMOPT:一种提升优化泛化能力的统一学习框架
  • Cona编译问题
  • 工程师 - What is EMF?
  • 工程师 - 小米汽车尾部主动扩散器
  • 文章记单词 | 第64篇(六级)
  • 湖仓一体架构解析:如何平衡数据灵活性与分析性能?
  • 五一作业-day01
  • 从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 3 |混合定位实战:Wi-Fi RTT / LoRa / BLE RSSI AoA 多源融合
  • Python3与Dubbo3.1通讯解决方案(dubbo-python)
  • java技术总监简历模板
  • device_create_sys_dev_entry