函数来了,函数基础课程。
1.函数是抽象的第一步
1.1 有关高压锅
1.2 函数是抽象出来的结构,是总结,是方法
1.3 多用函数
2.如何定义函数
2.1 def是关键词,括号冒号永不忘,无缩进无真相。
2.2 没有return的函数,不是大丈夫——不是真函数。
2.3 不写doc的函数,就像没有性别的人类。
要写函数的文档也就是注释,用引号括起来写中文
用test.__doc__ 就能打印出函数的文档。
def a():
" 这里是函数的文档 "
return 3
print a.__doc__
def a(): 函数是有返回值的,一定要有return
3.函数的参数魔法和陷阱
3.1 如何定义参数
3.1.1 位置参数,可选参数,
位置参数:
def test(a,b,c):
print a
return a,b,c 返回的是一个元组。
test(1) #必须要有三个参数。
可选参数:
def test(a,s=4):
print a
可选参数有默认值的参数一定要放在后面。
test(4)
3.2 参数的值是局部变量
3.2.1 参数只在函数内部有用
3.2.1 全局变量介绍,使用方法 global 访问全局变量
3.2.2 全局变量最讨厌了
b = [1,2,3]
def a(l):
l.append(4)
return l
c = a(b)
print c
print b
把列表当做参数,在函数内部可以改变外部的列表值得,
相当于改变全局的列表值。要注意。
3.3 参数默认值
3.4 如何修改参数
3.4.1 介绍
3.4.2 这样修改东西,实在是恶心
3.5 **和*,猩猩是字典,星是元组。
#双*是字典
def test(**key):
return key
print test(k=1,c=3) #{'k': 1, 'c': 3}把参数当做元组放在key里
#单*是元组
def tuple_test(*z):
return z
print tuple_test(1,2,3) #(1, 2, 3)
def aa(*z,**ze):
return z,ze
print aa(1,2,3,4,[2,3,4],a=2,b=3)
#((1, 2, 3, 4, [2, 3, 4]), {'a': 2, 'b': 3}) 其他方式,调换位置都错的。