Many veterans coders like using VIM or Emacs. But both have steep learning curves and if you are just starting out, you might want to start with something easier. I personally think Sublime Text is a great option. It displays Python nicely and it's easy to use, while still being a very powerful and customizable tool.
Professionally, I find that I use a mixture of the following tools for editing Python:
SublimeText - for writing one off scripts or making small changes to projects
Vim - I occasionally use this for small code changes if I already have a terminal open, but I'm still getting comfortable with it.
PyCharm - I use this for anything that's larger than 1 or 2 files, which is probably 80% of what I work on professionally. I prefer sublime if I'm just writing a quick one-file script, but I find that when a Python project spans multiple files/folders this IDE is much more useful. This IDE really has everything you'll need for almost any Python project. Connect to databases? It's got integration support for that. Use Flask/Django for making web applications? Got you covered. Sure Sublime/Vi have plugins to make coding in Python more convenient, but this has everything out-of-the-box and it all plays well together. You may not need this if Python is you first language and you are just starting out, but once you start working with larger projects in Python, or start making web applications, this is the tool that most people I know prefer to use. Get the trial version for 30 days and see how you like it. If you are a student, they'll give you a license for free. They also have a free community edition that's free (which I haven't used, so I don't know the difference). If you find that you like it, you'll eventually want to upgrade to a paid subscription. It's worth every penny (more in my opinion).
Just wanna add that I think that there's value for beginners in getting started with a tool like PyCharm because it already comes with everything out-of-the-box.
I've seen people customize Vim or Sublime extensively for Python development (and development in other languages) and it's amazing what can be done. However, for a beginner, one of the things that makes customizable tools so daunting is that it's not necessarily obvious what can be customized when you are first starting out. With Pycharm, you'll get many features that you'll use frequently and many more that you probably will rarely or never touch. But it'll give you a sense of what you like and what you don't like. If you later learn to use something like Vim, you'll have a better idea of how you want to customize it.
Hm, that is a dangerous question to ask. I assume that you are a newbie to programming in general, so just to let you know, you have asked a question that has had programmers bashing away at each other for the past thirty years (https://en.wikipedia.org/wiki/Editor_war)...
HN does not encourage flamewar topics. (From the guidelines: "Please avoid introducing classic flamewar topics unless you have something genuinely new to say about them.") For future reference, a better question to ask would have been: "What is a good Python beginner's IDE/text editor?" A phrasing like that is less likely to lead to strong reactions from your readers the way asking for the "best" editor might :-)
In the end, just choose one and stick with it for the time being. You'll have plenty opportunity to go scouting for the "perfect editor" once you've actually learnt the language you need it for :-)
In all fairness, the dangerous questions are often the opposite of the lowest hanging fruit; low chance of achievement, risky and ambiguous payoff, but maybe worth it after all.
But to not broach the question at all for the sake of avoiding the volume of dialogue it might produce seems kinda odd, imo. Now that I think of it, maybe frequent and small flamewars clear the brush better than infrequent infernos, ha.
> But to not broach the question at all for the sake of avoiding the volume of dialogue it might produce seems kinda odd, imo.
Yeah, I guess you're right, maybe I was a bit overcautious there. Nonetheless, I do think that it is better to ask specific questions rather than the blanket "what's the best X?" Note that this is not limited to text editors - there are very few domains in life where a "best" anything is to be found. Asking specific, non-emotionalized questions ("What is a good X under condition Y?") is more likely to lead to constructive answers.
I like vim because I can use it in a terminal, over ssh, etc. The actual text editing capabilities, the quick access to search and replace, and the ability to work without taking my hands off the keyboard to use a mouse are all big wins for me. It's just one editor, and a lot of people like Emacs (I have nothing against them, it's just not really my thing) or some other editor.
Frankly, the biggest thing is to pick one editor and stick with it. As far as IDEs go, I've used PyCharm for debugging before. I think it fits a lot of use cases but like most IDEs it's slow, so I don't use it for writing and editing
Actually, it's the one you like best. Currently I like eclipse - many don't. Go with what works for you - if you are looking for a change start with the most popular ones, they are usually that for a reason. If for some reason you don't like them, use that reason for your next search criteria...
Professionally, I find that I use a mixture of the following tools for editing Python:
SublimeText - for writing one off scripts or making small changes to projects
Vim - I occasionally use this for small code changes if I already have a terminal open, but I'm still getting comfortable with it.
PyCharm - I use this for anything that's larger than 1 or 2 files, which is probably 80% of what I work on professionally. I prefer sublime if I'm just writing a quick one-file script, but I find that when a Python project spans multiple files/folders this IDE is much more useful. This IDE really has everything you'll need for almost any Python project. Connect to databases? It's got integration support for that. Use Flask/Django for making web applications? Got you covered. Sure Sublime/Vi have plugins to make coding in Python more convenient, but this has everything out-of-the-box and it all plays well together. You may not need this if Python is you first language and you are just starting out, but once you start working with larger projects in Python, or start making web applications, this is the tool that most people I know prefer to use. Get the trial version for 30 days and see how you like it. If you are a student, they'll give you a license for free. They also have a free community edition that's free (which I haven't used, so I don't know the difference). If you find that you like it, you'll eventually want to upgrade to a paid subscription. It's worth every penny (more in my opinion).