54.Python的def语句自定义函数

news2025/7/19 13:49:37

54.def语句自定义函数

文章目录

  • 54.def语句自定义函数
    • 1.课题导入—数学中的函数
      • 1.1 计算圆的面积
      • 1.2 计算不规则图形的面积
    • 2. 什么是函数
    • 3. 函数分类
      • 3.1 内置函数
      • 3.2 自定义函数
    • 4. 计算多个矩形的面积
    • 5. 自定义函数计算矩形的面积
    • 6.自定义函数的写法
      • 1.先写函数要实现的功能
      • 2.添加自定义函数语句
      • 3.调用函数
    • 7. 自定义函数的语法
    • 8.缩进语法汇总

1.课题导入—数学中的函数

1.1 计算圆的面积

圆的计算公式:π*r**2

r**2表示r的平方。

print(5**2)

【终端输出】

25

r**3表示r的3次方。

print(5**3)

【终端输出】

125

【体验代码】

# 圆的半径为3
r = 3
# 输出圆的面积
print(3.14*r**2)

【终端输出】

28.26

1.2 计算不规则图形的面积

在这里插入图片描述

【目标任务】

上图中大圆的半径为5,小圆的半径为2,计算黄色部分的面积。

【思路解析】

圆的面积计算有现成的函数:π*r**2

上图黄色部分是不规则图形,计算该部分的面积,没有现成的函数。

我们可以自定义一个函数计算黄色部分的面积:

自定义一个函数:黄色部分的面积=大圆的面积-小圆的面积

【体验代码】

# 大圆的半径为5
R = 5 
# 小圆的半径为2
r = 2

π = 3.14

# 自定义一个函数计算黄色部分的面积
s = π*R**2 - π*r**2
# 输出黄色部分的面积
print(s)

【终端输出】

65.94

【代码解析】

s = π*R**2 - π*r**2是我自定义的函数用于计算黄色部分的面积。

s 是函数名。

R r 是函数的参数。

数学中有现成的函数可以使用,也可以根据需求自己定义函数。

python和数学一样,有现成的函数可以使用,即Python的内置函数。

同理,也可以根据需求自己定义一个函数。

2. 什么是函数

【官方定义】

函数是将一段具有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。

【个人定义】

函数是指编写好的,能完成特定功能且可以重复调用的代码段。

3. 函数分类

Python中,函数有内置函数和自定义函数2种。

3.1 内置函数

内置函数是指像print、input、type等安装Python后就能直接使用的函数。

【print输出函数】

print(123)

【终端输出】

123

【type查看数据类型函数】

print(type(123))

【终端输出】

<class 'int'>

3.2 自定义函数

自定义函数是指:根据自己的实际需求自己编写一个函数。

4. 计算多个矩形的面积

【目标任务】

有5个矩形,长和宽分别为(8,4),(8,5),(8,6),(8,7),(8,8)。

编写代码输出这5个矩形的面积。

【第1个矩形】

x = 8 
y = 4
print(x*y)

【终端输出】

32

x存储的是矩形的长。

y存储的是矩形的宽。

矩形的面积=长*宽

【第2个矩形】

x = 8
y = 5
print(x*y)

【终端输出】

40

【第3个矩形】

x = 8 
y = 6
print(x*y)

【终端输出】

48

后2个矩形的面积计算代码省略。

我们发现上述的代码除了变量的值不一样,代码基本是相似的。

计算5个矩形的面积,我们要写5次类似的代码。

且我们要重新赋值5次。

这样的代码相当冗余。

如果我们用自定义函数只需要写一次就能解决这个问题,且代码更为简洁。

5. 自定义函数计算矩形的面积

【体验代码】

# def 自定义函数的关键字
# 这里要计算的是矩形面积,我将函数名命名为s
# l, w为自定义函数的形式参数
# def 语句以英文冒号结尾
def s (l, w) :
    # 函数体,即函数要实现的功能
    # 注意函数体前有4个空格的缩进
    # 这里的函数要实现的是计算面积功能
    # l表示长,w表示宽
    # 矩形面积= 长*宽
    s = (l*w)
    # 输出圆的面积
    print(s)
