~ubuntu-branches/ubuntu/maverick/python3.1/maverick

« back to all changes in this revision

Viewing changes to Misc/cheatsheet

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-03-23 00:01:27 UTC
  • Revision ID: james.westby@ubuntu.com-20090323000127-5fstfxju4ufrhthq
Tags: upstream-3.1~a1+20090322
ImportĀ upstreamĀ versionĀ 3.1~a1+20090322

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
                          Python 2.3 Quick Reference
 
2
 
 
3
 
 
4
 25 Jan 2003  upgraded by Raymond Hettinger for Python 2.3
 
5
 16 May 2001  upgraded by Richard Gruet and Simon Brunning for Python 2.0
 
6
 2000/07/18  upgraded by Richard Gruet, rgruet@intraware.com for Python 1.5.2
 
7
from V1.3 ref
 
8
1995/10/30, by Chris Hoffmann, choffman@vicorp.com
 
9
 
 
10
Based on:
 
11
    Python Bestiary, Author: Ken Manheimer, ken.manheimer@nist.gov
 
12
    Python manuals, Authors: Guido van Rossum and Fred Drake
 
13
    What's new in Python 2.0, Authors: A.M. Kuchling and Moshe Zadka
 
14
    python-mode.el, Author: Tim Peters, tim_one@email.msn.com
 
15
 
 
16
    and the readers of comp.lang.python
 
17
 
 
18
Python's nest: http://www.python.org     Developement: http://
 
19
python.sourceforge.net/    ActivePython : http://www.ActiveState.com/ASPN/
 
20
Python/
 
21
newsgroup: comp.lang.python  Help desk: help@python.org
 
22
Resources: http://starship.python.net/
 
23
           http://www.vex.net/parnassus/
 
24
           http://aspn.activestate.com/ASPN/Cookbook/Python
 
25
FAQ:       http://www.python.org/cgi-bin/faqw.py
 
26
Full documentation: http://www.python.org/doc/
 
27
Excellent reference books:
 
28
           Python Essential Reference by David Beazley (New Riders)
 
29
           Python Pocket Reference by Mark Lutz (O'Reilly)
 
30
 
 
31
 
 
32
Invocation Options
 
33
 
 
34
python [-diOStuUvxX?] [-c command | script | - ] [args]
 
35
 
 
36
                              Invocation Options
 
37
Option                                  Effect
 
38
-c cmd  program passed in as string (terminates option list)
 
39
-d      Outputs parser debugging information (also PYTHONDEBUG=x)
 
40
-E      ignore environment variables (such as PYTHONPATH)
 
41
-h      print this help message and exit
 
42
-i      Inspect interactively after running script (also PYTHONINSPECT=x) and
 
43
        force prompts, even if stdin appears not to be a terminal
 
44
-m mod  run library module as a script (terminates option list
 
45
-O      optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)
 
46
-OO     remove doc-strings in addition to the -O optimizations
 
47
-Q arg  division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew
 
48
-S      Don't perform 'import site' on initialization
 
49
-u      Unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x).
 
50
-v      Verbose (trace import statements) (also PYTHONVERBOSE=x)
 
51
-W arg : warning control (arg is action:message:category:module:lineno)
 
52
-x      Skip first line of source, allowing use of non-unix Forms of #!cmd
 
53
-?      Help!
 
54
-c      Specify the command to execute (see next section). This terminates the
 
55
command option list (following options are passed as arguments to the command).
 
56
        the name of a python file (.py) to execute read from stdin.
 
57
script  Anything afterward is passed as options to python script or command,
 
58
        not interpreted as an option to interpreter itself.
 
59
args    passed to script or command (in sys.argv[1:])
 
60
        If no script or command, Python enters interactive mode.
 
61
 
 
62
  * Available IDEs in std distrib: IDLE (tkinter based, portable), Pythonwin
 
63
    (Windows).
 
64
 
 
65
 
 
66
 
 
67
Environment variables
 
68
 
 
69
                             Environment variables
 
70
    Variable                                 Effect
 
71
PYTHONHOME       Alternate prefix directory (or prefix;exec_prefix). The
 
72
                 default module search path uses prefix/lib
 
73
                 Augments the default search path for module files. The format
 
74
                 is the same as the shell's $PATH: one or more directory
 
75
                 pathnames separated by ':' or ';' without spaces around
 
76
                 (semi-)colons!
 
77
PYTHONPATH       On Windows first search for Registry key HKEY_LOCAL_MACHINE\
 
78
                 Software\Python\PythonCore\x.y\PythonPath (default value). You
 
79
                 may also define a key named after your application with a
 
80
                 default string value giving the root directory path of your
 
81
                 app.
 
82
                 If this is the name of a readable file, the Python commands in
 
83
PYTHONSTARTUP    that file are executed before the first prompt is displayed in
 
84
                 interactive mode (no default).
 
85
PYTHONDEBUG      If non-empty, same as -d option
 
86
PYTHONINSPECT    If non-empty, same as -i option
 
87
PYTHONSUPPRESS   If non-empty, same as -s option
 
88
PYTHONUNBUFFERED If non-empty, same as -u option
 
89
PYTHONVERBOSE    If non-empty, same as -v option
 
90
PYTHONCASEOK     If non-empty, ignore case in file/module names (imports)
 
91
 
 
92
 
 
93
 
 
94
 
 
95
Notable lexical entities
 
96
 
 
97
Keywords
 
98
 
 
99
    and       del       for       is        raise
 
100
    assert    elif      from      lambda    return
 
101
    break     else      global    not       try
 
102
    class     except    if        or        while
 
103
    continue  exec      import    pass      yield
 
104
    def       finally   in        print
 
105
 
 
106
  * (list of keywords in std module: keyword)
 
107
  * Illegitimate Tokens (only valid in strings): @ $ ?
 
108
  * A statement must all be on a single line. To break a statement over
 
109
    multiple lines use "\", as with the C preprocessor.
 
110
    Exception: can always break when inside any (), [], or {} pair, or in
 
111
    triple-quoted strings.
 
112
  * More than one statement can appear on a line if they are separated with
 
113
    semicolons (";").
 
114
  * Comments start with "#" and continue to end of line.
 
115
 
 
116
Identifiers
 
117
 
 
118
        (letter | "_")  (letter | digit | "_")*
 
119
 
 
120
  * Python identifiers keywords, attributes, etc. are case-sensitive.
 
121
  * Special forms: _ident (not imported by 'from module import *'); __ident__
 
122
    (system defined name);
 
123
               __ident (class-private name mangling)
 
124
 
 
125
Strings
 
126
 
 
127
    "a string enclosed by double quotes"
 
128
    'another string delimited by single quotes and with a " inside'
 
129
    '''a string containing embedded newlines and quote (') marks, can be
 
130
    delimited with triple quotes.'''
 
131
    """ may also use 3- double quotes as delimiters """
 
132
    u'a unicode string'   U"Another unicode string"
 
133
    r'a raw string where \ are kept (literalized): handy for regular
 
134
    expressions and windows paths!'
 
135
    R"another raw string"    -- raw strings cannot end with a \
 
136
    ur'a unicode raw string'   UR"another raw unicode"
 
137
 
 
138
        Use \ at end of line to continue a string on next line.
 
139
        adjacent strings are concatened, e.g. 'Monty' ' Python' is the same as
 
140
        'Monty Python'.
 
141
        u'hello' + ' world'  --> u'hello world'   (coerced to unicode)
 
142
 
 
143
    String Literal Escapes
 
144
 
 
145
     \newline  Ignored (escape newline)
 
146
     \\ Backslash (\)        \e Escape (ESC)        \v Vertical Tab (VT)
 
147
     \' Single quote (')     \f Formfeed (FF)       \OOO char with octal value OOO
 
148
     \" Double quote (")     \n Linefeed (LF)
 
149
     \a Bell (BEL)           \r Carriage Return (CR) \xHH  char with hex value HH
 
150
     \b Backspace (BS)       \t Horizontal Tab (TAB)
 
151
     \uHHHH  unicode char with hex value HHHH, can only be used in unicode string
 
152
     \UHHHHHHHH  unicode char with hex value HHHHHHHH, can only be used in unicode string
 
153
     \AnyOtherChar is left as-is
 
154
 
 
155
  * NUL byte (\000) is NOT an end-of-string marker; NULs may be embedded in
 
156
    strings.
 
157
  * Strings (and tuples) are immutable: they cannot be modified.
 
158
 
 
159
Numbers
 
160
 
 
161
    Decimal integer: 1234, 1234567890546378940L        (or l)
 
162
    Octal integer: 0177, 0177777777777777777 (begin with a 0)
 
163
    Hex integer: 0xFF, 0XFFFFffffFFFFFFFFFF (begin with 0x or 0X)
 
164
    Long integer (unlimited precision): 1234567890123456
 
165
    Float (double precision): 3.14e-10, .001, 10., 1E3
 
166
    Complex: 1J, 2+3J, 4+5j (ends with J or j, + separates (float) real and
 
167
    imaginary parts)
 
168
 
 
169
Sequences
 
170
 
 
171
  * String of length 0, 1, 2 (see above)
 
172
    '', '1', "12", 'hello\n'
 
173
  * Tuple of length 0, 1, 2, etc:
 
174
    () (1,) (1,2)     # parentheses are optional if len > 0
 
175
  * List of length 0, 1, 2, etc:
 
176
    [] [1] [1,2]
 
177
 
 
178
Indexing is 0-based. Negative indices (usually) mean count backwards from end
 
179
of sequence.
 
180
 
 
181
Sequence slicing [starting-at-index : but-less-than-index]. Start defaults to
 
182
'0'; End defaults to 'sequence-length'.
 
183
 
 
184
a = (0,1,2,3,4,5,6,7)
 
185
    a[3] ==> 3
 
186
    a[-1] ==> 7
 
187
    a[2:4] ==> (2, 3)
 
188
    a[1:] ==> (1, 2, 3, 4, 5, 6, 7)
 
189
    a[:3] ==> (0, 1, 2)
 
190
    a[:] ==> (0,1,2,3,4,5,6,7)  # makes a copy of the sequence.
 
191
 
 
192
Dictionaries (Mappings)
 
193
 
 
194
    {}                              # Zero length empty dictionary
 
195
    {1 : 'first'}                   # Dictionary with one (key, value) pair
 
196
    {1 : 'first',  'next': 'second'}
 
197
    dict([('one',1),('two',2)])     # Construct a dict from an item list
 
198
    dict('one'=1, 'two'=2)          # Construct a dict using keyword args
 
199
    dict.fromkeys(['one', 'keys'])  # Construct a dict from a sequence
 
200
 
 
201
Operators and their evaluation order
 
202
 
 
203
                     Operators and their evaluation order
 
204
Highest             Operator                             Comment
 
205
        (...) [...] {...} `...`           Tuple, list & dict. creation; string
 
206
                                          conv.
 
207
        s[i]  s[i:j]  s.attr f(...)       indexing & slicing; attributes, fct
 
208
                                          calls
 
209
        +x, -x, ~x                        Unary operators
 
210
        x**y                              Power
 
211
        x*y  x/y  x%y x//y                mult, division, modulo, floor division
 
212
        x+y  x-y                          addition, subtraction
 
213
        x<<y   x>>y                       Bit shifting
 
214
        x&y                               Bitwise and
 
215
        x^y                               Bitwise exclusive or
 
216
        x|y                               Bitwise or
 
217
        x<y  x<=y  x>y  x>=y  x==y x!=y   Comparison,
 
218
        x is y   x is not y               membership
 
219
        x in s   x not in s
 
220
        not x                             boolean negation
 
221
        x and y                           boolean and
 
222
        x or y                            boolean or
 
223
Lowest  lambda args: expr                 anonymous function
 
224
 
 
225
Alternate names are defined in module operator (e.g. __add__ and add for +)
 
226
Most operators are overridable.
 
227
 
 
228
Many binary operators also support augmented assignment:
 
229
        x += 1                            # Same as x = x + 1
 
230
 
 
231
 
 
232
Basic Types and Their Operations
 
233
 
 
234
Comparisons (defined between *any* types)
 
235
 
 
236
               Comparisons
 
237
Comparison         Meaning          Notes
 
238
<          strictly less than        (1)
 
239
<=         less than or equal to
 
240
>          strictly greater than
 
241
>=         greater than or equal to
 
242
==         equal to
 
243
!=         not equal to
 
244
is         object identity           (2)
 
245
is not     negated object identity   (2)
 
246
 
 
247
Notes :
 
248
    Comparison behavior can be overridden for a given class by defining special
 
249
method __cmp__.
 
250
    The above comparisons return True or False which are of type bool
 
251
(a subclass of int) and behave exactly as 1 or 0 except for their type and
 
252
that they print as True or False instead of 1 or 0.
 
253
    (1) X < Y < Z < W has expected meaning, unlike C
 
254
    (2) Compare object identities (i.e. id(object)), not object values.
 
255
 
 
256
Boolean values and operators
 
257
 
 
258
                         Boolean values and operators
 
259
              Value or Operator                         Returns           Notes
 
260
None, numeric zeros, empty sequences and      False
 
261
mappings
 
262
all other values                              True
 
263
not x                                         True if x is False, else
 
264
                                              True
 
265
x or y                                        if x is False then y, else   (1)
 
266
                                              x
 
267
x and y                                       if x is False then x, else   (1)
 
268
                                              y
 
269
 
 
270
Notes :
 
271
    Truth testing behavior can be overridden for a given class by defining
 
272
special method __bool__.
 
