1. Regular Expressions in Python
Objective: To understand and implement regular expressions in Python to match and extract specific patterns from a given string.
Instructions:
Use the
re
module in Python to implement regular expressionsWrite a function called
extract_phone_numbers(string)
that takes in a string and returns a list of all the phone numbers present in the string in the format (XXX) XXX-XXXXWrite a function called
extract_email_addresses(string)
that takes in a string and returns a list of all the email addresses present in the string.Write a function called
replace_email_addresses(string, replacement)
that takes in a string and a replacement string and replaces all email addresses in the given string with the replacement string.Use the provided test cases to test your functions
Example:
string = "Please contact info@example.com for assistance. Phone: (123) 456-7890 or (111) 222-3333"
print(extract_phone_numbers(string))
# Output: ['(123) 456-7890', '(111) 222-3333']
print(extract_email_addresses(string))
# Output: ['info@example.com']
print(replace_email_addresses(string, "REPLACED"))
# Output: "Please contact REPLACED for assistance. Phone: (123) 456-7890 or (111) 222-3333"
Note:
Phone numbers and email addresses can appear in any order and more than once in the provided string.
Phone numbers may or may not have spaces or dashes in between digits.
Email addresses may or may not have .com, .edu, .gov, etc.
Be mindful of edge cases
Hint:
Phone number regex pattern: "(?\d{3})?[-.\s]?\d{3}[-.\s]?\d{4}"
Email address regex pattern: "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}"
Submission:
Create a python file named
coding_challenge.py
and paste your functions and test cases inside.Zip the python file and submit.
2. File Handling - Books Manager
Create a program that reads in a CSV file containing information about books (title, author, ISBN, and price), and then allows the user to search for books by author, ISBN, or price range.
Step 1: Create a function that takes a file name as an argument and reads in the contents of the file as a list of dictionaries, with each dictionary representing a book and containing keys for title, author, ISBN, and price.
Step 2: Create a function that takes an author's name as an argument and returns a list of all books written by that author.
Step 3: Create a function that takes an ISBN as an argument and returns the title and price of the book with that ISBN.
Step 4: Create a function that takes a minimum and maximum price as arguments and returns a list of all books within that price range.
Step 5: Use the functions from steps 2-4 in a user interface that allows the user to search for books by author, ISBN, or price range.
Bonus: Add the ability for the user to add new books to the CSV file.
3. File Handling and Dictionaries
Create a program that reads a text file containing a list of names and addresses, and then organizes the information into a dictionary.
Begin by creating a function called "parse_file" that takes in a file path as an argument.
Use the open() function to open the file and read its contents into a variable called "file_contents".
Split the contents of the file by newline characters to create a list of strings, where each string represents a line from the file.
Iterate through the list of strings and split each line by commas to create a list of lists, where each sublist represents the name and address of a person.
Create an empty dictionary called "address_book".
Iterate through the list of lists and use the first element of each sublist as the key, and the second element as the value, and add them to the "address_book" dictionary.
Return the "address_book" dictionary.
Test the function by calling it with the file path of a sample file and print the returned dictionary to the console.
Example file contents(you can add more on your own):
John Smith, 123 Main Street, Anytown USA
Jane Doe, 456 Park Avenue, Anytown USA
Bob Johnson, 789 Elm Street, Anytown USA
Example output:
{'John Smith': '123 Main Street, Anytown USA', 'Jane Doe': '456 Park Avenue, Anytown USA', 'Bob Johnson': '789 Elm Street, Anytown USA'}
4. Coding Challenge: Python Lists and Tuples
Objective: To test the candidate's knowledge of Python Lists and Tuples, and their ability to manipulate and extract information from them.
Instructions:
- Create a Python script that performs the following tasks:
Create a list of integers called
numbers
with the following values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]Create a tuple of strings called
words
with the following values: ("hello", "world", "python", "coding", "bootcamp")Use the
numbers
list and thewords
tuple to create a new list calledresult
which contains the following values: [1, "hello", 2, "world", 3, "python", 4, "coding", 5, "bootcamp", 6, 7, 8, 9, 10]Use the
result
list to extract the following sublists:
The sublist containing the values from index 2 to index 5
The sublist containing the last 5 elements of the
result
list
- Use the
result
list to extract the following elements:
The element at index 4
The element at the last index of the
result
list
Use the
result
list to count the number of occurrences of the string "python"Use the
result
list to determine if the integer 3 is present in the listUse the
result
list to remove the element at index 4Use the
result
list to insert the string "programming" at index 6Use the
result
list to sort the list in ascending orderUse the
result
list to reverse the order of the elements in the listUse the
result
list to convert it to a tuple calledfinal_tuple
The script should be well-organized and commented on and should include appropriate error handling.
The script should be submitted as a single .py file.
Evaluation Criteria:
The script successfully performs all the tasks outlined in the instructions
The script is well-organized, commented, and includes appropriate error handling
The script demonstrates a clear understanding of Python Lists and Tuples and their manipulation
5. "Smart Budget Tracker"
Objective: Create a Python program that tracks a user's expenses and generates reports on their spending habits.
Requirements:
User should be able to input different expenses with categories (e.g. food, transportation, entertainment, etc.)
User should be able to view their expenses and the total amount spent in each category
User should be able to view their overall spending and the total amount saved
The program should provide a monthly spending report and an annual report
The program should be able to suggest a budget for each category based on the user's expenses
Skills required:
Basic knowledge of Python programming
Understanding of data structures (lists, dictionaries)
Ability to use classes and objects in Python
Understanding of file operations (read and write to a file)
Ability to use built-in Python libraries such as csv and date time.
This project will challenge students to apply their knowledge of Python to real-world problems and help them learn how to structure a complex program while implementing various data structures and algorithms.
Good luck!