# 调用函数语法:函数名(参数)
# 这里的8,4 叫做实际参数,简称实参
# 8对应l,4对应w
s(8,4)

【终端输出】

32

length [leŋθ]:长度。

width [wɪdθ]:宽度。

【输出5个矩形的面积:长和宽分别为(8,4),(8,5),(8,6),(8,7),(8,8)】

# 自定义函数
def s (l, w) :    
    # 函数体
    s = (l*w)
    print(s)
# 调用函数
s(8,4)
s(8,5)
s(8,6)
s(8,7)
s(8,8)

【终端输出】

32
40
48
56
64

自定义函数的作用就是将需要执行的代码打包,进行封装,需要的时候直接调用即可。

这里封装的是计算矩形面积的代码。

6.自定义函数的写法

1.先写函数要实现的功能

我们自定义一个函数,要实现的功能是输出面积。

# 定义长和宽
l = 8
w = 4
# 矩形面积计算公式
s = l*w
# 输出面积
print(s)

【终端输出】

32

2.添加自定义函数语句

def s(l,w):
  1. def是自定义函数关键字。

  2. s是我定义的函数名,这里表示面积,大家根据自己的喜欢命名。

  3. l,w是函数s的参数,这里的参数只是一个符号,没有具体的数值,我们称之为形式参数,简称形参。

  4. def语句以英文冒号:结尾,且英文冒号后面有4个空格的缩进。

【第一次合并代码】

def s(l,w):
    # 矩形面积计算公式
    s = l*w
    # 输出面积
    print(s)

3.调用函数

s(8,4)

s是函数名。

84是要计算矩形的长和宽,是可以参与计算的具体数值,我们称之为实际参数,简称为实参。

【合并代码】

def s(l,w):
    # 矩形面积计算公式
    s = l*w
    # 输出面积
    print(s)
s(8,4)

【终端输出】

32

s(8,4)中的8和4可以替换成任何数值。

自定义函数的作用就是指我写了一个计算矩形面积的函数,我先把它封装起来:

下面的就是我要封装的部分:

def s(l,w):
   s = l*w
   print(s)

封装好了后,我需要的时候我直接传入参数即可调用函数。

s(8,4)

这里的8和4可以根据题目需要进行替换。

7. 自定义函数的语法

在这里插入图片描述

def语句自定义函数由7部分组成:

①关键字 def

define[dɪˈfaɪn]:定义。

def 是 define 的缩写,def为定义函数的固定格式。

②是函数名。

函数名和变量名一样,也是自己命名的。

③是形式参数。

④英文冒号:

⑤是四个空格的缩进。

⑥是函数体。函数体就是我们要实现的功能。

⑦return后接返回值。如果没有要返回的值,return可以省略。

在这里插入图片描述

【形象理解自定义函数】

在这里插入图片描述

我们可以把函数理解成一个破壁机。

破壁机的功能有炸果汁、煮粥、煮豆浆等等。

在使用破壁机的时候,我们并不需要去研究破壁机的发动机工作的原理。

我们需要研究的是如何操作破壁机。

破壁机就是一个将炸果汁、煮粥、煮豆浆等多个功能进行封装的函数。

【参数=食材】

参数等同于破壁机中加入的食材。

加橙子就榨橙汁。

加黄豆就煮豆浆。

【函数体=功能模式】

函数体就是破壁机的功能。

破壁机有果汁模式、豆浆模式、米糊模式等等,我们需要用什么功能就按对应的键即可。

破壁机的每一种模式就等同于函数体中的一段代码。

我写了3段代码,一段可以实现果汁模式、一段可以实现豆浆模式,一段可以实现米糊模式。

写好后我将3段代码打包封装好,你使用的时候需要果汁你就调用果汁模式,需要豆浆你就调用豆浆模式。

【return+变量名=成品】

return将函数的计算结果返回到调用处。

return后通常接一个变量名。

破壁机最终的成品是橙汁、豆浆。

变量等同于接收果汁、豆浆的杯子。

return+变量名就将榨好的果汁放到杯子里返回给使用者。

如果函数没有返回值,return可以省略不写。

没有返回值的意思是程序执行完毕之后,不需要给调用函数处提供数据。

【函数调用=模式选择】

函数调用要带着参数一起走。

