What can you do with Python? Quite a bit, actually. In fact, if you want to use Python for your projects, you’re not alone; Netflix, Facebook, and Google are just a few of the high-powered companies that utilize Python on a daily basis.
Thanks to its easy readability and range of applications, Python is a popular programming language and there are plenty of Python projects available for programmers at any level. These projects include, but are not limited to:
- Machine Learning
- Web Development
Python for Automation
If you are looking for a smaller project to test your abilities, scripting is a good place to start. Python is often used for automation tasks because of its simplicity to write and how easy it is to transfer code to similar projects.
Essentially, scripting involves creating small programs to do repetitive tasks, such as organizing emails based on keyword, crawling through a collection of documents to rename specific titles, or merging and watermarking PDFs.
Not only does scripting help eliminate dull work, but the simplicity of the project allows users to test their code often.
There are plenty of resources available to help you start your automation projects. Fabric, for example, is a library that can help you automate your command line. Beautiful Soup, on the other hand, helps you pull data from various locations.
The final resource, GitHub, actually serves as a resource for every single one of the Python projects listed in this article. The website is a network of developers and projects and provides an invaluable range of assets for you in your Python adventures.
Python for Computing
Another fairly simple application of Python is the ability to create programs to collect and break down data. For instance, with Python, you can mine a website for information and run an analysis of the results.
From creating simple lists of numbers or specific terms to generating extensive graphs of the findings, Python can be utilized for a range of computing tasks. In general, however, the more difficult the informational request, the more difficult the coding.
Pandas is a great resource, helping you move beyond simple data collection with Python to actual data analysis.
If you’re looking for more programs, specifically those that will help with scientific computing, you can check out SciPy, which includes resources for scientists and engineers.
Like many resources for Python, these are open-source, which means you are allowed to modify the code and distribute your own version.
Specific applications for this sort of coding are vast. You could run data analytics on a Twitter feed to try to parse out trends, monitor stock prices and set notifications for when they reach a certain dollar value, or track online sales data if you run your own business. These are, of course, just scratching the surface for the ways scientific and numeric computing could be used.
On a much larger scale, this sort of project is used by companies like Spotify, which implements Python-based programming to analyze your music library in order to provide accurate recommendations and playlists.
Python for Machine Learning
Combine automation and scientific/numeric computing and you have the building blocks for machine learning, which is responsible for everything from the movies Netflix recommends you to your photo library identifying the subjects of your photographs.
Basically, machine learning works when a program is taught to try to find a particular pattern – like your unique facial features or your taste in TV shows – and then make predictions with new information based on what it has already learned.
Scikit-learn is usually agreed to be the easiest of the systems to use, it’s open-source and offers a wider variety of programs to use, so if you’re serious about machine learning, you will probably want to start there.
Tensorflow offers more basic tools, meaning while it might be harder for beginners to pick up, it eventually offers a wider range of capabilities.
Theano, on the other hand, is similar to Tensorflow. It runs entirely on Python and can be faster than Tensorflow, but can be difficult to debug.
Though it might seem daunting, there is actually quite a bit to do with machine learning, even for beginners. Remember the project we talked about earlier that would allow you to create a system to track stock prices? Machine learning could take it a step further, allowing you to design a program to predict stock prices.
Know anyone with messy handwriting? You can actually use Python to teach a machine to read it. Or, if you’re running a website, you could design a chatbot to help customers at all hours of the day. Like automation, machine learning has real potential to make your life easier!
Python for Web Development
That said, Python is more than just useful for automation tasks and is growing in popularity as a system useful for web development. In fact, Instagram is one of the biggest Python users in the world!
As Hui Ding, who served as Director of Engineering for Instagram until 2018, explains: “Python is user-friendly for engineers – it’s easy to get up to speed and get out the product.”
When working with web development, Python is most useful for backend coding, creating programs with similar functions as the numeric computing tasks. The remainder of the work is typically dependent on web frameworks, which work with Python coding. These are split into two categories: full-stack and micro web-frameworks.
If you haven’t done much web development before, it might be worth starting with a micro web-framework like Flask or Bottle. These frameworks are a great fit for smaller projects and they tend to offer more flexibility, so it’s easier to make changes to your project later down the line.
Of course, the smaller size of micro web-frameworks means that depending on what you do, it will not be able to support project growth.
This is where full-stack web-frameworks come in. These include popular frameworks like Django, which Instagram uses, and Pyramid. Full-stack web-frameworks are useful for larger projects; they come well equipped with a large variety of libraries and structures to help you build your site.
Furthermore, it can be easier to grow your project if you start with full-stack. The downside of these web-frameworks is they can be slow and there is less flexibility available, so make sure you like your program before starting a long-term project.
Python for Machines
Are you interested in watching your code come to life in the real world? There are all sorts of possibilities for building exciting machines when you pair your Python expertise with something like Raspberry Pi. With a few extra parts and some ingenuity, you can do just about anything.
For instance, you can bring your automation skills to your home by creating motion-sensitive lighting or programming a way for the heating to adjust based on how many people are inside.
You could venture into robotics and use Python to create a car you can control with your phone or a robot with the “brainpower” of a worm! Or, if you’d like to indulge your inner child, there’s always projects like the raspberry pi whoopi cushion, magic 8 ball, or laser tripwire to mix things up.
Basically, with some additional tech, the sky’s the limit for what you can create with a combination of Python and Raspberry Pi.
Python for Games
Speaking of your inner child, Python can also be used for the creation and implementation of video games! While Python isn’t the most popular coding language for game building, there are still opportunities available to beginner game designers who’d like to use their coding skills to create something more exciting than automated lights.
If you’re a total beginner, you can get your feet wet by “hacking” previously created games provided by Free Python Games. This can give you a feel for game design and the opportunity to practice programming games without forcing you to start from scratch. It also gives you an idea of how other people have approached programming games.
Another place to start is with a text-based choose-your-own-adventure game, which combines Python coding with very basic gameplay. The beauty of games like this is that you’re not expected to provide graphics, sound, or complex variables.
Once you get comfortable, though, you can move on to more advanced versions of game design with Ren’Py, which allows you to add art, sound, and music to your story, taking it from a simple text-based adventure to a visual novel.
Finally, if you feel ready to design full-fledged games, one of the best resources available for game design is the Pygame website. This includes tutorials for building different types of games and an extensive, open-source library filled with graphics and sounds. It also has games available from other members of the community if you need ideas.
Python for Education
By now, it should be clear that there are plenty of Python-based projects available. In fact, we’ve barely scratched the surface of possible Python project ideas. That said, there are limitations to what you can do with Python.
It’s often slower than other programs and is incompatible with mobile app development. But, there’s an advantage to learning Python: it can be useful for picking up other coding languages.
Python is a relatively easy language to learn: it’s simple, easy to read, and has access to many open source tools. Because of this, Python can be used on an educational level to prepare you to learn how to do more complicated programming. It lays the foundation of logic-based thought processes necessary for thinking about how to code.
There are plenty of free resources available to those who want to teach Python or use it as a springboard to other coding languages.
Of course, these Python project ideas are just the beginning. The sky’s the limit for what you can create. Whether you’re starting on your first basic automation project or deep in a machine learning program, there is always more to do and explore with Python.
Interested in these projects but don’t know how to code? Check out Hackbright Academy to start learning Python today.
- Admissions Office (24)
- Alum (95)
- Blog (153)
- Career Services (26)
- Diversity (17)
- Engineering Advice (57)
- Hackbright Field Trips (24)
- Hackbright Mentors (21)
- Hackbright News (105)
- Podcast (2)
- Profiles of Woman Engineers (102)
- Recruiting & Hiring (15)
- Resources (38)
- Student Blogs (24)
- Tech (50)
- Thought Piece (19)
- Uncategorized (2)
- Video (20)