CSE : Python Programming. Homework 5 and Projects. Announcements. Course project: Overview. Course Project: Grading criteria

Size: px
Start display at page:

Download "CSE : Python Programming. Homework 5 and Projects. Announcements. Course project: Overview. Course Project: Grading criteria"

Transcription

1 CSE : Python Programming Lecture 5: Course project and Exceptions February 12, 2007 Announcements Still working on grading Homeworks 3 and 4 (and 2 ) Homework 5 will be out by tomorrow morning I want to finish with Homework 4 before I hand out another coding assignment It's time to start thinking about projects 2 Course project: Overview Everyone here comes from different backgrounds and is interested in different things Homework 5 and Projects I'd like everyone to try their hand at working on a program of non-homework size Since there's no way a one-size-fits-all project will work, everyone will propose to me a project Homework 5: Writing your project proposal 4 Course project: Hard requirements Group size: no more than 3 students per/group The more students in the group, the more ambitious the project will need to be You will have to convince me the project is not too trivial for you nor too ambitious The project should be programming based, the major portion of which should be in Python Course Project: Grading criteria 60% Delivering what you proposed Program should work as advertised Bugs should be non-existent / "minimal" Code should be reasonably structured / written 40% Reasonable documentation Enough to understand and use your program without having read the source code 5 6

2 Course project: Grading mechanics I'll score the project out of 100 points Everyone in the group will get the same grade Recall: The project counts for 40% of your course grade Course project: Planning Time: 3 5 hours per week I may continue to give out short homeworks A couple of weeks before the end of classes: Plan on a short meeting with me to give a status report Last week of classes: Plan on a short meeting with me to go over your code and project I expect you to spread your work out through the term, and I don't want any unpleasant surprises at the end 7 8 Course project: Warning You're responsible for giving me reasonable notice if your project is going far more slowly than expected Lecture Lecture will go on, even as you work on the projects If you find yourself spending too much time on this project, you have some options: Bite the bullet (don't blame me then for problems) Talk to me (recommended) 9 10 Handling errors: Option #1 Exceptions (Tutorial, Section 8) (Kevin & Kell, ) 12

3 Handling errors: Option #2 Use special return values to indicate an error None Negative integers Debatable example: read() returning an empty string Advantages: Simple to implement and document Disadvantages: Requires an "invalid" value for a function to return Ad-hoc Propagating an error is not straightforward 13 Handling errors: Option #3 Use exceptions Exceptions are a form of non-local control flow An exception happens at one point in your code Control goes to some other point in your code Relationship between the points determined by what's happening at run-time Transfer control from where the error happened to some place that can actually deal with the error 14 When to look for and handle errors User input Users always make mistakes Absolutely pointless to tell users "don't do foo" Data from external sources Not really that different from user input Generally, any interaction with an external resource Errors not worth handling Random processor faults Not feasible to run all computations twice Out of memory Difficult to recover from Generally, anything rare and difficult to recover from The above example are rare things A non-existent file is, by comparison, common Network resources being down is also common What to do on an error Let your program die Sometimes there is nothing anyone can do But still provide a helpful message Deal with it yourself You did the thing which caused the error Caller isn't expecting anything to go wrong Raising (throwing) an exception >>> raise IndexError("silly message") IndexError: silly message Signal that someone else needs to handle the error You don't know how to proceed Caller should be expecting something to go wrong Provide as much data about the error as you can 17 18

4 Raising (throwing) an exception >>> raise IndexError("silly message") IndexError: silly message Raising (throwing) an exception >>> raise IndexError("silly message") IndexError: silly message Syntax: raise some_instance If the exception isn't "caught", it's printed out as a string Raising (throwing) an exception >>> raise IndexError("silly message") IndexError: silly message An exception backtrace is also printed out. This can be used to determine what was going on when the exception was raised. baz.py def : % python baz.py File "baz.py", line 4, in <module> File "baz.py", line 2, in foo KeyError: 'A silly example.' baz.py baz.py def : def : % python baz.py File "baz.py", line 4, in <module> File "baz.py", line 2, in foo KeyError: 'A silly example.' % python baz.py File "baz.py", line 4, in <module> File "baz.py", line 2, in foo KeyError: 'A silly example.' exception backtrace 23 The last item in the trace lists exactly where the exception was raised. 24

5 baz.py def : baz.py def : % python baz.py File "baz.py", line 4, in <module> File "baz.py", line 2, in foo KeyError: 'A silly example.' % python baz.py File "baz.py", line 4, in <module> File "baz.py", line 2, in foo KeyError: 'A silly example.' The other items in the trace tell us what we were executing at the time. 25 Reading the backtrace top to bottom, we can get an idea of exactly how we reached the line that raised the exception. 26 Built-in exceptions The exceptions module defines all built-in exceptions There is no need to import this module explicitly See Section 2.3 of the library reference for the full list Defining your own exceptions Define a class which derives from the built-in Exception class, either directly or indirectly Document it try and raise to your heart's content BaseException +-- SystemExit +-- KeyboardInterrupt +-- Exception +-- GeneratorExit +-- StopIteration +-- StandardError +-- ArithmeticError +-- FloatingPointError +-- OverflowError +-- ZeroDivisionError Handling exceptions Basic exception handling File "<stdin>", line 2, in divide ZeroDivisionError: integer division or modulo by zero try: except: print "Something went wrong." Something went wrong

