Python基础复习
基础数据类型
list
- 创建
list1 = ['str', 'str2', 1997, 2000]; |
- 访问数据
list[0]; |
3.修改数据
|
4.内置函数
方法 | 描述 |
---|---|
list.append(x) | 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。 |
list.extend(L) | 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。 |
list.insert(i, x) | 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。 |
\list.remove(x) | 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。 |
list.pop([i]) | 从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被删除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。) |
list.clear() | 移除列表中的所有项,等于del a[:]。 |
list.index(x) | 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。 |
list.count(x) | 返回 x 在列表中出现的次数。 |
list.sort() | 对列表中的元素进行排序。 |
list.reverse() | 倒排列表中的元素。 |
list.copy() | 返回列表的浅复制,等于a[:]。 |
for i, v in enumerate([‘tic’, ‘tac’, ‘toe’]): | 遍历list 索引,值 |
list–> deque
列表的最后添加或者弹出元素速度快,然而在列表里插入或者从头部弹出速度却不快(因为所有其他的元素都得一个一个地移动)。
from collections import deque |
列表映射
2, 4, 6] vec = [ |
- 同时遍历多个序列
'name', 'quest', 'favorite color'] questions = [ |
元组
-
创建同list
-
元组不予许修改(但是del可以删除整个元组)
-
内置函数
Python 表达式 | 描述 |
---|---|
len((1, 2, 3)) | 计算元素个数 |
(1, 2, 3) + (4, 5, 6) | 连接 |
(‘Hi!’) * 4(结果 (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’)) | 复制 |
3 in (1, 2, 3)(返回bool) | 元素是否存在 |
for x in (1, 2, 3) | 迭代 |
max(1,2) | 返回最大值 |
tuple(list) | list转元组 |
dict
dict 字典{‘key’:value}其中key可以是任意不可变类型且必须唯一,value则是任何数据类型都可。类似于hashmap
- 删除元素
del dict['name'] |
2.映射
2 for x in (2, 4, 6)} {x: x** |
序号 | 函数及描述 |
---|---|
len(dict) | 计算字典元素个数,即键的总数。 |
str(dict) | 输出字典以可打印的字符串表示。 |
type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
for k, v in knights.items() | 遍历键值对 |
radiansdict.copy() 返回一个字典的浅复制
radiansdict.fromkeys(seq[,val]) 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
key in dict
如果键在字典dict里返回true,否则返回false
radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys()
以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里
radiansdict.values()
以列表返回字典中的所有值
集合
集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素(常见的集合操作 交并差)。
可以用大括号 ({}) 创建集合。注意:如果要创建一个空集合,你必须用 set() 而不是 {} ;后者创建一个空的字典,下一节我们会介绍这个数据结构。
b=set(list) |
函数
可变参数列表
可变参数列表,参数被包装进一个元组(查看元组和序列)。
在这些可变个数的参数之前,可以有零到多个普通的参数:
def arithmetic_mean(*args): |
模块
模块类似于代码的文件性封装,在文件内自成一个变量的作用域,不影响外部文件的变量。
__name__属性
-
每个模块都有一个 name 属性
-
一个模块被另一个程序第一次引入时,其主程序将运行。
如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用 name 属性来使该程序块仅在该模块自身运行时执行。
(作用之一,是在开发完一个模块时,在该模块中测试,单独写一个块测试方法,完了要被引入的时候不执行该块)
|
dir() 函数
内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回:
包
如果说模块是代码,多个方法的封装,那么包就是模块的封装
init.py
-
每个包都有一个__init__.py 文件
-
目录只有包含一个叫做 init.py 的文件才会被认作是一个包,主要是为了避免一些滥俗的名字(比如叫做 string)不小心的影响搜索路径中的有效模块。
-
最简单的情况,放一个空的 :file:init.py 就可以了。当然这个文件中也可以包含一些初始化代码或者为(将在后面介绍的) __all__变量赋值。
all
如果包定义文件 init.py 存在一个叫做 all 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入
__all__ = ["echo", "surround", "reverse"] |
path
包位于操作系统的物理存储路径
输入输出
str.format()
print('hello {}orld{}'.format('w','!')) |
%
% 操作符也可以实现字符串格式化。 它将左边的参数作为类似 sprintf() 式的格式化字符串, 而将右边的代入, 然后返回格式化后的字符串. 例如:
import math |
因为 str.format() 比较新的函数, 大多数的 Python 代码仍然使用 % 操作符。但是因为这种旧式的格式化最终会从该语言中移除, 应该更多的使用 str.format().
面向对象
class A: |
类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。
类的方法
在类地内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数
类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用 slef.__private_methods。
类中内置函数
init : 构造函数,在生成对象时调用
del : 析构函数,释放对象时使用
repr : 打印,转换
setitem : 按照索引赋值
getitem: 按照索引获取值
len: 获得长度
cmp: 比较运算
call: 函数调用
add: 加运算 对象+
sub: 减运算 对象-
mul: 乘运算
div: 除运算
mod: 求余运算
pow: 乘方
运算符重载
class Vector: |
类中property属性
property对象值写法
对属性的get set del doc说明包装
如果 c 是 C 的实例化, c.x 将触发 getter,c.x = value 将触发 setter , del c.x 触发 deleter。
如果给定 doc 参数,其将成为这个属性值的 docstring,否则 property 函数就会复制 fget 函数的 docstring(如果有的话)。
class C(object): |
装饰器写法
以上写法类似于
# 只有python3的类中继承object才有 下面的写法 python3中默认类继承object |
with的自动关闭资源
- 任何实现了__enter__ __exit__方法的对象都可以称为上下文管理器,上下文管理器对象都可以使用with关键字。file就实现了。
- 上下文:我们知道不同的语句在不同的场景中说出中其寓意大不形同,而上下文管理器就是这样一个管理代码运行的上下文环境的东东,
在__enter__式记录该下文所需要的资源对象,在下文中使用完资源退出__exit__自动将资源关闭,以减少code量。
|
装饰器写法
from contextlib import contextmanager |