Python中函数的分类、创建和调用,你真的懂了吗

news2024/10/2 1:32:30

文章目录

  • 前言
  • 一、函数分类
  • 二、创建函数
  • 三、调用函数


前言

  在前面的博客中,所有编写的代码都是从上到下依次执行的,如果某段代码需要多次使用,那么需要将该段代码复制多次,这种做法势必会影响开发效率,在实际项目开发中是不可取的。那么如果想让某一段代码多次使用,应该怎么做呢?
在这里插入图片描述

  在Python中,提供了函数解决这种问题。我们可以把实现某一功能的代码块定义为一个函数,然后在需要使用的时候,随时调用即可,十分方便。对于函数,简而言之就是可以完成某项工作的代码块,有点类似于积木块,可以反复使用
  接下来就对Python中函数的分类、创建及调用进行详细介绍。


一、函数分类

在Python语言中将函数分为两类:

  1. 内置标准函数。比如,我们之前接触的用于输出的 print() 函数,用于输入的 input() 函数及用于生成一系列整数的 range() 函数。这些都是Python内置的标准函数,是前辈已经写好的,可以直接使用。
  2. 自定义函数。说通俗点,就是自己创建的函数。即通过将一段有特定功能、可以重复使用的代码定义为函数,来达到一次编写、多次调用的目的。使用函数可以提高代码的重复利用率。

说明这里对内置的标准函数不做研究,接下来重点要介绍的就是自定义函数该如何创建及调用


二、创建函数

  创建函数也称为定义函数,可以理解为创建一个具有某种用途的工具。创建函数需要使用 def 关键字实现,具体的语法格式如下:

def functionname([parameterlist]):
	['''comments''']
	[functionbody]

参数说明

  • functionname:函数名称,在调用函数时使用。函数名称的命名应遵循标识符命名规则,如果有多个单词,每个单词用下划线_连接。
  • parameterlist:可选参数,用于指定向函数中传递的参数。如果有多个参数,各参数间使用逗号 “,” 分隔。如果不指定,则表示该函数没有参数,在调用时也不指定参数。

注意:即使函数没有要传递的参数,也必须保留一对空的 “()”,否则会报错。如下图所示:

在这里插入图片描述

  • ‘’‘comments’‘’:可选参数,表示为函数指定注释,也称为 Docstrings(文档字符串),其内容通常是说明该函数的功能、要传递的参数的作用等,可以为用户提供友好提示和帮助的内容。

说明在定义函数时,如果指定了 ‘’‘comments’‘’ 参数,那么在调用函数时,可以通过 “函数名. __doc__” (doc左右各两个下划线)进行获取,比如下图代码所示。

在这里插入图片描述

  • functionbody:可选参数,用于指定函数体,即该函数被调用后,要执行的功能代码。如果函数有返回值,可以使用 return 语句返回。

注意:函数体 functionbody 和注释 '''comments''' 相对于 def 关键字必须保持一定的缩进,否则会报错如下图所示。

在这里插入图片描述

说明如果想定义一个什么也不做的空函数,可以使用 pass 语句作为占位符,或者添加注释,但是注释一定要是三引号包裹的注释,而不是 # 开头的单行注释,比如下图代码所示。

在这里插入图片描述


三、调用函数

  调用函数也就是执行函数。如果把创建的函数理解为创建一个具有某种用途的工具,那么调用函数就相当于使用该工具。调用函数的基本语法格式如下:

functionname([parametersvalue])

参数说明

  • functionname:函数名称,要调用的函数名称必须是已经创建好的
  • parametersvalue:可选参数,用于指定各个参数的值。如果需要传递多个参数值,则各参数值间使用逗号 “,” 分隔。如果该函数没有参数,则直接写一对小括号即可。

代码示例如下图所示:

在这里插入图片描述

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

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

相关文章

特权级那些事儿-实模式下分段机制首次出现的原因

前言: 操作系统的特权级模块在整个操作系统的学习中应该算的上是最难啃的了,提到特权级就要绕不开保护模式下的分段机制;如果想要彻底弄明白就要对比实模式下的分段机制有什么缺陷。这就衍生出很多问题如:什么是实模式&#xff1f…

Nacos 注册中心核心能力以及现实原理解析

Nacos注册中心主要分两方面解析:动态服务发现和Nacos实现动态服务发现的原理; 动态服务发现 服务发现是指使用一个注册中心来记录分布式系统中的全部服务的信息,以便其他服务能够快速的找到这些已注册的服务。 在单体应用中,DNS…

MINE: Towards Continuous Depth MPI with NeRF for Novel View Synthesis

MINE: Towards Continuous Depth MPI with NeRF for Novel View Synthesis:利用NeRF实现新视图合成的连续深度MPI 摘要:在论文中,提出了MINE,通过从单个图像进行密集3D重建来执行新的视图合成和深度估计。通过引入神经辐射场&…

