Python入门教程+项目实战-14.1节-函数的参数用法

这篇具有很好参考价值的文章主要介绍了Python入门教程+项目实战-14.1节-函数的参数用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

14.2.1 位置参数与关键字参数

14.2.2 函数的参数默认值

14.2.3 函数的引用类型参数

14.2.4 函数的可变参数

14.2.5 知识要点

14.2.6 系统学习python


14.2.1 位置参数与关键字参数

位置参数与参数的位置相关,这里的位置是指定义函数时的从左到右的参数排列顺序。在调用函数时,会自动将实参与形参的位置对应起来。如果无法建立参数之间的一一对应的关系,那么Python解释器会抛出类型错误的异常信息。

当实参数目小于或大于形参的数目时,不能建立参数之间的一一对应的关系。

关键字参数是指调用函数时,将形参名当做键名,将实参当做键值,以键名=键值的语法形式来进行调用。关键字参数的调用语法:

function(key=value)

这里的key即形参名,value即为实参值。以关键字参数的形式进行调用时,Python解释器会自动将实参值与形参对应起来,无需识记形参的位置。

代码实例:

# __desc__ = 分别以位置参数和关键字参数的形式来调用函数
 
# 定义一个简单的函数,将参数进行返回
def just_return(x, y, z):
    return x,y,z
 
# 以位置参数的形式来进行调用
x,y,z=just_return(3,2,1)
# 实参3对应的形参是x,实参2对应的形参是y,实参1对应的形参是z
 
# 以关键字参数的形式来进行调用
x,y,z=just_return(z=3, y=2, x=1)
# Python自动将实参与形参对应起来,例如实参3对应的形参是z

使用关键字参数的方式进行调用时,无需识记函数定义时的参数顺序。

14.2.2 函数的参数默认值

在定义函数时,可以为参数设置默认值,语法形式为:

def function_name(parameter=default_value):
    pass

default_value表示参数的默认值。为参数设置默认值以后,如果不传递对应的实参,那么会使用默认值进行代替。

代码实例:

# __desc__ = 为参数设置默认值
 
# 定义一个简单的函数,将参数进行返回
def just_return(x, y=2, z=3):
    """ 参数y的默认值为2, 参数z的默认值为3 """
    return x,y,z
 
# 下面的函数调用是合法的,没有传递对应的位置实参时,将使用参数的默认值
x,y,z=just_return(1)
 
# 下面的函数调用是合法的,没有传递对应的位置实参时,将使用参数的默认值
x,y,z=just_return(1,3)

定义参数的默认值时,要按从右到左的参数顺序来设置默认值,否则Python会抛出语法错误的异常信息:

# __desc__ = 必须按从右到左的参数顺序来设置默认值
 
# 定义一个简单的函数,将参数进行返回
def just_return(x=1, y,z):
    """ 参数x的默认值为1 """
    return x,y,z
 
 
""" 
上面的函数定义是非法的,假设我们按位置参数的方式来进行调用:
x,y,z=just_return(3,2,1)
在按位置参数的方式进行调用时,实参与形参是以从左到右的调用顺序进行对应的。
所以只为形参x设置默认值,毫无意义。
 
初学者可能会以这样的方式进行调用:
x,y,z=just_return(3,2)
此时,实参3对应的是形参x,实参2对应的是形参y,形参z没有对应的实参,
Python会抛出语法错误的异常信息。
"""

14.2.3 函数的引用类型参数

Python中的变量是一个保存内存地址的容器,当传递的参数是复合数据类型时,传递的是变量所存储的内存地址的拷贝。在函数中对该类型参数进行修改时,修改的是同一块内存空间的值。所谓的引用类型参数,是指函数体中的参数与实参引用的是同一块内存空间。

Python中的复合数据类型:字符串,列表,元组,字典,集合。

 代码实例:

# __desc__ = 函数调用时,传递复合数据类型
 
# 定义一个简单的函数,在函数体中对参数进行修改
def add_number(numbers, number):
    """ numbers是一个列表类型 """
    numbers.append(number)
 
# 定义列表变量
numbers=[1,2,3]
 
# 调用函数add_number
add_number(numbers, 4)
 
# numbers的输出为[1,2,3,4]

由于修改的是同一块内存空间的值,所以即使函数调用结束以后,也会影响到函数体之外的变量。在上文的代码实例中,调用函数前列表numbers的输出为:

[1,2,3]

在函数体中,将实参4添加至列表numbers中,在函数体中的输出为:

[1,2,3,4]

由于修改的是同一块内存空间的值,所以函数调用结束后,列表numbers的输出同样为:

[1,2,3,4]

当传递的是简单数据类型时,只是将值进行拷贝:

# __desc__ = 函数调用时,传递简单数据类型
 
# 定义一个简单的函数,在函数体中对参数进行修改
def just_change(x):
    x = 0
    print(x)
    # 在函数体中对x进行修改,x的输出为0
    
    
# 定义整型类型变量x,初值为1
x = 1
 
# 调用函数,传递变量x
just_change(x)
 
# 函数调用结束以后,输出变量x的值
print(x)
# x的输出仍然为1

Python中的简单数据类型:整型,浮点类型,布尔类型

14.2.4 函数的可变参数

在定义函数时,如果不能确定函数的参数个数,可以使用可变参数。可变参数涉及的知识点比较多,对于函数的可变参数,将在14.3节中进行详细讲解。

14.2.5 知识要点

