- 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。严格来说python只有函数,没有过程,人们理解的函数都是带有return的,而过程没有,但python函数可以无return,但它依旧会返回一个值--None。我们都知道Python提供了许多内建函数,比如print()。但我们也可以自己创建函数,这被叫做用户自定义函数。
一、定义一个函数
你可以定义一个由自己想要功能的函数,以下是一些简单的规则:
1、函数代码块以def关键词开头,后接函数标识符名称、圆括号()、参数及冒号;
2、函数内容以冒号起始,并且缩进;
3、函数以return[表达式]为结束标志,选择性地返回一个值给调用方。不带return返回默认返回None;
def fun1(x): x=+1 return [x]
很明显如果x起始值为1,那么经过这个简单函数后就会返回2
如果你没想好定义一个怎样的函数,你可以先定义一个空函数,这里就要用到pass语句了。
def nop(): pass
pass语句的作用是什么都不做,但这个函数不会影响代码的运行
二、函数参数
函数的参数分为两大类,一类是调用函数传进去的参数叫实际参数,另一类是函数本身定义的参数叫形式参数,参数的定义共有四种方式;
1、fun1(arg1,arg2,....)
这是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提供个数相等的值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参和实参的个数必须一致,而且必须一一对应,也就是说第一个形参对应这第一个实参。
def fun(x,y):
若调用该函数a(1,2),则表示x=1,y=2。但如果a(1)或a(1,2,3),就会因为个数不对应会报错。
2、fun2(arg1,arg2=value2,....)
这个函数的第二个形参又叫关键字参数,与第一种方式是添加了默认值。如果实参个数少于形参个数,并不会报错。
def fun(x,y=3):
若调用该函数a(1,2),则表示x=1,y=2。如果a(1)是不会报错的,y会默认为3.
3、fun3(*arg1)
这种形参又叫收集参数,表示将所有实参组成一个元组进行调用。以上两种方法是有多少形参就传进去多少个实参,但有时候不确定实参个数就可以用这种方法。
def fun(*x):
若调用函数a(1,2,3),则传进去的也是(1,2,3)。
4、fun4(**x)
形参名前加两个*表示,参数在函数内部将被存放在以形式名为标识符的dictionary中,这时调用函数的方法则需要采用arg1=value1,arg2=value2这样的形式。
def fun(**x):
若调用函数为a(x=1,y=2,z=3),则表示将传入{‘x':1,'y':2,'z':3}这样的字典。