Python核心编程(第二版)学习笔记02 【第3章 Python基础】

爷,独闯天下 提交于 2019-12-06 07:48:16

Python核心编程(第二版)学习笔记02 【第3章 Python基础】

2009-4-16 20:45 Tony

1 python语句基本规则和特殊字符:
     反斜杠 \  继续上一行
     分号   ;  将两个语句连接在一行中
     冒号   :  将代码块的头和体分开
    
2 有两种情况不使用反斜杠也可以跨行。1)在使用闭合操作符时,单一语句可以跨多行,例如:小括号、中括号、大括号;2)三引号包括下的字符串也可以跨行书写

3 python中的赋值,并不是直接将一个值赋给一个变量,而是将该对象的引用赋值给变量(现在我也不太清楚,下一章中应该就详细描述了)

4 赋值语句没有返回值,不像C语言中的赋值语句可以返回值。形如:y = (x = a + b)这个表达式是错误的,但可以写成形如:y = x = a + b

5 增量赋值 +=  -=  *=  /=  %=  **=  <<=  >>=  &=  ^=  |=
  增量赋值的好处是,可变对象会被就地修改,无需拷贝引用
 
6 多重赋值 x = y = z = 1
  一个值为1的整型对象被创建,该对象的同一个引用被赋值给x,y和z
 
7 多元赋值 x, y, z = 1, 2, 'hello'
  等号两边的对象都是元祖,括号被省略了。元祖的小括号是可选的。上面等价于(x, y, z) = (1, 2, 'hello')
 
8 交换两个变量的值 x, y = y, x
  在其他语言中,都需要第三个临时变量来保存中间值,python可以直接使用多元赋值来实现
 
9 python中的关键字在模块keyword中,由keyword.kwlist可以查到,并可以通过iskeyword()函数来判断一个标识是否是关键字

10 标识符中下划线的意义:
        _xxx     看作是模块或类的私有变量,在模块外或类外不能被直接访问
        __xxx__  系统定义的名字,普通变量应该避免定义这种标识符
       
11 在模块、类定义、或者函数定义中第一个没有赋值的字符串即作为文档字符串,通过obj.__doc__访问

12 python文件结构模版
    (1)起始行
    (2)模块文档字符串
    (3)模块导入
    (4)变量定义
    (5)类定义
    (6)函数定义
    (7)主程序
   
13 导入一个模块时,该模块的主代码将会被执行,模块里定义的类的主代码也会被执行,但是模块里定义的函数和类中的方法在导入时不执行
   所有模块都有能力来执行代码,最高级别的python语句即没有缩进的代码行,在模块导入时会被执行

14 如果一个模块是通过脚本直接执行的,则它的__name__属性值为"__main__" ,否则被别的模块导入的,则它的__name__值为该模块的名字

15 python中不需要定义变量,也不需要类型声明,变量类型和内存占用都是在运行时确定的

16 引用计数器 python记录所有使用中的对象各有多少引用,当引用为0时,会回收这个对象所占用的内存
   增加引用计数器 当对象被创建并赋值给变量时,该对象的引用计数器被设置为1,当同一个对象又被赋值给其它变量时、或者作为参数传递给函数、方法或类实例时,新的引用被创建,引用计数器都会自动加1
   如 x = 3.14  对象被创建,引用计数器值为1
      y = x     新的引用被创建,引用计数器值为2
      fun(x)    新的引用被创建,引用计数器值为3,函数执行完后,引用计数器值减1
   减少引用计数器 当对象的引用被销毁时,引用计数器值就会减小
   例如 引用离开其作用域范围;当变量被赋值了另一个对象时,原对象的引用计数器会自动减1;使用del语句显示地销毁引用
  
17 使用os.linesep 表示换行,这样换行跟平台无关

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!