Jupyter Notebook
Jupyter notebook comes with anaconda and i personally prefer this notebook when i have to write a new code that may have bugs and i have to fix small piece of code. Jupyter is really usefull since it allow you to execute a block of code while keeping all other block intact. Which mean if one block of your code has error you can just fix it and run only that block.
This is useful for heavy project such as Deep learning where you have to load model and data.
Python IDLE
Python Default IDLE which is downloaded from official python.org website. this is useful to make small apps for prototype of any project. it is light weight and fast. only drawback is that it don`t have any special feature to enable programmer to debug code.
PyCharm
Pycharm is heavy IDE which contain lots of feature such as version control, requirements.txt sync, projects file management, debugging tools and many more.
I prefer using to to make complex project that can have lots of files and folders.