I've reviewed these resources and highly recommend them.
If you have never programmed with Python before, you may want to start with DataCamp's Learn python by example:
If you want to just read, I recommend starting with the Python Tutorial:
If you have not programmed before, you may try:
If you have programmed before, at this point I recommend:
- Official Python Documentation. Just read the documentation. Honestly.
- Python Tips (book, online for free)
- Python Google Style Guide.
Recommended packages and tools for different tasks
- Jupyter Notebook
Numerical Data Processing
- numpy - numeric analysis in python (needed for matplotlib)
- pandas or SparkSQL
- tabulate - create tables easily (but see my tytable replacement)
- https://pyformat.info --- Big how-to on using the % and .format() formatting
- Use Pillow, the Python2/3 fork of Python Image Library (PIL).
- matplotlib - a handy system for plotting in python. (Short example of using matplotlib within jupyter)
- Altair: Declarative Visualization in Python
- geopy - geocoding for Python
- Seaborn. (See Datacamp Tutorial)
- Graphics.py: http://mcsp.wartburg.edu/zelle/python/graphics.py http://mcsp.wartburg.edu/zelle/python/ http://mcsp.wartburg.edu/zelle/python/graphics/graphics.pdf
- HTML graphics: http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/graphics.html
- http://www.pygame.org/ pygame - a Python game development system
- PEAK Easy Install
- Crystal Space 3D
- VPython 3D Programming in Python
Python GUI Options
I need to write some programs that use GUI.
- pyqt - Use PyQT5 (it's part of Anaconda)
- FLTK, the Fast Light Toolkit
Building Web Applications
You basically have two options:
- Write a CGI script (slow, but easy)
- Some sort of Web Server Gateway Interface (WSGI). Options include:
- Flask (can run on Apache with Passenger, but needs its own domain name)
Examples and resources:
Notes on flask:
$ touch tmp/restart.txt # reload your program
Using Passengers on Dreamhost:
If you are using a Mac, you almost certainly want to ditch Apple's python implementation and instead install your own.
I now recommend the Anaconda Python distribution, because it has almost everything that you need, and it's easy to add new modules.
If you want to write a Python program with a GUI that can be run on any system, you'll need to use Tkinter (Python's Tcl/Tk bindings). If you want to actually enjoy what you are writing, you want to use PyQT5..
- Fluent Python: Clear, Concise, and Effective Programming (you can get it on Safari)