首页 > 技术文章 > Python学习三

tyyhph 2017-09-14 17:40 原文

定义函数:

自定义函数: def  名字(参数):

                                函数体  

                               返回值

再调用就行

空函数: 

               pass函数就为空

pass还可以用在其他语句里,比如:

if age >= 18:
    pass

缺少了pass,代码运行就会有语法错误。

参数检查:

数据类型检查可以用内置函数isinstance

返回多个值:

设置p(a,x):返回多个参数 return x, y

 

默认参数:

设计str、None这样的不变对象

我们可以用None这个不变对象来实现:

def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L

可变参数:

作为一个list或tuple传进来

由于参数个数不确定,我们首先想到可以把a,b,c……作为一个list或tuple传进来,这样,函数可以定义如下:

def calc(numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum


作为一个可变参数:只需要加一个*号
def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum

有一个list或者tuple,要调用一个可变参数怎么办?可以这样做:

 nums = [1, 2, 3]
 calc(nums[0], nums[1], nums[2])

所以Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:

nums = [1, 2, 3]
calc(*nums)

关键字参数:

def person(name, age, **kw):
    print 'name:', name, 'age:', age, 'other:', kw

>>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}

关键字参数** 必须要有等于号才能赋值。

*args是可变参数,args接收的是一个tuple;

**kw是关键字参数,kw接收的是一个dict。

 
 
 

推荐阅读