273
    (1) Evaluate second arg only if necessary to determine outcome.
 
274
 
 
275
None
 
276
 
 
277
    None is used as default return value on functions. Built-in single object
 
278
    with type NoneType.
 
279
    Input that evaluates to None does not print when running Python
 
280
    interactively.
 
281
 
 
282
Numeric types
 
283
 
 
284
Floats and integers.
 
285
 
 
286
    Floats are implemented with C doubles.
 
287
    Integers have unlimited size (only limit is system resources)
 
288
 
 
289
Operators on all numeric types
 
290
 
 
291
           Operators on all numeric types
 
292
 Operation                    Result
 
293
abs(x)       the absolute value of x
 
294
int(x)       x converted to integer
 
295
float(x)     x converted to floating point
 
296
-x           x negated
 
297
+x           x unchanged
 
298
x + y        the sum of x and y
 
299
x - y        difference of x and y
 
300
x * y        product of x and y
 
301
x / y        quotient of x and y
 
302
x % y        remainder of x / y
 
303
divmod(x, y) the tuple (x/y, x%y)
 
304
x ** y       x to the power y (the same as pow(x, y))
 
305
 
 
306
Bit operators on integers
 
307
 
 
308
              Bit operators
 
309
Operation             >Result
 
310
~x        the bits of x inverted
 
311
x ^ y     bitwise exclusive or of x and y
 
312
x & y     bitwise and of x and y
 
313
x | y     bitwise or of x and y
 
314
x << n    x shifted left by n bits
 
315
x >> n    x shifted right by n bits
 
316
 
 
317
Complex Numbers
 
318
 
 
319
  * represented as a pair of machine-level double precision floating point
 
320
    numbers.
 
321
  * The real and imaginary value of a complex number z can be retrieved through
 
322
    the attributes z.real and z.imag.
 
323
 
 
324
Numeric exceptions
 
325
 
 
326
TypeError
 
327
    raised on application of arithmetic operation to non-number
 
328
OverflowError
 
329
     numeric bounds exceeded
 
330
ZeroDivisionError
 
331
     raised when zero second argument of div or modulo op
 
332
FloatingPointError
 
333
     raised when a floating point operation fails
 
334
 
 
335
Operations on all sequence types (lists, tuples, strings)
 
336
 
 
337
                Operations on all sequence types
 
338
Operation                     Result                     Notes
 
339
x in s     True if an item of s is equal to x, else False
 
340
x not in s False if an item of s is equal to x, else True
 
341
for x in s: loops over the sequence
 
342
s + t      the concatenation of s and t
 
343
s * n, n*s n copies of s concatenated
 
344
s[i]       i'th item of s, origin 0                       (1)
 
345
s[i:j]     slice of s from i (included) to j (excluded) (1), (2)
 
346
len(s)     length of s
 
347
min(s)     smallest item of s
 
348
max(s)     largest item of (s)
 
349
iter(s)    returns an iterator over s.  iterators define __iter__ and next()
 
350
 
 
351
Notes :
 
352
    (1) if i or j is negative, the index is relative to the end of the string,
 
353
ie len(s)+ i or len(s)+j is
 
354
         substituted. But note that -0 is still 0.
 
355
    (2) The slice of s from i to j is defined as the sequence of items with
 
356
index k such that i <= k < j.
 
357
          If i or j is greater than len(s), use len(s). If i is omitted, use
 
358
len(s). If i is greater than or
 
359
          equal to j, the slice is empty.
 
360
 
 
361
Operations on mutable (=modifiable) sequences (lists)
 
362
 
 
363
                 Operations on mutable sequences
 
364
   Operation                      Result                   Notes
 
365
s[i] =x          item i of s is replaced by x
 
366
s[i:j] = t       slice of s from i to j is replaced by t
 
367
del s[i:j]       same as s[i:j] = []
 
368
s.append(x)      same as s[len(s) : len(s)] = [x]
 
369
s.count(x)       return number of i's for which s[i] == x
 
370
s.extend(x)      same as s[len(s):len(s)]= x
 
371
s.index(x)       return smallest i such that s[i] == x      (1)
 
372
s.insert(i, x)   same as s[i:i] = [x] if i >= 0
 
373
s.pop([i])       same as x = s[i]; del s[i]; return x       (4)
 
374
s.remove(x)      same as del s[s.index(x)]                  (1)
 
375
s.reverse()      reverse the items of s in place            (3)
 
376
s.sort([cmpFct]) sort the items of s in place             (2), (3)
 
377
 
 
378
Notes :
 
379
    (1) raise a ValueError exception when x is not found in s (i.e. out of
 
380
range).
 
381
     (2) The sort() method takes an optional argument specifying a comparison
 
382
fct of 2 arguments (list items) which should
 
383
          return -1, 0, or 1 depending on whether the 1st argument is
 
384
considered smaller than, equal to, or larger than the 2nd
 
385
          argument. Note that this slows the sorting process down considerably.
 
386
     (3) The sort() and reverse() methods modify the list in place for economy
 
387
of space when sorting or reversing a large list.
 
388
           They don't return the sorted or reversed list to remind you of this
 
389
side effect.
 
390
     (4) [New 1.5.2] The optional  argument i defaults to -1, so that by default the last
 
391
item is removed and returned.
 
392
 
 
393
 
 
394
 
 
395
Operations on mappings (dictionaries)
 
396
 
 
397
                         Operations on mappings
 
398
        Operation                          Result                  Notes
 
399
len(d)                     the number of items in d
 
400
d[k]                       the item of d with key k                 (1)
 
401
d[k] = x                   set d[k] to x
 
402
del d[k]                   remove d[k] from d                       (1)
 
403
d.clear()                  remove all items from d
 
404
d.copy()                   a shallow copy of d
 
405
d.get(k,defaultval)        the item of d with key k                 (4)
 
406
d.has_key(k)               True if d has key k, else False
 
407
d.items()                  a copy of d's list of (key, item) pairs  (2)
 
408
d.iteritems()              an iterator over (key, value) pairs      (7)
 
409
d.iterkeys()               an iterator over the keys of d           (7)
 
410
d.itervalues()             an iterator over the values of d         (7)
 
411
d.keys()                   a copy of d's list of keys               (2)
 
412
d1.update(d2)              for k, v in d2.items(): d1[k] = v        (3)
 
413
d.values()                 a copy of d's list of values             (2)
 
414
d.pop(k)                   remove d[k] and return its value
 
415
d.popitem()                remove and return an arbitrary           (6)
 
416
                           (key, item) pair
 
417
d.setdefault(k,defaultval) the item of d with key k                 (5)
 
418
 
 
419
    Notes :
 
420
      TypeError is raised if key is not acceptable
 
421
      (1) KeyError is raised if key k is not in the map
 
422
      (2) Keys and values are listed in random order
 
423
      (3) d2 must be of the same type as d1
 
424
      (4) Never raises an exception if k is not in the map, instead it returns
 
425
    defaultVal.
 
426
          defaultVal is optional, when not provided and k is not in the map,
 
427
    None is returned.
 
428
      (5) Never raises an exception if k is not in the map, instead it returns
 
429
    defaultVal, and adds k to map with value defaultVal. defaultVal is
 
430
    optional. When not provided and k is not in the map, None is returned and
 
431
    added to map.
 
432
      (6) Raises a KeyError if the dictionary is emtpy.
 
433
      (7) While iterating over a dictionary, the values may be updated but
 
434
          the keys cannot be changed.
 
435
 
 
436
Operations on strings
 
437
 
 
438
Note that these string methods largely (but not completely) supersede the
 
439
functions available in the string module.
 
440
 
 
441
 
 
442
                             Operations on strings
 
443
    Operation                             Result                          Notes
 
444
s.capitalize()    return a copy of s with only its first character
 
445
                  capitalized.
 
446
s.center(width)   return a copy of s centered in a string of length width  (1)
 
447
                  .
 
448
s.count(sub[      return the number of occurrences of substring sub in     (2)
 
449
,start[,end]])    string s.
 
450
s.decode(([       return a decoded version of s.                           (3)
 
451
  encoding
 
452
  [,errors]])
 
453
s.encode([        return an encoded version of s. Default encoding is the
 
454
  encoding        current default string encoding.                         (3)
 
455
  [,errors]])
 
456
s.endswith(suffix return true if s ends with the specified suffix,         (2)
 
457
  [,start[,end]]) otherwise return False.
 
458
s.expandtabs([    return a copy of s where all tab characters are          (4)
 
459
tabsize])         expanded using spaces.
 
460
s.find(sub[,start return the lowest index in s where substring sub is      (2)
 
461
[,end]])          found. Return -1 if sub is not found.
 
462
s.index(sub[      like find(), but raise ValueError when the substring is  (2)
 
463
,start[,end]])    not found.
 
464
s.isalnum()       return True if all characters in s are alphanumeric,     (5)
 
465
                  False otherwise.
 
466
s.isalpha()       return True if all characters in s are alphabetic,       (5)
 
467
                  False otherwise.
 
468
s.isdigit()       return True if all characters in s are digit             (5)
 
469
                  characters, False otherwise.
 
470
s.islower()       return True if all characters in s are lowercase, False  (6)
 
471
                  otherwise.
 
472
s.isspace()       return True if all characters in s are whitespace        (5)
 
473
                  characters, False otherwise.
 
474
s.istitle()       return True if string s is a titlecased string, False    (7)
 
475
                  otherwise.
 
476
s.isupper()       return True if all characters in s are uppercase, False  (6)
 
477
                  otherwise.
 
478
s.join(seq)       return a concatenation of the strings in the sequence
 
479
                  seq, separated by 's's.
 
480
s.ljust(width)    return s left justified in a string of length width.    (1),
 
481
                                                                           (8)
 
482
s.lower()         return a copy of s converted to lowercase.
 
483
s.lstrip()        return a copy of s with leading whitespace removed.
 
484
s.replace(old,    return a copy of s with all occurrences of substring     (9)
 
485
new[, maxsplit])  old replaced by new.
 
486
s.rfind(sub[      return the highest index in s where substring sub is     (2)
 
487
,start[,end]])    found. Return -1 if sub is not found.
 
488
s.rindex(sub[     like rfind(), but raise ValueError when the substring    (2)
 
489
,start[,end]])    is not found.
 
490
s.rjust(width)    return s right justified in a string of length width.   (1),
 
491
                                                                           (8)
 
492
s.rstrip()        return a copy of s with trailing whitespace removed.
 
493
s.split([sep[     return a list of the words in s, using sep as the       (10)
 
494
,maxsplit]])      delimiter string.
 
495
s.splitlines([    return a list of the lines in s, breaking at line       (11)
 
496
keepends])        boundaries.
 
497
s.startswith      return true if s starts with the specified prefix,
 
498
(prefix[,start[   otherwise return false.                                  (2)
 
499
,end]])
 
500
s.strip()         return a copy of s with leading and trailing whitespace
 
501
                  removed.
 
502
s.swapcase()      return a copy of s with uppercase characters converted
 
503
                  to lowercase and vice versa.
 
504
                  return a titlecased copy of s, i.e. words start with
 
505
s.title()         uppercase characters, all remaining cased characters
 
506
                  are lowercase.
 
507
s.translate(table return a copy of s mapped through translation table     (12)
 
508
[,deletechars])   table.
 
509
s.upper()         return a copy of s converted to uppercase.
 
510
s.zfill(width)    return a string padded with zeroes on the left side and
 
511
                  sliding a minus sign left if necessary.  never truncates.
 
512
 
 
513
Notes :
 
514
    (1) Padding is done using spaces.
 
515
    (2) If optional argument start is supplied, substring s[start:] is
 
516
processed. If optional arguments start and end are supplied, substring s[start:
 
517
end] is processed.
 
518
    (3) Optional argument errors may be given to set a different error handling
 
519
scheme. The default for errors is 'strict', meaning that encoding errors raise
 
520
a ValueError. Other possible values are 'ignore' and 'replace'.
 
521
    (4) If optional argument tabsize is not given, a tab size of 8 characters
 
522
is assumed.
 
523
    (5) Returns false if string s does not contain at least one character.
 
524
    (6) Returns false if string s does not contain at least one cased
 
525
character.
 
526
    (7) A titlecased string is a string in which uppercase characters may only
 
527
follow uncased characters and lowercase characters only cased ones.
 
528
    (8) s is returned if width is less than len(s).
 
529
    (9) If the optional argument maxsplit is given, only the first maxsplit
 
530
occurrences are replaced.
 
531
    (10) If sep is not specified or None, any whitespace string is a separator.
 
532
If maxsplit is given, at most maxsplit splits are done.
 
533
    (11) Line breaks are not included in the resulting list unless keepends is
 
534
given and true.
 
535
    (12) table must be a string of length 256. All characters occurring in the
 
536
optional argument deletechars are removed prior to translation.
 
537
 
 
538
String formatting with the % operator
 
539
 
 
540
formatString % args--> evaluates to a string
 
541
 
 
542
  * formatString uses C printf format codes : %, c, s, i, d, u, o, x, X, e, E,
 
543
    f, g, G, r (details below).
 
544
  * Width and precision may be a * to specify that an integer argument gives
 
545
    the actual width or precision.
 
546
  * The flag characters -, +, blank, # and 0 are understood. (details below)
 
547
  * %s will convert any type argument to string (uses str() function)
 
548
  * args may be a single arg or a tuple of args
 
549
 
 
550
        '%s has %03d quote types.' % ('Python', 2)  # => 'Python has 002 quote types.'
 
551
 
 
552
  * Right-hand-side can also be a mapping:
 
553
 
 
554
        a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python}
 
