关于python函数的建立、调用、传参、返回值详解

 更新时间:2023年07月13日 10:47:09   作者:小邑走天下  
这篇文章主要介绍了关于python函数的建立、调用、传参、返回值详解,Python 还支持自定义函数,即将一段有规律的、可重复使用的代码定义成函数,从而达到一次编写多次调用的目的,需要的朋友可以参考下

自定义函数

Python 还支持自定义函数,即将一段有规律的、可重复使用的代码定义成函数,从而达到一次编写多 次调用的目的。 1.创建函数 创建函数也称为定义函数,可以理解为创建一个具有某种用途的工具,使用 def 关键字实现,语法格式如下:

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

参数说明:

  • functionname:函数名称,在调用函数时使用
  • parameterlist:可选参数,用于指定向函数中传递的参数。如果有多个参数,各参数间使用英文逗号分隔;如不指定,则表示该函数没有参数,在调用时,也不用指定参数。
  • “commcnts"”:可选参数,表示为函数指定注释,注释的内容通常是说明该函数的功能、要传递的参数的作用等,可以为用户提供友好提示和帮助的内容。
  • functionbody: 可选参数,用于指定函数体,即该函数被调用后,要执行的功能代码。如果函数有返回值,可以使用 rcturn 语句返回。如果函数只有函数体,可以使用 pass 语句作为占位符

调用函数

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

functionname([parametersvalue])

参数说明: functionname:要调用的函数名称,必须是已经创建好的。 parametersvaluc: 可选参数,用于指定各个参数的值。如果需要传递多个参数值,则各参数值间使用逗号分隔:如果该函数没有参数,则不用输入。

函数参数的传递

在调用函数时,大多数情况下,主调函数和被调用函数之间有数据传递关系,这就是有参数的函数形式。函数参数的作用是传递数据给函数使用,函数利用接收的数据进行具体的操作处理。函数参数在定义函数时放在函数名称后面的一对小括号中。

def functionname(a,b,c,d):

形参与实参

在使用函数时,经常会用到形式参数(形参)和实际参数(实参),两者都叫作参数 形式参数和实际参数在作用上的区别如下:

形式参数:在定义函数时,函数名后面括号中的参数为“形式参数”,也称形参

实际参数:在调用一个函数时,函数名后面括号中的参数为“实际参数”。也就是将函数的调用者提供给函数的参敏称为实际参敏,也称实参。

根据实参的类型不同,可以分为将实参的值传递给形参,和将实参的引用传递给形参两种情况。其中,当实参为不可变对象时,进行的是值传递;当实参为可变对象时,进行的是引用传递。

实际上,值传递和引用传递的基本区别就是,进行值传递后,改变形参的值,实参的值不变:而进行引用传递后,改变形参的值,实参的值也一同改变。

位置参数

位置参数也称必备参数,必须按照正确的顺序传到函数中。即调用时的数量和位置必须和定义时的一样。

在调用函数时,指定的实参数量必须与形参数量一致,否则将抛出 TypeError 异常,提示缺少必要的位置参数。

在调用函数时,指定的实参位置必须与形参位置一致,否则将产生以下两种结果:

(1) 抛出异常。如果指定的实参与形参的位置不一致,数据类型也不一致,那么就抛出异常。

(2)不抛出异常,但是得到的结果与预期不-致。如果指定的实参与形参的位置不一致,数据类型一致,那么就不会抛出异常,但是得到的结果与预期不一致

函数返回值

可以在函数体内使用 retum 语句为函数指定返回值。该返回值可以是任意类型,并且无论 return 语句出现在函数的什么位置,只要执行,就会直接结束函数的执行。retumn 语句的语法格式如下:

result = return [value]

result:用于保存返回结果,如果返回一个值,那么result 中保存的就是返回的一个值,该值可以是任意类型。

如果返回多个值,那么result 中保存的是一个元组。

value:可选参数,用于指定要返回的值,可以返回一个值,也可以返回多个值。

局部变量

局部变量是指在函数内部定义并使用的变量,它只在函数内部有效。 即函数内部的名字只在函数运行时才会创建,在函数运行之前或之后,所有的名字都不存在。

局部变量只能在函数内部有效,在函数外部无效。如果在函数内部和外部都定义了一个同名的变量,那么它们代表了不同的变量值。 如果在函数外部没有定义变量,直接使用函数内部定义的变量,就会抛出 NameEr-ror 异常。

全局变量

在程序开发中,有时需要在函数外设定变量的初始值,然后在函数内访问、修改,这就需要定义全局变量。 我们把函数内外都可以访问的变量,叫作全局变量。

全局变量主要有以下两种情况:

(1)如果一个变量,在函数外定义,那么不仅在函数外可以访问到,在函数内也可以访问到。

(2)在函数体内使用 global 关键字定义变量为全局变量,在函数体外也可以访问该变量,并且在函数体内可以对其进行修改。

#定义为全局变量
global count 

到此这篇关于关于python函数的建立、调用、传参、返回值详解的文章就介绍到这了,更多相关python函数使用详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python celery原理及运行流程解析

    Python celery原理及运行流程解析

    这篇文章主要介绍了Python celery原理及运行流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • python中常用的内置模块汇总

    python中常用的内置模块汇总

    Python内置的模块有很多,我们也已经接触了不少相关模块,接下来咱们就来做一些汇总和介绍,在此我会整理出项目开发最常用的来进行讲解,感兴趣的朋友跟随小编一起看看吧
    2022-01-01
  • Django User 模块之 AbstractUser 扩展详解

    Django User 模块之 AbstractUser 扩展详解

    这篇文章主要介绍了Django User 模块之 AbstractUser 扩展详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Numpy中关于arctan和arctan2的区别

    Numpy中关于arctan和arctan2的区别

    这篇文章主要介绍了Numpy中关于arctan和arctan2的区别,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Keras 切换后端方式(Theano和TensorFlow)

    Keras 切换后端方式(Theano和TensorFlow)

    这篇文章主要介绍了Keras 切换后端方式(Theano和TensorFlow),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Numpy数组的保存与读取方法

    Numpy数组的保存与读取方法

    下面小编就为大家分享一篇Numpy数组的保存与读取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 如何使用Python+ChatGPT批量生成论文

    如何使用Python+ChatGPT批量生成论文

    这篇文章主要介绍了用Python+ChatGPT批量生成论文,我用python+GPT-3 API开发了一个工具,可以直接从arxiv地址生成论文概述,需要的朋友可以参考下
    2023-02-02
  • python将每个单词按空格分开并保存到文件中

    python将每个单词按空格分开并保存到文件中

    这篇文章主要介绍了python将每个单词按空格分开并保存到文件中,需要的朋友可以参考下
    2018-03-03
  • Flask运用Xterm实现交互终端的示例详解

    Flask运用Xterm实现交互终端的示例详解

    Xterm是一个基于X Window System的终端仿真器(Terminal Emulator),Xterm最初由MIT开发,它允许用户在X Window环境下运行文本终端程序,本文给大家介绍了Flask运用Xterm实现交互终端的示例详解,文中有详细的代码讲解,需要的朋友可以参考下
    2023-11-11
  • python连接PostgreSQL过程解析

    python连接PostgreSQL过程解析

    这篇文章主要介绍了python连接PostgreSQL过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论