6 Basic exception handling try: except: print "Something went wrong." Something went wrong. Basic exception handling try: except: print "Something went wrong." Something went wrong. "try except " statements are used to catch (i.e., handle) exceptions if the code in this try block raises an exception, then Basic exception handling try: except: print "Something went wrong." Something went wrong. Basic exception handling try: except: print "Something went wrong." Something went wrong. then execute the code in this except block no exception backtrace because we successfully caught the exception "try except " statements These statements come in many forms There can be multiple except blocks Each one names the type of instances it catches Only the last one may omit the type There can be an else block, which is executed when the try block finishes executing normally "Normal" excludes return, break, and continue, as well the case where an exception is raised try: result = x / int(y) except ValueError, inst: print "Oops, y wasn't an integer." print inst except ZeroDivisionError, inst: print "Caught and reraising division by zero." raise >>> divide(2,"hello") Oops, y wasn't an integer. invalid literal for int() with base 10: 'hello' There can be a finally block, which is executed no matter what happens 35 36

7 try: result = x / int(y) except ValueError, inst: print "Oops, y wasn't an integer." print inst except ZeroDivisionError, inst: print "Caught and reraising division by zero." raise >>> divide(2,"hello") Oops, y wasn't an integer. invalid literal for int() with base 10: 'hello' try: result = x / int(y) except ValueError, inst: print "Oops, y wasn't an integer." print inst except ZeroDivisionError, inst: print "Caught and reraising division by zero." raise >>> divide(2,"hello") Oops, y wasn't an integer. invalid literal for int() with base 10: 'hello' Syntax: except class_name, var_name inst here will be an instance of ValueError try: result = x / int(y) except ValueError, inst: print "Oops, y wasn't an integer." print inst except ZeroDivisionError, inst: print "Caught and reraising division by zero." raise Caught and reraising division by zero. File "<stdin>", line 3, in divide ZeroDivisionError: integer division or modulo by zero 39 try: result = x / int(y) except ValueError, inst: print "Oops, y wasn't an integer." print inst except ZeroDivisionError, inst: print "Caught and reraising division by zero." raise Caught and reraising division by zero. File "<stdin>", line 3, in divide ZeroDivisionError: integer division or modulo by zero if there is a pending exception, raise by itself will throw it again 40 try: result = x / int(y) except Exception: print "Oops." except ZeroDivisionError, inst: print "Caught division by zero." Oops. try: result = x / int(y) except Exception: print "Oops." except ZeroDivisionError, inst: print "Caught division by zero." Oops. 41 You don't have to give a name to the instance. 42

8 try: result = x / int(y) except Exception: print "Oops." except ZeroDivisionError, inst: print "Caught division by zero." Oops. try: result = x / int(y) except ValueError: print "Didn't get an integer." except: print "Caught something." Caught something. With multiple except blocks, only the first one that applies is executed try: result = x / int(y) except ValueError: print "Didn't get an integer." except: print "Caught something." Caught something. try: result = x / int(y) except ValueError: print "Didn't get an integer." except: print "Caught something." Caught something. Only the final except is allowed to leave off the type of the exception. In this case, it catches any exception at all. 45 This is dangerous! It's very easy to hide significant programming errors this way. 46 try: result = x / int(y) except ValueError: raise ZeroDivisionError() except: print "Caught something." >>> divide(2,"hello") File "<stdin>", line 5, in divide ZeroDivisionError try: result = x / int(y) except ValueError: raise ZeroDivisionError() except: print "Caught something." >>> divide(2,"hello") File "<stdin>", line 5, in divide ZeroDivisionError 47 Exceptions raised in an except block are not handled by other except blocks in the same "try except " statement. 48

9 Suppose an exception is raised somewhere. If that point is not surrounded by an appropriate "try except ", we start looking up the call-stack We execute the first handler that applies, if any. try: return x / int(y) except ValueError: print "Value error!" try: foo(x, y) except ZeroDivisionError: print "Div by zero!" >>> bar(2, "hello") Value error! try: return x / int(y) except ValueError: print "Value error!" try: foo(x, y) except ZeroDivisionError: print "Div by zero!" >>> bar(2, "hello") Value error! try: return x / int(y) except ValueError: print "Value error!" try: foo(x, y) except ZeroDivisionError: print "Div by zero!" >>> bar(2, 0) Div by zero! The ValueError here is handled by the immediately enclosing "try except " statement try: return x / int(y) except ValueError: print "Value error!" try: foo(x, y) except ZeroDivisionError: print "Div by zero!" >>> bar(2, 0) Div by zero! try: return x / int(y) except ValueError: print "Value error!" try: foo(x, y) except ZeroDivisionError: print "Div by zero!" >>> bar(2, 0) Div by zero! Nothing in foo handles ZeroDivisionError, so see if whoever called foo handles it. Now it looks like foo(x, y) raised ZeroDivisionError. Lucky us, bar handles this