555
(vars() function very handy to use on right-hand-side.)
 
556
 
 
557
                                 Format codes
 
558
Conversion                               Meaning
 
559
d          Signed integer decimal.
 
560
i          Signed integer decimal.
 
561
o          Unsigned octal.
 
562
u          Unsigned decimal.
 
563
x          Unsigned hexadecimal (lowercase).
 
564
X          Unsigned hexadecimal (uppercase).
 
565
e          Floating point exponential format (lowercase).
 
566
E          Floating point exponential format (uppercase).
 
567
f          Floating point decimal format.
 
568
F          Floating point decimal format.
 
569
g          Same as "e" if exponent is greater than -4 or less than precision,
 
570
           "f" otherwise.
 
571
G          Same as "E" if exponent is greater than -4 or less than precision,
 
572
           "F" otherwise.
 
573
c          Single character (accepts integer or single character string).
 
574
r          String (converts any python object using repr()).
 
575
s          String (converts any python object using str()).
 
576
%          No argument is converted, results in a "%" character in the result.
 
577
           (The complete specification is %%.)
 
578
 
 
579
                          Conversion flag characters
 
580
Flag                                  Meaning
 
581
#    The value conversion will use the ``alternate form''.
 
582
0    The conversion will be zero padded.
 
583
-    The converted value is left adjusted (overrides "-").
 
584
     (a space) A blank should be left before a positive number (or empty
 
585
     string) produced by a signed conversion.
 
586
+    A sign character ("+" or "-") will precede the conversion (overrides a
 
587
     "space" flag).
 
588
 
 
589
File Objects
 
590
 
 
591
Created with built-in function open; may be created by other modules' functions
 
592
as well.
 
593
 
 
594
Operators on file objects
 
595
 
 
596
                                File operations
 
597
    Operation                                Result
 
598
f.close()         Close file f.
 
599
f.fileno()        Get fileno (fd) for file f.
 
600
f.flush()         Flush file f's internal buffer.
 
601
f.isatty()        True if file f is connected to a tty-like dev, else False.
 
602
f.read([size])    Read at most size bytes from file f and return as a string
 
603
                  object. If size omitted, read to EOF.
 
604
f.readline()      Read one entire line from file f.
 
605
f.readlines()     Read until EOF with readline() and return list of lines read.
 
606
                  Set file f's position, like "stdio's fseek()".
 
607
f.seek(offset[,   whence == 0 then use absolute indexing.
 
608
whence=0])        whence == 1 then offset relative to current pos.
 
609
                  whence == 2 then offset relative to file end.
 
610
f.tell()          Return file f's current position (byte offset).
 
611
f.write(str)      Write string to file f.
 
612
f.writelines(list Write list of strings to file f.
 
613
)
 
614
 
 
615
File Exceptions
 
616
 
 
617
  EOFError
 
618
     End-of-file hit when reading (may be raised many times, e.g. if f is a
 
619
    tty).
 
620
  IOError
 
621
     Other I/O-related I/O operation failure.
 
622
  OSError
 
623
     OS system call failed.
 
624
 
 
625
 
 
626
    Advanced Types
 
627
 
 
628
    -See manuals for more details -
 
629
      + Module objects
 
630
      + Class objects
 
631
      + Class instance objects
 
632
      + Type objects (see module: types)
 
633
      + File objects (see above)
 
634
      + Slice objects
 
635
      + XRange objects
 
636
      + Callable types:
 
637
          o User-defined (written in Python):
 
638
              # User-defined Function objects
 
639
              # User-defined Method objects
 
640
          o Built-in (written in C):
 
641
              # Built-in Function objects
 
642
              # Built-in Method objects
 
643
      + Internal Types:
 
644
          o Code objects (byte-compile executable Python code: bytecode)
 
645
          o Frame objects (execution frames)
 
646
          o Traceback objects (stack trace of an exception)
 
647
 
 
648
 
 
649
    Statements
 
650
 
 
651
    pass            -- Null statement
 
652
    del name[,name]* -- Unbind name(s) from object. Object will be indirectly
 
653
                        (and automatically) deleted only if no longer referenced.
 
