{"id":117557,"date":"2026-05-07T15:36:12","date_gmt":"2026-05-07T10:06:12","guid":{"rendered":"https:\/\/www.mygreatlearning.com\/blog\/?page_id=117557"},"modified":"2026-05-07T15:32:39","modified_gmt":"2026-05-07T10:02:39","slug":"create-a-dictionary-based-phonebook","status":"publish","type":"page","link":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/","title":{"rendered":"Python Program to Create a dictionary-based phonebook"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Exercise 5.2<\/title>\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/codemirror.min.css\" \/>\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/theme\/eclipse.min.css\" \/>\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n\n<style>\n    \/* Wrapper to protect styles *\/\n    .py-receipt-wrapper {\n        \/* Local CSS Variables *\/\n        --py-bg-app: #f9fafb;\n        --py-bg-panel: #ffffff;\n        --py-border: #e5e7eb;\n        --py-text-primary: #1f2937;\n        --py-text-secondary: #6b7280;\n        --py-primary-blue: #2563eb;\n        --py-primary-hover: #1d4ed8;\n        --py-header-height: 50px;\n        --py-footer-height: 60px;\n\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n        background-color: var(--py-bg-app);\n        color: var(--py-text-primary);\n        width: 100%;\n        border: 1px solid var(--py-border);\n        box-sizing: border-box;\n    }\n\n    .py-receipt-wrapper * { box-sizing: border-box; }\n\n    \/* --- NEW TOP NAV (DESKTOP) --- *\/\n    .py-receipt-top-nav {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        height: var(--py-header-height);\n        padding: 0 20px;\n        background: var(--py-bg-panel);\n        border-bottom: 1px solid var(--py-border);\nmin-width: 100%;\n    }\n    .py-receipt-nav-title {\n        font-weight: 600;\n        color: var(--py-text-secondary);\n        font-size: 14px;\n    }\n\n    \/* --- LAYOUT --- *\/\n    .py-receipt-ide-container {\n        display: flex; \n        height: 100%; \n        min-width: 100%;\n        background: white;\n        overflow: hidden; \n    }\n\n    \/* --- LEFT PANE --- *\/\n    .py-receipt-left-pane {\n        width: 45%; \n        border-right: 1px solid var(--py-border);\n        background: var(--py-bg-panel); \n        display: flex; \n        flex-direction: column;\n    }\n\n    .py-receipt-tabs-header {\n        height: var(--py-header-height); \n        border-bottom: 1px solid var(--py-border);\n        display: flex; \n        align-items: center; \n        padding: 0 20px; \n        gap: 25px;\n        font-size: 14px; \n        font-weight: 500; \n        color: var(--py-text-secondary);\n    }\n    \n    .py-receipt-tab-item { cursor: pointer; padding: 14px 0; border-bottom: 2px solid transparent; }\n    .py-receipt-tab-item.active { color: var(--py-text-primary); border-bottom-color: var(--py-primary-blue); }\n    .py-receipt-tab-item:hover { color: var(--py-text-primary); }\n\n    .py-receipt-pane-content { flex: 1; overflow-y: auto; padding: 25px; display: none; }\n    .py-receipt-pane-content.active { display: block; }\n\n    \/* Scoped Typography *\/\n    .py-receipt-wrapper h1 { margin-top: 0; font-size: 22px; font-weight: 600; color: var(--py-text-primary); margin-bottom: 1rem; }\n    .py-receipt-wrapper p { line-height: 1.6; color: #374151; margin-bottom: 1rem; }\n    .py-receipt-wrapper ul { margin-bottom: 20px; color: #374151; line-height: 1.6; padding-left: 20px; }\n    .py-receipt-wrapper li { margin-bottom: 5px; }\n    .py-receipt-wrapper h3 { font-size: 16px; margin-top: 15px; margin-bottom: 10px; }\n\n    .py-receipt-solution-block {\n        background: #f8f9fa; border: 1px solid var(--py-border); padding: 15px;\n        border-radius: 6px; font-family: 'Consolas', monospace; font-size: 14px;\n        color: #333; white-space: pre-wrap; overflow-x: auto;\n    }\n    \n    .py-receipt-sample-box { background-color: #f3f4f6; border: 1px solid var(--py-border); border-radius: 6px; margin-top: 20px; overflow: hidden; }\n    .py-receipt-sample-header { display: flex; background-color: #e5e7eb; font-size: 13px; font-weight: 600; color: var(--py-text-primary); }\n    .py-receipt-sample-col-title { width: 50%; padding: 8px 15px; }\n    .py-receipt-sample-col-title:first-child { border-right: 1px solid #d1d5db; }\n    .py-receipt-sample-col-title:last-child { border-left: 1px solid #d1d5db; }\n    .py-receipt-sample-col-content { width: 50%; padding: 15px; font-family: 'Consolas', monospace; font-size: 14px; border-right: 1px solid var(--py-border); white-space: pre-wrap; color: #333; }\n    .py-receipt-sample-col-content:last-child { border-right: none; }\n    .py-receipt-sample-body { display: flex; }\n\n    \/* --- RIGHT PANE --- *\/\n    .py-receipt-right-pane {\n        width: 55%; display: flex; flex-direction: column; background: var(--py-bg-panel);\n    }\n\n    .py-receipt-editor-top-bar {\n        height: var(--py-header-height); border-bottom: 1px solid var(--py-border);\n        display: flex; align-items: center; justify-content: space-between;\n        padding: 0 15px; background-color: #f9fafb;\n    }\n\n    .py-receipt-lang-label { font-weight: 600; font-size: 14px; background: #e5e7eb; padding: 4px 12px; border-radius: 4px; }\n    .py-receipt-editor-settings i { color: var(--py-text-secondary); margin-left: 15px; cursor: pointer; font-size: 16px; }\n\n    .py-receipt-code-area { flex: 1; display: flex; flex-direction: column; position: relative; }\n    \/* Force CodeMirror to fit flex container *\/\n    .py-receipt-code-area .CodeMirror { flex: 1; height: 100%; position: absolute; top: 0; bottom: 0; left: 0; right: 0; font-family: 'Source Code Pro', monospace; font-size: 15px; }\n\n    .py-receipt-console-section {\n        border-top: 1px solid var(--py-border); background: #f9fafb;\n        display: flex; flex-direction: column; height: 35%;\n    }\n    .py-receipt-console-header { padding: 8px 15px; background: #e5e7eb; font-size: 12px; font-weight: 600; color: var(--py-text-secondary); text-transform: uppercase; }\n    .py-receipt-console-body { display: flex; flex: 1; overflow: hidden; }\n    .py-receipt-input-wrapper, .py-receipt-output-wrapper { flex: 1; display: flex; flex-direction: column; padding: 10px; border-right: 1px solid var(--py-border); }\n    .py-receipt-output-wrapper { border-right: none; }\n    .py-receipt-console-label { font-size: 12px; font-weight: 600; margin-bottom: 5px; color: var(--py-text-secondary); }\n    \n    textarea.py-receipt-custom-input-area { flex: 1; border: 1px solid var(--py-border); border-radius: 4px; resize: none; padding: 8px; font-family: monospace; width: 100%; }\n    .py-receipt-output-display { flex: 1; background: white; border: 1px solid var(--py-border); border-radius: 4px; padding: 8px; font-family: monospace; white-space: pre-wrap; overflow-y: auto; font-size: 13px; }\n\n    \/* --- FOOTER ACTIONS (Desktop) --- *\/\n    .py-receipt-footer-actions {\n        height: var(--py-footer-height);\n        border-top: 1px solid var(--py-border);\n        display: flex;\n        align-items: center;\n        \/* Aligns Reset\/Run to the left naturally if siblings are hidden *\/\n        justify-content: flex-end; \n        padding: 0 20px;\n        background-color: var(--py-bg-panel);\n    }\n\n    .py-receipt-execution-group { display: flex; gap: 12px; align-items: center; }\n\n    .py-receipt-btn {\n        padding: 8px 20px;\n        border-radius: 4px;\n        font-size: 14px;\n        font-weight: 600;\n        cursor: pointer;\n        text-decoration: none;\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        transition: 0.2s;\n        height: 38px;\n        box-shadow: none;\n        border: none;\n    }\n\n    .py-receipt-btn-secondary { background: transparent; border: 1px solid var(--py-border); color: var(--py-text-primary); }\n    .py-receipt-btn-secondary:hover { background: #f3f4f6; }\n\n    .py-receipt-btn-primary { background: var(--py-primary-blue); border: 1px solid var(--py-primary-blue); color: white; }\n    .py-receipt-btn-primary:hover { background: var(--py-primary-hover); }\n\n    .py-receipt-spinner {\n        display: none; width: 14px; height: 14px;\n        border: 2px solid #fff; border-top-color: transparent;\n        border-radius: 50%; animation: py-receipt-spin 0.8s linear infinite; margin-left: 8px;\n    }\n    @keyframes py-receipt-spin { 100% { transform: rotate(360deg); } }\n\n    .py-receipt-hidden { display: none !important; }\n\n    \/* Hide Mobile Buttons on Desktop *\/\n    .py-receipt-btn-mobile { display: none !important; }\n\n    \/* --- MOBILE RESPONSIVE FIX --- *\/\n    @media (max-width: 768px) {\n        \/* Hide Top Nav on Mobile *\/\n        .py-receipt-top-nav { display: none; }\n\n        .py-receipt-ide-container { flex-direction: column; overflow-y: auto; height: auto; }\n        .py-receipt-left-pane, .py-receipt-right-pane { width: 100%; height: auto; }\n        \n        \/* 1. Left Pane *\/\n        .py-receipt-left-pane { \n            border-right: none; \n            border-bottom: 8px solid #f3f4f6; \n            min-height: auto;\n            max-height: 400px;\n        }\n        \n        \/* 2. Right Pane: Flex Column for ordering *\/\n        .py-receipt-right-pane { display: flex; flex-direction: column; }\n        \n        \/* 3. Unwrap Console\/Footer to shuffle children *\/\n        .py-receipt-console-section, \n        .py-receipt-console-body,\n        .py-receipt-footer-actions { \n            display: contents; \n        }\n        \n        .py-receipt-console-header { display: none; }\n\n        \/* --- ORDERING LOGIC --- *\/\n\n        \/* Order 1: Top Bar *\/\n        .py-receipt-editor-top-bar { order: 1; }\n        \n        \/* Order 2: Code Editor *\/\n        .py-receipt-code-area { \n            order: 2; \n            height: 500px; \n        } \n        .py-receipt-code-area .CodeMirror { position: relative; height: 500px; }\n\n        \/* Order 3: Input Area (Top of bottom section) *\/\n        .py-receipt-input-wrapper { \n            order: 3;\n            width: 100%; \n            height: auto;\n            min-height: 280px; \n            border-right: none;\n            border-top: 8px solid #f3f4f6; \n            border-bottom: 1px solid var(--py-border);\n        }\n\n        \/* Order 4: Execution Buttons (Run\/Reset) *\/\n        .py-receipt-execution-group {\n            order: 4;\n            width: 100%;\n            display: flex;\n            padding: 15px;\n            gap: 10px;\n            border-bottom: 1px solid var(--py-border);\n            background: #fff;\n        }\n        \/* Make Run\/Reset buttons full width for touch targets *\/\n        .py-receipt-execution-group .py-receipt-btn { flex: 1; }\n        \n        \/* Order 5: Output Area *\/\n        .py-receipt-output-wrapper {\n            order: 5;\n            width: 100%;\n            height: auto;\n            min-height: 300px;\n            max-height: 500px;\n            border-right: none;\n            background: #fff;\n        }\n\n        \/* Order 6: Navigation (Next\/Prev) - Bottom of screen *\/\n        \/* Show the mobile buttons *\/\n        .py-receipt-btn-mobile {\n            display: inline-flex !important;\n            order: 6;\n            width: 48%; \/* Sit side by side *\/\n            margin: 15px 1%;\n            box-sizing: border-box;\n            text-align: center;\n        }\n        \n        \/* Handle links that are hidden via JS logic *\/\n        a.py-receipt-hidden { display: none !important; }\n    }\n<\/style>\n\n<\/head>\n\n<body>\n\n<div class=\"py-receipt-wrapper\">\n    <div class=\"py-receipt-top-nav\">\n        <a id=\"py-receipt-btn-prev-top\" class=\"py-receipt-btn py-receipt-btn-secondary py-receipt-hidden\" href=\"\">&larr; Previous<\/a>\n        <span class=\"py-receipt-nav-title\">Module 5: Dictionaries & Sets<\/span>\n        <a id=\"py-receipt-btn-next-top\" class=\"py-receipt-btn py-receipt-btn-primary py-receipt-hidden\" href=\"\">Next &rarr;<\/a>\n    <\/div>\n\n    <div class=\"py-receipt-ide-container\" id=\"py-receipt-ideContainer\">\n        \n        <div class=\"py-receipt-left-pane\">\n            <div class=\"py-receipt-tabs-header\">\n                <div class=\"py-receipt-tab-item active\" onclick=\"pyReceiptSwitchTab('statement')\">Statement<\/div>\n                <div class=\"py-receipt-tab-item\" onclick=\"pyReceiptSwitchTab('solution')\">Solution<\/div>\n            <\/div>\n\n            <div id=\"py-receipt-tab-statement\" class=\"py-receipt-pane-content active\">\n                <h1 id=\"python-exercise-5-2-phonebook\">Python Exercise 5.2: Phonebook<\/h1>\n                <p>Create a dictionary-based phonebook with Add, Search, Delete menu.<\/p>\n                <p>Your program should:<\/p>\n                <ul>\n                    <li>Use a dictionary to store contact names as keys and phone numbers as values.<\/li>\n                    <li>Display a menu with options: 1. Add Contact, 2. Search Contact, 3. Delete Contact, 4. Exit.<\/li>\n                    <li>For Add: prompt for name and phone number, add to dictionary.<\/li>\n                    <li>For Search: prompt for name, display phone number if found, else \"Contact not found\".<\/li>\n                    <li>For Delete: prompt for name, remove if exists, else \"Contact not found\".<\/li>\n                    <li>Continue looping until user chooses Exit.<\/li>\n                <\/ul>\n\n                <h3 id=\"sample-interaction\">Sample Interaction:<\/h3>\n                <div class=\"py-receipt-sample-box\">\n                    <div class=\"py-receipt-sample-header\">\n                        <div class=\"py-receipt-sample-col-title\">Input<\/div>\n                        <div class=\"py-receipt-sample-col-title\">Output<\/div>\n                    <\/div>\n                    <div class=\"py-receipt-sample-body\">\n                        <div class=\"py-receipt-sample-col-content\">1\nJohn Doe\n123-456-7890\n2\nJohn Doe\n3\nJane Doe\n4<\/div>\n                        <div class=\"py-receipt-sample-col-content\">Contact added.\nPhone: 123-456-7890\nContact not found.\nExiting...<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div id=\"py-receipt-tab-solution\" class=\"py-receipt-pane-content\">\n                <h1 id=\"solution\">Solution<\/h1>\n                <p>Here is one way to implement a phonebook using a dictionary.<\/p>\n                <div class=\"py-receipt-solution-block\"># Phonebook dictionary\nphonebook = {}\n\nwhile True:\n    print(\"1. Add Contact\")\n    print(\"2. Search Contact\")\n    print(\"3. Delete Contact\")\n    print(\"4. Exit\")\n    choice = input(\"Choose an option: \")\n    \n    if choice == \"1\":\n        name = input(\"Enter name: \")\n        phone = input(\"Enter phone number: \")\n        phonebook[name] = phone\n        print(\"Contact added.\")\n    elif choice == \"2\":\n        name = input(\"Enter name to search: \")\n        if name in phonebook:\n            print(f\"Phone: {phonebook[name]}\")\n        else:\n            print(\"Contact not found.\")\n    elif choice == \"3\":\n        name = input(\"Enter name to delete: \")\n        if name in phonebook:\n            del phonebook[name]\n            print(\"Contact deleted.\")\n        else:\n            print(\"Contact not found.\")\n    elif choice == \"4\":\n        print(\"Exiting...\")\n        break\n    else:\n        print(\"Invalid choice.\")<\/div>\n                \n                <p style=\"margin-top:20px\"><strong>Key Concepts:<\/strong><\/p>\n                <ul>\n                    <li><code>dict<\/code> is used for key-value storage of contacts.<\/li>\n                    <li><code>in<\/code> operator checks if a key exists in the dictionary.<\/li>\n                    <li><code>del<\/code> removes a key-value pair from the dictionary.<\/li>\n                    <li>Infinite <code>while True<\/code> loop with <code>break<\/code> for menu system.<\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n\n        <div class=\"py-receipt-right-pane\">\n            <div class=\"py-receipt-editor-top-bar\">\n                <span class=\"py-receipt-lang-label\">Python 3<\/span>\n                <div class=\"py-receipt-editor-settings\">\n                    <i class=\"fas fa-expand\" id=\"py-receipt-fullscreenBtn\" title=\"Toggle Fullscreen\"><\/i>\n                <\/div>\n            <\/div>\n\n            <div class=\"py-receipt-code-area\">\n                <div id=\"py-receipt-code-editor-div\"><\/div>\n            <\/div>\n\n            <div class=\"py-receipt-console-section\">\n                <div class=\"py-receipt-console-header\">Test Console<\/div>\n                <div class=\"py-receipt-console-body\">\n                    <div class=\"py-receipt-input-wrapper\">\n                        <label class=\"py-receipt-console-label\">Custom Input (Stdin)<\/label>\n                        <textarea id=\"py-receipt-custom-input\" class=\"py-receipt-custom-input-area\" placeholder=\"Enter input here...\">1\nJohn Doe\n123-456-7890\n2\nJohn Doe\n3\nJane Doe\n4<\/textarea>\n                    <\/div>\n                    <div class=\"py-receipt-output-wrapper\">\n                        <label class=\"py-receipt-console-label\">Output<\/label>\n                        <div id=\"py-receipt-output-console\" class=\"py-receipt-output-display\">Run code to see output...<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"py-receipt-footer-actions\">\n                <a id=\"py-receipt-btn-prev-mobile\" class=\"py-receipt-btn py-receipt-btn-secondary py-receipt-hidden py-receipt-btn-mobile\" href=\"\">&larr; Previous<\/a>\n\n                <div class=\"py-receipt-execution-group\">\n                    <button class=\"py-receipt-btn py-receipt-btn-secondary\" onclick=\"pyReceiptResetCode()\">Reset<\/button>\n                    \n                    <button class=\"py-receipt-btn py-receipt-btn-primary\" onclick=\"pyReceiptRunCode()\">\n                        <span id=\"py-receipt-btn-text\">Run Code<\/span>\n                        <span class=\"py-receipt-spinner\" id=\"py-receipt-btn-spinner\"><\/span>\n                    <\/button>\n                <\/div>\n\n                <a id=\"py-receipt-btn-next-mobile\" class=\"py-receipt-btn py-receipt-btn-primary py-receipt-hidden py-receipt-btn-mobile\" href=\"\">Next &rarr;<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/codemirror.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/mode\/python\/python.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/addon\/edit\/closebrackets.min.js\"><\/script>\n\n<script>\n    \/\/ Global variable for this specific exercise to allow inline HTML clicks\n    var pyReceiptEditor; \n    var pyReceiptStarterCode;\n\n    \/\/ --- 1. CONFIGURATION: EXERCISE LINKS ---\n    const pyReceiptNextLink = \"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-to-find-common-students\"; \n    const pyReceiptPrevLink = \"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-to-count-the-character\"; \n\n    \/\/ --- 2. Button Visibility Logic (Updates both Desktop and Mobile buttons) ---\n    document.addEventListener(\"DOMContentLoaded\", function() {\n        \/\/ Desktop Top Buttons\n        const prevBtnTop = document.getElementById('py-receipt-btn-prev-top');\n        const nextBtnTop = document.getElementById('py-receipt-btn-next-top');\n        \n        \/\/ Mobile Bottom Buttons\n        const prevBtnMobile = document.getElementById('py-receipt-btn-prev-mobile');\n        const nextBtnMobile = document.getElementById('py-receipt-btn-next-mobile');\n\n        if (pyReceiptPrevLink && pyReceiptPrevLink.trim() !== \"\") {\n    prevBtnTop.classList.remove('py-receipt-hidden');\n    prevBtnTop.href = pyReceiptPrevLink;         \/\/ \u2190 ADD\n    prevBtnMobile.classList.remove('py-receipt-hidden');\n    prevBtnMobile.href = pyReceiptPrevLink;      \/\/ \u2190 ADD\n}\n\nif (pyReceiptNextLink && pyReceiptNextLink.trim() !== \"\") {\n    nextBtnTop.classList.remove('py-receipt-hidden');\n    nextBtnTop.href = pyReceiptNextLink;         \/\/ \u2190 ADD\n    nextBtnMobile.classList.remove('py-receipt-hidden');\n    nextBtnMobile.href = pyReceiptNextLink;      \/\/ \u2190 ADD\n}\n    });\n\n    \/\/ --- 3. IDE Logic ---\n    function pyReceiptSwitchTab(tabName) {\n        document.querySelectorAll('.py-receipt-pane-content').forEach(el => el.classList.remove('active'));\n        document.querySelectorAll('.py-receipt-tab-item').forEach(el => el.classList.remove('active'));\n        document.getElementById('py-receipt-tab-' + tabName).classList.add('active');\n        \n        const tabs = document.querySelectorAll('.py-receipt-tab-item');\n        if(tabName === 'statement') tabs[0].classList.add('active');\n        if(tabName === 'solution') tabs[1].classList.add('active');\n    }\n\n    const pyReceiptFullscreenBtn = document.getElementById('py-receipt-fullscreenBtn');\n    const pyReceiptIdeContainer = document.getElementById('py-receipt-ideContainer');\n\n    if(pyReceiptFullscreenBtn) {\n        pyReceiptFullscreenBtn.addEventListener('click', () => {\n            if (!document.fullscreenElement) {\n                pyReceiptIdeContainer.requestFullscreen().catch(err => alert(`Error: ${err.message}`));\n                pyReceiptFullscreenBtn.classList.replace('fa-expand', 'fa-compress');\n            } else {\n                document.exitFullscreen();\n                pyReceiptFullscreenBtn.classList.replace('fa-compress', 'fa-expand');\n            }\n        });\n    }\n\n    \/\/ --- STARTER CODE ---\n    pyReceiptStarterCode = `# Exercise 5.2: Phonebook\n# Create a dictionary-based phonebook with menu\n\n# 1. Initialize an empty dictionary for contacts\n\n# 2. Create a loop for the menu\n\n# 3. Handle Add Contact option\n\n# 4. Handle Search Contact option\n\n# 5. Handle Delete Contact option\n\n# 6. Handle Exit option\n`;\n\n    \/\/ Initialize CodeMirror on the prefixed ID\n    pyReceiptEditor = CodeMirror(document.getElementById(\"py-receipt-code-editor-div\"), {\n        value: pyReceiptStarterCode,\n        mode: \"python\",\n        theme: \"eclipse\",\n        lineNumbers: true,\n        indentUnit: 4,\n        autoCloseBrackets: true\n    });\n\n    \/\/ --- 4. EXECUTION LOGIC ---\n    function pyReceiptResetCode() {\n        pyReceiptEditor.setValue(pyReceiptStarterCode);\n        document.getElementById('py-receipt-output-console').textContent = 'Run code to see output...';\n    }\n\n    function pyReceiptRunCode() {\n        const spinner = document.getElementById('py-receipt-btn-spinner');\n        const btnText = document.getElementById('py-receipt-btn-text');\n        const outputBox = document.getElementById('py-receipt-output-console');\n        \n        spinner.style.display = \"inline-block\";\n        btnText.innerText = \"Running \";\n        outputBox.innerText = \"Processing...\";\n        outputBox.style.color = \"#6b7280\";\n\n        const pythonCode = pyReceiptEditor.getValue();\n        const userInput = document.getElementById('py-receipt-custom-input').value;\n\n        fetch(\"https:\/\/blogsupport123-python-compiler.hf.space\/api\/run-python\", {\n            method: \"POST\",\n            headers: { \"Content-Type\": \"application\/json\" },\n            body: JSON.stringify({ code: pythonCode, input: userInput }),\n        })\n        .then(response => response.json())\n        .then(data => {\n            if (data.output) {\n                outputBox.innerText = data.output;\n                outputBox.style.color = \"#1f2937\";\n            } else if (data.error || data.errors) {\n                outputBox.innerText = data.error || data.errors;\n                outputBox.style.color = \"#ef4444\";\n            } else {\n                outputBox.innerText = \"No output returned.\";\n            }\n        })\n        .catch(err => {\n            outputBox.innerText = \"Error: \" + err.message;\n            outputBox.style.color = \"#ef4444\";\n        })\n        .finally(() => {\n            spinner.style.display = \"none\";\n            btnText.innerText = \"Run Code\";\n        });\n    }\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Exercise 5.2 &larr; Previous Module 5: Dictionaries &#038; Sets Next &rarr; Statement Solution Python Exercise 5.2: Phonebook Create a dictionary-based phonebook with Add, Search, Delete menu. Your program should: Use a dictionary to store contact names as keys and phone numbers as values. Display a menu with options: 1. Add Contact, 2. Search Contact, 3. [&hellip;]<\/p>\n","protected":false},"author":41,"featured_media":0,"parent":114145,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[25860],"tags":[36796,36900],"class_list":["post-117557","page","type-page","status-publish","hentry","category-software","tag-python","tag-python-exercise-2"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Python Program to Create a dictionary-based phonebook - Great Learning Blog: Free Resources what Matters to shape your Career!<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Program to Create a dictionary-based phonebook\" \/>\n<meta property=\"og:description\" content=\"Exercise 5.2 &larr; Previous Module 5: Dictionaries &amp; Sets Next &rarr; Statement Solution Python Exercise 5.2: Phonebook Create a dictionary-based phonebook with Add, Search, Delete menu. Your program should: Use a dictionary to store contact names as keys and phone numbers as values. Display a menu with options: 1. Add Contact, 2. Search Contact, 3. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/\" \/>\n<meta property=\"og:site_name\" content=\"Great Learning Blog: Free Resources what Matters to shape your Career!\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/GreatLearningOfficial\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@Great_Learning\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/create-a-dictionary-based-phonebook\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/create-a-dictionary-based-phonebook\\\/\"},\"author\":{\"name\":\"Great Learning Editorial Team\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/person\\\/6f993d1be4c584a335951e836f2656ad\"},\"headline\":\"Python Program to Create a dictionary-based phonebook\",\"datePublished\":\"2026-05-07T10:06:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/create-a-dictionary-based-phonebook\\\/\"},\"wordCount\":284,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\"},\"keywords\":[\"python\",\"python exercise\"],\"articleSection\":[\"IT\\\/Software Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/create-a-dictionary-based-phonebook\\\/\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/create-a-dictionary-based-phonebook\\\/\",\"name\":\"Python Program to Create a dictionary-based phonebook - Great Learning Blog: Free Resources what Matters to shape your Career!\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-05-07T10:06:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/create-a-dictionary-based-phonebook\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/create-a-dictionary-based-phonebook\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/create-a-dictionary-based-phonebook\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python Exercises\",\"item\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Python Program to Create a dictionary-based phonebook\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\",\"name\":\"Great Learning Blog\",\"description\":\"Learn, Upskill &amp; Career Development Guide and Resources\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\"},\"alternateName\":\"Great Learning\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\",\"name\":\"Great Learning\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/GL-Logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/GL-Logo.jpg\",\"width\":900,\"height\":900,\"caption\":\"Great Learning\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/GreatLearningOfficial\\\/\",\"https:\\\/\\\/x.com\\\/Great_Learning\",\"https:\\\/\\\/www.instagram.com\\\/greatlearningofficial\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/school\\\/great-learning\\\/\",\"https:\\\/\\\/in.pinterest.com\\\/greatlearning12\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/beaconelearning\\\/\"],\"description\":\"Great Learning is a leading global ed-tech company for professional training and higher education. It offers comprehensive, industry-relevant, hands-on learning programs across various business, technology, and interdisciplinary domains driving the digital economy. These programs are developed and offered in collaboration with the world's foremost academic institutions.\",\"email\":\"info@mygreatlearning.com\",\"legalName\":\"Great Learning Education Services Pvt. Ltd\",\"foundingDate\":\"2013-11-29\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/person\\\/6f993d1be4c584a335951e836f2656ad\",\"name\":\"Great Learning Editorial Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"caption\":\"Great Learning Editorial Team\"},\"description\":\"The Great Learning Editorial Staff includes a dynamic team of subject matter experts, instructors, and education professionals who combine their deep industry knowledge with innovative teaching methods. Their mission is to provide learners with the skills and insights needed to excel in their careers, whether through upskilling, reskilling, or transitioning into new fields.\",\"sameAs\":[\"https:\\\/\\\/www.mygreatlearning.com\\\/\",\"https:\\\/\\\/in.linkedin.com\\\/school\\\/great-learning\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/Great_Learning\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCObs0kLIrDjX2LLSybqNaEA\"],\"award\":[\"Best EdTech Company of the Year 2024\",\"Education Economictimes Outstanding Education\\\/Edtech Solution Provider of the Year 2024\",\"Leading E-learning Platform 2024\"],\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/author\\\/greatlearning\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python Program to Create a dictionary-based phonebook - Great Learning Blog: Free Resources what Matters to shape your Career!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/","og_locale":"en_US","og_type":"article","og_title":"Python Program to Create a dictionary-based phonebook","og_description":"Exercise 5.2 &larr; Previous Module 5: Dictionaries & Sets Next &rarr; Statement Solution Python Exercise 5.2: Phonebook Create a dictionary-based phonebook with Add, Search, Delete menu. Your program should: Use a dictionary to store contact names as keys and phone numbers as values. Display a menu with options: 1. Add Contact, 2. Search Contact, 3. [&hellip;]","og_url":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/","og_site_name":"Great Learning Blog: Free Resources what Matters to shape your Career!","article_publisher":"https:\/\/www.facebook.com\/GreatLearningOfficial\/","twitter_card":"summary_large_image","twitter_site":"@Great_Learning","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/#article","isPartOf":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/"},"author":{"name":"Great Learning Editorial Team","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/person\/6f993d1be4c584a335951e836f2656ad"},"headline":"Python Program to Create a dictionary-based phonebook","datePublished":"2026-05-07T10:06:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/"},"wordCount":284,"publisher":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization"},"keywords":["python","python exercise"],"articleSection":["IT\/Software Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/","url":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/","name":"Python Program to Create a dictionary-based phonebook - Great Learning Blog: Free Resources what Matters to shape your Career!","isPartOf":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#website"},"datePublished":"2026-05-07T10:06:12+00:00","breadcrumb":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/create-a-dictionary-based-phonebook\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.mygreatlearning.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python Exercises","item":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/"},{"@type":"ListItem","position":3,"name":"Python Program to Create a dictionary-based phonebook"}]},{"@type":"WebSite","@id":"https:\/\/www.mygreatlearning.com\/blog\/#website","url":"https:\/\/www.mygreatlearning.com\/blog\/","name":"Great Learning Blog","description":"Learn, Upskill &amp; Career Development Guide and Resources","publisher":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization"},"alternateName":"Great Learning","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mygreatlearning.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization","name":"Great Learning","url":"https:\/\/www.mygreatlearning.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/06\/GL-Logo.jpg","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/06\/GL-Logo.jpg","width":900,"height":900,"caption":"Great Learning"},"image":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/GreatLearningOfficial\/","https:\/\/x.com\/Great_Learning","https:\/\/www.instagram.com\/greatlearningofficial\/","https:\/\/www.linkedin.com\/school\/great-learning\/","https:\/\/in.pinterest.com\/greatlearning12\/","https:\/\/www.youtube.com\/user\/beaconelearning\/"],"description":"Great Learning is a leading global ed-tech company for professional training and higher education. It offers comprehensive, industry-relevant, hands-on learning programs across various business, technology, and interdisciplinary domains driving the digital economy. These programs are developed and offered in collaboration with the world's foremost academic institutions.","email":"info@mygreatlearning.com","legalName":"Great Learning Education Services Pvt. Ltd","foundingDate":"2013-11-29","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/person\/6f993d1be4c584a335951e836f2656ad","name":"Great Learning Editorial Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","caption":"Great Learning Editorial Team"},"description":"The Great Learning Editorial Staff includes a dynamic team of subject matter experts, instructors, and education professionals who combine their deep industry knowledge with innovative teaching methods. Their mission is to provide learners with the skills and insights needed to excel in their careers, whether through upskilling, reskilling, or transitioning into new fields.","sameAs":["https:\/\/www.mygreatlearning.com\/","https:\/\/in.linkedin.com\/school\/great-learning\/","https:\/\/x.com\/https:\/\/twitter.com\/Great_Learning","https:\/\/www.youtube.com\/channel\/UCObs0kLIrDjX2LLSybqNaEA"],"award":["Best EdTech Company of the Year 2024","Education Economictimes Outstanding Education\/Edtech Solution Provider of the Year 2024","Leading E-learning Platform 2024"],"url":"https:\/\/www.mygreatlearning.com\/blog\/author\/greatlearning\/"}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"web-stories-poster-portrait":false,"web-stories-publisher-logo":false,"web-stories-thumbnail":false},"uagb_author_info":{"display_name":"Great Learning Editorial Team","author_link":"https:\/\/www.mygreatlearning.com\/blog\/author\/greatlearning\/"},"uagb_comment_info":0,"uagb_excerpt":"Exercise 5.2 &larr; Previous Module 5: Dictionaries & Sets Next &rarr; Statement Solution Python Exercise 5.2: Phonebook Create a dictionary-based phonebook with Add, Search, Delete menu. Your program should: Use a dictionary to store contact names as keys and phone numbers as values. Display a menu with options: 1. Add Contact, 2. Search Contact, 3.&hellip;","_links":{"self":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/117557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/comments?post=117557"}],"version-history":[{"count":7,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/117557\/revisions"}],"predecessor-version":[{"id":117559,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/117557\/revisions\/117559"}],"up":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/114145"}],"wp:attachment":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/media?parent=117557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/categories?post=117557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/tags?post=117557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}