Text Data File IO and Exceptions Strings revisited Formatted ouput File InputOutput Errors and Exceptions Introduction to Computing Using Python String representations gtgtgt excuse I am sick ID: 757974
Download Presentation The PPT/PDF document "Introduction to Computing Using Python" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Introduction to Computing Using Python
Text Data, File I/O, and Exceptions
Strings, revisited
Formatted
ouput
File Input/Output
Errors and ExceptionsSlide2
Introduction to Computing Using Python
String representations
>>> excuse = 'I am sick'
>>> excuse = "I am sick"
>>>
>>> excuse = 'I am sick'
>>> excuse = "I am sick"
>>> excuse = 'I'm sick'
SyntaxError: invalid syntax>>>
>>> excuse = 'I am sick'>>> excuse = "I am sick">>> excuse = 'I'm sick'SyntaxError: invalid syntax>>> excuse = "I'm sick">>>
>>> excuse = 'I am sick'>>> excuse = "I am sick">>> excuse = 'I'm sick'SyntaxError: invalid syntax>>> excuse = "I'm sick">>> excuse = "I'm "sick""SyntaxError: invalid syntax>>> excuse = 'I'm "sick"'SyntaxError: invalid syntax>>>
>>> excuse = 'I am sick'>>> excuse = "I am sick">>> excuse = 'I'm sick'SyntaxError: invalid syntax>>> excuse = "I'm sick">>> excuse = "I'm "sick""SyntaxError: invalid syntax>>> excuse = 'I'm "sick"'SyntaxError: invalid syntax>>> excuse = 'I\'m "sick"'>>>
>>> excuse = 'I am sick'>>> excuse = "I am sick">>> excuse = 'I'm sick'SyntaxError: invalid syntax>>> excuse = "I'm sick">>> excuse = "I'm "sick""SyntaxError: invalid syntax>>> excuse = 'I'm "sick"'SyntaxError: invalid syntax>>> excuse = 'I\'m "sick"'>>> excuse'I\'m "sick"'>>>
>>> excuse = 'I am sick'>>> excuse = "I am sick">>> excuse = 'I'm sick'SyntaxError: invalid syntax>>> excuse = "I'm sick">>> excuse = "I'm "sick""SyntaxError: invalid syntax>>> excuse = 'I'm "sick"'SyntaxError: invalid syntax>>> excuse = 'I\'m "sick"'>>> excuse'I\'m "sick"'>>> print(excuse)I'm "sick">>>
>>> excuse = 'I am sick'>>> excuse = "I am sick">>> excuse = 'I'm sick'SyntaxError: invalid syntax>>> excuse = "I'm sick">>> excuse = "I'm "sick""SyntaxError: invalid syntax>>> excuse = 'I'm "sick"'SyntaxError: invalid syntax>>> excuse = 'I\'m "sick"'>>> excuse'I\'m "sick"'>>> print(excuse)I'm "sick”>>> excuse = 'I\'m ...\n... "sick"'>>>
>>> excuse = 'I am sick'>>> excuse = "I am sick">>> excuse = 'I'm sick'SyntaxError: invalid syntax>>> excuse = "I'm sick”>>> excuse = "I'm "sick""SyntaxError: invalid syntax>>> excuse = 'I'm "sick"'SyntaxError: invalid syntax>>> excuse = 'I\'m "sick"'>>> excuse'I\'m "sick"'>>> print(excuse)I'm "sick”>>> excuse = 'I\'m ...\n... "sick"'>>> excuse'I\'m ...\n... "sick"'>>>
>>> excuse = 'I am sick'>>> excuse = "I am sick">>> excuse = 'I'm sick'SyntaxError: invalid syntax>>> excuse = "I'm sick">>> excuse = "I'm "sick""SyntaxError: invalid syntax>>> excuse = 'I'm "sick"'SyntaxError: invalid syntax>>> excuse = 'I\'m "sick"'>>> excuse'I\'m "sick"'>>> print(excuse)I'm "sick”>>> excuse = 'I\'m ...\n... "sick"'>>> excuse'I\'m ...\n... "sick"'>>> print(excuse)I'm ...... "sick"
A string value is represented as a sequence of characters delimited by quotes
Quotes can be single (') or double (")
What if ' or " is one of the string characters?
What if the string includes both ' and "?
Escape sequence \' or \" is used to indicate that a quote is not the string delimiter but is part of the string value
Function print() interprets the escape sequence
Another example:
\
n
is an escape sequence that represents a new line Slide3
The indexing operator
returns the character at index
i (as a single character string).
Introduction to Computing Using Python
Indexing operator, revisited
'A'
'
p''p''
l''e's[0] =s[1] =s[2] =s[3]
=s[4] =s =013
42>>> s = 'Apple'>>> s[0]'A'>>> s[1]'p'>>> s[4]'e'
'A p p l e'-5-4-2-1
-3s[0:2] ='A p's[1:4] ='p p l
's[2:5] ='p l e's[2:] ='p l e'
s[-3:-1] ='p l's[:2] ='A p'>>> s = 'Apple'>>> s[0:2]'Ap'>>> s[1:4]'ppl'>>> s[2:5]
'ple'>>> s[2:]'ple'>>> s[:2]'Ap'>>> s[-3:-1]'pl'The indexing operator can also be used to obtain a slice of a strings[i:j] : the slice of s starting at index i and ending before index js[i:] : the slice of s starting at index i
s[:j] : the slice of s ending before index jSlide4
Introduction to Computing Using Python
Exercise
The indexing operator can also be used to obtain slices of a list as well. Let list
lst
refer to list
['a', '
b', 'c', 'd', 'e', 'f', 'g', 'h’]Write Python expressions using list lst and the indexing operator that evaluate to:['a', 'b', 'c', 'd']['d', 'e', 'f']
['d']['f', 'g']['d', 'e', 'f', 'g’, 'h']['f', 'g', 'h']>>> lst[:4]['a', 'b', 'c', 'd']>>> lst[3:6]['
d', 'e', 'f']>>> lst[3:4]['d']>>> lst[-3:-1]['f', 'g']>>> lst[3:]['d', 'e', 'f', 'g’, 'h']>>> lst[-3:]['f', 'g', 'h']Slide5
Usage
Explanations.capitalize()
returns a copy of s with first character capitalizeds.count(target)returns the number of
occurences
of
target
in ss.find(target)returns the index of the first occurrence of target in ss.lower()returns lowercase copy of s s.replace(old, new)returns copy of s with every occurrence of old replaced with news.split(sep)returns list of substrings of s, delimited by seps.strip()
returns copy of s without leading and trailing whitespaces.upper()returns lowercase copy of s Introduction to Computing Using PythonString methods>>> link = 'http://www.main.com/smith/index.html
'>>> link[:4]'http'>>> link[:4].upper()'HTTP'>>> link.find('smith')20>>> link[20:25]'smith'>>> link[20:25].capitalize()'Smith'>>> link.replace('smith', 'ferreira')'http://www.main.com/ferreira/index.html'>>> link'http://www.main.com/smith/index.html'>>> new = link.replace('smith', '
ferreira')>>> new'http://www.main.com/ferreira/index.html'>>> link.count('/')4>>> link.split('/')['http:', '', 'www.main.com', 'smith', 'index.html']Strings are immutable; none of the string methods modify string linkStrings are immutable; none of the string methods modify string sSlide6
Introduction to Computing Using Python
Exercise
>>> events = '9/13 2:30 PM\n9/14 11:15 AM\n9/14 1:00 PM\n9/15 9:00 AM'
>>>
print(events
)
9/13 2:30 PM
9/14 11:15 AM9/14 1:00 PM9/15 9:00 AM>>> events.count('9/14')2>>> events.find('9/14')13>>> events.find('9/15')40>>> events[13:40]'9/14 11:15 AM\n9/14 1:00 PM\n’>>> lst
= events[13:40].strip().split('\n')>>> lst['9/14 11:15 AM', '9/14 1:00 PM']>>> Write expressions that compute:the number of events on 9/14the index of the substring describing the 1st event on 9/14the index just past the substring describing the last event on 9/14the list of substrings describing the events on 9/14
String events describes the schedule of 4 events spread across 3 daysSlide7
Usage
Explanationstr.maketrans(old, new
)returns a table mapping characters in string old to characters in string new
s.translate(table
)
returns a copy of
s
in which the original characters are replaced using the mapping described by table Introduction to Computing Using PythonString methods>>> event = "Tuesday, Feb 29, 2012 -- 3:35 PM">>>
Suppose we need to pick up the date and time components of string event>>> event = "Tuesday, Feb 29, 2012 -- 3:35 PM">>> table = str.maketrans(':,-', 3*' ')>>> event.translate(table)'Tuesday Feb 29 2012 3 35 PM'
>>>>>> event = "Tuesday, Feb 29, 2012 -- 3:35 PM">>> table = str.maketrans(':,-', 3*' ')>>> event.translate(table)'Tuesday Feb 29 2012 3 35 PM'>>> event.translate(table).split()['Tuesday', 'Feb', '29', '2012', '3', '35', 'PM']>>> Puntuation makes it difficult to use method
split()Solution: replace punctuation with blank spacesSlide8
>>> prod = 'morels'
>>> cost = 139
>>> wght = 1/2>>> total = cost * wght
>>>
>>> prod = 'morels'
>>> cost = 139
>>>
wght = 1/2>>> total = cost * wght>>> print(prod, cost, wght, total)morels 139 0.5 69.5>>>
>>> prod = 'morels'>>> cost = 139>>> wght = 1/2>>> total = cost * wght>>> print(prod, cost, wght, total)morels 139 0.5 69.5>>> print(prod, cost, wght, total, sep='; ')morels; 139; 0.5; 69.5>>>>>> prod = 'morels'
>>> cost = 139>>> wght = 1/2>>> total = cost * wght>>> print(prod, cost, wght, total)morels 139 0.5 69.5>>> print(prod, cost, wght, total, sep='; ')morels; 139; 0.5; 69.5>>> print(prod, cost, wght, total, sep=':::')morels:::139:::0.5:::69.5>>> Introduction to Computing Using Python
Built-in function print(), revisitedFunction print() takes 0 or more arguments and prints them in the shellA blank space separator is printed between the arguments
The sep argument allows for customized separatorstheir string representationSlide9
>>> pets = ['boa', 'cat', 'dog']
>>> for pet in pets:
print(pet)
boa
cat
dog
>>>
Introduction to Computing Using PythonBuilt-in function print(), revisited
Function print() prints, by default, a newline character after printing its argumentsThe end argument allows for customized end characters>>> pets = ['boa', 'cat', 'dog']>>> for pet in pets: print(pet) boa
\n cat\ndog\n>>>>>> pets = ['boa', 'cat', 'dog']>>> for pet in pets: print(pet)
boacatdog>>> for pet in pets: print(pet, end=', ') boa, cat, dog, >>>>>> pets = ['boa', 'cat', 'dog']>>> for pet in pets: print(pet)
boacatdog>>> for pet in pets: print(pet, end=', ') boa, cat, dog, >>> for pet in pets: print(pet, end='!!! ') boa!!! cat!!! dog!!! >>> Slide10
Introduction to Computing Using Python
General output formatting
>>> day = 'Wednesday'
>>> month = 'March'
>>> weekday = 'Wednesday'
>>> month = 'March'
>>> day = 10
>>> year = 2010>>> year = 2012>>> hour = 11>>> minute = 45>>> second = 33>>>
Suppose we have>>> day = 'Wednesday'>>> month = 'March'>>> weekday = 'Wednesday'>>> month = 'March'>>> day = 10>>> year = 2010>>> year = 2012>>> hour = 11>>> minute = 45>>> second = 33>>> print(hour+':'+minute+':'+second)Traceback (most recent call last): File "<pyshell#113>", line 1, in <module> print(hour+':'+minute+':'+second)TypeError: unsupported operand type(s
) for +: 'int' and 'str'>>>and we want to print Wednesday, March 10, 2010 at 11:45:33 >>> day = 'Wednesday'>>> month = 'March'>>> weekday = 'Wednesday'>>> month = 'March'>>> day = 10>>> year = 2010>>> year = 2012>>> hour = 11>>> minute = 45>>> second = 33
>>> print(hour+':'+minute+':'+second)Traceback (most recent call last): File "<pyshell#113>", line 1, in <module> print(hour+':'+minute+':'+second)TypeError: unsupported operand type(s) for +: 'int' and 'str'>>> print(str(hour)+':'+str(minute)+':'+str(second))11:45:33>>>>>> day = 'Wednesday'>>> month = 'March'>>> weekday = 'Wednesday'>>> month = 'March'>>> day = 10>>> year = 2010
>>> year = 2012>>> hour = 11>>> minute = 45>>> second = 33>>> print(hour+':'+minute+':'+second)Traceback (most recent call last): File "<pyshell#113>", line 1, in <module> print(hour+':'+minute+':'+second)TypeError: unsupported operand type(s) for +: 'int' and 'str'>>> print(str(hour)+':'+str(minute)+':'+str(second))11:45:33>>> print('{}:{}:{}'.format(hour, minute, second))11:45:33Slide11
Introduction to Computing Using Python
Method
format() of class
str
>>> day = 'Wednesday'
>>> month = 'March'
>>> weekday = 'Wednesday'
>>> month = 'March'>>> day = 10>>> year = 2010>>> year = 2012>>> hour = 11>>> minute = 45>>> second = 33>>> print('{}:{}:{}'.format(hour, minute, second))11:45:33>>>print('{}:{}:{}'.format(hour
, minute, second))format string
>>> day = 'Wednesday'>>> month = 'March'>>> weekday = 'Wednesday'>>> month = 'March'>>> day = 10>>> year = 2010>>> year = 2012>>> hour = 11>>> minute = 45>>> second = 33>>> print('{}:{}:{}'.format(hour, minute, second))11:45:33>>> print('{}, {} {}, {} at {}:{}:{}'.format(weekday, month, day, year, hour, minute, second))Wednesday, March 10, 2012 at 11:45:33placeholdersSlide12
Introduction to Computing Using Python
Specifying field width
The
format()
method can be used to line up data in columns
>>> for
i
in range(1,8): print(i, i**2, 2**i) 1 1 22 4 43 9 84 16 165 25 326 36 647 49 128>>>
>>> for i in range(1,8): print(i, i**2, 2**i) 1 1 22 4 43 9 84 16 165 25 326 36 647 49 128
>>> for i in range(1, 8): print('{} {:2} {:3}'.format(i, i**2, 2**i)) 1 1 22 4 43 9 84 16 165 25 326 36 647 49 128>>> reserves 2 spaces for i**2
reserves 3 spaces for 2**iplus a blank space between the columnsNumbers are aligned to the rightSlide13
Numbers are aligned to the right
Introduction to Computing Using Python
Specifying field width
>>>
lst
= ['Alan Turing', 'Ken Thompson', '
Vint
Cerf']>>> for name in lst: fl = name.split() print(fl[0], fl[1]) Alan TuringKen ThompsonVint Cerf>>>
>>> lst = ['Alan Turing', 'Ken Thompson', 'Vint Cerf']>>> for name in lst: fl = name.split() print(fl[0], fl[1]) Alan TuringKen ThompsonVint Cerf>>> for name in lst: fl = name.split() print('{:5} {:10}'.format(fl[0], fl[1]))
Alan Turing Ken Thompson Vint Cerf >>>Strings are aligned to the leftThe format() method can be used to line up data in columnsSlide14
Introduction to Computing Using Python
Output format type
>>>
n
= 10
>>> '{:
b}'.format(n
)'1010'>>> '{:c}'.format(n)'\n'>>> '{:d}'.format(n)'10'>>> '{:X}'.format(n)'A'>>> '{:e}'.format(n)'1.000000e+01'>>>
Inside the curly braces of a placeholder, we can specify the field widthTypeExplanationbbinaryccharacterddecimalXhexadecimalescientificf
fixed-point>>> n = 10>>> '{:b}'.format(n)'1010'>>> '{:c}'.format(n)'\n'>>> '{:d}'.format(n)'10'>>> '{:X}'.format(n)'A'>>> '{:e}'.format(n)'1.000000e+01'>>>
'{:7.2f}'.format(n)' 10.00'>>>'{:7.2f}'field widthdecimal precision
Inside the curly braces of a placeholder, we can specify the field width, the type of the outputInside the curly braces of a placeholder, we can specify the field width, the type of the output, and the decimal precision Slide15
Introduction to Computing Using Python
Files and the file system
/
Applications
Users
bin
var
Firefox.app
Mail.appSharedmessipoem.txt
image.jpgContentsMacOSMailCanon
The file system is the OS component that organizes files and provides a way to create, access, and modify filesFiles are organized into a tree structureroot folder/ApplicationsUsers
binvarFirefox.appMail.app
SharedmessiContentsMacOSCanonfolders (or directories)
folders (or directories)regular filestext filebinary fileWhile every file and folder has a name, it is the file pathname
that identifies the file poem.txtAbsolute pathnames/var/poem.txt/Users/messi/poem.txt/Applications/Mail.app/Relative pathnames (relative to current working directory Users
)messi/poem.txtmessi/image.jpgSharedSlide16
Introduction to Computing Using Python
Opening and closing a file
Processing a file consists of:
Opening the file
Reading from and/or
writing to the file
Closing the file
>>> infile = open('sample.txt')Traceback (most recent call last): File "<pyshell#50>", line 1, in <module> infile = open('sample.txt')IOError: [
Errno 2] No such file or directory: 'sample.txt'>>>>>> infile = open('sample.txt')Traceback (most recent call last): File "<pyshell#50>", line 1, in <module> infile = open('sample.txt')IOError: [Errno 2] No such file or directory: 'sample.txt'>>> infile = open('example.txt', 'r')>>>
>>> infile = open('sample.txt')Traceback (most recent call last): File "<pyshell#50>", line 1, in <module> infile = open('sample.txt')IOError: [Errno 2] No such file or directory: 'sample.txt'>>> infile = open('example.txt', 'r')>>> infile.close()>>>
Built-in function open() is used to open a file The second (optional) argument is the file modeThe first input argument is the file pathname, whether absolute or relative with respect to the current working directory
File mode 'r' is used toopen a file for reading (rather than, say, writing)A “file” object is of a type that supports several “file” methods, including method close() that closes the file
Returns a “file” object Slide17
Introduction to Computing Using Python
Open file mode
Mode
Description
r
Reading
(default)
wWriting (if file exists, content is wiped)aAppend (if file exists, writes are appended)r+Reading and WritingtText (default)bBinary
The file mode defines how the file will be accessed>>> infile = open('example.txt', 'rt')>>> infile = open('example.txt', 'r')>>> infile = open('example.txt', 't')>>> infile =
open('example.txt')These are all equivalentSlide18
Introduction to Computing Using Python
File methods
Usage
Description
infile.read(n
)
Read
n characters starting from cursor; if fewer than n characters remain, read until the end of file infile.read()Read starting from cursor up to the end of the file infile.readline()Read starting from cursor up to, and including, the end of line characterinfile.readlines()Read starting from cursor up to the end of the file and return list of lines
outfile.write(s)Write string s to file outfile starting from cursorinfile.close(n)Close file infileThere are several “file” types; they all support similar “file” methods
Methods read() and readline() return the characters read as a stringMethods readlines() returns the characters read as a list of lines Method write()
returns the number of characters writtenSlide19
Introduction to Computing Using Python
Reading a file
>>>
infile
=
open('example.txt
')
>>>1 The 3 lines in this file end with the new line character.\
n2 \n3 There is a blank line above this line.\n⌃⌃⌃
⌃⌃>>> infile = open('example.txt')>>> infile.read(1)'T'>>>
>>> infile = open('example.txt')>>> infile.read(1)'T'>>> infile.read(5)'he 3 '>>>
>>> infile = open('example.txt')>>> infile.read(1)'T'>>> infile.read(5)'he 3 '>>> infile.readline()'lines in this file end with the new line character.\n'>>>>>> infile = open('example.txt')
>>> infile.read(1)'T'>>> infile.read(5)'he 3 '>>> infile.readline()'lines in this file end with the new line character.\n'>>> infile.read()'\nThere is a blank line above this line.\n'>>>>>> infile = open('example.txt')>>> infile.read(1)'T'
>>> infile.read(5)'he 3 '>>> infile.readline()'lines in this file end with the new line character.\n'>>> infile.read()'\nThere is a blank line above this line.\n'>>> infile.close()>>>example.txtWhen the file is opened, a cursor
is associated with the opened fileThe initial position of the cursor is:at the beginning of the file, if file mode is rat the end of the file, if file mode is a or wSlide20
Introduction to Computing Using Python
Patterns for reading a text file
def
numChars(filename
):
'returns the number of characters in file filename'
infile = open(filename, 'r') content = infile.read() infile.close() return len(content)
Common patterns for reading a file:Read the file content into a stringRead the file content into a list of wordsRead the file content into a list of linesdef numWords(filename): 'returns the number of words in file filename' infile = open(filename) content =
infile.read() infile.close() wordList = content.split() return len(wordList)def numLines(filename): 'returns the number of lines in file filename' infile = open(filename, 'r’) lineList =
infile.readlines() infile.close() return len(lineList)Example:Slide21
1
2
34
1
T
2
341 This is the first line.2341 This is the first line. Still the first line…\n2
341 This is the first line. Still the first line…\n2 Now we are in the second line.\n341 This is the first line. Still the first line…\n
2 Now we are in the second line.\n3 Non string value like 5 must be converted first.\n41 This is the first line. Still the first line…\n2 Now we are in the second line.\n3 Non string value like 5 must be converted first.\
n4 Non string value like 5 must be converted first.\nIntroduction to Computing Using PythonWriting to a text file⌃⌃
⌃⌃⌃>>> outfile = open('test.txt', 'w')
>>> test.txt⌃
⌃>>> outfile = open('test.txt', 'w')>>> outfile.write('T')1>>>
>>> outfile = open('test.txt', 'w')>>> outfile.write('T')1>>> outfile.write('his is the first line.')22>>>>>> outfile = open('test.txt', 'w
')>>> outfile.write('T')1>>> outfile.write('his is the first line.')22>>> outfile.write(' Still the first line...\n')25>>>>>> outfile = open('test.txt', 'w')>>> outfile.write('T')
1>>> outfile.write('his is the first line.')22>>> outfile.write(' Still the first line...\n')25>>> outfile.write('Now we are in the second line.\n')31>>>>>> outfile = open('test.txt', 'w')>>> outfile.write('T')1>>> outfile.write('his
is the first line.')22>>> outfile.write(' Still the first line...\n')25>>> outfile.write('Now
we are in the second line.\n')31>>> outfile.write('Non string value like '+str(5)+' must be converted first.\n')49>>>
>>> outfile = open('test.txt', 'w')>>> outfile.write('T')
1>>> outfile.write('his is the first line.')22>>> outfile.write(' Still the first line...\n')25
>>> outfile.write('Now we are in the second line.\n')31>>> outfile.write('Non string value like '+str(5)+' must be converted first.\
n')49>>> outfile.write('Non string value like {} must be converted first.\n'.format(5))49
>>>
outfile.close
()Slide22
Introduction to Computing Using Python
Types of errors
>>> excuse = 'I'm sick'
SyntaxError
: invalid syntax
>>>
print(hour+':'+minute+':'+second
)Traceback (most recent call last): File "<pyshell#113>", line 1, in <module> print(hour+':'+minute+':'+second)TypeError: unsupported operand type(s) for +: 'int' and 'str’>>> infile = open('sample.txt')Traceback (most recent call last): File "<pyshell#50>", line 1, in <module> infile
= open('sample.txt')IOError: [Errno 2] No such file or directory: 'sample.txt’We saw different types of errors in this chapter There are basically two types of errors:syntax errorserroneous state errorsSlide23
Introduction to Computing Using Python
Syntax errors
>>> (3+4]
SyntaxError
:
invalid syntax
>>> if x == 5 SyntaxError: invalid syntax >>> print 'hello' SyntaxError: invalid syntax >>> lst = [4;5;6] SyntaxError: invalid syntax
>>> for i in range(10): print(i) SyntaxError: expected an indented blockSyntax errors are errors that are due to the incorrect format of a Python statement They occur while the statement is being translated to machine language and before it is being executed. Slide24
Introduction to Computing Using Python
Erroneous state errors
>>> 3/0
Traceback
(most recent call last):
File "<pyshell#56>", line 1, in <module>
3/0
ZeroDivisionError: division by zeroThe program execution gets into an erroneous state>>> lstTraceback (most recent call last): File "<pyshell#57>", line 1, in <module>
lstNameError: name 'lst' is not defined>>> lst = [12, 13, 14]>>> lst[3]Traceback (most recent call last): File "<pyshell#59>", line 1, in <module> lst[3]IndexError: list index out of range>>> lst * lstTraceback (most recent call last): File "<pyshell#60>", line 1, in <module>
lst * lstTypeError: can't multiply sequence by non-int of type 'list’>>> int('4.5')Traceback (most recent call last): File "<pyshell#61>", line 1, in <module> int('4.5')ValueError: invalid literal for int() with base 10: '4.5'When an error occurs, an “error” object is createdThis object has a type that is related to
the type of errorThe object contains information about the errorThe “error” object is called an exception; the creation of an exception due to an error is called the raising of an exception When an error occurs, an “error” object is createdThis object has a type that is related to
the type of errorThe object contains information about the errorThe default behavior is to print this information and interrupt the execution of the statement.>>> int('4.5')Traceback (most recent call last): File "<pyshell#61>", line 1, in <module> int('4.5')ValueError: invalid literal for int() with base 10: '4.5'Slide25
Introduction to Computing Using Python
Exception types
Some of the built-in
exception classes:
Exception
Explanation
KeyboardInterrupt
Raised when user hits Ctrl-C, the interrupt keyOverflowErrorRaised when a floating-point expression evaluates to a value that is too largeZeroDivisionErrorRaised when attempting to divide by 0IOErrorRaised when an I/O operation fails for an I/O-related reasonIndexErrorRaised when a sequence index is outside the range of valid indexes
NameErrorRaised when attempting to evaluate an unassigned identifier (name)TypeErrorRaised when an operation of function is applied to an object of the wrong typeValueErrorRaised when operation or function has an argument of the right type but incorrect value