654
    print [>> fileobject,] [s1 [, s2 ]* [,]
 
655
                    -- Writes to sys.stdout, or to fileobject if supplied.
 
656
                       Puts spaces between arguments. Puts newline at end
 
657
                       unless statement ends with comma.
 
658
                       Print is not required when running interactively,
 
659
                       simply typing an expression will print its value,
 
660
                       unless the value is None.
 
661
    exec x [in globals [,locals]]
 
662
                    -- Executes x in namespaces provided. Defaults
 
663
                       to current namespaces. x can be a string, file
 
664
                       object or a function object.
 
665
    callable(value,... [id=value], [*args], [**kw])
 
666
                    -- Call function callable with parameters. Parameters can
 
667
                       be passed by name or be omitted if function
 
668
                       defines default values. E.g. if callable is defined as
 
669
                       "def callable(p1=1, p2=2)"
 
670
                       "callable()"       <=>  "callable(1, 2)"
 
671
                       "callable(10)"     <=>  "callable(10, 2)"
 
672
                       "callable(p2=99)"  <=>  "callable(1, 99)"
 
673
                       *args is a tuple of positional arguments.
 
674
                       **kw is a dictionary of keyword arguments.
 
675
 
 
676
    Assignment operators
 
677
 
 
678
                              Caption
 
679
    Operator                    Result                     Notes
 
680
    a = b    Basic assignment - assign object b to label a  (1)
 
681
    a += b   Roughly equivalent to a = a + b                (2)
 
682
    a -= b   Roughly equivalent to a = a - b                (2)
 
683
    a *= b   Roughly equivalent to a = a * b                (2)
 
684
    a /= b   Roughly equivalent to a = a / b                (2)
 
685
    a %= b   Roughly equivalent to a = a % b                (2)
 
686
    a **= b  Roughly equivalent to a = a ** b               (2)
 
687
    a &= b   Roughly equivalent to a = a & b                (2)
 
688
    a |= b   Roughly equivalent to a = a | b                (2)
 
689
    a ^= b   Roughly equivalent to a = a ^ b                (2)
 
690
    a >>= b  Roughly equivalent to a = a >> b               (2)
 
691
    a <<= b  Roughly equivalent to a = a << b               (2)
 
692
 
 
693
    Notes :
 
694
        (1) Can unpack tuples, lists, and strings.
 
695
           first, second = a[0:2]; [f, s] = range(2); c1,c2,c3='abc'
 
696
           Tip: x,y = y,x swaps x and y.
 
697
        (2) Not exactly equivalent - a is evaluated only once. Also, where
 
698
    possible, operation performed in-place - a is modified rather than
 
699
    replaced.
 
700
 
 
701
    Control Flow
 
702
 
 
703
    if condition: suite
 
704
    [elif condition: suite]*
 
705
    [else: suite]   -- usual if/else_if/else statement
 
706
    while condition: suite
 
707
    [else: suite]
 
708
                    -- usual while statement. "else" suite is executed
 
709
                       after loop exits, unless the loop is exited with
 
710
                       "break"
 
711
    for element in sequence: suite
 
712
    [else: suite]
 
713
                    -- iterates over sequence, assigning each element to element.
 
714
                       Use built-in range function to iterate a number of times.
 
715
                       "else" suite executed at end unless loop exited
 
716
                       with "break"
 
717
    break           -- immediately exits "for" or "while" loop
 
718
    continue        -- immediately does next iteration of "for" or "while" loop
 
719
    return [result] -- Exits from function (or method) and returns result (use a tuple to
 
720
                       return more than one value). If no result given, then returns None.
 
721
    yield result    -- Freezes the execution frame of a generator and returns the result
 
722
                       to the iterator's .__next__() method.  Upon the next call to __next__(),
 
723
                       resumes execution at the frozen point with all of the local variables
 
724
                       still intact.
 
725
 
 
726
    Exception Statements
 
727
 
 
728
    assert expr[, message]
 
729
                    -- expr is evaluated. if false, raises exception AssertionError
 
730
                       with message. Inhibited if __debug__ is 0.
 
731
    try: suite1
 
732
    [except [exception [, value]: suite2]+
 
733
    [else: suite3]
 
734
                    -- statements in suite1 are executed. If an exception occurs, look
 
735
                       in "except" clauses for matching <exception>. If matches or bare
 
736
                       "except" execute suite of that clause. If no exception happens
 
737
                       suite in "else" clause is executed after suite1.
 
738
                       If exception has a value, it is put in value.
 
739
                       exception can also be tuple of exceptions, e.g.
 
740
                       "except (KeyError, NameError), val: print val"
 
741
    try: suite1
 
742
    finally: suite2
 
743
                    -- statements in suite1 are executed. If no
 
744
                       exception, execute suite2 (even if suite1 is
 
745
                       exited with a "return", "break" or "continue"
 
746
                       statement). If exception did occur, executes
 
747
                       suite2 and then immediately reraises exception.
 
748
    raise exception [,value [, traceback]]
 
749
                    -- raises exception with optional value
 
750
                       value. Arg traceback specifies a traceback object to
 
751
                       use when printing the exception's backtrace.
 
752
    raise           -- a raise statement without arguments re-raises
 
753
                       the last exception raised in the current function
 
754
An exception is either a string (object) or a class instance.
 
755
  Can create a new one simply by creating a new string:
 
756
 
 
757
              my_exception = 'You did something wrong'
 
758
      try:
 
759
                   if bad:
 
760
              raise my_exception, bad
 
761
      except my_exception, value:
 
762
                    print 'Oops', value
 
763
 
 
764
Exception classes must be derived from the predefined class: Exception, e.g.:
 
765
            class text_exception(Exception): pass
 
766
            try:
 
767
                if bad:
 
768
                    raise text_exception()
 
769
                    # This is a shorthand for the form
 
770
                    # "raise <class>, <instance>"
 
771
             except Exception:
 
772
                 print 'Oops'
 
773
                 # This will be printed because
 
774
                 # text_exception is a subclass of Exception
 
775
When an error message is printed for an unhandled exception which is a
 
776
class, the class name is printed, then a colon and a space, and
 
777
finally the instance converted to a string using the built-in function
 
778
str().
 
779
All built-in exception classes derives from Exception, itself
 
780
derived from BaseException.
 
781
 
 
782
Name Space Statements
 
783
 
 
784
[1.51: On Mac & Windows, the case of module file names must now match the case
 
785
as used
 
786
  in the import statement]
 
787
Packages (>1.5): a package is a name space which maps to a directory including
 
788
                module(s) and the special initialization module '__init__.py'
 
789
                (possibly empty). Packages/dirs can be nested. You address a
 
790
                module's symbol via '[package.[package...]module.symbol's.
 
791
import module1 [as name1] [, module2]*
 
792
                -- imports modules. Members of module must be
 
793
                   referred to by qualifying with [package.]module name:
 
794
                   "import sys; print sys.argv:"
 
795
                   "import package1.subpackage.module; package1.subpackage.module.foo()"
 
796
                   module1 renamed as name1, if supplied.
 
797
from module import name1 [as othername1] [, name2]*
 
798
                -- imports names from module module in current namespace.
 
799
                   "from sys import argv; print argv"
 
800
                   "from package1 import module; module.foo()"
 
801
                   "from package1.module import foo; foo()"
 
802
                   name1 renamed as othername1, if supplied.
 
803
from module import *
 
804
                -- imports all names in module, except those starting with "_";
 
805
                   *to be used sparsely, beware of name clashes* :
 
806
                   "from sys import *; print argv"
 
807
                   "from package.module import *; print x'
 
808
                    NB: "from package import *" only imports the symbols defined
 
809
                    in the package's __init__.py file, not those in the
 
810
                    template modules!
 
811
global name1 [, name2]*
 
812
                -- names are from global scope (usually meaning from module)
 
813
                   rather than local (usually meaning only in function).
 
814
                -- E.g. in fct without "global" statements, assuming
 
815
                   "a" is name that hasn't been used in fct or module
 
816
                   so far:
 
817
                   -Try to read from "a" -> NameError
 
818
                   -Try to write to "a" -> creates "a" local to fcn
 
819
                   -If "a" not defined in fct, but is in module, then
 
820
                       -Try to read from "a", gets value from module
 
821
                       -Try to write to "a", creates "a" local to fct
 
822
                   But note "a[0]=3" starts with search for "a",
 
823
                   will use to global "a" if no local "a".
 
824
 
 
825
Function Definition
 
826
 
 
827
def func_id ([param_list]): suite
 
828
                -- Creates a function object & binds it to name func_id.
 
829
 
 
830
    param_list ::= [id [, id]*]
 
831
    id ::= value | id = value | *id | **id
 
832
    [Args are passed by value.Thus only args representing a mutable object
 
833
    can be modified (are inout parameters). Use a tuple to return more than
 
834
    one value]
 
835
 
 
836
Example:
 
837
        def test (p1, p2 = 1+1, *rest, **keywords):
 
838
            -- Parameters with "=" have default value (v is
 
839
               evaluated when function defined).
 
840
               If list has "*id" then id is assigned a tuple of
 
841
               all remaining args passed to function (like C vararg)
 
842
               If list has "**id" then id is assigned a dictionary of
 
843
               all extra arguments passed as keywords.
 
844
 
 
845
Class Definition
 
846
 
 
847
class <class_id> [(<super_class1> [,<super_class2>]*)]: <suite>
 
848
        -- Creates a class object and assigns it name <class_id>
 
849
           <suite> may contain local "defs" of class methods and
 
850
           assignments to class attributes.
 
851
Example:
 
852
       class my_class (class1, class_list[3]): ...
 
853
                  Creates a class object inheriting from both "class1" and whatever
 
854
                  class object "class_list[3]" evaluates to. Assigns new
 
855
                  class object to name "my_class".
 
856
        - First arg to class methods is always instance object, called 'self'
 
857
          by convention.
 
858
        - Special method __init__() is called when instance is created.
 
859
        - Special method __del__() called when no more reference to object.
 
860
        - Create instance by "calling" class object, possibly with arg
 
861
          (thus instance=apply(aClassObject, args...) creates an instance!)
 
862
        - In current implementation, can't subclass off built-in
 
863
          classes. But can "wrap" them, see UserDict & UserList modules,
 
864
          and see __getattr__() below.
 
865
Example:
 
866
        class c (c_parent):
 
867
           def __init__(self, name): self.name = name
 
868
           def print_name(self): print "I'm", self.name
 
869
           def call_parent(self): c_parent.print_name(self)
 
870
           instance = c('tom')
 
871
           print instance.name
 
872
           'tom'
 
873
           instance.print_name()
 
874
           "I'm tom"
 
875
        Call parent's super class by accessing parent's method
 
876
        directly and passing "self" explicitly (see "call_parent"
 
877
        in example above).
 
878
        Many other special methods available for implementing
 
879
        arithmetic operators, sequence, mapping indexing, etc.
 
880
 
 
881
Documentation Strings
 
882
 
 
883
Modules, classes and functions may be documented by placing a string literal by
 
884
itself as the first statement in the suite. The documentation can be retrieved
 
885
by getting the '__doc__' attribute from the module, class or function.
 
886
Example:
 
887
        class C:
 
888
            "A description of C"
 
889
            def __init__(self):
 
890
                "A description of the constructor"
 
891
                # etc.
 
892
Then c.__doc__ == "A description of C".
 
893
Then c.__init__.__doc__ == "A description of the constructor".
 
894
 
 
895
Others
 
896
 
 
897
lambda [param_list]: returnedExpr
 
898
                -- Creates an anonymous function. returnedExpr must be
 
899
                   an expression, not a statement (e.g., not "if xx:...",
 
900
                   "print xxx", etc.) and thus can't contain newlines.
 
901
                   Used mostly for filter(), map() functions, and GUI callbacks..
 
902
List comprehensions
 
903
result = [expression for item1 in sequence1  [if condition1]
 
904
                        [for item2 in sequence2 ... for itemN in sequenceN]
 
905
                      ]
 
906
is equivalent to:
 
907
result = []
 
908
for item1 in sequence1:
 
909
    for item2 in sequence2:
 
910
    ...
 
911
        for itemN in sequenceN:
 
912
             if (condition1) and furthur conditions:
 
913
                  result.append(expression)
 
914
 
 
915
 
 
916
 
 
917
Built-In Functions
 
918
 
 
919
                              Built-In Functions
 
920
     Function                                 Result
 
921
__import__(name[,   Imports module within the given context (see lib ref for
 
922
globals[, locals[,  more details)
 
923
fromlist]]])
 
924
abs(x)              Return the absolute value of number x.
 
925
bool(x)             Returns True when the argument x is true and False otherwise.
 
926
buffer(obj)         Creates a buffer reference to an object.
 
927
chr(i)              Returns one-character string whose ASCII code isinteger i
 
928
classmethod(f)      Converts a function f, into a method with the class as the
 
929
                    first argument.  Useful for creating alternative constructors.
 
930
cmp(x,y)            Returns negative, 0, positive if x <, ==, > to y
 
931
compile(string,     from which the code was read, or eg. '<string>'if not read
 
932
filename, kind)     from file.kind can be 'eval' if string is a single stmt, or
 
933
                    'single' which prints the output of expression statements
 
934
                    that evaluate to something else than None, or be 'exec'.
 
935
complex(real[,      Builds a complex object (can also be done using J or j
 
936
image])             suffix,e.g. 1+3J)
 
937
delattr(obj, name)  deletes attribute named name of object obj <=> del obj.name
 
938
                    If no args, returns the list of names in current
 
939
dict([items])       Create a new dictionary from the specified item list.
 
940
dir([object])       local symbol table. With a module, class or class
 
941
                    instance object as arg, returns list of names in its attr.
 
942
                    dict.
 
943
divmod(a,b)         Returns tuple of (a/b, a%b)
 
944
enumerate(seq)      Return a iterator giving:  (0, seq[0]), (1, seq[1]), ...
 
945
eval(s[, globals[,  Eval string s in (optional) globals, locals contexts.s must
 
946
locals]])           have no NUL's or newlines. s can also be acode object.
 
947
                    Example: x = 1; incr_x = eval('x + 1')
 
948
filter(function,    Constructs a list from those elements of sequence for which
 
949
sequence)           function returns true. function takes one parameter.
 
950
float(x)            Converts a number or a string to floating point.
 
951
getattr(object,     [<default> arg added in 1.5.2]Gets attribute called name
 
952
name[, default]))   from object,e.g. getattr(x, 'f') <=> x.f). If not found,
 
953
                    raises AttributeError or returns default if specified.
 
954
globals()           Returns a dictionary containing current global variables.
 
955
hasattr(object,     Returns true if object has attr called name.
 
956
name)
 
957
hash(object)        Returns the hash value of the object (if it has one)
 
958
help(f)             Display documentation on object f.
 
959
hex(x)              Converts a number x to a hexadecimal string.
 
960
id(object)          Returns a unique 'identity' integer for an object.
 
961
int(x[, base])      base paramenter specifies base from which to convert string
 
962
                    values.
 
963
isinstance(obj,     Returns true if obj is an instance of class. Ifissubclass
 
964
class)              (A,B) then isinstance(x,A) => isinstance(x,B)
 
965
issubclass(class1,  returns true if class1 is derived from class2
 
966
class2)
 
967
                    Returns the length (the number of items) of an object
 
968
iter(collection)    Returns an iterator over the collection.
 
969
len(obj)            (sequence, dictionary, or instance of class implementing
 
970
                    __len__).
 
971
list(sequence)      Converts sequence into a list. If already a list,returns a
 
972
                    copy of it.
 
973
locals()            Returns a dictionary containing current local variables.
 
974
                    Applies function to every item of list and returns a listof
 
975
map(function, list, the results. If additional arguments are passed,function
 
976
...)                must take that many arguments and it is givento function on
 
977
                    each call.
 
978
max(seq)            Returns the largest item of the non-empty sequence seq.
 
979
min(seq)            Returns the smallest item of a non-empty sequence seq.
 
980
oct(x)              Converts a number to an octal string.
 
981
open(filename [,    Returns a new file object. First two args are same asthose
 
982
mode='r', [bufsize= for C's "stdio open" function. bufsize is 0for unbuffered,
 
983
implementation      1 for line-buffered, negative forsys-default, all else, of
 
984
dependent]])        (about) given size.
 
985
ord(c)              Returns integer ASCII value of c (a string of len 1). Works
 
986
                    with Unicode char.
 
987
object()            Create a base type.  Used as a superclass for new-style objects.
 
988
open(name           Open a file.
 
989
  [, mode
 
990
  [, buffering]])
 
991
pow(x, y [, z])     Returns x to power y [modulo z]. See also ** operator.
 
992
property()          Created a property with access controlled by functions.
 
993
range(start [,end   Returns list of ints from >= start and < end. With 1 arg,
 
994
[, step]])          list from 0..arg-1. With 2 args, list from start..end-1.
 
995
                    With 3 args, list from start up to end by step
 
996
                    after fixing it.
 
997
repr(object)        Returns a string containing a printable and if possible
 
998
                    evaluable representation of an object. 
 
999
                    Class redefinable (__repr__). See also str().
 
1000
round(x, n=0)       Returns the floating point value x rounded to n digitsafter
 
1001
                    the decimal point.
 
1002
setattr(object,     This is the counterpart of getattr(). setattr(o, 'foobar',
 
1003
name, value)        3) <=> o.foobar = 3. Creates attribute if it doesn't exist!
 
1004
slice([start,] stop Returns a slice object representing a range, with R/
 
1005
[, step])           O attributes: start, stop, step.
 
1006
staticmethod()      Convert a function to method with no self or class
 
1007
                    argument.  Useful for methods associated with a class that
 
1008
                    do not need access to an object's internal state.
 
1009
str(object)         Returns a string containing a nicely
 
1010
                    printable representation of an object. Class overridable
 
1011
                    (__str__).See also repr().
 
1012
super(type)         Create an unbound super object.  Used to call cooperative
 
1013
                    superclass methods.
 
1014
sum(sequence,       Add the values in the sequence and return the sum.
 
1015
    [start]) 
 
1016
tuple(sequence)     Creates a tuple with same elements as sequence. If already
 
1017
                    a tuple, return itself (not a copy).
 
1018
                    Returns a type object [see module types] representing
 
1019
                    thetype of obj. Example: import typesif type(x) ==
 
1020
type(obj)           types.StringType: print 'It is a string'NB: it is
 
1021
                    recommanded to use the following form:if isinstance(x,
 
1022
                    types.StringType): etc...
 
1023
unichr(code)        code.
 
1024
unicode(string[,    Creates a Unicode string from a 8-bit string, using
 
1025
encoding[, error    thegiven encoding name and error treatment ('strict',
 
1026
]]])                'ignore',or 'replace'}.
 
1027
                    Without arguments, returns a dictionary correspondingto the
 
1028
                    current local symbol table. With a module,class or class
 
1029
vars([object])      instance object as argumentreturns a dictionary
 
1030
                    corresponding to the object'ssymbol table. Useful with "%"
 
1031
                    formatting operator.
 
1032
zip(seq1[, seq2,    Returns an iterator of tuples where each tuple contains
 
1033
...])               the nth element of each of the argument sequences.
 
1034
 
 
1035
 
 
1036
 
 
1037
Built-In Exceptions
 
1038
 
 
1039
Exception>
 
1040
         Root class for all exceptions
 
1041
    SystemExit
 
1042
         On 'sys.exit()'
 
1043
    StopIteration
 
1044
         Signal the end from iterator.__next__()
 
1045
        ArithmeticError
 
1046
                 Base class for OverflowError, ZeroDivisionError,
 
1047
    FloatingPointError
 
1048
            FloatingPointError
 
1049
                       When a floating point operation fails.
 
1050
            OverflowError
 
1051
                            On excessively large arithmetic operation
 
1052
            ZeroDivisionError
 
1053
                  On division or modulo operation with 0 as 2nd arg
 
1054
            AssertionError
 
1055
                When an assert statement fails.
 
1056
        AttributeError
 
1057
                    On attribute reference or assignment failure
 
1058
        EnvironmentError    [new in 1.5.2]
 
1059
                On error outside Python; error arg tuple is (errno, errMsg...)
 
1060
            IOError    [changed in 1.5.2]
 
1061
               I/O-related operation failure
 
1062
            OSError    [new in 1.5.2]
 
1063
               used by the os module's os.error exception.
 
1064
        EOFError
 
1065
                    Immediate end-of-file hit by input() or raw_input()
 
1066
        ImportError
 
1067
         On failure of `import' to find module or name
 
1068
        KeyboardInterrupt
 
1069
         On user entry of the interrupt key (often `Control-C')
 
1070
        LookupError
 
1071
                base class for IndexError, KeyError
 
1072
            IndexError
 
1073
                 On out-of-range sequence subscript
 
1074
            KeyError
 
1075
                 On reference to a non-existent mapping (dict) key
 
1076
        MemoryError
 
1077
         On recoverable memory exhaustion
 
1078
        NameError
 
1079
         On failure to find a local or global (unqualified) name
 
1080
        RuntimeError
 
1081
         Obsolete catch-all; define a suitable error instead
 
1082
          NotImplementedError   [new in 1.5.2]
 
1083
                On method not implemented
 
1084
        SyntaxError
 
1085
         On parser encountering a syntax error
 
1086
       IndentationError
 
1087
           On parser encountering an indentation syntax error
 
1088
       TabError
 
1089
           On parser encountering an indentation syntax error
 
1090
        SystemError
 
1091
         On non-fatal interpreter error - bug - report it
 
1092
        TypeError
 
1093
         On passing inappropriate type to built-in op or func
 
1094
        ValueError
 
1095
         On arg error not covered by TypeError or more precise
 
1096
    Warning
 
1097
              UserWarning
 
1098
              DeprecationWarning
 
1099
              PendingDeprecationWarning
 
1100
              SyntaxWarning
 
1101
              RuntimeWarning
 
1102
              FutureWarning
 
1103
 
 
1104
 
 
1105
 
 
1106
Standard methods & operators redefinition in classes
 
1107
 
 
1108
Standard methods & operators map to special '__methods__' and thus may be
 
1109
 redefined (mostly in in user-defined classes), e.g.:
 
1110
    class x:
 
1111
         def __init__(self, v): self.value = v
 
1112
         def __add__(self, r): return self.value + r
 
1113
    a = x(3) # sort of like calling x.__init__(a, 3)
 
1114
    a + 4    # is equivalent to a.__add__(4)
 
1115
 
 
1116
Special methods for any class
 
1117
 
 
1118
(s: self, o: other)
 
1119
        __init__(s, args) instance initialization (on construction)
 
1120
        __del__(s)        called on object demise (refcount becomes 0)
 
1121
        __repr__(s)       repr() and `...` conversions
 
