1 from 模块 import 函数
2 >>> from math import sin
3 >>> sin(1.5)
4 0.9974949866040544
5
6 直接import
7 >>> import cmath
8 >>> cmath.sqrt(-9)
9 3j
10
11 字符串表示,str和repr
12 >>> print 100000L
13 100000
14 >>> print (10000L)
15 10000
16 >>> print ("1000L")
17 1000L
18 >>> print repr("Hello world!") repr:创建一个字符串,以合法的Python表达式的形式来表示值。
19 'Hello world!'
20 >>> print repr(10000L)
21 10000L
22 >>> print str("Hello") str:把值转换为合理形式的字符串,以便用户理解
23 Hello
24 >>> print str(1000L)
25 1000
26 (Plus 反引号`: used in 2.7 deprecated.)
27
28 raw_input: 把所有的输入当做原始数据,放入字符串中
29
30 长字符串: 三个引号 or \[回车]
31
32 print r's\tring' 输入原始字符串。不能以'\'结尾(显而易见)
33
34 print u"unicode string" 2.7以后不支持?
35
36 序列:
37
38 1 索引:
39 >>> week = ['Mon', 'Tue'] + 3 * ['Wed']
40 >>> week
41 ['Mon', 'Tue', 'Wed', 'Wed', 'Wed']
42 >>> week[1]
43 'Tue'
44
45 2 分片:
46 >>> week[1:3]
47 ['Tue', 'Wed']
48 >>> week[1:2]
49 ['Tue']
50 >>> week[-3:]
51 ['Wed', 'Wed', 'Wed']
52
53 3 步长
54 >>> num = [1,2,3,4,5,6,7,8,9]
55 >>> num[1:7:2]
56 [2, 4, 6]
57 >>> num[7:1:-2]
58 [8, 6, 4]
59
60 空值 None
61
62 布尔值 True False
63
64 成员资格 in
65 >>> array = [1,2,3]
66 >>> 1 in array
67 True
68 >>> 4 in array
69 False
70
71 长度、最大值和最小值 len max min
72
73 列表:
74 list函数 返回列表
75 >>> array=[1,2,3,4,5]
76 >>> list(array)
77 [1, 2, 3, 4, 5]
78
79 del array[1] 删除元素
80 分片赋值 and so on.
81
82 列表方法:
83 append(element)
84 count(element)
85 extend(lsit)
86 index(element)
87 isert(index, element)
88 pop() & pop(index)
89 remove(element)
90 reverse()
91 sort()
92 cmp(element, element)
93
94
95 元组:
96 >>> (1, 2, 3)
97 (1, 2, 3)
98 >>> (1,)
99 (1,)
100 >>> (1)
101 1
102
103 tuple函数:返回元组
104 >>> tuple([1, 2, 3])
105 (1, 2, 3)
106 >>> tuple('yes')
107 ('y', 'e', 's')
108
109 字符串
110 格式化输出
111 方法:
112 find rfind index rindex count startwith endwith
113 join split(element) splitlines
114 lower islower capitalize swapcase title istitile upper isupper
115 replace(a, b)
116 strip() strip(element)
117
118 >>> import string
119 >>> table = string.maketrans('ex', 'ez')
120 >>> len(table)
121 256
122 >>> table[97: 123]
123 'abcdefghijklmnopqrstuvwzyz'
124 >>> 'index fix fex'.translate(table)
125 'indez fiz fez'
126
127 字典:
128 >>> stu = {'tom': '026', 'van': '027', 'von': '028', 'Liang': '029'}
129 >>> stu
130 {'von': '028', 'van': '027', 'Liang': '029', 'tom': '026'}
131 >>> stu['von']
132 '028'
133 >>> stu = [('tom', '1'), ('jim', '2')]
134 >>> stu
135 [('tom', '1'), ('jim', '2')]
136 >>> d = dict(stu)
137 >>> d
138 {'jim': '2', 'tom': '1'}
139 >>> d['jim']
140 '2'
141 >>> d = dict(name = 'tom', age = '23')
142 >>> d
143 {'age': '23', 'name': 'tom'}
144
145 键可以为任何不可变类型
146
147 >>> x = [None] * 5
148 >>> x
149 [None, None, None, None, None]
150
151 >>> x = {}
152 >>> x
153 {}
154 >>> x['q'] = 123
155 >>> x
156 {'q': 123}
157
158 字典的格式化字符串:
159 >>> phone = {'tom': '110', 'jim': '120'}
160 >>> 'tom\'s phone number is %(tom)s' % phone
161 "tom's phone number is 110"
162
163 字典方法
164 clear
165 copy 浅复制; deepcopy 深复制
166 fromkeys([key1, key2]) 使用给定的键建立新的字典,键值为None.
167 get(key, default value)
168 has_key(key)
169 items() 以列表方式返回item
170 iteritems() 返回迭代器对象(高效)
171 keys() 以列表方式返回键
172 iterkeys() 以迭代器方式返回
173 pop(key) 返回键的值并移除键值对
174 popitem() 弹出随机项
175 setdefault(key, default value) ≈ get + 在字典中不含有给定键的情况下设定相应的键值
176 update(dict) 用一个字典项更新另外一个字典
177 values()
178 itervalues()
179
180 print
181 在3.0前为语句,3.0后为函数
182
183 导入模块、方法
184 import somemodule
185 from somemodule import somefuction1, ...
186 from somemodule import *
187 import somemodule as alias
188 from somemodule import somefuction as alias
189
190 序列解包
191 >>> x, y, z = 1, 2, 3
192 >>> print x, y, z
193 1 2 3
194 >>> value = 1, 2, 3
195 >>> value
196 (1, 2, 3)
197 >>> print value
198 (1, 2, 3)
199 >>> x, y = y, z
200 >>> x, y, z
201 (2, 3, 3)
202 >>> d = {'tom': 1, 'jim': 2}
203 >>> key, value = d.popitem()
204 >>> key, value
205 ('jim', 2)
206 >>> key
207 'jim'
208 >>> value
209 2
210
211 链式赋值
212 x = y = ...
213
214 增量赋值
215 >>> x = 't'
216 >>> x += 'om'
217 >>> x
218 'tom'
219 >>> x *= 2
220 >>> x
221 'tomtom'
222
223 if语句
224 if(clause):
225 ...
226 ...
227 elif(clause):
228 ...
229 ...
230 else:
231 ...
232 ...
233
234 is
235 同一性运算符
236
237 in
238 成员资格运算符
239
240 and or not
241 布尔运算符
242 Special
243 >>> name = raw_input("Name: ") or '<unknown>'
244 Name:
245 >>> name
246 '<unknown>'
247 >>> name = raw_input("Name: ") or '<unknown>'
248 Name: Tom
249 >>> name
250 'Tom'
251 三元运算
252 a if b else c
253
254 >>> b = 1
255 >>> a = 'true' if (b == 1) else 'false'
256 >>> a
257 'true'
258 >>> b = 0
259 >>> a = 'true' if (b == 1) else 'false'
260 >>> a
261 'false'
262
263 assert 断言
264 >>> a = 1
265 >>> assert a == 2, 'a should equals 2'
266
267 Traceback (most recent call last):
268 File "<pyshell#13>", line 1, in <module>
269 assert a == 2, 'a should equals 2'
270 AssertionError: a should equals 2
271
272 while语句
273 >>> x = 1
274 >>> while x < 10:
275 print x
276 x += 1
277
278 range() 范围函数
279 >>> range(10)
280 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
281 >>> range(0, 10)
282 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
283
284 for 语句
285 nums = [1, 2, 3]
286 for num in nums:
287 print num
288
289 for x in range(0, 3):
290 print x
291
292 遍历字典元素:
293 >>> d = {'a': 'tom', 'b': 'jim'}
294 >>> for key in d:
295 print key, ":", d[key]
296 a : tom
297 b : jim
298 >>> for key, value in d.items():
299 print key, ":", value
300 a : tom
301 b : jim
302
303 并行迭代:
304 >>> name = ['tom', 'jim']
305 >>> age = [18, 20]
306 >>> for i in range(len(name)):
307 print name[i], ":", age[i]
308 tom : 18
309 jim : 20
310 >>> for n, a in zip(name, age):
311 print n, ":", a
312 tom : 18
313 jim : 20
314
315 zip函数可用于不等长的序列
316
317 编号迭代:
318 >>> s = ['xxx', 'yyy', 'xdresxxx']
319 >>> for index, string in enumerate(s):
320 if('xxx' in string):
321 s[index] = '@@@'
322 >>> s
323 ['@@@', 'yyy', '@@@']
324
325 sorted、reversed、join函数
326
327 break、continue语句
328
329 pass语句
330
331 del 删除名称 not 值
332
333 exec 执行字符串的语句
334 命名空间/作用域
335 >>> from math import sqrt
336 >>> scope = {}
337 >>> exec 'sqrt = 1' in scope
338 >>> sqrt(4)
339 2.0
340 >>> scope['sqrt']
341 1
342
343 eval 计算Python表达式
344 >>> eval(raw_input("Expression: "))
345 Expression: 2 + 3 - 4 *5
346 -15
347 >>> raw_input("Expression: ")
348 Expression: 1 + 1
349 '1 + 1'
350
351 >>> scope = {}
352 >>> exec 'x = 2' in scope
353 >>> eval ('x * x', scope)
354 4
355
356 callable 判断函数是否可以调用(3.0不可用)
357
358 创建函数
359 >>> def hello(name):
360 return 'Hello ' + name
361 >>> hello('tom')
362 'Hello tom'
363
364 记录函数
365 >>> def plus(a, b):
366 'Return a + b'
367 return a + b
368 >>> plus.__doc__
369 'Return a + b'
370
371 >>> help(plus)
372 Help on function plus in module __main__:
373 plus(a, b)
374 Return a + b
375
376 关键字参数
377 plus(a = xxx, b = yyy) 等于 plua(b == yyy, a = xxx)
378
379 在函数给参数提供默认值:
380 >>> def demo(greeting = 'Hello!'):
381 print greeting
382 >>> demo()
383 Hello!
384 >>> demo('你好')
385 你好
386
387 收集参数
388 >>> def say_hello(greeting, *names, **extras):
389 print greeting, names, extras
390 >>> say_hello('Hi', 'tom', 'jim', 'lara', x = 'glad', y = 'to see you.')
391 Hi ('tom', 'jim', 'lara') {'y': 'to see you.', 'x': 'glad'}
392
393 逆转过程(分割)
394 >>> def hi(hi, you):
395 print hi, you
396 >>> hello = ('Hello', 'Tom')
397 >>> hi(*hello)
398 Hello Tom
399
400 >>> yeah = {'hi': 'Hello, ', 'you': 'Tom'}
401 >>> hi(**yeah)
402 Hello, Tom
403
404 作用域
405 vars():返回变量字典
406 >>> x = 1
407 >>> scope = vars()
408 >>> scope['x']
409 1
410 >>> scope['x'] += 1
411 >>> scope['x']
412 2
413 globals():返回全局变量的字典
414 locals():返回局部变量的字典
415 global关键字:声明变量为全局变量
416 >>> x
417 3
418 >>> def change_x():
419 global x
420 x += 1
421 return x
422 >>> change_x()
423 4
424 >>>
425
426 嵌套函数
427 >>> def multiply(a):
428 def multiplyByFactor(b):
429 return a * b
430 return multiplyByFactor
431 >>> num = multiply(2)
432 >>> num
433 <function multiplyByFactor at 0x0000000002B79C18>
434 >>> num(3)
435 6
436 >>> num(4)
437 8
438 >>> multiply(4)(5)
439 20
440
441 类:
442 调查继承:
443 issubclass(subclass, baseclass)
444 subclass.__bases__
445
446 判断类的实例:
447 isinstance(instance, class)
448
449 对象所属类:
450 object.__class__
451
452 多继承:
453 def class X (class1, class2)
454
455 hasattr(object, '<attr name>')
456
457 getattr(object, '<attr name>', <default value>)
458
459 setattr(object, '<attr name>', <value>)
460
461 object.__dict__ 查看对象内所有存储的值