Python Dates and Times in Python Let's Build a Timed Quiz App Harder Time Machine

Simphiwe Masukume
Simphiwe Masukume
7,030 Points

'time_string' is an invalid keyword argument for this function'

'time_string' is an invalid keyword argument for this function. Not sure why we need key word arguments in this case and how to implement them

time_machine.py
import datetime

starter = datetime.datetime(2015, 10, 21, 16, 29)

# Remember, you can't set "years" on a timedelta!
# Consider a year to be 365 days.

## Example
# time_machine(5, "minutes") => datetime(2015, 10, 21, 16, 34)

def time_machine(time_int, time_string):
    if time_string == "years":
        time_int *= 365
        time_string = "days"
    return starter + datetime.timedelta(time_string=time_int)

2 Answers

Steven Parker
Steven Parker
203,994 Points

As the hint says, "time_string" is not a valid argument name. Valid arguments have names like "minute", "hour", "week", etc. For more details, see the Python documentation page for timedelta.

If you want to create a kwarg using a variable for the argument name, you could pack it into a dictionary and then apply the unpacking operator ("**") on the dictionary.

Pratham Mishra
seal-mask
.a{fill-rule:evenodd;}techdegree
Pratham Mishra
Python Development Techdegree Student 12,695 Points

'''def time_machine(time_int, years): if years == 'years': time_int = 365 years = 'days' return starter + datetime.timedelta(*{years : time_int}) '''