Here\'s Python 3.4 problem. This is my code. I have error like this: ValueError:
ID: 3814951 • Letter: H
Question
Here's Python 3.4 problem.
This is my code.
I have error like this: ValueError: invalid literal for int() with base 10: ''
My code works for example 1,2,3 but not for 4,5. How should i rewrite my code?
Write the function readable-interval that takes a string consisting of a human-readable time interval Homework #3 CSE 101 Spring 2017 Page 3 and converts it into a list of six integers, given in this order: of years, of months, t of days, #of hours, of minutes, of seconds] The input values stored within the string can be quite scrambled and consist of multiple, repeated time components (days, months, etc.), as shown in the examples below. If a time component appears more than once, the values are be added. The time units might be given in singular or plural form (e.g., "month" and "months" are both valid). There will always be at least (but not necessarily exactly) one space between the tokens (i.e., components) of the string. Examples: Function Call: readable-interval 1 year 2 months 3 seconds') Return Value: 1, 2, 0, 0, 0, 31 Function Call: readable-interval 1 second 2 years 3 seconds 7 months 6 days' Return Value: [2, 7, 6, 0, 0, 4 Function Call 4 hours 17 minutes') readable interval 1 days 4 days 3 years Return Value: 13, 0, 5, 4, 17, 01 Function Call readable interval 6 hours 20 minutes 421 seconds Return Value: [0, 0, 0, 6, 20 421] Function Call readable interval 0 days 0 months 7 months 18 years') Return Value: 18 7, 0, 0, 0, 01Explanation / Answer
The Error Because when use split function for space : input in case 4,5 double space is present , which store in values.So when you try to int(value[i-1]) does not convert space to integer.
Solution : The split() method without an argument splits on whitespace.
def readable_interval(interval):
value = interval.split()
intervals = [0, 0, 0, 0, 0, 0]
for i in range(len(value)):
if value[i] == 'years' or value[i] == 'year':
intervals[0] += int(value[i-1])
elif value[i] == 'month' or value[i] == 'months':
intervals[1] += int(value[i-1])
elif value[i] == 'day' or value[i] == 'days':
intervals[2] += int(value[i-1])
elif value[i] == 'hour' or value[i] == 'hours':
intervals[3] += int(value[i-1])
elif value[i] == 'minute' or value[i] == 'minutes':
intervals[4] += int(value[i-1])
elif value[i] == 'second' or value[i] == 'seconds':
intervals[5] += int(value[i-1])
return intervals