Emacs comes configured with a command called "send-region-to-shell" that will take the current region and send it to a python interpreter. It makes for a great development experience that I haven't seen replicated with other tools and I'm not sure why there's not a bigger interest in it.
https://github.com/jorgenschaefer/elpy
All the bells and whistles in there and the maintainer is super friendly and responsive.