1122
        __str__(s)        str() and 'print' statement
 
1123
        __cmp__(s, o)     Compares s to o and returns <0, 0, or >0.
 
1124
                          Implements >, <, == etc...
 
1125
        __hash__(s)       Compute a 32 bit hash code; hash() and dictionary ops
 
1126
        __bool__(s)    Returns False or True for truth value testing
 
1127
        __getattr__(s, name)  called when attr lookup doesn't find <name>
 
1128
        __setattr__(s, name, val) called when setting an attr
 
1129
                                  (inside, don't use "self.name = value"
 
1130
                                   use "self.__dict__[name] = val")
 
1131
        __delattr__(s, name)  called to delete attr <name>
 
1132
        __call__(self, *args) called when an instance is called as function.
 
1133
 
 
1134
Operators
 
1135
 
 
1136
    See list in the operator module. Operator function names are provided with
 
1137
    2 variants, with or without
 
1138
    ading & trailing '__' (eg. __add__ or add).
 
1139
 
 
1140
    Numeric operations special methods
 
1141
    (s: self, o: other)
 
1142
 
 
1143
        s+o       =  __add__(s,o)         s-o        =  __sub__(s,o)
 
1144
        s*o       =  __mul__(s,o)         s/o        =  __div__(s,o)
 
1145
        s%o       =  __mod__(s,o)         divmod(s,o) = __divmod__(s,o)
 
1146
        s**o      =  __pow__(s,o)
 
1147
        s&o       =  __and__(s,o)
 
1148
        s^o       =  __xor__(s,o)         s|o        =  __or__(s,o)
 
1149
        s<<o      =  __lshift__(s,o)      s>>o       =  __rshift__(s,o)
 
1150
        bool(s) = __bool__(s) (used in boolean testing)
 
1151
        -s        =  __neg__(s)           +s         =  __pos__(s)
 
1152
        abs(s)    =  __abs__(s)           ~s         =  __invert__(s)  (bitwise)
 
1153
        s+=o      =  __iadd__(s,o)        s-=o       =  __isub__(s,o)
 
1154
        s*=o      =  __imul__(s,o)        s/=o       =  __idiv__(s,o)
 
1155
        s%=o      =  __imod__(s,o)
 
1156
        s**=o     =  __ipow__(s,o)
 
1157
        s&=o      =  __iand__(s,o)
 
1158
        s^=o      =  __ixor__(s,o)        s|=o       =  __ior__(s,o)
 
1159
        s<<=o     =  __ilshift__(s,o)     s>>=o      =  __irshift__(s,o)
 
1160
        Conversions
 
1161
        int(s)    =  __int__(s)
 
1162
        float(s)  =  __float__(s)         complex(s)    =  __complex__(s)
 
1163
        oct(s)    =  __oct__(s)           hex(s)     =  __hex__(s)
 
1164
        Right-hand-side equivalents for all binary operators exist;
 
1165
        are called when class instance is on r-h-s of operator:
 
1166
        a + 3  calls __add__(a, 3)
 
1167
        3 + a  calls __radd__(a, 3)
 
1168
 
 
1169
    All seqs and maps, general operations plus:
 
1170
    (s: self, i: index or key)
 
1171
 
 
1172
        len(s)    = __len__(s)        length of object, >= 0.  Length 0 == false
 
1173
        s[i]      = __getitem__(s,i)  Element at index/key i, origin 0
 
1174
 
 
1175
    Sequences, general methods, plus:
 
1176
      s[i]=v           = __setitem__(s,i,v)
 
1177
      del s[i]         = __delitem__(s,i)
 
1178
      s[i:j]           = __getslice__(s,i,j)
 
1179
      s[i:j]=seq       = __setslice__(s,i,j,seq)
 
1180
      del s[i:j]       = __delslice__(s,i,j)   == s[i:j] = []
 
1181
      seq * n          = __repeat__(seq, n)
 
1182
      s1 + s2          = __concat__(s1, s2)
 
1183
      i in s           = __contains__(s, i)
 
1184
    Mappings, general methods, plus
 
1185
      hash(s)          = __hash__(s) - hash value for dictionary references
 
1186
      s[k]=v           = __setitem__(s,k,v)
 
1187
      del s[k]         = __delitem__(s,k)
 
1188
 
 
1189
Special informative state attributes for some types:
 
1190
 
 
1191
    Modules:
 
1192
        __doc__ (string/None, R/O): doc string (<=> __dict__['__doc__'])
 
1193
        __name__(string, R/O): module name (also in __dict__['__name__'])
 
1194
        __dict__ (dict, R/O): module's name space
 
1195
        __file__(string/undefined, R/O): pathname of .pyc, .pyo or .pyd (undef for
 
1196
                 modules statically linked to the interpreter)
 
1197
 
 
1198
    Classes:    [in bold: writable since 1.5.2]
 
1199
        __doc__ (string/None, R/W): doc string (<=> __dict__['__doc__'])
 
1200
        __module__ is the module name in which the class was defined
 
1201
        __name__(string, R/W): class name (also in __dict__['__name__'])
 
1202
        __bases__ (tuple, R/W): parent classes
 
1203
        __dict__ (dict, R/W): attributes (class name space)
 
1204
 
 
1205
    Instances:
 
1206
        __class__ (class, R/W): instance's class
 
1207
        __dict__ (dict, R/W): attributes
 
1208
 
 
1209
    User-defined functions: [bold: writable since 1.5.2]
 
1210
        __doc__ (string/None, R/W): doc string
 
1211
        __name__(string, R/O): function name
 
1212
        func_doc (R/W): same as __doc__
 
1213
        func_name (R/O): same as __name__
 
1214
        func_defaults (tuple/None, R/W): default args values if any
 
1215
        func_code (code, R/W): code object representing the compiled function body
 
1216
        func_globals (dict, R/O): ref to dictionary of func global variables
 
1217
        func_dict (dict, R/W):  same as __dict__ contains the namespace supporting
 
1218
            arbitrary function attributes
 
1219
        func_closure (R/O): None or a tuple of cells that contain bindings
 
1220
            for the function's free variables.
 
1221
 
 
1222
 
 
1223
    User-defined Methods:
 
1224
        __doc__ (string/None, R/O): doc string
 
1225
        __name__(string, R/O): method name (same as im_func.__name__)
 
1226
        im_class (class, R/O): class defining the method (may be a base class)
 
1227
        im_self (instance/None, R/O): target instance object (None if unbound)
 
1228
        im_func (function, R/O): function object
 
1229
 
 
1230
    Built-in Functions & methods:
 
1231
        __doc__ (string/None, R/O): doc string
 
1232
        __name__ (string, R/O): function name
 
1233
        __self__ : [methods only] target object
 
1234
 
 
1235
    Codes:
 
1236
        co_name (string, R/O): function name
 
1237
        co_argcount (int, R/0): number of positional args
 
1238
        co_nlocals (int, R/O): number of local vars (including args)
 
1239
        co_varnames (tuple, R/O): names of local vars (starting with args)
 
1240
        co_cellvars (tuple, R/O)) the names of local variables referenced by
 
1241
            nested functions
 
1242
        co_freevars (tuple, R/O)) names of free variables
 
1243
        co_code (string, R/O): sequence of bytecode instructions
 
1244
        co_consts (tuple, R/O): litterals used by the bytecode, 1st one is
 
1245
                                fct doc (or None)
 
1246
        co_names (tuple, R/O): names used by the bytecode
 
1247
        co_filename (string, R/O): filename from which the code was compiled
 
1248
        co_firstlineno (int, R/O): first line number of the function
 
1249
        co_lnotab (string, R/O): string encoding bytecode offsets to line numbers.
 
1250
        co_stacksize (int, R/O): required stack size (including local vars)
 
1251
        co_flags (int, R/O): flags for the interpreter
 
1252
                           bit 2 set if fct uses "*arg" syntax
 
1253
                           bit 3 set if fct uses '**keywords' syntax
 
1254
    Frames:
 
1255
        f_back (frame/None, R/O): previous stack frame (toward the caller)
 
1256
        f_code (code, R/O): code object being executed in this frame
 
1257
        f_locals (dict, R/O): local vars
 
1258
        f_globals (dict, R/O): global vars
 
1259
        f_builtins (dict, R/O): built-in (intrinsic) names
 
1260
        f_restricted (int, R/O): flag indicating whether fct is executed in
 
1261
                                 restricted mode
 
1262
        f_lineno (int, R/O): current line number
 
1263
        f_lasti (int, R/O): precise instruction (index into bytecode)
 
1264
        f_trace (function/None, R/W): debug hook called at start of each source line
 
1265
    Tracebacks:
 
1266
        tb_next (frame/None, R/O): next level in stack trace (toward the frame where
 
1267
                                  the exception occurred)
 
1268
        tb_frame (frame, R/O): execution frame of the current level
 
1269
        tb_lineno (int, R/O): line number where the exception occurred
 
1270
        tb_lasti (int, R/O): precise instruction (index into bytecode)
 
1271
 
 
1272
    Slices:
 
1273
        start (any/None, R/O): lowerbound
 
1274
        stop (any/None, R/O): upperbound
 
1275
        step (any/None, R/O): step value
 
1276
 
 
1277
    Complex numbers:
 
1278
        real (float, R/O): real part
 
1279
        imag (float, R/O): imaginary part
 
1280
 
 
1281
 
 
1282
Important Modules
 
1283
 
 
1284
                                      sys
 
1285
 
 
1286
                              Some sys variables
 
1287
      Variable                                Content
 
1288
argv                 The list of command line arguments passed to aPython
 
1289
                     script. sys.argv[0] is the script name.
 
1290
builtin_module_names A list of strings giving the names of all moduleswritten
 
1291
                     in C that are linked into this interpreter.
 
1292
check_interval       How often to check for thread switches or signals(measured
 
1293
                     in number of virtual machine instructions)
 
1294
last_type,           Set only when an exception not handled andinterpreter
 
1295
last_value,          prints an error. Used by debuggers.
 
1296
last_traceback
 
1297
maxint               maximum positive value for integers
 
1298
modules              Dictionary of modules that have already been loaded.
 
1299
path                 Search path for external modules. Can be modifiedby
 
1300
                     program. sys.path[0] == dir of script executing
 
1301
platform             The current platform, e.g. "sunos5", "win32"
 
1302
ps1, ps2             prompts to use in interactive mode.
 
1303
                     File objects used for I/O. One can redirect byassigning a
 
1304
stdin, stdout,       new file object to them (or any object:.with a method
 
1305
stderr               write(string) for stdout/stderr,.with a method readline()
 
1306
                     for stdin)
 
1307
version              string containing version info about Python interpreter.
 
1308
                     (and also: copyright, dllhandle, exec_prefix, prefix)
 
1309
version_info         tuple containing Python version info - (major, minor,
 
1310
                     micro, level, serial).
 
1311
 
 
1312
                              Some sys functions
 
1313
     Function                                 Result
 
1314
exit(n)            Exits with status n. Raises SystemExit exception.(Hence can
 
1315
                   be caught and ignored by program)
 
1316
getrefcount(object Returns the reference count of the object. Generally one
 
1317
)                  higher than you might expect, because of object arg temp
 
1318
                   reference.
 
1319
setcheckinterval(  Sets the interpreter's thread switching interval (in number
 
1320
interval)          of virtual code instructions, default:100).
 
1321
settrace(func)     Sets a trace function: called before each line ofcode is
 
1322
                   exited.
 
1323
setprofile(func)   Sets a profile function for performance profiling.
 
1324
                   Info on exception currently being handled; this is atuple
 
1325
                   (exc_type, exc_value, exc_traceback).Warning: assigning the
 
1326
exc_info()         traceback return value to a local variable in a
 
1327
                   function handling an exception will cause a circular
 
1328
                   reference.
 
1329
setdefaultencoding Change default Unicode encoding - defaults to 7-bit ASCII.
 
1330
(encoding)
 
1331
getrecursionlimit  Retrieve maximum recursion depth.
 
1332
()
 
1333
setrecursionlimit  Set maximum recursion depth. (Defaults to 1000.)
 
1334
()
 
1335
 
 
1336
 
 
1337
 
 
1338
                                      os
 
1339
"synonym" for whatever O/S-specific module is proper for current environment.
 
1340
this module uses posix whenever possible.
 
1341
(see also M.A. Lemburg's utility http://www.lemburg.com/files/python/
 
1342
platform.py)
 
1343
 
 
1344
                               Some os variables
 
1345
     Variable                                 Meaning
 
1346
name                name of O/S-specific module (e.g. "posix", "mac", "nt")
 
1347
path                O/S-specific module for path manipulations.
 
1348
                    On Unix, os.path.split() <=> posixpath.split()
 
1349
curdir              string used to represent current directory ('.')
 
1350
pardir              string used to represent parent directory ('..')
 
