Programming Books

47 Excellent Free Books to Learn Python

16. Making Games with Python & Pygame by Al Sweigart

Making Games with Python & PygameMaking Games with Python & Pygame teaches you how to make graphical computer games in the Python programming language using the Pygame library. It’s targeted at the intermediate programmer.

The book features the source code to 11 games. Each chapter focuses on a single game program, explaining how different parts of the code work. The games are clones of classics such as Nibbles, Tetris, Simon, Bejeweled, Othello, Ink Spill, Connect Four, Flood It, and others. The programs are less than 600 lines long.

The book and the programs are available under a Creative Commons Attribution-Noncommercial-Share Alike license.

Read the book


17. Natural Language Processing with Python by Steven Bird, Ewan Klein, Edward Loper

Natural Language Processing with PythonNatural Language Processing with Python offers a highly accessible introduction to natural language processing, the field that supports a variety of language technologies, from predictive text and email filtering to automatic summarization and translation.

Learn how to write Python programs that work with large collections of unstructured text. Access richly annotated datasets using a comprehensive range of linguistic data structures, and understand the main algorithms for analyzing the content and structure of written communication.

The book is updated for Python 3 and NLTK 3.

This book helps to:

  • Extract information from unstructured text, either to guess the topic or identify “named entities”.
  • Analyze linguistic structure in text, including parsing and semantic analysis.
  • Access popular linguistic databases, including WordNet and treebanks.
  • Integrate techniques drawn from fields as diverse as linguistics and artificial intelligence.

This book is made available under the terms of the Creative Commons Attribution Noncommercial No-Derivative-Works 3.0 US License.

Read the book


18. Problem Solving with Algorithms and Data Structures using Python by Bradley M. Kuhn and David L. Ranum

Problem Solving with Algorithms and Data Structures using PythonThis textbook is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum.

Even though the second course is considered more advanced than the first course, this book assumes you are beginners at this level. You may still be struggling with some of the basic ideas and skills from a first computer science course and yet be ready to further explore the discipline and continue to practice problem solving.

The authors cover abstract data types and data structures, writing algorithms, and solving problems. They look at a number of data structures and solve classic problems that arise. The tools and techniques that you learn here will be applied over and over as you continue your study of computer science.

The objectives of this book are:

  • To review the ideas of computer science, programming, and problem-solving.
  • To understand abstraction and the role it plays in the problem-solving process.
  • To understand and implement the notion of an abstract data type.
  • To review the Python programming language:
    • Getting started with data:
      • Built-in atomic data types.
      • Built-in collection data types.
    • Input and output:
      • String formatting.
    • Control structures.
    • Exception handling.
    • Defining functions.
    • Object-oriented programming in Python.
  • Discussion questions.
  • Programming exercises.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version.

Read the book


19. Think DSP by Allen B. Downey

Think DSPThink DSP is an introduction to Digital Signal Processing in Python and includes processes for synthesizing, transforming, and analyzing signals. All of the code is written to work in both Python 2 and Python 3 with no translation.

The author explains techniques such as spectral decomposition, filtering, convolution, and the Fast Fourier Transform. This book also provides exercises and code examples to help you understand the material.

Permission is granted to copy, distribute, and/or modify this book under the terms of the Creative Commons Attribution-NonCommercial 3.0 Unported License.

Read the book


20. Python for Informatics: Exploring Information by Charles Severance

Python for Informatics - Exploring InformationThe goal of Python for Informatics – Exploring Information is to provide an Informatics-oriented introduction to programming. This book is designed to introduce students to programming and computational thinking through the lens of exploring data.

The primary difference between a computer science approach and the Informatics approach taken in this book is a greater focus on using Python to solve data analysis problems common in the world of Informatics

All the supporting materials for the book are available under open and remixable licenses.

Read the book


Next page: Page 5 – Hacking Secret Ciphers with Python and more books

Pages in this article:
Page 1 – Think Python and more books
Page 2 – Supporting Python 3 and more books
Page 3 – Invent Your Own Computer Games with Python and more books
Page 4 – Making Games with Python & Pygame and more books
Page 5 – Hacking Secret Ciphers with Python and more books
Page 6 – Learn Python, Break Python and more books
Page 7 – Modeling Creativity: Case Studies in Python and more books
Page 8 – Python in Hydrology and more books
Page 9 – Tiny Python 3.6 Notebook and more books


