Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
notes:python_cheat_sheet [2009/04/07 19:59]
smthng
notes:python_cheat_sheet [2009/12/18 18:06]
smthng
Line 1: Line 1:
 ====== Python Cheat Sheet ====== ====== Python Cheat Sheet ======
  
-===== Overview ===== +[[http://www.python.org/ | Python]] is a dynamic object-oriented programming language with extensive standard libraries. These notes summarize the [[http://docs.python.org/3.1/tutorial/ | Python 3.tutorial]]. 
- +  * **python**/**python3.1** is the command-line interpreter with readline where available.
-[[http://www.python.org/ | Python]] is a dynamic object-oriented programming language with extensive standard libraries. These notes summarize the [[http://docs.python.org/3.0/tutorial/ | Python 3.tutorial]]. +
- +
-===== The Interpreter ===== +
- +
-  * **python**/**python3.0** is the command-line interpreter with readline where available.+
   * python -c command runs a single command.   * python -c command runs a single command.
-  * sys.argv is a list of strings with the script if any in sys.argv[0] +  * %%>>> prompts for a line . ... prompts for a continuation of a previous line.%%
-  * >>> prompts for a line . ... prompts for a continuation of a previous line+
   * PYTHONSTARTUP can point to a file of startup commands   * PYTHONSTARTUP can point to a file of startup commands
   * Expressions are evaluated and printed.   * Expressions are evaluated and printed.
   * The last printed expression is assigned to _ .   * The last printed expression is assigned to _ .
- 
  
 ===== Basics ===== ===== Basics =====
   * Comments start with # .   * Comments start with # .
 +  * sys.argv is a list of strings with the script if any in sys.argv[0]
   * Variables can be assigned (using = ) without being defined but must be assigned before being used.   * Variables can be assigned (using = ) without being defined but must be assigned before being used.
   * a,b = c,d does a multiple assignment.   * a,b = c,d does a multiple assignment.
Line 30: Line 24:
   * lambda x: x + n creates a small anonymous function.   * lambda x: x + n creates a small anonymous function.
   * A function should contain a triply quoted doc string at the start. This is accessible with func.__doc__ .   * A function should contain a triply quoted doc string at the start. This is accessible with func.__doc__ .
-  * 4 spaces per indent, no tabs. CamelCasel for classes lower_case_with_underscores for functions.+  * 4 spaces per indent, no tabs. CamelCase for classes lower_case with underscores for functions.
  
 ===== Lists ===== ===== Lists =====
Line 40: Line 34:
   * Lists can be nested.   * Lists can be nested.
   * Other methods include append, pop, extend, index, count, sort, reverse.   * Other methods include append, pop, extend, index, count, sort, reverse.
-  * Lists can be created from sequences e.g <code python>+  * Lists can be created from sequences using list comprehension <code python>
 vec = [2, 4, 6] vec = [2, 4, 6]
-[[x, x**2] for x in vec] +[[x, x**2] for x in vec if x > 2
-[[2, 4], [4, 16], [6, 36]]</code>+[[4, 16], [6, 36]
 +[x+y for x in vec for y in vec2 if x > 2]</code>
   * Other sequence types include tuples ( (1,2) or 1,2) and sets ({1,2} or set(1,2)).   * Other sequence types include tuples ( (1,2) or 1,2) and sets ({1,2} or set(1,2)).
  
-===== Strings =====+===== Input/Output =====
   * Strings can be enclosed with double or single-quotes.   * Strings can be enclosed with double or single-quotes.
   * \ in a string by itself goes to the next line but does not insert a newline (\n does).   * \ in a string by itself goes to the next line but does not insert a newline (\n does).
Line 53: Line 48:
   * A string can be treated as a list of letters.   * A string can be treated as a list of letters.
   * But strings can't be modified using slices or indexes.   * But strings can't be modified using slices or indexes.
-  * [[http://docs.python.org/3.0/library/stdtypes.html#string-methods | String methods]] include strip, format, capitalize etc. +  * [[http://docs.python.org/3.1/library/stdtypes.html#string-methods | String methods]] include strip, format, capitalize etc. 
-  * format-string % (tuple) allows use of printf formatting strings. Also string.format() .+  * //formatstring.format(tuple)// is the [[http://docs.python.org/3.1/library/string.html#formatspec | new-style printf]] equivalent. The [[http://docs.python.org/3.1/library/stdtypes.html#old-string-formatting | old-style]] was //formatstring % (tuple)// which uses C-type format strings. 
 +  * str() returns a readable representation, repr() returns a canonical representation of any object. 
 +  * To open a file <code python> open('/tmp/workfile', 'w'</code> 
 +  * [[http://docs.python.org/3.1/library/stdtypes.html#file-objects | File methods]] include read, readline, write. 
 +  * //pickle// contains [[http://docs.python.org/3.1/library/pickle.html | load and dump methods]] for serializing objects. Support should be added for new object types. 
 + 
  
 ===== Control Flow ===== ===== Control Flow =====
Line 81: Line 82:
   * Dictionaries are unordered sets of key value pairs e.g. { a:1, b:2} or dict([(a,1),(b,2)]) or dict(a=1,b=2)   * Dictionaries are unordered sets of key value pairs e.g. { a:1, b:2} or dict([(a,1),(b,2)]) or dict(a=1,b=2)
   * Dictionary keys/values/items can be enumerated over.   * Dictionary keys/values/items can be enumerated over.
-  * sorted and reversed take in liats and return new lists.+  * sorted and reversed take in lists and return new lists.
   * enumerate takes in a list and returns a list of pairs where the first item in the pair is an integer starting with 0.   * enumerate takes in a list and returns a list of pairs where the first item in the pair is an integer starting with 0.
   * zip takes two or more lists with the same number of elements and creates a single list of lists with corresponding members grouped together.   * zip takes two or more lists with the same number of elements and creates a single list of lists with corresponding members grouped together.
Line 91: Line 92:
 from fib import fib1, fib2 from fib import fib1, fib2
 </code> </code>
-  * __name__ is set to the name of the module or to __main__ if called from the command line.+  * %%__name__%% is set to the name of the module or to %%__main__%% if called from the command line.
   * The search list for modules is the variable sys.path initialized from the directory containing the input script (or the current directory), PYTHONPATH and the installation-dependent default.   * The search list for modules is the variable sys.path initialized from the directory containing the input script (or the current directory), PYTHONPATH and the installation-dependent default.
   * When a module is imported, a byte-code version is stored to module.pyc which speeds up successive loads.   * When a module is imported, a byte-code version is stored to module.pyc which speeds up successive loads.
Line 98: Line 99:
   * Packages can be used to group modules. Packages should be in a named directory with an __init__.py file optionally containing initialization code. E.g. import sound.effects.echo .   * Packages can be used to group modules. Packages should be in a named directory with an __init__.py file optionally containing initialization code. E.g. import sound.effects.echo .
   * . is the current package, .. is the parent package etc.   * . is the current package, .. is the parent package etc.
 +
 +===== Error Handling =====
 +
 +  * Syntax errors are parsing errors, exceptions are runtime errors.
 +  * Exceptions are class objects in the exceptions module. [[http://docs.python.org/3.1/library/exceptions.html#bltin-exceptions | List of builtin exceptions]].
 +  * Exception handling is supported using try..except..else..finally :<code python>
 +try:
 +    result = x / y
 +except ZeroDivisionError:
 +    print("division by zero!")
 +except Exception as inst:
 +    print(type(inst))    # the exception instance
 +    print(inst.args)     # arguments stored in .args
 +    print(inst)          # also prints .args
 +else:
 +    print("result is", result)
 +finally:
 +    print("executing finally clause")
 +</code>
 +  * Errors can be raised using ''raise Exception('mine')'' or just ''raise'' in an exception handler.
 +  * New exception classes can be created and should derive from the Exception class.
 +  * ''with'' can be used to automatically call the cleanup actions of an object e.g. <code python>
 +with open("myfile.txt") as f:
 +    for line in f:
 +        print(line)
 +</code>
 +
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki