diff options
author | Andrew M. Kuchling <amk@amk.ca> | 2001-08-06 17:43:49 (GMT) |
---|---|---|
committer | Andrew M. Kuchling <amk@amk.ca> | 2001-08-06 17:43:49 (GMT) |
commit | 13423f337ddcd71394a76b00ee55c3aa55365e93 (patch) | |
tree | e353bbe0de4be8aeed8076ef3bfec43748aa0896 | |
parent | 7b1262230ce8671283c4bf6b248ac254b08a89f1 (diff) | |
download | cpython-13423f337ddcd71394a76b00ee55c3aa55365e93.zip cpython-13423f337ddcd71394a76b00ee55c3aa55365e93.tar.gz cpython-13423f337ddcd71394a76b00ee55c3aa55365e93.tar.bz2 |
Update cheatsheet to 2.0 from Brunning/Gruet's quick reference
-rw-r--r-- | Misc/cheatsheet | 2747 |
1 files changed, 2212 insertions, 535 deletions
diff --git a/Misc/cheatsheet b/Misc/cheatsheet index 204b51b..a4d96e2 100644 --- a/Misc/cheatsheet +++ b/Misc/cheatsheet @@ -1,541 +1,2218 @@ - A Python Bestiary - Itemizing Python Objects and Nuances - - $Revision$ $Date$ ken.manheimer@nist.gov - - Notable lexical entities - ======================== - - Keywords - - access and break class - continue def del elif - else except exec finally - for from global if - import in is lambda - not or pass print - raise return try while + Python 2.0 Quick Reference + + + + 16 May 2001 upgraded by Richard Gruet and Simon Brunning for Python 2.0 + 2000/07/18 upgraded by Richard Gruet, rgruet@intraware.com for Python 1.5.2 +from V1.3 ref +1995/10/30, by Chris Hoffmann, choffman@vicorp.com + +Based on: + Python Bestiary, Author: Ken Manheimer, ken.manheimer@nist.gov + Python manuals, Authors: Guido van Rossum and Fred Drake + What's new in Python 2.0, Authors: A.M. Kuchling and Moshe Zadka + python-mode.el, Author: Tim Peters, tim_one@email.msn.com + + and the readers of comp.lang.python + +Python's nest: http://www.python.org Developement: http:// +python.sourceforge.net/ ActivePython : http://www.ActiveState.com/ASPN/ +Python/ +newsgroup: comp.lang.python Help desk: help@python.org +Resources: http://starship.python.net/ and http://www.vex.net/parnassus/ +Full documentation: http://www.python.org/doc/ +An excellent Python reference book: Python Essential Reference by David Beazley +(New Riders) + + +Contents + + * Invocation Options + * Environment Variables + * Lexical Entities : keywords, identifiers, strings, numbers, sequences, + dictionaries, operators + * Basic Types And Their Operations + * Advanced Types + * Statements + * Built In Functions + * Built In Exceptions + * Standard methods & operators redefinition in user-created Classes + * Special informative state attributes for some types + * Important Modules : sys, os, posix, posixpath, shutil, time, string, re, + math, getopt + * List of modules In base distribution + * Workspace Exploration And Idiom Hints + * Python Mode for Emacs + * The Python Debugger + + + +Invocation Options + +python [-diOStuUvxX?] [-c command | script | - ] [args] + + Invocation Options +Option Effect +-d Outputs parser debugging information (also PYTHONDEBUG=x) +-i Inspect interactively after running script (also PYTHONINSPECT=x) and + force prompts, even if stdin appears not to be a terminal +-O Optimize generated bytecode (set __debug__ = 0 =>s suppresses asserts) +-S Don't perform 'import site' on initialization +-t Issue warnings about inconsistent tab usage (-tt: issue errors) +-u Unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x). +-U Force Python to interpret all string literals as Unicode literals. +-v Verbose (trace import statements) (also PYTHONVERBOSE=x) +-x Skip first line of source, allowing use of non-unix Forms of #!cmd +[DEL:-X [DEL:Disable class based built-in exceptions (for backward +:DEL] compatibility management of exceptions):DEL] +-? Help! +-c Specify the command to execute (see next section). This terminates the +command option list (following options are passed as arguments to the command). + the name of a python file (.py) to execute read from stdin. +script Anything afterward is passed as options to python script or command, + not interpreted as an option to interpreter itself. +args passed to script or command (in sys.argv[1:]) + If no script or command, Python enters interactive mode. + + * Available IDEs in std distrib: IDLE (tkinter based, portable), Pythonwin + (Windows). + + + +Environment variables + + Environment variables + Variable Effect +PYTHONHOME Alternate prefix directory (or prefix;exec_prefix). The + default module search path uses prefix/lib + Augments the default search path for module files. The format + is the same as the shell's $PATH: one or more directory + pathnames separated by ':' or ';' without spaces around + (semi-)colons! +PYTHONPATH On Windows first search for Registry key HKEY_LOCAL_MACHINE\ + Software\Python\PythonCore\x.y\PythonPath (default value). You + may also define a key named after your application with a + default string value giving the root directory path of your + app. + If this is the name of a readable file, the Python commands in +PYTHONSTARTUP that file are executed before the first prompt is displayed in + interactive mode (no default). +PYTHONDEBUG If non-empty, same as -d option +PYTHONINSPECT If non-empty, same as -i option +PYTHONSUPPRESS If non-empty, same as -s option +PYTHONUNBUFFERED If non-empty, same as -u option +PYTHONVERBOSE If non-empty, same as -v option +PYTHONCASEOK If non-empty, ignore case in file/module names (imports) + + + + +Notable lexical entities + +Keywords + + and del for is raise + assert elif from lambda return + break else global not try + class except if or while + continue exec import pass + def finally in print + + * (list of keywords in std module: keyword) + * Illegitimate Tokens (only valid in strings): @ $ ? + * A statement must all be on a single line. To break a statement over + multiple lines use "\", as with the C preprocessor. + Exception: can always break when inside any (), [], or {} pair, or in + triple-quoted strings. + * More than one statement can appear on a line if they are separated with + semicolons (";"). + * Comments start with "#" and continue to end of line. + +Identifiers + + (letter | "_") (letter | digit | "_")* + + * Python identifiers keywords, attributes, etc. are case-sensitive. + * Special forms: _ident (not imported by 'from module import *'); __ident__ + (system defined name); + __ident (class-private name mangling) + +Strings + + "a string enclosed by double quotes" + 'another string delimited by single quotes and with a " inside' + '''a string containing embedded newlines and quote (') marks, can be + delimited with triple quotes.''' + """ may also use 3- double quotes as delimiters """ + u'a unicode string' U"Another unicode string" + r'a raw string where \ are kept (literalized): handy for regular + expressions and windows paths!' + R"another raw string" -- raw strings cannot end with a \ + ur'a unicode raw string' UR"another raw unicode" + + Use \ at end of line to continue a string on next line. + adjacent strings are concatened, e.g. 'Monty' ' Python' is the same as + 'Monty Python'. + u'hello' + ' world' --> u'hello world' (coerced to unicode) String Literal Escapes \newline Ignored (escape newline) - \\ Backslash (\) \e Escape (ESC) \v Vertical Tab (VT) - \' Single quote (') \f Formfeed (FF) \0XX char with - \" Double quote (") \n Linefeed (LF) octal value XX - \a Bell (BEL) \r Carriage Return (CR) \xXX char with - \b Backspace (BS) \t Horizontal Tab (TAB) hex value XX - - Illegitimate Tokens (only valid in strings): @ $ ? - - Operating environment (Unix) - - Shell environment vars: - - PYTHONPATH: dirs to be prepended to module search path; a la shell PATH - PYTHONSTARTUP: names path of file to be loaded on interactive startup - - Internal (module sys) vars ('import sys' to refer to them): - - argv - list of command and arguments passed to python script - builtin_module_names - list of names of modules compiled in to python - ( exc_* values are set only during handling of a raised exception) - exc_type - type of exception being handled - exc_value - exception's parameter ('raise's 2nd arg) - exc_traceback - exception's traceback obj - exit(N) - exit from python with status N, by raising SystemExit - exitfunc - function hook, to be called on exit if set - last_type - type of last unhandled exception - last_value - value of last unhandled exception - last_traceback - traceback of last unhandled exception - modules - list of modules already loaded - path - list of strings specifying module-load search path - ps1='>>>' - string specifying primary prompt, iff interactive - ps2='...' - string specifying secondary prompt, iff interactive - settrace - system trace function, used by debuggers, etc - setprofile - system profile function - stdin - standard input file object - stdout - standard output file object - stderr - standard error file object - tracebacklimit=1000 - maximum number of traceback levels to print - - - Objects - behaviors, special attributes, operations, statements, etc - ==================================================================== - - General object aspects - - Boolean values and operators - - False values: None, numeric zeros, empty sequences and mappings - True values: all other values - - not X: if X is false then 1, else 0 - ( 'or', 'and' evaluate second arg only if necessary to determine outcome) - X or Y: if X is false then Y, else X - X and Y: if X is false then X, else Y - - Special methods for any type (s: self) - - id(obj) unique identifier for object (currently, its address) - __init__(s, args) object instantiation - see Classes, below - __del__(s) object demise - __repr__(s) repr() and `...` conversions - __str__(s) str() and 'print' statement - __cmp__(s) implements <, ==, >, <=, <>, !=, >=, is [not] - __hash__(s) hash() and dictionary operations - - Special informative state attributes for some types: - - X.__dict__ dict used to store object's writeable attributes - X.__methods__ list of X's methods; on many built-in types. - X.__members__ lists of X's data attributes - X.__class__ class to which X belongs - X.__bases__ tuple of X base classes - - General Name Space behavior and binding - - Name space search order: local, global, builtin - - "global" name space = file = module - "local" name space = function or method - - Code Block scopes (ns = name space, cb = containing block) - - ( global ns generally is containing module, unless overriden by args) - - Code block type Local ns Notes - --------------- -------- ----- - Module same as global ns - Script same as global ns global ns is __main__ - Interactive cmd same as global ns global ns is __main__ - Class def new ns - Function body new ns - 'exec' string local ns of cb (or args) - 'eval' string local ns of caller (or args) - 'execfile' file local ns of caller (or args) - 'input' expr local ns of caller - - Binding operations and exceptions: - - ~ SyntaxError: on attempt to bind to literals or other non-bindables - ~ NameError: on attempt to evaluate unbound atom - - ( for object attribute functions, obj: object, nm: string, val: any value) - getattr(obj, nm) get value of obj.nm - hasattr(obj, nm) true if obj has nm attribute - setattr(obj, nm, val) set obj.nm to val - - assignment statement: targ1, targ2, ,,, = obj1, obj2, ,,, - deletion statement: del obj1, obj2, ... - for loop target identifiers, 'except' clauses (see Statements, below) - formal params (see Callables, below) - import statement (see Modules objects, below) - class and func defs (see Callables, below) - - Name space linkage - - global statement: global var, ... # Interpret 'var's as globals - X access statement: access ... # control inst and class vars access - - @ Built-in Exceptions - - AttributeError On attribute reference or assignment failure - EOFError Immediate end-of-file hit by input() or raw_input() - IOError I/O-related I/O operation failure - ImportError On failure of `import' to find module or name - IndexError On out-of-range sequence subscript - KeyError On reference to a non-existent mapping (dict) key - KeyboardInterrupt On user entry of the interrupt key (often `Control-C') - MemoryError On recoverable memory exhaustion - NameError On failure to find a local or global (unqualified) name - OverflowError On excessively large arithmetic operation - RuntimeError Obsolete catch-all; define a suitable error instead - SyntaxError On parser encountering a syntax error - SystemError On non-fatal interpreter error - bug - report it - SystemExit On `sys.exit()' - TypeError On passing inappropriate type to built-in op or func - ValueError On arg error not covered by TypeError or more precise - ZeroDivisionError On division or modulo operation with 0 as 2nd arg - - **** Numbers **** - - @ Integers: 'C' long, >= 32 bits precision; OverflowError if bounds exceeded - @ Long Integers: unlimited precision - '2147483648L' - @ Floating point: machine double-precision floating point - '2147483648.0' - - Numeric operations vs special methods (s = self, o = other) - - s+o = __add__(s,o) s-o = __sub__(s,o) - s*o = __mul__(s,o) s/o = __div__(s,o) - s%o = __mod__(s,o) divmod(s,o) = __divmod__(s,o) - pow(s,o) = __pow__(s,o) - s&o = __and__(s,o) - s^o = __xor__(s,o) s|o = __xor__(s,o) - s<<o = __lshift__(s,o) s>>o = __rshift__(s,o) - nonzero(s) = __nonzero__(s) coerce(s,o) = __coerce__(s,o) - -s = __neg__(s) +s = __pos__(s) - abs(s) = __abs__(s) ~s = __invert__(s) (bitwise) - int(s) = __int__(s) long(s) = __long__(s) - float(s) = __float__(s) - oct(s) = __oct__(s) hex(s) = __hex__(s) - - Numeric functions: - - range(start=0,end,step=1) create arithmetic progression list - round(x, n=0) round floating point x to n decimal places - xrange(start=0,end,step=1) create virtual arithmetic progressions tuple - - Numeric exceptions: - - ~ TypeError: raised on application of arithemetic opertion to non-number - ~ OverflowError: numeric bounds exceeded - ~ ZeroDivisionError: raised when zero second argument of div or modulo op - - **** Collections - Sequences and Mappings **** - - Collections general operations vs methods (s: self, i: index or key) - - len(s) = __len__(s) length of object, >= 0. Length 0 == false - s[i] = __getitem__(s,i) Element at index/key i, origin 0 - - Sequences - - @ String (immutable sequence): 'string contents' - - 'this is a string' - "and so is this" - ''' and this begins a 'multi-line' string with embedded quotes... - and this is the end of that string.''' - - `expr` = __repr__(expr), converts arbitrary expr to string - chr(int) string of ascii letter at ordinate in (0 <= int < 256) - ord(string) ascii ordinate of string (string must be length 1) - string % arg format operator, a la C sprintf - arg for single directive can be any (suitable) type - arg for multiple directives must be tuple or dict - dict (mapping) arg uses parenthesized directives that are keys into it - supports %, c, s, i, d, u, o, x, X, e, E, f, g, G directives - * can be width and precision; directs use of corresponding (int) args - * can not be used with dict args - flag characters -, +, blank, #, and 0 understood. - %s conversion takes any python object, converts using `str()' - ANSI directives %p and %n not supported - %s conversions do *not* take \000 as end of string - - @ Tuples (immutable sequence): (oneelem, another, etc) - - parens may be left off all but empty tuples - singletons represented by affixing a comma to an expr - empty tuple represented using empty parens - - @ Lists (mutable sequence): [oneelem, another, etc] - - assignment - must be 1-1 map of items in target and object sequences - deletion - similar rules as for assignment - - List special methods: see mutable sequence ops vs methods, below - - Sequences general ops vs methods (s: self, i,j: indices, v: val) - - All collections general methods, plus: - s[i:j] __getslice__(s,i,j), all s[k] s.t. i <= k < j - min(s) smallest item of s - max(s) largest item of s - v [not] in s 1 if v [not] equal to an item in s, else 0 - s + seq concatenation of s and seq - s * num num copies of s concatenated, also, `num * s' - - Immutable sequence ops vs methods (s: self, i,j: indices, v: val) - - All collections and sequences general methods, plus: - s[i:j] __getslice__(s,i,j), all s[k] s.t. i <= k < j - ( For s[i:j], len(self) is intrinsically added to i, j < 0) - ( Complex elems of immutable seqs may be mutable, see dictionaries, below) - - Mutable sequence ops vs methods (s: self, i,j: indices, v: val) - - All sequences' general methods, plus: - ( for non-slice refs, i < 0 intrinsically has len(s) added) - ( For slice refs, len(s) *is not* intrinsically added to i, j < 0) - ( for assignment/deletion, index refs must point to existing items - s[i]=v = __setitem__(s,i,v) - del s[i] = __delitem__(s,i) - s[i:j] = __getslice__(s,i,j) - s[i:j]=seq = __setslice__(s,i,j,seq) - del s[i:j] = __delslice__(s,i,j) == s[i:j] = [] - s.append(seq) == `s[len(seq):len(seq)] = seq' (but faster) - s.count(v) number of i's for which `s[i] == v' - s.index(v) first i such that `s[i] == v', or IndexError if none - s.insert(i, v) == `s[i:i] = [v]' - s.remove(v) == `del s[s.index(v)]', or IndexError if v not in s - s.reverse() reverse the items of s in place - s.sort() permute s items so s[i] <= s[j], for i < j - - Mappings - - @ Dictionaries: {key1: val1, key2: val2, ...} - - built-in types as keys must be unalterable: obj & all contents immutable - User-defined classes as keys must have __hash__() and __cmp__() methods - ~ TypeError is raised if key not acceptable - ~ KeyError is raised if reference made using non-existent key - key types may vary (contrary to ref man) - - Dictionaries ops vs methods (s: self, k: key, v: val) - - all collections general ops, plus: - hash(s) = __hash__(s) - hash value for dictionary references - s[k]=v = __setitem__(s,k,v) - del s[k] = __delitem__(s,k) - s.items() = a list copy of s's (key, item) pairs - s.keys() = a list copy of s's keys - s.values() = a list copy of s's values - s.has_keys(k) = 1 if s has key k, else 0 - ( s.items, .keys, and .values yield random but mutually consistent order) - - **** Callables **** - - @ User defined functions: 'def name (param-list): suite' - - suite is not evaluated at statement execution, but at function invocation - function parameters, comma separated on param-list: - func_code: special attr, code object representing compiled function body - func_globals: special attr, ref to global dict of funcs definition module - func(arg-list) invocation - - @ User defined methods: like functions, with extra implicit arg - - Same as functions, but passed class instance as additional first argument - im_self: special attr, method's class instance object - im_func: special attr, function object - mthd(args) invocation, same as mthd.im_func(mthd.im_self, args) - - @ Classes: 'class name[ (inheritance)]: suite' - - inheritance list is evaluated, if any, to identify base classes for name - suite is executed in new local name space, which goes to the class object - class name is bound in encompassing local name space - container for dictionary containing class's ns dictionary - __dict__: ro attr, class ns as dictionary object - __bases__: ro attr, class' base classes in tuple - __init__(self, args..): implements object instantiation - __del__(self): implements impending object deletion - - @ Class instances - - __dict__: ro attr, class' attribute dictionary - __class__: ro attr, instance's class object - - Callables special method vs ops (f: function) - - apply(f, args-tuple) call f with args-tuple as arg list - compile(str, flnm, kind) compile string into exectuable code object - eval(str, glbls=, lcls=) evaluate string as expression (cond_list) - filter(f, seq) => seq of seq elems for which f is true - map(f, lst, [lst2, ...]) => list of f applied to succesive lsts elems - reduce(f, lst, initlzr) => value of f applied to elems and cume result - - @ **** Null object: `None' **** - - @ **** Type objects, print as: <type 'int'> **** - ( '<...>' form is only for printing - cannot be entered that way, - - accessed via built-in func 'type()' - ( equal only when identical (same id()), - so can't just use the string name, must use object with the same str val) - - @ **** Modules **** - - functions and methods in a module share module's ("global") namespace - function uses "global" statement to instantiate var in global context - Modules use "import" to incorp other module's names - see Name Spaces - - Special attrs, methods, and operations - - __dict__: attr, module's ns as dictionary; can modify vals but not sruct - __name__: ro attr, module's name as string - import Instantiate module or module components within another - reload(amod) Reread an imported module - - @ **** Files **** - - wrapper around a C stdio file pointer - sys.stdin, sys.stdout, sys.stderr are standard io-stream file objects - - File operations: - - open(nm, mode='r', bufsize=sysdef) return new file object - close() A closed file cannot be read or written anymore. - flush() Flush the internal buffer, like stdio's `fflush()'. - isatty() 1 if file connected to a tty(-like) device, else 0. - read(SIZE) Read up to SIZE bytes frm file, less on EOF or no data - readline() Read one entire line from the file. - readlines() `readline()' til EOF and return list of lines read. - seek(OFFSET,WHENCE) Set file's current position, like stdio's `fseek()' - tell() Return file's current position, like stdio's `ftell()'. - write(STR) Write a string to the file. There is no return value. - - File functions: - - input(prompt='') like raw input but accept '\' line continuations - print exp, exp2, ... Write values to stdout - raw_input(prompt='') prompt then read single line of input - - **** Internal types **** - - @ Code objects - represent exectuable code - function obj sans context - @ Frame objects - represent executable frames - may occur in traceback objs - @ Traceback objects - stack trace of an exception - - Control statements - ================== - - * Calls and Evaluation * - - ( See also Callables, in Objects section above, for ops and methods.) - - exec: exec expr [ in expr2 [, expr3]] # Dynamic execution of python code - return: return [expr] # Leave current func call with expr value - - * Conditionals and Loops * - ( See also Boolean values, above) - - break: break # Terminate nearest enclosing loop - continue: continue # Continue next cycle of enclosing loop - if: if cond: suite [\n elif cond: suite \n ...] [\n else: suite] - for: for targs in conds: suite [ \n else: suite ] - while: while cond: suite [ \n else : suite ] - - * Exceptions * - - raise: raise expr [, expr2] # Raise exception expr, passing expr2 if any - try... # Handle exceptions: - try: suite [\n except [cond [, targ]]: suite \n ... \n] [else: suite] - try: suite \n finally: suite # Specify a 'cleanup' handler - ( two 'try' forms cannot be mixed together) - - System modules - ============== - @ * Built-ins * - - sys Interpreter state (see Operating Environment, above) - __builtin__ Access to all built-in python identifiers - __main__ Scope of the interpreters main program, script or stdin - array Obj efficiently representing arrays of basic values - math Math functions of C standard - time Time-related functions - regex Regular expression matching operations - marshal Read and write some python values in binary format - strop Miscellaneous string operations - struct Convert between python values and C structs + \\ Backslash (\) \e Escape (ESC) \v Vertical Tab (VT) + \' Single quote (') \f Formfeed (FF) \OOO char with octal value OOO + \" Double quote (") \n Linefeed (LF) + \a Bell (BEL) \r Carriage Return (CR) \xHH char with hex value HH + \b Backspace (BS) \t Horizontal Tab (TAB) + \uHHHH unicode char with hex value HHHH, can only be used in unicode string + \UHHHHHHHH unicode char with hex value HHHHHHHH, can only be used in unicode string + \AnyOtherChar is left as-is + + * NUL byte (\000) is NOT an end-of-string marker; NULs may be embedded in + strings. + * Strings (and tuples) are immutable: they cannot be modified. + +Numbers + + Decimal integer: 1234, 1234567890546378940L (or l) + Octal integer: 0177, 0177777777777777777L (begin with a 0) + Hex integer: 0xFF, 0XFFFFffffFFFFFFFFFFL (begin with 0x or 0X) + Long integer (unlimited precision): 1234567890123456L (ends with L or l) + Float (double precision): 3.14e-10, .001, 10., 1E3 + Complex: 1J, 2+3J, 4+5j (ends with J or j, + separates (float) real and + imaginary parts) + +Sequences + + * String of length 0, 1, 2 (see above) + '', '1', "12", 'hello\n' + * Tuple of length 0, 1, 2, etc: + () (1,) (1,2) # parentheses are optional if len > 0 + * List of length 0, 1, 2, etc: + [] [1] [1,2] + +Indexing is 0-based. Negative indices (usually) mean count backwards from end +of sequence. + +Sequence slicing [starting-at-index : but-less-than-index]. Start defaults to +'0'; End defaults to 'sequence-length'. + +a = (0,1,2,3,4,5,6,7) + a[3] ==> 3 + a[-1] ==> 7 + a[2:4] ==> (2, 3) + a[1:] ==> (1, 2, 3, 4, 5, 6, 7) + a[:3] ==> (0, 1, 2) + a[:] ==> (0,1,2,3,4,5,6,7) # makes a copy of the sequence. + +Dictionaries (Mappings) + + Dictionary of length 0, 1, 2, etc: + {} {1 : 'first'} {1 : 'first', 'next': 'second'} + +Operators and their evaluation order + + Operators and their evaluation order +Highest Operator Comment + (...) [...] {...} `...` Tuple, list & dict. creation; string + conv. + s[i] s[i:j] s.attr f(...) indexing & slicing; attributes, fct + calls + +x, -x, ~x Unary operators + x**y Power + x*y x/y x%y mult, division, modulo + x+y x-y addition, substraction + x<<y x>>y Bit shifting + x&y Bitwise and + x^y Bitwise exclusive or + x|y Bitwise or + x<y x<=y x>y x>=y x==y x!=y Comparison, + x<>y identity, + x is y x is not y membership + x in s x not in s + not x boolean negation + x and y boolean and + x or y boolean or +Lowest lambda args: expr anonymous function + +Alternate names are defined in module operator (e.g. __add__ and add for +) +Most operators are overridable + + +Basic Types and Their Operations + +Comparisons (defined between *any* types) + + Comparisons +Comparison Meaning Notes +< strictly less than (1) +<= less than or equal to +> strictly greater than +>= greater than or equal to +== equal to +!= or <> not equal to +is object identity (2) +is not negated object identity (2) + +Notes : + Comparison behavior can be overridden for a given class by defining special +method __cmp__. + (1) X < Y < Z < W has expected meaning, unlike C + (2) Compare object identities (i.e. id(object)), not object values. + +Boolean values and operators + + Boolean values and operators + Value or Operator Returns Notes +None, numeric zeros, empty sequences and False +mappings +all other values True +not x True if x is False, else + True +x or y if x is False then y, else (1) + x +x and y if x is False then x, else (1) + y + +Notes : + Truth testing behavior can be overridden for a given class by defining +special method __nonzero__. + (1) Evaluate second arg only if necessary to determine outcome. + +None + + None is used as default return value on functions. Built-in single object + with type NoneType. + Input that evaluates to None does not print when running Python + interactively. + +Numeric types + +Floats, integers and long integers. + + Floats are implemented with C doubles. + Integers are implemented with C longs. + Long integers have unlimited size (only limit is system resources) + +Operators on all numeric types + + Operators on all numeric types + Operation Result +abs(x) the absolute value of x +int(x) x converted to integer +long(x) x converted to long integer +float(x) x converted to floating point +-x x negated ++x x unchanged +x + y the sum of x and y +x - y difference of x and y +x * y product of x and y +x / y quotient of x and y +x % y remainder of x / y +divmod(x, y) the tuple (x/y, x%y) +x ** y x to the power y (the same as pow(x, y)) + +Bit operators on integers and long integers + + Bit operators +Operation >Result +~x the bits of x inverted +x ^ y bitwise exclusive or of x and y +x & y bitwise and of x and y +x | y bitwise or of x and y +x << n x shifted left by n bits +x >> n x shifted right by n bits + +Complex Numbers + + * represented as a pair of machine-level double precision floating point + numbers. + * The real and imaginary value of a complex number z can be retrieved through + the attributes z.real and z.imag. + +Numeric exceptions + +TypeError + raised on application of arithmetic operation to non-number +OverflowError + numeric bounds exceeded +ZeroDivisionError + raised when zero second argument of div or modulo op + +Operations on all sequence types (lists, tuples, strings) + + Operations on all sequence types +Operation Result Notes +x in s 1 if an item of s is equal to x, else 0 +x not in s 0 if an item of s is equal to x, else 1 +s + t the concatenation of s and t +s * n, n*s n copies of s concatenated +s[i] i'th item of s, origin 0 (1) +s[i:j] slice of s from i (included) to j (excluded) (1), (2) +len(s) length of s +min(s) smallest item of s +max(s) largest item of (s) + +Notes : + (1) if i or j is negative, the index is relative to the end of the string, +ie len(s)+ i or len(s)+j is + substituted. But note that -0 is still 0. + (2) The slice of s from i to j is defined as the sequence of items with +index k such that i <= k < j. + If i or j is greater than len(s), use len(s). If i is omitted, use +len(s). If i is greater than or + equal to j, the slice is empty. + +Operations on mutable (=modifiable) sequences (lists) + + Operations on mutable sequences + Operation Result Notes +s[i] =x item i of s is replaced by x +s[i:j] = t slice of s from i to j is replaced by t +del s[i:j] same as s[i:j] = [] +s.append(x) same as s[len(s) : len(s)] = [x] +s.extend(x) same as s[len(s):len(s)]= x (5) +s.count(x) return number of i's for which s[i] == x +s.index(x) return smallest i such that s[i] == x (1) +s.insert(i, x) same as s[i:i] = [x] if i >= 0 +s.remove(x) same as del s[s.index(x)] (1) +s.pop([i]) same as x = s[i]; del s[i]; return x (4) +s.reverse() reverse the items of s in place (3) +s.sort([cmpFct]) sort the items of s in place (2), (3) + +Notes : + (1) raise a ValueError exception when x is not found in s (i.e. out of +range). + (2) The sort() method takes an optional argument specifying a comparison +fct of 2 arguments (list items) which should + return -1, 0, or 1 depending on whether the 1st argument is +considered smaller than, equal to, or larger than the 2nd + argument. Note that this slows the sorting process down considerably. + (3) The sort() and reverse() methods modify the list in place for economy +of space when sorting or reversing a large list. + They don't return the sorted or reversed list to remind you of this +side effect. + (4) [New 1.5.2] The pop() method is experimental and not supported by +other mutable sequence types than lists. + The optional argument i defaults to -1, so that by default the last +item is removed and returned. + (5) [New 1.5.2] Experimental ! Raises an exception when x is not a list +object. + + + +Operations on mappings (dictionaries) + + Operations on mappings + Operation Result Notes +len(d) the number of items in d +d[k] the item of d with key k (1) +d[k] = x set d[k] to x +del d[k] remove d[k] from d (1) +d.clear() remove all items from d +d.copy() a shallow copy of d +d.has_key(k) 1 if d has key k, else 0 +d.items() a copy of d's list of (key, item) pairs (2) +d.keys() a copy of d's list of keys (2) +d1.update(d2) for k, v in d2.items(): d1[k] = v (3) +d.values() a copy of d's list of values (2) +d.get(k,defaultval) the item of d with key k (4) +d.setdefault(k,defaultval) the item of d with key k (5) + + Notes : + TypeError is raised if key is not acceptable + (1) KeyError is raised if key k is not in the map + (2) Keys and values are listed in random order + (3) d2 must be of the same type as d1 + (4) Never raises an exception if k is not in the map, instead it returns + defaultVal. + defaultVal is optional, when not provided and k is not in the map, + None is returned. + (5) Never raises an exception if k is not in the map, instead it returns + defaultVal, and adds k to map with value defaultVal. defaultVal is + optional. When not provided and k is not in the map, None is returned and + added to map. + +Operations on strings + +Note that these string methods largely (but not completely) supersede the +functions available in the string module. + + + Operations on strings + Operation Result Notes +s.capitalize() return a copy of s with only its first character + capitalized. +s.center(width) return a copy of s centered in a string of length width (1) + . +s.count(sub[ return the number of occurrences of substring sub in (2) +,start[,end]]) string s. +s.encode([ return an encoded version of s. Default encoding is the +encoding[,errors current default string encoding. (3) +]]) +s.endswith(suffix return true if s ends with the specified suffix, (2) +[,start[,end]]) otherwise return false. +s.expandtabs([ return a copy of s where all tab characters are (4) +tabsize]) expanded using spaces. +s.find(sub[,start return the lowest index in s where substring sub is (2) +[,end]]) found. Return -1 if sub is not found. +s.index(sub[ like find(), but raise ValueError when the substring is (2) +,start[,end]]) not found. +s.isalnum() return true if all characters in s are alphanumeric, (5) + false otherwise. +s.isalpha() return true if all characters in s are alphabetic, (5) + false otherwise. +s.isdigit() return true if all characters in s are digit (5) + characters, false otherwise. +s.islower() return true if all characters in s are lowercase, false (6) + otherwise. +s.isspace() return true if all characters in s are whitespace (5) + characters, false otherwise. +s.istitle() return true if string s is a titlecased string, false (7) + otherwise. +s.isupper() return true if all characters in s are uppercase, false (6) + otherwise. +s.join(seq) return a concatenation of the strings in the sequence + seq, seperated by 's's. +s.ljust(width) return s left justified in a string of length width. (1), + (8) +s.lower() return a copy of s converted to lowercase. +s.lstrip() return a copy of s with leading whitespace removed. +s.replace(old, return a copy of s with all occurrences of substring (9) +new[, maxsplit]) old replaced by new. +s.rfind(sub[ return the highest index in s where substring sub is (2) +,start[,end]]) found. Return -1 if sub is not found. +s.rindex(sub[ like rfind(), but raise ValueError when the substring (2) +,start[,end]]) is not found. +s.rjust(width) return s right justified in a string of length width. (1), + (8) +s.rstrip() return a copy of s with trailing whitespace removed. +s.split([sep[ return a list of the words in s, using sep as the (10) +,maxsplit]]) delimiter string. +s.splitlines([ return a list of the lines in s, breaking at line (11) +keepends]) boundaries. +s.startswith return true if s starts with the specified prefix, +(prefix[,start[ otherwise return false. (2) +,end]]) +s.strip() return a copy of s with leading and trailing whitespace + removed. +s.swapcase() return a copy of s with uppercase characters converted + to lowercase and vice versa. + return a titlecased copy of s, i.e. words start with +s.title() uppercase characters, all remaining cased characters + are lowercase. +s.translate(table return a copy of s mapped through translation table (12) +[,deletechars]) table. +s.upper() return a copy of s converted to uppercase. + +Notes : + (1) Padding is done using spaces. + (2) If optional argument start is supplied, substring s[start:] is +processed. If optional arguments start and end are supplied, substring s[start: +end] is processed. + (3) Optional argument errors may be given to set a different error handling +scheme. The default for errors is 'strict', meaning that encoding errors raise +a ValueError. Other possible values are 'ignore' and 'replace'. + (4) If optional argument tabsize is not given, a tab size of 8 characters +is assumed. + (5) Returns false if string s does not contain at least one character. + (6) Returns false if string s does not contain at least one cased +character. + (7) A titlecased string is a string in which uppercase characters may only +follow uncased characters and lowercase characters only cased ones. + (8) s is returned if width is less than len(s). + (9) If the optional argument maxsplit is given, only the first maxsplit +occurrences are replaced. + (10) If sep is not specified or None, any whitespace string is a separator. +If maxsplit is given, at most maxsplit splits are done. + (11) Line breaks are not included in the resulting list unless keepends is +given and true. + (12) table must be a string of length 256. All characters occurring in the +optional argument deletechars are removed prior to translation. + +String formatting with the % operator + +formatString % args--> evaluates to a string + + * formatString uses C printf format codes : %, c, s, i, d, u, o, x, X, e, E, + f, g, G, r (details below). + * Width and precision may be a * to specify that an integer argument gives + the actual width or precision. + * The flag characters -, +, blank, # and 0 are understood. (details below) + * %s will convert any type argument to string (uses str() function) + * args may be a single arg or a tuple of args + + '%s has %03d quote types.' % ('Python', 2) # => 'Python has 002 quote types.' + + * Right-hand-side can also be a mapping: + + a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python} +(vars() function very handy to use on right-hand-side.) + + Format codes +Conversion Meaning +d Signed integer decimal. +i Signed integer decimal. +o Unsigned octal. +u Unsigned decimal. +x Unsigned hexidecimal (lowercase). +X Unsigned hexidecimal (uppercase). +e Floating point exponential format (lowercase). +E Floating point exponential format (uppercase). +f Floating point decimal format. +F Floating point decimal format. +g Same as "e" if exponent is greater than -4 or less than precision, + "f" otherwise. +G Same as "E" if exponent is greater than -4 or less than precision, + "F" otherwise. +c Single character (accepts integer or single character string). +r String (converts any python object using repr()). +s String (converts any python object using str()). +% No argument is converted, results in a "%" character in the result. + (The complete specification is %%.) + + Conversion flag characters +Flag Meaning +# The value conversion will use the ``alternate form''. +0 The conversion will be zero padded. +- The converted value is left adjusted (overrides "-"). + (a space) A blank should be left before a positive number (or empty + string) produced by a signed conversion. ++ A sign character ("+" or "-") will precede the conversion (overrides a + "space" flag). + +File Objects + +Created with built-in function open; may be created by other modules' functions +as well. + +Operators on file objects + + File operations + Operation Result +f.close() Close file f. +f.fileno() Get fileno (fd) for file f. +f.flush() Flush file f's internal buffer. +f.isatty() 1 if file f is connected to a tty-like dev, else 0. +f.read([size]) Read at most size bytes from file f and return as a string + object. If size omitted, read to EOF. +f.readline() Read one entire line from file f. +f.readlines() Read until EOF with readline() and return list of lines read. + Set file f's position, like "stdio's fseek()". +f.seek(offset[, whence == 0 then use absolute indexing. +whence=0]) whence == 1 then offset relative to current pos. + whence == 2 then offset relative to file end. +f.tell() Return file f's current position (byte offset). +f.write(str) Write string to file f. +f.writelines(list Write list of strings to file f. +) + +File Exceptions + + EOFError + End-of-file hit when reading (may be raised many times, e.g. if f is a + tty). + IOError + Other I/O-related I/O operation failure + + + Advanced Types + + -See manuals for more details - + + Module objects + + Class objects + + Class instance objects + + Type objects (see module: types) + + File objects (see above) + + Slice objects + + XRange objects + + Callable types: + o User-defined (written in Python): + # User-defined Function objects + # User-defined Method objects + o Built-in (written in C): + # Built-in Function objects + # Built-in Method objects + + Internal Types: + o Code objects (byte-compile executable Python code: bytecode) + o Frame objects (execution frames) + o Traceback objects (stack trace of an exception) + + + Statements + + pass -- Null statement + del name[,name]* -- Unbind name(s) from object. Object will be indirectly + (and automatically) deleted only if no longer referenced. + print [>> fileobject,] [s1 [, s2 ]* [,] + -- Writes to sys.stdout, or to fileobject if supplied. + Puts spaces between arguments. Puts newline at end + unless statement ends with comma. + Print is not required when running interactively, + simply typing an expression will print its value, + unless the value is None. + exec x [in globals [,locals]] + -- Executes x in namespaces provided. Defaults + to current namespaces. x can be a string, file + object or a function object. + callable(value,... [id=value], [*args], [**kw]) + -- Call function callable with parameters. Parameters can + be passed by name or be omitted if function + defines default values. E.g. if callable is defined as + "def callable(p1=1, p2=2)" + "callable()" <=> "callable(1, 2)" + "callable(10)" <=> "callable(10, 2)" + "callable(p2=99)" <=> "callable(1, 99)" + *args is a tuple of positional arguments. + **kw is a dictionary of keyword arguments. + + Assignment operators + + Caption + Operator Result Notes + a = b Basic assignment - assign object b to label a (1) + a += b Roughly equivalent to a = a + b (2) + a -= b Roughly equivalent to a = a - b (2) + a *= b Roughly equivalent to a = a * b (2) + a /= b Roughly equivalent to a = a / b (2) + a %= b Roughly equivalent to a = a % b (2) + a **= b Roughly equivalent to a = a ** b (2) + a &= b Roughly equivalent to a = a & b (2) + a |= b Roughly equivalent to a = a | b (2) + a ^= b Roughly equivalent to a = a ^ b (2) + a >>= b Roughly equivalent to a = a >> b (2) + a <<= b Roughly equivalent to a = a << b (2) + + Notes : + (1) Can unpack tuples, lists, and strings. + first, second = a[0:2]; [f, s] = range(2); c1,c2,c3='abc' + Tip: x,y = y,x swaps x and y. + (2) Not exactly equivalent - a is evaluated only once. Also, where + possible, operation performed in-place - a is modified rather than + replaced. + + Control Flow + + if condition: suite + [elif condition: suite]* + [else: suite] -- usual if/else_if/else statement + while condition: suite + [else: suite] + -- usual while statement. "else" suite is executed + after loop exits, unless the loop is exited with + "break" + for element in sequence: suite + [else: suite] + -- iterates over sequence, assigning each element to element. + Use built-in range function to iterate a number of times. + "else" suite executed at end unless loop exited + with "break" + break -- immediately exits "for" or "while" loop + continue -- immediately does next iteration of "for" or "while" loop + return [result] -- Exits from function (or method) and returns result (use a tuple to + return more than one value). If no result given, then returns None. + + Exception Statements + + assert expr[, message] + -- expr is evaluated. if false, raises exception AssertionError + with message. Inhibited if __debug__ is 0. + try: suite1 + [except [exception [, value]: suite2]+ + [else: suite3] + -- statements in suite1 are executed. If an exception occurs, look + in "except" clauses for matching <exception>. If matches or bare + "except" execute suite of that clause. If no exception happens + suite in "else" clause is executed after suite1. + If exception has a value, it is put in value. + exception can also be tuple of exceptions, e.g. + "except (KeyError, NameError), val: print val" + try: suite1 + finally: suite2 + -- statements in suite1 are executed. If no + exception, execute suite2 (even if suite1 is + exited with a "return", "break" or "continue" + statement). If exception did occur, executes + suite2 and then immediately reraises exception. + raise exception [,value [, traceback]] + -- raises exception with optional value + value. Arg traceback specifies a traceback object to + use when printing the exception's backtrace. + raise -- a raise statement without arguments re-raises + the last exception raised in the current function +An exception is either a string (object) or a class instance. + Can create a new one simply by creating a new string: + + my_exception = 'You did something wrong' + try: + if bad: + raise my_exception, bad + except my_exception, value: + print 'Oops', value + +Exception classes must be derived from the predefined class: Exception, e.g.: + class text_exception(Exception): pass + try: + if bad: + raise text_exception() + # This is a shorthand for the form + # "raise <class>, <instance>" + except Exception: + print 'Oops' + # This will be printed because + # text_exception is a subclass of Exception +When an error message is printed for an unhandled exception which is a +class, the class name is printed, then a colon and a space, and +finally the instance converted to a string using the built-in function +str(). +All built-in exception classes derives from StandardError, itself +derived from Exception. + +Name Space Statements + +[1.51: On Mac & Windows, the case of module file names must now match the case +as used + in the import statement] +Packages (>1.5): a package is a name space which maps to a directory including + module(s) and the special initialization module '__init__.py' + (possibly empty). Packages/dirs can be nested. You address a + module's symbol via '[package.[package...]module.symbol's. +import module1 [as name1] [, module2]* + -- imports modules. Members of module must be + referred to by qualifying with [package.]module name: + "import sys; print sys.argv:" + "import package1.subpackage.module; package1.subpackage.module.foo()" + module1 renamed as name1, if supplied. +from module import name1 [as othername1] [, name2]* + -- imports names from module module in current namespace. + "from sys import argv; print argv" + "from package1 import module; module.foo()" + "from package1.module import foo; foo()" + name1 renamed as othername1, if supplied. +from module import * + -- imports all names in module, except those starting with "_"; + *to be used sparsely, beware of name clashes* : + "from sys import *; print argv" + "from package.module import *; print x' + NB: "from package import *" only imports the symbols defined + in the package's __init__.py file, not those in the + template modules! +global name1 [, name2]* + -- names are from global scope (usually meaning from module) + rather than local (usually meaning only in function). + -- E.g. in fct without "global" statements, assuming + "a" is name that hasn't been used in fct or module + so far: + -Try to read from "a" -> NameError + -Try to write to "a" -> creates "a" local to fcn + -If "a" not defined in fct, but is in module, then + -Try to read from "a", gets value from module + -Try to write to "a", creates "a" local to fct + But note "a[0]=3" starts with search for "a", + will use to global "a" if no local "a". + +Function Definition + +def func_id ([param_list]): suite + -- Creates a function object & binds it to name func_id. + + param_list ::= [id [, id]*] + id ::= value | id = value | *id | **id + [Args are passed by value.Thus only args representing a mutable object + can be modified (are inout parameters). Use a tuple to return more than + one value] + +Example: + def test (p1, p2 = 1+1, *rest, **keywords): + -- Parameters with "=" have default value (v is + evaluated when function defined). + If list has "*id" then id is assigned a tuple of + all remaining args passed to function (like C vararg) + If list has "**id" then id is assigned a dictionary of + all extra arguments passed as keywords. + +Class Definition + +class <class_id> [(<super_class1> [,<super_class2>]*)]: <suite> + -- Creates a class object and assigns it name <class_id> + <suite> may contain local "defs" of class methods and + assignments to class attributes. +Example: + class my_class (class1, class_list[3]): ... + Creates a class object inheriting from both "class1" and whatever + class object "class_list[3]" evaluates to. Assigns new + class object to name "my_class". + - First arg to class methods is always instance object, called 'self' + by convention. + - Special method __init__() is called when instance is created. + - Special method __del__() called when no more reference to object. + - Create instance by "calling" class object, possibly with arg + (thus instance=apply(aClassObject, args...) creates an instance!) + - In current implementation, can't subclass off built-in + classes. But can "wrap" them, see UserDict & UserList modules, + and see __getattr__() below. +Example: + class c (c_parent): + def __init__(self, name): self.name = name + def print_name(self): print "I'm", self.name + def call_parent(self): c_parent.print_name(self) + instance = c('tom') + print instance.name + 'tom' + instance.print_name() + "I'm tom" + Call parent's super class by accessing parent's method + directly and passing "self" explicitly (see "call_parent" + in example above). + Many other special methods available for implementing + arithmetic operators, sequence, mapping indexing, etc. + +Documentation Strings + +Modules, classes and functions may be documented by placing a string literal by +itself as the first statement in the suite. The documentation can be retrieved +by getting the '__doc__' attribute from the module, class or function. +Example: + class C: + "A description of C" + def __init__(self): + "A description of the constructor" + # etc. +Then c.__doc__ == "A description of C". +Then c.__init__.__doc__ == "A description of the constructor". + +Others + +lambda [param_list]: returnedExpr + -- Creates an anonymous function. returnedExpr must be + an expression, not a statement (e.g., not "if xx:...", + "print xxx", etc.) and thus can't contain newlines. + Used mostly for filter(), map(), reduce() functions, and GUI callbacks.. +List comprehensions +result = [expression for item1 in sequence1 [if condition1] + [for item2 in sequence2 ... for itemN in sequenceN] + ] +is equivalent to: +result = [] +for item1 in sequence1: + for item2 in sequence2: + ... + for itemN in sequenceN: + if (condition1) and furthur conditions: + result.append(expression) + + + +Built-In Functions + + Built-In Functions + Function Result +__import__(name[, Imports module within the given context (see lib ref for +globals[, locals[, more details) +fromlist]]]) +abs(x) Return the absolute value of number x. +apply(f, args[, Calls func/method f with arguments args and optional +keywords]) keywords. +callable(x) Returns 1 if x callable, else 0. +chr(i) Returns one-character string whose ASCII code isinteger i +cmp(x,y) Returns negative, 0, positive if x <, ==, > to y +coerce(x,y) Returns a tuple of the two numeric arguments converted to a + common type. + Compiles string into a code object.filename is used in + error message, can be any string. It isusually the file +compile(string, from which the code was read, or eg. '<string>'if not read +filename, kind) from file.kind can be 'eval' if string is a single stmt, or + 'single' which prints the output of expression statements + thatevaluate to something else than None, or be 'exec'. +complex(real[, Builds a complex object (can also be done using J or j +image]) suffix,e.g. 1+3J) +delattr(obj, name) deletes attribute named name of object obj <=> del obj.name + If no args, returns the list of names in current +dir([object]) localsymbol table. With a module, class or class + instanceobject as arg, returns list of names in its attr. + dict. +divmod(a,b) Returns tuple of (a/b, a%b) +eval(s[, globals[, Eval string s in (optional) globals, locals contexts.s must +locals]]) have no NUL's or newlines. s can also be acode object. + Example: x = 1; incr_x = eval('x + 1') +execfile(file[, Executes a file without creating a new module, unlike +globals[, locals]]) import. +filter(function, Constructs a list from those elements of sequence for which +sequence) function returns true. function takes one parameter. +float(x) Converts a number or a string to floating point. +getattr(object, [<default> arg added in 1.5.2]Gets attribute called name +name[, default])) from object,e.g. getattr(x, 'f') <=> x.f). If not found, + raisesAttributeError or returns default if specified. +globals() Returns a dictionary containing current global variables. +hasattr(object, Returns true if object has attr called name. +name) +hash(object) Returns the hash value of the object (if it has one) +hex(x) Converts a number x to a hexadecimal string. +id(object) Returns a unique 'identity' integer for an object. +input([prompt]) Prints prompt if given. Reads input and evaluates it. + Converts a number or a string to a plain integer. Optional +int(x[, base]) base paramenter specifies base from which to convert string + values. +intern(aString) Enters aString in the table of "interned strings" + andreturns the string. Interned strings are 'immortals'. +isinstance(obj, returns true if obj is an instance of class. Ifissubclass +class) (A,B) then isinstance(x,A) => isinstance(x,B) +issubclass(class1, returns true if class1 is derived from class2 +class2) + Returns the length (the number of items) of an object +len(obj) (sequence, dictionary, or instance of class implementing + __len__). +list(sequence) Converts sequence into a list. If already a list,returns a + copy of it. +locals() Returns a dictionary containing current local variables. + Converts a number or a string to a long integer. Optional +long(x[, base]) base paramenter specifies base from which to convert string + values. + Applies function to every item of list and returns a listof +map(function, list, the results. If additional arguments are passed,function +...) must take that many arguments and it is givento function on + each call. +max(seq) Returns the largest item of the non-empty sequence seq. +min(seq) Returns the smallest item of a non-empty sequence seq. +oct(x) Converts a number to an octal string. +open(filename [, Returns a new file object. First two args are same asthose +mode='r', [bufsize= for C's "stdio open" function. bufsize is 0for unbuffered, +implementation 1 for line-buffered, negative forsys-default, all else, of +dependent]]) (about) given size. +ord(c) Returns integer ASCII value of c (a string of len 1). Works + with Unicode char. +pow(x, y [, z]) Returns x to power y [modulo z]. See also ** operator. +range(start [,end Returns list of ints from >= start and < end.With 1 arg, +[, step]]) list from 0..arg-1With 2 args, list from start..end-1With 3 + args, list from start up to end by step +raw_input([prompt]) Prints prompt if given, then reads string from stdinput (no + trailing \n). See also input(). +reduce(f, list [, Applies the binary function f to the items oflist so as to +init]) reduce the list to a single value.If init given, it is + "prepended" to list. + Re-parses and re-initializes an already imported module. + Useful in interactive mode, if you want to reload amodule +reload(module) after fixing it. If module was syntacticallycorrect but had + an error in initialization, mustimport it one more time + before calling reload(). + Returns a string containing a printable and if possible +repr(object) evaluable representation of an object. <=> `object` + (usingbackquotes). Class redefinissable (__repr__). See + also str() +round(x, n=0) Returns the floating point value x rounded to n digitsafter + the decimal point. +setattr(object, This is the counterpart of getattr().setattr(o, 'foobar', +name, value) 3) <=> o.foobar = 3Creates attribute if it doesn't exist! +slice([start,] stop Returns a slice object representing a range, with R/ +[, step]) Oattributes: start, stop, step. + Returns a string containing a nicely +str(object) printablerepresentation of an object. Class overridable + (__str__).See also repr(). +tuple(sequence) Creates a tuple with same elements as sequence. If already + a tuple, return itself (not a copy). + Returns a type object [see module types] representing + thetype of obj. Example: import typesif type(x) == +type(obj) types.StringType: print 'It is a string'NB: it is + recommanded to use the following form:if isinstance(x, + types.StringType): etc... +unichr(code) code. +unicode(string[, Creates a Unicode string from a 8-bit string, using +encoding[, error thegiven encoding name and error treatment ('strict', +]]]) 'ignore',or 'replace'}. + Without arguments, returns a dictionary correspondingto the + current local symbol table. With a module,class or class +vars([object]) instance object as argumentreturns a dictionary + corresponding to the object'ssymbol table. Useful with "%" + formatting operator. +xrange(start [, end Like range(), but doesn't actually store entire listall at +[, step]]) once. Good to use in "for" loops when there is abig range + and little memory. +zip(seq1[, seq2, Returns a list of tuples where each tuple contains the nth +...]) element of each of the argument sequences. + + + + +Built-In Exceptions + +Exception> + Root class for all exceptions + SystemExit + On 'sys.exit()' + StandardError + Base class for all built-in exceptions; derived from Exception + root class. + ArithmeticError + Base class for OverflowError, ZeroDivisionError, + FloatingPointError + FloatingPointError + When a floating point operation fails. + OverflowError + On excessively large arithmetic operation + ZeroDivisionError + On division or modulo operation with 0 as 2nd arg + AssertionError + When an assert statement fails. + AttributeError + On attribute reference or assignment failure + EnvironmentError [new in 1.5.2] + On error outside Python; error arg tuple is (errno, errMsg...) + IOError [changed in 1.5.2] + I/O-related operation failure + OSError [new in 1.5.2] + used by the os module's os.error exception. + EOFError + Immediate end-of-file hit by input() or raw_input() + ImportError + On failure of `import' to find module or name + KeyboardInterrupt + On user entry of the interrupt key (often `Control-C') + LookupError + base class for IndexError, KeyError + IndexError + On out-of-range sequence subscript + KeyError + On reference to a non-existent mapping (dict) key + MemoryError + On recoverable memory exhaustion + NameError + On failure to find a local or global (unqualified) name + RuntimeError + Obsolete catch-all; define a suitable error instead + NotImplementedError [new in 1.5.2] + On method not implemented + SyntaxError + On parser encountering a syntax error + IndentationError + On parser encountering an indentation syntax error + TabError + On parser encountering an indentation syntax error + SystemError + On non-fatal interpreter error - bug - report it + TypeError + On passing inappropriate type to built-in op or func + ValueError + On arg error not covered by TypeError or more precise + + + +Standard methods & operators redefinition in classes + +Standard methods & operators map to special '__methods__' and thus may be + redefined (mostly in in user-defined classes), e.g.: + class x: + def __init__(self, v): self.value = v + def __add__(self, r): return self.value + r + a = x(3) # sort of like calling x.__init__(a, 3) + a + 4 # is equivalent to a.__add__(4) + +Special methods for any class + +(s: self, o: other) + __init__(s, args) instance initialization (on construction) + __del__(s) called on object demise (refcount becomes 0) + __repr__(s) repr() and `...` conversions + __str__(s) str() and 'print' statement + __cmp__(s, o) Compares s to o and returns <0, 0, or >0. + Implements >, <, == etc... + __hash__(s) Compute a 32 bit hash code; hash() and dictionary ops + __nonzero__(s) Returns 0 or 1 for truth value testing + __getattr__(s, name) called when attr lookup doesn't find <name> + __setattr__(s, name, val) called when setting an attr + (inside, don't use "self.name = value" + use "self.__dict__[name] = val") + __delattr__(s, name) called to delete attr <name> + __call__(self, *args) called when an instance is called as function. + +Operators + + See list in the operator module. Operator function names are provided with + 2 variants, with or without + ading & trailing '__' (eg. __add__ or add). + + Numeric operations special methods + (s: self, o: other) + + s+o = __add__(s,o) s-o = __sub__(s,o) + s*o = __mul__(s,o) s/o = __div__(s,o) + s%o = __mod__(s,o) divmod(s,o) = __divmod__(s,o) + s**o = __pow__(s,o) + s&o = __and__(s,o) + s^o = __xor__(s,o) s|o = __or__(s,o) + s<<o = __lshift__(s,o) s>>o = __rshift__(s,o) + nonzero(s) = __nonzero__(s) (used in boolean testing) + -s = __neg__(s) +s = __pos__(s) + abs(s) = __abs__(s) ~s = __invert__(s) (bitwise) + s+=o = __iadd__(s,o) s-=o = __isub__(s,o) + s*=o = __imul__(s,o) s/=o = __idiv__(s,o) + s%=o = __imod__(s,o) + s**=o = __ipow__(s,o) + s&=o = __iand__(s,o) + s^=o = __ixor__(s,o) s|=o = __ior__(s,o) + s<<=o = __ilshift__(s,o) s>>=o = __irshift__(s,o) + Conversions + int(s) = __int__(s) long(s) = __long__(s) + float(s) = __float__(s) complex(s) = __complex__(s) + oct(s) = __oct__(s) hex(s) = __hex__(s) + coerce(s,o) = __coerce__(s,o) + Right-hand-side equivalents for all binary operators exist; + are called when class instance is on r-h-s of operator: + a + 3 calls __add__(a, 3) + 3 + a calls __radd__(a, 3) + + All seqs and maps, general operations plus: + (s: self, i: index or key) + + len(s) = __len__(s) length of object, >= 0. Length 0 == false + s[i] = __getitem__(s,i) Element at index/key i, origin 0 + + Sequences, general methods, plus: + s[i]=v = __setitem__(s,i,v) + del s[i] = __delitem__(s,i) + s[i:j] = __getslice__(s,i,j) + s[i:j]=seq = __setslice__(s,i,j,seq) + del s[i:j] = __delslice__(s,i,j) == s[i:j] = [] + seq * n = __repeat__(seq, n) + s1 + s2 = __concat__(s1, s2) + i in s = __contains__(s, i) + Mappings, general methods, plus + hash(s) = __hash__(s) - hash value for dictionary references + s[k]=v = __setitem__(s,k,v) + del s[k] = __delitem__(s,k) + +Special informative state attributes for some types: + + Lists & Dictionaries: + __methods__ (list, R/O): list of method names of the object + + Modules: + __doc__ (string/None, R/O): doc string (<=> __dict__['__doc__']) + __name__(string, R/O): module name (also in __dict__['__name__']) + __dict__ (dict, R/O): module's name space + __file__(string/undefined, R/O): pathname of .pyc, .pyo or .pyd (undef for + modules statically linked to the interpreter) + __path__(string/undefined, R/O): fully qualified package name when applies. + + Classes: [in bold: writable since 1.5.2] + __doc__ (string/None, R/W): doc string (<=> __dict__['__doc__']) + __name__(string, R/W): class name (also in __dict__['__name__']) + __bases__ (tuple, R/W): parent classes + __dict__ (dict, R/W): attributes (class name space) + + Instances: + __class__ (class, R/W): instance's class + __dict__ (dict, R/W): attributes + User-defined functions: [bold: writable since 1.5.2] + __doc__ (string/None, R/W): doc string + __name__(string, R/O): function name + func_doc (R/W): same as __doc__ + func_name (R/O): same as __name__ + func_defaults (tuple/None, R/W): default args values if any + func_code (code, R/W): code object representing the compiled function body + func_globals (dict, R/O): ref to dictionary of func global variables + + User-defined Methods: + __doc__ (string/None, R/O): doc string + __name__(string, R/O): method name (same as im_func.__name__) + im_class (class, R/O): class defining the method (may be a base class) + im_self (instance/None, R/O): target instance object (None if unbound) + im_func (function, R/O): function object + Built-in Functions & methods: + __doc__ (string/None, R/O): doc string + __name__ (string, R/O): function name + __self__ : [methods only] target object + __members__ = list of attr names: ['__doc__','__name__','__self__']) + Codes: + co_name (string, R/O): function name + co_argcount (int, R/0): number of positional args + co_nlocals (int, R/O): number of local vars (including args) + co_varnames (tuple, R/O): names of local vars (starting with args) + co_code (string, R/O): sequence of bytecode instructions + co_consts (tuple, R/O): litterals used by the bytecode, 1st one is + fct doc (or None) + co_names (tuple, R/O): names used by the bytecode + co_filename (string, R/O): filename from which the code was compiled + co_firstlineno (int, R/O): first line number of the function + co_lnotab (string, R/O): string encoding bytecode offsets to line numbers. + co_stacksize (int, R/O): required stack size (including local vars) + co_firstlineno (int, R/O): first line number of the function + co_flags (int, R/O): flags for the interpreter + bit 2 set if fct uses "*arg" syntax + bit 3 set if fct uses '**keywords' syntax + Frames: + f_back (frame/None, R/O): previous stack frame (toward the caller) + f_code (code, R/O): code object being executed in this frame + f_locals (dict, R/O): local vars + f_globals (dict, R/O): global vars + f_builtins (dict, R/O): built-in (intrinsic) names + f_restricted (int, R/O): flag indicating whether fct is executed in + restricted mode + f_lineno (int, R/O): current line number + f_lasti (int, R/O): precise instruction (index into bytecode) + f_trace (function/None, R/W): debug hook called at start of each source line + f_exc_type (Type/None, R/W): Most recent exception type + f_exc_value (any, R/W): Most recent exception value + f_exc_traceback (traceback/None, R/W): Most recent exception traceback + Tracebacks: + tb_next (frame/None, R/O): next level in stack trace (toward the frame where + the exception occurred) + tb_frame (frame, R/O): execution frame of the current level + tb_lineno (int, R/O): line number where the exception occured + tb_lasti (int, R/O): precise instruction (index into bytecode) + + Slices: + start (any/None, R/O): lowerbound + stop (any/None, R/O): upperbound + step (any/None, R/O): step value + + Complex numbers: + real (float, R/O): real part + imag (float, R/O): imaginary part + XRanges: + tolist (Built-in method, R/O): ? + + +Important Modules + + sys + + Some sys variables + Variable Content +argv The list of command line arguments passed to aPython + script. sys.argv[0] is the script name. +builtin_module_names A list of strings giving the names of all moduleswritten + in C that are linked into this interpreter. +check_interval How often to check for thread switches or signals(measured + in number of virtual machine instructions) +exc_type, exc_value, Deprecated since release 1.5. Use exc_info() instead. +exc_traceback +exitfunc User can set to a parameterless fcn. It will getcalled + before interpreter exits. +last_type, Set only when an exception not handled andinterpreter +last_value, prints an error. Used by debuggers. +last_traceback +maxint maximum positive value for integers +modules Dictionary of modules that have already been loaded. +path Search path for external modules. Can be modifiedby + program. sys.path[0] == dir of script executing +platform The current platform, e.g. "sunos5", "win32" +ps1, ps2 prompts to use in interactive mode. + File objects used for I/O. One can redirect byassigning a +stdin, stdout, new file object to them (or any object:.with a method +stderr write(string) for stdout/stderr,.with a method readline() + for stdin) +version string containing version info about Python interpreter. + (and also: copyright, dllhandle, exec_prefix, prefix) +version_info tuple containing Python version info - (major, minor, + micro, level, serial). + + Some sys functions + Function Result +exit(n) Exits with status n. Raises SystemExit exception.(Hence can + be caught and ignored by program) +getrefcount(object Returns the reference count of the object. Generally 1 +) higherthan you might expect, because of object arg temp + reference. +setcheckinterval( Sets the interpreter's thread switching interval (in number +interval) ofvirtualcode instructions, default:10). +settrace(func) Sets a trace function: called before each line ofcode is + exited. +setprofile(func) Sets a profile function for performance profiling. + Info on exception currently being handled; this is atuple + (exc_type, exc_value, exc_traceback).Warning: assigning the +exc_info() traceback return value to a loca variable in a + functionhandling an exception will cause a circular + reference. +setdefaultencoding Change default Unicode encoding - defaults to 7-bit ASCII. +(encoding) +getrecursionlimit Retrieve maximum recursion depth. +() +setrecursionlimit Set maximum recursion depth. (Defaults to 1000.) +() + + + + os +"synonym" for whatever O/S-specific module is proper for current environment. +this module uses posix whenever possible. +(see also M.A. Lemburg's utility http://www.lemburg.com/files/python/ +platform.py) + + Some os variables + Variable Meaning +name name of O/S-specific module (e.g. "posix", "mac", "nt") +path O/S-specific module for path manipulations. + On Unix, os.path.split() <=> posixpath.split() +curdir string used to represent current directory ('.') +pardir string used to represent parent directory ('..') +sep string used to separate directories ('/' or '\'). Tip: use + os.path.join() to build portable paths. +altsep Alternate sep +if applicable (None +otherwise) +pathsep character used to separate search path components (as in + $PATH), eg. ';' for windows. +linesep line separator as used in binary files, ie '\n' on Unix, '\ + r\n' on Dos/Win, '\r' + + Some os functions + Function Result +makedirs(path[, Recursive directory creation (create required intermediary +mode=0777]) dirs); os.error if fails. +removedirs(path) Recursive directory delete (delete intermediary empty + dirs); if fails. +renames(old, new) Recursive directory or file renaming; os.error if fails. + + + + posix +don't import this module directly, import os instead ! +(see also module: shutil for file copy & remove fcts) + + posix Variables +Variable Meaning +environ dictionary of environment variables, e.g.posix.environ['HOME']. +error exception raised on POSIX-related error. + Corresponding value is tuple of errno code and perror() string. + + Some posix functions + Function Result +chdir(path) Changes current directory to path. +chmod(path, Changes the mode of path to the numeric mode +mode) +close(fd) Closes file descriptor fd opened with posix.open. +_exit(n) Immediate exit, with no cleanups, no SystemExit,etc. Should use + this to exit a child process. +execv(p, args) "Become" executable p with args args +getcwd() Returns a string representing the current working directory +getpid() Returns the current process id +fork() Like C's fork(). Returns 0 to child, child pid to parent.[Not + on Windows] +kill(pid, Like C's kill [Not on Windows] +signal) +listdir(path) Lists (base)names of entries in directory path, excluding '.' + and '..' +lseek(fd, pos, Sets current position in file fd to position pos, expressedas +how) an offset relative to beginning of file (how=0), tocurrent + position (how=1), or to end of file (how=2) +mkdir(path[, Creates a directory named path with numeric mode (default 0777) +mode]) +open(file, Like C's open(). Returns file descriptor. Use file object +flags, mode) fctsrather than this low level ones. +pipe() Creates a pipe. Returns pair of file descriptors (r, w) [Not on + Windows]. +popen(command, Opens a pipe to or from command. Result is a file object to +mode='r', read to orwrite from, as indicated by mode being 'r' or 'w'. +bufSize=0) Use it to catch acommand output ('r' mode) or to feed it ('w' + mode). +remove(path) See unlink. +rename(src, dst Renames/moves the file or directory src to dst. [error iftarget +) name already exists] +rmdir(path) Removes the empty directory path +read(fd, n) Reads n bytes from file descriptor fd and return as string. + Returns st_mode, st_ino, st_dev, st_nlink, st_uid,st_gid, +stat(path) st_size, st_atime, st_mtime, st_ctime.[st_ino, st_uid, st_gid + are dummy on Windows] +system(command) Executes string command in a subshell. Returns exitstatus of + subshell (usually 0 means OK). + Returns accumulated CPU times in sec (user, system, children's +times() user,children's sys, elapsed real time). [3 last not on + Windows] +unlink(path) Unlinks ("deletes") the file (not dir!) path. same as: remove +utime(path, ( Sets the access & modified time of the file to the given tuple +aTime, mTime)) of values. +wait() Waits for child process completion. Returns tuple ofpid, + exit_status [Not on Windows] +waitpid(pid, Waits for process pid to complete. Returns tuple ofpid, +options) exit_status [Not on Windows] +write(fd, str) Writes str to file fd. Returns nb of bytes written. + + + + posixpath +Do not import this module directly, import os instead and refer to this module +as os.path. (e.g. os.path.exists(p)) ! + + Some posixpath functions + Function Result +abspath(p) Returns absolute path for path p, taking current working dir in + account. +dirname/ +basename(p directory and name parts of the path p. See also split. +) +exists(p) True if string p is an existing path (file or directory) +expanduser Returns string that is (a copy of) p with "~" expansion done. +(p) +expandvars Returns string that is (a copy of) p with environment vars expanded. +(p) [Windows: case significant; must use Unix: $var notation, not %var%] +getsize( return the size in bytes of filename. raise os.error. +filename) +getmtime( return last modification time of filename (integer nb of seconds +filename) since epoch). +getatime( return last access time of filename (integer nb of seconds since +filename) epoch). +isabs(p) True if string p is an absolute path. +isdir(p) True if string p is a directory. +islink(p) True if string p is a symbolic link. +ismount(p) True if string p is a mount point [true for all dirs on Windows]. +join(p[,q Joins one or more path components intelligently. +[,...]]) + Splits p into (head, tail) where tail is lastpathname component and +split(p) <head> is everything leadingup to that. <=> (dirname(p), basename + (p)) +splitdrive Splits path p in a pair ('drive:', tail) [Windows] +(p) +splitext(p Splits into (root, ext) where last comp of root contains no periods +) and ext is empty or startswith a period. + Calls the function visit with arguments(arg, dirname, names) for + each directory recursively inthe directory tree rooted at p +walk(p, (including p itself if it's a dir)The argument dirname specifies the +visit, arg visited directory, the argumentnames lists the files in the +) directory. The visit function maymodify names to influence the set + of directories visited belowdirname, e.g., to avoid visiting certain + parts of the tree. + + + + shutil +high-level file operations (copying, deleting). + + Main shutil functions + Function Result +copy(src, dst) Copies the contents of file src to file dst, retaining file + permissions. +copytree(src, dst Recursively copies an entire directory tree rooted at src +[, symlinks]) into dst (which should not already exist). If symlinks is + true, links insrc are kept as such in dst. +rmtree(path[, Deletes an entire directory tree, ignoring errors if +ignore_errors[, ignore_errors true,or calling onerror(func, path, +onerror]]) sys.exc_info()) if supplied with + +(and also: copyfile, copymode, copystat, copy2) + +time + + Variables +Variable Meaning +altzone signed offset of local DST timezone in sec west of the 0th meridian. +daylight nonzero if a DST timezone is specified + + Functions + Function Result +time() return a float representing UTC time in seconds since the epoch. +gmtime(secs), return a tuple representing time : (year aaaa, month(1-12),day +localtime( (1-31), hour(0-23), minute(0-59), second(0-59), weekday(0-6, 0 is +secs) monday), Julian day(1-366), daylight flag(-1,0 or 1)) +asctime( +timeTuple), +strftime( +format, return a formated string representing time. +timeTuple) +mktime(tuple) inverse of localtime(). Return a float. +strptime( parse a formated string representing time, return tuple as in +string[, gmtime(). +format]) +sleep(secs) Suspend execution for <secs> seconds. <secs> can be a float. + +and also: clock, ctime. + + string + +As of Python 2.0, much (though not all) of the functionality provided by the +string module have been superseded by built-in string methods - see Operations +on strings for details. + + Some string variables + Variable Meaning +digits The string '0123456789' +hexdigits, octdigits legal hexadecimal & octal digits +letters, uppercase, lowercase, Strings containing the appropriate +whitespace characters +index_error Exception raised by index() if substr not + found. + + Some string functions + Function Result +expandtabs(s, returns a copy of string <s> with tabs expanded. +tabSize) +find/rfind(s, sub Return the lowest/highest index in <s> where the substring +[, start=0[, end= <sub> is found such that <sub> is wholly contained ins +0]) [start:end]. Return -1 if <sub> not found. +ljust/rjust/center Return a copy of string <s> left/right justified/centerd in +(s, width) afield of given width, padded with spaces. <s> is + nevertruncated. +lower/upper(s) Return a string that is (a copy of) <s> in lowercase/ + uppercase +split(s[, sep= Return a list containing the words of the string <s>,using +whitespace[, the string <sep> as a separator. +maxsplit=0]]) +join(words[, sep=' Concatenate a list or tuple of words with +']) interveningseparators; inverse of split. +replace(s, old, Returns a copy of string <s> with all occurences of +new[, maxsplit=0] substring<old> replaced by <new>. Limits to <maxsplit> + firstsubstitutions if specified. +strip(s) Return a string that is (a copy of) <s> without leadingand + trailing whitespace. see also lstrip, rstrip. + + + + re (sre) + +Handles Unicode strings. Implemented in new module sre, re now a mere front-end +for compatibility. +Patterns are specified as strings. Tip: Use raw strings (e.g. r'\w*') to +litteralize backslashes. + + + Regular expression syntax + Form Description +. matches any character (including newline if DOTALL flag specified) +^ matches start of the string (of every line in MULTILINE mode) +$ matches end of the string (of every line in MULTILINE mode) +* 0 or more of preceding regular expression (as many as possible) ++ 1 or more of preceding regular expression (as many as possible) +? 0 or 1 occurence of preceding regular expression +*?, +?, ?? Same as *, + and ? but matches as few characters as possible +{m,n} matches from m to n repetitions of preceding RE +{m,n}? idem, attempting to match as few repetitions as possible +[ ] defines character set: e.g. '[a-zA-Z]' to match all letters(see also + \w \S) +[^ ] defines complemented character set: matches if char is NOT in set + escapes special chars '*?+&$|()' and introduces special sequences +\ (see below). Due to Python string rules, write as '\\' orr'\' in the + pattern string. +\\ matches a litteral '\'; due to Python string rules, write as '\\\\ + 'in pattern string, or better using raw string: r'\\'. +| specifies alternative: 'foo|bar' matches 'foo' or 'bar' +(...) matches any RE inside (), and delimits a group. +(?:...) idem but doesn't delimit a group. + matches if ... matches next, but doesn't consume any of the string +(?=...) e.g. 'Isaac (?=Asimov)' matches 'Isaac' only if followed by + 'Asimov'. +(?!...) matches if ... doesn't match next. Negative of (?=...) +(?P<name matches any RE inside (), and delimits a named group. (e.g. r'(?P +>...) <id>[a-zA-Z_]\w*)' defines a group named id) +(?P=name) matches whatever text was matched by the earlier group named name. +(?#...) A comment; ignored. +(?letter) letter is one of 'i','L', 'm', 's', 'x'. Set the corresponding flags + (re.I, re.L, re.M, re.S, re.X) for the entire RE. + + Special sequences +Sequence Description +number matches content of the group of the same number; groups are numbered + starting from 1 +\A matches only at the start of the string +\b empty str at beg or end of word: '\bis\b' matches 'is', but not 'his' +\B empty str NOT at beginning or end of word +\d any decimal digit (<=> [0-9]) +\D any non-decimal digit char (<=> [^O-9]) +\s any whitespace char (<=> [ \t\n\r\f\v]) +\S any non-whitespace char (<=> [^ \t\n\r\f\v]) +\w any alphaNumeric char (depends on LOCALE flag) +\W any non-alphaNumeric char (depends on LOCALE flag) +\Z matches only at the end of the string + + Variables +Variable Meaning +error Exception when pattern string isn't a valid regexp. + + Functions + Function Result + Compile a RE pattern string into a regular expression object. + Flags (combinable by |): + + I or IGNORECASE or (?i) + case insensitive matching +compile( L or LOCALE or (?L) +pattern[, make \w, \W, \b, \B dependent on thecurrent locale +flags=0]) M or MULTILINE or (?m) + matches every new line and not onlystart/end of the whole + string + S or DOTALL or (?s) + '.' matches ALL chars, including newline + X or VERBOSE or (?x) + Ignores whitespace outside character sets +escape(string) return (a copy of) string with all non-alphanumerics + backslashed. +match(pattern, if 0 or more chars at beginning of <string> match the RE pattern +string[, flags string,return a corresponding MatchObject instance, or None if +]) no match. +search(pattern scan thru <string> for a location matching <pattern>, return +, string[, acorresponding MatchObject instance, or None if no match. +flags]) +split(pattern, split <string> by occurrences of <pattern>. If capturing () are +string[, used inpattern, then occurrences of patterns or subpatterns are +maxsplit=0]) also returned. +findall( return a list of non-overlapping matches in <pattern>, either a +pattern, list ofgroups or a list of tuples if the pattern has more than 1 +string) group. + return string obtained by replacing the (<count> first) lefmost +sub(pattern, non-overlapping occurrences of <pattern> (a string or a RE +repl, string[, object) in <string>by <repl>; <repl> can be a string or a fct +count=0]) called with a single MatchObj arg, which must return the + replacement string. +subn(pattern, +repl, string[, same as sub(), but returns a tuple (newString, numberOfSubsMade) +count=0]) + +Regular Expression Objects + + +(RE objects are returned by the compile fct) + + re object attributes +Attribute Descrition +flags flags arg used when RE obj was compiled, or 0 if none provided +groupindex dictionary of {group name: group number} in pattern +pattern pattern string from which RE obj was compiled + + re object methods + Method Result + If zero or more characters at the beginning of string match this + regular expression, return a corresponding MatchObject instance. + Return None if the string does not match the pattern; note that + this is different from a zero-length match. + The optional second parameter pos gives an index in the string +match( where the search is to start; it defaults to 0. This is not +string[, completely equivalent to slicing the string; the '' pattern +pos][, character matches at the real beginning of the string and at +endpos]) positions just after a newline, but not necessarily at the index + where the search is to start. + The optional parameter endpos limits how far the string will be + searched; it will be as if the string is endpos characters long, so + only the characters from pos to endpos will be searched for a + match. + Scan through string looking for a location where this regular +search( expression produces a match, and return a corresponding MatchObject +string[, instance. Return None if no position in the string matches the +pos][, pattern; note that this is different from finding a zero-length +endpos]) match at some point in the string. + The optional pos and endpos parameters have the same meaning as for + the match() method. +split( +string[, Identical to the split() function, using the compiled pattern. +maxsplit= +0]) +findall( Identical to the findall() function, using the compiled pattern. +string) +sub(repl, +string[, Identical to the sub() function, using the compiled pattern. +count=0]) +subn(repl, +string[, Identical to the subn() function, using the compiled pattern. +count=0]) + +Match Objects + + +(Match objects are returned by the match & search functions) + + Match object attributes +Attribute Description +pos value of pos passed to search or match functions; index intostring at + which RE engine started search. +endpos value of endpos passed to search or match functions; index intostring + beyond which RE engine won't go. +re RE object whose match or search fct produced this MatchObj instance +string string passed to match() or search() + + Match object functions +Function Result + returns one or more groups of the match. If one arg, result is a +group([g1 string;if multiple args, result is a tuple with one item per arg. If +, g2, gi is 0,return value is entire matching string; if 1 <= gi <= 99, +...]) returnstring matching group #gi (or None if no such group); gi may + also bea group name. + returns a tuple of all groups of the match; groups not +groups() participatingto the match have a value of None. Returns a string + instead of tupleif len(tuple)=1 +start( +group), returns indices of start & end of substring matched by group (or +end(group Noneif group exists but doesn't contribute to the match) +) +span( returns the 2-tuple (start(group), end(group)); can be (None, None)if +group) group didn't contibute to the match. + + + + math + +Variables: +pi +e +Functions (see ordinary C man pages for info): +acos(x) +asin(x) +atan(x) +atan2(x, y) +ceil(x) +cos(x) +cosh(x) +exp(x) +fabs(x) +floor(x) +fmod(x, y) +frexp(x) -- Unlike C: (float, int) = frexp(float) +ldexp(x, y) +log(x) +log10(x) +modf(x) -- Unlike C: (float, float) = modf(float) +pow(x, y) +sin(x) +sinh(x) +sqrt(x) +tan(x) +tanh(x) + + getopt + +Functions: +getopt(list, optstr) -- Similar to C. <optstr> is option + letters to look for. Put ':' after letter + if option takes arg. E.g. + # invocation was "python test.py -c hi -a arg1 arg2" + opts, args = getopt.getopt(sys.argv[1:], 'ab:c:') + # opts would be + [('-c', 'hi'), ('-a', '')] + # args would be + ['arg1', 'arg2'] + + +List of modules and packages in base distribution + +(built-ins and content of python Lib directory) +(Python NT distribution, may be slightly different in other distributions) + + Standard library modules + Operation Result +aifc Stuff to parse AIFF-C and AIFF files. +anydbm Generic interface to all dbm clones. (dbhash, gdbm, + dbm,dumbdbm) +asynchat Support for 'chat' style protocols +asyncore Asynchronous File I/O (in select style) +atexit Register functions to be called at exit of Python interpreter. +audiodev Audio support for a few platforms. +base64 Conversions to/from base64 RFC-MIME transport encoding . +BaseHTTPServer Base class forhttp services. +Bastion "Bastionification" utility (control access to instance vars) +bdb A generic Python debugger base class. +binhex Macintosh binhex compression/decompression. +bisect List bisection algorithms. +calendar Calendar printing functions. +cgi Wraps the WWW Forms Common Gateway Interface (CGI). +CGIHTTPServer CGI http services. +cmd A generic class to build line-oriented command interpreters. +[DEL:cmp:DEL] [DEL:Efficiently compare files, boolean outcome only.:DEL] +[DEL:cmpcache: [DEL:Same, but caches 'stat' results for speed.:DEL] +DEL] +code Utilities needed to emulate Python's interactive interpreter +codecs Lookup existing Unicode encodings and register new ones. +colorsys Conversion functions between RGB and other color systems. +commands Tools for executing UNIX commands . +compileall Force "compilation" of all .py files in a directory. +ConfigParser Configuration file parser (much like windows .ini files) +copy Generic shallow and deep copying operations. +copy_reg Helper to provide extensibility for pickle/cPickle. +dbhash (g)dbm-compatible interface to bsdhash.hashopen. +dircache Sorted list of files in a dir, using a cache. +[DEL:dircmp:DEL] [DEL:Defines a class to build directory diff tools on.:DEL] +dis Bytecode disassembler. +distutils Package installation system. +dospath Common operations on DOS pathnames. +dumbdbm A dumb and slow but simple dbm clone. +[DEL:dump:DEL] [DEL:Print python code that reconstructs a variable.:DEL] +exceptions Class based built-in exception hierarchy. +filecmp File comparison. +fileinput Helper class to quickly write a loop over all standard input + files. +[DEL:find:DEL] [DEL:Find files directory hierarchy matching a pattern.:DEL] +fnmatch Filename matching with shell patterns. +formatter A test formatter. +fpformat General floating point formatting functions. +ftplib An FTP client class. Based on RFC 959. +gc Perform garbacge collection, obtain GC debug stats, and tune + GC parameters. +getopt Standard command line processing. See also ftp:// + www.pauahtun.org/pub/getargspy.zip +getpass Utilities to get a password and/or the current user name. +glob filename globbing. +gopherlib Gopher protocol client interface. +[DEL:grep:DEL] [DEL:'grep' utilities.:DEL] +gzip Read & write gzipped files. +htmlentitydefs Proposed entity definitions for HTML. +htmllib HTML parsing utilities. +httplib HTTP client class. +ihooks Hooks into the "import" mechanism. +imaplib IMAP4 client.Based on RFC 2060. +imghdr Recognizing image files based on their first few bytes. +imputil Privides a way of writing customised import hooks. +keyword List of Python keywords. +knee A Python re-implementation of hierarchical module import. +linecache Cache lines from files. +linuxaudiodev Lunix /dev/audio support. +locale Support for number formatting using the current locale + settings. +macpath Pathname (or related) operations for the Macintosh. +macurl2path Mac specific module for conversion between pathnames and URLs. +mailbox A class to handle a unix-style or mmdf-style mailbox. +mailcap Mailcap file handling (RFC 1524). +mhlib MH (mailbox) interface. +mimetools Various tools used by MIME-reading or MIME-writing programs. +mimetypes Guess the MIME type of a file. +MimeWriter Generic MIME writer. +mimify Mimification and unmimification of mail messages. +mmap Interface to memory-mapped files - they behave like mutable + strings./font> +multifile Class to make multi-file messages easier to handle. +mutex Mutual exclusion -- for use with module sched. +netrc +nntplib An NNTP client class. Based on RFC 977. +ntpath Common operations on DOS pathnames. +nturl2path Mac specific module for conversion between pathnames and URLs. +os Either mac, dos or posix depending system. +[DEL:packmail: [DEL:Create a self-unpacking shell archive.:DEL] +DEL] +pdb A Python debugger. +pickle Pickling (save and restore) of Python objects (a faster + Cimplementation exists in built-in module: cPickle). +pipes Conversion pipeline templates. +[DEL:poly:DEL] [DEL:Polynomials.:DEL] +popen2 variations on pipe open. +poplib A POP3 client class. Based on the J. Myers POP3 draft. +posixfile Extended (posix) file operations. +posixpath Common operations on POSIX pathnames. +pprint Support to pretty-print lists, tuples, & dictionaries + recursively. +profile Class for profiling python code. +pstats Class for printing reports on profiled python code. +pty Pseudo terminal utilities. +pyexpat Interface to the Expay XML parser. +py_compile Routine to "compile" a .py file to a .pyc file. +pyclbr Parse a Python file and retrieve classes and methods. +Queue A multi-producer, multi-consumer queue. +quopri Conversions to/from quoted-printable transport encoding. +rand Don't use unless you want compatibility with C's rand(). +random Random variable generators (obsolete, use whrandom) +re Regular Expressions. +reconvert Convert old ("regex") regular expressions to new syntax + ("re"). +regex_syntax Flags for regex.set_syntax(). +regexp Backward compatibility for module "regexp" using "regex". +regsub Regular expression subroutines. +repr Redo repr() but with limits on most sizes. +rexec Restricted execution facilities ("safe" exec, eval, etc). +rfc822 RFC-822 message manipulation class. +rlcompleter Word completion for GNU readline 2.0. +robotparser Parse robot.txt files, useful for web spiders. +sched A generally useful event scheduler class. +sgmllib A parser for SGML. +shelve Manage shelves of pickled objects. +shlex Lexical analyzer class for simple shell-like syntaxes. +shutil Utility functions usable in a shell-like program. +SimpleHTTPServer Simple extension to base http class +site Append module search paths for third-party packages to + sys.path. +smtplib SMTP Client class (RFC 821) +sndhdr Several routines that help recognizing sound. +SocketServer Generic socket server classes. +stat Constants and functions for interpreting stat/lstat struct. +statcache Maintain a cache of file stats. +statvfs Constants for interpreting statvfs struct as returned by + os.statvfs()and os.fstatvfs() (if they exist). +string A collection of string operations. +StringIO File-like objects that read/write a string buffer (a fasterC + implementation exists in built-in module: cStringIO). +sunau Stuff to parse Sun and NeXT audio files. +sunaudio Interpret sun audio headers. +symbol Non-terminal symbols of Python grammar (from "graminit.h"). +tabnanny,/font> Check Python source for ambiguous indentation. +telnetlib TELNET client class. Based on RFC 854. +tempfile Temporary file name allocation. +threading Proposed new higher-level threading interfaces +threading_api (doc of the threading module) +toaiff Convert "arbitrary" sound files to AIFF files . +token Tokens (from "token.h"). +tokenize Compiles a regular expression that recognizes Python tokens. +traceback Format and print Python stack traces. +tty Terminal utilities. +turtle LogoMation-like turtle graphics +types Define names for all type symbols in the std interpreter. +tzparse Parse a timezone specification. +unicodedata Interface to unicode properties. +urllib Open an arbitrary URL. +urlparse Parse URLs according to latest draft of standard. +user Hook to allow user-specified customization code to run. +UserDict A wrapper to allow subclassing of built-in dict class. +UserList A wrapper to allow subclassing of built-in list class. +UserString A wrapper to allow subclassing of built-in string class. +[DEL:util:DEL] [DEL:some useful functions that don't fit elsewhere !!:DEL] +uu UUencode/UUdecode. +wave Stuff to parse WAVE files. +webbrowser Platform independent URL launcher. +[DEL:whatsound: [DEL:Several routines that help recognizing sound files.:DEL] +DEL] +whichdb Guess which db package to use to open a db file. +whrandom Wichmann-Hill random number generator. +xdrlib Implements (a subset of) Sun XDR (eXternal Data + Representation) +xmllib A parser for XML, using the derived class as static DTD. +xml.dom Classes for processing XML using the Document Object Model. +xml.sax Classes for processing XML using the SAX API. +zipfile Read & write PK zipped files. +[DEL:zmod:DEL] [DEL:Demonstration of abstruse mathematical concepts.:DEL] + + + +(following list not revised) + +* Built-ins * + + sys Interpreter state vars and functions + __built-in__ Access to all built-in python identifiers + __main__ Scope of the interpreters main program, script or stdin + array Obj efficiently representing arrays of basic values + math Math functions of C standard + time Time-related functions + regex Regular expression matching operations + marshal Read and write some python values in binary format + struct Convert between python values and C structs + +* Standard * + + getopt Parse cmd line args in sys.argv. A la UNIX 'getopt'. + os A more portable interface to OS dependent functionality + re Functions useful for working with regular expressions + string Useful string and characters functions and exceptions + whrandom Wichmann-Hill pseudo-random number generator + thread Low-level primitives for working with process threads + threading idem, new recommanded interface. + +* Unix/Posix * + + dbm Interface to Unix ndbm database library + grp Interface to Unix group database + posix OS functionality standardized by C and POSIX standards + posixpath POSIX pathname functions + pwd Access to the Unix password database + select Access to Unix select multiplex file synchronization + socket Access to BSD socket interface + +* Tk User-interface Toolkit * + + tkinter Main interface to Tk + +* Multimedia * + + audioop Useful operations on sound fragments + imageop Useful operations on images + jpeg Access to jpeg image compressor and decompressor + rgbimg Access SGI imglib image files + +* Cryptographic Extensions * + + md5 Interface to RSA's MD5 message digest algorithm + mpz Interface to int part of GNU multiple precision library + rotor Implementation of a rotor-based encryption algorithm + +* Stdwin * Standard Window System + + stdwin Standard Window System interface + stdwinevents Stdwin event, command, and selection constants + rect Rectangle manipulation operations + +* SGI IRIX * (4 & 5) + + al SGI audio facilities + AL al constants + fl Interface to FORMS library + FL fl constants + flp Functions for form designer + fm Access to font manager library + gl Access to graphics library + GL Constants for gl + DEVICE More constants for gl + imgfile Imglib image file interface + +* Suns * + + sunaudiodev Access to sun audio interface + + +Workspace exploration and idiom hints + + dir(<module>) list functions, variables in <module> + dir() get object keys, defaults to local name space + X.__methods__ list of methods supported by X (if any) + X.__members__ List of X's data attributes + if __name__ == '__main__': main() invoke main if running as script + map(None, lst1, lst2, ...) merge lists + b = a[:] create copy of seq structure + _ in interactive mode, is last value printed + + + + + + + +Python Mode for Emacs + +(Not revised, possibly not up to date) +Type C-c ? when in python-mode for extensive help. +INDENTATION +Primarily for entering new code: + TAB indent line appropriately + LFD insert newline, then indent + DEL reduce indentation, or delete single character +Primarily for reindenting existing code: + C-c : guess py-indent-offset from file content; change locally + C-u C-c : ditto, but change globally + C-c TAB reindent region to match its context + C-c < shift region left by py-indent-offset + C-c > shift region right by py-indent-offset +MARKING & MANIPULATING REGIONS OF CODE +C-c C-b mark block of lines +M-C-h mark smallest enclosing def +C-u M-C-h mark smallest enclosing class +C-c # comment out region of code +C-u C-c # uncomment region of code +MOVING POINT +C-c C-p move to statement preceding point +C-c C-n move to statement following point +C-c C-u move up to start of current block +M-C-a move to start of def +C-u M-C-a move to start of class +M-C-e move to end of def +C-u M-C-e move to end of class +EXECUTING PYTHON CODE +C-c C-c sends the entire buffer to the Python interpreter +C-c | sends the current region +C-c ! starts a Python interpreter window; this will be used by + subsequent C-c C-c or C-c | commands +VARIABLES +py-indent-offset indentation increment +py-block-comment-prefix comment string used by py-comment-region +py-python-command shell command to invoke Python interpreter +py-scroll-process-buffer t means always scroll Python process buffer +py-temp-directory directory used for temp files (if needed) +py-beep-if-tab-change ring the bell if tab-width is changed + + +The Python Debugger + +(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) + +Accessing + +import pdb (it's a module written in Python) + -- defines functions : + run(statement[,globals[, locals]]) + -- execute statement string under debugger control, with optional + global & local environment. + runeval(expression[,globals[, locals]]) + -- same as run, but evaluate expression and return value. + runcall(function[, argument, ...]) + -- run function object with given arg(s) + pm() -- run postmortem on last exception (like debugging a core file) + post_mortem(t) + -- run postmortem on traceback object <t> + + -- defines class Pdb : + use Pdb to create reusable debugger objects. Object + preserves state (i.e. break points) between calls. + + runs until a breakpoint hit, exception, or end of program + If exception, variable '__exception__' holds (exception,value). + +Commands + +h, help + brief reminder of commands +b, break [<arg>] + if <arg> numeric, break at line <arg> in current file + if <arg> is function object, break on entry to fcn <arg> + if no arg, list breakpoints +cl, clear [<arg>] + if <arg> numeric, clear breakpoint at <arg> in current file + if no arg, clear all breakpoints after confirmation +w, where + print current call stack +u, up + move up one stack frame (to top-level caller) +d, down + move down one stack frame +s, step + advance one line in the program, stepping into calls +n, next + advance one line, stepping over calls +r, return + continue execution until current function returns + (return value is saved in variable "__return__", which + can be printed or manipulated from debugger) +c, continue + continue until next breakpoint +a, args + print args to current function +rv, retval + prints return value from last function that returned +p, print <arg> + prints value of <arg> in current stack frame +l, list [<first> [, <last>]] + List source code for the current file. + Without arguments, list 11 lines around the current line + or continue the previous listing. + With one argument, list 11 lines starting at that line. + With two arguments, list the given range; + if the second argument is less than the first, it is a count. +whatis <arg> + prints type of <arg> +! + executes rest of line as a Python statement in the current stack frame +q quit + immediately stop execution and leave debugger +<return> + executes last command again +Any input debugger doesn't recognize as a command is assumed to be a +Python statement to execute in the current stack frame, the same way +the exclamation mark ("!") command does. + +Example + +(1394) python +Python 1.0.3 (Sep 26 1994) +Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam +>>> import rm +>>> rm.run() +Traceback (innermost last): + File "<stdin>", line 1 + File "./rm.py", line 7 + x = div(3) + File "./rm.py", line 2 + return a / r +ZeroDivisionError: integer division or modulo +>>> import pdb +>>> pdb.pm() +> ./rm.py(2)div: return a / r +(Pdb) list + 1 def div(a): + 2 -> return a / r + 3 + 4 def run(): + 5 global r + 6 r = 0 + 7 x = div(3) + 8 print x +[EOF] +(Pdb) print r +0 +(Pdb) q +>>> pdb.runcall(rm.run) +etc. + +Quirks + +Breakpoints are stored as filename, line number tuples. If a module is reloaded +after editing, any remembered breakpoints are likely to be wrong. + +Always single-steps through top-most stack frame. That is, "c" acts like "n". - @ * Standard * - getopt Parse cmd line args in sys.argv. A la UNIX 'getopt'. - os Portable interface to OS dependent functionality - pdb text-oriented debugger - rand Pseudo-random generator, like C rand() - regsub Functions useful for working with regular expressions - string Useful string and characters functions and exceptions - wdb window-oriented debugger - whrandom Wichmann-Hill pseudo-random number generator - - @ * Miscellaneous * - - dis Python disassembler - glob Filename globbing (a la unix shell) - grep File string search - posixpath Common operations on POSIX pathnames - profile Python code profiler - repr `...` repr operator with presentation constraints - string All of builtin 'strop', plus - tb Traceback browser and printer - tempfile Produce a temporary-file name - util Miscellaneous functions that don't belong elsewhere - - @ * Unix * - - dbm Dict/file-like interface to Unix ndbm database library - grp Interface to Unix group database - posix Standardized UNIX OS functionality - see 'os', above - posixpath POSIX pathname functions - see 'os', above - pwd Access to the Unix password database - select Access to Unix select multiplex file synchronization - socket Access to BSD socket interface - thread Low-level primitives for working with process threads - - @ * Multimedia * - - audioop Useful operations on sound fragments - imageop Useful operations on images - jpeg Access to jpeg image compressor and decompressor - rgbimg Access SGI imglib image files - - @ * Cryptographic Extensions * - - md5 Interface to RSA's MD5 message digest algorithm - mpz Interface to int part of GNU multiple precision library - rotor Implementation of a rotor-based encryption algorithm - - @ * Stdwin * Standard Window System - - stdwin Standard Window System interface - stdwinevents Stdwin event, command, and selection constants - rect Rectangle manipulation operations - - @ * SGI IRIX * (4 & 5) - - al SGI audio facilities - AL al constants - fl Interface to FORMS library - FL fl constants - flp Functions for form designer - fm Access to font manager library - gl Access to graphics library - GL Constants for gl - DEVICE More constants for gl - imgfile Imglib image file interface - - @ * Suns * - - sunaudiodev Access to sun audio interface - - @ * Contrib * - - syslog - - metalbase - - Idioms and hints - ================ - - Invoke main if running as script: if __name__ == '__main__': main() - - General object-type miscellany - What type is someobj; eg, a list: if type(someobj) == type([]): - Convert number to hex or octal string: hex(122) => '0x7a' - Convert string to number: eval('0x7a') => 122 - - Sequence Slice conceptualization: - +---+---+---+---+---+ Indices point ~between~ chars: - | s | t | u | f | f | - first char's left edge = 0, - +---+---+---+---+---+ - nth char's right edge = n. - 0 1 2 3 4 5 (Note that -0 == 0, so it does - -5 -4 -3 -2 -1 not count from right.) - - Sequences miscellany: - Create merge of lists: map(None, lst1, lst2, ...) - It's faster to list.append(elem) than to list[len(list):] = [elem] - Copy structure of seq a to b: b = a[:] - - Comma (tuple vs expression grouping) nuances: - to specify a tuple of one element: ('element',) - to specify a tuple containing 1 tuple: (('contained', 'tuple'),) - "TypeError: call of non-function" often means a list missing a comma - - Namespace and object surveillance: - get dictful object keys/key-vals: dir(), vars() - Current context globals: eval(__name__ + '.__dict__') - Current context locals: vars() - Methods supported by X (some objs): X.__methods__ - X's data attributes (some objs): X.__members__ |