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