python函数def讲解(python def函数怎么调用函数)

python函数def讲解(python def函数怎么调用函数)涵盖函数的定义 使用 def 关键字 参数传递 位置参数 默认参数 可变参数等 返回值的使用 以及函数的作用域 函数的定义 函数就像是一个小工具 它可以完成特定的任务 在 Python 中 我们使用 def 关键字来创建函数 比如 我们要创建一个函数来计算两个数的和 代码是这样写的 这里 def 是定义函数的关键字



在这里插入图片描述

在这里插入图片描述

涵盖函数的定义(使用 def 关键字)、参数传递(位置参数、默认参数、可变参数等)、返回值的使用,以及函数的作用域。

函数的定义
函数就像是一个小工具,它可以完成特定的任务。在 Python 中,我们使用def关键字来创建函数。比如,我们要创建一个函数来计算两个数的和,代码是这样写的:

 

这里def是定义函数的关键字,add_numbers是函数的名字,你可以根据函数的功能来给它取一个容易理解的名字哦。括号里的a和b是函数的参数,就像是把两个数字交给这个函数。return关键字后面跟着a + b,这表示这个函数执行完后会把a和b相加的结果返回给我们。
我们再来看一个有函数文档字符串的例子:

 

这个文档字符串(在函数内部,用三引号括起来的部分)可以帮助我们和其他使用这个函数的人更好地理解函数是做什么的,有什么参数,返回什么值。
参数传递
位置参数:
当我们调用函数的时候,要给它传递参数。位置参数就是按照参数定义的顺序来传递值。就像我们之前定义的add_numbers函数,我们这样调用它:

 

这里3会被传递给a,5会被传递给b,然后函数计算3 + 5 = 8,并把结果存储在result变量里,最后打印出来。
默认参数:
有时候,我们希望函数的某个参数有一个默认值,这样在调用函数的时候,如果我们不指定这个参数的值,函数就会使用默认值。比如:

 

在第一个print(greet(“Alice”))中,我们只传递了一个参数"Alice",因为greeting参数有默认值"Hello",所以函数会使用这个默认值,结果就是"Hello, Alice"。在第二个print(greet(“Bob”, “Hi”))中,我们指定了greeting的值为"Hi",那么函数就会使用我们指定的值,结果是"Hi, Bob"。
可变参数(*args 和kwargs)**:
args:
想象一下,我们要写一个函数来计算任意多个数的和,这时候就可以用
args。比如:

 

在这个sum_numbers函数里,*args就像是一个魔法口袋,它可以接收任意多个位置参数,并把它们都放在一个元组里。在这个例子中,1、2、3被放进了args这个元组里,然后我们用sum函数计算它们的和。
kwargs:
如果我们要接收任意多个带有名字的参数(关键字参数),就可以用
kwargs。比如:

 

这里**kwargs会把我们传递的关键字参数收集到一个字典里。在这个例子中,name="Alice"和age=25会被收集到kwargs字典里,然后我们通过循环遍历字典,把每个键值对都打印出来。
返回值
函数执行完后,可以给我们返回一个结果,这就是返回值。我们用return语句来指定返回值。比如:

 

在这个get_name_and_age函数里,它返回了两个值"Alice"和25,这两个值是以元组的形式返回的。我们可以用多个变量来接收这个元组里的值,就像这里用name接收"Alice",age接收25。
如果一个函数没有return语句,或者return后面没有表达式,那么这个函数默认返回None。比如:

 

在这个no_return_function函数里,它只是打印了一句话,没有return语句,所以当我们调用这个函数并把结果存储在result变量里时,result的值就是None。
函数的作用域
局部变量:
在函数内部定义的变量只能在这个函数内部使用,这种变量叫做局部变量。比如:

 

如果我们在函数外面尝试访问x,就会出错,如下代码会报错:

 

在local_variable_example函数里,x是局部变量,它只在这个函数内部有意义。当函数执行完后,x就不存在了。
全局变量:
在函数外面定义的变量叫做全局变量,在函数内部可以访问全局变量。但是,如果我们要在函数内部修改全局变量的值,就需要使用global关键字。比如:

 

如果要修改全局变量:

 

在access_global_variable函数里,我们可以直接访问全局变量global_variable并打印它的值。在modify_global_variable函数里,因为我们要修改global_variable的值,所以先用global关键字声明这个变量是全局变量,然后再给它赋新的值。

介绍如何创建和使用模块(将相关的函数、类等组织到一个.py 文件中),以及如何将多个模块组织成包(使用目录结构和__init__.py 文件),同时学习如何导入和使用第三方模块。

模块的创建和使用
模块的概念:
模块就是一个包含 Python 代码的文件。比如说,我们创建一个名为math_operations.py的文件,这个文件就是一个模块。在这个文件里,我们可以定义函数、类或者变量。我们来看一个简单的例子:

 

这里我们在math_operations.py模块里定义了两个函数add和subtract,它们分别用于计算两个数的加法和减法。
模块的导入:

 

当我们要在另一个 Python 文件里使用这个模块里的函数时,我们可以使用import语句。比如,我们创建一个新的文件main.py,在这个文件里使用math_operations模块:

 

这里import math_operations表示我们把math_operations模块导入到main.py文件里。然后我们使用math_operations.add(3, 5)来调用math_operations模块里的add函数,计算3 + 5的结果。
from module_name import function_name:
我们也可以只导入模块里的某个特定函数,比如:

 

这里from math_operations import add表示我们只从math_operations模块里导入add函数,这样我们在使用的时候就不需要再写math_operations.add了,直接写add就可以。
from module_name import *:
还有一种导入方式是from module_name import *,这种方式会把模块里的所有函数和变量都导入进来。但是这种方式不太好,因为如果有多个模块有相

 

这里我们把math_operations模块里的所有东西都导入了,然后直接使用add函数。不过在实际编程中,特别是大型项目里,我们要尽量避免使用这种导入方式。
包的概念和使用
包的结构:
包是一种组织模块的方式,它是一个目录,里面包含了多个模块文件,而且这个目录里必须有一个__init__.py文件(在 Python 3 中,这个文件可以为空)。我们来看一个例子,创建一个名为my_package的包:

 

在module1.py和module2.py这两个文件里,我们可以定义不同的函数、类等。
包的导入:

 

我们可以这样导入包中的模块,比如:

 

这里我们先导入my_package包里的module1模块,然后使用module1模块里的some_function(假设module1里有这个函数)。
我们也可以在__init__.py文件中指定哪些模块可以被直接导入。比如在my_package/init.py中添加from. import module1,然后就可以这样使用:

 

这样就可以更方便地导入和使用包中的模块了。
第三方模块的安装和使用
使用包管理器(如 pip)安装第三方模块:
Python 有很多很厉害的第三方模块,我们可以用pip这个工具来安装它们。pip就像是一个应用商店,里面有各种各样的 Python 模块。比如说,我们要安装numpy这个用于科学计算的模块,我们可以在命令行里输入pip install numpy(前提是你的电脑已经安装了pip,并且pip在系统路径里能找到哦)。
导入和使用第三方模块:
安装好第三方模块后,我们就可以像使用自己创建的模块一样使用它们了。比如我们安装好numpy后,可以这样使用:

 

这里我们先导入numpy模块,并给它取了一个简短的名字np,然后使用np.array函数创建了一个数组并打印出来。

编程小号
上一篇 2025-03-05 12:40
下一篇 2025-02-28 12:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/11435.html