Protected Secret (100pts)

Write a function protected_secret which takes in a password, secret, and num_attempts.

protected_secret should return another function which takes in a password and prints secret if the password entered matches the password given as an argument to protected_secret. Otherwise, the returned function should print "INCORRECT PASSWORD". After num_attempts incorrect passwords are used, the secret is locked forever and the function should print "SECRET LOCKED".

We recommend you using self-referencing functions to achieve this problem.

For example:

>>> my_secret = protected_secret("oski2021", "The view from the top of the Campanile.", 1) >>> my_secret = my_secret("oski2021") The view from the top of the Campanile. >>> my_secret = my_secret("goBears!") INCORRECT PASSWORD # 0 Attempts left >>> my_secret = my_secret("zoomUniversity") SECRET LOCKED

See the doctests for a detailed example.

def protected_secret(password, secret, num_attempts): """ Returns a function which takes in a password and prints the SECRET if the password entered matches the PASSWORD given to protected_secret. Otherwise it prints "INCORRECT PASSWORD". After NUM_ATTEMPTS incorrect passwords are entered, the secret is locked and the function should print "SECRET LOCKED". >>> my_secret = protected_secret("correcthorsebatterystaple", "I love UCB", 2) >>> my_secret = my_secret("hax0r_1") # 2 attempts left INCORRECT PASSWORD >>> my_secret = my_secret("correcthorsebatterystaple") I love UCB >>> my_secret = my_secret("hax0r_2") # 1 attempt left INCORRECT PASSWORD >>> my_secret = my_secret("hax0r_3") # No attempts left SECRET LOCKED >>> my_secret = my_secret("correcthorsebatterystaple") SECRET LOCKED """ def get_secret(password_attempt): "*** YOUR CODE HERE ***" return get_secret