05-Oracle中的对象(视图,索引,同义词,系列)

本章主要内容: 1.视图管理:视图新增,修改,删除; 2.索引管理:索引目的,创建,修改,删除; 3.同义词管理:同义词的作用,创建&#xff0…

如何通过websoket实现即时通讯+断线重连?

本篇博客只是一个demo,具体应用还要结合项目实际情况,以下是目录结构: 1.首先通过express搭建一个本地服务器 npm install express 2.在serve.js中自定义测试数据 const express require(express); const app express(); const http req…

详细stm32驱动SDRAM的注意事项以及在keil中的使用

SDRAM的主要参数: 容量:SDRAM的容量是指其可以存储的数据量,通常以兆字节(MB)或千兆字节(GB)为单位。 时钟频率:SDRAM的时钟频率指的是其内部时钟的速度,通常以兆赫&…

94. 二叉树的中序遍历

94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 (左根右)。 首先我们需要了解什么是二叉树的中序遍历:按照访问左子树——根节点——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候我们按照同样的方式遍历…

MQTT协议-订阅主题和订阅确认

MQTT协议-订阅主题和订阅确认 SUBSCRIBE——订阅主题 订阅是客户端向服务端订阅 订阅报文 订阅报文与CONNECT报文类似,都是由固定报头可变报头有效载荷组成 固定报头比较简单,也是由两个字节组成,第一个字节为82,第二个字节是…

像素密度提升33%,Quest Pro动态注视点渲染原理详解

在Connect 2022上,Meta发布了Quest Pro,并首次在VR中引入动态注视点渲染(ETFR)功能,这是一种新型图形优化技术,特点是以用户注视点为中心,动态调节VR屏幕的清晰度(注视点中心最清晰、…

Oracle VM VirtualBox6.1.36导入ova虚拟机文件报错,代码: E_INVALIDARG (0x80070057)

问题 运维人员去客户现场部署应用服务,客户是windows server 服务器(客户不想买新机器),我们程序是在linux系统里运行(其实windows也可以,主要是为了保持各地环境一致方便更新和排查问题)我们使…

吐血整理学习方法,2年多功能测试成功进阶自动化测试,月薪23k+......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 测试进阶方向 测试进…

[Gin]框架底层实现理解(三)

1.engine.Run(port string) 这个就是gin框架的启动语句,看看就好了,下面我们解析一下那个engine.Handler() listenandserve 用于启动http包进行监听,获取链接conn // ListenAndServe listens on the TCP network address addr and then ca…

【SOP 】配电网故障重构方法研究【IEEE33节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Java中wait和sleep区别

文章目录1. Java中wait和sleep区别2. wait和sleep所属方法的不同3. wait的Demo3.1 没有synchronized同步代码块异常3.2 wait使用Demo4. sleep的Demo1. Java中wait和sleep区别 sleep属于Thread类中的static方法;wait属于Object类的方法sleep时线程状态进入TIMED_WAI…

java 如何实现在线日志

如何采集springboot日志至web页面查看 实现方案 基于Filter方式,在日志输出至控制台前,LoggerFitler 拦截日志通过websocket推送至前台页面 实现逻辑: LoggerFilter采集日志添加至LoggerQueue队列, LoggerConsumer 从LoggerQueue中采集推送至前台页面 #mermaid-s…

LearnOpenGL-光照-3.材质

本人刚学OpenGL不久且自学,文中定有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/LearnOpenGLProject 文章目录材质例子1代码相关光照太强了例子2例子3: 不同的光源颜色材质 引出材质 如果我们想要在OpenGL中模拟…

TTS | 语音合成常见数据集及数据格式详情

linkLJSpeech网址 : The LJ Speech Dataset (keithito.com)数据集描述:数据集大小:2.6GB这是一个公共领域的语音数据集,由 13,100 个简短的音频剪辑组成 一位演讲者阅读 7 本非小说类书籍的段落。为每个剪辑提供转录。…

删除的文件怎么恢复?恢复方法在这里(支持Win和Mac)

案例:文件永久删除还能找回来吗?关于Win和Mac系统的恢复方法 “前几天我在清理电脑垃圾,不小心误删了重要的文件。有没有什么比较全面的方法,可以帮助我恢复删除的文件啊?在线急等回复!” 随着电脑使用的…

Golang 中 Slice的分析与使用(含源码)

文章目录1、slice结构体2、slice初始化3、append操作4、slice截取5、slice深拷贝6、值传递还是引用传递参考文献众所周知,在golang中,slice(切片)是我们最常使用到的一种数据结构,是一种可变长度的数组,本篇…

三维人脸实践:基于Face3D的渲染、生成与重构 <二>

face3d: Python tools for processing 3D face git code: https://github.com/yfeng95/face3d paper list: PaperWithCode 3DMM方法,基于平均人脸模型,可广泛用于基于关键点的人脸生成、位姿检测以及渲染等,能够快速实现人脸建模与渲染。推…