11_Python函数基本概念和示例

在这里插入图片描述

函数

  • 函数是组织代码、提高代码复用性的基本工具。
  • 一个函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。
  • 函数类型:内置函数、自定义函数

定义函数

在 Python 中,使用 def 关键字来定义一个函数。

  • 函数可以有参数,也可以没有参数。
def function_name(parameters):
    """文档字符串(docstring)- 描述函数的作用,可选"""
    # 在这里写上函数要执行的操作
    ...
    return value  # 函数返回值,如果不写返回None。可以返回多个值(以元组形式)。

调用函数

定义好函数之后,可以通过函数名后面加上括号以及必要的参数来调用函数。

result = function_name(arguments)
# 这个代码只用于说明调用的格式,直接调用会报错,忽略报错即可。
# function_name 调用的函数名称
# arguments 参数
# 返回值赋值给result
  • 形参;函数定义时括号内的参数
  • 实参:函数调用时括号内的参数
  • 形参相当于变量,实参相当于变量的值。

参数传递

Python 函数的参数传递可以是以下几种类型:

  • 位置参数(必需参数):必须按照正确的顺序传入函数。
    • 根据定义的参数位置绑定变量。
    • 调用的参数数量必须和声明时一样。
    • 位置参数要放在默认参数前面。
  • 默认参数:可以给参数设置默认值,调用时如果不传该参数则使用默认值。
  • 关键字参数:通过参数名来指定参数值,这样就不必担心参数的顺序。
    • 关键参数可以和位置参数(必须参数)一起用,但是关键参数必须在位置参数(必须参数)的后面。
  • 可变参数(不定长参数):可以使用 *args 和 **kwargs 来传递任意数量的参数。
    • * 的变量名会存放所有未命名的变量参数,参数传入的时候,个数没有限制。
      • 序列的打包:在定义函数的时候,在函数形参前加 * ,将元素打包成元组的形式。
      • 序列的拆包:在函数执行的时候,在函数实参前加 * ,将序列进行拆包。

示例

下面是一个简单的 Python 函数示例

def greet(name, greeting='Hello'):
    """返回一个问候语"""
    return f"{greeting}, {name}!"

# 调用函数
print(greet('Alice'))  # 使用默认的问候语: Hello, Alice!
print(greet('Bob', 'Hi'))  # 使用自定义的问候语: Hi, Bob!

下面是可变参数的示例,参数将以元组形式打包。

def my_add(*args):
    print(args)
    sum_ = 0
    for arg in args:
        sum_ += arg
    return sum_
# 多个参数
my_add(1,2,3,4)
# 传入元组
my_add(*(1,2,3,4,5))
# 传入列表,列表会被转换成元组
my_add(*[1,2,3,4,5,6])

返回值

函数可以使用 return 语句来返回值。如果没有 return 语句,函数会在执行完毕后自动返回 None。

def add(a, b):
    return a + b

result = add(2, 3)  # result 现在是 5
print(result)

文档字符串

良好的编程习惯是在每个函数开始处写上文档字符串,它用于解释函数的作用、参数和返回值。

def add(a, b):
    """两个数相加并返回结果。

    参数:
    a -- 第一个加数
    b -- 第二个加数

    返回:
    int: 两个数的和
    """
    return a + b

可以使用 __doc__ 属性访问函数的文档字符串:

print(add.__doc__)

函数是对象

在 Python 中,函数是一等对象,这意味着它们可以像其他数据类型一样赋值给变量、作为参数传递、作为其他函数的返回值等。

def make_multiplier_of(n):
    """返回一个函数,该函数将输入乘以 n"""
    def multiplier(x):
        return x * n
    return multiplier

# 创建一个乘以 5 的函数
times5 = make_multiplier_of(5)

# 使用该函数
print(times5(3))  # 输出 15

掌握函数是理解 Python 高级编程和软件工程实践的关键。

附件

本文对应的jupyter notebook源码链接,欢迎下载练习:https://download.csdn.net/download/fx_yzjy101/89767220

如有问题请留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值