100% found this document useful (3 votes)
23 views

(Ebook) The Absolute Beginner's Guide to Python Programming: A Step-by-Step Guide with Examples and Lab Exercises by Kevin Wilson ISBN 9781484287163, 9781484287156, 1484287150, 1484287169 - The ebook with rich content is ready for you to download

The document provides information about various ebooks available for download at ebooknice.com, including titles such as 'The Absolute Beginner's Guide to Python Programming' by Kevin Wilson. It lists multiple programming and cooking ebooks along with their ISBNs and links for instant access. The document emphasizes the availability of different formats like PDF, ePub, and MOBI for reading on various devices.

Uploaded by

selkibetula48
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
23 views

(Ebook) The Absolute Beginner's Guide to Python Programming: A Step-by-Step Guide with Examples and Lab Exercises by Kevin Wilson ISBN 9781484287163, 9781484287156, 1484287150, 1484287169 - The ebook with rich content is ready for you to download

The document provides information about various ebooks available for download at ebooknice.com, including titles such as 'The Absolute Beginner's Guide to Python Programming' by Kevin Wilson. It lists multiple programming and cooking ebooks along with their ISBNs and links for instant access. The document emphasizes the availability of different formats like PDF, ePub, and MOBI for reading on various devices.

Uploaded by

selkibetula48
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 67

Instant Ebook Access, One Click Away – Begin at ebooknice.

com

(Ebook) The Absolute Beginner's Guide to Python


Programming: A Step-by-Step Guide with Examples
and Lab Exercises by Kevin Wilson ISBN
9781484287163, 9781484287156, 1484287150,
1484287169
https://ebooknice.com/product/the-absolute-beginner-s-guide-
to-python-programming-a-step-by-step-guide-with-examples-
and-lab-exercises-46488414

OR CLICK BUTTON

DOWLOAD EBOOK

Get Instant Ebook Downloads – Browse at https://ebooknice.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

(Ebook) The Absolute Beginner's Guide to Python Programming [incomplete] by Kevin


Wilson ISBN 9781484287156, 1484287150

https://ebooknice.com/product/the-absolute-beginner-s-guide-to-python-
programming-incomplete-46484102

ebooknice.com

(Ebook) The Absolute Beginner's Guide to HTML and CSS: A Step-by-Step Guide with
Examples and Lab Exercises by Kevin Wilson ISBN 9781484292501, 9781484292495,
1484292502, 1484292499

https://ebooknice.com/product/the-absolute-beginner-s-guide-to-html-and-css-a-
step-by-step-guide-with-examples-and-lab-exercises-48480624

ebooknice.com

(Ebook) Python Programming: A Step By Step Guide From Beginner To Advance by


Eddison, Leonard

https://ebooknice.com/product/python-programming-a-step-by-step-guide-from-
beginner-to-advance-22122826

ebooknice.com

(Ebook) Biota Grow 2C gather 2C cook by Loucas, Jason; Viles, James ISBN
9781459699816, 9781743365571, 9781925268492, 1459699815, 1743365578, 1925268497

https://ebooknice.com/product/biota-grow-2c-gather-2c-cook-6661374

ebooknice.com
(Ebook) Python Games from Zero to Proficiency (Beginner): A step-by-step guide to
coding your first game with Python by ■■■■ ISBN 9798201076511, 8201076516

https://ebooknice.com/product/python-games-from-zero-to-proficiency-beginner-a-
step-by-step-guide-to-coding-your-first-game-with-python-51419840

ebooknice.com

(Ebook) Learn to Program with Python 3: A Step-by-Step Guide to Programming by Irv


Kalb ISBN 9781484238783, 1484238788

https://ebooknice.com/product/learn-to-program-with-python-3-a-step-by-step-
guide-to-programming-7204514

ebooknice.com

(Ebook) Learn to Program with Python 3: A Step-by-Step Guide to Programming, 2nd


Edition by Irv Kalb ISBN 9781484238783, 9781484238790, 1484238788, 1484238796

https://ebooknice.com/product/learn-to-program-with-python-3-a-step-by-step-
guide-to-programming-2nd-edition-10825358

ebooknice.com

(Ebook) Using Publisher 2019: The Step-by-step Guide to Using Microsoft Publisher
2019 by Kevin Wilson ISBN 9781913151089, 1913151085

https://ebooknice.com/product/using-publisher-2019-the-step-by-step-guide-to-
using-microsoft-publisher-2019-36336100

ebooknice.com

(Ebook) Python Programming: A Step-by-Step Guide to Learning the Language by Dr. C.


K. Dhaliwal, Poonam Rana, T. P. S. Brar

https://ebooknice.com/product/python-programming-a-step-by-step-guide-to-
learning-the-language-56553590

ebooknice.com
The Absolute
Beginner’s
Guide to Python
Programming
A Step-by-Step Guide with Examples
and Lab Exercises

Kevin Wilson
The Absolute
Beginner’s Guide to
Python Programming
A Step-by-Step Guide
with Examples and Lab
Exercises

Kevin Wilson
The Absolute Beginner’s Guide to Python Programming: A Step-by-Step
Guide with Examples and Lab Exercises
Kevin Wilson
London, UK

ISBN-13 (pbk): 978-1-4842-8715-6 ISBN-13 (electronic): 978-1-4842-8716-3


https://doi.org/10.1007/978-1-4842-8716-3

