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的解释器会报错;
二是如何设置默认参数。
三是当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。
相关文章
|
1天前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
1月前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
16 0
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
1月前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
45 2
|
2月前
|
分布式计算 MaxCompute 对象存储
|
2月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
87 8
|
2月前
|
Shell Python
[oeasy]python049_[词根溯源]locals_现在都定义了哪些变量
本文介绍了Python中`locals()`函数的使用方法及其在调试中的作用。通过回顾变量赋值、连等赋值、解包赋值等内容,文章详细解释了如何利用`locals()`函数查看当前作用域内的本地变量,并探讨了变量声明前后以及导入模块对本地变量的影响。最后,文章还涉及了一些与“local”相关的英语词汇,如`locate`、`allocate`等,帮助读者更好地理解“本地”概念在编程及日常生活中的应用。
45 9
|
2月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
64 18
|
2月前
|
Python
Python中的函数
Python中的函数
62 8
|
3月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
155 67

热门文章

最新文章

推荐镜像

更多