解释器
Cpython官方
Ipython Cpython加强版
PyPy python编写
Jython 运行在JVM
IronPython 运行在.net平台
Python是动态强类型语言
动态:声明时不需要指定类型 且随时可变
静态:声明时需指定类型 类型不可变
强类型:不同类型操作需转换为同一类型
弱类型:不同类型操作自动隐式转换
运算顺序
算数运算符>位运算符>身份运算符》成员运算符>逻辑运算符
等价布尔
空集合:
空字典
空列表
空元组
None对象
0
for else
for i in range(3):
if i ==2:
break
else:
print('lala')
当执行break后跳出整个循环 else不执行
若没有break则if和else都执行 若if没有执行 则直接执行else
三元表达式
真值 if 条件 else 假值
print(true) if true/false else print('fasle')
列表
list:内容可变的有序线性数据结构(便于查询)
链表:内容可变的有序非线性数据结构(便于插入)
queue:先进先出 (存放数据,从头取用queue,从尾取用stack)
stack:后进先出(存放数据,从头取用queue,从尾取用stack)
初始化
l=list(iterable) list(range(3))==[0,1,2] list([1,2,3])==[1,2,3] 从迭代对象中去除数据组成队列 !!有序既可迭代
l=[]
索引(index(value)和count(value少用))
list[index] 正索引从0开始负索引从-1开始 超界IndexError
list.index(value,[start,[stop]])通过值索引 少用 把所有元素遍历一遍复杂度为O(n)
list.count(value) 少用 O(n)
len(list)
修改(+进行大列表操作时少用)
list[index]=value 不可超界 O(1)
增加插入(没有返回值)
list.append(object) O(1)
list.insert(index,ojb) O(n) 少用 可超界 自动添加到头尾
list.extend(iteratable) -->none尾部追加可迭代对象 无返回值
list1+list2 ->list3连接列表 返回一个新的列表 并不对原列表修改 无引用则自动回收
list*2->list list+list