All books in this series:

Free Programming Books
AdaALGOL-like programming language, extended from Pascal and other languages
AgdaDependently typed functional language based on intuitionistic Type Theory
ArduinoInexpensive, flexible, open source microcontroller platform
AssemblyAs close to writing machine code without writing in pure hexadecimal
AwkVersatile language designed for pattern scanning and processing language
BashShell and command language; popular both as a shell and a scripting language
BASICBeginner’s All-purpose Symbolic Instruction Code
CGeneral-purpose, procedural, portable, high-level language
C++General-purpose, portable, free-form, multi-paradigm language
C#Combines the power and flexibility of C++ with the simplicity of Visual Basic
ClojureDialect of the Lisp programming language
ClojureScriptCompiler for Clojure that targets JavaScript
COBOLCommon Business-Oriented Language
CoffeeScriptTranscompiles into JavaScript inspired by Ruby, Python and Haskell
CoqDependently typed language similar to Agda, Idris, F* and others
CrystalGeneral-purpose, concurrent, multi-paradigm, object-oriented language
CSSCSS (Cascading Style Sheets) specifies a web page’s appearance
DGeneral-purpose systems programming language with a C-like syntax
DartClient-optimized language for fast apps on multiple platforms
DylanMulti-paradigm language supporting functional and object-oriented coding
ECMAScriptBest known as the language embedded in web browsers
EiffelObject-oriented language designed by Bertrand Meyer
ElixirRelatively new functional language running on the Erlang virtual machine
ErlangGeneral-purpose, concurrent, declarative, functional language
F#Uses functional, imperative, and object-oriented programming methods
FactorDynamic stack-based programming language
ForthImperative stack-based programming language
FortranThe first high-level language, using the first compiler
GoCompiled, statically typed programming language
GroovyPowerful, optionally typed and dynamic language
HaskellStandardized, general-purpose, polymorphically, statically typed language
HTMLHyperText Markup Language
IconWide variety of features for processing and presenting symbolic data
JArray programming language based primarily on APL
JavaGeneral-purpose, concurrent, class-based, object-oriented, high-level language
JavaScriptInterpreted, prototype-based, scripting language
JuliaHigh-level, high-performance language for technical computing
KotlinMore modern version of Java
LabVIEWDesigned to enable domain experts to build power systems quickly
LaTeXProfessional document preparation system and document markup language
LispUnique features - excellent to study programming constructs
LogoDialect of Lisp that features interactivity, modularity, extensibility
LuaDesigned as an embeddable scripting language
MarkdownPlain text formatting syntax designed to be easy-to-read and easy-to-write
Objective-CObject-oriented language that adds Smalltalk-style messaging to C
OCamlThe main implementation of the Caml language
PascalImperative and procedural language designed in the late 1960s
PerlHigh-level, general-purpose, interpreted, scripting, dynamic language
PHPPHP has been at the helm of the web for many years
PostScriptInterpreted, stack-based and Turing complete language
PrologA general purpose, declarative, logic programming language
PureScriptSmall strongly, statically typed language compiling to JavaScript
PythonGeneral-purpose, structured, powerful language
QMLHierarchical declarative language for user interface layout - JSON-like syntax
RDe facto standard among statisticians and data analysts
RacketGeneral-purpose, object-oriented, multi-paradigm, functional language
RakuMember of the Perl family of programming languages
RubyGeneral purpose, scripting, structured, flexible, fully object-oriented language
RustIdeal for systems, embedded, and other performance critical code
ScalaModern, object-functional, multi-paradigm, Java-based language
SchemeA general-purpose, functional language descended from Lisp and Algol
ScratchVisual programming language designed for 8-16 year-old children
SQLAccess and manipulate data held in a relational database management system
Standard MLGeneral-purpose functional language characterized as "Lisp with types"
SwiftPowerful and intuitive general-purpose programming language
TclDynamic language based on concepts of Lisp, C, and Unix shells
TeXMarkup and programming language - create professional quality typeset text
TypeScriptStrict syntactical superset of JavaScript adding optional static typing
ValaObject-oriented language, syntactically similar to C#
VHDLHardware description language used in electronic design automation
VimLPowerful scripting language of the Vim editor
XMLRules for defining semantic tags describing structure ad meaning
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments