- Explore and use various tools such as: GitHub, VirtualBox, Tuffix, Linux Terminal, and VS Code.
- Write a Python program using:
- lists
- loops
- conditional statements
- input/output
- modules
- functions
- Run and test a Python program.
-
Setting Up Python Environment
- Verify Python Installation:
- Open your terminal (Command Prompt for Windows, Terminal for macOS/Linux).
- Type python --version and press Enter.
- You should see the installed Python version displayed.
-
Configuring Visual Studio Code (VS Code)
- Install Python Extension:
- Open VS Code.
- Go to the Extensions view by clicking on the Extensions icon in the Activity Bar on the side of the window or by pressing Ctrl+Shift+X.
- Search for “Python” in the Extensions Marketplace.
- Click “Install” on the Python extension by Microsoft.
-
Running Python in VS Code
- Create a New Python File:
- In VS Code, open a folder where you want to save your Python projects.
- Click on File > New File or press Ctrl+N to create a new file.
- Save the file with a .py extension (e.g., hello.py).
-
Write a Python program that performs as a Tuffy Titan Contact List which contains a list of contacts that can be modified or deleted.
-
Create a
contactsmodule to meet the following requirements:- Create a file named
contacts.py. - Add a comment at the top of the file which indicates your name, date and the purpose of the file.
- Note: All contact lists within this module should assume the list is of the form:
[["first name","last name"],["first name","last name"],...] - Define a function named
print_listto meet the following requirements:- Take a contact list as a parameter.
- Implement a docstring with a simple sentence that describes the function.
- Print a header for the printout which indicates the list index number, the first name, and the last name column headers.
- Loop through the contact list and print each contact on a separate line displaying: the list index number, the contact first name, and the contact last name. Assuming
iis the index value andcontactsis the name of the list, the following will format the output:print(f'{str(i):8}{contacts[i][0]:22}{contacts[i][1]:22}')
- Define a function named
add_contactto meet the following requirements:- Take a contact list as a parameter.
- Implement a docstring with a simple sentence that describes the function.
- Prompt the user for the first name.
- Prompt the user for the last name.
- Add the contact to the list.
- Return the updated list.
- Define a function named
modify_contactto meet the following requirements:- Take a contact list as a parameter.
- Implement a docstring with a simple sentence that describes the function.
- Prompt the user for the list index number to modify. If the index it is not within the range of the contact list, print out
Invalid index number.and return the unedited list. - Prompt the user for the first name.
- Prompt the user for the last name.
- Modify the contact list at the index value.
- Return the updated list.
- Define a function named
delete_contactto meet the following requirements:- Take a contact list as a parameter.
- Implement a docstring with a simple sentence that describes the function.
- Prompt the user for the list index number to delete. If the index it is not within the range of the contact list, print out
Invalid index number.and return the unedited list. - Delete the contact at the index value.
- Return the updated list.
- Create a file named
-
Create a
maindriver program to meet the following requirements:- Create a file named
main.py. - Add a comment at the top of the file which indicates your name, date and the purpose of the file.
- Import the
contactsmodule. - Define a variable to use for the contact list.
- Implement a menu within a loop with following choices:
- Print list
- Add contact
- Modify contact
- Delete contact
- Exit the program
- Prompt the user for the menu choice and call the appropriate
contactsfunction or exit the program.
- Create a file named
-
Run the program using the command below and repeat the steps above until you are satisfied your program output meets the above requirements.
python3 -m main -
Typical input and output for the program:
*** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 2 Enter first name: Richard Enter last name: Stallman *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 2 Enter first name: Bill Enter last name: Gates *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 2 Enter first name: Steve Enter last name: Jobs *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 1 ================== CONTACT LIST ================== Index First Name Last Name ====== ==================== ==================== 0 Richard Stallman 1 Bill Gates 2 Steve Jobs *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 3 Enter the index number: 2 Enter first name: Tim Enter last name: Cook *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 1 ================== CONTACT LIST ================== Index First Name Last Name ====== ==================== ==================== 0 Richard Stallman 1 Bill Gates 2 Tim Cook *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 3 Enter the index number: 5 Invalid index number. *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 4 Enter the index number: 1 *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 1 ================== CONTACT LIST ================== Index First Name Last Name ====== ==================== ==================== 0 Richard Stallman 1 Tim Cook *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 4 Enter the index number: 5 Invalid index number. *** TUFFY TITAN CONTACT MAIN MENU 1. Print list 2. Add contact 3. Modify contact 4. Delete contact 5. Exit the program Enter menu choice: 5 -
Run the unit testing program to ensure that your program runs as expected.
For Linux and Mac users
./test.shFor windows users
./win_test.batThe unit testing will output the results of a series of tests using specific input and expected output. Any error will provide information on where the expected output is different from the actual output. You will need to edit your source code to fix the error and run
./test.shor./win_test.batrepeatedly until it passes all the test.
Submit a zip file containing all the code files on canvas
Naming Convention: CWID_LastName.zip
Your zipped folder should contain below files:
CWID_LASTNAME.zip -
| > test.py
| > test.sh
| > main.py
| > contacts.py
| > test.txt
| > win_test.bat
- All points add up to a total of 100 points possible as detailed below. Partial credit will be given where applicable.
| Points | Description |
|---|---|
| 50 | Environment setup and Lab Submission |
| 15 | main.py file submitted contains the main driver program and meets the program requirements |
| 15 | contacts.py file submitted contains the contacts module and meets the program requirements |
| 4 | unit test passes Test01_AddContact |
| 4 | unit test passes Test02_ModifyContact |
| 4 | unit test passes Test02_ModifyContact Invalid Index Number |
| 4 | unit test passes Test04_DeleteContact |
| 4 | unit test passes Test04_DeleteContact Invalid Index Number |