学习《Python核心编程》做一下知识点提要,方便复习(一)
学习《Python核心编程》做一下知识点提要,方便复习。
计算机语言的本质是什么? 
a-z、A-Z、符号、数字等等组合成符合语法的字符串。供编译器、解释器翻译。
 
字母组合后产生各种变化拿python来说就是。keyword。数值,类,函数,运算符,操作符。。。。。。
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不是keyword,可是不建议使用,把他当做保留字吧 
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表示二进制打开
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号