In this article, we will discuss some suggestions for further learning and resources for those who have completed the Intermediate Python course.
Further Learning
If you are looking to continue your Python journey and delve deeper into the language, consider taking the Advanced Python course. This course will cover more advanced topics such as metaprogramming, decorators, and asynchronous programming, and will give you the skills you need to become a proficient Python developer.
In addition to courses, there are a plethora of resources available for further learning and practice. Some suggestions include:
- Python documentation: The official Python documentation is a great resource for learning about the language and its standard library. It includes in-depth explanations and examples for every module and function.
- Python resources: There are many websites and blogs that offer Python tutorials, tips, and tricks. Some popular ones include Real Python, Python Tutorials, and Python.org.
- Python communities: Joining a Python community or online forum is a great way to learn from others and get help with any questions or challenges you may encounter. Some popular communities include the Python subreddit, Stack Overflow, and the Python Discord server.
- Practice projects: One of the best ways to improve your Python skills is to practice by working on projects. You can find ideas for projects on websites like Project Euler or by searching for “Python project ideas” online.
By taking advantage of these resources and continuing your learning journey, you will be well on your way to becoming a proficient Python programmer.
Exercises
To review these concepts, we will go through a series of exercises designed to test your understanding and apply what you have learned.
Write a Python function that takes a list of strings and returns a new list with all the strings in upper case.
def to_upper(strings):
return [string.upper() for string in strings]
print(to_upper(['a', 'b', 'c'])) # ['A', 'B', 'C']
Write a Python function that takes a list of numbers and returns the sum of the even numbers in the list.
def sum_evens(numbers):
return sum([number for number in numbers if number % 2 == 0])
print(sum_evens([1, 2, 3, 4])) # 6
Write a Python function that takes a list of numbers and returns a new list with only the positive numbers.
def positive_numbers(numbers):
return [number for number in numbers if number > 0]
print(positive_numbers([1, -2, 3, -4])) # [1, 3]
Write a Python function that takes a list of strings and a string, and returns a new list with all the strings that contain the given string.
def containing_strings(strings, s):
return [string for string in strings if s in string]
print(containing_strings(['abc', 'def', 'ghi'], 'a')) # ['abc']
Research and choose three additional machine learning algorithms that you think would be interesting to learn about. Write a short summary of each algorithm, including its purpose and when it is typically used.
Solution:
- K-Nearest Neighbors (KNN): KNN is a classification algorithm that works by finding the K data points in a dataset that are closest to a new data point and assigning the new data point to the class that the majority of those K points belong to. It is typically used for classification tasks where the data is labeled, but it can also be used for regression.
- Support Vector Machines (SVMs): SVMs are a type of supervised learning algorithm that can be used for classification, regression, and outlier detection. They work by finding the hyperplane in a high-dimensional space that maximally separates different classes. They are particularly useful for datasets with large numbers of features, as they can effectively handle high-dimensional spaces.
- Artificial Neural Networks (ANNs): ANNs are a type of machine learning algorithm inspired by the structure and function of the human brain. They consist of multiple layers of interconnected “neurons” that process and transmit information. ANNs can be used for a wide range of tasks, including classification, regression, and clustering. They are particularly useful for tasks that require the ability to learn and adapt based on experience.