Python学习第三天
1、函数
1.1 def关键字 XXX函数名( 参数列表):
{
方法体.....
}
注意:参数如果前面带*号,意味着为参数列表,即可以给多个参数,类似于一个数组
1.2 调用区别
XXX(a=' ',b=' ') 通过赋值的形式可以随意改变实参为位置
1.3 默认参数,定义时就将参数赋值
def XXX(a='sdfs',b):
{
}
1.4 函数赋值
mix=XXX
mix 为 none
1.5 全局变量(在函数内部可用global定义全局变量 )
当定义了一个全局变量时,并且给它赋值。在函数内部要修改这个全局变量时,Pyhton会自动使用shaow函数将这个修改屏蔽,也就是修改不了,修改的时函数内部自动创建的同名变量,执行完函数后这个同名变量被回收掉。
1.6 闭包
def mix1():
def mix2(y):
return x*y;
return mix2
调用方式:mix1(8)(5) 或 i=mix1(8) i(5)
2、lambda表达式
2.1 创建
2.1.1普通:
def 函数名字(参数列表){ 方法体}
2.1.2Lambda:
lambda 参数:方法体
lambda x,y:x+y
2.2 两个内置函数
2.2.1 filter过滤器
filter(过滤方法,过滤内容)
list(filter(lambda x:return x%2,range(10))) 结果为 1 3 5 7 9
2.2.2 map
list(map(lambda x:x*2,range(10))) 结果为【0,2,4,6,8,10,12,14,16,18】
3、递归
与其他语言类似,跳过
4、字典
字典是一种类似于JSON的情况,也就是键值对的形式
4.1 创建
4.1.1常用
XX变量 = {'key1':'value1','key2':'value2'}
其中key,value也可以是整型
4.1.2不常用
dict3=dict((('F',70),('C',67)))
dict3=dict(XX=‘XXX’,XX=‘XXX’)
4.2 修改
通过索引key赋值
dict1={‘111’:'sss','222':'yyyy'}
dict1['111']='zzz'
注意,如果赋值的key字典里面没有,将会自动增加该key
4.3字典的内嵌方法
4.3.1 fromkeys()
dict1={}
dict1.fromkeys((1,2,3),'sss') 结果为 1:'sss' 2:'sss' 3:'sss'
该方法只能为所有的key赋值相同的value
4.3.2 keys() 和 value()
访问key 访问value
4.3.3 get(X1,X2) ,X2可不填
和print()差不多,但是print在访问字典没有改key时会报错,而get则默认打印none,如果填了X2则在访问不到该key时则打印X2
4.3.4 in 和 not in
在字典里面in和not in是根据key判断是否存在,而在序列里面则是根据元素的值
4.3.4 clear()
清空字典
4.3.5 popitem()
随机移除一个key
4.3.6 setdefault() 和 get()雷同
4.3.7 update()
原理是用一个字典更新另一个字典
b={'111':'222'}
a={'222':'333'}
a.update(b)
a变为 {‘222’:'333','111':'222'}
5、集合
5.1 概念 用大括号括起来,但是只是一个个元素,没有键值对的形式,没有重复元素,不能索引。
5.2 创建
5.2.1 直接用括号括起来
5.2.2 用set创建
num1=set{[1,2,3,4,5]}
5.2.3 不可变集合
num1=frozen{[1,2,3,4,5]}