人生中的第一份个工作,NLP软件工程师。在公司接到的第一个任务就是python的学习,用了一周时间把基础看了一下,又是星期一一个明媚的早上,把上个星期学习的东西总结一下。
1.python只有简单的对象类型,是一种动态类型化的语言,无须申明变量类型。python中有五种内置简单类型:bool,int,long,float,complex.
通过python id 可以查看基本pyobject标识的更改方式。同时通过严格的缩进来控制函数的作用域,一但超出作用域就会被销毁,重新创建一个新的对象。
在 Python 中,浮点值始终是按双精度处理的;因此 Python 的 float 类型对应于 C 类语言中的双精度。
其中布尔类型 True和False注意首字母要大写,0、空字符串''、空元组()、表[]、空字典{}都被当做False,其他对象都为True.超过整型的数会被自动调整成长整型,复数:z.real,z.imag.
2.python中的逻辑运算符 not, and, or想当于C中的!,&&,||。其用法也和C中的一样,但所执行的逻辑运算并不返回bool值, 而是返回它们实际进行比较的值之一。
3.python中的容器类型:tuple,string,unicode,list,set,frozenset,dictionary。list,set和STL中的差不多意义上的理解就行了,dictionary则可跟STL中的map对应,都是映射类型。但是其中tuple,string,unicode,frozenset所存储的数据就不可更改。如果出于某种原因需要更改数据,则需要创建一个新容器来保存新的数据。其余的三种是可变的,但是dictionary中的key是不可变的。
tuple是一个异构容器,创建可以拥用各种数据项,尽管不可以改变,灵活性较差,但在同一环境中使用带来的确实高速,这就是所谓的有得必有失吧。
4.在python中传建字符串,可以用单引号,双引号,三引号来定义.保证前后都有匹配就OK了.在三重引号中的任何东西都是这个函数的 doc string,doc string 在运行时可作为函数的属性。使用这个据说是非常重要的,因为在python会经常去查看一个函数的属性,它的好坏取决于您书写的 doc string 的好坏。
字符串有两种类型,str单字节字符序列,unicode 双字节字符序列.当使用 utf-8 编码时,非 unicode 字符中一个汉字的长度是 3,而使用 gb2312 时是 2.额,我们使用的就是utf-8编码,大致了解一点点.我觉得这个str对象跟C++里string的对象很象,str.+字符串方法就好了.需要用的时候查查就OK了.
5.关于python的控制流只有一句话要说的:如果一个流程控制分支下不做任何事情,记得写一句pass语句,不然Python会报错.
6.range(起点,终点,差距).用range()对一个目录进行遍历
a = ['mary', 'had','a',''little','lamb']
for i in range(len(a));
print i,a[i]
7.列表内涵的一个著名例子是生成九九乘法表:
s = [(x, y, x*y) for x in range(1, 10) for y in range(1,10) if x>=y]
print s
列表内涵可分为三部分,最左边是生成每个元素的表达式,中间是for迭代过程,最右边是可以设定if判断的过滤条件.
8.函数的使用这个这个其实和C的函数差不多,只不过更宽泛.可以返回多个值,用逗号隔开;同时参数类型没用约束,可以输入任意类型的参数数据.
python的参数提供了四种类型
1). f(arg1,arg2,...)
2). f(arg1=1,arg2=2,..argn=n) 给参数提供了默认值,关键参数
3). f(*arg) arg 代表了一个tuple,类似参数列表,接收多个参数
4). f(**arg) 传入的参数在函数内部保存在一个叫arg的dict中,掉用的时候使用f(a1=v1,a2=v2)的形式
lambda 函数是匿名函数,用来定义没有名字的函数对象,lambda 关键字后就是逗号分隔的形参列表,冒号后面是一个表达式,表达式求值的结果为 lambda 的返回值.
9.好吧,开始类了.类这个我应该在一块儿停留了很久,因为刚开始的时候看错了,那些常规方法把它当作了是自己实现的,就感觉怎么会这样呢.在看一遍的时候恍然大悟啊,不细心的错.额,不废话了,进入主题.
1)类的实例化,我很欣赏这样的说法:把类当作一个函数去使用.
2)类的初始化:__init__在类的实例创建后被立即调用。注意:非结构函数,因为对象在调用 __init__ 时已经被构造出来了.当定义你自已的类方法时,你必须 明确将 self 作为每个方法的第一个参数列出,包括 __init__。当从你的类中调用一个父类的一个方法时,你必须包括 self 参数。但当你从类的外部调用你的类方法时,你不必对 self 参数指定任何值;你完全将其忽略,而 Python 会自动地替你增加实例的引用。
3)类的静态变量:
class A:
y = 2
print A.y
对象可以直接访问类的静态成员添加一个非静态成员y,但是对象不能为类的静态成员赋值
4)私有成员:
python中没有严格意义上的私有成员,属性的名字以两个下划线开始.专有的方法是前后都有两个下划线.
5)类的继承:
如果有同名函数,子类会覆盖父类的方法.python中不支持重载,支持多继承.
6)类的自省
10.数据库部分
使用的是小型数据库SQLite,和大多数的数据一样有着差不多一样的操作.
1)先将SQLite作为名为sqlite3的模块导入.
2)创建一个数据库文件的连接
3)获得连接的游标,执行SQL语句.
4)每次修改数据库之后进行提交,而不是在准备关闭时才提交,准备关闭数据库使用close方法.
以上差不多就是学习python一个星期的总结,尽然花费了一上午的时间.好吧,去陶导那儿领任务,准备开始这个星期了.....以后要早点儿作总结.