Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Create a Dictionaries
#4
In that case, here you go. As I stated before, this is poorly written, and could be redone:
import json


geek = {"404": "clueless.  From the web error message 404, meaning page not found.",
        "Googling": "searching the Internet for background information on a person.",
        "Keyboard Plaque": "the collection of debris found in computer keyboards.",
        "Link Rot": "the process by which web page links become obsolete.",
        "Percussive Maintenance": "the act of striking an electronic device to make it work.",
        "Uninstalled": "being fired.  Especially popular during the dot-bomb era."}

choice = None
filename = None
filechoice = None

def get_filename(filename):
    if filename is not None:
        print('Do you want to use the file named {}? :'.format(filename))
        filechoice = None
        validchoices = ['y', 'Y', 'n', 'N']
        while filechoice not in validchoices:
            filechoice = input('Enter Y or N: ')
        if filechoice == 'n' or filechoice == 'N':
            filename = input("Please enter file name: ")
    else:
        filename = input("Please enter file name you wish to use: ")
    return filename

while choice != "0":

    print(
        """
        Geek Translator
    
        0 - Quit
        1 - Look Up a Geek Term
        2 - Add a Geek Term
        3 - Redefine a Geek Term
        4 - Delete a Geek Term
        5 - Save as json file
        6 - Load from json file
        """
    )

    choice = input("Choice: ")
    print()

    # exit
    if choice == "0":
        print("Good-bye.")

    # get a definition
    elif choice == "1":
        term = input("What term do you want me to translate?: ")
        if term in geek:
            definition = geek[term]
            print("\n", term, "means", definition)
        else:
            print("\nSorry, I don't know", term)

    # add a term-definition pair
    elif choice == "2":
        term = input("What term do you want me to add?: ")
        if term not in geek:
            definition = input("\nWhat's the definition?: ")
            geek[term] = definition
            print("\n", term, "has been added.")
        else:
            print("\nThat term already exists!  Try redefining it.")

    # redefine an existing term
    elif choice == "3":
        term = input("What term do you want me to redefine?: ")
        if term in geek:
            definition = input("What's the new definition?: ")
            geek[term] = definition
            print("\n", term, "has been redefined.")
        else:
            print("\nThat term doesn't exist!  Try adding it.")

    # delete a term-definition pair
    elif choice == "4":
        term = input("What term do you want me to delete?: ")
        if term in geek:
            del geek[term]
            print("\nOkay, I deleted", term)
        else:
            print("\nI can't do that!", term, "doesn't exist in the dictionary.")
    # save to json file
    elif choice == "5":
        filename = get_filename(filename)
        with open(filename, 'w') as fout:
            json.dump(geek, fout)
    # load json file
    elif choice == "6":
        filename = get_filename(filename)
        with open(filename, 'r') as fin:
            geek = json.load(fin)
    # some unknown choice
    else:
        print("\nSorry, but", choice, "isn't a valid choice.")

input("\n\nPress the enter key to exit.")
Reply


Messages In This Thread
Create a Dictionaries - by GalaxyCR - Dec-19-2017, 03:24 AM
RE: Create a Dictionaries - by Larz60+ - Dec-19-2017, 03:56 AM
RE: Create a Dictionaries - by GalaxyCR - Dec-19-2017, 12:50 PM
RE: Create a Dictionaries - by Larz60+ - Dec-19-2017, 12:54 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020