
P A R T I I I
P R O G R A M M I N G W I T H T H E R A S P B E R R Y P I
174
THE RASPBERRY PI
gets the first half of its name from a long-standing tradition of using
fruit to name new computing systems—from classic microcomputers like the Acorn, Apricot
and Tangerine to more recognisably modern brands including Apple and BlackBerry—but
the second half comes courtesy of the
Python
programming language.
Introducing Python
Flexible and powerful, Python was originally developed in the late 1980s at the National
Research Institute for Mathematics and Computer Science by Guido van Rossum as a succes-
sor to the ABC language. Since its introduction, Python has grown in popularity thanks to
what is seen as a clear and expressive syntax developed with a focus on ensuring that code is
readable.
Python is a
high-level language
. This means that Python code is written in largely recognisable
English, providing the Pi with commands in a manner that is quick to learn and easy to fol-
low. This is in marked contrast to
low-level languages
, like assembler, which are closer to how
the computer “thinks” but almost impossible for a human to follow without experience. The
high-level nature and clear syntax of Python make it a valuable tool for anyone who wants to
learn to program. It is also the language that is recommended by the Raspberry Pi Foundation
for those looking to progress from the simple Scratch (described in Chapter 11, “An
Introduction to Scratch”) to more “hands-on” programming.
Python is published under an open-source licence, and is freely available for Linux, OS X and
Windows computer systems. This cross-platform support means that software written using
Python on the Pi can be used on computers running almost any other operating system as
well—except where the program makes use of Pi-specific hardware such as the GPIO Port.
To learn how Python can be used to address this port, see Chapter 13, “Learning to Hack
Hardware”.
Example 1: Hello World
As you learned in Chapter 11, “An Introduction to Scratch”, the easiest way to learn a new
programming language is to create a project that prints “Hello World!” on the screen. In
Scratch, you just had to drag and drop bricks of prewritten code, but in Python, you need to
write this program entirely by hand.
A Python project is, at heart, nothing more than a text file containing written instructions
for the computer to follow. This file can be created using any text editor. For example, if you
enjoy working at the console or in a terminal window, you can use
nano
; if you prefer a
graphical user interface (GUI), you can use Leafpad. Another alternative is to use an
Summary of Contents for A
Page 1: ......
Page 2: ......
Page 3: ...Raspberry Pi User Guide 2nd Edition...
Page 4: ......
Page 5: ...Raspberry Pi User Guide 2nd Edition Eben Upton and Gareth Halfacree...
Page 10: ......
Page 26: ...R A S P B E R R Y P I U S E R G U I D E S E C O N D E D I T I O N 10...
Page 28: ......
Page 29: ...Chapter 1 Meet the Raspberry Pi...
Page 37: ...Chapter 2 Getting Started with the Raspberry Pi...
Page 56: ......
Page 57: ...Chapter 3 Linux System Administration...
Page 79: ...Chapter 4 Troubleshooting...
Page 89: ...Chapter 5 Network Configuration...
Page 109: ...Chapter 6 The Raspberry Pi Software Configuration Tool...
Page 122: ......
Page 123: ...Chapter 7 Advanced Raspberry Pi Configuration...
Page 140: ......
Page 141: ...Chapter 8 The Pi as a Home Theatre PC...
Page 151: ...Chapter 9 The Pi as a Productivity Machine...
Page 160: ......
Page 161: ...Chapter 10 The Pi as a Web Server...
Page 172: ......
Page 173: ...Chapter 11 An Introduction to Scratch...
Page 189: ...Chapter 12 An Introduction to Python...
Page 216: ......
Page 218: ......
Page 219: ...Chapter 13 Learning to Hack Hardware...
Page 234: ......
Page 235: ...Chapter 14 The GPIO Port...
Page 249: ...Chapter 15 The Raspberry Pi Camera Module...
Page 265: ...Chapter 16 Add on Boards...
Page 280: ......
Page 281: ...Appendix A Python Recipes...
Page 287: ...Appendix B Raspberry Pi Camera Module Quick Reference...
Page 293: ...Appendix C HDMI Display Modes...