十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
形参设置可以为数字字符串变量、元组和字典等任意类型数据,元组形参是在变量名前加*,字典形参是在变量名前加**
成都创新互联公司坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。十多年网站建设经验成都创新互联公司是成都老牌网站营销服务商,为您提供成都网站设计、成都网站建设、网站设计、H5响应式网站、网站制作、品牌网站设计、小程序开发服务,给众多知名企业提供过好品质的建站服务。
例如:fun(var),fun(*tuple),fun(*list),fun(**dict)
实参接受也可以是任意类型数据,当接收数据为元组列表或者字典时,同样是在数据变量前加*和**
例如:fun(x),fun(*seq),fun(*list),fun(**stu_info)
可以使用元组形参和字典形参接收冗余或意外数据
例如:fun(var,*t_args,**dic_args)
但传参时,数字和字符串形参必须传值,元组和字典形参可不传,原因为元组和字典数据可以是空元组或空字典,此特性正好适应处理冗余数据
形参参数名若和生产数据中字典键名相同加大大提高编程效率和生产效率
例如:有字典dic={'name':'csdn','age':10,'top':1} ,有函数fun(name='name',age=0,top=0),则函数可以方便的获取字典数据fun(**dic)
函数的实参不可以是语句
函数定义
python函数定义使用def关键字,后面是函数名,函数名不能重复。
说明:
1.使用关键字def开头;
2.参数是可选的,可传也可不传;
3.第一行语句可以使用文档字符串,用于注释函数的作用;
4.函数体,实现具体的功能,注意缩进;
5.return将返回一个值,可写可不写
1)使用def关键字告诉Python解释器:在定义一个函数,sum为函数名。当python运行到def语句时,它会生成一个新的函数对象,将其赋值给函数名。
2)括号中的x,y是参数,对函数的输入。
3)函数第一行为函数文档说明,是个字符串,一般我们在自定义函数时,为了代码的可读性,最好增加相关说明,比如函数的作用,要传递的参数作用,这个说明是可选的。我们可以使用help()命令快速查看指定模块或者函数的使用方法。
4)return x+y用于将x+y运算结果返回,即输出。
5)编译器会跳过注释。
pass空语句
当我们编写程序的时候,往往需要构思,有时候我们只是搭个框架,具体的细节暂时还未构思,则我们可以使用pass来进行占位,表示什么都不做,我们在定义一个函数,暂时还不知道该函数要实现什么功能的时候,可以使用pass先占一个坑。
函数调用
上面只是定义函数,但是还没有执行里面的函数体,要想执行函数,则需要调用,python函数调用通过函数名()即可,例如要执行上面的函数,我们可以这样来使用:
说明:
上述代码,当我们调用sum函数时,传递了2个值,2赋给了x,7赋给了y,然后执行函数体,先将2和7相加,然后通过return返回结果值。
函数的参数传递
在调用函数时,我们往往需要进行数据传递,然后通过函数内部进行操作处理,输出结果。例如上面的例子,我们传递了2个数,通过相加操作返回结果。参数就是放在函数名后面的小括号中的。
形参和实参
形参(形式参数):在定义函数时使用的参数,目的是接收调用该函数传递的参数。
实参(实际参数):在调用时传递给函数的参数,即传递给被调用函数的值。实参可以是常量,变量,表达式,函数等。
上一期我们学习参数传递怎么传递,也了解了参数的几种类型。
首先,我们再来回顾一下,形参和实参:
形参是在定义函数时定义的,放在函数名后面的圆括号里,可为空
实参是调用函数时为形参传入具体的参数值
简单总结一下,谁调用函数,谁就负责传入参数。
好呐,本期我们来详细学习函数几种参数类型,大纲如下:
python函数的参数名是无意义的,Python允许在调用函数时通过通过名字来传入参数值。
位置参数:按照形参位置传入的参数
调用函数时,实参默认按位置顺序传递的。同时实参个数也要和形参匹配
举一个小栗子
如果实参的个数与形参不匹配时,调用函数运行就会报错
Python中,形参与调用函数紧密联系在一起的。
关键字参数:调用函数时,使形参名称来传递参数,形式为“形参名=实参”
关键字参数,又叫命名参数,传递时无需考虑参数位置和顺序
举一个小栗子
默认参数:定义函数时,我们可以为形参提前设置具体的值。
在定义函数时,默认参数要放到位置等其他参数后面
在调用函数时,默认参数是可选的。如果传入新值,则会覆盖默认值
举一个小栗子
注意,默认值不能位于位置参数前面,否则程序会报错误
不定长参数又名可变参数。
不定长参数指的是可变数量的参数,分两种情况:
如果不定长参数后面,可以新增参数吗?
我们通过例子来看,会发生什么?
运行上面的程序,Python解释器会报错
原因是,形参a已经是不定长参数,我们调用的test(2,3,4)传入的三个实参,系统自动把它们属于形参a的值,形参b 和形参c就等于没有值传入,这时候系统就认为,调用函数的对象,参数没有传够。
为了解决这一报错,python引入了 强制命名参数
规定,调用不定参数后面有跟位置参数的函数时,传入给位置参数时,必须要强制命名参进行传参。
逆向参数收集针对的对象传入函数的实参
调用函数时,如果实参是元组,列表或者字典,通过在实参前面加入星号,可以自动把元素进行隔开,然后再转入给函数进行处理
举一个小栗子
本期,我们详细学习了参数几种类型,为后面我们学习函数,打好基础。
实践是检验真理的过程,大家多动手练习练习,会有不一样的奇妙旅程~
好呐,以上是本期内容,欢迎大佬们评论区指正~
python中调用函数的过程中形参和实参的命名必须不一样。变量名和函数名不能相同,否则会进行替代因为python是不声明类型的,不该出现重复的名字看很多人点赞我就更新一波,以免误导:其实python也是支持相同函数名的,只是不是高级编程是几乎用不到的,具体实现是靠自带的装饰器functools.singledispatch实现的单分派的设计模式。
形参 是指出现在函数定义中的名称,而 实参 则是在调用函数时实际传入的值。 形参定义了一个函数能接受何种类型的实参。 例如,对于以下函数定义:
def func(foo, bar=None, **kwargs):
pass
foo, bar 和 kwargs 是 func 的形参。 但是,在调用 func 时,例如:
func(42, bar=314, extra=somevar)
实际的值 42, 314 和 somevar 则是实参。