This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
notes:python_cheat_sheet [2026/09/13 22:52] 43.166.174.45 old revision restored (2009/04/02 17:40) |
notes:python_cheat_sheet [2026/09/14 00:17] (current) 14.171.170.69 old revision restored (2026/07/27 06:07) |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== Overview ===== | ===== Overview ===== | ||
| - | [[http:// | + | [[http:// |
| - | + | * **python**/ | |
| - | ===== 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. | ||
| * Imaginary numbers can be created using complex(a, | * Imaginary numbers can be created using complex(a, | ||
| * print(" | * print(" | ||
| + | |||
| + | ===== Functions ===== | ||
| + | * To define a function or procedure <code python> | ||
| + | * The default value for an argument is evaluated only once when the function is defined. | ||
| + | * All arguments are passed using //call by object reference// | ||
| + | * * unpacks a list or dictionary for use in a 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__ . | ||
| + | * 4 spaces per indent, no tabs. CamelCase for classes lower_case with underscores for functions. | ||
| ===== Lists ===== | ===== Lists ===== | ||
| Line 27: | Line 32: | ||
| * list[4] is 4th element. list[2:4] is second and third elements. list[:2] is first 2 elements. list[2:] is third element to last one. list[:] is the whole list. | * list[4] is 4th element. list[2:4] is second and third elements. list[:2] is first 2 elements. list[2:] is third element to last one. list[:] is the whole list. | ||
| * Negative indexes count from last element. | * Negative indexes count from last element. | ||
| - | * List slices can be modified. list[3:3] can be used to insert elements at position 3. list.append() appends to the list. | + | * List slices can be modified. list[3:3] can be used to insert elements at position 3. |
| * len(list) returns length of the list. | * len(list) returns length of the list. | ||
| * Lists can be nested. | * Lists can be nested. | ||
| + | * Other methods include append, pop, extend, index, count, sort, reverse. | ||
| + | * Lists can be created from sequences using list comprehension <code python> | ||
| + | vec = [2, 4, 6] | ||
| + | [[x, x**2] for x in vec if x > 2] | ||
| + | [[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)). | ||
| ===== Strings ===== | ===== Strings ===== | ||
| Line 38: | Line 50: | ||
| * 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) allows use of printf formatting strings. Also string.format() | + | |
| ===== Control Flow ===== | ===== Control Flow ===== | ||
| + | * Controlled by level of indentation. | ||
| + | * //pass// is a NOOP . | ||
| + | * <code python> | ||
| + | while a<10: | ||
| + | pass</ | ||
| + | * <code python> | ||
| + | for x in list: | ||
| + | pass | ||
| + | for x in range(1,5): | ||
| + | pass</ | ||
| + | * <code python> | ||
| + | if a›10: | ||
| + | pass | ||
| + | elif a›5: | ||
| + | pass | ||
| + | else:</ | ||
| + | * //break// and // | ||
| + | * 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. | ||
| + | |||
| + | ===== Input/ | ||
| + | |||
| + | * str() returns a readable representations, | ||
| + | * Strings have several formatting methods. | ||
| + | * // | ||
| + | * To open a file <code python> open('/ | ||
| + | * [[http:// | ||
| + | * //pickle// contains [[http:// | ||
| + | |||
| + | ===== 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: | ||
| + | | ||
| + | except ZeroDivisionError: | ||
| + | | ||
| + | except Exception as inst: | ||
| + | | ||
| + | | ||
| + | | ||
| + | else: | ||
| + | | ||
| + | finally: | ||
| + | | ||
| + | </ | ||
| + | * Errors can be raised using '' | ||
| + | * New exception classes can be created and should derive from the Exception class. | ||
| + | * '' | ||
| + | <code python> | ||
| + | with open(" | ||
| + | for line in f: | ||
| + | print(line) | ||
| + | </ | ||