Menu
CoddyTech

Edit Contact

Part of the Logic & Flow section of Coddy's GDScript journey. Lesson 27 of 78.

challenge icon

Challenge

Easy

Handle the choice 3, editing a contact. Keep everything you wrote in the previous steps.

Write edit_contact(contact_book: Dictionary). It reads a name.

  • If the name is not in contact_book, print Contact not found! and read nothing else.
  • Otherwise, read three lines: the new phone, the new email and the new address, in that order. An empty line means "keep the current value". Update the fields that are not empty, then print Contact updated successfully!

For example, if Alice is in the book and the input after the choice 3 is:

Alice
987-654-3210

456 Elm St

Alice gets the phone 987-654-3210 and the address 456 Elm St, and keeps her email.

In the loop, add an elif branch for "3" that calls edit_contact(contact_book).

Try it yourself

extends Node

func _ready():
	var contact_book := {}

	while true:
		display_menu()
		var choice := OS.read_string_from_stdin()
		if choice == "1":
			add_contact(contact_book)
		elif choice == "2":
			view_contact(contact_book)
		elif choice == "6":
			break

func display_menu() -> void:
	print("Contact Book Menu:")
	print("1. Add Contact")
	print("2. View Contact")
	print("3. Edit Contact")
	print("4. Delete Contact")
	print("5. List All Contacts")
	print("6. Exit")

func add_contact(contact_book: Dictionary) -> void:
	var contact_name := OS.read_string_from_stdin()
	if contact_book.has(contact_name):
		print("Contact already exists!")
		return
	var phone := OS.read_string_from_stdin()
	var email := OS.read_string_from_stdin()
	var address := OS.read_string_from_stdin()
	contact_book[contact_name] = {"phone": phone, "email": email, "address": address}
	print("Contact added successfully!")

func view_contact(contact_book: Dictionary) -> void:
	var contact_name := OS.read_string_from_stdin()
	if contact_book.has(contact_name):
		var contact: Dictionary = contact_book[contact_name]
		print("Name: ", contact_name)
		print("Phone: ", contact["phone"])
		print("Email: ", contact["email"])
		print("Address: ", contact["address"])
	else:
		print("Contact not found!")

All lessons in Logic & Flow

Practice on your own: Online GDScript compiler