Idle is a very basic IDE which comes pre-packaged with python. It has very few bells and whistles but can be great for a running up a quick script for a small task. It should only really be used for python code but great features like code highlighting, autocomplete and smart indenting. It even includes a debugger with breakpoints and stepping to make your like easier. It can be used to execute scripts as well as single statements and the simplicity of the interface can make it a great start point for those new to python.
That's the lot however, this IDE will not work across multiple files, handle your git, remind you of your todo list or edit let you view a data-frame. It is just enough to be an IDE rather than a text editor.
A fully featured IDE. PyCharm is a product of JetBrains would produce generally reliable products for software development. PyCharm is no exception. It is available as the free Community Edition which is pretty nice but also with the Professional Edition which is available for free to students and teachers through the educational licence, simply validate a school or university email and you are away.
PyCharm does it all, to the point of being overwhelming for first time users. Fear not! The IDE is generally intuitive (or as intuitive as an IDE can be). It has code highlighting for python and most other languages you've heard of, so for those working on projects using more than just python this is a great home for the work. It also integrates well with more services like git and docker to make your life easier.
As well as highlighting and code completion it has a lot of smart checking built in. It will prompt correct line spacing and capitalisation to match normal coding standards. It will work with imports to autocomplete and provide documentation over text for functions elsewhere in your project. It will even refactor variable and function names across all your files at once saving you a life time of find and replace. It has testing and debugging built in with a great interface for breakpoints and tests so you can dig to the root of your problems quickly.
We don't even begin to cover the many capabilities of this software here. It is a lot though at first to dig through the menus to find where to install packages for instance (file->settings->Project->Project Interpreter by the way). We recommend turning to this then when you have a project that makes it worth it. Stackoverflow and the PyCharm forum are always a great help to new users and in the end you'll find yourself opening up a project here for anything and everything.
Download: https://www.jetbrains.com/pycharm/download/
Quick start guide: https://www.jetbrains.com/help/pycharm/quick-start-guide.html
For those more used to Jupiter Notebooks and R. The data scientists and statisticians among you. You might find Spyder more your speed. It was literally written for you.
While IDEs like PyCharm have more resently added "Scientific Mode" in an attempt to tempt users to their products, for those looking for an experience more like R Studio Spyder is it.
It supports multi-window working including running things in parrallel. It comes set up and ready for data-analysis with standard libraries shared with Anaconda. It has code highlighting, autocompletion and style analysis to keep your code looking and running good. It can step through code and debug with breakpoints. It even has basic git integration.
While not as fully equiped as PyCharm, Spyder is free gives you just what you need for data analysis and is very intuitive for people who have been taught on R Studio or Jupyter Notebook type systems.
Download: https://www.spyder-ide.org/
Quick start guide: https://docs.spyder-ide.org/current/quickstart.html
Jupyter notebooks are widely used open source and free. The files are not pure Python so if you want to distribute something as a package, avoid. For other purposes this is a great system. It works with an online interface so the work is backed up, easy to share with multiple developers and accessible from multiple machines. In particular there are no install issues and the interface is always the same. It has an intuitive interactive set up that is quick to learn and great for teaching. It can even work with other languages for those wanting to work with R or Julia as well as Python. There's even interactive debugging with breakpoints and variable inspection.
So what are the downsides? Because it has its own online setup it doesn't have native integration with git, though it is possible with extensions. Possibly more importantly because the notebooks aren't python files we can't import the code into a test file for unittesting. This makes test driven development harder.
Website: https://jupyter.org/
Quick start guide: https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/