就相当于选择豆浆模式后要在破壁机里加入黄豆。

8.缩进语法汇总

截止目前我们共学了4个需要英文冒号和4个空格缩进的语法:

  1. if 条件判断语句

在这里插入图片描述

  1. for 循环语句

在这里插入图片描述

  1. while循环语句

在这里插入图片描述

  1. 自定义函数

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android设计模式详解之策略模式

前言 定义&#xff1a;定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 使用场景&#xff1a; 针对同一类型问题的多种处理方式&#xff0c;仅仅是具体行为有差别时&#xff1b;…

电磁波的达朗贝尔方程 工程电磁场P25

我们有下述两个方程 记住一定是线性介质 称为电磁波的达朗贝尔方程&#xff0c;是两个非齐次方程 我们下面介绍达朗贝尔方程的解 我们就用最简单的场源举例 这个方程可以写成 动态位是r和时间的函数 我们可以在球坐标系下展开成 我们再做一下变换 现在如果在这个微分方程里面…

智牛股_第7章_OAuth2+Spring Security OAuth2+GateWay+Druid+Spring Data JPA

交易平台 - Day 7 文章目录交易平台 - Day 7学习目标第1章 OAUTH2统一认证1. 目标2. 分析3. 讲解3.1 传统登陆认证3.2 单点登陆认证3.3 OAuth2简介3.4 OAuth2角色3.5 OAuth2 协议流程3.6 授权类型3.7 授权码模式流程3.8 简化模式3.9 密码模式3.10 客户端模式3.11 Spring Securi…

分治法算法

目录 一 算法简介 ①算法定义 ②算法特征 ③算法编程 二 算法应用 汉诺塔 问题描述 问题解析 问答解答 快速幂 问题描述 问题解析 问题解答 三 分治思想设计排序算法 步骤解析 归并排序 归并排序的主要操作 归并排序与交换排序 归并算法的应用&#xff1a;逆…

前端基础(十六)_BFC、box-shadow(盒子阴影)、text-shadow(文字阴影)

什么是BFC&#xff1f; 1、块级格式化上下文&#xff0c;web页面可视化css视觉渲染的一部分&#xff0c;是页面中一个独立的渲染区域&#xff1b; 2、用于决定块盒子的布局和浮动相互影响范围的一个区域&#xff0c;可以改变父级元素的渲染规则&#xff1b; 3、无论里面怎么折…

轻松入门基因表达式编程 (GEP)

0 引言 基因表达式编程 GEP (Gene Expression Programming) 是一种基于生物基因结构和功能发明的一种新型自适应演化算法。GEP 是从遗传算法&#xff08;geneticalgorithms ,简称 GAs&#xff09;和遗传程序设计&#xff08;genetic pro2gramming ,简称 GP&#xff09;中发展而…

Android GB∕T 19056-2021 汽车行驶记录仪-定位性能测试

最近在做汽车相关的项目&#xff0c;然后要根据最新发布的新国标接入&#xff0c;我们这边之前没有做过的&#xff0c;我是第一个&#xff0c;好惨啊。远程调试不通&#xff0c;后来还专门到现场进行了测试&#xff0c;来到刚刚转正没几天就开始出差了&#xff0c;命太苦了。 …

前沿系列--Transform架构[架构分析+代码实现]

文章目录前言总体架构总体任务使用输入部分EmbeddingPosition Encodingwhy实现注意部分注意力机制/自注意力掩码作用如何工作形状解释完整实现多头注意力实现Norm处理FeedForward 以及连接编码器解码器中间层组装输出层模型组装总结前言 Transform这玩意的大名我想就不用我多说…

2022年笔记本电脑市场总结:华为份额激增95%,联想、苹果均下滑

2022年即将过去&#xff0c;又来到了进行今年笔记本市场总结的环节。 今年笔记本电脑行业依然没有突破天花板。可以看到&#xff0c;2022年上半年期间市场还保持着良好的增长态势&#xff0c;到了下半年则出现了需求萎靡的状态。从一整年的数据来看&#xff0c;笔记本电脑行业还…

安装nnpy出现错误以及解决

