Python笔记
2016-02-28 18:54
507 查看
1 基础
1.1 数据结构
字典
为映射数据类型,工作原理类似于hash表,由键值对(key-value)构成,几乎所有python对象可以是键,但是以数字或字符串为常见,值可以是任意的python对象,字典元素用大括号({})包括。>>> person={'name':'Bob'} >>> person['age']=20 >>> person {'age': 20, 'name': 'Bob'} >>> person.keys() ['age', 'name'] >>> person['name'] 'Bob' >>> for key in person: ... print key,person[key] ... age 20 name Bob
List
>>> l=['a','b','c'] >>> type(l) <type 'list'> >>> l.remove('a') >>> l ['b', 'c'] >>> l.insert(2,'aa') >>> l ['b', 'c', 'aa'] >>> len(l) 3
List转字符串
转换有时是必要的,比如需要把List输入一个以字符串为输入的函数时。
>>> li = ['1','2','3','4'] >>> str=','.join(li) >>> str '1,2,3,4'
1.2 正则表达式
正则表达式由文本和特殊字符组成,用来在字符串中筛选出匹配模式的子串。文本匹配特定字符串,而特殊字符匹配字符串集合,定义字符集合、子组匹配、模式重复次数、匹配位置,使正则表达式具有强大的表达能力。^ 匹配字符串的开始。
$ 匹配字符串的结尾。
\b 匹配一个单词的边界。
\d 匹配任意数字。
\D 匹配任意非数字字符。
x? 匹配一个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。
x* 匹配0次或者多次 x 字符。
x+ 匹配1次或者多次 x 字符。
x{n,m} 匹配 x 字符,至少 n 次,至多 m 次。
(a|b|c) 要么匹配 a,要么匹配 b,要么匹配 c。
(x) 一般情况下表示一个记忆组 (remembered group)。你可以利用 re.search 函数返回对象的 groups() 函数获取它的值。
正则表达式中的点号通常意味着 “匹配任意单字符”
任意数字
\d+\.?\d*
匹配科学计数法
>>> string 'A1.45\xef\xbc\x8cb5\xef\xbc\x8c6.45\xef\xbc\x8c8.82 base_lerate:0.5 base_lr: 1e-05' >>> print re.findall(r"(\d+e\+?\d+|\d+e-\d+)",string) ['1e-05'] >>> print re.findall(r"((e|E)(\+|-)?\d+)",string) [('e-05', 'e', '-')] #((e|E)(\+|-)?\d+)包含3个分组 >>> print re.findall(r"(\d+e\+?\d+|\d+e-\d+|\d+\.?\d*)",string) ['1.45', '5', '6.45', '8.82', '0.5', '1e-05']
正则表达式函数
python正则表达式涉及到的两个对象:正则表达式对象(方法有match()、search())、匹配对象(group()、groups()).
正则表达式模块re的函数、正则表达式对象regex的方法的名字是一样的,有match()、 search()、 findAll()、sub()、subn()、split() .
2 常用函数
文件操作
打开、读写文件、复制、删除文件以及文件内容的查找、替换、比较。import numpy as np _data=np.array([[0,0,0]])#1行3列 fh = open('random.txt') lineList=fh.readlines() fh.close() for line in lineList: print li=re.findall(r"\d+\.?\d*",line)#查找当前行的所有数字 _data=np.insert(_data,0,li,axis=0)#将数字插入数组_data的首行 print _data
cpickle
3 调试
让Python脚本暂停执行的3种方法time.sleep(secs)#设置休眠时间 raw_input( )#通过等待输入来完成暂停 os.system("pause")#执行操作系统命令暂停
4 问题
ImportError:
No module named pydot如果没有安装pydot,则pip install pydot,但是执行了上述安装可能还是会出现no module错误,这是可能是机器上存在多个python版本,默认安装在一个python的搜索路径而你使用的是另一个python,这时候一种解决方案是下载 pydot2-1.0.33.tar.gz解压后执行
python setup.py install这时候会安装到你所使用的python的搜索路径下。
对已打开的文件进行读取可能得到与原始文件不一致的内容。
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法