python的函数定义、调用与默认参数

简介: python函数定义、调用与默认参数

主要写对于python函数的学习和理解。

python函数定义

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

!!!注意冒号需要强调,这与C的编程思想有区别

Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。

函数调用

与其他语言类似,python遵循函数先定义后调用的原则。

在调用之前必须先进行定义,然后才可以使用。

函数参数

位置参数

我们先写一个计算x2的函数:

def cal(x):
    return x * x

对于cal(x)函数,参数x就是一个位置参数。

当我们调用cal函数时,必须传入有且仅有的一个参数x:

>>> cal(2)
4

现在,如果我们要计算高于2次方的函数怎么办?我们可以引入另一个参数,来指示为次方,如cal(x,n),其中,n代表几次方。如cal(x,4)代表计算x的4次方。

可如下定义

def cal(x, n):
    s = 1
    while n:
        n = n - 1
        s = s * x
    return s

对于这个cal(x, n)函数,可以计算任意n次方:

>>> cal(2, 2)
4
>>> cal(3, 3)
27

修改后的cal(x, n)函数有两个参数:x和n,这两个参数都是位置参数,调用函数时,传入的两个值按照位置顺序依次赋给参数x和n。

默认参数

新的cal(x, n)函数定义没有问题,但是,我们会发现之前的函数cal(x)不能用了,因为如果代码中已经调用了cal(x),此时我们把函数修改为cal(x,n),原来的调用会报出错误,因为有一个参数在原来的函数中是不存在的。

这个时候,python提供了一个默认参数,我们可以把第二个参数n的默认值设定为2:

def cal(x, n=2):
    s = 1
    while n:
        n = n - 1
        s = s * x
    return s

这样,当我们用原来的代码调用cal(2)时,相当于调用cal(2, 2):

>>> cal(2)
4
>>> cal(2, 2)
4

而对于n != 2的次方计算,我们必须传入正确的次方数,也就是n的值才能计算出来。

>>> cal(4,3)
64

这说明,python提供的默认参数可以简化我们队代码的维护及调用。

但是有几点需要注意:

一是必选参数在前,默认参数在后,否则Python的解释器会报错;
二是如何设置默认参数。
三是当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。
相关文章
|
2天前
|
Python
Python闭包函数和计时器
本文介绍了闭包函数的概念,它允许内部函数引用外部作用域的变量但无法修改它们。示例展示了如何使用闭包来封装函数。接着,文章讨论了如何在函数调用时添加开始和结束的打印语句,通过传递函数作为参数实现。然后,文章引入装饰器,通过闭包定义了一个`timer`装饰器,用于在函数执行前后打印消息。最后,给出了一个练习,实现了一个计算函数执行时间的装饰器,处理了带有参数的被装饰函数。
12 1
|
20小时前
|
Python
Python使用isinstance()函数
【5月更文挑战第10天】Python使用isinstance()函数
9 2
|
19小时前
|
缓存 Python
Python中的装饰器:优雅而强大的函数装饰技术
在Python编程中,装饰器是一种强大而灵活的技术,它可以使函数具有额外的功能,而不需要改变函数的核心代码。本文将深入探讨装饰器的原理、用法以及实际应用场景,帮助读者更好地理解和利用这一重要的Python编程工具。
|
2天前
|
Python
PyQt---------信号与槽函数的关系
PyQt---------信号与槽函数的关系
11 1
|
2天前
|
C++ 计算机视觉 Python
【学习什锦】python中的匿名函数(lambda)与max、key参数
【学习什锦】python中的匿名函数(lambda)与max、key参数
10 3
|
2天前
|
测试技术 开发者 Python
Python检查函数和方法的输入/输出
【5月更文挑战第5天】Python检查函数和方法的输入/输出
13 1
|
2天前
|
Python
在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存
【5月更文挑战第12天】在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存在,该函数对路径进行检查,存在则返回True,不存在则返回False。示例代码展示了如何检查'example.txt'文件是否存在并相应打印消息。此外,`os.path.isfile()`用于确认路径是否为文件,仅当是文件时返回True,否则返回False,同样配以示例说明其用法。
23 2
|
2天前
|
Python
【Python操作基础】——函数
【Python操作基础】——函数
|
2天前
|
Python
Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。
【5月更文挑战第11天】Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。在函数内部修改全局变量需用`global`关键字声明,否则会创建新局部变量。
104 2
|
2天前
|
机器学习/深度学习 存储 人工智能
python 字符串的三种定义方式
python 字符串的三种定义方式
12 1