python进阶教程之函数参数的多种传递方法

yizhihongxing

Python进阶教程之函数参数的多种传递方法攻略

Python中的函数参数传递方式有多种,下面将对这些传递方式进行详细讲解。

1. 位置参数传递

位置参数是最常见的一种参数传递方式,当我们调用函数时,传递的实参会按顺序一一对应函数定义时的形参,如下所示:

def print_info(name, age, gender):
    print("Name:", name)
    print("Age:", age)
    print("Gender:", gender)

print_info("John", 25, "male")

以上代码的输出结果为:

Name: John
Age: 25
Gender: male

这里,我们指定了三个形参 nameagegender,并在调用函数时传入了三个实参 "John"25"male",这些实参按照传入的顺序依次赋值给对应的形参。

2. 关键字参数传递

关键字参数是指在函数调用时,通过指定形参名称来传递实参值。在使用关键字参数时,我们不需要考虑形参的顺序,只需要指定对应的形参名称即可。以下代码演示了如何使用关键字参数:

def print_info(name, age, gender):
    print("Name:", name)
    print("Age:", age)
    print("Gender:", gender)

print_info(name="John", age=25, gender="male")

以上代码的输出结果与上例相同。这里,我们使用了关键字参数来指定每个形参所对应的实参值。

3. 默认参数传递

默认参数是指在函数定义时为某些形参指定默认值,在函数调用时如果不传递该形参,则使用其默认值。以下代码演示了如何使用默认参数:

def print_info(name, age, gender="male"):
    print("Name:", name)
    print("Age:", age)
    print("Gender:", gender)

print_info("John", 25)

以上代码的输出结果为:

Name: John
Age: 25
Gender: male

我们可以看到,上述代码中的 gender 形参指定了默认值 "male",在函数调用时我们只传递了 nameage 两个实参,但是输出结果中也打印了 "male",这是因为我们没有为 gender 形参传递实参,此时 Python 会使用其默认值。

4. 可变参数传递

可变参数是指在函数定义时使用 *args**kwargs 分别接收不定数量的位置参数和关键字参数。以下代码演示了如何使用可变参数:

def add_nums(*args):
    result = 0
    for num in args:
        result += num
    return result

total = add_nums(1, 2, 3, 4, 5)
print(total)

以上代码的输出结果为:

15

这里,我们在函数定义时使用了 *args,表示可以接收任意数量的位置参数。在函数调用时,我们使用了 1, 2, 3, 4, 5 这几个实参传递给 add_nums 函数,这些实参都被收集到了 args 参数元组中。

类似地,我们也可以使用 **kwargs 可变参数来接收任意数量的关键字参数。以下代码演示了如何使用 **kwargs

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(key, ":", value)

print_info(name="John", age=25, gender="male")

以上代码的输出结果为:

name : John
age : 25
gender : male

示例1

下面是一个函数接收位置参数和默认参数的示例:

def bmi(height, weight, unit='metric'):
    if unit == 'metric':
        bmi = weight / (height ** 2)
    else:
        bmi = weight / (height ** 2) * 703
    return bmi

print(bmi(1.75, 70)) # 使用默认参数计算BMI
print(bmi(68, 154, 'imperial')) # 使用自定义参数计算BMI

以上代码的输出结果为:

22.857142857142858
23.39641010447985

在以上示例中,我们定义了一个名为 bmi 的函数,该函数接收三个参数:身高、体重和单位(默认为 metric)。当我们不传递单位参数时,函数会使用默认值进行计算;当我们调用函数时自定义了单位参数时,则使用该参数进行计算。

示例2

下面是一个函数接收可变参数和关键字参数的示例:

def generate_string(*args, separator=' '):
    return separator.join(args)

print(generate_string('hello', 'world')) # 使用默认分隔符连接字符串
print(generate_string('hello', 'world', separator='')) # 使用空字符串连接字符串

以上代码的输出结果为:

hello world
helloworld

