sunrise

每天不断学习,才能不断提升自己。

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  64 随笔 :: 0 文章 :: 92 评论 :: 0 Trackbacks
人生中的第一份个工作,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一个星期的总结,尽然花费了一上午的时间.好吧,去陶导那儿领任务,准备开始这个星期了.....以后要早点儿作总结.
    
posted on 2012-03-15 14:15 SunRise_at 阅读(2307) 评论(2)  编辑 收藏 引用 所属分类: 可爱的python

评论

# re: python学习 2012-03-15 15:51 C小加
为啥要学这门语言呢?  回复  更多评论
  

# re: python学习 2012-03-15 15:53 SunRise_at
@C小加
脚本语言啊,比较适合做自然语言处理吧,因为写的好的话效率会优于C 的。。。。。
@C小加
  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理