1.python知识点
1.1闭包
定义:
如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)
#未使用闭包
def outer():
a = 10
inner()
def inner():
print(a)
a = 20
outer()
输出结果
#使用闭包
def outer():
a = 10
def inner():
print(a)
return inner
a = 20
outer()()
输出结果
函数的返回值必须是被包函数对象(函数名)
闭包中必须引用了外层函数作用域内的变量或者形参
1.2序列
序列是字符串法得到一个范围内的元素的集合
—都可以通过索引得到每一个元素
—默认索引值总是从零开始
—可以通过切片的方法得到一个范围内的元素的集合
—有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)
Python针对序列有非常多的内置函数ersed(),enumerate(), zip()等等。
list(), tuple(), str(), len(), max(), min(), sum(), sorted(), reversed(),enumerate(), zip()等等。
注:在Python 中 sorted 是内置函数(BIF), 而 sort() 是列表类型的内置方法(函数) list.sort()。
前者可以作用于序列的任意一种类型,甚至是字典排序,后者只能对列表类型排序。
list(列表)
- 利用弱数据类型用[ ]这种列表数据赋给变量
ls= 【1, 2, ,3, 4,,445】
也可以使用全局函数
- 访问列表的元素
因为list是有序的线性结构有下标
注意:下标从零开始
得到list中元素的个数
len(列表对象)
列表的遍历:
for 临时变量 in 容器:
每次循环的到一个元素,被保存到临时变量中也可以使用while
列表的常见方法
> * dir(模块/对象) #可以打印方法或者属性
> * help(方法) #返回帮助文档、
> * append在尾部添加新元素
> * insert(index,新元素)在index位置添加新元素
> * extend(列表)合并
> * clear()清空列表
> * remove(元素)删除对应元素
> * pop()删除最后一个元素,并返回元素
> * remove(元素)删除对应的元素,有重复删除第一个
> * index(元素)返回元素的下标索引
> * count(元素)统计某个元素在列表中的数量
> * reverse()反转列表
> * 排序{升序排列}sort()数据的类型必须相同(字母以ascll码排序)
set(集合):
* add 添加;
* pop 随机移除一个元素
* copy 浅拷贝set
* difference() 求两个集合的差集
* union 求两个集合的并集
* intersection 求两个的交集
* remove 移除元素,如果该元素不存在则抛出错误
* discard() 移除元素,如果该元素不存在则什么都不做
tuple(元组):
- 不可变数据类型(多个不变的值组成),类似与其他编程语言枚举类型
- t = (“春“,”夏“,”秋“,”冬“)
- 如图
index(元素)返回元素的下标索引
count(元素)统计某个元素在列表中的数量
dict(字典):
3、字典
字典是一种无序的、可变的序列,他的元素是以键值对的形式存储,而列表和元组都是有序的序列,他们的元素在底层都是挨着存储的。
1.字典的特征
通过键而不是通过索引来读取元素
字典是任意数据类型的无序集合
字典是可变的,并且可以任意嵌套
字典中的键必须唯一
字典中的键必须不可变
使用fromkeys()方式创建字典:
dictname = dict.fromkeys(list,value=None)—list表示字典中所有键的列表,value表示默认值,如果不写就是为空值
访问字典,命令格式为:
dictname[key]----方括号中的键是必须存在的,如果不存在会报错