基础数据类型包括:
数字、字符串、元组,以上为不可更改类型,无增删改操作。只能重新赋值。
列表、字典、集合,以上为可更改类型。
数字:整型 、长整形、布尔值、浮点型、复数
- 整型 :十进制(无前缀),八进制(0开头) , 十六进制(0x开头) , 二进制(0b开头)。范围与机器位数相关。
- 32位机器 :-2^31 -2^31 64位机器 -2^64 -2^64
- python2.4版本后,整型操作超出范围,自动转换为长整型
- 长整型:大小仅与系统虚拟内存限制相关。
- 布尔值 :0 或者 1( False 、True)
- 浮点型 :小数或者用e/E表示的幂。缺乏精确性。eg: 3.21 50.2E2
- 复数:虚部以j/J 结尾 eg: 2+3j
转换关系
整型之间
- 十进制到其他
- oct(12) —>8hex(12)—>16bin(12)—>2
- 其他到十进制
- int(‘otherInt’,制式) 如八进制转 int(‘100’,8)
- 或者 eval(‘0o100’)
类型转换 工厂函数
- int(string,base=10)
- long(obj,base=10)
- float(obj)
- complex(str),complex(real,imag=0.0)
- bool(obj),即obj.__nonzero__()的返回值,无此方法,默认值为True
- string()
- chr(num) ascII数值转为单字符
- ord(chr) 单字符转为ascII字符
- unichr(num) unicode码值转为字符
主要内置函数
- abs(number)
- coerce(num1,num2) 按类型转换原则,返回同类型元组
- divmod(num1,num2)返回商和余数的元组
- pow(num1,num2,mode=1) == (num1**num2)/mode
- round(nmber[,base]) 浮点四舍五入 base位
运算符 + - * / ** //(取整) % != 位操作符 & ^ ~ | << >>
真正除法 from __future__ import division >>>1/2 结果0.5
常用模块math random decimal operator
序列型 :包括 字符串、列表、元组
- 序列类型操作符
- 成员关系 in/not in
- 切片操作 [],[:],[首:尾:步长]
- 连接 + 重复 *
- 类型间转换
- list() str() unicode() tuple()
- 基本操作函数
- enumerate(iter) len(seq) max() min() reversed() sorted() sum() zip()
字符串
- 普通字符串转unicode ‘hello’+ u ‘ ‘
- 格式化操作符%
- %d 十进制 %o 八进制 %x十六进制 %s str化 %f %e科学计数 %g
- 辅助 *定义宽度或者精度 - 左对齐 + 正数显示+ <SP> # 0 m.n
- 字符串模板
- from string import Template
- s = Template(‘there are ${howmany} ${lang} question symbols’)
- print s.substitute(lang=‘python’,howmany=3)
- 原始字符串操作 r/R
- 字符串内建函数
- split() join() find() index() capitalize() upper() lower() endswith() encode()
列表
- 创建list(‘foo’) list[“aaa’,’bbb’,”擦擦擦“]
- 更新 lista.append()
- 删除 del lista[0] del lista
- 列表类型内建函数 append() pop(index) insert () remove(obj) reverse count() extend(seq) sort()
- 单元素 元组 列表 (’xxx’,) 因为()被重载为分组操作符过
映像和集合类型 :字典和集合
字典
- 创建 d={} ={‘name’:’earth’} =dict() ={}.fromkeys(9’x’,’y’),-1)
- 删除 del d[‘name’] d.clear() d.pop[‘name’ ] del d
- 字典比较 长度-》键-》值
- 内建函数 update() iter() keys from keys() get(key) clear() has_key pop values() items() setdefault()
- 支持迭代器
集合 set 可变集合 frozenset 不可变集合,一组无序无重复的元素集,用于关系测试和消除重复元素
- 字符串、列表、字典—》都可转换为set
- 操作 add, update,clear,pop,remove,discard()(有则删除,不报异常)
- 交 | (union)、并 &(intersection)、差 -(difference)、差分^(symmetric_difference)
python 浅拷贝与深拷贝
可变元素 默认浅拷贝 不可变元素 默认深拷贝
元组变量只包含原子类型对象 不深拷贝
import copy copy.copy copy.deepcopy()强制深拷贝