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的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
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的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。