Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Beginning Python: from novice to professional (3rd ed.)
Hetland M., Apress, New York, NY, 2017. 527 pp. Type: Book (978-1-484200-29-2)
Date Reviewed: Feb 1 2018

And now for something completely different. Python, named after Monty Python’s Flying Circus, is an open-source, interpreted, object-oriented programming language available on all major operating systems such as Microsoft Windows, Linux/Unix, and MacOS. As with a number of other successful computer languages, Python was conceived and first implemented by a single individual, Guido van Rossum, originally from the Netherlands. Today, Python is used in a wide variety of applications from data analysis to graphics to front-ending a quantum computing system. For more examples see https://www.python.org/about/apps/.

Python offers considerable power through suppression of detail. Whereas at the assembler level, one deals with bits, bytes, registers, and the like, housekeeping for all of which must be managed by the programmer, Python provides data structures such as lists, strings, dictionaries, and tuples, and associated memory management, that permit manipulation of data directly at a high level, keeping all of the housekeeping detail behind the scenes in the interpreter. Object orientation provides classes, methods, and inheritance that permit creating code modules that can be invoked from a program that need not know the details of how a given module works, only the data the module takes in and what it returns. Being interpreted gives the programmer other benefits. One is the capability to run interactively pieces of code to explore and test features. Another is exception handling, which allows a program to trap error conditions and take mitigating actions versus leaving the programmer to deal with all possible exception cases to avoid abrupt termination.

Python installs with an extensive standard library of supporting classes and methods that provide many functions, over 100 of them, from complex number computation, to file handling, to making connections and passing data over a network with a selection from multiple protocols. In addition, the Python user community has produced many other applications, including development environments such Python.org’s own IDLE, or Spyder, oriented to scientific applications. Python has interfaces to other languages, permitting some of the standard library modules to be coded, for example, in the C language, to provide execution efficiency and to interface with the host operating system. The sum total of these features is the ability to quickly write short programs of considerable power.

The subtitle of the book is “From Novice to Professional.” A novice should have some knowledge of programming to get the most from the material. For someone with no background in programming, the introduction of object-oriented concepts can be confusing, as can some of the language constructs and details of their behavior.

In terms of organization, chapters 1 through 5 cover Python’s data types, simple statements, iteration, and loops. Chapters 6 and 7 introduce functions, scope, and recursion, followed by objects and classes. Subsequent chapters delve more deeply into language features such as exception handling, “magic methods,” properties, iterators, generators, modules, and a few elements of the standard library: files, graphical user interfaces, network programming, and the World Wide Web.

Following language basics, the text turns to technique: testing; extending Python with lower-level languages such as C, Java, or C#; packaging programs; prototyping; logging; and so on. The final ten chapters each present a project that explores some facet of how Python is used: creating Hypertext Markup Language (HTML) from plain text, creating graphs, working with Extensible Markup Language (XML), extracting data from a network news transfer protocol (NNTP) server (USENET news), building a chat server that handles multiple connections asynchronously, remote editing with common gateway interface (CGI), making a bulletin board, file sharing with XML-remote procedure call, adding a graphical user interface (GUI) to the file-sharing project, and creating an arcade game. In each case, the project is done using the programming style advocated in the earlier chapters: first describing the problem, developing a test case, and coding and testing a basic and simple prototype, followed by a second implementation that fleshes out the details. Each project includes a listing of the final working program and a discussion of the concepts and techniques used. The book concludes with a pair of appendices, a basic introduction to Python, and a brief reference guide.

Magnus Lie Hetland has produced a valuable and useful introduction to Python. He offers a clearly written description of the elements of the Python language and how to work with it, including excellent advice on good programming habits and avoiding problems when writing code. A challenge in writing a textbook such as this is that Python is evolving. The book is about version 3, which due to feature changes is not fully compatible with earlier versions. This presents a complication for people learning the language using an earlier version. The author provides notes where needed that discuss differences from earlier versions. He meets this challenge well. The project chapters provide nontrivial examples of how to write Python programs that will help those new to Python to understand the language and how to employ it. This book will be of interest to anyone seeking to learn and use Python.

More reviews about this item: Amazon, Goodreads

Reviewer:  G. R. Mayforth Review #: CR145828 (1805-0196)
Bookmark and Share
  Reviewer Selected
 
 
Python (D.3.2 ... )
 
 
General (D.2.0 )
 
 
Object-Oriented Programming (D.1.5 )
 
Would you recommend this review?
yes
no
Other reviews under "Python": Date
Practical Python
Hetland M., APress, LP, 2002.  648, Type: Book (9781590590065)
Mar 28 2003
Python programming: an introduction to computer science
Zelle J., Franklin B, 2003. Type: Book (9781887902991)
Dec 2 2004
Foundations of Python network programming
Goerzen J., APress, LP, Berkeley, CA, 2004.  512, Type: Book (9781590593714)
Dec 26 2004
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy