我突然间发现,读书可以让人更加安静,平和的处理事情;以前总是遇到不顺心的事情会愤怒,会心直口快;随着自己对脑袋的理解,以及对情绪背后的深层含义,慢慢的整个人心境也平稳了许多;开始学会了接受不同,接受质疑;同时也学会了什么时候该放弃,什么时候该接受;也明白了想和做联系起来,“学而不思则罔,思而不学则殆”中,也让我明白了每天思考很多的东西,但是不去学习,所以困惑也解不开,但是现在我明白了,要去学习知识,才能让自己更加活的明白,通透;
上一节我们学习到函数,也实习了一下例子,接下来我们详细了解一下函数的使用;
你可以定义一个由自己想要功能的函数,以下是简单的规则:
1. 函数代码块以 def 关键词开头,形如 def functionname( parameters ):。 2. 括号内是传入parameters是参数或者是自变量,括号之间可以用于定义参数。 3. 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以冒号起始,并且缩进。 4. return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
写一个简单例子,传入一个字符串,并且输出到屏幕上;
>>> def show(str): ... "打印字符串" ... print str ... return ... >>> show('python') python >>> show('cooper') cooper >>>
定义一个函数名称,并且指定了传入的参数,和实现功能的代码块;这样基本完成了一个函数,此函数也可以被其他函数所调用;
>>> show('python') python >>> show('cooper') cooper >>>
函数主要有必备参数,关键字参数,默认参数,不定长参数等等;
必备参数是以正确的顺序传入函数。调用时的必须和声明一样;比如show函数,必须传入一个参数不然会报错;
>>> show() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: show() takes exactly 1 argument (0 given) >>>
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
参数一致:
>>> show( str = 'python') python >>>
参数不一致:
>>> def showname(name , age): ... print"name:",name ... print"age:",age ... return ... >>> showname(age =3, name='cooper') name: cooper age: 3 >>>
调用函数时,默认参数的值如果没有传入,则被认为是默认值。
>>> def showname(name, age=34): ... print"name:",name ... print"age:",age ... return ... >>> showname(wiki) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'wiki' is not defined >>> showname('cooper') name: cooper age: 34 >>>
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。基本语法如下:
def functionname([formal_args,] *var_args_tuple ): "函数_文档字符串" function_suite return [expression]
加了星号(*)的变量名会存放所有未命名的变量参数。不定长参数实例如下:
>>> def showname(arg1,*var): ... print"arg1:",arg1 ... for va in var: ... print va ... return ... >>> showname(10) arg1: 10 >>> showname(80,90,70) arg1: 80 90 70 >>>
python 使用 lambda 来创建匿名函数。lambda是一个表达式,而不是一个代码块了;仅仅能在lambda表达式中封装有限的逻辑进去;基本语法如下:
lambda [arg1 [,arg2,.....argn]]:expression
>>> sub = lambda arg1, arg2: arg1-arg2 >>> sub(10,20) -10 >>> sub(20,20) 0 >>>
return语句表示退出函数,return 可以有返回值,没有则是返回None;
>>> def sub(arg1,arg2): ... sub = arg1-arg2 ... print "sub:", sub ... return sub ... >>> sub(10,20) sub: -10 -10 >>>
变量分为全局变量和局部变量;
定义在函数外的拥有全局变量;全局变量是可以在程序范围内访问;
定义在函数内拥有一个局部作用域;局部变量只能在被声明函数内部访问;
>>> total = 0 # 全局变量 >>> def sub(arg1,arg2): ... sub = arg1-arg2 # sub 局部变量 ... print "sub:", sub ... return sub ... >>> sub(10,20) sub: -10 -10 >>>
繁忙的一天结束了,也为自己这个文章写个结尾;不在有没有人看,只在乎自己在这个过程中努力过;