10 try: return x / int(y) except ValueError: print "Value error!" try: foo(x, y) except ZeroDivisionError: print "Div by zero!" >>> bar("bogus", 3) File "<stdin>", line 2, in bar File "<stdin>", line 2, in foo TypeError: unsupported operand type(s) for /: 'str' and 'int' try: return x / int(y) except ValueError: print "Value error!" try: foo(x, y) except ZeroDivisionError: print "Div by zero!" >>> bar("bogus", 3) File "<stdin>", line 2, in bar File "<stdin>", line 2, in foo TypeError: unsupported operand type(s) for /: 'str' and 'int' 55 No one handles TypeError, so the toploop prints out the backtrace. 56 else and finally clauses try: except ZeroDivisionError: print "division by zero!" else: print "result is", result finally: print "executing finally clause" >>> divide(2, 1) result is 2 executing finally clause else and finally clauses try: except ZeroDivisionError: print "division by zero!" else: print "result is", result finally: print "executing finally clause" >>> divide(2, 1) result is 2 executing finally clause 57 Executed whenever we leave the try block "normally". 58 else and finally clauses try: except ZeroDivisionError: print "division by zero!" else: print "result is", result finally: print "executing finally clause" >>> divide(2, 1) result is 2 executing finally clause else and finally clauses try: except ZeroDivisionError: print "division by zero!" else: print "result is", result finally: print "executing finally clause" >>> divide(2, 0) division by zero! executing finally clause Executed no matter what happens in the try, except, and else clauses

11 else and finally clauses try: except ZeroDivisionError: print "division by zero!" else: print "result is", result finally: print "executing finally clause" >>> divide("2", "1") executing finally clause File "<stdin>", line 1, in? File "<stdin>", line 3, in divide TypeError: unsupported operand type(s) for /: 'str' and 'str' Next time??? If you drop me a short by Friday with what your project might be on, I might try to cover things which many people would find helpful 61 62

Outline. the try-except statement the try-finally statement. exceptions are classes raising exceptions defining exceptions

Outline. the try-except statement the try-finally statement. exceptions are classes raising exceptions defining exceptions Outline 1 Exception Handling the try-except statement the try-finally statement 2 Python s Exception Hierarchy exceptions are classes raising exceptions defining exceptions 3 Anytime Algorithms estimating

More information

Python Essential Reference, Second Edition - Chapter 5: Control Flow Page 1 of 8

Python Essential Reference, Second Edition - Chapter 5: Control Flow Page 1 of 8 Python Essential Reference, Second Edition - Chapter 5: Control Flow Page 1 of 8 Chapter 5: Control Flow This chapter describes related to the control flow of a program. Topics include conditionals, loops,

More information

Chapter 9: Dealing with Errors

Chapter 9: Dealing with Errors Chapter 9: Dealing with Errors What we will learn: How to identify errors Categorising different types of error How to fix different errors Example of errors What you need to know before: Writing simple

More information

Exceptions CS GMU

Exceptions CS GMU Exceptions CS 112 @ GMU Exceptions When an unrecoverable action takes place, normal control flow is abandoned: an exception value crashes outwards until caught. various types of exception values can be

More information

Lecture 21. Programming with Subclasses

Lecture 21. Programming with Subclasses Lecture 21 Programming with Subclasses Announcements for Today Reading Today: See reading online Tuesday: Chapter 7 Prelim, Nov 10 th 7:30-9:00 Material up to Today Review has been posted Recursion + Loops

More information

CSE : Python Programming

CSE : Python Programming CSE 399-004: Python Programming Lecture 2: Data, Classes, and Modules January 22, 2007 http://www.seas.upenn.edu/~cse39904/ Administrative things Teaching assistant Brian Summa (bsumma @ seas.upenn.edu)

More information

Exceptions & error handling in Python 2 and Python 3

Exceptions & error handling in Python 2 and Python 3 Exceptions & error handling in Python 2 and Python 3 http://www.aleax.it/pycon16_eh.pdf 2016 Google -- aleax@google.com 1 Python in a Nutshell 3rd ed Chapter 5 of Early Release e-book version 50% off:

More information

Class extension and. Exception handling. Genome 559

Class extension and. Exception handling. Genome 559 Class extension and Exception handling Genome 559 Review - classes 1) Class constructors - class MyClass: def init (self, arg1, arg2): self.var1 = arg1 self.var2 = arg2 foo = MyClass('student', 'teacher')

More information

Lecture 21. Programming with Subclasses

Lecture 21. Programming with Subclasses Lecture 21 Programming with Subclasses Announcements for This Lecture Assignments Prelim 2 A4 is now graded Mean: 90.4 Median: 93 Std Dev: 10.6 Mean: 9 hrs Median: 8 hrs Std Dev: 4.1 hrs A5 is also graded

More information

Exception Handling. Genome 559

Exception Handling. Genome 559 Exception Handling Genome 559 Review - classes Use your own classes to: - package together related data - conceptually organize your code - force a user to conform to your expectations Class constructor:

More information

Lecture 18. Classes and Types

Lecture 18. Classes and Types Lecture 18 Classes and Types Announcements for Today Reading Today: See reading online Tuesday: See reading online Prelim, Nov 6 th 7:30-9:30 Material up to next class Review posted next week Recursion

