Python By: Ben Blake, Andrew Dzambo, Paul Flanagan General Programming Tips Spacing Comments Header Consistency with variables – keep it simple Set all variables equal to zero initially Notes on changes to code – version control Good formatting example: http://www.personal.psu.edu/amd5554/resources/documented_c ode.pdf Python Basics Declaring variables – don't need to create variable initially Indenting in loops – no end statement Capitalization matters – Temp, temp, tEmp, TEMP are all different variables Numerical Arithmetic Mathematical expressions are the same + Addition - Subtraction * Multiplication / Division ** Exponentiation 9.8E-8 = 9.8 * (10 ** (-8)) Math Functions Built-in functions Imported functions float, int, max, min, abs sin, cos, tan, asin, acos, atan, log (natural log), log10 (base 10 log), exp, sqrt, pi, e Trigonometric functions work exclusively in radians k = m.cos(a * m.pi / 180.0) degrad = m.pi / 180.0 k = m.cos(a * degrad) Importing Some commands/functions need to be imported in order to be used Some libraries that can be imported: math, numpy, pylab Different ways to import from math import cos, sin, acos, pi import math k = math.cos(a * m.pi / 180.0) import math as m k = m.cos(a * m.pi / 180.0) Shortcut Operators Linecount += 1 Average /= linecount Balance -= payment Population *= growth ==> ==> ==> ==> linecount = linecount + 1 average = average / linecount balance = balance – payment population = population * growth Input/Output Need to distinguish between read-only (input) files and writeable (output) files “r” = read-only, “w” = writeable infile = open(“weather.csv”, “r”) outfile = open(“pressure.txt”, “w”) Using Input/Output Files Reading input files vap_list = infile.readlines() for vaporpressure in vap_list: Print statements Print >> outfile, x, y, vaporpressure If a number immediately follows the %, it is the width (in spaces) of the field in which the object will be written Print ‘%4f’ % x, ‘%4f’ % y this will print x and y as floating point numbers over 4 spaces Loops Types: for, if, while loops Indenting denotes code is in loop To close loop, unindent the next line Example of a simple loop - counts # of x's in xlist for x in xlist: y += 1 print y For Loops Determinant loop – use when you know how long you want the program to run Similar to the “do loop” in ForTran and C++ Two examples of for loops – can use either an input file or an array for station in stations: for k in range(n): If Loops Used to make logical decisions Can be imbedded inside for loops if logical_expression_1: # do this block when logical_expression_1 is true elif logical_expression_2: # do this block when logical_expression_2 is true else: # do this block when neither logical expression above is true Logical Expressions in Python Comparisons of one variable to another or to a constant using comparison operators == equals < less than <= less than or equal to != not equals > greater than >= greater than or equal to While Loops Indeterminant loop – use when duration of loop is unknown Can be imbedded inside for loops General while loop structure while logical_expression: # statements to run as long as logical_expression stays true Break Statement Can use to terminate a loop or part of a specific loop if a statement becomes true Example of how break statement is used x=0 for x in xlist: if x >= 40: x += 1 break else: x += 1 Lists • • • Collection of strings, floating point numbers, or integers listed in some order Arrays are special form of list in which all elements are of same data type Numeric Python module (numpy) is used to work with arrays List Operators List – create a defined list-type object • • Range – returns list of integers in specified range – important in for loops • • • range(4) returns [0, 1, 2, 3] range (2,4) returns [2, 3] Len – counts how many numbers are in a list • • • x = list([4.0, ‘Hypsometric’, 34]) len(range(2,4)) produces a value of 2 Sum – adds up the numbers in a list Line Splitting Input files consists of strings which can be split into component strings and then converted into numbers Split method is used to break strings into more useful components Default separator is a blank space, but separators can be anything, such as , : ; / Line splitting most useful when done inside a loop • • • • • • Line = “32, 32.4, 36.8, Freezing Points” q = float(line.split(“,”)[2]) = 36.8