今天在安装P4C的时候&#xff0c;参考了这篇博客 P4语言环境安装-前端编译器p4c、后端编译器p4c-bm2-ss、交换模型bmv2、Tutorial-张华Guido 在进行到这一步时&#xff0c;出现了错误 #安装python-pip sudo apt install python-pip #我是安装在/home/guido(user_name)/路径下…

阿里云斩获2022全球分布式云大会两项大奖

12 月 21日&#xff0c;“2022 全球分布式云大会深圳站”正式举办。阿里云弹性计算团队凭借在算力领域的创新突破与全面的分布式云产品矩阵布局&#xff0c;荣获“2022 年度中国算力先锋 TOP3”、“2022 年度分布式算力市场领导力企业”两项大奖。 图一&#xff1a;2022年度中国…

智能勘探 | AIRIOT智慧油田管理解决方案

石油勘探和开采地处偏远地区&#xff0c;涉及面广且生产规模大。特殊的作业环境下&#xff0c;使得工作人员作业条件艰苦&#xff0c;仅靠人工值守难度很大&#xff0c;不可避免的遇到一系列硬核挑战&#xff1a; 1、设备维护难度较高&#xff1b; 2、采油厂分布地域广、分散…

北面羽绒服成热议产品,小红书透露出哪些营销新趋势?

小红书浓厚的种草氛围&#xff0c;为品牌创造了良好的营销环境&#xff0c;想要在小红书做好内容种草&#xff0c;需要洞察用户的真实需求来推广产品&#xff0c;实现营销效果的最大化。那如何发现小红书上的热门品类&#xff1f;制定品牌营销策略&#xff1f;挑选优质合作达人…

面试题题review

面试题 已知一个几乎有序的数组&#xff0c;几乎有序是指&#xff0c;如果把数组排好顺序的话&#xff0c;每个元素移动的距离可以不超过k&#xff0c;并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。给定一个int数组A&#xff0c;同时给定A的大小…

多准则决策问题评估方法 | 层次分析法(含代码)

目前多准则决策问题的评估方法主要分为定性分析方法和定量分析方法两类。定性分析方法主要包括专家咨询、熵权法、案例研究和德尔菲法等&#xff1b;定量分析法主要包括层次分析法、主成分分析法、因子分析法、模糊综合评价法、色综合评价法以及数据包络分析法&#xff08;DEA法…

启科 QuSaaS 真随机数解决方案与 Amazon Braket 结合实践

作者&#xff1a;1.丘秉宜&#xff0c;2.邵伟&#xff0c;3.黄文&#xff0c;4.郭梦杰 1.亚马逊云科技 HERO&#xff1b;2.开发者生态负责人&#xff1b;3.DEVOPS 工程师&#xff1b;4.资深研发工程师 1、概述 随机性&#xff08;Randomness&#xff09;是偶然性的一种形式&…

【JavaEE】Tomcat

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录【Tomcat】&#xff1a;http服务器THINK努力成为你想成为的人一定很酷&#xff01; 【Tomcat】&#xff1a;http服务器 http客户端就是我们平时使用的浏览器&#xff0c;但是我们还需要开发实现一个服务器来搭建网…

[FireshellCTF2020]Caas

打开界面&#xff0c;是一个运行代码的*框&#xff0c;然后我们输入 本来以为会是一个ssti模板&#xff0c;{{8*8}}却仍然还是报错&#xff0c;print echo 等输出都不行 只能分析分析报错信息看看有没有什么有用的东西 /tmp目录下的&#xff0c;class_7eamm1tu3.c后缀名是c&…

【论文阅读】(2020)Knapsack polytopes: a survey(上)

文章目录一、Abstract 摘要二、Introduction 介绍三、General polyhedral structure 一般多面体结构3.1 Basic properties 基本性质3.2 Covers 覆盖不等式四、Binary formulations based on strong covers 基于强覆盖的二元公式五、Lifting 提升5.1 Sequential up-lifting5.2 S…

2. bean加载控制

1. Controller加载控制 因为功能不同&#xff0c;要避免Spring错误的加载到SpringMVC的bean 1.1 Controller加载控制与业务bean加载控制 SpringMVC相关bean&#xff08;表现层bean&#xff09; Spring控制的bean 业务bean&#xff08;Service&#xff09; 功能bean&#xf…