More information

Lecture 21. Programming with Subclasses

Lecture 21. Programming with Subclasses Lecture 21 Programming with Subclasses Announcements for Today Reading Today: See reading online Tuesday: Chapter 7 Prelim, Nov 9 th 7:30-9:00 Material up to Today Review has been posted Recursion + Loops

More information

Review 3. Exceptions and Try-Except Blocks

Review 3. Exceptions and Try-Except Blocks Review 3 Exceptions and Try-Except Blocks What Might You Be Asked Create your own Exception class Write code to throw an exception Follow the path of a thrown exception Requires understanding of try-except

More information

Class extension and. Exception handling. Genome 559

Class extension and. Exception handling. Genome 559 Class extension and Exception handling Genome 559 Review - classes 1) Class constructors - class myclass: def init (self, arg1, arg2): self.var1 = arg1 self.var2 = arg2 foo = myclass('student', 'teacher')

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Object Oriented Programming Harry Smith University of Pennsylvania February 15, 2016 Harry Smith (University of Pennsylvania) CIS 192 Lecture 5 February 15, 2016 1 / 26 Outline

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Generators Exceptions and IO Eric Kutschera University of Pennsylvania February 13, 2015 Eric Kutschera (University of Pennsylvania) CIS 192 February 13, 2015 1 / 24 Outline 1

More information

CSC 148 Lecture 3. Dynamic Typing, Scoping, and Namespaces. Recursion

CSC 148 Lecture 3. Dynamic Typing, Scoping, and Namespaces. Recursion CSC 148 Lecture 3 Dynamic Typing, Scoping, and Namespaces Recursion Announcements Python Ramp Up Session Monday June 1st, 1 5pm. BA3195 This will be a more detailed introduction to the Python language

More information

CS 11 python track: lecture 2

