I only started learning Python a few days ago, so as a beginner, what IDE should I be using? Should I just start with IDLE, then move on to something else when I'm more advanced? I've been using Pycharm for the past few days, I didn't know if that's an acceptable IDE for a beginner.

I have no experience with Pycharm so I can't help with that. IDLE was OK but when I started using Python I was already used to eclipse so using eclipse with the python mod was an obvious choice.
Eclipse is almost certainly the IDE you will want to move to eventually.

I haven't used pycharm. But, you can try sublime text.It's great.You can also try vim editor.

I like spyder. A nice feature is that you can start working with a good old plain python file, while many IDE want you to define a project first. It is also genuine free software !

In ubuntu, install with

$ sudo apt-get install spyder

Edited 2 Years Ago by Gribouillis

'IDLE' is always an easy ...
(and free) way to start coding in Python :)

Edited 2 Years Ago by David W

Just write your own with python like normal programmars do, it the pythonic approach.

Edited 2 Years Ago by nouth

Just write your own with python like normal programmars do, it the pythonic approach.

Yep ... a really cool 'beginner' project :)

Just make a text editor and incorporate the interpreter.

What about the GUI?

( A text editer too ? Recall ... a cool project for just beginners :)

Edited 2 Years Ago by David W

You can just use the interpreter to open() a file and write your program, then just run it while you are within the inside of your interpreter..

If you want to move into more serious development along the line, a properly configured version of Vim would be nice to learn. Unfortunatly it's not the quickest thing to learn, but I think it's worth a mention.

Reasoning:
1. If you ever need to work remotely on a Unix platform, Vi/Vim will be one of the few text editors availible to you. I find myself into this situation rather often (as part of regular programming).
2. It's very powerfull. All text is manipulated without using the mouse, making it very efficient. For some tasks, it's the difference of 30 minutes with an IDE to 5 minutes with Vim.
3. It has a healthy set of plugins. For example, ctags makes jumping around huge projects very easy. There are several autocomplete plugins availibly that are quite nice. The list goes on, but if you can imagine it, there is probably a plugin for it.
4. It doesn't hide you from the command line. Again, down the line, learning the command line is invaluable if you get into serious development. (If you are using unix, you'll have access to things linke grep and find with helps manual searching a LOT. If you are using windows, then git comes with bash with simular functionality).

There are other options as well for this kind of deleopment like: EMACS, Sublime Test, Gedit, etc...

I agree with vim thats what I am using though I am having a bit of trouble with debugging in vim(vdebug not working for me). Otherwise its great you can get away with just one plugin at the start https://github.com/klen/python-mode and use VAM for managing plugins use the recommended setup https://github.com/MarcWeber/vim-addon-manager .

Personally I just never got on with Sublime especially managing the projects in the sidebar and its a hack to get virtualenvs supported.

If your on a mac or ubuntu you may want to try the beta editor from github called Atom. To me its sublime improved and you will be up and running straight away CTRL+SHIFT+P and Settings:Plugins will get you running with more.

Also honorbale mention to LightTable which is young but good http://www.lighttable.com/ and geany for just being easy http://geany.org/

With the Windows OS PyScripter (written with Delphi) is my choice. It's fast and gives a lot of helping hints when coding.

I have made a py editor which you can open save and run files. It is in python and is .py so you can just run as is.

import sys

if sys.hexversion >= 0x030000F0:    #First find which version and imports to import
    runningPython3 = True
else:
    runningPython3 = False
if runningPython3:
    import tkinter.filedialog as tk_FileDialog
    from tkinter import*
    from io import Stringl0         #This is not needed just make sure you import the correct libraries for your version
else:
    from tkinter import*
    import tkFileDialog as tk_FileDialog
    from Stringl0 import Stringl0

recents = []

class PyEditor:
    def doNew(self):
        self.text.delete(0.0,END)

    def doUndo(self):
        self.text.edit_undo()

    def doSaveAs(self):
        file = tk_FileDialog.asksavefile(mode='w')
        textoutput = self.text.get(0.0,END)
        file.write(textoutput.rstrip())
        file.write('\n')

    def doOpen(self):
        file = tk_FileDialog(mode='r')
        fileContets = file.read()
        recents.append(file)

        self.text.delete(0.0,END)
        self.text.insert(0.0,fileContents)

    def doRun(self):
        file = tk_FileDialog.askopenfile(mode='r')
        os.system('c:\\Python25\\python ' + file.name)

    def __init__(self):
        self.root = Tk()
        self.root.title('PyEditor1.0')
        self.root.minsize(with=800,height=535)

        menubar = Menu(self.root)

        filemenu = Menu(menubar,tearoff=0)
        filemenu.add_command(label='New File',command=self.doNew,accelerator='Ctrl+N)

        file.add_command(label='Open',command=self.doOpen,accelerator='CtrlO')

        filemenu.add_command(label='Save As',command=self.doSaveAs,accelerator='Ctrl+Shift+S')

        filemenu.add_command(label='Run Program',command=self.doRun,accelerator='Ctrl+R')

        editmenu = Menu(editmenu,tearoff=0)
        editmenu.add_command(label='Undo',command=self.doUndo,accelerator='Ctrl+Z')

        menubar.add_cascade(label='File',menu=filemenu)
        self.root.config(menu=menubar)
        editmenu.add_cascade(label='Edit',menu=editmenu)
        self.root.config(menu=editmenu)

        self.text = Text(self.root,undo=True)
        self.text.pack(expand=YES,fill=BOTH)

if __name__ == '__main__':
    app = PyEditor()
    app.root.mainloop()

PyCharm looks promising, but the features I like to have are all in the paid version only. Community version should help beginners and intermediate programmers/developers.

If you want to avoid downloading, installing and configuring, you can use an online IDE like SourceLair (www.sourcelair.com).

I've made a few half-hearted attempts to get started with Idle. I like it; I was wondering if PSPad will work with Python?

This question has already been answered. Start a new discussion instead.