Build a User Configuration Manager

Tell us what’s happening:

I wonder why case 4 & 5 are incorrect while case 11 and 12 works. I’ve figured how to display the settings, but it only display ‘theme’ settings. After that I tried to check case number 7 and it says KeyError. Last is the delete function, which does not work. Are there any resources which I can use to understand better?

Your code so far

#User Configuration Manager
test_settings = ({
    'theme': 'dark',
    'notifications':'enabled',
    'volume':'high'
})

'''for settings, mode in test_settings.items():
    print(settings.capitalize(),':', mode)'''


def add_setting(settings, key_value):
    key = key_value[0].lower()
    value = key_value[1].lower()

    if key in settings:
        return (f"Setting '{key}' already exists! Cannot add a new setting with this name.")
    if settings[key] in value:
        return(f"Setting '{key}' added with value '{value}' successfully!")

def update_setting(settings, key_value):
    key = key_value[0].lower()
    value = key_value[1].lower()

    if key in settings:
        settings[key] = value
        return (f"Setting '{key}' updated to '{value}' successfully!")
    else:
        return(f"Setting '{key}' does not exist! Cannot update a non-existing setting.")

def delete_setting(settings, key):
    key = key.lower()

    if settings[key] in settings:
        settings.pop(key)
        return(f"Setting '{key}' deleted successfully!")
    else:
        return(f"Setting not found!")

def view_settings(settings):
    if not settings:
        return "No settings available"
    else:
        for settings, mode in test_settings.items():
            message = "Current User Settings:\n"
            settings = settings.capitalize()+': '+mode
            return message + settings

print(view_settings(test_settings)) 
print(update_setting(test_settings, ('notification', 'disabled')))
print(add_setting({'theme': 'light'}, ('THEME', 'dark')))
print(delete_setting({'theme': 'light'}, 'theme'))
print(add_setting({'theme': 'light'}, ('volume', 'high')))


Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36

Challenge Information:

Build a User Configuration Manager - Build a User Configuration Manager

GitHub Link: freeCodeCamp/curriculum/challenges/english/blocks/lab-user-configuration-manager/684aaf9ec670c68d20efd0d0.md at main · freeCodeCamp/freeCodeCamp · GitHub

the dictionary here {'theme': 'light'} does not have a volume key, so when you try to do settings[key] it causes the error

what are you trying to do with if settings[key] in value:?

Ohh… What a mistake… I think I see the problem now

It was supposed to be for “If the key setting doesn’t exist, add the key-value pair to the given dictionary of settings and return Setting ‘[key]’ added with value ‘[value]’ successfully!”