Typically, when we think of Python, it is almost entirely with regard to software applications. Indeed, there are lots of reasons to favor this coding language within the realm of software, most of which come down to versatility, compatibility, and a relatively easy learning curve compared to some alternatives. Even among the broad benefits of Python though, there's almost never any mention of how it can be tied to hardware applications.
Despite this, it is actually possible to use Python as a means of programming hardware. This is usually done with regard to fairly simple devices and applications — typically personal projects like temperature readers or LED-lit clock mechanisms. But it's still an interesting process to learn about for those curious about Python and all its tricks.
Ultimately said, process relies on learning three specific practices.
First — naturally — you'll need to learn the basics of Python. As we've made note of previous guides regarding these basics, Python is actually relatively simple to pick up in that it consists of commands written in English (as opposed to code that can look more like gibberish to newcomers). It still takes some time to develop true coding proficiency, even with the relative simplicity. But if you start with the basics, you'll be on your way to more complex projects (such as programming hardware) in no time.
Next, if you're truly to make the project on your own, you'll need to get started with PCB design. PCBs, or Printed Circuit Boards, are in some ways the core pieces of modern electrical hardware, and can be designed and customized according to need. Today, this is done via software that guides you through the design process and allows you to test PCB function before actually fabricating a physical device. But ultimately, you'll need a PCB onto which you will fit a microcontroller — a small component that is vital to running Python code into hardware.
The final practice is to learn CircuitPython, which is actually a variation of the core programming language designed for writing code on hardware. CircuitPython is different in that it doesn't require computer software — running instead on supported board as "appearing as a USB drive". In theory, you can actually learn CircuitPython from scratch, then, if your primary goal is to write programs for hardware applications. But this learning process will be smoother if you first have a foundational understanding of Python.
Each of these steps involves some real effort and education, and of course the actual process of putting together a specific program involves complicated and intricate steps. But the notes above serve as a broad overview of the skills and processes needed to pair Python with hardware.