更多课程 选择中心


Python培训

400-996-5531

自学Python教程【第六十五节】函数的参数传递(1)

  • 发布:Python培训
  • 来源:Crossin的编程教室
  • 时间:2019-03-15 17:02

欢迎大家来到自学Python教程教室,上一讲我们分享了 Python 里一个我非常喜欢的特性--列表综合(List Comprehension)。所谓列表综合,就是通过一个已有的列表生成一个新的列表的相关知识,这节我们向大家分享函数的参数传递的相关内容。与以往不同的是本篇我们面向有一点点 Python 基础的读者,零基础的看不懂也没关系,慢慢来!

自学Python教程,函数的参数传递

本节课关键字:函数,参数,默认值

先说下上次课最后留的那题,我自己的解法:

print ';'.join([str(i) for i in range(1,101) if i % 2 == 0 and i % 3 == 0 and i % 5 == 0])

另外,关于上次说的 List Comprehension,我在文中称之为“列表综合”,这是引自《简明 Python 教程》的翻译。也有同学表示叫做“列表解析”或“列表表达式”。都是一个意思,其实在写这课之前,我从来都不去“叫”它,只知道这么用而已。

我们曾经讲过 Python 中函数的参数传递(见第19课)。最基本的方式是:

定义

def func(arg1, arg2):

print arg1, arg2

调用

func(3, 7)

我们把函数定义时的参数名(arg1、arg2)称为形参,调用时提供的参数(3、7)称为实参。

这种方式是根据调用时提供参数的位置进行匹配,要求实参与行参的数量相等,默认按位置匹配参数。调用时,少参数或者多参数都会引起错误。这是最常用的一种函数定义方式。

在调用时,也可以根据形参的名称指定实参。如:

func(arg2=3, arg1=7)

但同样,必须提供所有的参数。看看和func(3, 7)的运行结果有什么不同。

Python 语言还提供了其他一些更灵活的参数传递方式,如:

func2(a=1, b=2, c=3)

func3(*args)

func4(**kargs)

今天我们先说说func2这种方式。

这种方式可以理解为,在一般函数定义的基础上,增加了参数的默认值。这样定义的函数可以和原来一样使用,而当你没有提供足够的参数时,会用默认值作为参数的值。

例如:

定义

def func(arg1=1, arg2=2, arg3=3):

print arg1, arg2, arg3

调用

func(2, 3, 4)

func(5, 6)

func(7)

输出为

2 3 4

5 6 3

7 2 3

提供的参数会按顺序先匹配前面位置的参数,后面未匹配到的参数使用默认值。

也可以指定其中的部分参数,如:

func(arg2=8)

func(arg3=9, arg1=10)

输出为

1 8 3

10 2 9

或者混合起来用:

func(11, arg3=12)

输出为

11 2 12

但要注意,没有指定参数名的参数必须在所有指定参数名的参数前面,且参数不能重复。以下的调用都是错误的:

func(arg1=13, 14)

func(15, arg1=16)

定义参数默认值的函数可以在调用时更加简洁。大量 Python 模块中的方法都运用了这一方式,让使用者在调用时可以提供尽可能少的参数。

接下来的几次课,我会继续介绍其他的参数传递方式。

恭喜您在Python自学的道路上又坚持了一天,今天我们开始了Python中函数的参数传递(1),下节课我们将分享更多Python中函数的参数传递的相关内容,敬请关注 !

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:自学Python教程【第六十四节】列表综合
下一篇:自学Python教程【第六十六节】函数的参数传递(2)

【Git第八节】移除文件

【Python实战】四行Python代码就能知道你那的天气,你敢信?

Python实战【用Python写游戏第十三节】exe打包

Python实战【用Python写游戏第十二节】屡败屡战

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省