字典
字典的键(key)是唯一的
读取字典用字典名+偏移量
创建字典的方式
按键赋值法
变量赋值法
元组列表法
字典的比较
min()
max()
zip()
字典的键(key)是唯一的
读取字典用字典名+偏移量
创建字典的方式
按键赋值法
变量赋值法
元组列表法
字典的比较
min()
max()
zip()
字符串13个场景:
1.使用多个界定符分隔字符串:使用正则表达式进行分隔(\s表示空格)re模块中的[]表示里面字符里任意匹配
2.字符串开头或结尾匹配(startswith,endswith)
3.用Shell通配符匹配字符串(使用fnmatch模块)注:fnmatchcase区分大小写
4.字符串匹配和搜索
5.字符串搜索和替换:使用replace方法(指定文本模式用re模块)
模块的宏伟蓝图:模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。模块由两个语句和一个重要的内置函数进行处理。
使用模块的意义:1.代码重用;2.系统命名空间的划分;3.实现共享服务和数据。
import如何工作:1.找到模块文件;2.编译成位码(需要时);3.
字典的操作
lambda
形如以下的函数
def get_value(_key): return Q[_key]
需要按标fname或者uid排序排列时 sorted()
from operator import inemgetter
from iterator import
在Python 2.x中最后的print()需要写成print ''
元组
元组和列表非常相似只是不能在原处更改
创建元组 Tuple = (,)只有一个援素时必须加分号
模块代码编写基础:模块的使用:from/import语句,是用来导入部分变量、模块的。
from语句:可以指定要导入的具体变量(属性)。导入多个变量(属性)的时候,可以使用逗号分隔,或者使用from<module_name>import*来导入所有变量(属性),导入只发生一次
import与from是赋值语句:import与from是可执行语句。可嵌套在if,得分等语句里,直到执行该语句时才会进行解析。
import将整个模块对象赋值给一个变量名
from
Python的语句与语法-文档
• Python文档资源
Ø #注释
Ø dir函数
Ø 文档字符串:__doc__
Ø PyDoc: help函数
Ø 其它:
PyDoc: HTML报表
标准手册
网站资源
出版的书籍
Python的类型与运算-列表
• 列表的简介
• 列表的操作
• 列表的方法
列表在Python里是有序集合对象类型。
列表里的对象可以是任何对象:数字,字符串,列表或者之后会讲到的字典,元祖等等。与字符串不同,列表是可变对象,支持原处修改的操作。
Python中的列表可以完成大多数集合体数据结构的工作,而这些在稍底层一些的语言中你不得不手工去实现。
Python的列表是:
• 任意对象的有序集合
• 通过偏移读取
• 可变长度、异构以及任意嵌套
• 属于可变序列的分类
• 对象引用数组
之前在字符串里的大部分操作都可以用在列表:
合并/重复:
List1 + List2 : 结果是两个列表按顺序结合。
List1 * 3 : 结果是列表1重复三次。
for i in List1: print i : 按顺序打印列表里的内容
3 in List : 判断列表里有没有一个对象是对象3
List1.index(1) : 查找列表里第一个为1的对象的位置
List1.count(1): 查找列表里对象为1的个数
List1[x:y]: 取第x到y的对象,重新建立一个列表
len(List1): List1里的对象个数
在py里面变量是没有类型的 而对象是存放数据的 所以对象是有类型的
先创建一个对象 在创建一个变量 由变量引用这个对象 变量存放这指针 而对象是一块内存
共享引用
列表 存储形态不一样所以和整形浮点型 字符不一样
【】是列表
模块包:
包导入基础:包导入与模块导入相似,可以直接导入模块包,使用.来使用相应模块,也可以用点来分割目录。
__init__.py包文件:包导入的路径中的每个目录都必须有__init__.py文件,否则会报错。
高级模块话题:
在模块中因此数据:隐藏某些文件,可以使用如下方式:1.在__init__.py中使用变量__all__来限制导入的模块(变量)名。2.在使用下划线(_)开头的作为变量,就不会被导入了。
单元测试:__name__
1、第一个python脚本:
#test01.py
#!/usr/bin/env python
print("hello world!");
print(2 ** 100); #输出2的100次方。。
说明:.pyc是编译过的.py源代码。
2、一般可以通过交互的方式运行python脚本.
技巧:可以通过添加语句:#!/usr/bin/env python来解决python安装位置可能不同的问题,提高脚本的可移植性。
3、行和缩紧:由于python不使用{}来表示符合语句的开始和结束,所以缩紧很重要。
三引号:"""可以使用段落。
异常基础:
异常处理:try/except:捕捉由python或你引起的异常并恢复
try/finally:无论异常是否发生,执行清理行为
raise:手动在代码中触发异常
assert:有条件地在程序代码中触发异常
with/as:实现环境管理
列表
l[0:3]它取的是右开区间,所以只会取到2
print(i,end=' ')可以用空格隔开for循环的输出,而不用换行
list=[c*4 for c in 'adfada']就会将重复4次的字符串作为列表元素
list(map(abs,[-1,-32,0]))
可以产生一个绝对值列表
嵌套可以产生矩阵
字符串不可以修改,而列表却可以
list.append()可以增加元素
list.sort可以派列,按照字母顺序
list.sort(key=str.lower)这样就可以先按照小写字母来排序
list.sort(reverse=True)就可以
+和extend(list2)一样
.pop取最后一个值,会消失
python2中分有整型和长整型(结尾L)
python3中只有整型
二进制数:0b或0B开头
八进制数:0o或0O开头
十六进制数:0x或0X开头
整数转化为非十进制数:bin(i),oct(i),hex(i)
非十进制数转为整数:int(str,base),str文本型的数字,base为2,8,16.
复数:A+Bj(A为实数,Bj为虚数部分,在python中用"j"将数学中的"i"替换),或者使用complex(A,B)来表示复数。
分数:Fraction(a,b),即a/b
无穷大:float('inf') 无穷小:float('-inf')
非数字:float('nan')
位运算:&(与),|(或),^(异或),~(非),<<(左移),>>(右移)
异常编码细节:
try:检测异常
变量:一个系统表的元素,拥有指向对象的连接的空间
对象:分配的一块内存,有足够的空间去表示他们所代表的值
引用:自动形成的从变量到对象的指针
变量是存放指针的,因此变量没有类型
对象是存放数据的,所以对象有类型之说
因为对象是独立于变量的,当不再使用的时候是需要回收的
在python中两个变量可以共享一个对象,这个叫做共享引用 a=3 b=a 这个时候a跟b是共享对象3的
当a赋另一个值的时候,就会创建一个对象,a变量会引用新对象,而不是改变对象
==表示测试两个值是否相等
is表示两个值是否是同一对象
Python2.x 的一般整数是64字节(符号占一位),超过的后面有L(长整数)【特殊的两个2**62+2**62的结果能为整数】
Python3.x 没有这两种整数,只有一般整数
二进制 :0B 或0b 开头
八进制 :0O 或0o 开头
十六进制:0X 或0x 开头
将i转化进制输出(文本形式)
二进制 :bin(i)
八进制 :oct(i)
十六进制:hex(i)
int(str,base):非十进制的文本转化为整数
str是文本形式的数字,base表示进制(最多支持到36)
浮点数 用64字节来存储,精度为17位
Python 2.x 和3.x
输出要一致的话
用print repr (1.0/6)
Python 表示复数是
1.用complex(3,5)
2.3+5J
3.3+5j
分数 Fraction(4,5) 五分之四
无穷大 float('inf')
无穷小 float('-inf')
非数字 float('nan')
身份运算符:is,is not
当两个数据完全相同时才为Ture(is)
#注释
1 and 2 显示的是后面的2
1 or 2 显示的是前面的1
优先级
1. 乘方(**)
2.非(~),符号(+)和(-)
3.乘、除、取模、整除
4.加减
5.按位移
6.按位与
7.按位或(|),按位异或(^)
8.关系(<= >= < >)
9.== !=(<>)
10.赋值
11.is
12.in
13.and or not
宏观蓝图——2:
oop-属性继承搜索:查找当前,查找先继承的,查找其他
global
nonlocal
yield
lambda(百度)