version becomes 3.1.2
[python/dscho.git] / Misc / cheatsheet
blob8c5ddcb457b7abd10acf88601872ccd15ee7c906
1                           Python 2.3 Quick Reference
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
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
16     and the readers of comp.lang.python
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)
32 Invocation Options
34 python [-diOStuUvxX?] [-c command | script | - ] [args]
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.
62   * Available IDEs in std distrib: IDLE (tkinter based, portable), Pythonwin
63     (Windows).
67 Environment variables
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)
95 Notable lexical entities
97 Keywords
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
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.
116 Identifiers
118         (letter | "_")  (letter | digit | "_")*
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)
125 Strings
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"
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)
143     String Literal Escapes
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
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.
159 Numbers
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)
169 Sequences
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]
178 Indexing is 0-based. Negative indices (usually) mean count backwards from end
179 of sequence.
181 Sequence slicing [starting-at-index : but-less-than-index]. Start defaults to
182 '0'; End defaults to 'sequence-length'.
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.
192 Dictionaries (Mappings)
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
201 Operators and their evaluation order
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
225 Alternate names are defined in module operator (e.g. __add__ and add for +)
226 Most operators are overridable.
228 Many binary operators also support augmented assignment:
229         x += 1                            # Same as x = x + 1
232 Basic Types and Their Operations
234 Comparisons (defined between *any* types)
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)
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.
256 Boolean values and operators
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
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.
275 None
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.
282 Numeric types
284 Floats and integers.
286     Floats are implemented with C doubles.
287     Integers have unlimited size (only limit is system resources)
289 Operators on all numeric types
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))
306 Bit operators on integers
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
317 Complex Numbers
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.
324 Numeric exceptions
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
335 Operations on all sequence types (lists, tuples, strings)
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()
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.
361 Operations on mutable (=modifiable) sequences (lists)
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)
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.
395 Operations on mappings (dictionaries)
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)
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.
436 Operations on strings
438 Note that these string methods largely (but not completely) supersede the
439 functions available in the string module.
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.
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.
538 String formatting with the % operator
540 formatString % args--> evaluates to a string
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
550         '%s has %03d quote types.' % ('Python', 2)  # => 'Python has 002 quote types.'
552   * Right-hand-side can also be a mapping:
554         a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python}
555 (vars() function very handy to use on right-hand-side.)
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 %%.)
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).
589 File Objects
591 Created with built-in function open; may be created by other modules' functions
592 as well.
594 Operators on file objects
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.
615 File Exceptions
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.
626     Advanced Types
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)
649     Statements
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.
676     Assignment operators
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)
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.
701     Control Flow
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.
726     Exception Statements
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:
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
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.
782 Name Space Statements
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".
825 Function Definition
827 def func_id ([param_list]): suite
828                 -- Creates a function object & binds it to name func_id.
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]
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.
845 Class Definition
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.
881 Documentation Strings
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".
895 Others
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)
917 Built-In Functions
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.
1037 Built-In Exceptions
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
1106 Standard methods & operators redefinition in classes
1108 Standard methods & operators map to special '__methods__' and thus may be
1109  redefined (mostly 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)
1116 Special methods for any class
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.
1134 Operators
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).
1140     Numeric operations special methods
1141     (s: self, o: other)
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)
1169     All seqs and maps, general operations plus:
1170     (s: self, i: index or key)
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
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)
1189 Special informative state attributes for some types:
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)
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)
1205     Instances:
1206         __class__ (class, R/W): instance's class
1207         __dict__ (dict, R/W): attributes
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.
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
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
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)
1272     Slices:
1273         start (any/None, R/O): lowerbound
1274         stop (any/None, R/O): upperbound
1275         step (any/None, R/O): step value
1277     Complex numbers:
1278         real (float, R/O): real part
1279         imag (float, R/O): imaginary part
1282 Important Modules
1284                                       sys
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).
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.
1333 setrecursionlimit  Set maximum recursion depth. (Defaults to 1000.)
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)
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'
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.
1371                                      posix
1372 don't import this module directly, import os instead !
1373 (see also module: shutil for file copy & remove fcts)
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.
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.
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)) !
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.
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.
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]
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.
1480                                     shutil
1481 high-level file operations (copying, deleting).
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
1494 (and also: copyfile, copymode, copystat, copy2)
1496 time
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
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.
1520 and also: clock, ctime.
1522                                     string
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.
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.
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.
1562                                    re (sre)
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.
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.
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
1618                          Variables
1619 Variable                       Meaning
1620 error    Exception when pattern string isn't a valid regexp.
1622                                    Functions
1623    Function                                 Result
1624                Compile a RE pattern string into a regular expression object.
1625                Flags (combinable by |):
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])
1661 Regular Expression Objects
1664 (RE objects are returned by the compile fct)
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
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=
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])
1708 Match Objects
1711 (Match objects are returned by the match & search functions)
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()
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)
1736 span(     returns the 2-tuple (start(group), end(group)); can be (None, None)if
1737 group)    group didn't contibute to the match.
1741                                      math
1743 Variables:
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)
1772                                     getopt
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']
1786 List of modules and packages in base distribution
1788 (built-ins and content of python Lib directory)
1789 (Python NT distribution, may be slightly different in other distributions)
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.
1941 * Built-ins *
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
1952 * Standard *
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.
1962 * Unix/Posix *
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
1972 * Tk User-interface Toolkit *
1974             tkinter             Main interface to Tk
1976 * Multimedia *
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
1983 * Cryptographic Extensions *
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.
1989 * SGI IRIX * (4 & 5)
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
2003 Workspace exploration and idiom hints
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
2018 Python Mode for Emacs
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
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
2063 The Python Debugger
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)
2067 Accessing
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>
2082         -- defines class Pdb :
2083            use Pdb to create reusable debugger objects. Object
2084            preserves state (i.e. break points) between calls.
2086         runs until a breakpoint hit, exception, or end of program
2087         If exception, variable '__exception__' holds (exception,value).
2089 Commands
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>
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.
2143 Example
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
2172 (Pdb) q
2173 >>> pdb.runcall(rm.run)
2174 etc.
2176 Quirks
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.
2181 Always single-steps through top-most stack frame. That is, "c" acts like "n".