Copyright © 2022 by Kevin Wilson


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Celestin Suresh John
Development Editor: James Markham
Coordinating Editor: Shrikant Vishwakarma
Cover designed by eStudioCalamar
Cover image by Shutterstock
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY
10004, U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected],
or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member
(owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance
Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for
reprint, paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub (https://github.com/Apress). For more detailed information,
please visit http://www.apress.com/source-code.
Printed on acid-free paper
Table of Contents
About the Author���������������������������������������������������������������������������������xi

About the Technical Reviewer�����������������������������������������������������������xiii

Introduction����������������������������������������������������������������������������������������xv

Chapter 1: Introduction to Computer Programming�����������������������������1


What Is Python������������������������������������������������������������������������������������������������������2
Getting Started������������������������������������������������������������������������������������������������������4
Setting Up��������������������������������������������������������������������������������������������������������4
Install on Windows������������������������������������������������������������������������������������������4
Install on MacOS����������������������������������������������������������������������������������������������9
Install on Linux����������������������������������������������������������������������������������������������11
Summary������������������������������������������������������������������������������������������������������������13

Chapter 2: The Basics�������������������������������������������������������������������������15


Language Classification��������������������������������������������������������������������������������������15
Low-Level Language�������������������������������������������������������������������������������������15
High-Level Language�������������������������������������������������������������������������������������16
Python Language Syntax������������������������������������������������������������������������������������18
Reserved Words���������������������������������������������������������������������������������������������18
Identifiers������������������������������������������������������������������������������������������������������20
Indentation����������������������������������������������������������������������������������������������������20
Comments�����������������������������������������������������������������������������������������������������20
Input��������������������������������������������������������������������������������������������������������������21

iii
Table of Contents

Output������������������������������������������������������������������������������������������������������������21
Escape Characters�����������������������������������������������������������������������������������������21
Writing a Program�����������������������������������������������������������������������������������������������22
Lab Exercises������������������������������������������������������������������������������������������������������29
Summary������������������������������������������������������������������������������������������������������������30

Chapter 3: Working with Data������������������������������������������������������������31


Variables�������������������������������������������������������������������������������������������������������������31
Local Variables����������������������������������������������������������������������������������������������31
Global Variables���������������������������������������������������������������������������������������������32
Basic Data Types�������������������������������������������������������������������������������������������������32
Integers���������������������������������������������������������������������������������������������������������32
Floating Point Numbers���������������������������������������������������������������������������������33
Strings�����������������������������������������������������������������������������������������������������������33
Lists���������������������������������������������������������������������������������������������������������������33
Two-Dimensional Lists����������������������������������������������������������������������������������35
Sets���������������������������������������������������������������������������������������������������������������37
Tuples������������������������������������������������������������������������������������������������������������37
Dictionaries���������������������������������������������������������������������������������������������������38
Program Input�����������������������������������������������������������������������������������������������������39
Program Output���������������������������������������������������������������������������������������������������40
Casting Data Types����������������������������������������������������������������������������������������������41
Arithmetic Operators�������������������������������������������������������������������������������������������42
Operator Precedence�������������������������������������������������������������������������������������42
Performing Arithmetic�����������������������������������������������������������������������������������43
Comparison Operators����������������������������������������������������������������������������������������43
Boolean Operators����������������������������������������������������������������������������������������������44

iv
Table of Contents

Bitwise Operators�����������������������������������������������������������������������������������������������45
Lab Exercises������������������������������������������������������������������������������������������������������45
Summary������������������������������������������������������������������������������������������������������������46

Chapter 4: Flow Control����������������������������������������������������������������������49


Sequence������������������������������������������������������������������������������������������������������������49
Selection�������������������������������������������������������������������������������������������������������������52
if... else����������������������������������������������������������������������������������������������������������52
elif�����������������������������������������������������������������������������������������������������������������55
Iteration (Loops)��������������������������������������������������������������������������������������������������61
For Loop���������������������������������������������������������������������������������������������������������61
While Loop�����������������������������������������������������������������������������������������������������65
Break and Continue���������������������������������������������������������������������������������������������68
Lab Exercises������������������������������������������������������������������������������������������������������69
Summary������������������������������������������������������������������������������������������������������������69

Chapter 5: Handling Files�������������������������������������������������������������������71


File Types������������������������������������������������������������������������������������������������������������71
Text File���������������������������������������������������������������������������������������������������������71
Binary������������������������������������������������������������������������������������������������������������72
Text File Operations��������������������������������������������������������������������������������������������73
Open Files������������������������������������������������������������������������������������������������������73
Write to a File������������������������������������������������������������������������������������������������75
Read from a File��������������������������������������������������������������������������������������������78
Binary File Operations�����������������������������������������������������������������������������������������79
Open Files������������������������������������������������������������������������������������������������������79
Write to a File������������������������������������������������������������������������������������������������80
Read a File�����������������������������������������������������������������������������������������������������81

v
Table of Contents

Random File Access��������������������������������������������������������������������������������������������83


Lab Exercises������������������������������������������������������������������������������������������������������84
Summary������������������������������������������������������������������������������������������������������������85

Chapter 6: Using Functions�����������������������������������������������������������������87


Declaring Functions��������������������������������������������������������������������������������������������87
Scope������������������������������������������������������������������������������������������������������������������90
Recursion������������������������������������������������������������������������������������������������������������90
Lab Exercises������������������������������������������������������������������������������������������������92
Summary������������������������������������������������������������������������������������������������������������93

Chapter 7: Using Modules�������������������������������������������������������������������95


Importing Modules����������������������������������������������������������������������������������������������96
Creating Your Own Modules������������������������������������������������������������������������������100
Lab Exercises����������������������������������������������������������������������������������������������������101
Summary����������������������������������������������������������������������������������������������������������102

Chapter 8: Exception Handling���������������������������������������������������������103


Types of Exception��������������������������������������������������������������������������������������������103
Catching Exceptions������������������������������������������������������������������������������������������105
Raising Your Own Exceptions����������������������������������������������������������������������������107
Summary����������������������������������������������������������������������������������������������������������108

Chapter 9: Object-Oriented Programming����������������������������������������109


Principles of OOP����������������������������������������������������������������������������������������������109
Encapsulation����������������������������������������������������������������������������������������������109
Inheritance��������������������������������������������������������������������������������������������������110
Polymorphism����������������������������������������������������������������������������������������������110
Abstraction��������������������������������������������������������������������������������������������������110

vi
Table of Contents

Classes and Objects������������������������������������������������������������������������������������������110


Class Inheritance����������������������������������������������������������������������������������������������113
Polymorphic Classes�����������������������������������������������������������������������������������������116
Method Overriding��������������������������������������������������������������������������������������������117
Lab Exercises����������������������������������������������������������������������������������������������������119
Summary����������������������������������������������������������������������������������������������������������120

Chapter 10: Building an Interface�����������������������������������������������������121


Creating a Window��������������������������������������������������������������������������������������������121
Adding Widgets�������������������������������������������������������������������������������������������������124
Menus����������������������������������������������������������������������������������������������������������124
The Canvas��������������������������������������������������������������������������������������������������126
Images���������������������������������������������������������������������������������������������������������129
Buttons��������������������������������������������������������������������������������������������������������130
Message Boxes�������������������������������������������������������������������������������������������131
Text Field�����������������������������������������������������������������������������������������������������132
Listbox���������������������������������������������������������������������������������������������������������133
Checkbox�����������������������������������������������������������������������������������������������������135
Labels����������������������������������������������������������������������������������������������������������137
Label Frame�������������������������������������������������������������������������������������������������138
Interface Design������������������������������������������������������������������������������������������������139
Summary����������������������������������������������������������������������������������������������������������144

Chapter 11: Developing a Game�������������������������������������������������������145


Installing Pygame����������������������������������������������������������������������������������������������145
Opening a Window��������������������������������������������������������������������������������������������147
Adding an Image�����������������������������������������������������������������������������������������������148
The Game Loop�������������������������������������������������������������������������������������������������149
The Event Loop�������������������������������������������������������������������������������������������������151

vii
Table of Contents

Shapes��������������������������������������������������������������������������������������������������������������155
Basic Animation������������������������������������������������������������������������������������������������156
Summary����������������������������������������������������������������������������������������������������������164

Chapter 12: Python Web Development���������������������������������������������167


Web Servers������������������������������������������������������������������������������������������������������167
Install the Web Server���������������������������������������������������������������������������������������169
Set Up Python Support��������������������������������������������������������������������������������������169
Executing a Script���������������������������������������������������������������������������������������������171
Python Web Frameworks����������������������������������������������������������������������������������175
Summary����������������������������������������������������������������������������������������������������������181

Appendix A: Quick Reference�����������������������������������������������������������183


D
 ata Types���������������������������������������������������������������������������������������������������������183
N
 umeric Operators��������������������������������������������������������������������������������������������183
C
 omparison Operators��������������������������������������������������������������������������������������184
B
 oolean Operators��������������������������������������������������������������������������������������������184
S
 tring Operators������������������������������������������������������������������������������������������������184
L ist Operators����������������������������������������������������������������������������������������������������184
D
 ictionary Operators�����������������������������������������������������������������������������������������185
S
 tring Methods��������������������������������������������������������������������������������������������������185
L ist Methods�����������������������������������������������������������������������������������������������������185
D
 ictionary Methods�������������������������������������������������������������������������������������������185
F unctions����������������������������������������������������������������������������������������������������������186
F iles������������������������������������������������������������������������������������������������������������������186
C
 onditional��������������������������������������������������������������������������������������������������������186
M
 ulti-conditional�����������������������������������������������������������������������������������������������186
W
 hile Loop��������������������������������������������������������������������������������������������������������187

viii
Table of Contents

F or Loop������������������������������������������������������������������������������������������������������������187
L oop Control������������������������������������������������������������������������������������������������������187
M
 odules������������������������������������������������������������������������������������������������������������187
B
 uilt-In Functions����������������������������������������������������������������������������������������������187
D
 eclare a Class�������������������������������������������������������������������������������������������������188
C
 hild Class��������������������������������������������������������������������������������������������������������188
C
 reate Object����������������������������������������������������������������������������������������������������188
C
 all Object Method��������������������������������������������������������������������������������������������188
A
 ccess Object Attributes�����������������������������������������������������������������������������������188
E xceptions���������������������������������������������������������������������������������������������������������188

Index�������������������������������������������������������������������������������������������������189

ix
About the Author
With over 20 years’ experience in the computer industry, Kevin Wilson
has made a career out of technology and showing others how to use it.
After earning a master’s degree in computer science, software engineering,
and multimedia systems, Kevin has held various positions in the IT
industry including graphic and web design, digital film and photography,
programming and software engineering, developing and managing
corporate networks, building computer systems, and IT support. He
currently teaches computer science at college and works as an IT trainer in
England while researching for his Ph.D.

xi
About the Technical Reviewer
Joos Korstanje is a data scientist, with over
five years of industry experience in developing
machine-learning tools. He has a double M.Sc.
in applied data science and environmental
science and has extensive experience working
with geodata use cases. He currently works at
Disneyland Paris, where he develops machine
learning for a variety of tools. His project
experience includes forecasting, recommender
engines, optimization, machine learning on
GPS tracking data, and more. Joos is also an active blogger on Medium and
has worked on multiple book publications.

xiii
Introduction
The aim of this book is to provide a first course in the use of Python to
develop programs.
It provides a foundation for those who wish to write computer
programs based on sound programming principles, and because the book
is intended to be a primer, it allows the beginner to become comfortable
with basic programming tasks.
As it is a first course, no previous experience of computer
programming is assumed.
Throughout the book, we’ll explore the Python programming language
with worked examples and lab exercises for you to complete yourself.
For this purpose, we’ve included all the source code for this book in the
following repository: github.com/apress/absolute-beginners-guide-python

xv
CHAPTER 1

Introduction to
Computer
Programming
What is a computer program? A computer is a device that processes
instructions to achieve a task. This set of instructions is called a computer
program.
A computer program usually takes some data such as a string or a
number and performs calculations to produce results. We usually refer to
the data as the program’s input and the results as the program’s output.
To write computer programs, we use a computer programming
language. There are many different languages such as BASIC, C, C++,
and Python. In this guide, we are going to concentrate on the Python
programming language.
Every computer program manipulates data to produce a result, so
most languages allow the programmer to choose names for each item of
data. These items are called variables or constants. A variable, as the name
suggests, is an item that can contain different values as the program is
executed. A constant stays the same.

© Kevin Wilson 2022 1


K. Wilson, The Absolute Beginner’s Guide to Python Programming,
https://doi.org/10.1007/978-1-4842-8716-3_1
Chapter 1 Introduction to Computer Programming

For example, if we wrote a program to calculate the volume of a sphere,


we could have variables for the radius and one for the result. We can also
have a constant for the value of Pi as it never changes.
In larger programs, we often need to make decisions based on user
input, a calculated result, or condition. In this case, we use an if statement.
This is called selection.
Some blocks of code might also need to be repeated; in this case, we
use a loop. This is called repetition.
The Python programming language has specific facilities to enable
us to implement the concepts outlined earlier. Many of these will be
introduced throughout this book.

What Is Python
Python is a high-level language developed by Guido van Rossum in the
late 1980s and is used in web development, scientific applications, gaming,
AI, and is well suited to education for teaching computer programming.
Python is designed to be an easily readable language. Therefore, it uses
an uncluttered formatting style and often uses English keywords where
other languages use a symbol.
Python is an interpreted programming language, meaning Python
programs are written in a text editor and then put through a Python
interpreter to be executed.
Python is used in the field of artificial intelligence and can be found
in many day-to-day applications. Streaming services such as Spotify use
Python for data analysis, particularly users’ listening habits in order to
offer suggestions on which artist to follow, other music a particular user
might be interested in, and so on. Python is also used within Netflix’s
machine-learning algorithms for recommending relevant content to users,
monitoring browsing habits, and marketing.

2
Chapter 1 Introduction to Computer Programming

In the world of games development, Python is used as a companion


language, meaning Python scripts are used to add customizations to the
core gaming engine, script AI behaviors, or server side elements. The
performance of Python isn’t fast enough for coding graphics-intensive,
higher-end games; however, you can create simple games with Python
using the pygame module.
Python is used in web development and allows a web developer to
develop dynamic web apps very quickly.
Python is a multi-platform language and is available for Windows,
MacOS, Linux, and the Raspberry Pi.

To start coding, you’ll need a computer – either Windows, MacOS,


or Linux – and an integrated development environment (IDE) with the
Python interpreter.

3
Chapter 1 Introduction to Computer Programming

Getting Started
In this section, we’ll take a look at how to install the Python interpreter
and development environment. You can install Python on Windows, Mac,
or Linux.

Setting Up
Before we start writing programs, we need to set up our development
environment. We’ll take a look at installing Python on Windows, Mac,
and Linux.

Install on Windows
In our lab, we’re using Windows workstations, so we’ll need to install the
Python integrated development environment for Windows.
Open your web browser and navigate to the following website:

www.python.org/downloads/windows

From the Downloads page, select the “executable installer” of the latest
stable release.

4
Chapter 1 Introduction to Computer Programming

Click “run” when prompted by your browser. Or click “python-x.x.x-


amd64.exe” if you’re using Chrome.

5
Chapter 1 Introduction to Computer Programming

Once the installer starts, make sure “Add Python 3.x to PATH” is
selected, and then click “Customize installation” to run through the steps
to complete the installation.

Make sure you select all the tick boxes for all the optional features.

6
Chapter 1 Introduction to Computer Programming

Click “Next.”
Make sure “Install for all users” is selected at the top of the dialog box.
Click “Install” to begin.

7
Chapter 1 Introduction to Computer Programming

Click “Disable path length limit” to make sure Python runs smoothly
on Windows and allow long filenames.

Click “Close” to finish the installation.


You’ll find the Python integrated development environment (IDLE)
and the Python interpreter in the Python folder on your start menu.

8
Chapter 1 Introduction to Computer Programming

To write our programs, we’ll use IDLE Python. This is Python’s


integrated development environment.

Here, you can write your code in the editor and then execute and
debug your code. You’ll also notice the code editor provides syntax
highlighting, meaning keywords and text are highlighted in different
colors, making code easier to read.

I nstall on MacOS
To install Python 3 with the official installer, open your web browser and
navigate to the following website:

www.python.org/downloads/macos

Click Download Python.

9
Chapter 1 Introduction to Computer Programming

You’ll find the package in your Downloads folder. Double-click on the


package to begin the installation.

Run through the installation wizard. Click “Continue.”

10
Chapter 1 Introduction to Computer Programming

Once the installation is complete, you’ll find Python in the


Applications folder in Finder or on the launchpad.

I nstall on Linux
If you are running a Linux distribution such as Ubuntu or have a Raspberry
Pi, you can install Python using the terminal. You’ll find the terminal app
in your applications. You can also press Control+Alt+T on your keyboard.

11
Chapter 1 Introduction to Computer Programming

At the terminal command prompt, type the following commands. Press


Enter after each line.

sudo apt update


sudo apt upgrade

Type the following command to install Python:

sudo apt install python3 -y

Once the Python is installed, we need to install IDLE, the development


environment. To do this, type the following command at the prompt:

sudo apt-get install idle3 -y

Once installed, you’ll find IDLE in your applications.

Or you can type the following command at the prompt:

idle

12
Chapter 1 Introduction to Computer Programming

Arrange your windows so you can see your code window and the shell.

S
 ummary
• Python is a high-level language whose code is executed
by an interpreter to produce output.
• Python is a multi-platform language and is available for
Windows, MacOS, Linux, and the Raspberry Pi.
• To write our programs, we use IDLE Python. This is
Python’s integrated development environment.

13
CHAPTER 2

The Basics
Python programs are written in a text editor, such as Notepad, PyCharm, or
the code editor in Python’s integrated development environment (IDLE),
and saved with a .py file extension.
You then use the Python interpreter to execute the code saved in
the file.
Let’s start at the beginning.

Language Classification
There are different levels of programming language: low-level languages
and high-level languages.

Low-Level Language
A low-level language is a programming language whose functions often
refer directly to the processor’s instructions and is commonly written in
machine code or assembly language. Assembly language is known as a
second-generation programming language, machine code being the first
generation.
Let’s take a look at a simple program. Here, we have a little adder
program written in assembly language for our processor, and might look
something like this:

© Kevin Wilson 2022 15


K. Wilson, The Absolute Beginner’s Guide to Python Programming,
https://doi.org/10.1007/978-1-4842-8716-3_2
Chapter 2 The Basics

LDA 12H
ADD 07H
STA 09H
STP

Code is written in assembly language and then assembled into


machine code using an assembler before it is executed.

Figure 2-1. Code assembled into machine code by assembler

Each assembly language instruction corresponds to a sequence of


binary numbers in machine code. The numbers, characters, addresses,
and other data are converted into their machine code equivalents.
So, LDA could be represented by the binary code 11000011; the
number 1210 is 00001100 in binary.
The assembled machine code is then executed by the processor.

High-Level Language
Python is an example of a high-level language. Rather than dealing directly
with processor registers and memory addresses, high-level languages deal
with variables, human-readable statements, loops, and functions.
High-level language code is either compiled into a machine code
executable program or interpreted. Languages such as C or C++ are
often compiled, meaning the code is written and then converted into an
executable file. This makes them ideal for software development to write
applications such as Microsoft Word that run on a computer.

16
Chapter 2 The Basics

Figure 2-2. Code compiled into machine code by compiler

Python is an interpreted language, meaning the code you write


is translated into machine code directly, making it well suited to web
development.
Here, you can see the interpreter executes the code line by line while
accessing any data required by the program and then displays the output
directly onto the screen.

Figure 2-3. Code interpreted by interpreter for execution

When you attempt to run your program, the interpreter will convert
and execute your code, but will only do this if it doesn’t contain any errors.

17
Chapter 2 The Basics

If there are syntax errors, an error in the Python grammar, the


interpreter will stop and highlight the error.

If your program runs, there could still be errors. These could be logical
errors and can produce unexpected results and are sometimes called
bugs in the program. This could be a divide by 0 error which can cause the
program to crash.
The process of eliminating these errors is called debugging.

Python Language Syntax


The syntax defines how a program is written and interpreted and forms the
basis of writing code.

R
 eserved Words
These are words reserved by the programming language that define the
syntax and structure. Here are some of the most common ones:

18
Chapter 2 The Basics

For example, the word “while” indicates a while loop. The word “if”
defines an “if statement.” You can’t use a reserved word as a variable name
or function name.

19
Chapter 2 The Basics

I dentifiers
An identifier is a name given to a class, function, or a variable. Identifiers
can be a combination of uppercase or lowercase letters, numbers, or
an underscore (_). Try to keep the identifiers meaningful, so that they
describe what they’re used for.

printData, firstVariable, _count, userCount

I ndentation
Most other programming languages such as C and C++ use braces { } to
define a block of code. Python uses indentation. Use the tab key.

C
 omments
A comment is an explanation or annotation in the source code of a
computer program for the purpose of making the source code easier for
other programmers to understand. Comments are intended to be human
readable for the programmer’s benefit and are ignored by the Python
interpreter during execution.
Comments are very important while writing a program. You should
clearly document all your code using comments, so other developers
working on a project can better understand what your code is doing.

20
Chapter 2 The Basics

Use the hash character (#) to write single-line comments:

# Prompt user for two numbers


a = input ('Enter first number: ')
b = input ('Enter second number: ')

If you need to write a block describing the functionality, then use a


triple quote before and after the comment block.
For example:

""" Prompt user for two numbers


one after the other using a text input """
a = input ('Enter first number: ')
b = input ('Enter second number: ')

Input
You can obtain input from the user using the input( ) function. This
function prompts the user to type in some data.

number = input ('Enter a number: ')

Output
You can display information on the screen with the print( ) function.
You can print the contents of a variable or enclose a string within the
parameters of the print( ) function. For example:

print (number)

Escape Characters
An escape character tells the interpreter to perform a specific operation
such as a line break or tab or a reserved character such as a quote mark or
apostrophe.

21
Chapter 2 The Basics

Escape characters start with the a backslash (\) and are used to format
a string. Table 2-1 lists escape characters and their function.

Table 2-1. Escape characters


Escape Character Function

\n Line break
\t Tab (horizontal indentation)
\ New line in a multiline string
\\ Backslash
\’ Apostrophe or single quote
\” Double quote

For example, you could use the tab escape and break line character to
format some text:

print("John \t 45 \nJoanne \t 15")

The output to this line would look something like this:

John        45
Joanne      15

Writing a Program
To write a program, open IDLE Python from the start menu. Select the File
menu and then click “New File.”

22
Chapter 2 The Basics

A new blank window will appear. This is the code editor. Here, you can
write all your Python code.

23
Chapter 2 The Basics

Arrange your windows as shown here, with the Python Shell on


the left-hand side (or right if you prefer) – this is where you’ll see the
results of your programs. Put the code editor window next to the Python
Shell window.
For our first program, we’re going to write something that adds two
numbers together and then displays the result.
First, we need two variables to store the numbers. We’ll use “a” and “b.”
We’ll assign the number 5 to each variable.

a = 5
b = 5

Next, we need a piece of code that will add the two numbers together
and store the result. In this case, the values assigned to the variables “a”
and “b” will be added together and stored in the variable “result.”

result = a + b

Next, we’ll need a function to print the result on the screen:

print (result)

24
Chapter 2 The Basics

Let’s put it all together in a program.

To run the program, press F5, or go to the “Run” menu in your code
editor and click “Run Module.”

25
Chapter 2 The Basics

You can see in the following image the output of the program, in this
case “10.”

26
Chapter 2 The Basics

This particular program isn’t very useful. It would be much better if we


could allow the user to enter the numbers they want to add together. To do
this, we’ll need to add a function that will prompt the user for a value.
We’ll use the input function. We can replace the variables “a” and “b”
from the previous program with the input function.

a = input ('Enter first number: ')


b = input ('Enter second number: ')

Now, because the input function reads the values entered as text
(called a string), we need to convert these to numbers. So we need to
modify the code that adds the two numbers together. We can use the int
function – this converts the text to an integer which is a fancy name for a
whole number.

result = int(a) + int(b)

Let’s put it all together in a program.

27
Chapter 2 The Basics

You can see in the following image the output of the program. The
program prompted the user for two numbers, added them together, and
then displayed the result underneath.

28
Chapter 2 The Basics

Lab Exercises
What is the output produced by the following code fragment?

num1 = 2
num2 = 3
print (num1 + num2)

What is the output produced by the following code fragment?

num1 = 2
num2 = 3
print ("num 1 + num 2 = ", num1 + num2)

Find the errors in the following program:

Num1 = 2
num2 := 3
Sum = num1 + num2;
printf(sum)

Which of the following identifiers are valid and which are


invalid? Why?

Num1
time-of-day
tax_rate
x5
int
7th_Rec
yield

How do you write comments in your code? Explain with an example.


Why should you include comments?

29
Chapter 2 The Basics

S
 ummary
• Python programs are written in a text editor, such as
Notepad, PyCharm, or the code editor in Python’s
development environment (IDLE), and saved with a .py
file extension.
• Python is an example of a high-level language.
• Python is an interpreted language, meaning the code
you write is translated into machine code directly,
making it well suited to web development.
• An identifier is a name given to a class, function, or a
variable.
• Python uses indentation to mark a block of code. Use
the tab key to indent.
• A comment is an explanation or annotation in the
source code of a computer program for the purpose of
making the source code easier for other programmers
to understand.
• You can obtain input from the user using the input( )
function.
• You can display information on the screen with the
print( ) function.

30
CHAPTER 3

Working with Data


You can store and manipulate all different types of data: a number, a string,
list, and so on. With Python, you don't need to declare all your variables
before you use them.

Variables
A variable is a labeled location in memory that is used to store values
within a computer program. There are two types of variables: local
and global.

Local Variables
Variables defined within a function are called local variables, as they are
local to that particular function. These variables can only be seen by the
function in which they are defined. These variables have local scope.
Figure 3-1 shows an example of local variables.

Figure 3-1. An example of local variables

© Kevin Wilson 2022 31


K. Wilson, The Absolute Beginner’s Guide to Python Programming,
https://doi.org/10.1007/978-1-4842-8716-3_3
Chapter 3 Working with Data

Global Variables
Global variables are defined in the main body of the program outside any
particular functions. These variables can be seen by any function and are
said to have global scope.
Here in the example below, “a” and “b” are global variables, while
“firstnum,” “secondnum,” and “sum” are local variables.

You would not be able to access the variables “firstnum,” “secondnum,”


and “sum” from outside the “addnum” function.

Basic Data Types


A variable can store various types of data, called a data type. Let’s
introduce some of the basic types we'll be looking at.

Integers
An integer is a whole number and can be positive or negative. Integers can
usually be of unlimited length.

score = 45

32
Chapter 3 Working with Data

Floating Point Numbers


A floating point number, sometimes called a real number, is a number that
has a decimal point:

temperature = 44.7

S
 trings
In Python code, a string must be enclosed in quotes “...” or ‘...’:

name = "John Myers"

L ists
A list is an ordered sequence of data items usually of the same type, each
identified by an index (shown in the circles). This is known as a one-­
dimensional list.

Lists are known as arrays in other programming languages, and you


can create one like this – list elements are enclosed in square brackets [ ]:

shoppingList = ['bread', 'milk', 'coffee', 'cereal']

To reference an item in a list, put the reference in square brackets:

print (shoppingList[1])

You can assign another value to an item in the list (e.g., change cereal):

shoppingList[3] = "chocolate"

33
Random documents with unrelated
content Scribd suggests to you:
I.
On the deck of Patrick Lynch’s boat I sit in woful plight,
Through my sighing all the weary day, and weeping all the night.
Were it not that full of sorrow from my people forth I go.
By the blessed sun, ’tis royally I’d sing thy praise. Mayo!

II.
When I dwelt at home in plenty, and my gold did much abound.
In the company of fair young maids the Spanish ale went round—
’Tis a bitter change from those gay days that now I’m forced to go,
And must leave my bones in Santa Cruz, far from my own Mayo!

III.
They are altered girls in Irrul now, ’tis proud they’re grown and high,
With their hair-bags and their top-knots, for I pass their buckles by—
But it’s little now I heed their airs, for God will have it so,
That I must depart for foreign lands, and leave my sweet Mayo!

IIII.
’Tis my grief that Patrick Loughlin is not Earl in Irrul still,
And that Brian Duff no longer rules as Lord upon the hill,
And that Colonel Hugh Mac Grady should be lying dead and low,
And I sailing, sailing swiftly from the county of Mayo!

For the satisfaction of our Gaelic readers, we annex the original Irish words:

Condae Maiġeó.
Is ar an loingseo Phaidi Loingsiġ do ġnimse an dubron
Ag osnaḋ ann san oiḋche is ag siorġol san ló
Muna mbeiḋ gur dallaḋ minntleacht is me a ḃḟad om ṁuinntir
Dar a maireann! is maiṫ a chaoinfinnsi condae Mhaiġeo.

An uair a ṁair mo chairde buḋ ḃreaġ mo chuid oir


Dolainn lionn Spaineach i gcoṁluadar ban og
Muna mbeidh síor ol na gcártai san dliġ bheit ro láidir
Ni a Santícrús a dḟácfainn mo ċnaṁa fán bhḟod.

Táid gadaiḋniġe na háite seo ag eirgeaḋ go ṁór


Fa ċnotaḋa is fa hairbag gan traċt as bhúclaḋa brog
Da mairḟeaḋ damsa an iar-uṁaill do ḋeanfuinn díobh cianach
Muna mbeiḋ gur ṫagair dia ḋam bheiṫ a gciantaibh fa bhron.

Dá mbeiḋ Padruig Lochlainn ma iarla air iar-uṁaill go foil


Brian Dubh a chliaṁain na ṫighearna ar ḋuṁach-ṁoir
Aoḋ dubh mac Griada ’na choirnel a gCliara
Is ann niu bheiḋ mo ṫriallsa go condae Mhaigheo.

Cameo-cutting.—This art is of great antiquity, and is pursued with most success in Rome,
where there are several very eminent artists now living. Cameos are of two descriptions,
those cut in stone, or pietra dura, and those cut in shell. Of the first, the value depends
on the stone, as well as in the excellence of the work. The stones most prized now are
the oriental onyx and the sardonyx, the former black and white in parallel layers, the
latter cornelian, brown and white; and when stones of four or five layers of distinct
shades or colours can be procured, the value is proportionably raised, provided always
that the layers be so thin as to be manageable in cutting the cameo so as to make the
various parts harmonize. For example, in a head of Minerva, if well wrought out of a
stone of four shades, the ground should be dark grey, the face light, the bust and helmet
black, and the crest over the helmet brownish or grey. Next to such varieties of shades
and layers, those stones are valuable in which two layers occur of black and white of
regular breadth. Except on such oriental stones no good artist will now bestow his time;
but, till the beginning of this century, less attention was bestowed on materials, so that
beautiful middle-age and modern cameos may be found on German agates, whose
colours are generally only two shades of grey, or a cream and a milk-white, and these not
unfrequently cloudy. The best artist in Rome in pietra dura is the Signor Girometti, who
has executed eight cameos of various sizes, from 1½ to 3½ inches in diameter, on picked
stones of several layers, the subjects being from the antique. These form a set of
specimens, for which he asks £3,000 sterling. A single cameo of good brooch size, and of
two colours, costs £22. Portraits in stone by those excellent artists Diez and Saulini may
be had for £10. These cameos are all wrought by a lathe with pointed instruments of
steel, and by means of diamond dust.
Shell cameos are cut from large shells found on the African and Brazilian coasts, and
generally show only two layers, the ground being either a pale coffee-colour or a deep
reddish-orange; the latter is most prized. The subject is cut with little steel chisels out of
the white portion of the shell. A fine shell is worth a guinea in Rome. Copies from the
antique, original designs, and portraits, are executed in the most exquisite style of finish,
and perfect in contour and taste, and it may be said that the Roman artists have attained
perfection in this beautiful art. Good shell cameos may be had at from £1 to £5 for
heads, £3 to £4 for the finest large brooches, a comb costs £10, and a complete set of
necklace, ear-rings, and brooch cost £21. A portrait can be executed for £4 or £5,
according to workmanship.

Venetian Pavements.—A most beautiful art may be mentioned here in connection with the
last, I mean that of making what are termed Venetian pavements which might
advantageously be introduced into this country. The floors of rooms are finished with this
pavement, as it is somewhat incongruously termed, and I shall briefly describe the mode
of operation in making these, but must first observe that they are usually formed over
vaults. In the first place, a foundation is laid of lime mixed with pozzolana and small
pieces of broken stone; this is in fact a sort of concrete, which must be well beaten and
levelled. When this is perfectly dry, a fine paste, as it is termed by the Italians, must be
made of lime, pozzolana, and sand; a yellow sand is used which tinges the mixture; this
is carefully spread to a depth of one or two inches, according to circumstances. Over this
is laid a layer of irregularly broken minute pieces of marble of different colours, and if it is
wished, these can be arranged in patterns. After the paste is completely covered with
pieces of marble, men proceed to beat the floor with large and heavy tools made for the
purpose; when the whole has been beaten into a compact mass, the paste appearing
above the pieces of marble, it is left to harden. It is then rubbed smooth with fine
grained stones, and is finally brought to a high polish with emery powder, marble-dust,
and, lastly, boiled oil rubbed on with flannel. This makes a durable and very beautiful
floor, which in this country would be well adapted for halls, conservatories, and other
buildings.—The Civil Engineer and Architect’s Journal.

How destitute of humanity is he, who can pass a coarse joke upon the emblem of
unfeigned sorrow.
Printed and published every Saturday by Gunn and Cameron, at the
Office of the General Advertiser, No. 6, Church Lane, College Green,
Dublin.—Agents:—R. Groombridge, Panyer Alley, Paternoster Row,
London; Simms and Dinham, Exchange Street, Manchester; C. Davies,
North John Street, Liverpool; Slocombe & Simms, Leeds, John Menzies,
Prince’s Street, Edinburgh; & David Robertson, Trongate, Glasgow.
*** END OF THE PROJECT GUTENBERG EBOOK THE IRISH PENNY
JOURNAL, VOL. 1 NO. 44, MAY 1, 1841 ***

Updated editions will replace the previous one—the old editions


will be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States
copyright in these works, so the Foundation (and you!) can copy
and distribute it in the United States without permission and
without paying copyright royalties. Special rules, set forth in the
General Terms of Use part of this license, apply to copying and
distributing Project Gutenberg™ electronic works to protect the
PROJECT GUTENBERG™ concept and trademark. Project
Gutenberg is a registered trademark, and may not be used if
you charge for an eBook, except by following the terms of the
trademark license, including paying royalties for use of the
Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such
as creation of derivative works, reports, performances and
research. Project Gutenberg eBooks may be modified and
printed and given away—you may do practically ANYTHING in
the United States with eBooks not protected by U.S. copyright
law. Redistribution is subject to the trademark license, especially
commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the


free distribution of electronic works, by using or distributing this
work (or any other work associated in any way with the phrase
“Project Gutenberg”), you agree to comply with all the terms of
the Full Project Gutenberg™ License available with this file or
online at www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand,
agree to and accept all the terms of this license and intellectual
property (trademark/copyright) agreement. If you do not agree
to abide by all the terms of this agreement, you must cease
using and return or destroy all copies of Project Gutenberg™
electronic works in your possession. If you paid a fee for
obtaining a copy of or access to a Project Gutenberg™
electronic work and you do not agree to be bound by the terms
of this agreement, you may obtain a refund from the person or
entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only


be used on or associated in any way with an electronic work by
people who agree to be bound by the terms of this agreement.
There are a few things that you can do with most Project
Gutenberg™ electronic works even without complying with the
full terms of this agreement. See paragraph 1.C below. There
are a lot of things you can do with Project Gutenberg™
electronic works if you follow the terms of this agreement and
help preserve free future access to Project Gutenberg™
electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright
law in the United States and you are located in the United
States, we do not claim a right to prevent you from copying,
distributing, performing, displaying or creating derivative works
based on the work as long as all references to Project
Gutenberg are removed. Of course, we hope that you will
support the Project Gutenberg™ mission of promoting free
access to electronic works by freely sharing Project Gutenberg™
works in compliance with the terms of this agreement for
keeping the Project Gutenberg™ name associated with the
work. You can easily comply with the terms of this agreement
by keeping this work in the same format with its attached full
Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside
the United States, check the laws of your country in addition to
the terms of this agreement before downloading, copying,
displaying, performing, distributing or creating derivative works
based on this work or any other Project Gutenberg™ work. The
Foundation makes no representations concerning the copyright
status of any work in any country other than the United States.

1.E. Unless you have removed all references to Project


Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project
Gutenberg™ work (any work on which the phrase “Project
Gutenberg” appears, or with which the phrase “Project
Gutenberg” is associated) is accessed, displayed, performed,
viewed, copied or distributed:

This eBook is for the use of anyone anywhere in the United


States and most other parts of the world at no cost and
with almost no restrictions whatsoever. You may copy it,
give it away or re-use it under the terms of the Project
Gutenberg License included with this eBook or online at
www.gutenberg.org. If you are not located in the United
States, you will have to check the laws of the country
where you are located before using this eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is


derived from texts not protected by U.S. copyright law (does not
contain a notice indicating that it is posted with permission of
the copyright holder), the work can be copied and distributed to
anyone in the United States without paying any fees or charges.
If you are redistributing or providing access to a work with the
phrase “Project Gutenberg” associated with or appearing on the
work, you must comply either with the requirements of
paragraphs 1.E.1 through 1.E.7 or obtain permission for the use
of the work and the Project Gutenberg™ trademark as set forth
in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is


posted with the permission of the copyright holder, your use and
distribution must comply with both paragraphs 1.E.1 through
1.E.7 and any additional terms imposed by the copyright holder.
Additional terms will be linked to the Project Gutenberg™
License for all works posted with the permission of the copyright
holder found at the beginning of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files
containing a part of this work or any other work associated with
Project Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute


this electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the
Project Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if
you provide access to or distribute copies of a Project
Gutenberg™ work in a format other than “Plain Vanilla ASCII” or
other format used in the official version posted on the official
Project Gutenberg™ website (www.gutenberg.org), you must,
at no additional cost, fee or expense to the user, provide a copy,
a means of exporting a copy, or a means of obtaining a copy
upon request, of the work in its original “Plain Vanilla ASCII” or
other form. Any alternate format must include the full Project
Gutenberg™ License as specified in paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™
works unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or


providing access to or distributing Project Gutenberg™
electronic works provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project


Gutenberg™ electronic work or group of works on different
terms than are set forth in this agreement, you must obtain
permission in writing from the Project Gutenberg Literary
Archive Foundation, the manager of the Project Gutenberg™
trademark. Contact the Foundation as set forth in Section 3
below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on,
transcribe and proofread works not protected by U.S. copyright
law in creating the Project Gutenberg™ collection. Despite these
efforts, Project Gutenberg™ electronic works, and the medium
on which they may be stored, may contain “Defects,” such as,
but not limited to, incomplete, inaccurate or corrupt data,
transcription errors, a copyright or other intellectual property
infringement, a defective or damaged disk or other medium, a
computer virus, or computer codes that damage or cannot be
read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except


for the “Right of Replacement or Refund” described in
paragraph 1.F.3, the Project Gutenberg Literary Archive
Foundation, the owner of the Project Gutenberg™ trademark,
and any other party distributing a Project Gutenberg™ electronic
work under this agreement, disclaim all liability to you for
damages, costs and expenses, including legal fees. YOU AGREE
THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT
EXCEPT THOSE PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE
THAT THE FOUNDATION, THE TRADEMARK OWNER, AND ANY
DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE
TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL,
PUNITIVE OR INCIDENTAL DAMAGES EVEN IF YOU GIVE
NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of
receiving it, you can receive a refund of the money (if any) you
paid for it by sending a written explanation to the person you
received the work from. If you received the work on a physical
medium, you must return the medium with your written
explanation. The person or entity that provided you with the
defective work may elect to provide a replacement copy in lieu
of a refund. If you received the work electronically, the person
or entity providing it to you may choose to give you a second
opportunity to receive the work electronically in lieu of a refund.
If the second copy is also defective, you may demand a refund
in writing without further opportunities to fix the problem.

1.F.4. Except for the limited right of replacement or refund set


forth in paragraph 1.F.3, this work is provided to you ‘AS-IS’,
WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of
damages. If any disclaimer or limitation set forth in this
agreement violates the law of the state applicable to this
agreement, the agreement shall be interpreted to make the
maximum disclaimer or limitation permitted by the applicable
state law. The invalidity or unenforceability of any provision of
this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the


Foundation, the trademark owner, any agent or employee of the
Foundation, anyone providing copies of Project Gutenberg™
electronic works in accordance with this agreement, and any
volunteers associated with the production, promotion and
distribution of Project Gutenberg™ electronic works, harmless
from all liability, costs and expenses, including legal fees, that
arise directly or indirectly from any of the following which you
do or cause to occur: (a) distribution of this or any Project
Gutenberg™ work, (b) alteration, modification, or additions or
deletions to any Project Gutenberg™ work, and (c) any Defect
you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new
computers. It exists because of the efforts of hundreds of
volunteers and donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project
Gutenberg™’s goals and ensuring that the Project Gutenberg™
collection will remain freely available for generations to come. In
2001, the Project Gutenberg Literary Archive Foundation was
created to provide a secure and permanent future for Project
Gutenberg™ and future generations. To learn more about the
Project Gutenberg Literary Archive Foundation and how your
efforts and donations can help, see Sections 3 and 4 and the
Foundation information page at www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-
profit 501(c)(3) educational corporation organized under the
laws of the state of Mississippi and granted tax exempt status
by the Internal Revenue Service. The Foundation’s EIN or
federal tax identification number is 64-6221541. Contributions
to the Project Gutenberg Literary Archive Foundation are tax
deductible to the full extent permitted by U.S. federal laws and
your state’s laws.

The Foundation’s business office is located at 809 North 1500


West, Salt Lake City, UT 84116, (801) 596-1887. Email contact
links and up to date contact information can be found at the
Foundation’s website and official page at
www.gutenberg.org/contact
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws


regulating charities and charitable donations in all 50 states of
the United States. Compliance requirements are not uniform
and it takes a considerable effort, much paperwork and many
fees to meet and keep up with these requirements. We do not
solicit donations in locations where we have not received written
confirmation of compliance. To SEND DONATIONS or determine
the status of compliance for any particular state visit
www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states


where we have not met the solicitation requirements, we know
of no prohibition against accepting unsolicited donations from
donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot


make any statements concerning tax treatment of donations
received from outside the United States. U.S. laws alone swamp
our small staff.

Please check the Project Gutenberg web pages for current


donation methods and addresses. Donations are accepted in a
number of other ways including checks, online payments and
credit card donations. To donate, please visit:
www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could
be freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose
network of volunteer support.

Project Gutenberg™ eBooks are often created from several


printed editions, all of which are confirmed as not protected by
copyright in the U.S. unless a copyright notice is included. Thus,
we do not necessarily keep eBooks in compliance with any
particular paper edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg
Literary Archive Foundation, how to help produce our new
eBooks, and how to subscribe to our email newsletter to hear
about new eBooks.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebooknice.com

You might also like