《Python核心编程 》笔记-第二章+第三章

第二章 快速入门

  • print语句中使用字符串格式操作符,实现字符替换功能。

    print "%s is %d" %("one",1)

    %s、%d、%f分别用字符串、整型、浮点类型数据来替换。

  • print语句重定向

     logfile = open('/tmp/mylog.txt','a')
     print >> logfile,'something....'
     logfile.close()

    符号>>是用来重定向的,上面的代码将输出添加到日志文件mylog.txt中。

  • raw_input内建函数,读取键盘输入,返回值类型是字符串。

    s = raw_input('some tips:')
  • 操作符单斜杆 / 做传统的除法,双斜杠 //用作浮点除法,四舍五入。

  • python中的变量名命名规则与其他大多数高级语言一样,都是受到C语言影响。(事实上python本身就是C语言写成的)
  • python是动态型语言,不需要预先声明变量的类型。变量的类型在赋值的那一刻确定。
  • python是动态型语言,不需要预先声明变量的类型。变量的类型在赋值的那一刻确定。
  • python的长整型所能表达的范围远远超过C语言的长整型,仅受限于计算机的虚拟内存总数,不用担心溢出。
  • something interesting:1.1无法用二进制精确表示,2.2、3.3、、、很多数字都无法用二进制精确表示。但python中提供了十进制浮点型decimal模块,可以精确表示。
  • 元组:可看成是只读的列表,不可修改。
  • 字典

    aDict = {"one":1,"two":2}
    aDict.keys()   #输出['one','two']
    for key in aDict:
    print key,aDict[key]
  • python中的for循环与传统的for循环(计数器循环)不太一样,它更像shell里的foreach迭代。python中的for接受可迭代对象作为其参数,每次迭代其中的一个元素。在for语句中,经常还会用到range、len函数。

    for i in range(len(A)):
                print A[i]
  • 列表解析,这个非常实用

    spdEvens = [x**2 for x in range(8) if not x%2]
  • 文件和内建函数open()、file()

    handle = open(file_name,access_mode = 'rb')

    r表示可读模式,b表示二进制访问,还有w表示可写模式(覆盖掉原来的),a表示添加模式(不覆盖),+表示读写模式。

    open()返回文件的句柄handle,后续的操作如readlines()、close()可通过这个句柄进行:如handle.close()….

  • try-except

    try之后的代码组,即你打算管理的代码。except之后的代码组,则是处理错误的代码。

  • 函数在调用前必须先定义(被调用函数要在调用处上方)。

  • 如果函数没有return语句,会自动返回None对象。
  • 所有名字开始和结束都有两个下划线的方法都是特殊方法。如nameinit
  • 模块,可以包含执行代码、函数、类。.py文件即一个模块。
  • 常用的函数:int()、str()、range()、len()、raw_input()、ttype()、dir([obj])、help([obj])

第三章 Python基础

1、语句和语法

  • 注释

    Python中注释用符号“#”,也可以用三引号:”’ 注释内容 ”’

  • 继续

    过长的语句,可以用反斜杠,将一行分解为几行:

     if a==1 and \
               b==0 :
  • Python缩进风格

    Pyhton使用缩进来分隔代码组,缩进可以为空格、制表符Tab(另:推荐使用4个空格来缩进,并且尽量不要用tab键,因为不同平台tab键的代表的空白宽度不一样。)

  • 多个语句写在同一行上

    把多个语句写在同一行上是不推荐的,因为可读性会大大降低。如果非要这么做,也是允许的。

    import sys; x  = 'foo'; sys.stdout.write(x)
  • 模块

    通过import导入

2、变量赋值

  • 多元赋值(multuple)

    采用这种方式赋值,等号两边的对象其实都是元组:

     x,y,z = 1,2,3

    本质上为:

     ( x,y,z ) = (1,2,3)

    这种多元赋值方式可以实现无需中间变量交换两个变量的值:

     x,y = 1,2
     x,y = y,x

    执行代码,x和y的值将互换。

3、标志符

  • 专用下划线标志符

    _XXX,不用from module import *导入

    _ XXX _,系统定义名字

    _XXX,类中的私有变量名

    下划线对解析器具有特许的意义,而且是内建标志符使用的符号,所以建议避免用下划线作为变量名的开始。

4、Python基本风格

注释、缩进、标志符风格以上述及,此外Python还提供了一个机制“文档”:可以通过_ doc _变量,动态获得文档字符串:

obj.__doc__

5、内存管理

  • 变量定义

    大多数编译型语言,变量在使用前必须先声明,而Python作为解析型语言,无须显示声明变量,变量在第一次被赋值时自动声明。

  • 动态类型

    Python不但无须事先声明变量,而且也无需类型声明。对象的类型和内存占用都是在运行时确定的。

  • 内存分配

    Python承担了内存管理的复杂任务,程序员无需关心内存管理。

  • 引用计数

    Python使用引用计数这个技术来追踪内存中的对象。

    增加引用计数:

    当对象被创建时,就生成了一个引用,引用计数被设置为1。当同一个对象又被赋值给其他变量时,或作为参数传递给函数、方法、类实例时,或被赋值为一个窗口对象的成员时,该对象一个新的引用就被创建,引用计数自动加1。

    减少引用计数:

    当对象的引用被销毁时,引用计数会减少。比如:
    (1)函数运行结束,局部变量被自动销毁,对象的引用计数也会随之减少。
    (2)变量被重新赋值(值改变),引用计数减1。
    (3)del obj,obj引用计数减1。

  • 垃圾收集

    Python的垃圾收集器实际上是一个引用计数器和一个循环垃圾收集器。

参考:

http://blog.csdn.net/u012162613/article/details/43965795

http://blog.csdn.net/u012162613/article/details/43965869

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值