Python2.7 函数(四)

Python2.7 函数

前言

我突然间发现,读书可以让人更加安静,平和的处理事情;以前总是遇到不顺心的事情会愤怒,会心直口快;随着自己对脑袋的理解,以及对情绪背后的深层含义,慢慢的整个人心境也平稳了许多;开始学会了接受不同,接受质疑;同时也学会了什么时候该放弃,什么时候该接受;也明白了想和做联系起来,“学而不思则罔,思而不学则殆”中,也让我明白了每天思考很多的东西,但是不去学习,所以困惑也解不开,但是现在我明白了,要去学习知识,才能让自己更加活的明白,通透;

上一节我们学习到函数,也实习了一下例子,接下来我们详细了解一下函数的使用;

定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

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语句表示退出函数,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
>>> 

结束

繁忙的一天结束了,也为自己这个文章写个结尾;不在有没有人看,只在乎自己在这个过程中努力过;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值