1351
sep                 string used to separate directories ('/' or '\'). Tip: use
 
1352
                    os.path.join() to build portable paths.
 
1353
altsep              Alternate sep
 
1354
if applicable (None
 
1355
otherwise)
 
1356
pathsep             character used to separate search path components (as in
 
1357
                    $PATH), eg. ';' for windows.
 
1358
linesep             line separator as used in binary files, ie '\n' on Unix, '\
 
1359
                    r\n' on Dos/Win, '\r'
 
1360
 
 
1361
                               Some os functions
 
1362
     Function                                 Result
 
1363
makedirs(path[,     Recursive directory creation (create required intermediary
 
1364
mode=0777])         dirs); os.error if fails.
 
1365
removedirs(path)    Recursive directory delete (delete intermediary empty
 
1366
                    dirs); if fails.
 
1367
renames(old, new)   Recursive directory or file renaming; os.error if fails.
 
1368
 
 
1369
 
 
1370
 
 
1371
                                     posix
 
1372
don't import this module directly, import os instead !
 
1373
(see also module: shutil for file copy & remove fcts)
 
1374
 
 
1375
                            posix Variables
 
1376
Variable                             Meaning
 
1377
environ  dictionary of environment variables, e.g.posix.environ['HOME'].
 
1378
error    exception raised on POSIX-related error.
 
1379
         Corresponding value is tuple of errno code and perror() string.
 
1380
 
 
1381
                             Some posix functions
 
1382
   Function                                 Result
 
1383
chdir(path)     Changes current directory to path.
 
1384
chmod(path,     Changes the mode of path to the numeric mode
 
1385
mode)
 
1386
close(fd)       Closes file descriptor fd opened with posix.open.
 
1387
_exit(n)        Immediate exit, with no cleanups, no SystemExit,etc. Should use
 
1388
                this to exit a child process.
 
1389
execv(p, args)  "Become" executable p with args args
 
1390
getcwd()        Returns a string representing the current working directory
 
1391
getpid()        Returns the current process id
 
1392
fork()          Like C's fork(). Returns 0 to child, child pid to parent.[Not
 
1393
                on Windows]
 
1394
kill(pid,       Like C's kill [Not on Windows]
 
1395
signal)
 
1396
listdir(path)   Lists (base)names of entries in directory path, excluding '.'
 
1397
                and '..'
 
1398
lseek(fd, pos,  Sets current position in file fd to position pos, expressedas
 
1399
how)            an offset relative to beginning of file (how=0), tocurrent
 
1400
                position (how=1), or to end of file (how=2)
 
1401
mkdir(path[,    Creates a directory named path with numeric mode (default 0777)
 
1402
mode])
 
1403
open(file,      Like C's open(). Returns file descriptor. Use file object
 
1404
flags, mode)    fctsrather than this low level ones.
 
1405
pipe()          Creates a pipe. Returns pair of file descriptors (r, w) [Not on
 
1406
                Windows].
 
1407
popen(command,  Opens a pipe to or from command. Result is a file object to
 
1408
mode='r',       read to orwrite from, as indicated by mode being 'r' or 'w'.
 
1409
bufSize=0)      Use it to catch acommand output ('r' mode) or to feed it ('w'
 
1410
                mode).
 
1411
remove(path)    See unlink.
 
1412
rename(src, dst Renames/moves the file or directory src to dst. [error iftarget
 
1413
)               name already exists]
 
1414
rmdir(path)     Removes the empty directory path
 
1415
read(fd, n)     Reads n bytes from file descriptor fd and return as string.
 
1416
                Returns st_mode, st_ino, st_dev, st_nlink, st_uid,st_gid,
 
1417
stat(path)      st_size, st_atime, st_mtime, st_ctime.[st_ino, st_uid, st_gid
 
1418
                are dummy on Windows]
 
1419
system(command) Executes string command in a subshell. Returns exitstatus of
 
1420
                subshell (usually 0 means OK).
 
1421
                Returns accumulated CPU times in sec (user, system, children's
 
1422
times()         user,children's sys, elapsed real time). [3 last not on
 
1423
                Windows]
 
1424
unlink(path)    Unlinks ("deletes") the file (not dir!) path. same as: remove
 
1425
utime(path, (   Sets the access & modified time of the file to the given tuple
 
1426
aTime, mTime))  of values.
 
1427
wait()          Waits for child process completion. Returns tuple ofpid,
 
1428
                exit_status [Not on Windows]
 
1429
waitpid(pid,    Waits for process pid to complete. Returns tuple ofpid,
 
1430
options)        exit_status [Not on Windows]
 
1431
write(fd, str)  Writes str to file fd. Returns nb of bytes written.
 
1432
 
 
1433
 
 
1434
 
 
1435
                                   posixpath
 
1436
Do not import this module directly, import os instead and refer to this module
 
1437
as os.path. (e.g. os.path.exists(p)) !
 
1438
 
 
1439
                           Some posixpath functions
 
1440
 Function                                 Result
 
1441
abspath(p) Returns absolute path for path p, taking current working dir in
 
1442
           account.
 
1443
dirname/
 
1444
basename(p directory and name parts of the path p. See also split.
 
1445
)
 
1446
exists(p)  True if string p is an existing path (file or directory)
 
1447
expanduser Returns string that is (a copy of) p with "~" expansion done.
 
1448
(p)
 
1449
expandvars Returns string that is (a copy of) p with environment vars expanded.
 
1450
(p)        [Windows: case significant; must use Unix: $var notation, not %var%]
 
1451
getsize(   return the size in bytes of filename. raise os.error.
 
1452
filename)
 
1453
getmtime(  return last modification time of filename (integer nb of seconds
 
1454
filename)  since epoch).
 
1455
getatime(  return last access time of filename (integer nb of seconds since
 
1456
filename)  epoch).
 
1457
isabs(p)   True if string p is an absolute path.
 
1458
isdir(p)   True if string p is a directory.
 
1459
islink(p)  True if string p is a symbolic link.
 
1460
ismount(p) True if string p is a mount point [true for all dirs on Windows].
 
1461
join(p[,q  Joins one or more path components intelligently.
 
1462
[,...]])
 
1463
           Splits p into (head, tail) where tail is lastpathname component and
 
1464
split(p)   <head> is everything leadingup to that. <=> (dirname(p), basename
 
1465
           (p))
 
1466
splitdrive Splits path p in a pair ('drive:', tail) [Windows]
 
1467
(p)
 
1468
splitext(p Splits into (root, ext) where last comp of root contains no periods
 
1469
)          and ext is empty or startswith a period.
 
1470
           Calls the function visit with arguments(arg, dirname, names) for
 
1471
           each directory recursively inthe directory tree rooted at p
 
