Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
Our goal with this book is to give you a practical and thorough introduction to the Python programming language, providing you with the tools and insight you need to be a productive Python developer. We want to help you build solid foundations, orient you in the universe of Python, and put you in a position to direct your own continued learning.
The Python Apprentice together with The Python Journeyman and The Python Master comprise a trilogy of books on the Python programming language and the Python Standard Library. The material in these books is derived from Sixty North's popular and battle-tested training courses which have led thousands of programmers on a journey to being productive with Python.
Our books, which use Python 3, follow a spiral curriculum: We introduce topics gently and then revisit them on multiple occasions to add the depth required to support your progression as a Python developer. We've worked hard to structure the syllabus to avoid forward references. On only a few occasions do we require you to accept techniques on trust, before explaining them later where we do, it's to deliberately establish good habits.
On a technical level, Python is a strongly typed language. This means that every object in the language has a definite type, and there’s generally no way to circumvent that type. At the same time, Python is dynamically typed, meaning that there’s no type-checking of your code prior to running it. This is in contrast to statically typed languages like C or Java where a compiler does a lot of type-checking for you, rejecting programs which misuse objects. Ultimately, the best description of the Python type system is that it uses duck-typing where an object’s suitability for a context is only determined at runtime. We’ll cover this in more detail in Chapter 8.
Python is a general-purpose programming language. It’s not intended for use in any particular domain or environment, but instead can be fruitfully used for a wide variety of tasks. There are, of course, some areas where it’s less suitable than others – for example in extremely time-sensitive or memory-constrained environments – but for the most part Python is as flexible and adaptable as many modern programming languages, and more so than most.
Python is an interpreted language. This is a bit of a misstatement, technically, because Python is normally compiled into a form of byte-code before it’s executed. However, this compilation happens invisibly, and the experience of using Python is normally one of immediately executing code without a noticeable compilation phase. This lack of an interruption between editing and running is one of the great joys of working with Python