您的位置:首页 > 编程语言 > Python开发

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