CS 11 python track: lecture 2 CS 11 python track: lecture 2 Today: Odds and ends Introduction to object-oriented programming Exception handling Odds and ends List slice notation Multiline strings Docstrings List slices (1) a = [1,

More information

What is an Exception? Exception Handling. What is an Exception? What is an Exception? test = [1,2,3] test[3]

What is an Exception? Exception Handling. What is an Exception? What is an Exception? test = [1,2,3] test[3] What is an Exception? Exception Handling BBM 101 - Introduction to Programming I Hacettepe University Fall 2016 Fuat Akal, Aykut Erdem, Erkut Erdem An exception is an abnormal condition (and thus rare)

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Iterators, Generators, IO, and Exceptions Harry Smith University of Pennsylvania February 15, 2018 Harry Smith (University of Pennsylvania) CIS 192 Lecture 5 February 15, 2018

More information

CS Lecture 26: Grab Bag. Announcements

CS Lecture 26: Grab Bag. Announcements CS 1110 Lecture 26: Grab Bag Announcements The End is Nigh! 1. Next (last) lecture will be recap and final exam review 2. A5 due Wednesday night 3. Final exam 7pm Thursday May 15 in Barton Hall (East section)

More information

Errors. And How to Handle Them

Errors. And How to Handle Them Errors And How to Handle Them 1 GIGO There is a saying in computer science: Garbage in, garbage out. Is this true, or is it just an excuse for bad programming? Answer: Both. Here s what you want: Can you

More information

One of my favorite Python topics to talk about is error handling

One of my favorite Python topics to talk about is error handling DAVID BEAZLEY David Beazley is an open source developer and author of the Python Essential Reference (4th Edition, Addison-Wesley, 2009). He is also known as the creator of Swig (http://www.swig.org) and

More information

MITOCW watch?v=9h6muyzjms0

MITOCW watch?v=9h6muyzjms0 MITOCW watch?v=9h6muyzjms0 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Iterators, Generators, Exceptions & IO Raymond Yin University of Pennsylvania September 28, 2016 Raymond Yin (University of Pennsylvania) CIS 192 September 28, 2016 1 / 26 Outline

More information

DEBUGGING TIPS. 1 Introduction COMPUTER SCIENCE 61A

DEBUGGING TIPS. 1 Introduction COMPUTER SCIENCE 61A DEBUGGING TIPS COMPUTER SCIENCE 61A 1 Introduction Every time a function is called, Python creates what is called a stack frame for that specific function to hold local variables and other information.

More information

Introduction to: Computers & Programming: Exception Handling

Introduction to: Computers & Programming: Exception Handling Introduction to: Computers & Programming: Adam Meyers New York University Summary What kind of error raises an exception? Preventing errors How to raise an exception on purpose How to catch an exception

More information

Lecture #12: Quick: Exceptions and SQL

Lecture #12: Quick: Exceptions and SQL UC Berkeley EECS Adj. Assistant Prof. Dr. Gerald Friedland Computational Structures in Data Science Lecture #12: Quick: Exceptions and SQL Administrivia Open Project: Starts Monday! Creative data task

More information

CS Programming Languages: Python

CS Programming Languages: Python CS 3101-1 - Programming Languages: Python Lecture 5: Exceptions / Daniel Bauer (bauer@cs.columbia.edu) October 08 2014 Daniel Bauer CS3101-1 Python - 05 - Exceptions / 1/35 Contents Exceptions Daniel Bauer

More information

COMP1730/COMP6730 Programming for Scientists. Exceptions and exception handling

COMP1730/COMP6730 Programming for Scientists. Exceptions and exception handling COMP1730/COMP6730 Programming for Scientists Exceptions and exception handling Lecture outline * Errors * The exception mechanism in python * Causing exceptions (assert and raise) * Handling exceptions

More information

Python for Informatics

Python for Informatics Python for Informatics Exploring Information Version 0.0.6 Charles Severance Chapter 3 Conditional execution 3.1 Boolean expressions A boolean expression is an expression that is either true or false.

More information

1 Classes. 2 Exceptions. 3 Using Other Code. 4 Problems. Sandeep Sadanandan (TU, Munich) Python For Fine Programmers May 16, / 19

1 Classes. 2 Exceptions. 3 Using Other Code. 4 Problems. Sandeep Sadanandan (TU, Munich) Python For Fine Programmers May 16, / 19 1 Classes 2 Exceptions 3 Using Other Code 4 Problems Sandeep Sadanandan (TU, Munich) Python For Fine Programmers May 16, 2009 1 / 19 Start with an Example Python is object oriented Everything is an object

More information

Exceptions. Exceptions. Can have multiple except suites and/or one unnamed except suite

Exceptions. Exceptions. Can have multiple except suites and/or one unnamed except suite Exceptions An exception is an error which occurs while a program is running. try-except statement: o monitor code that could produce an error o provide error-specific recovery code suite to handle specific

More information

Introduction to python

Introduction to python Introduction to python 13 Files Rossano Venturini rossano.venturini@unipi.it File System A computer s file system consists of a tree-like structured organization of directories and files directory file

More information

TESTING, DEBUGGING, EXCEPTIONS, ASSERTIONS

TESTING, DEBUGGING, EXCEPTIONS, ASSERTIONS TESTING, DEBUGGING, EXCEPTIONS, ASSERTIONS (download slides and.py files and follow along!) 6.0001 LECTURE 7 6.0001 LECTURE 7 1 WE AIM FOR HIGH QUALITY AN ANALOGY WITH SOUP You are making soup but bugs

More information

Decision structures. A more complex decision structure is an if-else-statement: if <condition>: <body1> else: <body2>

Decision structures. A more complex decision structure is an if-else-statement: if <condition>: <body1> else: <body2> Decision structures Read: Chapter 7, Sections 8.1-8.2 from Chapter 8 from textbook Decisions about what to do next in a program are based on logical conditions: these are conditions that evaluate to either

More information

Lists, loops and decisions

Lists, loops and decisions Caltech/LEAD Summer 2012 Computer Science Lecture 4: July 11, 2012 Lists, loops and decisions Lists Today Looping with the for statement Making decisions with the if statement Lists A list is a sequence

More information

Exception Handling and Debugging

Exception Handling and Debugging Exception Handling and Debugging Any good program makes use of a language s exception handling mechanisms. There is no better way to frustrate an end-user then by having them run into an issue with your

More information

CMSC 201 Fall 2016 Lab 09 Advanced Debugging

CMSC 201 Fall 2016 Lab 09 Advanced Debugging CMSC 201 Fall 2016 Lab 09 Advanced Debugging Assignment: Lab 09 Advanced Debugging Due Date: During discussion Value: 10 points Part 1: Introduction to Errors Throughout this semester, we have been working

More information

Exceptions & a Taste of Declarative Programming in SQL

Exceptions & a Taste of Declarative Programming in SQL Exceptions & a Taste of Declarative Programming in SQL David E. Culler CS8 Computational Structures in Data Science http://inst.eecs.berkeley.edu/~cs88 Lecture 12 April 18, 2016 Computational Concepts

More information

1 Lecture 6: Conditionals and Exceptions

1 Lecture 6: Conditionals and Exceptions L6 June 16, 2017 1 Lecture 6: Conditionals and Exceptions CSCI 1360E: Foundations for Informatics and Analytics 1.1 Overview and Objectives In this lecture, we ll go over how to make "decisions" over the

More information

MEIN 50010: Python Flow Control

MEIN 50010: Python Flow Control : Python Fabian Sievers Higgins Lab, Conway Institute University College Dublin Wednesday, 2017-10-11 Program Overview Program Code Block Statements Expressions Expressions & Statements An expression has

More information

CS 115 Lecture 8. Selection: the if statement. Neil Moore

CS 115 Lecture 8. Selection: the if statement. Neil Moore CS 115 Lecture 8 Selection: the if statement Neil Moore Department of Computer Science University of Kentucky Lexington, Kentucky 40506 neil@cs.uky.edu 24 September 2015 Selection Sometime we want to execute

More information

Python File Modes. Mode Description. Open a file for reading. (default)

Python File Modes. Mode Description. Open a file for reading. (default) UNIT V FILES, MODULES, PACKAGES Files and exception: text files, reading and writing files, format operator; command line arguments, errors and exceptions, handling exceptions, modules, packages; Illustrative

More information

Python for Astronomers. Errors and Exceptions

Python for Astronomers. Errors and Exceptions Python for Astronomers Errors and Exceptions Exercise Create a module textstat that contains the functions openfile(filename, readwrite=false): opens the specified file (readonly or readwrite) and returns

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Recitation 1 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To make

More information

Chapter 5 Errors. Bjarne Stroustrup

Chapter 5 Errors. Bjarne Stroustrup Chapter 5 Errors Bjarne Stroustrup www.stroustrup.com/programming Abstract When we program, we have to deal with errors. Our most basic aim is correctness, but we must deal with incomplete problem specifications,

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Lecture 2 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To make a donation

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 9 Date:

More information

CSc 120. Introduction to Computer Programming II. 07: Excep*ons. Adapted from slides by Dr. Saumya Debray

CSc 120. Introduction to Computer Programming II. 07: Excep*ons. Adapted from slides by Dr. Saumya Debray CSc 120 Introduction to Computer Programming II Adapted from slides by Dr. Saumya Debray 07: Excep*ons EXERCISE Type in the following code: def foo(): n = int(input("enter a number:")) print("n = ", n)

More information

Boot Camp. Dave Eckhardt Bruce Maggs

Boot Camp. Dave Eckhardt Bruce Maggs Boot Camp Dave Eckhardt de0u@andrew.cmu.edu Bruce Maggs bmm@cs.cmu.edu 1 This Is a Hard Class Traditional hazards 410 letter grade one lower than other classes All other classes this semester: one grade

More information

CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics. COMP-202 Unit 1: Introduction

CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics. COMP-202 Unit 1: Introduction CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics COMP-202 Unit 1: Introduction Announcements Did you miss the first lecture? Come talk to me after class. If you want

More information

Final Exam Version A

Final Exam Version A CS112 Spring 2014 Dr. Kinga Dobolyi Final Exam Version A Do not open this exam until you are told. Read these instructions: 1. This is a closed book exam. No calculators, notes, or other aids are allowed.

More information

Lecture 14: Exceptions 10:00 AM, Feb 26, 2018

Lecture 14: Exceptions 10:00 AM, Feb 26, 2018 CS18 Integrated Introduction to Computer Science Fisler, Nelson Lecture 14: Exceptions 10:00 AM, Feb 26, 2018 Contents 1 Exceptions and How They Work 1 1.1 Update to the Banking Example.............................

More information

61A Lecture 2. Friday, August 28, 2015

61A Lecture 2. Friday, August 28, 2015 61A Lecture 2 Friday, August 28, 2015 Names, Assignment, and User-Defined Functions (Demo) Types of Expressions Primitive expressions: 2 add 'hello' Number or Numeral Name String Call expressions: max

More information

Python for C programmers

Python for C programmers Python for C programmers The basics of Python are fairly simple to learn, if you already know how another structured language (like C) works. So we will walk through these basics here. This is only intended

More information

Errors. Lecture 6. Hartmut Kaiser hkaiser/fall_2011/csc1254.html

Errors. Lecture 6. Hartmut Kaiser  hkaiser/fall_2011/csc1254.html Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2011/csc1254.html 2 Abstract When we program, we have to deal with errors. Our most basic aim is correctness, but we must deal with

More information

Lesson 4: Who Goes There?

Lesson 4: Who Goes There? Lesson 4: Who Goes There? In this lesson we will write a program that asks for your name and a password, and prints a secret message if you give the right password. While doing this we will learn: 1. What

More information

MITOCW watch?v=0jljzrnhwoi

MITOCW watch?v=0jljzrnhwoi MITOCW watch?v=0jljzrnhwoi The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

61A LECTURE 17 ORDERS OF GROWTH, EXCEPTIONS. Steven Tang and Eric Tzeng July 23, 2013

61A LECTURE 17 ORDERS OF GROWTH, EXCEPTIONS. Steven Tang and Eric Tzeng July 23, 2013 61A LECTURE 17 ORDERS OF GROWTH, EXCEPTIONS Steven Tang and Eric Tzeng July 23, 2013 Announcements Regrades for project 1 composition scores, due by next Monday See Piazza post for more details Midterm

More information

Interactive use. $ python. >>> print 'Hello, world!' Hello, world! >>> 3 $ Ctrl-D

Interactive use. $ python. >>> print 'Hello, world!' Hello, world! >>> 3 $ Ctrl-D 1/58 Interactive use $ python Python 2.7.5 (default, Mar 9 2014, 22:15:05) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin Type "help", "copyright", "credits" or "license" for more information.

More information

CS 11 Project #6 Due THURSDAY, December 7 th, 11:59pm. Classes and Exceptions Background: Classes allow us to define new types for Python. We can first think of a class as defining a new container instead

More information

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 [talking head] This lecture we study theory design and implementation. Programmers have two roles to play here. In one role, they

More information

Introduction to Computer Programming for Non-Majors

Introduction to Computer Programming for Non-Majors Introduction to Computer Programming for Non-Majors CSC 2301, Fall 2016 Chapter 7 Part 2 Instructor: Long Ma The Department of Computer Science Quick review one-way or simple decision if :

More information

Chapter 5 Errors. Hyunyoung Lee. Based on slides by Bjarne Stroustrup.

Chapter 5 Errors. Hyunyoung Lee. Based on slides by Bjarne Stroustrup. Chapter 5 Errors Hyunyoung Lee Based on slides by Bjarne Stroustrup www.stroustrup.com/programming 1 Abstract When we program, we have to deal with errors. Our most basic aim is correctness, but we must

More information

Interactive use. $ python. >>> print 'Hello, world!' Hello, world! >>> 3 $ Ctrl-D

Interactive use. $ python. >>> print 'Hello, world!' Hello, world! >>> 3 $ Ctrl-D 1/60 Interactive use $ python Python 2.7.5 (default, Mar 9 2014, 22:15:05) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin Type "help", "copyright", "credits" or "license" for more information.

More information

Exceptions in Java

Exceptions in Java Exceptions in Java 3-10-2005 Opening Discussion Do you have any questions about the quiz? What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment?

More information

ECE 364 Software Engineering Tools Lab. Lecture 8 Python: Advanced I

ECE 364 Software Engineering Tools Lab. Lecture 8 Python: Advanced I ECE 364 Software Engineering Tools Lab Lecture 8 Python: Advanced I 1 Python Variables Namespaces and Scope Modules Exceptions Lecture Summary 2 More on Python Variables All variables in Python are actually

More information

61A Lecture 3. Friday, September 5

61A Lecture 3. Friday, September 5 61A Lecture 3 Friday, September 5 Announcements There's plenty of room in live lecture if you want to come (but videos are still better) Please don't make noise outside of the previous lecture! Homework

More information

(f) d={ alchemist :( a, t ), shaman : ( s, n ), wizard : ( w, z )} d[ shaman ][1]

(f) d={ alchemist :( a, t ), shaman : ( s, n ), wizard : ( w, z )} d[ shaman ][1] CSCI1101 Final Exam December 18, 2018 Solutions 1. Determine the value and type of each of the expressions below. If the question has two lines, assume that the statement in the first line is executed,

More information

MITOCW watch?v=flgjisf3l78

MITOCW watch?v=flgjisf3l78 MITOCW watch?v=flgjisf3l78 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To

More information

CS 3 Introduction to Software Engineering. 3: Exceptions

CS 3 Introduction to Software Engineering. 3: Exceptions CS 3 Introduction to Software Engineering 3: Exceptions Questions? 2 Objectives Last Time: Procedural Abstraction This Time: Procedural Abstraction II Focus on Exceptions. Starting Next Time: Data Abstraction

More information

Administration. Exceptions. Leftovers. Agenda. When Things Go Wrong. Handling Errors. CS 99 Summer 2000 Michael Clarkson Lecture 11

Administration. Exceptions. Leftovers. Agenda. When Things Go Wrong. Handling Errors. CS 99 Summer 2000 Michael Clarkson Lecture 11 Administration Exceptions CS 99 Summer 2000 Michael Clarkson Lecture 11 Lab 10 due tomorrow No lab tomorrow Work on final projects Remaining office hours Rick: today 2-3 Michael: Thursday 10-noon, Monday

More information

Announcements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop

Announcements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop Announcements Lab Friday, 1-2:30 and 3-4:30 in 26-152 Boot your laptop and start Forte, if you brought your laptop Create an empty file called Lecture4 and create an empty main() method in a class: 1.00

More information

Text Input and Conditionals

Text Input and Conditionals Text Input and Conditionals Text Input Many programs allow the user to enter information, like a username and password. Python makes taking input from the user seamless with a single line of code: input()

More information

CS 11 python track: lecture 3. n Today: Useful coding idioms

CS 11 python track: lecture 3. n Today: Useful coding idioms CS 11 python track: lecture 3 Today: Useful coding idioms Useful coding idioms "Idiom" Standard ways of accomplishing a common task Using standard idioms won't make your code more correct, but more concise

More information

CSE : Python Programming. Packages (Tutorial, Section 6.4) Announcements. Today. Packages: Concretely. Packages: Overview

CSE : Python Programming. Packages (Tutorial, Section 6.4) Announcements. Today. Packages: Concretely. Packages: Overview Announcements CSE 399-004: Python Programming Lecture 07: Packages, Command-line arguments, and Unit testing February 26, 2007 http://www.seas.upenn.edu/~cse39904/ No homework this week There may be one

More information

COMP 204: Sets, Commenting & Exceptions

COMP 204: Sets, Commenting & Exceptions COMP 204: Sets, Commenting & Exceptions Material from Carlos G. Oliver, Christopher J.F. Cameron October 12, 2018 1/31 Reminder CSUS is holding a midterm review session on Monday, October 15th, from 6-9pm.

More information

COMP1730/COMP6730 Programming for Scientists. Testing and Debugging.

COMP1730/COMP6730 Programming for Scientists. Testing and Debugging. COMP1730/COMP6730 Programming for Scientists Testing and Debugging. Overview * Testing * Debugging * Defensive Programming Overview of testing * There are many different types of testing - load testing,

More information

Lecture 2: SML Basics

Lecture 2: SML Basics 15-150 Lecture 2: SML Basics Lecture by Dan Licata January 19, 2012 I d like to start off by talking about someone named Alfred North Whitehead. With someone named Bertrand Russell, Whitehead wrote Principia

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Recitation 2 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To make

More information

Lecture 5: Implementing Lists, Version 1

Lecture 5: Implementing Lists, Version 1 CS18 Integrated Introduction to Computer Science Fisler, Nelson Lecture 5: Implementing Lists, Version 1 Contents 1 Implementing Lists 1 2 Methods 2 2.1 isempty...........................................

More information

Lecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan

Lecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan Lecture 08-1 Programming in C++ PART 1 By Assistant Professor Dr. Ali Kattan 1 The Conditional Operator The conditional operator is similar to the if..else statement but has a shorter format. This is useful

More information

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 [talking head] Formal Methods of Software Engineering means the use of mathematics as an aid to writing programs. Before we can

More information

Lecture 02 Making Decisions: Conditional Execution

Lecture 02 Making Decisions: Conditional Execution Lecture 02 Making Decisions: Conditional Execution 1 Flow of Control Flow of control = order in which statements are executed By default, a program's statements are executed sequentially, from top to bottom.

More information

CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley

CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley In Brief: What You Need to Know to Comment Methods in CSE 143 Audience o A random person you don t know who wants

More information

Topic 6: Exceptions. Exceptions are a Java mechanism for dealing with errors & unusual situations

Topic 6: Exceptions. Exceptions are a Java mechanism for dealing with errors & unusual situations Topic 6: Exceptions Exceptions are a Java mechanism for dealing with errors & unusual situations Goals: learn how to... think about different responses to errors write code that catches exceptions write

More information

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n)

Module 10A Lecture - 20 What is a function? Why use functions Example: power (base, n) Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Module 10A Lecture - 20 What is a function?

More information

Module 2: Choice and Iteration

Module 2: Choice and Iteration Module 2: Choice and Iteration Ron K. Cytron * Department of Computer Science and Engineering * Washington University in Saint Louis Thanks to Alan Waldman for comments that improved these slides Prepared

More information

Abstract Data Types. CS 234, Fall Types, Data Types Abstraction Abstract Data Types Preconditions, Postconditions ADT Examples

Abstract Data Types. CS 234, Fall Types, Data Types Abstraction Abstract Data Types Preconditions, Postconditions ADT Examples Abstract Data Types CS 234, Fall 2017 Types, Data Types Abstraction Abstract Data Types Preconditions, Postconditions ADT Examples Data Types Data is stored in a computer as a sequence of binary digits:

More information

CS61A Lecture 32. Amir Kamil UC Berkeley April 5, 2013

CS61A Lecture 32. Amir Kamil UC Berkeley April 5, 2013 CS61A Lecture 32 Amir Kamil UC Berkeley April 5, 2013 Announcements Hog revisions due Monday HW10 due Wednesday Make sure to fill out survey on Piazza We need to schedule alternate final exam times for

More information

Slide Set 15 (Complete)

Slide Set 15 (Complete) Slide Set 15 (Complete) for ENCM 339 Fall 2017 Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary November 2017 ENCM 339 Fall 2017

More information

Lecture 05 I/O statements Printf, Scanf Simple statements, Compound statements

Lecture 05 I/O statements Printf, Scanf Simple statements, Compound statements Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 05 I/O statements Printf, Scanf Simple

More information

Exceptions and assertions

Exceptions and assertions Exceptions and assertions CSE 331 University of Washington Michael Ernst Failure causes Partial failure is inevitable Goal: prevent complete failure Structure your code to be reliable and understandable

More information

1 Getting used to Python

1 Getting used to Python 1 Getting used to Python We assume you know how to program in some language, but are new to Python. We'll use Java as an informal running comparative example. Here are what we think are the most important

More information

15 150: Principles of Functional Programming. Exceptions

15 150: Principles of Functional Programming. Exceptions 15 150: Principles of Functional Programming Exceptions Michael Erdmann Spring 2018 1 Topics Exceptions Referential transparency, revisited Examples to be discussed: Dealing with arithmetic errors Making

More information

Lecture 9: July 14, How to Think About Debugging

Lecture 9: July 14, How to Think About Debugging Lecture 9: July 14, 2011 How to Think About Debugging So, you wrote your program. And, guess what? It doesn t work. L Your program has a bug in it Somehow, you must track down the bug and fix it Need to

More information

LECTURE 4 Python Basics Part 3

LECTURE 4 Python Basics Part 3 LECTURE 4 Python Basics Part 3 INPUT We ve already seen two useful functions for grabbing input from a user: raw_input() Asks the user for a string of input, and returns the string. If you provide an argument,

More information

COMP 204: Sets, Commenting & Exceptions

COMP 204: Sets, Commenting & Exceptions COMP 204: Sets, Commenting & Exceptions Yue Li based on material from Mathieu Blanchette, Carlos Oliver Gonzalez and Christopher Cameron 1/29 Outline Quiz 14 review Set Commenting code Bugs 2/29 Quiz 15

More information

14. Exception Handling

14. Exception Handling 14. Exception Handling 14.1 Intro to Exception Handling In a language without exception handling When an exception occurs, control goes to the operating system, where a message is displayed and the program

More information