python函数参数(可变参数tuple和关键字参数list)

1.变量可以指向函数

2.函数名其实就是指向函数的变量

3.高阶函数:能接收函数做参数的函数

4.函数的参数可以接收变量

5.一个函数可以接收另一个函数作为参数

python函数

1.系统库提供的内部函数

2.第三方提供的函数

3.自定义函数

1.系统库函数

字符函数库(),数字函数库(),网络编程库(urllib2)


>>>help(str) 字符串帮助可获得系统中的字符串函数们(同理其他函数)
>>>help(str.islower)

s.islower() //判断字符串s是否为小写

s.replace(old,new,count)


import math   #数学库

>>>value=math.sin(3.14/6)

>>>math.pi  #为派

>>>val = math.sin(math.pi/6)
>>>print val
0.5

>>>help(math) #查看math库

>>>math.pow(3,4) #  3的4次方

或者

>>>3**4       #也是代表 3的4次方

这两种方法一个是调用math库,另一个是调用本身的定义


import os

>>>os.getcwd()   #获得当前的工作路径

>>>help(os.getcwd)

os.listdir()    #列出指定路径下面的文件

网络函数库

>>>import socket
>>>baiduip = socket.gethostbyname('www.baidu.com') //获得ip
>>>print baiduip


函数返回多个值

可以

return a,b,c,d

>>>sum1,multi,plus,pow = functionaaa(2,10)  #函数一起返回,变量一起接收  ,返回的是一个 tuple 元祖

函数可设定默认值但默认值一定写在形参的右侧


函数 有 必选参数,默认参数,可变参数,关键字参数等
当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数

定义默认参数要牢记一点:默认参数必须指向不变对象!



可变参数:就是传人的参数个数是可变的,可以是0个,1个,或者任意个。
例如
算一组数字的平方和,根本不知道有几个数字,可以考虑将其放置一个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


def(1,2,3,4,5)  #而不需要list和tuple啦

定义可变参数和定义list和tuple参数相比,仅仅在参数前面加了一个*号,看着像C/C++指针一样,但在函数内部,参数numbers接收到的是一个tuple,因此函数内部代码完全不用变。

如果本身已经定义了一个list或者tuple,故传入参数时仅仅在你的list和tuple前加一个*号,就可以传参数啦

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

print calc(1,2,3,4,5)

a=[1,2,3,4,5]

print calc(*a)


区别在于调用的时候是否加上 * ,如果是list或者tuple,调用时候加*,否则就直接传参数即可。

关键字参数与可变参数区别在于:
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

就仅仅是 tuple和dict的区别

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

>>> person('Jack', 24, **kw)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3));

关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})。

使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Penguinbupt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值