(1) 位置参数与参数的位置相关,这里的位置是指定义函数时的从左到右的参数排列顺序。

(2) 关键字参数是指调用函数时,将形参名当做键名,将实参当做键值,以键名=键值的语法形式来进行调用。

(3) 定义函数时,可以为参数设置默认值,默认值必须以从右到左的参数顺序来设置默认值。

在调用函数时,如果不传递对应的实参,那么会使用默认值进行代替。

(4) Python中的变量是一个保存内存地址的容器,当传递的参数是复合数据类型时,传递的是变量所存储的内存地址的拷贝。所谓的引用类型参数,是指函数体中的参数与实参引用的是同一块内存空间。

14.2.6 系统学习python

 薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。文章来源地址https://www.toymoban.com/news/detail-502548.html

到了这里,关于Python入门教程+项目实战-14.1节-函数的参数用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python入门教程+项目实战-11.3节: 元组的操作方法

    目录 11.3.1 元组的常用操作方法 11.3.2 元组的查找 11.3.3 知识要点 11.3.4 系统学习python 元组类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法,在本节的内容中,着重介绍元组类型的操作方法。 元组是一种不可变的数据类型,不可以元组执行修改等操作,在

    2023年04月26日
    浏览(34)
  • Python入门教程+项目实战-11.4节: 元组与列表的区别

    目录 11.4.1 不可变数据类型 11.4.2 可变数据类型 11.4.3 元组与列表的区别 11.4.4 知识要点 11.4.5 系统学习python 不可变数据类型是指不可以对该数据类型进行修改,即只读的数据类型。迄今为止学过的不可变数据类型有字符串,元组。 在使用[]操作符对字符串,元组进行修改时

    2024年02月01日
    浏览(45)
  • Python入门教程 - 基本函数(四)

    目录 一、什么是函数 二、自定义函数并使用它 前面我们学习了像input()、print()、type()等等,他们都是函数。这些其实是由Python内部帮我们定义好的。我们直接用就可以了。 关于函数,除了用内部定义好的,我们也可以自己定义函数,然后使用。 所以,我们总结一下: 函数

    2024年02月10日
    浏览(36)
  • 全网最全Pytest框架使用教程和项目实战~从入门到精通

    pytest是一个非常成熟的python单元测试框架,比unittest更灵活、更容易上手 pytest可以和selenium、requests、appinum结合实现web自动化、接口自动化、app自动化 pytest可以是实现测试用例的跳过以及reruns失败用例重试 pytest可以和aliure生成非常美观的测试报告 pytest可以和jenkins持续集成

    2024年02月06日
    浏览(38)
  • MySQL——存储过程和函数从零基础到入门必学教程(涵盖基础实战)

    目录 ​前言 一、创建存储过程 二、在存储过程中使用变量 1.定义变量 2.为变量赋值 三、光标的使用 1.打开光标 2.打开光标 3.使用光标 4.关闭光标 四、流程控制的作用 1.IF语句 2.CASE语句 3.LOOP语句 4.LEAVE语句 5.ITERATE语句 6.REPEAT语句 7.WHILE语句 五、流程控制综合运用 六、查看存

    2024年02月03日
    浏览(27)
  • 【Android入门到项目实战-- 9.5】—— 陀螺仪传感器的详细使用教程

    目录 陀螺仪传感器 1、基础知识  2、实战使用         返回x、y、z轴的角加速度数据。         水平逆时针旋转,z轴为正,顺时针为负;         向左旋转,y轴为负,向右旋转,y为正;         向上旋转,x为负,向下旋转,x为正。 修改activity_main.xml代码如下:

    2024年02月12日
    浏览(42)
  • CMake入门教程【实战篇】使用开源库cmake-modules简化项目开发与维护

    本教程介绍了rpavlik/cmake-modules,一个CMake模块集合,旨在简化和优化CMakeLists.txt文件的编写和维护工作。该集合尤其对虚拟现实和物理模拟包的开发者有用,同时也包含通用实用模块和针对旧版CMake的补丁或解决方案。 项目托管在GitHub上,可通过链接访问:rpavlik/cmake-modules 查

    2024年01月15日
    浏览(39)
  • 14.1 Socket 套接字编程入门

    Winsock是Windows操作系统上的套接字API,用于在网络上进行数据通信。套接字通信是一种允许应用程序在计算机网络上进行实时数据交换的技术。通过使用Windows提供的API,应用程序可以创建一个套接字来进行数据通信。这个套接字可以绑定到一个端口,以允许其他应用程序连接

    2024年02月08日
    浏览(35)
  • 【Python入门教程】Python常用表格函数&操作(xlrd、xlwt、openpyxl、xlwings)

    ​          在我们使用Python时,避免不了与Excel打交道。同样Python的三方库和代码的简洁性也为我们处理大数据提供了便利。今天给大家介绍一下常用的处理表格的函数,同时还有一些常用的操作。                  这些都是我在使用Python处理Excel时用到的相关代

    2024年02月08日
    浏览(59)
  • python pytorch教程-带你从入门到实战(代码全部可运行)

    其实这个教程以前博主写过一次,不过,这回再写一次,打算内容写的多一点,由浅入深,然后加入一些实践案例。 下面是我们的内容目录: 1.先从数据类型谈起 1.1 如何生成pytorch的各种数据类型? 1.2 pytorch的各种数据类型有哪些属性? 1.3 pytorch的各种数据类型有哪些函数操

    2024年02月13日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包