【Python入门】了解掌握Python中函数的基本使用

1. 函数的定义

函数:函数是组织好的、可重复使用的、用来实现特定功能的代码片段。

语法:

python 复制代码
# 定义函数
def 函数名(参数列表):
    函数体
    ......
    return 返回值

# 调用函数
函数名(参数)

注意:

  • 函数定义时的参数列表与返回值语句是可有可无的(视具体情况而定)
  • 函数必须先定义后调用
  • 函数定义时,内部代码并未执行,在调用时才执行
  • 函数中通过缩进来描述归属关系

示例:

python 复制代码
# 定义一个函数,计算圆形的面积
def circle_area(r):
    area = 3.14 * r * r
    print(f"半径为{r}的圆形的面积是{area}")
    return area

# 函数调用
data = circle_area(5)
print(f"data的值是{data}")

2. 变量作用域

在python中,变量分为全局变量和局部变量,全局变量应用于整个.py文件,局部变量应用于函数体中。

python 复制代码
# 定义全局变量
number = 10

def fun():
    # 定义局部变量
    number = 100
    print(f"局部变量number的值{number}")

# 调用函数
fun()
print(f"全局变量number的值{number}")

如果要在函数体中使用全局变量,可以使用global关键字。

global关键字用于明确地告诉Python解释器,在函数中要使用全局变量,使得可以在函数内部修改全局变量的值。

python 复制代码
# 定义全局变量
number = 10


def fun():
    global number
    number = 100
    print(f"使用global关键字指定使用全局变量后,number的值{number}")


# 调用函数
fun()
print(f"全局变量number的值{number}")

注意事项:

  • 尽量避免在函数中使用全局变量,这会使得代码难以维护和调试
  • 考虑使用函数参数和返回值来传递数据,而不是依赖全局变量
  • global主要用在程序的状态、配置和计数器等场景中

3. 函数中的参数

3.1 传参方式

两种传参方式:

  • 位置传参,在调用函数时,传入的实参的顺序于定义函数时形参的顺序完全一致
  • 关键字传参,在调用函数时,通过"形参名=值"的形式传递参数,顺序没有要求;如果同时存在位置参数于关键字参数,位置参数在前,关键字参数在后

传参方式适用场景:

  • 如果参数比较少(如不超过3个),可直接使用位置传参
  • 如果参数数量较多,建议使用关键字传参

3.2 默认参数

默认参数:

  • 在方法中设置默认的参数值,如果传参则覆盖默认值,不传参则使用默认值执行
python 复制代码
# 位置传参,city设置默认参数
def fun1(name, age, city="北京"):
    print("name:", name, "age:", age, "city:", city)


# 关键字传参
def fun2(name, age, city, gender):
    print("name:", name, "age:", age, "city:", city, "gender:", gender)


fun1("张三", 20, "广州")
fun2(name="李四", age=21, city="北京", gender="男")

# 两种传参混合
fun2("王五", 22, city="深圳", gender="男")

3.3 不定长参数

不定长参数,也叫可变参数,用于函数定义及调用时参数个数不确定(0个或多个)的场景

  • *args:不定长位置参数,传递的所有匹配的位置参数都会被args变量收集,这些参数会合并封装为一个元组,agrs是元组类型(并不会封装关键字参数)
  • **kwargs:不定长关键字参数,函数调用时,通过关键字参数传递多个参数封装到一个字典(dict)
  • args、kwargs只是约定俗成的变量名,并不是关键字,这里可以使用任何合法的变量名(如*aaa、**bbb)
python 复制代码
# 定义不定长参数的函数,位置参数*args --> 元组
def fun(*args):

# 调用函数
data = fun(10,210,30,54,84)
print(data)

# 定义不定长参数的函数,关键字参数**kwargs --> 字典
def fun1(*args,**kwargs):
    if kwargs.get("print"):
       print("打印出数据信息")

# 调用函数
data1 = fun1(10,210,print = True)

不定长参数适用场景:

  • *args适用于处理数量不确定的数据
  • **kwargs适用于处理数量不确定的选项(函数的配置参数,用来定制函数的行为)

3.4 函数的参数类型

  • 普通参数:数字、布尔、字符串、列表、元组、集合、字典等
  • 特殊参数:函数

以函数作为参数的示例:

python 复制代码
# 定义一个实际处理的函数,两数相加
def add(X, y):
    return X + y

# 定义一个实际处理的函数,两数相减
def subtract(X, y):
    return X - y


# 定义一个过程处理函数,用于调用实际处理的函数
def calc(x, y, oper):
    return oper(x, y)


# 使用
sum = calc(11, 22, add)
print(sum)
相关推荐
白帽小阳2 小时前
2026前端面试题!(附答案及解析)
javascript·网络·python·安全·web安全·网络安全·护网行动
乱写代码3 小时前
Python开发技巧--类型注解Literal
python
卷无止境3 小时前
Python FFI 技术深度解析:ctypes、cffi 与 pybind11 的性能差异与实践挑战
后端·python
郝学胜-神的一滴3 小时前
算法实战:最小k个数——大顶堆的优雅解法
开发语言·数据结构·c++·python·程序人生·算法·排序算法
万笑佛4 小时前
Python 实现Kafka SASL认证生产消费
python
m0_617493945 小时前
Python OpenCV 透视变换(Perspective Transform)详解与实战
开发语言·python·opencv
小李不困还能学5 小时前
PyCharm下载安装与配置教程
ide·python·pycharm