码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习之--函数

时间:2016-01-22 21:05:27      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

Function,函数,主要是为了:1提高代码的复用程度,2将程序模块化。

定义函数

在Python中,使用def 用来定义函数,一般函数的定义如下:

def name(arg1,arg2,....):
      statements
      return value

其中,return 用来返回函数执行的结果

一个简单的sample如下:

>>> def times(x,y):
...     return x*y
...
>>> times(5,2)
10
>>>

函数执行的结果可以放入到一个变量中:

>>> result=times(5,2)
>>> result
10
>>>

Python 不需要定义参数的类型,函数结果的返回完全依赖于传入参数的类型,在上例中,Python自动识别传入的参数为两个数字,并作出返回值,当传入一个列表参数的时候,结果如下:

>>> li=[1,2,3]
>>> times(li,2)
[1, 2, 3, 1, 2, 3]
>>>

传入字符串的时候,结果如下:

>>> a=Hello
>>> times(a,3)
HelloHelloHello
>>>

所以简单的Summary一下,传入的函数参数会被python自动识别,也就是在运算的时候‘*‘识别并对不同类型的参数变量作出了不同的应对。但是如果‘*‘不能识别或者不支持传入的参数,那么在函数运行的时候还是会报错的,如下:

>>> b=x
>>> times(a,b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in times
TypeError: cant multiply sequence by non-int of type str>>>

所以,在不确定的情况下,可以先实验一下,传入的参数会不会造成error。

 

函数参数的类型

一般参数

关键字参数:通过参数名进行匹配

默认参数:没有传入值的参数定义的默认值

可变参数:*开头,可以是多个基于位置或者关键字的参数

具体,如下的函数定义中传入了不同的参数,代表了不同的含义:

def fun(*name)                    #传入不定量的参数,这些参数会被组成一个元祖
def func(name=value)              #定义了参数的默认值
def func(**name)                  #传入不定量的参数,这些参数会被组成一个字典
def func(name,*args)              #混合方式,多余的参数会被组成一个元祖传入
def func(name,**args)             #混合方式,多余的参数会被组成一个字典传入
def func(*,name=value)            #混合方式,后面的参数name必须通过关键字参数传入

 

待续。。。。。

Python学习之--函数

标签:

原文地址:http://www.cnblogs.com/cedrelaliu/p/5151817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!