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

学习《Python核心编程》做一下知识点提要,方便复习(一)

2015-06-22 17:56 555 查看
学习《Python核心编程》做一下知识点提要,方便复习。

计算机语言的本质是什么?

a-z、A-Z、符号、数字等等组合成符合语法的字符串,供编译器、解释器翻译。

字母组合后产生各种变化拿python来说就是,关键字,数值,类,函数,运算符,操作符。。。。。。

1.变量不用声明,类型不固定

2.True,False = False,True读出了什么?True是个bool()类实例

3.类型工厂函数就是python2.2后把int() bool()等对数据类型操作的函数分装成对象 类 了,返回对象实例

4.三个单引号(三个双引号)产生的就是字符串常量,只不过可以分行,也可以被用来多行注释。

5.模块、类、函数开头的字符串是文档字符串,用doc访问

6.2<3<6 就是2<3 and 3<6 同理 77 > 66 == 66

7.a,b,c=c,b,a多元赋值

8.+=、-=、=、*=、/=等这些叫增量赋值

9.同一行书写多条语句要用 ;

10.地板除———// 呵呵

11.浮点型在内存的表示方法也就是二进制表示

12.+、*用于字符串的连接与重复

13.[]叫索引操作符、[:]叫切片操作符

14.第一个字符串是0,最后一个字符串是-1

15.命令行下打开python可是设置参数,你知道吗?

16.if expr: … else: … if expr:… elif expr:… else:…

17.while expr: …

18.for循环其实更像shell里面的foreach迭代器,迭代元素,for … in … : …。for字典会是什么样子?

19.print 后面加,表示不换行但是有空格。

20.单独的print就是输出换行

21.列表解析是什么?[x**2 for x in range(4)]、[x**2 for x in range(4) if not x % 2]

22.try: … except … : …

23.可以raise一个异常像Java中的throw

24.函数没有return则自动返回None

25.函数def foo(para = True): …函数可以有默认值

26.类的静态变量怎么定义?

27.类中,通过self.a定义的变量只在实例化中存在,不在类中存在

28.PEP是什么自己查去

29.最好用四个空格缩进,不要用制表符,跨平台不好

30.模块里面的代码可以是直接执行的脚本,也可以是类似库函数的代码

31.python的赋值都是引用赋值,只有变化了才会分配新内存

32.多重赋值 x = y = z = 1

33.import … from *不要滥用

34.python不支持重载标识符,所以虽然build-in不是关键字,但是不建议使用,把他当做保留字吧

35._xxx 不用from module import *导入,保护成员,子类可以访问

36.__xxx类中的私有变量,子类不能访问

37.if __name__ == ‘__main__’可以回归或是单元测试

38.文件中,所有顶级代码都会被执行,模块中最好少些顶级代码

39.有时间去了解一下PyUnit

40.所有python对象都有三个特性,身份(id()),类型(type()),值

41.属性即函数、方法、数据。含有数据属性的有类、类实例、模块、复数、文件等

42.标准类型(基本数据类型):整数、布尔、浮点、复数、字符串、列表、元组、字典

43.其他内建类型:类型(type())、Null对象(None)、文件、集合、函数(方法)、模块、类

44.用户创建的类实例如果定义了nonezero(__nonezero__())或是length(__len__())且值为0,那么他们的布尔值就是False

45.a is b 等价id(a)==id(b),当然还有is not

46.python中的变量更像是指针指向装变量的盒子,赋新值就像换了一个盒子。

47.del可以删除对象的引用,引用删除你就不能再使用这个变量名(引用)

48.10、017、0x92十进制、八进制、十六进制

49.查查十进制浮点型是啥子玩意。

50.字符串比较 str1 < str2用的是字符串ASCII值的大小

51.成员操作符 in 和 not in

52. f = (“aaa” #1

“bbb” #2

“ccc”) #3

print f

53.%d、%c、%f这些格式化输出符号叫占位符

54.原始字符串操作符(r/R)print r’\n’

55.Unicode字符串操作符(u/U) ,若和原始操作符联用,必须在r前面。ur’hello\nworld’

56.字符串是不可变的

57.字符串、列表和元组统称序列

58.sort()函数对于字符串是有返回值的,而列表则在原列表更改,没返回值。

59.用列表可以构建其他数据结构,队列和栈

60.数字、字符串、元组都是不可变类型

61.拷贝python对象,深拷贝和浅拷贝

62.p = [:]切片拷贝、list()dict()工厂函数、copy模块copy函数都是浅拷贝

63.有个有趣的例子说明“只读”或是说不可变量在拷贝过程中的问题

p=[‘name’,[‘age’,33]]

m = p[:];n = list(p)

m[0]=’kids’;n[0]=’adults’

m[1][1] = 99

后发现m和n的name部分不一样,而列表的却都成了99用id()函数发现序列部分是一样的,name部分不一样。

64.用copy.deepcopy()执行深拷贝

65.非容器类型(数字,字符串,其他原子类型对象,代码、类型和xrange对象)都没有拷贝一说

66.如果元组变量只包含原子类型,对它的深拷贝将不会进行,深拷贝也只能得到一个浅拷贝

67.大多数python对象可作为键,但是列表和字典这样的可变类型不是可哈希的,不能做键

68.实现了__hash__()特殊方法的类也可以作为键

69.集合可以由set和frozenset得到

70.python中类型的很多内建方法“几乎”和操作符等价

71.条件表达式 x if x < y else y

72.smaller = (x < y and [x] or [y])[0]尝试一下1<2 and [1],为什么会这样呢?貌似也和C语言一样会短路,真 与 X 只要考虑后面的X就行;假 与 X 的话X表达式没必要执行。

73.while (count < 9):那个括号是什么?理解:a = (2) b = (‘3’)是元组吗?

74.pass的作用

75.while和for可以使用else语句

76.字典,文件都可以用迭代器iter(seq),用for… in …系统会自动转换

77.迭代器在使用时最好不要删除元素

78.实现了__iter__()和next()方法的类可以作为迭代器使用

79.[(x+1,y+1) for x in range(3) for y in range(5)]

80.生成器表达式就是把列表解析的方括[]号变成括号(),感觉是这样

81.文件打开的模式有w r a U +(表示可读可写) b表示二进制打开
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 编程