1 / 17

An Introduction to Python – Part IV

An Introduction to Python – Part IV. Dr. Nancy Warter-Perez. Overview. Creating 2-D Lists (already covered) Scopes Modules Doc Strings Debugging Project Development Time. To create a 2-D list L, with C columns and R rows initialized to 0: L = [[]] #empty 2-Dlist

manasa
Télécharger la présentation

An Introduction to Python – Part IV

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. An Introduction to Python – Part IV Dr. Nancy Warter-Perez

  2. Overview • Creating 2-D Lists (already covered) • Scopes • Modules • Doc Strings • Debugging • Project Development Time Introduction to Python – Part IV

  3. To create a 2-D list L, with C columns and R rows initialized to 0: L = [[]] #empty 2-Dlist L = [[0 for col in range(C)] for row in range(R)] To create a 2-D list initialized to 0 based on the length of strings c and r: L = [[0 for col in c] for row in r] To assign the value 5 to the element at the 2nd row and 3rd column of L L[2][3] = 5 Creating 2-D Lists Introduction to Python – Part IV

  4. Mutable and Immutable Objects • Immutable objects can not be changed in place. They must be reassigned. • Immutable objects: simple variables, tuples, strings • Ex: >>>T = (1,2,3) >>>T [2] = 5 # error! >>>T = T[0:2] + (5,) # (1,2,5) • Note: there are no constant variables in python Introduction to Python – Part IV

  5. Mutable objects • Mutable objects such as lists and dictionaries can be changed in place • Ex: >>> L = [1, 2, 3] >>> L[2] = 88 # [1,2,88] >>> D = {‘a’:1, ‘b’:2} >>> D[‘c’] = 3 # {‘a’:1,’b’:2,’c’:3} Introduction to Python – Part IV

  6. Functions are passed by assignment –Call by value or call by reference? • Immutable objects are similar to call by value. • Call by value will pass a copy of a variable a the parameter and thus, will not change the variable • Example: def fn(x): x = x + 1 y = 5 fn(y) print y --- prints 5 Introduction to Python – Part IV

  7. Functions are passed by assignment –Call by value or call by reference? • Mutable objects are similar to call by reference • Call by reference – will pass the location of the parameter and thus, will change the parameter • Example: def fn(x): x[1] = 77 y = [1, 2, 3] fn(y) print y --- prints [1, 77, 3] Introduction to Python – Part IV

  8. Scopes • Scopes divine the “visibility” of a variable • Variables defined outside of a function are visible to all of the functions within a module (file) • Variables defined within a function are local to that function • To make a variable that is defined within a function global, use the global keyword Ex 2: x = 5 def fnc(): global x x = 2 print x, fnc() print x >>> 2 2 Ex 1: x = 5 def fnc(): x = 2 print x, fnc() print x >>> 2 5 Introduction to Python – Part IV

  9. Modules • Why use? • Code reuse • System namespace partitioning (avoid name clashes) • Implementing shared services or data • How to structure a Program • One top-level file • Main control flow of program • Zero or more supplemental files known as modules • Libraries of tools Introduction to Python – Part IV

  10. Modules - Import • Import – used to gain access to tools in modules Ex: contents of file b.py def spam(text): print text, 'spam' contents of file a.py import b b.spam('gumby') Introduction to Python – Part IV

  11. Contents of aa.py y = 5 def x(): global y y = y + 1 def z(): global y y = y + 1 return y Contents of bb.py import aa aa.x() print aa.z() print aa.y #ref global var Output after running bb: 7 7 Using Global Variables with Modules Introduction to Python – Part IV

  12. Import happens only once! • Imports load and run a module’s code only the first time • Later imports use the already loaded module object • So, if you make changes to a module that you’ve already imported, make sure to reload the module in the interactive window Ex: After making changes to module aa (previous slide) >>> reload (aa) #reload module aa Introduction to Python – Part IV

  13. #comments In-file documentation The dir function Lists of attributes available on objects Docstrings:__doc__ In-file documentation attached to objects Python Documentation Sources Introduction to Python – Part IV

  14. Dir and DocString Example Ex: b.py # Internal comment """Module Docstring comment """ def fn(): """Function Docstring comment """ >>> import b >>> dir(b) ['__builtins__', '__doc__', '__file__', '__name__', 'fn'] >>> print b.__doc__ Module Docstring comment >>> print b.fn.__doc__ Function Doctring comment Introduction to Python – Part IV

  15. Debugging • Two types of bugs • Syntax errors – “easy” to find • Logical errors – harder to find • Can be a problem in your algorithm • Can be a problem in your coding • Debugging a program is like solving a puzzle • Must first understand what your program is supposed to do • Logically trace what is happening in your program • What do you expect to happen versus what happened • Follow the flow of data • Follow the flow of control Introduction to Python – Part IV

  16. Debugging Tools/Methods • Can use print statements to “manually” debug • Can use debugger in PythonWin • In Class Example Introduction to Python – Part IV

  17. Workshop • Separate your LCS functions into a different module • Import the module and call the functions from within your while loop (continually prompting the user if they want to continue) • Trace through your program • Use print statements to view the score and trace back matrices as they are formed • Using the debugger to view the score and trace back matrices Introduction to Python – Part IV

More Related