+1 (315) 557-6473 

Contact management using Python Homework Solution


Text-based contact management

Project Description

Create a program that a user can use to manage the primary contacts, and for this Python assignment, implement functions that allow the user to add new contacts, update existing ones, and delete contacts from the list. The program should also provide an option to display the list of contacts, and each contact entry should include details such as name, phone number, and email address. By completing this Python assignment, you will gain practical experience in handling data structures and user interactions within a console-based application.

Sample Run

Contact Management System

COMMAND MENU

list - Display all contacts

view - View a contact

add - Add a contact

del - Delete a contact

exit - Exit program

Command: list

1. Betty Johnson, 3333

2. Mark Arlington, 4444

Command: view

Number (1 - 2): 3

Invalid number. Try again!

Command: view

Number (1 - 2): 2

Mark Arlington, 4444

Command: add

Name: Andy Patel

Email: andy.patel@hotmail.com

Phone: (415) 222-3333

ID: 5555

Andy Patel, 5555 was added.

Command: del

Number (1 - 3): 0

Invalid number. Try again!

Command: del

Number (1 - 3): 1

Betty Johnson, 3333 was deleted.

Command: list

1. Mark Arlington, 4444

2. Andy Patel, 5555

Command: exit

Thank you for using my app

Specifications

  • Your program should have the following functions:
  • def display(contacts)
  • def add(contacts)
  • def view(contacts)
  • def delete(contacts)
  • def display_title()
  • def display_menu()
  • def main()
    • Use a list of lists (2-dimensional list) to store the data for the contacts. Provide starting data for the following contacts:
  • "Betty Johnson", "betty.johnson@gmail.com", "(408) 111-2222", "3333"
  • "Mark Arlington", "mark.arlington@yahoo.com", "(669) 123-4567", "4444"
    • Your program should display the current number of contacts on the list so that the user knows how to enter valid data. For example, if the list has 3 contacts, your program should display "Number (1 - 3): ".
    • Note that the first index of the 2-dimensional list is 0, but the first contact starts with 1

    Solution:

    ''' def display(contacts): # Checking the list contacts to see if there are any contacts added # If there are no contacts, length of list will be 1 if len(contacts) == 1: print('No contacts added. Please add a contact first') return None # Printing the list with its order number # enumerate() is used to provide serial numbers to container elements for num, contact in enumerate(contacts[1:], 1): print('{}. {}, {}'.format(num, contact[0], contact[-1])) def add(contacts): name = input('Name: ') email = input('Email: ') phone = input('Phone: ') contact_id = input('ID: ') # Adding the user details taken via input to contacts list contacts.append([name, email, phone, contact_id]) print('{}, {} was added.'.format(name, contact_id)) def view(contacts): # Checking the list contacts to see if there are any contacts added # If there are no contacts, length of list will be 1 if len(contacts) == 1: print('No contacts added. Please add a contact first') return None choice = int(input('Number ({} - {}): '.format(1, len(contacts)-1))) # Checking if serial number entered is valid or not if choice < 1 or choice >= len(contacts): print('Invalid Number. Try again!') return None print('{}, {}'.format(contacts[choice][0], contacts[choice][-1])) def delete(contacts): # Checking the list contacts to see if there are any contacts added # If there are no contacts, length of list will be 1 if len(contacts) == 1: print('No contacts added. Please add a contact first') return None # Checking if serial number entered is valid or not choice = int(input('Number ({} - {}): '.format(1, len(contacts)-1))) if choice < 1 or choice >= len(contacts): print('Invalid Number. Try again!') return None # Deleting the specified contact del contacts[choice] def display_title(): print('Contact Management System') def display_menu(): # Printing the Display Menu print() print() print('COMMAND MENU') print('list - Display all contacts') print('view - View a contact') print('add - Add a contact') print('del - Delete a contact') print('exit - Exit program') print() def main(): display_title() # Initializing contacts(list of list) with an empty list # So that contacts added will start with index 1 # If length of contacts list is 1, it is essentially empty contacts = [[]] command = 'None' while command != 'exit': display_menu() command = input('Command: ') valid_commands = ['list', 'view', 'add', 'del', 'exit'] # Checking if the input command is valid or not if command not in valid_commands: print('Invalid Command. Try again!') continue if command == 'list': # Calling the display function display(contacts) elif command == 'view': # Calling the view function view(contacts) elif command == 'add': # Calling the add function add(contacts) elif command == 'del': # Calling the delete function delete(contacts) elif command == 'exit': print() print('Thank you for using my app') break if __name__ == '__main__': main()