这里来给大家演示一下,函数的定义或构造,并调用函数来实现封装后的效果。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站设计、江夏网络推广、小程序开发、江夏网络营销、江夏企业策划、江夏品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供江夏建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
首先我们来看看想实现下面的这个效果,如果不使用函数应该怎么实现。
以上两种返回结果都是1-9这几个数字。
以上两种方法,第一种代码重复率太高,代码美观效果太差,虽然能实现效果,但是因为数量比较少,还能手工打出来这几行代码,如果是打印1-100000就很难实现了。这时候for循环还是可以实现的,但是for循环只能实现类似的数字和变量循环,无法进行复杂的功能开发。鉴于此,函数这个概念就被python引入了,下面先来看看函数是怎么实现上面的效果的,还是两种方法。
这时候如果想实现上面的打印结果就直接使用函数名+小括号调用函数就可以了,这种类型的语法,不仅可以反复使用,而且封装后的代码更美观。
这种函数是便于在别人调用的时候,如果没有传入参数的时候,采用的默认值 现在你有add(a=1,b=2)的函数 我直接print add() 就可以直接输出3了 定义如下: def add(a=1,b=2): return a+b ps:你上面多打了一个右括号
Python中查看函数参数有四种方式:
1. F(arg1,arg2,…)
这是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提供个数相等的值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参和实参的个数必须一致,而且必须一一对应,也就是说第一个形参对应这第一个实参。例如:
代码如下:
def a(x,y):print x,y
调用该函数,a(1,2)则x取1,y取2,形参与实参相对应,如果a(1)或者a(1,2,3)则会报错。
2. F(arg1,arg2=value2,…)
这种方式就是第一种的改进版,提供了默认值,例如:
代码如下:
def a(x,y=3):print x,y
调用该函数,a(1,2)同样还是x取1,y取2,但是如果a(1),则不会报错了,这个时候x还是1,y则为默认的3。上面这俩种方式,还可以更换参数位置,比如a(y=4,x=3)用这种形式也是可以的。
3. F(*arg1)
上面两种方式是有多少个形参,就传进去多少个实参,但有时候会不确定有多少个参数,则此时第三种方式就比较有用,它以一个*加上形参名的方式来表示这个函数的实参个数不定,可能为0个也可能为n个。注意一点是,不管有多少个,在函数内部都被存放在以形参名为标识符的元组中。
代码如下:
def a(*x):print x
a(1,2,3)
(1, 2, 3)
a(x=1,y=2,z=3)
Traceback (most recent call last):
File "stdin", line 1, in module
TypeError: a() got an unexpected keyword argument 'x'
4. F(**arg1)
形参名前加两个*表示,参数在函数内部将被存放在以形式名为标识符的dictionary中,这时调用函数的方法则需要采用arg1=value1,arg2=value2这样的形式。
代码如下:
def a(**x):print x
a(x=1,y=2,z=3)
{'y': 2, 'x': 1, 'z': 3} #存放在字典中
a(1,2,3) #这种调用则报错
Traceback (most recent call last):
File "stdin", line 1, in module
TypeError: a() takes exactly 0 arguments (3 given)
我们经常会用到python的内置函数,但python库中的内置函数何其之多,有时候难免会忘了这个函数的功能。这时候我们可以在
pycharm中把鼠标定位到这个函数,然后用快捷键Ctrl+B去查看:
更多技术请关注Python视频教程。