Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
notes:python_cheat_sheet [2009/04/03 16:14] smthng |
notes:python_cheat_sheet [2009/12/18 18:06] (current) smthng |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Python Cheat Sheet ====== | ====== Python Cheat Sheet ====== | ||
- | ===== Overview ===== | + | [[http:// |
- | + | * **python**/ | |
- | [[http:// | + | |
- | + | ||
- | ===== The Interpreter ===== | + | |
- | + | ||
- | * **python**/ | + | |
* 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] | + | * %%>>> |
- | * >>> | + | |
* 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 | + | * 4 spaces per indent, no tabs. CamelCase |
===== 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 | + | * Lists can be created from sequences |
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]]</ | + | [[4, 16], [6, 36]] |
+ | [x+y for x in vec for y in vec2 if x > 2]</ | ||
* 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/ |
* 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:// | + | * [[http:// |
- | * format-string % (tuple) | + | * // |
+ | * str() returns a readable representation, | ||
+ | * To open a file <code python> open('/ | ||
+ | * [[http:// | ||
+ | * //pickle// contains [[http:// | ||
+ | |||
===== Control Flow ===== | ===== Control Flow ===== | ||
Line 77: | Line 78: | ||
* Loops may have else clauses for code executed after normal termination (not a break). | * Loops may have else clauses for code executed after normal termination (not a break). | ||
+ | ===== Assorted Collection Stuff ===== | ||
+ | |||
+ | * Dictionaries are unordered sets of key value pairs e.g. { a:1, b:2} or dict([(a, | ||
+ | * Dictionary keys/ | ||
+ | * 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. | ||
+ | * zip takes two or more lists with the same number of elements and creates a single list of lists with corresponding members grouped together. | ||
+ | |||
+ | ===== Modules & Packages ===== | ||
+ | |||
+ | * A //module// is a file of python definitions. | ||
+ | * Definitions in a module can be accessed by importing the module. <code python> | ||
+ | from fib import fib1, fib2 | ||
+ | </ | ||
+ | * %%__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. | ||
+ | * When a module is imported, a byte-code version is stored to module.pyc which speeds up successive loads. | ||
+ | * There are many standard modules including sys which is common to all platforms. | ||
+ | * dir(module) lists all names in a module sorted alphabetically. dir(builtins) shows all the built-in functions and variables. | ||
+ | * 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. | ||
+ | |||
+ | ===== Error Handling ===== | ||
+ | |||
+ | * Syntax errors are parsing errors, exceptions are runtime errors. | ||
+ | * Exceptions are class objects in the exceptions module. [[http:// | ||
+ | * Exception handling is supported using try..except..else..finally :<code python> | ||
+ | try: | ||
+ | result = x / y | ||
+ | except ZeroDivisionError: | ||
+ | print(" | ||
+ | except Exception as inst: | ||
+ | print(type(inst)) | ||
+ | print(inst.args) | ||
+ | print(inst) | ||
+ | else: | ||
+ | print(" | ||
+ | finally: | ||
+ | print(" | ||
+ | </ | ||
+ | * Errors can be raised using '' | ||
+ | * New exception classes can be created and should derive from the Exception class. | ||
+ | * '' | ||
+ | with open(" | ||
+ | for line in f: | ||
+ | print(line) | ||
+ | </ | ||
+ | |||
+ | ===== Classes ===== |