函数及参数http://www.cnblogs.com/Eva-J/p/7125925.html
文件的修改操作、删除操作,with语句
函数:
函数的定义:def 函数名(形参1,形参2....):
函数的调用:函数名(实参1,实参2)
函数的返回值:
定义阶段:return
三种情况:没有返回值,返回一个值,返回多个值
调用阶段:接收返回值,变量 = 函数名()
函数的参数:
形参:(定义阶段)
位置参数
默认参数(关键字参数)
实参:(调用阶段)
按照位置传参数
按照关键字传参数、
动态参数
*args :接收所有按照位置传的参数,接收到的是参数组成的元祖
**kwargs :接收所有按照关键字传的参数,接收到的是参数组成的字典
所有的参数的顺序:位置参数,*args,默认参数,**kwargs
魔性的用法:
在调用函数的时候,可以打散:*l(按顺序打散)、**dic(打散)
#魔性的用法
# def my_sum(*args): #聚合
# print(args)
# # sum_2 = 0
# # for i in args:
# # sum_2 += i
# # return sum_2
# l = [1,24,5,7]
# # ret = my_sum(l[0],l[1],l[2],l[3])
# ret = my_sum(*l) #按顺序打散
# print(ret)
# def func(**kwargs):
# print(kwargs)
#
# # func(b=2,a=1)
# dic = {'a':1,'b':2}
# func(**dic)
#函数的嵌套调用和函数的嵌套定义
#命名空间:三种:内置 全局 局部
#作用域:两种:全局 局部
#作用域链:名字的使用 是从小范围到大范围的就近事件
#globals和locals方法
#小范围可以使用大范围的,但不能修改
#如果想要修改全局的:使用global关键字 —— 尽量避免
#如果想要修改最近拥有该变量的外层函数的:使用nonlocal ——不影响全局
总结一:
定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。
def 是固定的,不能变,必须是连续的def三个字母,不能分开。。。它们要相亲相爱的在一起。
空格 为了将def关键字和函数名分开,必须空(四声),当然你可以空2格、3格或者你想空多少都行,但正常人还是空1格。
函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能
括号:是必须加的,先别问为啥要有括号,总之加上括号就对了!
注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。
调用:就是 函数名() 要记得加上括号
1.函数名()
函数名后面+圆括号就是函数的调用。
2.参数:
圆括号用来接收参数。
若传入多个参数:
应按先位置传值,再按关键字传值
具体的传入顺序应按照函数定义的参数情况而定
3.返回值
如果函数有返回值,还应该定义“变量”接收返回值
如果返回值有多个,也可以用多个变量来接收,变量数应和返回值数目一致
无返回值的情况:
函数名()
有返回值的情况:
变量 = 函数名()
多个变量接收多返回值:
变量1,变量2,... = 函数名()