The given program reads a list of single-word first names and ages (ending with -1), and outputs that list with the age incremented. The program fails and throws an exception if the second input on a line is a string rather than an integer. At FIXME in the code, add try and except blocks to catch the ValueError exception and output 0 for the age. Ex: If the input is: Lee 18 Lua 21 Mary Beth 19 Stu 33 -1
The given
Ex: If the input is:
Lee 18
Lua 21
Mary Beth 19
Stu 33
-1
then the output is:
Lee 19
Lua 22
Mary 0
Stu 34
Here is the code that needs to be corrected:
# Split input into 2 parts: name and age
#parts = input().split()
#name = parts[0]
#while name != '-1':
# FIXME: The following line will throw ValueError exception.
# Insert try/except blocks to catch the exception.
#age = int(parts[1]) + 1
# print('{} {}'.format(name, age))
# Split input into 2 parts: name and age
parts = input().split()
#name
name = parts[0]
#if user enters -1
while name != '-1':
#try block
try:
age = int(parts[1]) + 1
#exception
except Exception as ex:
#set age equal to 0
age = 0
# Get next line
print('{} {}'.format(name, age))
#split the input
parts = input().split()
#set name
name = parts[0]
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 2 images