1472
walk(p,    (including p itself if it's a dir)The argument dirname specifies the
 
1473
visit, arg visited directory, the argumentnames lists the files in the
 
1474
)          directory. The visit function maymodify names to influence the set
 
1475
           of directories visited belowdirname, e.g., to avoid visiting certain
 
1476
           parts of the tree.
 
1477
 
 
1478
 
 
1479
 
 
1480
                                    shutil
 
1481
high-level file operations (copying, deleting).
 
1482
 
 
1483
                             Main shutil functions
 
1484
     Function                                 Result
 
1485
copy(src, dst)     Copies the contents of file src to file dst, retaining file
 
1486
                   permissions.
 
1487
copytree(src, dst  Recursively copies an entire directory tree rooted at src
 
1488
[, symlinks])      into dst (which should not already exist). If symlinks is
 
1489
                   true, links insrc are kept as such in dst.
 
1490
rmtree(path[,      Deletes an entire directory tree, ignoring errors if
 
1491
ignore_errors[,    ignore_errors true,or calling onerror(func, path,
 
1492
onerror]])         sys.exc_info()) if supplied with
 
1493
 
 
1494
(and also: copyfile, copymode, copystat, copy2)
 
1495
 
 
1496
time
 
1497
 
 
1498
                                  Variables
 
1499
Variable                               Meaning
 
1500
altzone  signed offset of local DST timezone in sec west of the 0th meridian.
 
1501
daylight nonzero if a DST timezone is specified
 
1502
 
 
1503
                                   Functions
 
1504
  Function                                 Result
 
1505
time()        return a float representing UTC time in seconds since the epoch.
 
1506
gmtime(secs), return a tuple representing time : (year aaaa, month(1-12),day
 
1507
localtime(    (1-31), hour(0-23), minute(0-59), second(0-59), weekday(0-6, 0 is
 
1508
secs)         monday), Julian day(1-366), daylight flag(-1,0 or 1))
 
1509
asctime(
 
1510
timeTuple),
 
1511
strftime(
 
1512
format,       return a formatted string representing time.
 
1513
timeTuple)
 
1514
mktime(tuple) inverse of localtime(). Return a float.
 
1515
strptime(     parse a formatted string representing time, return tuple as in
 
1516
string[,      gmtime().
 
1517
format])
 
1518
sleep(secs)   Suspend execution for <secs> seconds. <secs> can be a float.
 
1519
 
 
1520
and also: clock, ctime.
 
1521
 
 
1522
                                    string
 
1523
 
 
1524
As of Python 2.0, much (though not all) of the functionality provided by the
 
1525
string module have been superseded by built-in string methods - see Operations
 
1526
on strings for details.
 
1527
 
 
1528
                             Some string variables
 
1529
              Variable                                Meaning
 
1530
digits                               The string '0123456789'
 
1531
hexdigits, octdigits                 legal hexadecimal & octal digits
 
1532
letters, uppercase, lowercase,       Strings containing the appropriate
 
1533
whitespace                           characters
 
1534
index_error                          Exception raised by index() if substr not
 
1535
                                     found.
 
1536
 
 
1537
                             Some string functions
 
1538
     Function                                 Result
 
1539
expandtabs(s,      returns a copy of string <s> with tabs expanded.
 
1540
tabSize)
 
1541
find/rfind(s, sub  Return the lowest/highest index in <s> where the substring
 
1542
[, start=0[, end=  <sub> is found such that <sub> is wholly contained ins
 
1543
0])                [start:end]. Return -1 if <sub> not found.
 
1544
ljust/rjust/center Return a copy of string <s> left/right justified/centerd in
 
1545
(s, width)         afield of given width, padded with spaces. <s> is
 
1546
                   nevertruncated.
 
1547
lower/upper(s)     Return a string that is (a copy of) <s> in lowercase/
 
1548
                   uppercase
 
1549
split(s[, sep=     Return a list containing the words of the string <s>,using
 
1550
whitespace[,       the string <sep> as a separator.
 
1551
maxsplit=0]])
 
1552
join(words[, sep=' Concatenate a list or tuple of words with
 
1553
'])                interveningseparators; inverse of split.
 
1554
replace(s, old,    Returns a copy of string <s> with all occurrences of
 
1555
new[, maxsplit=0]  substring<old> replaced by <new>. Limits to <maxsplit>
 
1556
                   firstsubstitutions if specified.
 
1557
strip(s)           Return a string that is (a copy of) <s> without leadingand
 
1558
                   trailing whitespace. see also lstrip, rstrip.
 
1559
 
 
1560
 
 
1561
 
 
1562
                                   re (sre)
 
1563
 
 
1564
Handles Unicode strings. Implemented in new module sre, re now a mere front-end
 
1565
for compatibility.
 
1566
Patterns are specified as strings. Tip: Use raw strings (e.g. r'\w*') to
 
1567
litteralize backslashes.
 
1568
 
 
1569
 
 
1570
                           Regular expression syntax
 
1571
   Form                                Description
 
1572
.          matches any character (including newline if DOTALL flag specified)
 
1573
^          matches start of the string (of every line in MULTILINE mode)
 
1574
$          matches end of the string (of every line in MULTILINE mode)
 
1575
*          0 or more of preceding regular expression (as many as possible)
 
1576
+          1 or more of preceding regular expression (as many as possible)
 
1577
?          0 or 1 occurrence of preceding regular expression
 
1578
*?, +?, ?? Same as *, + and ? but matches as few characters as possible
 
1579
{m,n}      matches from m to n repetitions of preceding RE
 
1580
{m,n}?     idem, attempting to match as few repetitions as possible
 
1581
[ ]        defines character set: e.g. '[a-zA-Z]' to match all letters(see also
 
1582
           \w \S)
 
1583
[^ ]       defines complemented character set: matches if char is NOT in set
 
1584
           escapes special chars '*?+&$|()' and introduces special sequences
 
1585
\          (see below). Due to Python string rules, write as '\\' orr'\' in the
 
1586
           pattern string.
 
1587
\\         matches a litteral '\'; due to Python string rules, write as '\\\\
 
1588
           'in pattern string, or better using raw string: r'\\'.
 
1589
|          specifies alternative: 'foo|bar' matches 'foo' or 'bar'
 
1590
(...)      matches any RE inside (), and delimits a group.
 
1591
(?:...)    idem but doesn't delimit a group.
 
1592
           matches if ... matches next, but doesn't consume any of the string
 
1593
(?=...)    e.g. 'Isaac (?=Asimov)' matches 'Isaac' only if followed by
 
1594
           'Asimov'.
 
1595
(?!...)    matches if ... doesn't match next. Negative of (?=...)
 
1596
(?P<name   matches any RE inside (), and delimits a named group. (e.g. r'(?P
 
1597
>...)      <id>[a-zA-Z_]\w*)' defines a group named id)
 
1598
(?P=name)  matches whatever text was matched by the earlier group named name.
 
1599
(?#...)    A comment; ignored.
 
1600
(?letter)  letter is one of 'i','L', 'm', 's', 'x'. Set the corresponding flags
 
1601
           (re.I, re.L, re.M, re.S, re.X) for the entire RE.
 
1602
 
 
1603
                               Special sequences
 
1604
Sequence                              Description
 
1605
number   matches content of the group of the same number; groups are numbered
 
1606
         starting from 1
 
1607
\A       matches only at the start of the string
 
1608
\b       empty str at beg or end of word: '\bis\b' matches 'is', but not 'his'
 
1609
\B       empty str NOT at beginning or end of word
 
1610
\d       any decimal digit (<=> [0-9])
 
1611
\D       any non-decimal digit char (<=> [^O-9])
 
1612
\s       any whitespace char (<=> [ \t\n\r\f\v])
 
1613
\S       any non-whitespace char (<=> [^ \t\n\r\f\v])
 
1614
\w       any alphaNumeric char (depends on LOCALE flag)
 
1615
\W       any non-alphaNumeric char (depends on LOCALE flag)
 
1616
\Z       matches only at the end of the string
 
1617
 
 
1618
                         Variables
 
1619
Variable                       Meaning
 
1620
error    Exception when pattern string isn't a valid regexp.
 
1621
 
 
1622
                                   Functions
 
1623
   Function                                 Result
 
1624
               Compile a RE pattern string into a regular expression object.
 
1625
               Flags (combinable by |):
 
1626
 
 
1627
               I or IGNORECASE or (?i)
 
1628
                   case insensitive matching
 
1629
compile(       L or LOCALE or (?L)
 
1630
pattern[,          make \w, \W, \b, \B dependent on thecurrent locale
 
1631
flags=0])      M or MULTILINE or (?m)
 
1632
                   matches every new line and not onlystart/end of the whole
 
1633
                   string
 
1634
               S or DOTALL or (?s)
 
1635
                   '.' matches ALL chars, including newline
 
1636
               X or VERBOSE or (?x)
 
1637
                   Ignores whitespace outside character sets
 
1638
escape(string) return (a copy of) string with all non-alphanumerics
 
1639
               backslashed.
 
1640
match(pattern, if 0 or more chars at beginning of <string> match the RE pattern
 
1641
string[, flags string,return a corresponding MatchObject instance, or None if
 
1642
])             no match.
 
1643
search(pattern scan thru <string> for a location matching <pattern>, return
 
1644
, string[,     acorresponding MatchObject instance, or None if no match.
 
1645
flags])
 
1646
split(pattern, split <string> by occurrences of <pattern>. If capturing () are
 
1647
string[,       used inpattern, then occurrences of patterns or subpatterns are
 
1648
maxsplit=0])   also returned.
 
1649
findall(       return a list of non-overlapping matches in <pattern>, either a
 
1650
pattern,       list ofgroups or a list of tuples if the pattern has more than 1
 
1651
string)        group.
 
1652
               return string obtained by replacing the (<count> first) lefmost
 
1653
sub(pattern,   non-overlapping occurrences of <pattern> (a string or a RE
 
1654
repl, string[, object) in <string>by <repl>; <repl> can be a string or a fct
 
1655
count=0])      called with a single MatchObj arg, which must return the
 
1656
               replacement string.
 
1657
subn(pattern,
 
1658
repl, string[, same as sub(), but returns a tuple (newString, numberOfSubsMade)
 
1659
count=0])
 
1660
 
 
1661
Regular Expression Objects
 
1662
 
 
1663
 
 
1664
(RE objects are returned by the compile fct)
 
1665
 
 
1666
                          re object attributes
 
1667
Attribute                            Descrition
 
1668
flags      flags arg used when RE obj was compiled, or 0 if none provided
 
1669
groupindex dictionary of {group name: group number} in pattern
 
1670
pattern    pattern string from which RE obj was compiled
 
1671
 
 
1672
                               re object methods
 
1673
  Method                                  Result
 
1674
            If zero or more characters at the beginning of string match this
 
1675
            regular expression, return a corresponding MatchObject instance.
 
1676
            Return None if the string does not match the pattern; note that
 
1677
            this is different from a zero-length match.
 
1678
            The optional second parameter pos gives an index in the string
 
1679
match(      where the search is to start; it defaults to 0. This is not
 
1680
string[,    completely equivalent to slicing the string; the '' pattern
 
1681
pos][,      character matches at the real beginning of the string and at
 
1682
endpos])    positions just after a newline, but not necessarily at the index
 
1683
            where the search is to start.
 
1684
            The optional parameter endpos limits how far the string will be
 
1685
            searched; it will be as if the string is endpos characters long, so
 
1686
            only the characters from pos to endpos will be searched for a
 
1687
            match.
 
1688
            Scan through string looking for a location where this regular
 
1689
search(     expression produces a match, and return a corresponding MatchObject
 
1690
string[,    instance. Return None if no position in the string matches the
 
1691
pos][,      pattern; note that this is different from finding a zero-length
 
1692
endpos])    match at some point in the string.
 
1693
            The optional pos and endpos parameters have the same meaning as for
 
1694
            the match() method.
 
1695
split(
 
1696
string[,    Identical to the split() function, using the compiled pattern.
 
1697
maxsplit=
 
1698
0])
 
1699
findall(    Identical to the findall() function, using the compiled pattern.
 
1700
string)
 
1701
sub(repl,
 
1702
string[,    Identical to the sub() function, using the compiled pattern.
 
1703
count=0])
 
1704
subn(repl,
 
1705
string[,    Identical to the subn() function, using the compiled pattern.
 
1706
count=0])
 
1707
 
 
1708
Match Objects
 
1709
 
 
1710
 
 
1711
(Match objects are returned by the match & search functions)
 
1712
 
 
1713
                            Match object attributes
 
1714
Attribute                              Description
 
1715
pos       value of pos passed to search or match functions; index intostring at
 
1716
          which RE engine started search.
 
1717
endpos    value of endpos passed to search or match functions; index intostring
 
1718
          beyond which RE engine won't go.
 
1719
re        RE object whose match or search fct produced this MatchObj instance
 
1720
string    string passed to match() or search()
 
1721
 
 
1722
                            Match object functions
 
1723
Function                                 Result
 
1724
          returns one or more groups of the match. If one arg, result is a
 
1725
group([g1 string;if multiple args, result is a tuple with one item per arg. If
 
1726
, g2,     gi is 0,return value is entire matching string; if 1 <= gi <= 99,
 
1727
...])     returnstring matching group #gi (or None if no such group); gi may
 
1728
          also bea group name.
 
1729
          returns a tuple of all groups of the match; groups not
 
1730
groups()  participatingto the match have a value of None. Returns a string
 
1731
          instead of tupleif len(tuple)=1
 
1732
start(
 
1733
group),   returns indices of start & end of substring matched by group (or
 
1734
end(group Noneif group exists but doesn't contribute to the match)
 
1735
)
 
1736
span(     returns the 2-tuple (start(group), end(group)); can be (None, None)if
 
1737
group)    group didn't contibute to the match.
 
1738
 
 
1739
 
 
1740
 
 
1741
                                     math
 
1742
 
 
1743
Variables:
 
1744
pi
 
1745
e
 
1746
Functions (see ordinary C man pages for info):
 
1747
acos(x)
 
1748
asin(x)
 
1749
atan(x)
 
1750
atan2(x, y)
 
1751
ceil(x)
 
1752
cos(x)
 
1753
cosh(x)
 
1754
degrees(x)
 
1755
exp(x)
 
1756
fabs(x)
 
1757
floor(x)
 
1758
fmod(x, y)
 
1759
frexp(x)        -- Unlike C: (float, int) = frexp(float)
 
1760
ldexp(x, y)
 
1761
log(x [,base])
 
1762
log10(x)
 
1763
modf(x)         -- Unlike C: (float, float) = modf(float)
 
1764
pow(x, y)
 
1765
radians(x)
 
1766
sin(x)
 
1767
sinh(x)
 
1768
sqrt(x)
 
1769
tan(x)
 
1770
tanh(x)
 
1771
 
 
1772
                                    getopt
 
1773
 
 
1774
Functions:
 
1775
getopt(list, optstr)    -- Similar to C. <optstr> is option
 
1776
                           letters to look for. Put ':' after letter
 
1777
                           if option takes arg. E.g.
 
1778
    # invocation was "python test.py -c hi -a arg1 arg2"
 
1779
       opts, args =  getopt.getopt(sys.argv[1:], 'ab:c:')
 
1780
    # opts would be
 
1781
       [('-c', 'hi'), ('-a', '')]
 
1782
    # args would be
 
1783
       ['arg1', 'arg2']
 
1784
 
 
1785
 
 
1786
List of modules and packages in base distribution
 
1787
 
 
1788
(built-ins and content of python Lib directory)
 
1789
(Python NT distribution, may be slightly different in other distributions)
 
1790
 
 
1791
                           Standard library modules
 
1792
   Operation                                 Result
 
1793
aifc             Stuff to parse AIFF-C and AIFF files.
 
1794
asynchat         Support for 'chat' style protocols
 
1795
asyncore         Asynchronous File I/O (in select style)
 
1796
atexit           Register functions to be called at exit of Python interpreter.
 
1797
base64           Conversions to/from base64 RFC-MIME transport encoding .
 
1798
bdb              A generic Python debugger base class.
 
1799
binhex           Macintosh binhex compression/decompression.
 
1800
bisect           List bisection algorithms.
 
1801
bz2              Support for bz2 compression/decompression.
 
1802
calendar         Calendar printing functions.
 
1803
cgi              Wraps the WWW Forms Common Gateway Interface (CGI).
 
1804
cgitb            Utility for handling CGI tracebacks.
 
1805
cmd              A generic class to build line-oriented command interpreters.
 
1806
datetime         Basic date and time types.
 
1807
code             Utilities needed to emulate Python's interactive interpreter
 
1808
codecs           Lookup existing Unicode encodings and register new ones.
 
1809
colorsys         Conversion functions between RGB and other color systems.
 
1810
compileall       Force "compilation" of all .py files in a directory.
 
1811
configparser     Configuration file parser (much like windows .ini files)
 
1812
copy             Generic shallow and deep copying operations.
 
1813
copyreg          Helper to provide extensibility for pickle/cPickle.
 
1814
csv              Read and write files with comma separated values.
 
1815
dbm              Generic interface to all dbm clones (dbm.bsd, dbm.gnu,
 
1816
                 dbm.ndbm, dbm.dumb).
 
1817
dircache         Sorted list of files in a dir, using a cache.
 
1818
difflib          Tool for creating delta between sequences.
 
1819
dis              Bytecode disassembler.
 
1820
distutils        Package installation system.
 
1821
doctest          Tool for running and verifying tests inside doc strings.
 
1822
dospath          Common operations on DOS pathnames.
 
1823
email            Comprehensive support for internet email.
 
1824
filecmp          File comparison.
 
1825
fileinput        Helper class to quickly write a loop over all standard input
 
1826
                 files.
 
1827
fnmatch          Filename matching with shell patterns.
 
1828
formatter        A test formatter.
 
1829
fpformat         General floating point formatting functions.
 
1830
ftplib           An FTP client class. Based on RFC 959.
 
1831
gc               Perform garbacge collection, obtain GC debug stats, and tune
 
1832
                 GC parameters.
 
1833
getopt           Standard command line processing. See also ftp://
 
1834
                 www.pauahtun.org/pub/getargspy.zip
 
1835
getpass          Utilities to get a password and/or the current user name.
 
1836
glob             filename globbing.
 
1837
gzip             Read & write gzipped files.
 
1838
heapq            Priority queue implemented using lists organized as heaps.
 
1839
hmac             Keyed-Hashing for Message Authentication -- RFC 2104.
 
1840
html.entities    HTML entity definitions.
 
1841
html.parser      A parser for HTML and XHTML.
 
1842
http.client      HTTP client class.
 
1843
http.server      HTTP server services.
 
1844
ihooks           Hooks into the "import" mechanism.
 
1845
imaplib          IMAP4 client.Based on RFC 2060.
 
1846
imghdr           Recognizing image files based on their first few bytes.
 
1847
imputil          Privides a way of writing customised import hooks.
 
1848
inspect          Tool for probing live Python objects.
 
1849
keyword          List of Python keywords.
 
1850
linecache        Cache lines from files.
 
1851
locale           Support for number formatting using the current locale
 
1852
                 settings.
 
1853
logging          Python logging facility.
 
1854
macpath          Pathname (or related) operations for the Macintosh.
 
1855
macurl2path      Mac specific module for conversion between pathnames and URLs.
 
1856
mailbox          A class to handle a unix-style or mmdf-style mailbox.
 
1857
mailcap          Mailcap file handling (RFC 1524).
 
1858
mhlib            MH (mailbox) interface.
 
1859
mimetypes        Guess the MIME type of a file.
 
1860
mmap             Interface to memory-mapped files - they behave like mutable
 
1861
                 strings./font>
 
1862
multifile        Class to make multi-file messages easier to handle.
 
1863
mutex            Mutual exclusion -- for use with module sched.
 
1864
netrc
 
1865
nntplib          An NNTP client class. Based on RFC 977.
 
1866
ntpath           Common operations on DOS pathnames.
 
1867
nturl2path       Mac specific module for conversion between pathnames and URLs.
 
1868
optparse         A comprehensive tool for processing command line options.
 
1869
os               Either mac, dos or posix depending system.
 
1870
pdb              A Python debugger.
 
1871
pickle           Pickling (save and restore) of Python objects (a faster
 
1872
                 Cimplementation exists in built-in module: cPickle).
 
1873
pipes            Conversion pipeline templates.
 
1874
pkgunil          Utilities for working with Python packages.
 
1875
poplib           A POP3 client class. Based on the J. Myers POP3 draft.
 
1876
posixpath        Common operations on POSIX pathnames.
 
1877
pprint           Support to pretty-print lists, tuples, & dictionaries
 
1878
                 recursively.
 
1879
profile          Class for profiling python code.
 
1880
pstats           Class for printing reports on profiled python code.
 
1881
pydoc            Utility for generating documentation from source files.
 
1882
pty              Pseudo terminal utilities.
 
1883
pyexpat          Interface to the Expay XML parser.
 
1884
py_compile       Routine to "compile" a .py file to a .pyc file.
 
1885
pyclbr           Parse a Python file and retrieve classes and methods.
 
1886
queue            A multi-producer, multi-consumer queue.
 
1887
quopri           Conversions to/from quoted-printable transport encoding.
 
1888
random           Random variable generators
 
1889
re               Regular Expressions.
 
1890
reprlib          Redo repr() but with limits on most sizes.
 
1891
rlcompleter      Word completion for GNU readline 2.0.
 
1892
sched            A generally useful event scheduler class.
 
1893
shelve           Manage shelves of pickled objects.
 
1894
shlex            Lexical analyzer class for simple shell-like syntaxes.
 
1895
shutil           Utility functions usable in a shell-like program.
 
1896
site             Append module search paths for third-party packages to
 
1897
                 sys.path.
 
1898
smtplib          SMTP Client class (RFC 821)
 
1899
sndhdr           Several routines that help recognizing sound.
 
1900
socketserver     Generic socket server classes.
 
1901
stat             Constants and functions for interpreting stat/lstat struct.
 
1902
statvfs          Constants for interpreting statvfs struct as returned by
 
1903
                 os.statvfs()and os.fstatvfs() (if they exist).
 
1904
string           A collection of string operations.
 
1905
sunau            Stuff to parse Sun and NeXT audio files.
 
1906
sunaudio         Interpret sun audio headers.
 
1907
symbol           Non-terminal symbols of Python grammar (from "graminit.h").
 
1908
tabnanny         Check Python source for ambiguous indentation.
 
1909
tarfile          Facility for reading and writing to the *nix tarfile format.
 
1910
telnetlib        TELNET client class. Based on RFC 854.
 
1911
tempfile         Temporary file name allocation.
 
1912
textwrap         Object for wrapping and filling text.
 
1913
threading        Proposed new higher-level threading interfaces
 
1914
token            Tokens (from "token.h").
 
1915
tokenize         Compiles a regular expression that recognizes Python tokens.
 
1916
traceback        Format and print Python stack traces.
 
1917
tty              Terminal utilities.
 
1918
turtle           LogoMation-like turtle graphics
 
1919
types            Define names for all type symbols in the std interpreter.
 
1920
tzparse          Parse a timezone specification.
 
1921
unicodedata      Interface to unicode properties.
 
1922
urllib.parse     Parse URLs according to latest draft of standard.
 
1923
urllib.request   Open an arbitrary URL.
 
1924
urllib.robotparser  Parse robots.txt files, useful for web spiders.
 
1925
user             Hook to allow user-specified customization code to run.
 
1926
uu               UUencode/UUdecode.
 
1927
unittest         Utilities for implementing unit testing.
 
1928
wave             Stuff to parse WAVE files.
 
1929
weakref          Tools for creating and managing weakly referenced objects.
 
1930
webbrowser       Platform independent URL launcher.
 
1931
xdrlib           Implements (a subset of) Sun XDR (eXternal Data
 
1932
                 Representation).
 
1933
xml.dom          Classes for processing XML using the Document Object Model.
 
1934
xml.sax          Classes for processing XML using the SAX API.
 
1935
xmlrpc.client    Support for remote procedure calls using XML.
 
1936
xmlrpc.server    Create XMLRPC servers.
 
1937
zipfile          Read & write PK zipped files.
 
1938
 
 
1939
 
 
1940
 
 
1941
* Built-ins *
 
1942
 
 
1943
            sys                 Interpreter state vars and functions
 
1944
            __built-in__        Access to all built-in python identifiers
 
1945
            __main__            Scope of the interpreters main program, script or stdin
 
1946
            array               Obj efficiently representing arrays of basic values
 
1947
            math                Math functions of C standard
 
1948
            time                Time-related functions (also the newer datetime module)
 
1949
            marshal             Read and write some python values in binary format
 
1950
            struct              Convert between python values and C structs
 
1951
 
 
1952
* Standard *
 
1953
 
 
1954
            getopt              Parse cmd line args in sys.argv.  A la UNIX 'getopt'.
 
1955
            os                  A more portable interface to OS dependent functionality
 
1956
            re                  Functions useful for working with regular expressions
 
1957
            string              Useful string and characters functions and exceptions
 
1958
            random              Mersenne Twister pseudo-random number generator
 
1959
            _thread             Low-level primitives for working with process threads
 
1960
            threading           idem, new recommended interface.
 
1961
 
 
1962
* Unix/Posix *
 
1963
 
 
1964
            dbm                 Interface to Unix dbm databases
 
1965
            grp                 Interface to Unix group database
 
1966
            posix               OS functionality standardized by C and POSIX standards
 
1967
            posixpath           POSIX pathname functions
 
1968
            pwd                 Access to the Unix password database
 
1969
            select              Access to Unix select multiplex file synchronization
 
1970
            socket              Access to BSD socket interface
 
1971
 
 
1972
* Tk User-interface Toolkit *
 
1973
 
 
1974
            tkinter             Main interface to Tk
 
1975
 
 
1976
* Multimedia *
 
1977
 
 
1978
            audioop             Useful operations on sound fragments
 
1979
            imageop             Useful operations on images
 
1980
            jpeg                Access to jpeg image compressor and decompressor
 
1981
            rgbimg              Access SGI imglib image files
 
1982
 
 
1983
* Cryptographic Extensions *
 
1984
 
 
1985
            md5         Interface to RSA's MD5 message digest algorithm
 
1986
            sha         Interface to the SHA message digest algorithm
 
1987
            HMAC        Keyed-Hashing for Message Authentication -- RFC 2104.
 
1988
 
 
1989
* SGI IRIX * (4 & 5)
 
1990
 
 
1991
            al          SGI audio facilities
 
1992
            AL          al constants
 
1993
            fl          Interface to FORMS library
 
1994
            FL          fl constants
 
1995
            flp Functions for form designer
 
1996
            fm          Access to font manager library
 
1997
            gl          Access to graphics library
 
1998
            GL          Constants for gl
 
1999
            DEVICE      More constants for gl
 
2000
            imgfile     Imglib image file interface
 
2001
 
 
2002
 
 
2003
Workspace exploration and idiom hints
 
2004
 
 
2005
        dir(<module>)   list functions, variables in <module>
 
2006
        dir()           get object keys, defaults to local name space
 
2007
        if __name__ == '__main__': main()            invoke main if running as script
 
2008
        map(None, lst1, lst2, ...)                   merge lists
 
2009
        b = a[:]                                     create copy of seq structure
 
2010
        _                       in interactive mode, is last value printed
 
2011
 
 
2012
 
 
2013
 
 
2014
 
 
2015
 
 
2016
 
 
2017
 
 
2018
Python Mode for Emacs
 
2019
 
 
2020
(Not revised, possibly not up to date)
 
2021
Type C-c ? when in python-mode for extensive help.
 
2022
INDENTATION
 
2023
Primarily for entering new code:
 
2024
        TAB      indent line appropriately
 
2025
        LFD      insert newline, then indent
 
2026
        DEL      reduce indentation, or delete single character
 
2027
Primarily for reindenting existing code:
 
2028
        C-c :    guess py-indent-offset from file content; change locally
 
2029
        C-u C-c :        ditto, but change globally
 
2030
        C-c TAB  reindent region to match its context
 
2031
        C-c <    shift region left by py-indent-offset
 
2032
        C-c >    shift region right by py-indent-offset
 
2033
MARKING & MANIPULATING REGIONS OF CODE
 
2034
C-c C-b         mark block of lines
 
2035
M-C-h           mark smallest enclosing def
 
2036
C-u M-C-h       mark smallest enclosing class
 
2037
C-c #           comment out region of code
 
2038
C-u C-c #       uncomment region of code
 
2039
MOVING POINT
 
2040
C-c C-p         move to statement preceding point
 
2041
C-c C-n         move to statement following point
 
2042
C-c C-u         move up to start of current block
 
2043
M-C-a           move to start of def
 
2044
C-u M-C-a       move to start of class
 
2045
M-C-e           move to end of def
 
2046
C-u M-C-e       move to end of class
 
2047
EXECUTING PYTHON CODE
 
2048
C-c C-c sends the entire buffer to the Python interpreter
 
2049
C-c |   sends the current region
 
2050
C-c !   starts a Python interpreter window; this will be used by
 
2051
        subsequent C-c C-c or C-c | commands
 
2052
C-c C-w runs PyChecker
 
2053
 
 
2054
VARIABLES
 
2055
py-indent-offset        indentation increment
 
2056
py-block-comment-prefix comment string used by py-comment-region
 
2057
py-python-command       shell command to invoke Python interpreter
 
2058
py-scroll-process-buffer        t means always scroll Python process buffer
 
2059
py-temp-directory       directory used for temp files (if needed)
 
2060
py-beep-if-tab-change   ring the bell if tab-width is changed
 
2061
 
 
2062
 
 
2063
The Python Debugger
 
2064
 
 
2065
(Not revised, possibly not up to date, see 1.5.2 Library Ref section 9.1; in 1.5.2, you may also use debugger integrated in IDLE)
 
2066
 
 
2067
Accessing
 
2068
 
 
2069
import pdb      (it's a module written in Python)
 
2070
        -- defines functions :
 
2071
           run(statement[,globals[, locals]])
 
2072
                        -- execute statement string under debugger control, with optional
 
2073
                           global & local environment.
 
2074
           runeval(expression[,globals[, locals]])
 
2075
                        -- same as run, but evaluate expression and return value.
 
2076
           runcall(function[, argument, ...])
 
2077
                        -- run function object with given arg(s)
 
2078
           pm()         -- run postmortem on last exception (like debugging a core file)
 
2079
           post_mortem(t)
 
2080
                        -- run postmortem on traceback object <t>
 
2081
 
 
2082
        -- defines class Pdb :
 
2083
           use Pdb to create reusable debugger objects. Object
 
2084
           preserves state (i.e. break points) between calls.
 
2085
 
 
2086
        runs until a breakpoint hit, exception, or end of program
 
2087
        If exception, variable '__exception__' holds (exception,value).
 
2088
 
 
2089
Commands
 
2090
 
 
2091
h, help
 
2092
        brief reminder of commands
 
2093
b, break [<arg>]
 
2094
        if <arg> numeric, break at line <arg> in current file
 
2095
        if <arg> is function object, break on entry to fcn <arg>
 
2096
        if no arg, list breakpoints
 
2097
cl, clear [<arg>]
 
2098
        if <arg> numeric, clear breakpoint at <arg> in current file
 
2099
        if no arg, clear all breakpoints after confirmation
 
2100
w, where
 
2101
        print current call stack
 
2102
u, up
 
2103
        move up one stack frame (to top-level caller)
 
2104
d, down
 
2105
        move down one stack frame
 
2106
s, step
 
2107
        advance one line in the program, stepping into calls
 
2108
n, next
 
2109
        advance one line, stepping over calls
 
2110
r, return
 
2111
        continue execution until current function returns
 
2112
        (return value is saved in variable "__return__", which
 
2113
        can be printed or manipulated from debugger)
 
2114
c, continue
 
2115
        continue until next breakpoint
 
2116
j, jump lineno
 
2117
        Set the next line that will be executed
 
2118
a, args
 
2119
        print args to current function
 
2120
rv, retval
 
2121
        prints return value from last function that returned
 
2122
p, print <arg>
 
2123
        prints value of <arg> in current stack frame
 
2124
l, list [<first> [, <last>]]
 
2125
               List source code for the current file.
 
2126
               Without arguments, list 11 lines around the current line
 
2127
               or continue the previous listing.
 
2128
               With one argument, list 11 lines starting at that line.
 
2129
               With two arguments, list the given range;
 
2130
               if the second argument is less than the first, it is a count.
 
2131
whatis <arg>
 
2132
        prints type of <arg>
 
2133
!
 
2134
        executes rest of line as a Python statement in the current stack frame
 
2135
q quit
 
2136
        immediately stop execution and leave debugger
 
2137
<return>
 
2138
        executes last command again
 
2139
Any input debugger doesn't recognize as a command is assumed to be a
 
2140
Python statement to execute in the current stack frame, the same way
 
2141
the exclamation mark ("!") command does.
 
2142
 
 
2143
Example
 
2144
 
 
2145
(1394) python
 
2146
Python 1.0.3 (Sep 26 1994)
 
2147
Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
 
2148
>>> import rm
 
2149
>>> rm.run()
 
2150
Traceback (innermost last):
 
2151
         File "<stdin>", line 1
 
2152
         File "./rm.py", line 7
 
2153
           x = div(3)
 
2154
         File "./rm.py", line 2
 
2155
           return a / r
 
2156
ZeroDivisionError: integer division or modulo
 
2157
>>> import pdb
 
2158
>>> pdb.pm()
 
2159
> ./rm.py(2)div: return a / r
 
2160
(Pdb) list
 
2161
         1     def div(a):
 
2162
         2  ->     return a / r
 
2163
         3
 
2164
         4     def run():
 
2165
         5         global r
 
2166
         6         r = 0
 
2167
         7         x = div(3)
 
2168
         8         print x
 
2169
[EOF]
 
2170
(Pdb) print r
 
2171
0
 
2172
(Pdb) q
 
2173
>>> pdb.runcall(rm.run)
 
2174
etc.
 
2175
 
 
2176
Quirks
 
2177
 
 
2178
Breakpoints are stored as filename, line number tuples. If a module is reloaded
 
2179
after editing, any remembered breakpoints are likely to be wrong.
 
2180
 
 
2181
Always single-steps through top-most stack frame. That is, "c" acts like "n".