在以上示例中,我们定义了一个名为 generate_string 的函数,该函数接收任意数量的位置参数,并且还有一个可选的关键字参数 separator ,表示使用什么分隔符将位置参数连接为字符串。当我们不传递 separator 参数时,函数会使用默认的空格符号;当我们传递 separator 参数时,则使用该参数指定的分隔符进行连接。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python进阶教程之函数参数的多种传递方法 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • ubuntu安装显卡驱动和cuda教程

    Ubuntu安装显卡驱动和CUDA教程 一、安装显卡驱动 1.1 确认显卡型号 打开终端,输入以下命令查看显卡型号: lspci | grep -i nvidia 如果有输出,则表示你的电脑是NVIDIA显卡,同时记录下显卡型号。 1.2 安装显卡驱动 通过PPA安装 在终端中输入以下命令: sudo add-apt-repository ppa:graph…

    python 2023年5月13日
    00
  • Python logging模块原理解析及应用

    Python logging模块原理解析及应用 一、logging模块简介 logging模块是Python自带的标准库,用于输出程序运行时的日志信息。它提供了丰富的功能,可以记录程序的运行状态、错误信息、警告信息等,方便我们在程序运行出问题时进行排查。同时,logging模块还可以将日志信息输出到文件、发送邮件、将日志信息记录到数据库等操作。 loggin…

    python 2023年5月20日
    00
  • python二分法查找实例代码

    以下是关于“Python二分法查找实例代码”的完整攻略: 简介 二分法查找是一种常用的查找算法,它通过将有序数组分成两部分,每次查找可以将查找范围缩小一半,从而快速定位目标元素。在本教程中,我们将介绍如何使用Python实现二分法查找,并提供两个示例说明。 实现二分法查找 以下是使用Python实现二分法查找的代码: def binary_search(ar…

    python 2023年5月14日
    00
  • Python NumPy实现数组排序与过滤示例分析讲解

    Python NumPy实现数组排序与过滤示例分析讲解 什么是NumPy? NumPy是Python中最重要和使用最广泛的科学计算库之一。它是开源的,具有丰富的函数和方法,可以用于数值计算、线性代数、随机模拟等领域。 如何实现数组排序? 排序是处理数据的一种常见的方法。NumPy提供了一些函数来实现数组排序。 sort()函数 sort()函数用于对数组进行…

    python 2023年6月5日
    00
  • python中的property及属性与特性之间的优先权

    Python中的property是一种特殊的装饰器,它可以将函数转换为属性,即方法调用像属性一样使用。在Python中,属性和特性是一对密切相关的概念,因为它们共同构成了一个类的接口。 一、property的使用 1.1 基本用法 假设现在有一个名为Person的类,有属性name和age,我们需要对属性进行一些限制。下面是使用property实现对属性访问…

    python 2023年5月14日
    00
  • python 正确保留多位小数的实例

    接下来我将为您详细讲解Python正确保留多位小数的实例。 首先,我们需要了解Python中用于保留多位小数的函数和方法。Python中常用的包含保留多位小数的函数和方法有round()函数、format()函数和字符串格式化方法等。 round()函数 round()函数可以将一个数字四舍五入为指定精度的小数。它接收两个参数,第一个参数是要进行四舍五入的数…

    python 2023年6月5日
    00
  • Python中Dict两种实现的原理详解

    Python中Dict两种实现的原理详解 在Python中,字典(Dict)被广泛使用。Python使用了两种不同的技术来实现Dict,分别为散列表(Hash Table)和有序字典(Ordered Dict)。本篇攻略将详细讲解Python中Dict两种实现的原理。 散列表(Hash Table) 散列表(Hash Table)是一种用于快速查找的数据结构…

    python 2023年5月13日
    00
  • pip报错“ValueError: invalid literal for int() with base 10: ””怎么处理?

    当使用 pip 安装 Python 包时,可能会遇到 “ValueError: invalid literal for int() with base 10: ”” 错误。这个错误通常是由于在使用 pip 安装包时,输入的参数不正确导致的。以下是详细讲解 pip 报错 “ValueError: invalid literal for int() with …

    python 2023年5月4日
    00
合作推广
合作推广
分享本页
返回顶部