Tuesday, 7 January 2014

What Can I Do with Python?

In addition to being a well-designed programming language, Python is useful for ac-complishing real-world tasks—the sorts of things developers do day in and day out. It’s commonly used in a variety of domains, as a tool for scripting other components and implementing standalone programs. In fact, as a general-purpose language, Python’s roles are virtually unlimited: you can use it for everything from website de-velopment and gaming to robotics and spacecraft control. However, the most common Python roles currently seem to fall into a few broad cat-egories. The next few sections describe some of Python’s most common applications
today, as well as tools used in each domain. We won’t be able to explore the tools mentioned here in any depth—if you are interested in any of these topics, see the Python website or other resources for more details.

Systems Programming

Python’s  built-in interfaces to operating-system services make it ideal for writing portable, maintainable system-administration tools and utilities (sometimes called  shell tools). Python programs can search files and directory trees, launch other programs, do parallel processing with processes and threads, and so on. Python’s standard library comes with POSIX bindings and so on.

GUIs

Python’s simplicity and rapid turnaround also make it a good match for graphical user interface programming on the desktop. Python comes with a standard object-oriented interface to the Tk GUI API called  tkinter(Tkinterin 2.X) that allows Python programs to implement portable GUIs with a native look and feel. Python/tkinter GUIs run un-changed on Microsoft Windows, X Windows (on Unix and Linux), and the Mac OS (both Classic and OS X). A free extension package, PMW, adds advanced widgets to
the tkinter toolkit. In addition, the wxPythonGUI API, based on a C++ library, offers an alternative toolkit for constructing portable GUIs in Python.

Internet Scripting

Python comes with standard Internet modules that allow Python programs to perform a wide variety of networking tasks, in client and server modes. Scripts can communicate over sockets; extract form information sent to server-side CGI scripts; transfer files by FTP; parse and generate XML and JSON documents; send, receive, compose, and parse email; fetch web pages by URLs; parse the HTML of fetched web pages; communicate over XML-RPC, SOAP, and Telnet; and more. Python’s libraries make these tasks re-markably simple.

Component Integration

We discussed the component integration role earlier when describing Python as a con-trol language. Python’s ability to be extended by and embedded in C and C++ systems makes it useful as a flexible glue language for scripting the behavior of other systems and components. For instance, integrating a C library into Python enables Python to test and launch the library’s components, and embedding Python in a product enables onsite customization to be coded without having to recompile the entire product (or
ship its source code at all).

Database Programming

For traditional database demands, there are Python interfaces to all commonly used relational database systems—Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite, and more. The Python world has also defined a portable database APIfor ac-cessing SQL database systems from Python scripts, which looks the same on a variety of underlying database systems. For instance, because the vendor interfaces implement the portable API, a script written to work with the free MySQL system will work largely unchanged on other systems (such as Oracle); all you generally have to do is replace the underlying vendor interface. The in-process  SQLiteembedded SQL database engine is a standard part of Python itself since 2.5, supporting both prototyping and basic
program storage needs.

Rapid Prototyping

To Python programs, components written in Python and C look the same. Because of this, it’s possible to prototype systems in Python initially, and then move selected com-ponents to a compiled language such as C or C++ for delivery. Unlike some prototyping tools, Python doesn’t require a complete rewrite once the prototype has solidified. Parts of the system that don’t require the efficiency of a language such as C++ can remain coded in Python for ease of maintenance and use.

Numeric and Scientific Programming

Python is also heavily used in numeric programming—a domain that would not tra-ditionally have been considered to be in the scope of scripting languages, but has grown to become one of Python’s most compelling use cases. Prominent here, the  NumPy high-performance numeric programming extension for Python mentioned earlier in-cludes such advanced tools as an array object, interfaces to standard mathematical libraries, and much more. By integrating Python with numeric routines coded in a
compiled language for speed, NumPy turns Python into a sophisticated yet easy-to-use numeric programming tool that can often replace existing code written in traditional
compiled languages such as FORTRAN or C++.


And More: Gaming, Images, Data Mining, Robots, Excel...

Python is commonly applied in more domains than can be covered here. For example,you’ll find tools that allow you to use Python to do:
• Game programming and multimedia with  pygame,  cgkit,  pyglet,  PySoy,Panda3D, and others

• Serial port communication on Windows, Linux, and more with the  PySerialex-tension

• Image processing with PILand its newer Pillowfork, PyOpenGL, Blender, Maya, and more.

• Robot control programming with the PyRotoolkit

• Natural language analysis with the NLTKpackage

• Instrumentation on the Raspberry Piand Arduinoboards

• Mobile computing with ports of Python to the Google  Androidand Apple  iOS platforms

• Excel spreadsheet function and macro programming with the PyXLLor DataNi-troadd-ins

• Media file content and metadata tag processing with PyMedia,  ID3,  PIL/Pillow, and more

• Artificial intelligence with the  PyBrainneural net library and the  Milkmachine learning toolkit

• Expert system programming with PyCLIPS, Pyke, Pyrolog, and pyDatalog

• Network monitoring with zenoss, written in and customized with Python

• Python-scripted design and modeling with  PythonCAD,  PythonOCC,  FreeCAD, and others

• Document processing and generation with ReportLab,  Sphinx,  Cheetah,  PyPDF, and so on

• Data visualization with Mayavi, matplotlib, VTK, VPython, and more

• XML parsing with the xmllibrary package, the  xmlrpclibmodule, and third-party extensions

• JSON and CSV file processing with the jsonand csvmodules

17 comments:

  1. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it. Python Training in Chennai

    ReplyDelete
  2. I simply wanted to write down a quick word to say thanks to you for those wonderful tips and hints you are showing on this site.
    It’s great to come across a blog every once in a while that isn’t the same out of date rehashed material. Fantastic read.

    Python Training in Chennai | Python Training Institutes in Chennai

    ReplyDelete
  3. Thanks for your informative article on python programming, its very useful for my career.
    Python Training in Chennai | Python Training Institute in Chennai

    ReplyDelete
  4. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it


    python training in chennai

    hadoop training in chennai

    ReplyDelete
  5. Very interesting content which helps me to get the in depth knowledgeabout the technology. keep sharing... Thanks you.
    Articles
    Technology updates

    ReplyDelete
  6. technology and information is good.keep trying...thats it
    best python tarining in chennai

    ReplyDelete
  7. Thank you for sharing your thoughts and knowledge on this topic. This is really helpful and informative, as this gave me more insight to create more ideas and solutions for my plan. I would love to see more updates from you.

    Web Development Services

    ReplyDelete
  8. I have read all the comments and suggestions posted by the visitors for this article are very fine,We will wait for your next article so only.Thanks! python training london

    ReplyDelete
  9. This comment has been removed by the author.

    ReplyDelete