第五章 数字
-
数字,Python支持多种数字类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数型
-
整型
- 布尔型,该类型只有False和True两个值
- 标准整型,取值范围是-231到231-1
- 长整型,与机器支持的虚拟内存大小有关,能轻松表达很大的整型。在整型值后面加上L,表示这个整型是长整型
-
双精度浮点型
- 类似与C的double类型,可直接十进制或科学计数法表示
- 浮点型值通常有一个小数点和一个可选的后缀e(表示科学计数法)
-
复数
- 复数由实数部分和虚数部分构成。虚数不能单独存在,总是和一个值为0.0的实数部分一起来构成一个复数
- 虚数语法:real+imagej
- conjugate(),返回该复数的共轭复数对象
-
操作符
-
混合模式操作符,+
- 当两个相加的对象属于不同类型,系统会自动将两个对象转换成同一类型再相加
-
标准类型操作符(见第4章第5节)
-
算数操作符
算数操作符 功能 +a 结果符号不变 -a 结果符号取负 a + b a 加 b a - b a 减 b a ** b a 的 b次方 a * b a 乘 b a / b a 除 b a // b a 地板除 b,舍去结果小数部分 a % b a 取余 b -
位操作符(只适用于整型)
位操作符 功能 ~num 对位的每一位取反,结果为-(num + 1) num1 << num2 num1 左移 num2 位 num1 >> num2 num1 右移 num2 位 num1 & num2 num1 与 num2 按位与 num1 |num2 num1 与 num2 按位或 num1 ^ num2 num1 异位 num2
-
-
内建函数与工厂函数
-
标准类型函数(见第4章第6节)
-
数字类型函数
类(工厂函数) 操作 bool(obj) 返回obj对象的布尔值 int(obj,base=10) 返回一个字符串或数值对象的整型 long(obj,base=10) 返回一个字符串或数值对象的长整型 float(obj) 返回一个字符串或数据对象的浮点型 complex(str) or complex(real, inag=0.0) 返回一个字符串的复数表示 函数 功能 abs(num) 返回num的绝对值 coerce(num1, num2) 将num1和num2转换为同一类型,然后以一个元组的形式返回 divmod(num1, num2) 除法-取余运算的结合,返回(num1/num2,num1%num2) pow(num1, num2, mod=1) 取num1的num2次方,如果提供mod参数,则计算结果再对mod进行取余计算 round(flt,ndig=1) 接受一个浮点型flt并对其四舍五入,保存ndig位小数 3. 仅用于整型的函数
函数 操作 hex(num) 将数字转换成十六进制数并以字符串形式返回 oct(num) 将数字转换成八进制并以字符串形式返回 chr(num) 将ASCII值的数字转换成ASCII字符,范围只有0~255 ord(char) 接受一个ASCII或Unicode字符,返回相应的ASCII值或Unicode值 unichar(num) 接受Unicode码值,返回对应的Unicode字符
-
-
其他数字类型
- 布尔值
- 十进制浮点型
-
相关模块
模块 介绍 decimal 十进制浮点运算类 array 高效数值数组 math/cmath 常规数学运算在math模块,复数运算在cmath模块 operator 数组操作符的函数实现 random 多种伪随机数生成器 - random模块
- randint(),两个整型参数,返回二者之间的随机整型
- randrange(),接受和range()函数一样的参数,随机返回range()结果的一项
- uniform(),返回两者之间的随机浮点型
- random(),随机返回0~1的小数
- choice(),随机返回给定序列的一个元素
- random模块
第六章 序列:字符串、列表和元组
-
序列
-
标准类型操作符
-
序列类型操作符
序列操作符 作用 seq[ind] 获得下标为ind的元素 seq[ind1:ind2] 获得下标从ind1到ind2间的元素集合 seq[::ind] ind不为0,负号表示反转序列,数字代表隔ind个取一个元素 seq*expr 序列重复expr次 seq1+seq2 连接序列seq1到seq2 obj in seq 判断obj元素是否包含在seq中 obj not in swq 判断obj元素是否不包含在seq中 函数 含义 list(iter) 把可迭代对象转换为列表 str(obj) 把obj对象转换成字符串 unicode(obj) 把对象转换成unicode字符串 basestring() 抽象工厂函数,为str和Unicode函数提供父类 tuple(iter) 把一个可迭代对象转换成一个元组对象 enumerate(iter) 接受一个可迭代对象作为参数,返回一个enumerate对象 len(seq) 返回seq的长度 max(iter, key=None) or max(arg0,arg1…,key=None) 返回iter或(arg0,arg1…)中的最大值。如果指定key值,则key是一个可以传给sort()方法的,用于比较回调函数 min(iter, key=None) or max(arg0,arg1…,key=None) 返回iter或(arg0,arg1…)中的最小值。如果指定key值,则key是一个可以传给sort()方法的,用于比较回调函数 reversed(seq) 接受一个序列作为参数,返回一个以逆序访问的迭代器 sorted(iter,func=None,key=None,reverse=False) 接受一个可迭代对象作为参数,返回一个有序的列表 sum(seq,init=0) 返回seq和可选参数init的总和 zip([it0, it1, …inN]) 将对象中对应的元素打包成一个个元组,返回由这些元组组成的列表
-
-
字符串的创建、赋值、访问
-
字符串和操作符
- 标准类型操作符
- 序列操作符切片
-
只适用于字符串的操作符
格式化 转换方式 %c 转换成字符(ASCII码值, 或者长度为1的字符串) %r 优先用repr()函数进行字符串转换 %s 优先用str()函数进行字符串转换 %d / %i 转成有符号十进制 %u 转成无符号十进制 %o 转成无符号八进制 %x / %X 转成无符号十六进制 %e / %E 转成科学计数法 %f / %F 转成浮点数 %% 输出% -
内建函数
-
字符串内建函数
-
字符串的独特特性
-
特殊字符串和控制字符
转义字符 说明 \0 空字符Null \a 响铃字符 \b 退格 \t 横向制表符 \n 换行 \v 纵向制表符 \f 换页 \r 回车 \e 转义 \‘’ 双引号 \’ 单引号 \\ 反斜杠 -
三引号:单引号或双引号用来定义字符串,三引号则用来定义多行字符串
-
-
Unicode
- 计算机支持的多种语言的秘密武器
- Unicode支持多种编码格式
-
相关模块
-
字符串类型的相关模块
模块 描述 string 字符串操作相关函数和工具 re 正则表达式 struct 字符串和二进制之间的转换 c/StringIO 字符换缓冲对象 base64 Base16、32、64数据解码 codecs 解码器注册和基类 crypt 进行单方面加密 difflib 找出序列间的不同 hashlib 多种不同安全哈希算法和信息摘要算法的API hma HMAC信息鉴权算法的Python实现 md5 RSA的MD5信息摘要鉴权 rotor 提供多平台的加解密服务 sha NIAT的安全哈希算法SHA stringprep 提供用于IP协议的Unicode字符串 textwrap 文本包装和填充 unicodedata Unicode数据库
-
-
字符串关键点总结
- 单引号或者双引号之间的字符数组或者连续的字符集合,就是字符串
- 字符串格式化操作符(%)提供类似printf()的功能
- 三引号
-
列表
- 序列式的数据类型,可以通过下标或者切片操作来访问某一个或某一块连续的数据
- 可以执行pop、empty、sort、reverse操作
- 对单独或多个元素进行insert、update、remove操作
-
列表操作符
- 标准操作符
- 序列类型操作符
- [] 和 [:]
- in 和 not in
- +、*
- 列表操作符(第八章)
-
内建函数
-
列表类型的内建函数
列表函数 作用 list.append(obj) 向列表中添加一个对象obj list.count(obj) 返回一个对象obj在列表中出现的次数 list.extend(seq) 把序列seq的内容添加到列表中 list.index(obj, i=0, j=len(list)) 返回list[k]==obj的值,并且k的范围在i<=k<j;否则会引发ValueError异常 list.insert(index, obj) 在索引量为index的位置插入对象obj list.pop(index=-1) 删除并返回指定位置的对象,默认是最后一个 list.remove(obj) 从列表中删除对象obj list.reverse() 反转列表 list.sort(func=None, key=None, reverse=False) 对列表进行排序 -
列表的特殊特性
- 用列表构建其他数据结构
- 堆栈,后进后出的数据结构
- 队列,先进先出的数据类型
- 用列表构建其他数据结构
-
元组
- 与列表相近的一种容器类型;与列表不同的地方是,元组是一种不可变类型
-
元组操作符和内建函数
-
元组的特殊特性
- 默认集合类型,函数返回的多对象都是元组类型
- 字典的关键字
-
相关模块
-
拷贝Python对象、浅拷贝和深拷贝
- 浅拷贝:新创建了一个类型跟原对象,其内容是原来对象元素的引用
- 深拷贝/完全拷贝:创建一个新的容器对象,包含原有对象元素引用全新拷贝的引用——需要copy.deepcopy()函数