2018/03/02
(1)函数:
(2)lambda表达式,filter(),map()
(3)字典:
(1)函数:
#coding=utf-8
'''
Created on 2018年3月2日
@author: Administrator
'''
#定义函数,并加参数
def MyFirstFunction(x,y):
print('this is my first function',x,y)
return
def FunctionAdd(a,b):
sum=a+b
return sum
#默认参数,关键字参数 (例子是两个概念,看下面引用)
def MyThirdFunction(a='我是',b='HERO'):
print(a,b)
#搜集参数,当不确定有多少参数时
def MyFourthFunction(*params):
print('参数长度:',len(params),'参数为:',params)
if __name__ == '__main__':
#向上寻找函数,找到即执行,找不到就会报错
#最好给x赋值
for x in range(3):
MyFirstFunction(x,x+1)
x=FunctionAdd(1, 2)
print(x)
#引用默认参数
MyThirdFunction()
#引用关键字参数
MyThirdFunction(b='苍井空',a='世界级大师:')
MyThirdFunction('苍井空:','世界级大师')
MyFourthFunction(1,'d',4)
*形参和实参
形参:定义函数时定义的参数
实参:使用函数时传入的参数
*函数文档
*__doc__
*关键字索引
(2)内嵌函数与闭包:
#局部变量变为全局变量使用‘global’关键字:
#支持内嵌函数,只能在func1中调用func2,外部不可见
def func1():
print('func1')
def func2():
print('func2')
func2()
#闭包:如果在一个内部函数里,对外部作用域变量进行引用,内部函数就会定义为闭包
def func3(x):
def func4(y):
return x*y
return func4
#闭包修改外部函数,使用闭包关键字
def func5(x):
def func6():
nonlocal x
x=x*x
return x
return func6
if __name__ == '__main__':
#内嵌函数
func1()
#闭包第一种方法
re=func3(10)(20)
#闭包第二种方法
re=func3(10)
print(re(50))
#修改闭包外部变量
print(func5(10))
(2)lambda表达式,filter(),map()
#coding=utf-8
'''
Created on 2018年3月2日
@author: Administrator
'''
#屌丝函数
def Function1(x):
return x%2
if __name__ == '__main__':
#(1)lambda表达式, 定义匿名函数
# lambda语法: lambda 变量x :要执行的语句
x=lambda a:a+1
print(x(3))
#filter()内置函数,过滤,返回为真的!!!
#首先是屌丝函数写法
a=[1,5,6,7,8]
print(list(filter(Function1,a)))
#下面是lambda表达式写法,简洁,给力!
print(list(filter(lambda x:x%2,a)))
#map()函数,将后面可迭代序列,放在前面的函数中加工,并返回加工后的序列,屌丝函数不再举例
print(list(map(lambda x:x%2,a)))
(3)字典:
#coding=utf-8
'''
Created on 2018年3月2日
@author: Administrator
'''
#字典:python中唯一的映射类型
#元组,列表为序列类型
#{} 标志
if __name__ == '__main__':
dict={1:'wang',2:'ha'}
#print(dict['1'])
dict=dict.fromkeys(range(10),'哈')
#获取key
for each in dict.keys():
print(each)
#获取value
for each in dict.values():
print(each)
#获取(k,v)
for each in dict.items():
print(each)
#如果get不到key ,则打印'te'
print(dict.get(100,'te'))
#清空字典
#print(dict.clear())
#浅拷贝copy()
b=dict.copy()
print(b)
#pop 弹出值,popitem 弹出第一个kv对
print(b.pop(4))
print(b.popitem())
#update 更新
c={2:'wangran'}
b.update(c)
print(b)