Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Introduction to Python – Part IV Dr. Nancy Warter-Perez.

Similar presentations


Presentation on theme: "An Introduction to Python – Part IV Dr. Nancy Warter-Perez."— Presentation transcript:

1 An Introduction to Python – Part IV Dr. Nancy Warter-Perez

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

3 Introduction to Python – Part IV3 Creating 2-D Lists 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 2 nd row and 3 rd column of L L[2][3] = 5

4 Introduction to Python – Part IV4 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

5 Introduction to Python – Part IV5 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}

6 Introduction to Python – Part IV6 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

7 Introduction to Python – Part IV7 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]

8 Introduction to Python – Part IV8 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 1: x = 5 def fnc(): x = 2 print x, fnc() print x >>> 2 5 Ex 2: x = 5 def fnc(): global x x = 2 print x, fnc() print x >>> 2 2

9 Introduction to Python – Part IV9 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

10 Introduction to Python – Part IV10 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')

11 Introduction to Python – Part IV11 Using Global Variables with Modules 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

12 Introduction to Python – Part IV12 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

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

14 Introduction to Python – Part IV14 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

15 Introduction to Python – Part IV15 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

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

17 Introduction to Python – Part IV17 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


Download ppt "An Introduction to Python – Part IV Dr. Nancy Warter-Perez."

Similar presentations


Ads by Google