python语法教程之def()函数定义及用法

 更新时间:2023年01月07日 11:05:20   作者:Anfies  
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,下面这篇文章主要给大家介绍了关于python语法教程之def()函数定义及用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

什么是函数?

我们在编程的过程中往往会发现,实现某一功能的代码块会被频繁地使用。如果每次使用这段代码都得复制粘贴,这会使得代码冗长而又臃肿,增大了代码的阅读难度。为了方便我们实现对代码块的复用,人们提出了函数功能。

如何定义函数?

函数的定义以关键字def开头,后面接函数名称和圆括号。

括号中放入函数需要的参数。

通过冒号和缩进控制函数内容。

函数的结构如下所示:

def 函数名(参数):
    函数体

定义第一个函数

在学习一门语言时,我们最先学会的是如何输出Hello world。那么,我们的第一个函数也就从最简单的输出Hello world开始。

def hello():
    print('Hello world!')
    
hello()

输出:

Hello world!

可以看到,我们调用了我们定义的hello函数,函数执行了其中的print语句。

什么是形参实参,什么是返回值?

这里我们定义一个可以计算两个数之和的函数add1,可以先运行一下看看。

def add1(num1, num2):
    result = num1 + num2

    return result

x1, x2 = 1, 2
y = add1(x1, x2)
print(y)

输出:

3

函数完美地计算出了1加2的值。

同刚才的Hello world函数相比,我在add函数中加入了num1、num2和return。其运作原理如下:

在调用add函数时,我们将x1,x2传入add中,由num1和num2分别接收了来自x1和x2的值,将num1和num2的数值相加后传给result,最后函数输出result的值给y,我们打印出y的值,就是3。

那么这里面的num1、num2就是形参,x1、x2就是实参,return result就是函数的返回语句,其返回的就是result的值,所以result就是返回值。

由此可见,形参就是我们在函数定义过程中定义在括号内的参数。实参就是我们输入函数的参数,返回值就是return后面的语句的计算值。

我比较喜欢通过数学中对函数的定义来理解编程语言中的函数。在数学中函数的定义式是y = f(x)那么这里x就是我们传入的参数,f就是函数体,用来对x进行计算,计算结果y就是函数的返回值。

函数参数的一些额外用法

还是刚才的add1函数,但是我们参数的赋值方式不一样了:

def add1(num1, num2):
    result = num1 + num2

    return result
    
y = add1(num1=1, num2=2)
print(y)

输出:

3

我们也可以对函数的形参赋予初始值

def add2(num1=1, num2=1):
    result = num1 + num2

    return result

y = add2()
print(y)

输出:

2

在形参赋初值的情况下,我们又可以如下进行传参。

def add2(num1=1, num2=2):
    result = num1 + num2

    return result

y = add2(3)
print(y)

输出:

5

可见3按顺序替换了add2函数的第一个形参,导致num1变为3,result变为5。

那如果我们想不按顺序更改其中的参数呢?

def add2(num1=1, num2=2):
    result = num1 + num2

    return result

y = add2(num2=3)
print(y)

输出:

4

可以看到,3并没有按顺序替换add2函数的第一个参数,而是传给了num2,这样result的值就是4了。

任意传递实参

当我们传入函数中的参数不固定怎么办呢?

def save(*temp):
    return temp


y = save('1', 2, 'abc', True)
print(y)

输出:

('1', 2, 'abc', True)

可以看到,如果形参加上一个星号,它就相当于一个元组,我们传入的参数将以元组的形式保存。

def student(**temp):
    return temp


y = student(name='老王', age=20, high=180, is_student=True)
print(y)

输出:

{'name': '老王', 'age': 20, 'high': 180, 'is_student': True}

当形参前带有两个星号时,它就相当于一个字典了。

附加

函数也可以写在其他文件里用来调用。这里我们还是用一开始的add1函数。

from aboutadd import add1

y = add1(1, 2)
print(y)

输出:

3

通过图片可以看到文件间的关系。

总结

到此这篇关于python语法教程之def()函数定义及用法的文章就介绍到这了,更多相关python def()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python list sort方法的具体使用

    Python list sort方法的具体使用

    list.sort()方法是Python的列表方法,用于对原列表进行排序。本文详细的介绍了list.sort的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2021-12-12
  • 简化Python的Django框架代码的一些示例

    简化Python的Django框架代码的一些示例

    这篇文章主要介绍了简化Python的Django框架代码的一些示例,实际上文中只是抽取了一些Django中最基本的功能用于简化入门者的上手复杂度,下,需要的朋友可以参考下
    2015-04-04
  • 解读时间序列分析之ADF检验

    解读时间序列分析之ADF检验

    这篇文章主要介绍了解读时间序列分析之ADF检验,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Django REST Framework序列化外键获取外键的值方法

    Django REST Framework序列化外键获取外键的值方法

    今天小编就为大家分享一篇Django REST Framework序列化外键获取外键的值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python异常基类BaseException详解

    python异常基类BaseException详解

    这篇文章主要为大家介绍了python异常基类BaseException详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  •  python中字符串的常见操作总结(二)

     python中字符串的常见操作总结(二)

    这篇文章主要介绍了python中字符串的常见操作,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Python写入MySQL数据库的三种方式详解

    Python写入MySQL数据库的三种方式详解

    Python 读取数据自动写入 MySQL 数据库,这个需求在工作中是非常普遍的,主要涉及到 python 操作数据库,读写更新等。本文总结了Python写入MySQL数据库的三种方式,需要的可以参考一下
    2022-06-06
  • Python for 循环语句的使用

    Python for 循环语句的使用

    这篇文章主要介绍了Python for 循环语句,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-06-06
  • python代码有一行标黄问题的解决方案

    python代码有一行标黄问题的解决方案

    这篇文章主要介绍了python代码有一行标黄问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Pandas直接读取sql脚本的方法

    Pandas直接读取sql脚本的方法

    这篇文章主要介绍了Pandas直接读取sql脚本的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01

最新评论