六、函数篇
内置函数:
help()
dir()
type()
id()
is 比较内存地址(==比较的是值)
var() 当前模块的所有变量(系统的和自己定义的)
系统的:
'file':程序的路径
'__doc__':注释的内容
'__name__':'__main__' 这个很重要,代表程序的主入口
'__package__':None
reaload(temp):比如说你import了一个模块,然后你又改动了这个模块的内容,这个时候你就需要重新导入,默认你import了某个模块,你再次又import了这个模块,它不会真的重新导入,它还是原来的内容,这个时候就需要用到reaload了。
--------------------------------------------------------------------------------------
cmp(2,3) abs() bool() divmod(10,3) 取得商和余数组成的元组 max() min() sum() pow(2,11) 幂,2的11次方
---------------------------------------------------------------------------------------
len()
all() 接收一个序列,然后进行判断,如果所有的值都是真的,则返回真,只要有空值,就会返回假
如下:
>>> a = [1,2,3,4,5] >>> b = [1,2,3,"",5] >>> all(a) True >>> all(b) False >>>
这个在判断用户输入是否为空的时候特别好用。
any() 和all()相似,any()是只要有一个是真就是真,否则就是假
----------------------------------------------------------------------------------------
chr(65)----->A 接收一个数字返回一个asci码 ord('A')----->65 接收一个asci码返回一个数字 hex(12)------>0xc 十进制的12转换成16进制 oct(12)------>0o14 十进制的12转换成8进制 bin(12)---->0b1100 十进制的12转换成2进制
-----------------------------------------------------------------------------------------
range() xrange() >>> li = [11,22,33,44,55] >>> for k,v in enumerate(li):print (k,v) 0 11 1 22 2 33 3 44 4 55
枚举:默认情况下enumerate会将找出它的下标和对应的值
你也可以设置从1开始
>>> li = [11,22,33,44,55] >>> for k,v in enumerate(li,1):print (k,v) 1 11 2 22 3 33 4 44 5 55
设置从1开始的意义在于假如是一个购物车,你不可能让用户选择从0开始,肯定是从1开始,然后具体取值的时候就是用户选择的-1就是它的索引了。
map
filter
reduce
=======================================================================================================================================
自定义函数
定义
def 函数名(参数):
...
函数体
...
调用
函数名()
------------------------------------------
普通参数:
# ######### 定义函数 #########
# name 叫做函数func的形式参数,简称:形参
def func(name):
print name
# ######### 执行函数 #########
# 'wupeiqi' 叫做函数func的实际参数,简称:实参
func('wupeiqi')
返回值:
如果函数你默认没有写返回值,默认返回None
------------------------------------------
默认参数:
def func(name, age = 18):
print "%s:%s" %(name,age)
# 指定参数
func('wupeiqi', 19)
# 使用默认参数
func('alex')
注:默认参数需要放在参数列表最后,也可以有多个
-------------------------------------------------------------------------
动态参数:可以一次性传入多个不确定的参数
动态参数1:------->加1颗*是为了传列表和元组
def func(*args):
print args
# 执行方式一
>>>func(11,33,4,4454,5)
(11, 33, 4, 4454, 5)
# 执行方式二
>>> li = [11,22,33,44,55]
>>> func(*li)
(11, 22, 33, 44, 55)
动态参数2:-------->加2颗*是为了传字典
def func(**kwargs):
print kwargs
# 执行方式一
>>> func(name='alex',age=18)
{'name': 'alex', 'age': 18}
# 执行方式二
>>> dic = {'name':'alex','age':18}
>>> func(**dic)
{'name': 'alex', 'age': 18}
动态参数3:-------->无敌模式
def func(*args, **kwargs):
print args
print kwargs
执行方式:
>>> func(1,2,3,4,k1='rooney',k2='ramos')
(1, 2, 3, 4)
{'k1': 'rooney', 'k2': 'ramos'}
注:str.format就是对这个的典型应用
-----------------------------------------------------------------------------