1 / 71

sample1.py

Python Programming Techniques Eliot Feibush Zach Kaplan Bum Shik Kim Princeton Plasma Physics Laboratory PICSciE Princeton Institute for Computational Science and Engineering. sample1.py. x = 0. xmax = 2. xincr = .1 while x < xmax: # Here is a block of code :

Download Presentation

sample1.py

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Python Programming TechniquesEliot FeibushZach Kaplan Bum Shik KimPrinceton Plasma Physics LaboratoryPICSciEPrinceton Institute for Computational Science and Engineering

  2. sample1.py x = 0. xmax = 2. xincr = .1 while x < xmax: # Here is a block of code : y = x * x print x, y x += xincr

  3. sample2.py s = “shrubbery” print s print type(s) print len(s)

  4. Example No variable declaration. No memory allocation. No compiling, no .o or .obj files No linking. No kidding - Just run.

  5. python Runs your program python sample1.py sample1.py source code is run directly instead of compile, link, run No .obj nor .o files of compiled code No .exe nor a.out of executable code

  6. Interpreter Arithmetic expressions Variables Strings Lists import math

  7. Try out the interpreter $ python >>> 2+3 5 >>> a = 5.1 >>> b = 6.2 >>> print a*b 31.62

  8. Mac Magnifying glass: term $ python or $ idle _______________________________________ Windows (old school) Start Menu Search: cmd (opens a DOS window) \python26\python.exe Python 2.7 IDLE (Python GUI)

  9. idle IDE Color-coded syntax statement completion debugger Written in Python with tkinter GUI module.

  10. idle – Integrated Development Environment

  11. Variables Case sensitive Start with a letter, not a number Long names OK

  12. Types and Operators int # scalar variable, holds a single value float long complex a = (3 + 4j) # type(a) + - * / % // ** # Arithmetic operators += # Assignment operators -= *= /= < <= > >= == != # Comparison operators + # has magic overload abilities!

  13. Casts int() long() float() hex() # string representation oct() # string representation str() # for printing numbers + strings

  14. Built-in Constants True <type ‘bool’> False <type ‘bool’> None <type ‘NoneType’>

  15. help() dir() type() >>> help() # interpretor help> keywords # math, sys, os etc. help> modules # works in 2.7 on nobel help> topics # USE UPPER CASE

  16. Indenting Counts! Indent 4 spaces or a tab : at end of line indicates start of code block requires next line to be indented Code block ends with an outdent Code runs but not as desired – check your indents

  17. Program Loops Conditionals, Control Functions

  18. Control if else elif while break continue and or not Keywords >>> help() help > keywords

  19. idle: File  New Window Run  Run Module

  20. Mac Magnifying glass: term cd Desktop cd PythonTools TextEdit, vi, emacs, nano, Word (plain text) python code.py

  21. Windows Edit your source code with Notepad OR Right click on file Edit with IDLE brings up 2 windows: Python Shell – text output Editor Run  Run Module runs your program

  22. Windows – Old School Start menu Search: cmd Opens a DOS window > notepad > \Python26\python.exe code.py

  23. Programming Exercise Write a python program that converts degrees to radians for: 0, 10, 20, 30, ... 180 degrees edit deg.py python deg.py radians = degrees * pi / 180. print radians, degrees

  24. Comments in line text after # is ignored # can be in any column Text within triple quotes “”” This is a multi-line comment that will be compiled to a string but will not execute anything. It is code so it must conform to indenting ”””

  25. Strings Sequence of characters such as s = “abcdefg” Indexed with [ ] starting at 0. s[ -1 ] refers to last character in string. Negative indexing starts at last character. Use s[p:q] for string slicing. s[3:] evaluated as “defg” s[:3] evaluated as “abc” s[1:-2] evaluated as “bcde”

  26. String Concatenation first = ‘John’ last = ‘Cleese’ full = first + “ “ + last sp = “ “ full = first + sp + last

  27. + Operator is Operand “Aware” >>> “George” + “Washington” # concatenate >>> 3 + 5 # addition >>> 3 + “George” # unsupported type >>> “George” + 3 # cannot concatenate

  28. The Immutable String Can’t replace characters in a string. s = “abcd” s[1] = “g”Object does not support item assignment s = “agcd” # re-assign entire string

  29. Automatic Memory Managment malloc() realloc() free() char name[32] name = “as long as you want”

  30. Printing _ = “ “ # string variable named _ print “hello” + _ + “there” ___ = “ “ # will print 3 spaces pi = 3.14159 print ‘The answer is ‘ + str(pi) # cast float to string to avoid type() error

  31. Conditionals a = 3 if a > 0: print “a is positive” elifa < 0: print “a is negative” else: print “a = 0”

  32. String Exercise Degrees to radians: Print column titles Right align degree values Limit radians to 7 characters Reminder: len(s)

  33. str Under the Hood str - is a Class! Not just a memory area of characters Object oriented programming Encapsulated data and methods Use the dot . to address methods and data a = “hello” a.upper() # returns “HELLO” type(a) dir(str) help(str) hidden methods start with __ >>> help() help> topics help> STRINGMETHODS

  34. Math module import math dir(math) math.sqrt(x) math.sin(x) math.cos(x) from math import * dir() sqrt(x) from math import pi dir() print pi

  35. Keywords Include import from as reload() reload – debugging your own module from the interpreter

  36. import math Exercise Degrees to radians and now cosine: Use math.pi for defined constant Use math.cos(radian) to compute cosine Print cosine in 3rd column Align cosine to decimal point (Do not truncate the cosine)

  37. import import math # knows where to find it import sys sys.path.append(“/u/efeibush/spline”) import cubic.py # import your own code

  38. Collections - formerly known as Arrays List [ ] # ordered sequence of stuff tuple ( ) # n-tuple, immutable Dictionary { } # key – value pairs

  39. Lists [ ] Python list is like an array in C Indexed from [0] Last index is length – 1 Class object with its own methods, e.g. .append() .sort() # provides min, max Magic slice operator : Magic iter() function

  40. Declare a List x = [14, 23, 34, 42, 50, 59] x.append(66)# works in place, no return Identify the sequence? x.append(“Spring St”, “Canal St”) x = [] # can append to empty list x = list()

  41. List methods append() extend() insert() remove() sort()# in place, does not return a new list reverse()# in place index() count() cList = aList + bList# concatenate lists

  42. range() Function Returns a list Returns list of integers, up to, but not including stop. range() is a built-in function: dir(__builtins__) range(stop) # assumes start=0 and incr=1 range(start, stop) # assumes incr=1 range(start, stop, incr)

  43. Looping with range for in Keywords for i in range(10):

  44. List Techniques d = range(4) # [0, 1, 2, 3] d = [0] * 4# [0, 0, 0, 0] d = [ -1 for x in range(4) ] # [-1, -1, -1, -1] List Comprehension

  45. Lists Exercise Degrees to radians, cosines, and now lists: Store a list of radians and a list of cosines Print the lists Use a range() loop instead of while

  46. List of Lists d = [ [0]*4 for y in range(3) ] [ [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0] ] d[2][0] = 5 [ [0, 0, 0, 0], [0, 0, 0, 0], [5, 0, 0, 0] ]

  47. del keyword del a[3]# deletes element from list del a[2:4]# deletes element 2 and 3 # list slicing del a# deletes entire list variable

  48. Write a Text File f = open("myfile.txt", "w") # open is a built-in function a = 1 b = 2 f.write("Here is line " + str(a) + "\n"); f.write("Next is line " + str(b) + "\n"); f.close() # .write() and .close() are file object methods

  49. Read a Text File gFile = open("myfile.txt”, “r”) for j in gFile: # python magic: text file iterates on lines print j # print each line gFile.close() see readsplit.py str.split() .split() method parses a line of text into list of words

  50. Command Line Arguments import sys print sys.argv sys.argv is a list sys.argv[0] has the name of the python file Subsequent locations have command line args >>> help(sys)

More Related