The Complete Coding Manual - Expert Tutorials To Improve Your Skills [7 ed.]


279 107 120MB

English Pages [195]

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

The Complete Coding Manual - Expert Tutorials To Improve Your Skills [7 ed.]

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

.

\

|

: \

Expert Tutorials to Improve Your Skills

Ta

The Complete

The Complete

Black & White

Android Manual

Photography

Manual

The Complete

The Complete

Build Your Own PC

Canon Manual

, Manual

&

Expert Tutorials to Improve You

feb

100% INDEPENDENT

The Complete

The Complete

Cloud Computing

The Complete

The Complete

FRITZ'Box

Google Manual

Manual

i

'

a we Expert Tutorials to Improve Yaur Skills

pS

Expert Tutorials to Improve Your Skills

Expert Tutorials to Improve Your Skills

The Complete

The Complete

The Complete

GoPro

Instagram

WhatsApp

Improve Your Skills.

.

Manual

\

a

Manual

The Complete

|

Internet

Manual



Security @

Manual

" i

x

Expert Tutorials to Improve Your Skills

The Complete

The Complete

The Complete

iPhone

Landscape

Linux

Expert Tutorials to Improve Your Skills

The Complete

iPad OS ;

iE

Expert Tutorials to Improve Your Skills

Expert Tutorials to Improve Your Skills

pu

Manual Oeg Es

|

Photography

Manual

|

a

100% INDEPENDENT

The Complete

Coding Manual eee yer

SE)

FLAY

na eae

5

a eee or obje

Ti Talesc anueace if Rg

Les

eT

LeRoy Peele ai

ere

y

a

ersive game, cr, aa

ts pars Tai it all

parla

how learn works. imagination and g juires you understand what to enter,.

you can’

ee

=e

ree

v7] @bdmpubs

-

BDM Publications

os www.bdmpublications.com

A Brief History of Coding Being

a

Programmer

Choosing

Creating

a a

Programming Language Coding Platform

Starting Python For the First Time Your First Code Saving and Executing Your Code

Executing Code From the Command Line Numbers and Expressions Using Comments

Working with Variables User Input

Creating Functions

Conditions and Loops Python Modules Python Errors

Combining What You Know So Far

Python

in

Numbers

Why Python? Equipment You Will Need Dictionaries

How to Set Up Python in Windows

Splitting and Joining Strings Poa

Formatting Strings a

How to Set Up Python in Linux

Date and Time

Opening Files

Writing to Files Exceptions Python Graphics

Combining What You Know So Far

Ls

Getting to Know Python

o=

Using Modules

a

Calendar Module

86

OSModule

88

Random Module

144

While Loop

Tkinter Module

146

ForLoop

Pygame Module

148

Do... While Loop

90

_—_

92

if

Create Your Own Modules

IF

Statement

IF... Else

Statement

C++ Facts & Figures

104

Equipment You Will Need

106

Howto Set Up C++ in Windows

108

Howto

110

SetUp C++ ona Mac Howto Set in Linux Up C++

112

Other C++ IDEs to Install

156

Whatis a Batch File?

158

Getting Started with Batch Files Getting an Output

162

Playing with Variables

164

Batch File Programming

166

Loops and Repetition

168

Creating a Batch File Game

Your First C++ Program 118

Structure of

120

Compile and Execute

122

Using Comments

a

C++ Program

Variables 126 128

Types Data Strings C++ Maths

User Interaction

Character Literals 138

Defining Constants File Input/Output

Passing Variables to Python

174

Retro Coding

176

Text Animations

178

Creating

180

Tracking the ISS with Python

a

i

Loading Screen I |

184

Using Text Files for Animation

186

Common Coding Mistakes

188

Python Beginner's Mistakes

190

C++ Beginner's Mistakes

192

Where Next?

-Oundation® www.bdmpublications.com

Coding Foundations

Where to start learning how to code? Remarkably, this is the most difficult Ae) 1m) MTeoR) ee Tin aye)

eee

m

languages out there, and a seemingly unlimited number of tools to help ‘ you achieve what you want; but

where do you begin? In

this section, we look at what you'will

need to take those first tentative steps

into the world of coding. You won't become a programmer in twenty-four hours, learning how to code correctly

takes time and patience, but witha

little help, you can master the basics and start your'coding journey. eee

www.bdmpublications.com

....--- EEE ESL MMe oem

OM

..--

EE...

Leeseety ORR

sees

em

Biel) RPMI eRe

CETMC

IT

fe eee

(Rae

.....Helos

DSM

bA z

H

ir i eee) eee Ree

RSNA

rel

E-wLey|

ES

SBCA

|

LOLOOLLO OOLOOLLO LLLLOLLO LLOOOOLO |-MUl-c-Le Wi]

|-10s]-B-)-10 poe]| poem aU (en/

Won]em

MUlo]mcalUe]ns-1-ma[-16p)

p1

peo

START

ORG

—-ROMYS§0000

Los

PAG

‘FUNCTION

en

FRO

BEGIN MONITOR

IMITA - Initialize

ACIA

yoooi0012 yoooso002 PRREETA.

RRSET ACIA.

ACTUREG

«SET 6

BITS

GO TO

START OF HONTTER

ACA

AND 2 sTOr

ACTA SIGHON



FUNCTION

INCE - Input character

Gets

1

character from terminal

MIR mca AGING.

Ger _starus SHINY RORY FLAG TWTO -AnT* RECIEVE WOT READY GET CHAR MASK PARITY ECHO & RTS

cure

0

‘*

FUNCTION

INBEX - INFOT EEX DIGIT

none

OUTPUT: *

CALLS

5

aca A

INCH

DESTROTS +

Digit in

INPUT = BE

acc A

Returns to monitor if not

MEX

anpot

FOR

40

5

3

BSRSESESES

0

4

MEXRTS

BTR

INPUT "What 13 your name: “"; Us PRINT "Hello “; Ug PEN

AF

ro

RETURN TO CONTROL

” "How T=

many

stars

do you

want:

":s

N

1 TOWN

INPUT “Do you want more stars? "; Ag IF LEN(A) = 0 THEN GOTO 70 LEFTS(a$, 1) IF (Ag = "¥") OR (A$ = "y") THEN GOTO 30 PRINT "Goodbye "; FOF I = 1 TO 200

Ag =

cna

BD

Programmer wowapemieeialledeat

PREM

ic

eae

Being a Programmer

MORE THAN CODE

wW



aie

hs

;

Times have changed since programming in the ‘80s, but the core values still remain.

“It's up to you how far to take your coding

adventure!” #include #include

#include #include void getup()

t

textcolor (BLACK);

textbackground(15);

cirscr();

window(10,2,70,3)3

eprintf(“Press X to Exit, Press Space to Jump");

window(62,2,80,3)5 cprintf("SCORE : “); window(1,25,80,25); for(int x=0;x

= 2

D &

a E

So

oO

www.bdmpublications.com

Introducing Python

Python? There are many different programming languages available For the modern computer, and some still available For older 8 and 16-bit computers too. Some of these languages are designed for scientific work, others for mobile platforms and such. So why choose Python out of all the rest?

PYTHON POWER Ever since the earliest home computers were available, enthusiasts, users and professionals have toiled away until the wee hours, slaving over an overheating heap of circuitry to create something akin to magic. These pioneers of programming carved their way into new frontier, Forging small routines that enabled the letter ‘A’ to scroll across the screen. It may not sound terribly exciting to a generation

Regardless of whether you use an Android device, iOS device, PC, Mac, Linux, Smart TV, games console, MP3 player, GPS device built-in to a car, set-top box or a thousand other connected and ‘smart’

that’s used to ultra high-definition graphics and open world, multiplayer online gaming. However, Forty-something years ago it was blindingly brilliant.

appliances, behind them all is programming.

a

All those aforementioned digital devices need instructions to tell them what to do, and allow them to be interacted with. These instructions Form the programming core of the device and that core can be built using a variety of programming languages.

Naturally these bedroom coders helped form the foundations for every piece of digital technology we use today. Some went on to become chief developers For top software companies, whereas others pushed the available hardware to its limits and founded the billion pound gaming empire that continually amazes us.

The languages in use today differ depending on the situation, the platform, the device’s use and how the device will interact with its

Bombs - GUI - ThelDE - [d:\uppsrc\CtriLib\rrayCtrl.cpp windows-1 252] { examples }

File

Edit

Macro

Project

&

&B ctricore @WrichtText

®patoraw

en #

}

#

Editctrl.h

Headerctrl.h

S ScroliBar.cpp HeaderCtrl.cpp

Arrayctrl.h

GS ArrayCtrt.cpp

#

€ Droptist.cpp

& DropPusher.cpp Dropchoice. cpp

#

#

S Akeys.cpp

Splitter.h

@

#

€ FrameSplitter.cpp

}

Sliderctrl.h Sliderctrl.cpp

#

Columnist.

}

Columntist.cpp

#

Progress.h

HE

Help.cpp DateTimectrl.h

€ DateTimectrl.cpp

> Bar

# Bah Bar.cpp

€ MenuBar.cpp

S ToolBar.cep 4

ToolTip.cpp StatusBar.h

€ StatusBar.cpp & Tabctrl #

TabCtrl.h

Tabctrl.cpp

& Treectrt #

Treectri.h Treectrl.cpp

Splitter.cpp

#

RichText.h

& Prompt.cpp

Staticctrl.h Static.cpp

.

yoid

&

Dropchoice.h

DropBox.crp

Ce >|/0@

Ctrl: :ChildGotFocus();

@ @

@ RichTextview.cpp

#

S BBS

SetCursor (p.y);

plusiniz

4

#

obey @

§Bopluginipng

Textécit.h

Docédit.cop ScroliBar.b

#

BE

|

Ln 639, Col 45

Setup

&B pluginfomp

EditField.cpp

€ Text.cpp } Lineedt.cpp

Assist

vi mci

§B Bombs

Beek

Debug

Build

lau

§& DigColor $# DigColor.h

€ Digcolor.cpp € ColorPopup.cpp ColorPusher.cpp

& Filesel

Progress.cpp

4

Akeys.h

€} Filetist.cpp

FileSel.h

www.bdmpublications.com

.

ArrayCtrl::ChildLostFocus()

if(cursor

>= 0) Ref reshRow(cursor) ;

Ctrl: :ChildLostFocus () ;

Al ~

void

,

ArrayCtrl::Paint(Draw& LTIMING("Paint"); Size size = GetSize();

w)

{

=.

Rect rr; r.bottom = 0; bool hasfocus = HasFocusDeep();

int i = GetLineAt(sb); int xs = -header.GetScroll(); int js;

for(js = 0; js < column.GetCount(); js++) { int cw = header.GetTabwidth(js); if ( ( xs + cw - vertgrid + (js == column.GetCount() break;

xS += cw;

Color fc = Blend(ScolorDisabled, SColorPaper);

if IsNull (i)) < (1

while(i

r.top

GetCount()) { =

if(r.top

GetLiney(i)

> r.bottom =

-

sb;

size.cy) break; r.top

+

GetLineCy(i);

int x = xs; for(int j = js; } < column.GetCount(); j++) { int cw = header.GetTabwidth(j); int cm = column[j].margin; if(cm

< 0)

cm =

header.Tab(j).GetMargin();

if(x > size.cx) r.left = x;

break;

-

1))

>=

0)

Why Python?

environment or users. Operating systems, such as Windows, macOS and such are usually a combination of C++, C#, assembly and some form of visual-based language. Games generally use C++ whilst web pages can use a plethora of available languages such as HTML, Java, Python and so on. More general-purpose programming is used to create programs, apps, software or whatever else you want to call them. They're widely used across all hardware platforms and suit virtually every

conceivable application. Some operate Faster than others and some are easier to learn and use than others. Python is one such generalpurpose language.

Python is what's known as a High-Level Language, in that it ‘talks’ to the hardware and operating system using a variety ofarrays, variables, objects, arithmetic, subroutines, loops and countless more interactions, Whilst it’s not as streamlined as a Low-Level Language, which can deal directly with memory addresses, call stacks and registers, its benefit is that it’s universally accessible and easy to learn.

//File: import ma

6

Invoke. java

java.lang.reflect.*;

class Invoke { public

try static

.

void main( string [] args )

Class c = Class.forName( args[0] = c.getMethod( args[1], Wethod

‘.

);

new

f{

Class

Object ret = m.invoke( null, null ); system. out. printin “Invoked static method: + args(1] " + of class: " + args[0] " + with no args\nResults: + ret ); } catch ( ClassNotFoundException e)f{ // Class.forname( ) can't find the class } catch ( NoSuchMethodexception e2){ // that method doesn't exist catch € T] ion ed) { have permission to invoke that // we don’tlegalAccessExcept 3}

method

} catch ( InvocationTargetException e4 ) {

// an exception ocurred method

computer. It’s perfect for the hobbyist, enthusiast, student, teacher and those who simply need to create their own unique interaction

between either themselves or a piece of external hardware and the computer itself. Python is free to download, install and use and is available For Linux, Windows, macOS, MS-DOS, OS/2, BeOS, IBM i-series machines, and even RISC OS. It has been voted one of the top five programming

languages in the world and is continually evolving ahead of the hardware and Internet development curve. So to answer the question: why Python? Simply put, it’s Free, easy to learn, exceptionally powerful, universally accepted, effective anda superb learning and educational tool.

py=15

4@ LET

72 FOR w=1 TO 198 71 CLS 7S LET by =INT (RNDO#25) 6@ LET bx= 90 FOR d=1 TO 20 1@@ PRINT AT Px,Py;" U " 110 PRINT AT bx,by;"o" IF INKEY $="Pp" THEN LET pPY=P y+120 IF INKEY THEN LET PY=P 130 S="0" 135 FOR TO 100: NEXT 140 IF py2? THEN LET py=27 180 LET bx=bx+1 " 16S PRINT AT bx-1,by;" 19@ NEXT d 200 IF (by-1) =py THEN LET s=s41 2190 PRINT AT_10,10; 220 FOR v=i1i TO 1000: "score=";,5 NEXT v 300 NEXT w @ OK, @:1 nn

&=

BASIC was once the starter language that early 8-bit home computer users learned.

print(HANGMAN[®])

system.out.printIn

‘Method threw an:

"

getTargetException(

Java is PJ =

while invoking that

Python was created over twenty six years ago and has evolved to become an ideal beginner’s language For learning how to program a

attempts = len(HANGMAN) -

+ e4.

)

);

1

while (attempts != @ and "-" in word_guessed): print(("\nYou have {} attempts remaining”).fornat(attempts)) joined_word = "”. join(word_guessed) print (joined_word) try:

a powerful

player_guess = str(input("\nPlease select a letter between A-Z" + "\n> except: # check valid input print(*That is not valid input. Please try again.”) continue

language that's used in web pages, set-top boxes, TVs and even cars.

")).

else:

if

player_guess.isalpha(): # check the input is a letter. Also checks print("That is not a letter. Please try again.”)

not

a

continue

i

11

elif len(player_guess) > 1: # check the input is only one letter print("That is more than one letter. Please try again.")

1.

continue

elif player_guess in guessed_letters:

# check it letter hasn’t been guessed print("You have already guessed that letter. Please try again.”)

continue

else: pass aN

guessed_letters. append(player_guess)

for letter in range(len(chosen_word)):

if

if

player_guess == chosen_word[letter]: word_guessed[letter] = player_guess

#

replace all letters in the chosen

player_guess not in chosen_word:

Python is more modern take on BASIC, it’s easy to learn and makes for an ideal beginner's programming language. a

www.bdmpublications.com

-guipmen You

Will Need

You can learn Python with very little hardware or initial Financial investment. You don't need an incredibly powerful computer and any software that’s required is aeNllele) (en

ace

WHAT WE'RE USING Thankfully, Python is a multi-platform programming language available for Windows, macOS, Linux, Raspberry Pi and more. you have one of those systems, then you can easily start using Python.

IF

| _] COMPUTER Obviously you're going to need a computer in order to learn how to program in Python and to test your code. You can use Windows (from XP onward) on either a 32 or 64-bit processor, an Apple Mac or Linux installed PC.

[|_|

ANIDE

An IDE (Integrated Developer Environment) is used to enter and execute Python code. It enables you to inspect your program code and the values within the code, as

well as offering advanced Features. There are many different IDEs available, so find the one that works for you and gives the best results.

| _] PYTHON

SOFTWARE

macOS and Linux already come with Python preinstalled as part of the operating system, as does the Raspberry Pi. However, you need to ensure that you're running the latest version of Python. Windows users need to download and install Python, which we'll cover shortly.

~

Cee |_| Download

the Latest version for

Windows

TEXT EDITOR

Whilst a text editor is an ideal environment to enter code into, it’s not an absolute necessity. You can enter and execute code directly from the IDLE but a text editor, such as Sublime Text or Notepad++, offers more advanced Features and colour coding when entering code.

| _] INTERNET ACCESS Python is an ever evolving environment and as such new versions often introduce new concepts or change existing commands and code structure to make it more efficient language. Having access to the Internet will keep you up-to-date, help you a

out when you get stuck and give access to Python’s immense number of modules. tapeses

|

[| TIME AND PATIENCE

Despite what other books may lead you to believe, you won't become a programmer

in 24-hours. Learning to code in Python takes time, and patience. You may become

stuck at times and other times the code will flow like water. Understand you're learning something entirely new, and you will get there.

www.bdmpublications.com

(Equipment

You Will Need

THE RASPBERRY PI Why use a Raspberry Pi? The Raspberry Pi is a tiny computer that’s very cheap to purchase, but offers the user a Fantastic learning platform. Its main operating system, Raspbian, comes preinstalled with the latest Python along with many modules and extras.

RASPBERRY

PI

The Raspberry Pi 4 Model B is the latest version, incorporating a more powerful CPU, a choice of 1GB, 2GB or 4GB memory versions and Wi-Fi and Bluetooth

mene

support. You can pick up a Pi from around 33, increasing up to 54 for the 4GB memory version, or as a part of kit for 50+, depending on the kit you're interested in.

FUZE PROJECT

meee

The FUZE is a learning environment built on the latest model of the Raspberry Pi. You can purchase the workstations that come with an electronics kit and even a robot arm For you to build and program. You can Find more information on the FUZE at www.fuze.co.uk.

HHO OHS TOO EHOD

RASPBIAN The Raspberry Pi’s main operating system is Debian-based Linux distribution that comes with everything you need in a

programming and even as a desktop computer.

Raspberry Pi too.

|

CodeProject,

arangyroren Fp

LETE Guipg Wer

OF

the

Respbemy pyi

HORE

COMETH

ppansene

EOE

a rreiszsw:

by-step project examples and guides to get the most from the

OHH

BRO

it; there are some great step-

eH

BD

HER EOO

simple to use package. It’s streamlined for the Pi and is an ideal platform For hardware and software projects, Python a

We have several great Raspberry Pi titles available via www. bdmpublications.com. Our Pi books cover how to buy your first Raspberry Pi, set it up and use

www.bdmpublications.com

Getting to Know Python Python is one of the most used and popular programming languages. It’s a great language on which to learn how to code, but it’s also powerful enough to be used by companies when trawling through petabytes of raw data.

PYTHON POWER Python is a high-level, general-purpose programming language that was designed by Guido van Rossum in the late ‘80s, as a successor to the ABC Programming Language, and became available to use in 1990.

h

Guido van Rossum, the

designer of Python.

The Python Software Foundation, a non-profit organisation devoted to both furthering and improving Python, currently develops the language. The Foundation’s purpose is to “promote, protect, and advance the Python programming language, and to support and Facilitate the growth of a diverse and international community of

e

Python programmers.”

As aside note, it’s not just the likes of the Stock Exchange that use Python to study large quantities of data; in April 2019 the First image of a black hole was released, the supermassive black hole in the galaxy called M87, located roughly 55 million light years away. Thanks to the collaboration of over 200 scientists, using an array of telescopes spanning the world (called the Event Horizon Telescope Project), the combined power of the telescopes formed an impressive five petabytes of data, spread across tens of hard drives weighing in at nearly one ton. Five petabytes, by the way, equates to around 5,000 years’ worth of MP3 files. Once all those hard drives were gathered together and shipped to a central supercomputer cluster, the team then used Python to painstakingly stitch together all the Fragments of data from the Five petabytes to Finally form the most talked about astronomic event of the decade.

The structure of Python code has been designed to Flow easily, allowing those who are just beginning to code to follow it without too much difficulty. Yet, despite its ease of use, Python is regularly used throughout a number of industries in real-world scenarios. Big Data and Al are the two fastest growing Python-backed technologies at the moment. Big Data is simply a modern term used to describe huge amounts of data, such as sequences of numbers collated

during a day's worth of trading on the Stock

Exchange. Python code is used to dig into the voluminous

collection of numbers, and then feed back

Made up From over 5 Petabytes of data, spread across a ton of hard drives, Python helped science to unveil the First image of a black hole.

iF you’re not familiar with the term, stands for Artificial Intelligence. Although we're still a long way off From the visionary stories of Arthur C. Clarke, Al is Fast becoming one of the most influential technologies of our modern age. Rather than controlling robots, the Al that Python drives is designed to create autonomous

Al,

Getting to Know Python

>>

ILE Clave no custom themes

Batt Custom Thine:

conzext

>>>

Custom Theme

Background

nere tyou can arn cnonae irene

This is a little more like it, since you've just produced your First bit of code. The Print command is Fairly self-explanatory, it prints things. Python 3 requires the parentheses as well as quotes in order to output content to the screen, in this case the ‘Hello everyone!’ bit.

dBuik in Theme a

st

tot

Fle

Shel

Edit

Gpbons

Debug

Window

Help

Python 3.7.0 (v3.7. sibf5ec8093, Jun 27 2018, 04:06:47) IMBC v. 1914 32 Type "copyright", “credite" or "license()" for more information,

bit (Intel)]

on wind?

292

>>>

|

>>> 23453645549822 O455€0975 >>> 99778642342 12343

Settings

CB

General

Fonts/Tabs Highlights Keys

Extensions

Key set @

print ("Helle everyone !")

>>>

Hello

everyone!

ike Use

>>>

chinksA] a

Custom Key Set

OE

Clank Widows,

-nocustom keys-

[_Dileteccanteen

New

Cantor

Key

Set

Custom Key Bindings ‘Achon - keys) beginning-oflcenter-mnsert

a

tome>

ichange-indlenttwidth «Meta-Keyatieck-rodule > print ("Helio") Hello

File

Feit

Shell

Aebug

Python 3.7.6

Aptiens

Windew

Help

(w3.7.0:1br9cc093, Jun

27 2010, 04:06547)

[MSC

v.1919 32 bit

(Intel}]

on

win32

Type "copyright", “credits” p>>

or

“License{)" for

more

information.

print ("Hello")

Hello poo print ("242") 242.

>>> nrinn (242) >>>

As predicted, the word Hello appears in the Shell as blue text indicating output From a string. It’s fairly straightforward, and doesn’t require too much explanation. Now try:

You can continue as such, printing 2+2, 464+2343 and so onto the Shell. An easier way is to use a variable, which is something we will cover in more depth later. For now, enter:

print(*2+2”)

a=2

STEP 4

b=2 File

Frit

Shell

Net

Options

Windaw

Help

Python 9.7.0 (v3. 7 Ibf9cc5099, Jun 27 2016, 04:06:47) [MSC v.1914 92 bit win32 Type "copyright", “eredito" ox “liccnac{)" for morc information. >>> print

("242")

242.

>>»

(Intel)]

on

L& Fone File

Eda

Shel

Shell

Debug

242 Da>

www.bdmpublications.com

Options

Window

Pythun 3.7.0 (v3.7 +02 1b$uu5033, wii32 Type "copyright", “credits” or vey prant ("Nello") Hello poo print ("212%")

print (242)

Help

Juu 27 2018, 04:06:47)

“license()" for

more

(MSC

v.1914 32 Bil

information.

(Zutel)}

un

Care QE What you have done here is assign the letters a and b two values: 2 and 2. These are now variables,

aaaa)

Now let's add

Edit

Edit

File

Shell

Debug

Options

Window

Help

Jun 27 2020,

"liccnsc()"

for

(MSC v.1914 92 bit

G47)

0:

more

(Intel)}

on

information.

Shell

a

x

o

shell

[L& Phen

27

Python 9.7.0 (v3.7.0:1b9cc5093, windz Type "copyright", "ercdits™ or >>> print ("Hcl10") Hello >>> prant ("242' >>>

printCsurname) We now have two variables containing both a First name and surname, and we can print them independently.

print(a) print(b) file

surname:

surname="Hayward”

which can be called upon by Python to output, add, subtract, divide and so on, for as long as their numbers stay the same. Try this:

La Psthen

a

Debug

Options

Window

Help

Python 3.7.0 (v3,7,0r1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type "copyright™, "credits" or "license()™ for more information.

*

(Inte

>>> name="David"™ >>> print (name)

David

>>> surname="Hayward” >>> print (surname)

prin (242)

Hayward >>>

>>>

print (b}

The output of the last step displays the current values of a and b individually, as essentially you've asked them to be printed separately. IF you want to add them up, you can use the Following:

This code takes the value of both a and b, adds them together, and outputs the result.

File

Edit

Sheil

Debug

IF

printCname+surname)

printCa+b)

Gptions

Python 3.7.0 (v3.7.0:1b$cc5093, win32 Type "copyright", "credits" ox pao print ("Hello")

we were to apply the same routine as before, using the + symbol, the name wouldn’t appear correctly in the output in the Shell. Try it:

STEP 9

[MSC

“license{)" for

moze

v.1914 32 bic

(Intel}]

on

information.

We need a space between the two, defining them as two separate values and not something you mathematically play around with.

_

Lo Peter ae

ell

File

Debug

Edit

Shell

Options

Window

Python 3.7.0 (v3.7.0:lb9cc5093, 1)] on win32 Type "copyright", "credits" or >>> name="David" >>>

print

x

Oo

Help

Jun 27 2018, 04:06:47)

"license()” for

more

[MSC

v.1914

32

bit (Inte “

information.

(name)

David

print ("242")

>>> surname="Hayward® >>> print

print (242)

Hayward >>>

(surname)

print (name+surname)

Davidtayward >>>

print (a) print (b} Print (atb)

You can play around with different kinds of variables together with the Print Function. For example, we could assign variables for someone’s name:

a

print(name, surname)

name=”David”

Alternatively, you can add the space yourself:

printCname)

printCname+” File

Edit

Shell

vytnon 3.7.0 wainsz

Debug

Options

Window

Help

(v3.7. UrIpryccouys, Jun

Type “Gupytight™, pov priue ("Belly") Hello pee print ("242")

In Python 3 we can separate the two variables with a space by using comma:

STEP 10

ZY 2018, U42U0T97)

TLiceuse(}" Lor

more

IMSC

V.a¥14 3Z Dit

infuimalion.

(intel}s

on

»

6

“+surname)

As you can see, the use of the comma is much neater. Congratulations, you've just taken your first steps into the wide world of Python. x

print (212) File

So aed pan baz S>> print (a)

>>>

prinr th)

>>>

print (atb)

>>> name="David™ >>> print (name)

Edit

Shell

Debug

Options

Window

Help

Python 3.7.0 (v3.7.0:IbfSec5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)} on win32 Type “copyright”, “credits” or “license()" for more information. >>> name“"David" >>>

(Inte

print (name)

David

>>> surname="Hayward" >>> print (surname) Hayward

David

>>>

>>>

DavidHayward

print (name+surname)

www.bdmpublications.com

~

BD

aving and Executing Your Code While working in the IDLE Shell is perfectly Fine For snippets of code, it’s not designed For entering longer program listings. In this section, we'll introduce you to the IDLE Editor, where most of our code will be entered from now on.

EDITING CODE You will eventually reach a point where you have to move on from inputting single lines of code into the Shell. Instead, the IDLE Editor will allow you to save and execute your Python code.

STEP

1

First, open the Python IDLE Shell. When it’s up, click on File > New File, this will open a new window with

Untitled as its name. This is the Python IDLE Editor, and within it, you can enter the code you need to create your Future programs.

0 ype

WvE7.9uMbepeeS093, Tun 27

“cepysight™, “creates

201, 04:06:47)

(MET v.LH14 32

As you can see the same colour coding isin place in the IDLE Editor as it is in the Shell, enabling you to better understand what’s going on with your code. To execute the code, however, you need to first save it. Press F5 and you'll have a Save...Check box open.

STEP 3

bis (Inte re

ox

Pyenan 4.7.0

itay (937d

1EEsee8093,

Wy on winte Type “ecpyeigbt", “ereaite’

nee Sun 27 2078,

ehom

g4r0E97)

TREC

Fad

92 Bae

conde

Ne

(Ince

of “Aucense()* ror moxe spfoxmaticn.

Souter

Svea.

Mut 86 Son?

‘Okie

The IDLE Editor is, For all intents and purposes, a simple text editor with Python Features, colour coding and so on. You enter code as you would within the Shell, so taking an example From the previous tutorial, enter:

printC“Hello everyone!”)

Click on the OK button in the Save box, and select a destination where you'll save all your Python code. The destination can be a dedicated Folder called Python, or you can just dump it wherever you like. Remember to keep a tidy File system,

though, it’ll help you out

Tha PC

dn

+

Roce Dak

= Mew

in

(Ca

tales Name

ects esp

$

Prwnloade

La 1

Feeder Filter

Anmes

F

manking

File feller

Prrthoge

Hie

laid

le

Loder

4 Progiem Files 1

tne

activity

‘SGerCumert

= Thabo

Caeumente

the future.

Progen Files 186)

intotder

Flet

see

Flot Het File fonder

Far totter Fale torden

go Hew solume tah Network

Fleder ie letdee Fae tuber

Fle ners

www.bdmpublications.com

Saving and Executing Your Code

( STEP5

Enter a name for your code, ‘print hello’ For example, and click on the Save button. As soon as the Python code is saved, it’s executed and the output will be detailed in the IDLE Shell; In this case, the words ‘Hello everyone!’

aaaa)

Let’s extend the code and enter a Few examples from the previous tutorial:

a=2 b=2

name=”David” He

efpecsS0#3, Jun 27 2018,

"copyright", "credits"

ype

or

format

Nie

7)

@:

"license()" for

more

RESTART! C1/Python Code/print

(MSC

7.1914

32

Han

Optom

bic (Ince

information.

surname="Hayward” print(name, surname)

print Catb)

nello.py

meite everyone! >>>

IF you press F5 now, you'll be asked to save the file again, as it’s been modified from before.

be

This is how the vast majority of your Python code will be conducted, Enter it into the Editor, hit F5,

STEP 6

save the code, and look at the output in the Shell. Sometimes things will differ, depending on whether you've requested a separate window, but essentially that’s the process and, unless otherwise stated, this is the method we will use.

tree

IF you click the OK button the file will be overwritten with the new code entries, and executed; with the output in the Shell. It’s not a problem with just these Few lines, but if you were to edit a larger File overwriting can become an issue. Instead, use File > Save As from within the Editor to create a backup.

STEP 9

L& *print hello.py - C:/Python Code/print hello.py (3.7.0)" [&

Pvthen

File

27.2 Shell

Edit

=

Shei

Debug

Options

Window

Format

Edit

File

oO

Python 3.7.0 (v3.7.0:1bf9$ccS093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)) on win32 Type “copyright”, “credits” or “license(}" for more information.

(inte

>>>

Run

Options

Open...

Ctrl+0

Open Module...

Alt+M

Hello everyone!

hello.py

Help

>

Recent Files

RESTART: C:/Python Code/print

Window

Ctr+N

New File

Help

Module Browser Alt+C Path Browser

>>>

Exit

IF you open the Fite location of the saved Python code, you'll notice that it ends in a .py extension. This is the default Python Filename, any code you create will be

a new file. Close the Editor, and open : . new instance (File > New File from the Shell). Enter the Following, and save it as hello.py:

whatever.py, and any code downloaded from the many Internet Python resource sites will be .py. Just ensure that the code is written for Python 3.

a=”Python” b=" 1 5”

Python

Now create

STEP 10

;

a

c="cool!” print(a, b, c)

Cae

We will use this code in the next tutorial. ‘Name

1 prebetoy OneDrive

>

Me

Mins

+

>

Desktop

>

Documents

>}

>

Te Python Fite

-

L& hello.py C:/Python Code/hello.py (3.7.0) File

Edit

Format

Run

Options

Window

Help

a="Python”

90 Cen

+

Date modified

be"is"

c=*cool!™

print(a, b,

c)|

Downloads Mun db

>

Pitures

>

(Videos

>

Hy

LocalC9

>

an New >

gh

Oem

Volume (0)

Network

www.bdmpublications.com

BD

Executing Code from the Command Line While we're going to be working from the GUI IDLE, it’s worth taking moment to look at Python’s command line handling. Sometimes, depending on the code you write, executing via the command line is better solution over the IDLE. a

a

COMMAND THE CODE Using the code we created in the previous tutorial, the one we named hello.py, let’s see how we can run code that was made in the GUI at the command line level.

When you first installed Python, the installation routine automatically included all the necessary components to allow the execution of code outside of the GUI IDLE; in other words, the command line. To begin with, click on the Windows Start Button, and type: cmd.

STEP

1

Now you're at the command line, we can start Python using the command python and pressing the Enter key. This will put you into the command line version of the Shell, with the Familiar, three right-Facing arrows as the cursor (>>>).

STEP 3

ex hea haa Piatt eg

pong

As you did when launching the Python IDLE, click on the returned result from the search, the Command Prompt App. This will launch a new window, with a black background and white text. This is the command line, also called a Terminal in macOS, Linux, and Raspberry Pi operating systems.

era glk Sede

ia

Meech ares

fo Ble

Tir

rie

Mp

are

Peed

aed

From here you're able to enter the code you've

STEP 2

looked at previously, such as:

a=2

print(Ca) As you can see, it works exactly the same.

www.bdmpublications.com

Rede

ee

(Executing

Now enter exi tC) to leave the command line

Python session, and return back to the command prompt. Enter the folder where you saved the code From the previous tutorial, and list the available Files within; you should see

STEP 6 python

Code from the Command Line

From within the same folder as the code you're going

to run, enter the Following into the command line:

hello.py

This will execute the code we created, which to remind you

the hello.py file.

is:

a=”Python” b="18s8” SO

Redan tisce

c=”cool!” print(a, b, c)

|

I>python

tenth atest oe bh Ge “help”, “copyright”, “credits” or “license” for more inforastion.

ype.

OE

EUS HE Command Prompt

eta

Volume in drive

2 +

ei C

has no. lebel.

ag

bi Beieea Die(s) 76,554,990,728 bytes free

Pe

\Python: Code>

errr erererererer

errr err eer ererer

errr rerereyy)

DIFFERENT VERSIONS OF PYTHON IF you've previously used Python 3 on a Mac or Linux, and subsequently the Raspberry Pi, you may be a little confused as to why the Windows version of Python uses the command line: python, instead of python3.

This isn’t an issue with Windows, as it doesn’t use any Python libraries other than the ones installed by the user themselves

The reason behind this

is that UNIX-like systems, such as macOS and Linux, already have Python libraries pre-installed. These older libraries are present because some of the macOS and Linux system

entering: path into the command line. This points to the python. exe File required to execute Python code from the command line.

utilities rely on Python 2, and therefore installing newer version of Python, and thus altering the executable name, could have dire consequences to the system.

We don’t recommend you install both Python 2 and Python 3 within Windows 10; naturally, you can if you want, but realistically, although Python 2 still has a foothold in the coding world, Python 3 is the newest version. However, if you do, then you will need to rename one of the Python versions names; as they will be installed

a

Asaresult, developers decided that the best approach for macOS and Linux systems would be to leave the command line ‘python’ as exclusive Python 2 use, and newer versions of user-installed Python would be ‘python3’. Gea

Command Prompt

when actually installing Python. When a Windows user installs Python, the installation wizard will auto-include the command line instance to the core Windows PATH variable, which you can view by

in different Folders and both use python.exe as the command line executable. It’s a little long-winded, so unless there’s a dire need to have both versions of Python installed, it’s best to stick to Python 3.

_

O

x

eee

Microsoft Windows [Version [email protected]] (c) 2018 Micreseft Cerperation. All r ts reserved. \Users\david>path :\ProgramData\Oracle\Java\javapath;C:\Pragram Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\icLs Client\; :\Windows\system32;C: C:\Windows \System32\WindowsPowerShell\v1.0\;C:\Program Files (x86

IC:

Ithon37 -32\Scripts\;C: \Users\david\AppData\Local \Programs\Python\Python37-32\;"C: \Users\david\AppData\Local \Microsoft\Win idowsApps; C:\Users\david\AppData\Local \Programs\Python\Python36-32";;C:\Users\david\AppData\Local\Microsoft\WindowsApps

www.bdmpublications.com

BD

Numbers and Expressions We've seen some basic mathematical expressions with Python, simple addition and the like. Now let’s expand on that, and see just how powerful Python is as a calculator. You can work within the IDLE Shell, or in the Editor, whichever you like.

IT’S ALL MATHS, MAN You can get some really impressive results from the mathematical powers of Python, as maths is the driving force behind the code with most, if not all, programming languages.

STEP

Open up the GUI version of Python 3, as mentioned you can use either the Shell or the Editor. For the

1

You can use all

apsecmm

[a

Python 3.7.0 Shelt Edit

Fite

time being, we're going to use the Shell. IF you've opted to use a third-party text editor, note that you need to get to the IDLE Shell

the customary Mathematical operations: divide, multiply, brackets and so on.

Type

for this part of the tutorial.

Practise with afew, Forexample:

37”

G File

-

Python 3.7.0 Shell Edit

Shell

Debug

Options

Window

a

Help

x (Inte “

Python 3.7.0 (v3.7.0:1lbfS9ccS093, Jun 27 2018, 04:06:47) [MSC v.2914 32 bit 1))] on win32 Type “copyright”, “credits” or "license()" for more information. >>>

Debug

Options

Window

f/)"on gingp “copyright”, "credits" ?*?

or

“1

>>> 543564+34553245 34607601 >>> 99867344*27344484221 2730821012201179024 >>> 1/2

1/2 6/2 242*3 /

Shell

2

(14+2)+3

90.8

4)

>>> 6/2

3.0 |>>> 2+2*3 8

>>> (142)4(3*4)

as >>>

STEP 2

In

the Shell enter the Following:

As you've no doubt noticed, division produces a decimal

242 54356434553245 99867344*27344484221

number. In Python, these are called floats, or Floating point arithmetic. IF however, you

.

.

As you can see, Python can handle some quite large numbers. [ib Python

3.7.0 Shell

File

Shell

Edit

Debug

Options

Window

Python 3.7.0 (v3.7.0:1b9cc5093, 1)} on win32 Type "copyright", "credits" or >>> 242 a

>>> 54356434553245 34607601 >>> 99967344*27344484221 2730821012201179024 >>>

a

x

Help

Jun 27 2018, 04:06:47)

"license(}" for

more

i

ivisi

[MSC

v.1914 32 bit

information.

(Inte

*

.

need an integer as opposed toa decimal answer, then you can use . a double slash:

1//2 6//2 and so on.

Python 3.7.0 Shell File

Edit

Debug

Options

Type "copyright", “credits” >>> 242 4

54356434553245 34607601 >?_: 99867344*27344484221 2730821012201179024 >>> 1/2

G.5 >>> 6/2

3.0 >>> 24+2*3 8

>>> (142) 4(3*4) 15

>>> 1//2 a

>>> 6//2 3

>>>

www.bdmpublications.com

Shell

Windc

cc (v.7.0:1bf9cc509;

“python 3.7.0 v; mm on 3-750

or

and Expressions

(Numbers

You can also use an operation to see the remainder left over from

division. For example:

[&

-

Python 3.7.0 Shell Edit

File

Shell

Debug

Options

Window

4

will display 3.333333333, which is, of course, 3.3-recurring. IF you now enter:

>>> 543564+34553245 34607601 >>> 99867344*%27344484221 2730821012201179024 >>> 1/2

This will display 1, which is the remainder left over from dividing

8

beer eaeaaniaell O.5 6/2



format(3,

a

‘b’) >

The Format command converts a value, the number 3, toa formatted representation as controlled by the format specification, the ‘b’ part.

1S un 9

is

6//2

1//2

oO

3

>>> 10/3

3.3333333333333335

a> >>>

6//2

"Obll'

>>> format crue >>>

1

>>>|

operator, or exponentiation if you want to be technical. To work out the power of

something you can use a double multiplication symbol, or double-star on the keyboard:

Edit

File

Shell

Debug

Options

Window

H

Python 3.7.0 (v3.7.0:1bf9cc5093, Ju 1)] on win32 Type "copyright", “credits” or "lic >>> 242

34607601 >>> 99867344*27344484221 2730821012201179024 pep 1/2

outin Python.

a

New File: {2 Ecoteanteit.py

6

File

b=7

>>> (14+2)4+(3*4) 1s >>> 14/2 9

>>> 6//2 3

>>> 10/3

3.3333333333333335 >>> 10%3

Edit’

C:Python Code/Booleantez

Format

Run

Wineew

Options

223

print(1, print(2, print(3, print(4, print(S, print(6, print(7, print(8, print(9,

0.5 >>> 6/2

8

This is how you would work it

A Boolean Expression is a Logical statement that will either be true or False. We can use these to compare data, and test to see if it’s equal to, less than, or greater than. Try

a=

>>> 242*3

Essentially, it’s 2x2x2, but we're sure you already know the basics behind maths operators.

{3,'b')

STEP 9

this in

4

>>> 543564+34553245

3.0

2*83 10**10

283

>>> 1o**10 1ceaoo00eca0 >>> bin (3)

>>> 10/3 3.33333333333333358 >>> 10%3

Next up we have the power

1083

8

3

STEP 6

24+2*3 3

>>> (142)4(3%4)

>>> (142) 4(3*4)

>>>

Help

>>> 54356434553245 34607601 >>> 99867344*27344484221

.

>>>

Window

Options

3.0

>>> 24+2*3

10 by 3.

Debug

4

.

>>> 6/2

3.0

Shell

>>> 242

can use:

Q.5

10%3

Edit

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 i 2)1 on win32 Type "copyright", "credits" or “license (!

aes)

displayed as ‘0b11’, converting the integer into binary, and adding the prefix Ob to the Front. IF you want to remove the 0b prefix, then you

Python 3.7.0 (v3.7.0: lbf9cc5093, 1)j on win32 Type “copyright”, “credits” or "1 >>> 2+2

10/3

‘File

oo.

This will be

oy =]

a=

6) 7)

a

==

6 and b

a

==

7 and b

a

==

not a

@

a

==

7

==

7

=

7) 7)

==

7 and b

==

a

tunciz, = 7) rea t=IeRS

or or

b

==

b

==

==

4

parce BERLIa, coy

fe

7 al

7)

7) 6)

not Ca == 7 and b == 6)) not a == 7 and b == 6)

1

>>> Zee

:

>>> 10**10

|

10000000000 >>>

|

|

anlar

Numbers and

expressions don’t there. stop Python has numerous built-in functions to work out sets of numbers, absolute values,

complex numbers, and a host of Mathematical expressions and Pythogarian tongue-twisters. For example, to convert binary, use:

a

number to

Python 3.7.0 (v3.7.0: ibf$cc5093, Jun i)]} on win32 Type “copyright”, “credits” or "licer >>> 242 4

>>> $43564+34553245 34607601 >>> 99867344%27344484221 2730821012201179024 >>> 1/2

O.s >>> 6/2

3.0 >>> 242*3 8

>>> (142)4+(3*4) 15

>>> 2//2 oO

bin3)

>>> 6//2 3

>>> 10/3

3.3333333333333335 >>> 10%3 1

>>> 2883 8

Execute the code From Step 9, and you'll see a series of True or False statements depending on the result of the two defining values: 6 and 7. It’s an extension of

STEP 10

what we've looked at, and an important part of programming. L& Python File

Edit

-

3.7.0 Shell

Shell

Debug

Options

Window

Python 3.7.0 {(v3.7.0:lbf9cc5093, 1)) on win32 Type "copyright", "credits" or

a

Help

Jun 27 2018, 04:06:47)

"license{)" for

more

[MSC

v.1914

32

bit (Int

information.

>>>

RESTART: C:/Python

True

Code/Booleantest .py

False True

False True True

False True

False >>

>>> 10**10 10000000000 >>> bin(3)

‘obil’

>>>|

www.bdmpublications.com

Python Foundations

Using Comments When writing your code, the flow, what each variable does, how the overall program will operate and so on, is all inside your head. Another programmer could follow the code line by line, but when the code starts to hit thousands of lines, things get a little difficult to read.

#COMMENTS! Amethod used by most programmers for keeping their code readable, is by commenting on certain sections. For example, if a variable is used, the programmer comments on what it’s supposed to do. It’s just good practise.

a toe

We'll start by creating a new instance of the IDLE Editr (File New Fle), and then create a simple variable and print command: >

a=10

printC(“The value of A

is,”,

a)

Re-save the code and execute it. You'll see that the output in the IDLE Shell is still the same as before, despite the extra lines being added. Simply put, the hash symbol (#) denotes a line of text the programmer can insert, to inform them and others of what’s going on, without the user being aware.

STEP 3

(&

Save the file, and execute the code.

Edit

Edit

Format

Run

Options

Window

STEP 2

is,",

Running the code will return the line: The value of

to

10

Print the current value of

printC“The value of

A

is,”,

#

Edit

Format

Set the start

Run

Options

Window

value of A to

a)

x (Inte

The value of A >>>

is,

10

RESTART: C:/Python Code/Comments py RESTART: C:/Python Code/Comments. py

(3 *Comments.py - C:/Python Code/Comments.py (3.7.0)" File #

Help

Edit

Format

Set the start

Run

Qptions

Window

Help

value of A to 10

a=10

10

#

Print the current value of A

print ("The value of A is,", a)

#

www.bdmpublications.com

10

printC“You’ve just lost a life!”) printC“You now have”, a, “Lives Left!”)

A

a=10

Print the current value of A print ("The value of A is,“, a)

is,

a=a-1

(& *Comments.py - C:/Python Code/Comments.py (3.7.0) File

Q

Help

Let’s assume that the variable A we've created is the number of lives in a game. Every time the player dies, the value decreases by 1. The programmer could insert a routine along the lines of:

a=10 #

Window

STEP 4

Ais, 10 into the IDLE Shell window — which is what

A

The value of A >>>

=

a)

Set the start value of

Options

>>>

Help

we expected. Now let's add some of the types of comments you'd normally see within code: #

Debug

1)}

a=10

print ("The value of A

Shell

Python 3.7.0 (v3.7.0:lbf9ccS093, Jun 27 2018, 04:06:47) {MSC v.1914 32 bit on win32 Type “copyright”, “credits” or “license()" for more information,

[s Comments.py - C:/Python Code/Comments.py (3.7.0) File

-

Python 3.7.6 Shell

File

|

a=a-1l

print ("You've just lost a life!*) print ("You now have", a, “lives left!*")

I

+

Using Comments

STEP5

While we know that the variable A denotes number

of lives and the player has just lost one, a casual viewer, or someone checking the code, may not know. Imagine for a moment that the code is twenty thousand lines long, instead of just our seven. You can see how handy comments are. ~

L& Python 3.7.0 Shell File

Edit

Shell

Debug

Options

Window

x

a

Help

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)) on win32 Type "copyright", “credits” or “license()" for more information.

(Inte

>>>

RESTART: C:/Python Code/Comments.py

Ais,

The value of >>>

10

The value of A >>>

is,

10

The value of A

is,

10

RESTART: C:/Python Code/Comments py

start value of A to 10 value of A is,”, a) # Print the current print(“The value of A a=a-1 # Player lost a life! printC“You’ve just lost a life!”) printC“You now have”, a, “Lives Left!”) # Inform player, and display current value of A (lives) a=10 # Set the

-

*Comments.py Edit

Format

$

Set the

a=lO

Run

Options

Window

value of A

start

print ("The value of A is,", 2) nenwl

#

-

C:/Python Code/Comments.py (3.7.0)"

Player fost

a

x

Help

to

16

Print the

#

current

value of A

a

print ("You've just lost a life!*) print ("You now have", a, “lives left!")

#

Inform player, and display current of A

(lives)

|

The comment, the hash symbol, can also be used to comment out sections of code you don’t want to be executed in your program. For instance, iF you wanted to remove the First print statement, you would use:

Essentially, the new code together with comments : could look like:

STEP 6

Set the start value of

#

section of code. Take our examples from above, instead of inserting the code ona separate line, we could use:

File

You've just lost a life! You now have § lives left! >o>

Inline Comments are comments that follow a

STEP 8

L&

RESTART: C:/Python Code/Comments.py

to

A

10

a=10

Print the current value of A printC“The value of A is,”, a) # Player lost a life! a=a-1 # Inform player, and display current value of

#

Clives)

printC“You’ve just lost

prinC“Yo

now

Format

4

Bev che

#

[rant

Run

value uf A

che

current

Windew

is,”,

a)

Options

Window

Help

value of A to 10

a=10

Print the current value of A A is,™, ail

#

have”, a, “Lives Left!”)

Options

Rum

Set the start

#

print ("The value of Player lost a life!

# #

a=a-1 # Inform player, and display current print ("You've just lost a life!*) print ("You now have", a, “lives

-

Edit

Format

Edit

Fite

A

L& *Comments.py CPython Code/Comments.py (3.7.0)* File

A

te *Comments.py - C/Python Code/Comments.py (3.7.0}"

lfe!”)

a

print(“The value of

#

Help

Lu 10

valuc of A

of A {lives}

a)

$

Trfovr

player, and display emrrent nf ‘ve just lost a life!™) now have", a, “Lives left!*)

a

(lives)

("Y:u

STEP7

You can use comments in different ways. For example, Block Comments are a large section of text that details what's going on in the code, such as telling the code

You also use three single quotes to comment out a Block Comment, or multi-line section of comments. For them to work, place them before and after the areas

reader which variables you're planning on using:

you want to comment:

This is the best game ever, and has been developed by a crack squad of Python experts # who haven’t slept or washed in weeks. Despite being very smelly, the code at least

en?

#

works

#

File

Edit

Format

Run

Options

Window

-

(3.7.0)"

a

Help

#

is the best game ever, and has been developed by a crack squad of Python experts haven't slept or washed in weeks. Despite being very smelly, the code at least works really well.

#

Set the start value of A to 10

+ #

This

This who

x

works [od

ana-1 # Inform player, and display current of A

print ("You've just lost a life!*) print ("You now have", a, "lives left!

really well.

This

#

299

3.7.0)" “Comments py C/Python Code/Cammentspy -

ble

-

nn

Run Opbons Window Help is the best game ever, and has been developed by a crack squad of Python experts haven't slept or waghed in weeks. Despite being very mmcliy, the code at cast

“re

# Print the current value of A print ("The value of A is,", a) # Player lost a life!

is

the best game ever, and has been developed crack squad of Python experts who haven’t slept or washed in weeks. Despite being very smelly, the code at Least

who

a=10

8)

by a

really well.

L& *Comments.py- C:/Python Code/Comments.py

auto

Feaily well.

Set che start

ato

valuc of

A to 10

wrant the current value of & Print ("The value af A te, ", A} Player lost a life! #

(lives)

aval

t Inform player, and display current of A (lives) Print ("You've just lest # lite!") Yuu mes have®, ay

www.bdmpublications.com

BD

Working with Variables We've seen some examples of variables in our Python code already, but it’s always worth going through the way they operate, and how Python creates and assigns certain values to a variable.

VARIOUS VARIABLES We'll be working with the Python 3 IDLE Shell in this tutorial. IDLE Shell to clear up any old code.

a

to

IF you

As we've seen previously, variables can be concatenated using the plus symbol between the variable names. In our example, we can use: print Cname + “: * + The middle part, between the quotations, allows us to add a colon and a space. As variables are connected without spaces, we need to add them manually.

some programming languages, you're required to use a dollar sign to denote a string, which is a variable made up of multiple characters, such as aname of aperson. In

STEP 3

In

title).

Python this isn’t necessary, so, For example, in the Shell enter:

name=”David Hayward” (use your own name, unless you're also called David Hayward). [&

-

Python 3.7.0 Shell Edit

File

Shell

Debug

Options

Window

File

(Inte

«

Edit

a

3.7.9 Shell

Shell

Debug

Options

Window

x

|

Help

Python 3.7.0 (v3.7.0:1lbf9cc5093, Jun 27 2018, 04:06:47} [MSC v.1914 32 bit ] on win32 Type *copyright", “credits” or “license()" for more information. >>> name="David Hayward”

(Intel)

«

>>>

print (name)

print (name) David Hayward >>> type (name)

David Hayward >>>

L& Python

Help

Python 3.7.0 (v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47} [MSC v.1914 32 bit 1)] on win32 Type "copyright", "credits”™ or "license()" for more information. >>> name="David Hayward* >>>

x

a

haven’t already, open Python 3 or close down the previous

|

>>> >>>

title="Descended from Celts” print (name + ": * + title}

David Hayward: Descended from Celts >>>

You can check the type of variable in use by issuing the type C) command, placing the name of the variable inside the brackets. In our example, this would be:

type Cname). Add a new string variable: from

Celts”.

Edit

Shell

Debug

Options

Window

Combine variables

within another variable. For

example, to combine both name and title variables into new variable, we use:

x

character=name +

(Intel)

title

“: “

+

print (mame)

Then output the content of the new variable as:

title="Descended from Ceits™

print Ccharacter)

David Hayward >>> type (name)

>>> >>>

a

Help

Python 3.7.0 (v3.7.0:lbf9ec5093, Jun 27 2018, 04:06:47) (HSC v.1914 32 bit ] on win32 Type “copyright”, "credits" or "license()" for more information. >>> name="David Hayward” >>>

Witenelce

a

[LB Python 3.7.9 Shell File

tit Le=”Descended

STEP 4

Numbers are stored as different variables:

age=44 Type Cage) Which, as we know, are integers.

www.bdmpublications.com

a

que

3.70 Shell Python

tas

OOnOnS

ndOn elD,

a Jun ; Python 3.7.0 (v3.7.0:1bf9cc5093, J on win32 Type “copyright", “credits” or “licen: >>> name="David Hayward”

>>>

print (name)

David Hayward >>> type (mame)

>>> title="Descended from Celts® >>> print{name + %: " + title) David Hayward: Descended from Celts >>> character=name + "; " + title >>> print (character) David Hayward: Descended from Celts >>> age=46 >>> type (age)

>>

process known as TypeCasting. The Python

+

Window

56

to str

code is:

print (character

Options

age + 10

TypeError:

>>>

STEP6

=

Debug

>>> age + 10

(name+age)

str

Shelt

(name+age)

only concatenate

Edit

Traceback (most recent call last)! File "", line 1, in

Traceback (most recent call last): File *", line 1, in can

+ 10

Python 3.7.0 (v3.7.0:lbf9ccS093, Jun 27 2018, 04:06:47) [MSC v.1914 32 1)] on win32 Type "copyright", “credits” or “license()" for more information. >>> age=input old are you? ") ("How How old are you? 46 >>> type (age)

>>

his presents a bit of

with Variables

old.”)

-

Go Python 3.7.9 Shell

Notice again that in the last example, you don’t need the spaces between the words in quotes, as the commas treat each argument to print separately.

File

Edit

Shell

Debug

Options

Window

x

oO

Help

Python 3.7.0 (v3.7.0: 1bf8cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 2)] on win32 Type "copyright", "credits* or "License(}" for more information.

(Inte

>>> shirt=19.99 >>> type (shirt)

David Hayward: Descended from Celts

>>

32

bit (Inte

—__To

printC“Welcome”, firstname, surname+“. I hope

you’re well today.”) [@ *Userinput.py- C:/Python File

Helio. is your first

What

RESTART: C:/Python Code/UserInput .py name? David

Thanks. And what >>>

is your surname? Hayward

www.bdmpublications.com

eliminate that, we can add a plus sign instead of the commain

the code:

Edit

Format

Run

-

Code/Usertnput (3,7.0)" py

Options

Window

Help

print ("Hello.")

firstname=input ("What is your first

print ("Thanks."}

name?

")

Surname=input ("And what is your surname? ") print ("Welcome”, firstname, surname+P. I hope you're well

today.")

a

xX

c-/> STEP

You don’t always have to include quoted text within the input command. For example, you can ask the

5

user their name, and have the input in the line below:

printC“Hello. What’s your name?”

What you've created here is a condition, based on the user’s input. In short, we're using the input from the user and measuring it against a condition. Therefore, if the user enters David as their name, the guard will allow them to pass unhindered. IF, however, they enter name other than David, the

STEP 8

a

name=input()

guard challenges them to a Fight.

[& *Userinput.py - C:/Python Code/Userlnput.py (3.7.0)" UB

File

Edit

format

print ("Hello.

Run

Window

Options

What is

Help

your name?*)}

input()|

370

Ppmon

Pychon

-

Snel

Seat Debug Opa onde 3.7.0 tei. 7-01ibeSeckOss,

o

x

Hele “Gun

BF

01s,

OATOATET

TEC

w. 181d 32 Shy Cinee

-

*, Mexedite” or “License()* for more information. Ar.

Maret Mo goes chere?

ARSTART: Ci/Pythen Cone/Userioput.py

Frine(*E

Pavia

Marcas, good siz.

You may

kmow you

act.

You mey

peas.)

Prepare for bacele!")

pass.

ALSTART: Ci/Pytben Code/UserIngue.py Maat! woe goer there? 1

tmow you

a>

The code from the previous step is often regarded as being a little neater han having a lengthy of text in the input command, but it’s not a rule that’s set in

STEP 6 amout

F

tn

ooe

stone, so do as you like

in

these situations. Expanding on the code,

try this: Who

to calculate rate and distance printC“Input a rate and a distance”) rate = floatCinputC“Rate: “))

there?”)

goes

name=inputC) (@ *Userinput C:/Python Code/Userinput.py (3.7.0) py

Edit

Format

print ("Halt!

Run

Who

name=input ()

Options

if

th

Window

[& File

Help

goes there?*)

a

know you

Edit

-

Format

Code to

#

name=="David”: printC“Welcome, good

else: printC“I

*Userinput.py

Run

Options

Window

File

*Userinput.py

Edit

-

Format

sir.

You may

not. Prepare for

print("Halt!

C:/Python Code/Userinput.py (3.7.0)* Run

Options

x

o

Help

calculate rate and distance

pass.”)

battle!”)

STEP 10

}

And to Finalise the rate and distance code, we can add:

distance = floatCinputC“Distance: “)) printC“Time:”, Cdistance / rate)) Save and execute the code, and enter some numbers, Using the Float(input element, we've told Python that anything entered is floating point number rather than a string.

-

Ub Python 3.7.0 Shot

L&

-

C:/Python Code/Userinput.py (3.7.0)"

iprint ("Input a rate and a distance”) rate = float (input (*"Rare: *})|

good start to a text adventure game, perhaps? Now we can expand on it, and use the raw input user to Flesh out the gamea little: It’s

from

As you learned previously, any input from a user is automatically a string, so you'll need to apply a TypeCast in order to turn it into something else. This creates some interesting additions to the input command. For example:

STEP 9

# Code

printC“Halt!

File

oot. Prepare for battle!

Window

Help

Who goes there?”) name=input {} if name="David": print ("Welcome, good sir. You may pass.") else: print ("I know you not. Prepare for battle!*)

a

«x

kde Stel Debuy Ophea Wanton Help Python $.7.0 (¥3.?.0rimfoeeso98, dun 27 2018, 04706747) [MSC v.1914 92 20} on wing2 ‘Type “oopyrionts, “eredica™ er “hicense()" for more information,

RESTART Cr/PycnOR Inpur a rave and a dtacance

Aeenemnuneemnmnmane

Code/Usexinput py

Far

bit (inte

opt

PD

fle

~

@

Fee

cin

Format

come to

Cote

Bahra fun Ophant

a

Peingss py

175)

Window

Help

calculate rare ana auatance

# rate and a dvatences) fleatqimpur(*Race: ")) duavance = Pleat (Distance? ")) (input / vave}) Frine(*Time:, (gasvanse

Print(tinput rate

2

www.bdmpublications.com

BD

Creating Functions Now that you've mastered the use of variables and user input, the next step is to tackle Functions. You've already used a few Functions, such as the print command, but Python enables you to define your own Function.

FUNKY FUNCTIONS A function is command that you enter into Python in order to do something. It’s a little piece of self-contained code that a

takes data, works on it, and then returns the result.

a to

It’s not only data that a Function works on. Functions

can do all manner of useful things in Python, such as sort data, change items From one Format to another, and check the length or type of items. Basically, Function is a short word Followed

number of letters in a person's surname, you could use the Following code (enter the text editor For this example):

a

by brackets. For example, len(), list(), or type(). L&

-

*Python 3.7.0 Shll”

File

Edit

Shell

Debug

Options

Window

a

iType “copyright”, "credits™ or >>> leng|

name=input C“Enter your surname: count=LenCname)

x

Help

‘Python 3.7.0 (w3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.i914 32 bit {Inte j2)] on win32

"license(}" for

more

You can pass variables through functions in much the same manner. Let's assume you want the

aie

=f

«

information.

print C“Your

it.”)

surname

“)

has“, count, “letters in

Press F5 and save the code to execute it. Ube Meee

seer Shek

Debug

Opens

Window

Hele

Pysbce 2.7.0 (v4.7.0:abEtce4089, dua 2? 2010, O810G:47) [MSC ¥eibIN aT Bat (inte

*

34)

oa wanda Type “copyeagnes,

“aredicer

ox

*iscenses)" fox

moze

antoruatacn.

pane

has", count, “Letters an

st")

phen AESTART: Ci/zytbc0.

Enter your auroame: Maywara Your name bag

7

ertera

4m

at,

>>>

A function takes data, usually a variable, works on it depending on what the function is programmed to do, and returns the end value. The data being worked on goes inside the brackets, so if you wanted to know how many letters are in the word antidisestablishmentarianism, then you'd enter:

Python has tens of functions built into it, far too many to get into in the limited space available here.

STEP 4

STEP 2

However, to view the list of built-in Functions available to Python 3, navigate to

https://docs.python.org/3/library/Functions.html. These are the pre-defined Functions, but since users have created many more, they're not the only ones available.

LenC“antidisestabLishmentarianism”), and the number 28 would return. [& File

-

Python 3.7.0 shell Edit

Shell

Debug

Options

Window

len(*antidisestablishmentarianism")

28

x

File

Help

Python 3.7.0 (v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)) on win32 'Type "copyright", "credits" or "license()" for more information. >>>

L& Python

G

(Inte

*

Edit

-

3.7.0 Shell

Shell

Debug

Options

Window

Python 3.7.0 (v3.7.0:lb9cc5093, 1)] on win32 Type >>> 28 >>>

“copyright”, "credits" or "license()" for len ("antidisestablishmentarianism”)

more

information.

RESTART: C:/Python Code/NameCount .py Enter your surname: Hayward Your name has 7 letters in it. >>> import math >>>

>>>

www.bdmpublications.com

oO

_ Hel Jun 27 2018, 04:06:47) [MSC v.1914 32 bit

x (Inte

dh>

Creating Functions

3 =o)

Additional Functions can be added to Python through modules. Python has a vast range of modules available that can cover numerous programming duties. They add functions and can be imported as and when required. For example, to use advnced Mathematics Functions enter:

a module, enter the name of the module, Followed by a Full stop, then the name of the Function. For instance, using the math module, since we've just imported it into Python, we can utilise the square root Function. To do so, enter:

import math

math. sqrtC16)

Once entered, you'll have access to all the Math module Functions.

As you can see, the code

A

Piren

«cops

362+

the

yon Samsara Leary

[B

+

Fite

2. Built-in Functions n

8

The Python mierpreter has.

number of funchons and types

butt imo

thet are

sways avaiable they are isted here

eiphebercal

ordor

Prthen Edit

2

7.3

To use a Function from

is

presented as module.function(data).

-

Snell

Shell

Debug

Options

Window

Python 3.7.0 (v3.7.G:lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.i914 32 bit 1)] on win32 Type "copyright", "credits" or "license()" for more information. >>>

x

oO

Help

(Inte

len("antidisestablishmentarianism”)

28

>>>

RESTART: C:/Python Code/NameCount.py surname: Hayward Your name has 7 letters in it. >>> import math >>> math. sqrt (16)

Enter your

4.0

>>>

FORGING FUNCTIONS There are many different functions, created by other Python programmers, which you can import and you'll undoubtedly come across some excellent examples in the future. However, you can also create your own with the def command.

STEP

Choose File > New File to enter the editor, let's create a Function called Hello that will greet a

1

HeLlLloQ):

print

To modify it Further, delete the Hello(“David”) line, the last line in the script, and press Ctrl+S to save

the new script. Close the Editor and create a new file (File File). Enter the following:

user. Enter: def

STEP 3

rom HeLLo

C“HeLLlo

>

New

import HeLLoj

Hei lLoC*“David Press F5 to save and run the script. You'll see Hello in the Shell, type in Hello() and it’ll return the new Function.

STEP det

2

Let’s now expand the Function to accept a variable, the user's name for example. Edit your script to read:

HelLoCname):

print C“Hello”,

name)

Press F5 to save and execute the code.

What you've just done is import the Hello function From the saved Hello.py program, and then used it to say hello to David. This is how modules and functions work, you import the module then use the function. Try this one, and modify it For extra credit:

STEP 4

def add(a, This will now accept the variable name, otherwise it will print Hello David. In the Shell, enter: name=(“Bob”), then, Hello(name). Your function can now pass variables through it.

b)

return result Debug

Optent

Windom

key

Hep

eats

www.bdmpublications.com

BD

Conditions and Loops Conditions and loops are what make a program interesting, they can be simple or rather complex. How you use them depends greatly on what the program is trying to achieve, they could be the number of lives left in a game, or just displaying countdown. a

TRUE CONDITIONS Keeping conditions simple, to begin with, makes learning to program checking if something is TRUE, then doing something else if it isn’t. a new Python program that will ask the user to input a word, then check it to see if it’s a four-letter word or not. Start with File > New File, and begin with

STEP

Let’s create

1

the input variable:

word=input(“Please enter a four-letter word: Run 7

my twee scopyzignt®,

+

*credite™

BeeS098, dun 27 2010,

O4r06ra7) HEC

32

Bie Cince

_Opbent

Lense enter «

Window

Help

word:

enjoyable experience. Let’s start then by

Now we'll use an if statement to check if the word_ length variable is equal to Four, and print a Friendly

STEP 3

conformation if it applies to the rule: a four-letter word: “) word_lLength=Len(word) if word_Length == 4: print (word, “is a four-letter word. Well done.”)

word=input(“Please enter

“)

four-letter

a more

=P

or "1icensei)* for gore information.

The double equal sign (==) check if something something else. (& File

is

equal to

*Untitled*

Edit

Format

Run

Options

Window

Help

word=input ("Please enter a four-letter word: ") word_length=Len (word) if word_iength == 4: print (word, "is a four-letter word. Well done.*)

Now we can create a new variable, then use the len function and pass the word variable through it to get the total number of letters the user has just entered:

word=input(“Please enter

a

four-letter

word:

“)

word=input(“Please enter

word_Length=Len(word)

-

([@ “Untitled File

Edit

Format

Run

Options

Window

Help

word=input ("Please enter a four-letter word: ,word_length=len {word}

oO

The colon at the end of if tells Python that if this statement is true, do everything after the colon that’s indented. Next, move the cursor back to the beginning of the Editor:

STEP 4

x

word_lLength=Len(word) if word_Length == 4:

print

")}

Cword,

“is

a

a

four-letter

four-letter

word. Well

done.”

else: print (word, “is not

a

four-letter word.”)

[® *Untitied* File

Edit

Formet

Run

Options

Window

Help

word=input ("Please enter a four-letter

word: ") word_length=len (word) if word_length = 4: print {word, "is a four-letter word. Well done.") else: print {word, "is not a four-letter word.")

www.bdmpublications.com

word:

“)

(Conditions

Press F5 and save the code to execute it. Enter

four-letter word in the Shell to begin with, you should have the returned message that the word is four letters. Now press F5 again, and re-run the program, but this time, enter a five-letter word. The Shell will display that it’s not a four-letter word. a

La

Pinon She

-

a

*

ee"

ox

wn 2° av18, 08 V6 47)

"higense

ty"

Pythan Word

IMEC V

Now expand the code to include other conditions. Eventually, it could become quite complex. We've added a condition for three-letter words:

word=inputC“Please enter a four-letter word: word_Length=Len(word) if word_Length == print (word, “is a four-letter word. Well

“)

4:

4:20

eoths,

and Loops

PLS 4a Ede (inte

for mare iaformariea,

done.”

Cose/vorsyane FY

elif

word_Length

3:

==

print (word, “is a three-letter word. Try again.”) else: print (word, “is not a four-Letter word.”)

eytnae Code/worsgame. EY reost

nay (en

oat

ok

vrimtecenoea, sun

2

2968

aaeaer47y

WHE

Lene a2 DAE

(tate

cave armen

Lie ae

ele ctrrer

abr on vanv2

tre

wereaats™

of

“License.” for

Tob

ae

more

antomerion.

ragame

LOOPS Although a loop looks quite similar to a condition, they are somewhat different in their operation. A loop wilt run through the same block of code a number of times, usually with the support of a condition.

STEP

(W-egcesse-

1

Tea Blan LC

ay

|

mies] eo) on

oe

this will check to see if something is TRUE, then run the indented code:

The For loop, is another example. For is used to loop over a range of data, usually a list stored as variables inside square brackets. For example:

STEP 3

“Dog

ords=| “Cat”,

for

word in words

OE

Famat

Bia

cptene

‘Unicorn

TL

mst

tree

and

x=L

The difference between if and while is that when while gets to the end of the indented code, it goes back and checks the statement is still true. In our example x is less than 10. With each loop, it prints the current value of x, then adds one to that value. When x does eventually equal 10 it'll stop.

STEP 2

STEP 4

The For loop can also be used in the countdown example by using the range Function:

The x=x+1 part isn’t needed here, because the range Function creates a list between the first and last numbers used.

www.bdmpublications.com

BD

Python Modules We've mentioned modules previously, using the Math module as an example, but since using modules is such a large part of getting the most from Python it’s worth dedicating a little more time to them.

MASTERING MODULES Think of modules as an extension that’s imported into your Python code to enhance and extend its capabilities. There are countless modules available, and as we've seen, you can even make your own.

a to

Although good, the built-in Functions within Python are limited. The use of modules, however, allows us to make more sophisticated programs. As you are aware, modules are Python scripts that are imported, such as import math. L& Python File

Edit

3.7.0

=

Shelt

Shell

Debug

Options

Window

o

x

The result is an error in the IDLE Shell, as the Pygame module isn’t recognised or installed in Python. To install module we can use PIP (Pip Installs Packages). Close down the IDLE Shell and drop into command prompt or Terminal session. At an elevated admin command prompt, enter:

STEP 3

a

a

pip

Help

Python 3.7.0 (v3.7.0:ibf$cc$093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type "copyright", "credits" or "license()" for more information.

install

>>> ampert math >>>

ip install pygame

|

5

Some modules, especially on the Raspberry Pi, are included by default; the Math module is a prime example. Sadly, other modules aren't always available. A good example on non-Pi platforms is the Pygame module, which contains many Functions to help create games. Try: import pygame. L& Python

3.7.0

File

Shel!

Edit

-

Shell

Debug

Options

Window

a

STEP 4 Start with

a search for CMD, via the Start button, right-click the result, and then click Run as Administrator. Linux and Mac users can use the Sudo command, with sudo pip install package.

(Inte

pokes teha eee areola Rca Peele Lee Ee ete Kc} 2017 Microsoft Corporation. All

math

WINDOWS

pygame

Traceback (most recent call last): File "", line 1, in import pygame ModuleNotFoundError: No module named 'pygame’ P>>

\system32>pip install

cE gs

rights reserved.

pygame

al Meha1L Id

Using cached pygame-1.9.3-cp36-cp36m-win32.whl

installing cellected packages: pygame Successfully installed pygame-1.9.3 >

www.bdmpublications.com

The PIP installation requires an elevated status due to it installing components at different locations.

x

Help

Python 3.7.0 (v3.7.0:ibf9ccS093, Jun 27 2018, 04:06:47) (MSC v.1914 32 bit 1)] on win32 Type "copyright", "credits" or "license{)* for more information. >>> im P>> Lm

pygame

(Inte

\WINDOWS

\system32>

dh>

Python Modules

STEP

Close the command prompt or Terminal, and relaunch the IDLE Shell. When you now enter import

5

pygame, the module will be imported into the code without any problems. You'll Find that most code downloaded, or copied, from the Internet will contain a module, mainstream or unique, and their absence is commonly the source of errors

in

execution.

_

GB Python 3.7.0 Shelt Edit

File

x

oO

Shell_Cebu

Python 3.7.0 {v3.7.0:1bf9ccS0S3, Jun 27 2018, 04:06:47) (MSC v.1914 32 bit on win32 Type "copyright", "credits" or "license()" for more information. >>> import pygame

(Inte

1))

yas:

import random import math

for I in range(5): printCrandom.randint(1, 25))

printCmath. pi) [@ File

pygame 1.9.4 Hello from the pygame community. https://www.pygame.org/contribute.html

Multiple modules can be imported within your code. To extend our example, use:

*md

-

Code/md number.py (3.7.0)* number py - C:/Python

Edit

Format

Run

Options

Window

oOo

xX

Help

import random import math

>>>

for

4 in range (5): print (random. randint (1, 25))

|prant (math.pi)|

The modules contain the extra code needed to achieve a certain result within your own code, with which we've previously experimented. For example:

import random Brings in the code from the Random number generator module. We can then use this module to create something like:

The result is a string of random numbers followed by the value of Pi, as pulled From the math

STEP 9

module using the print(math.pi) Function. You can also pull in certain Functions From a module by using the From and import commands, such as:

from random import randint

for i in range(5): printCrandint(1, 25))

for i in range(1@): printCrandom.randint(1, 25))

C& ‘rnd number.py C:/Python Codesrnd

File Edit

File

Format

Run

Options

Window

Help

2 in range

(10):

for

print (random. randint (1, 25})

This code, when saved and executed, will display ten random numbers From 1 to 25. You can play around

-

2

3.7

Surll

Shak

Debug

Opmant

Wandin

number py (3.7.0)*

Window

Help

i in range (5): print (randint (1, 25)}

This helps create a more streamlined approach to programming. You can also use: import module’,

STEP 10

import math as

for i in range(25): printCrandom.randint(1, 100) Fa

Options

nonetheless. Finally, modules can be imported as aliases:

import random

sinan

Run

which will import everything defined within the named module. However, it’s often regarded as a waste of resources, but it works

with the code to display more or less, and from a greater or lesser range. For example:

Fie

Format

from random import randint

import random

for

Edit

ou

m

print(m. pt) ebony

BB

Mel

Format

Spare 4

Of course, adding comments helps to tell others what's going on.

Paden

Dythan Run Upton

Window

Help

Fandom

canget261:

an (randem.randint Prine (1, 100))

[& File

“ma number.py

-

Edit

Format

import math as

Python Code/md number.py (3,7.0)" Run

Options

Window

Help

m

print (m.pi}

www.bdmpublications.com

BD

Python Errors It goes without saying that you'll eventually come across an error in your code, where

Python will declare it’s not able to continue due to something being missed out, wrong, or simply unknown. Being able to identify these errors makes for a good programmer.

DEBUGGING Errors in code are called bugs, they're perfectly normal and can often be easily rectified with a little patience. The important thing is to keep looking, experimenting, and testing. Eventually your code will be bug free.

a to

Code isn’t as fluid as the written word, no matter how good the programming language is. Python is

Thankfully Python is helpful when it comes to displaying error messages. When you receive an error in red ink from the IDLE Shell, it will define the error itself, along with the line number where the error has occurred. While in the IDLE Editor this is a little daunting For lots of code, text editors =i

certainly easier than most languages, but even it is prone to some annoying bugs. The most common are typos by the user, and while easy to find in simple dozen-line code, imagine having to debug multi-thousand line code.

aie

help by including line numbering.

qo

Oo

>> apples=10 >>> pirnt (apples} Traceback (most recent

27 2018,

"license(}" for

call last): File "", lane 1, in pirnt (apples) NameError: name ‘pirnt’ is not defined >>>

|

www.bdmpublications.com

a

x

Help

04:06:47) more

[MSC

v.1914 32 bit

information.

Syntax errors are probably the second most common errors you'll come across as a programmer. Even if the spelling is correct, the actual command itself is wrong. In Python 3 this often occurs when Python 2 syntaxes are applied. The

most annoying of these is the print Function. In Python 3, we use print(“words”), whereas Python2 uses print “words”. LB

(Inte

-

Python 3.7.0 Shell Edit

File

Shell

Debug

Options

Window

Python 3.7.0 (v3.7.0:lbfSccS093, Jun 27 2018, 04:06:47} [MSC v.1914 32 bit 1)] on win32 Type “copyright", "credits" or “license()" for more information. >>>

print"Hello world!§f

SyntaxError: invalid syntax >o>

|

ox

Help

(Inte

~

Conoo QE Pesky brackets are also a culprit of programming errors, especially when you have something like:

An excellent way to check your code step-by-step is to use Python Tutor’s Visualise web page, Found at

STEP 8

printCbaLanced_checkCinput()))

www.pythontutor.com/visualize.html#mode=edit. Simply paste your code into the editor and click the Visualise Execution button to

Remember that For every ‘(’ there must be an equal number of ‘)’.

run the code line-by-line. This help to clear bugs, and any

misunderstandings. 1

import sys

2

3edef balanced _check(data): 4 stack = []

characters = list(data)

5 6

for character in characters:

Te

reference = {

By 9

18 12 bs

if

13

character in reference. keys(): stack.append({ character}

14

15

ew ‘Tht

17

elif character in reference.values{) and Len(stack) > 6: char = stack.pop{)

18 19 20

else:

lis»

if

reference.get(char) return

1=

ster

one brung

ope

character:

"NO”

There are thousands of online Python resources, code snippets, and lengthy discussions across forums on how best to achieve something. While 99% of it is good code, don’t always be lured into copying and pasting random code into your editor. More often than not, it won't work and frustratingly, you won't have learned anything. oS

n~

cc Se edtaboo

Planning makes for good code. While a little old school, it’s good habit to plan what your code will do before sitting down to type it out. List the variables that will be

STEP 9

a

used, along with the modules, and write out a script for any user interaction or outputs.

You have a bare except clause; Le., try:

8

some

code()

except:

Vv

lean_vp() The problem with a bare except is that it will catch aif exceptions, including ones you really don’t want to be ignoring (like Keyboardincerrupt and SystemExid, It would be much beer if your except block only caught the specific exception you expect. and let all others bubble up as normal. A

few other general comments on your code: In tine 200, yo

ave

Ay

this construction:

tor letter in range(len(chacen_word)}= Sf playcr_guess chosen_word[letter]: word quessed[letter] - player guess You're looping over the index variable, but also using the list elernent. It would be write:

for idx, letter in 4f player_guess

better to

enumerate (chosen_word)+ python CalcPi.py

enter the number of decimal places to calculate Pi to: 1600 =. 1415926535897 34207 66845359157829834676223326091570659889414549873766620940165910806611

34746868975779816037965556 013459959351 328617317661598 28082231 080441 973785312530S651521157470859338317744154596822745276277128465914181 337399225 3578411298808837824212679468963352921667694 151593493095842692658808012769960614706621700375020601 734423451! 3366196887 424309303278687 75560407147 230694 29813445 787466657 726444985596 298919860559636358984008947 138101161111956856848 705962579) 7 35 3987587601397 3328584999652664211902004 58889 344 '87255026356827 24402886 3568884 3735288982 506842338309905 740013758327 7017 849088913229585 2797 366101 31695950194 125393941465 384836 3666504 22641543877733760177071691424287443797178326263 307 3721044852592 24231626745266695227915782 3643188349561 7664885 226@7702179621858051987411481289519686123157537061674294211 272325228479818691718486735

www.bdmpublications.com

www.bdmpublications.com

Manipulating Data

Data is everything. gold or oil, and with it, you can elect presidents or topple governments, p

Find out the.secrets of the universe rod

y=

[CoM

aac

ey

a:

power, so, to get the most from code, you'll need to kno#fiow to

vollit use

and how to: manipulate it.

This section will introduce you to

bere ability to cope with data

.

and how it can be organised in your’ code. We look at how graphics.are

created and how to read and write data from other sources@nd oygput to

external files.

www.bdmpublications.com



Manipulating Data

Lists Lists are one of the most common types of data structures you will come across in Python. A list is simply a collection of items, or data if you prefer, which can be accessed as a whole, or individually if wanted.

WORKING WITH LISTS Lists are extremely handy in Python. A list can be strings, integers, and also variables. You can even include Functions in lists, and lists within lists.

a

list is sequence of data values called items. You create the name of your list Followed by an equal

A

a

You can also access, or index, the last item in a list by using the minus sign before the item number [-1], or

oe

=f

sign, then square brackets and the items separated by commas; note that strings use quotes:

the second to last item with [-2], and so on. Trying to reference an item that isn’t in the list, such as [10] will return an error:

numbers = [1, 4, 7, 21, 98, 156] mythical_creatures - [“Unicorn”, “Balrog”, “Vampire”, “Dragon”, “Minotaur”]

mythical_creatures[-4]

GB

-

Python 3:70 Shall

File

Edit

Shell

Debug

numbers[-1]

Options

Window

Help

Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte Python 3.7.0 (v3.7.0:1b9cc5093, 1)] on win32 Type "copyright", "credits" or "License(}" for more information. >>> numbers = [{1, 4, 7, 21, 98, 156] = [{"Unicozn", "Balrog", "Vampire", "Dragon", "Minotaur" >>> >>>

-

G& Python 3.7.0 Shell

x

a

File

Shell

Debug

Gptions

Window

da

x

Help

Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte Python 3.7.0 (v3.7.0:lb9cc5093, 2)] on win32 Type "copyright", "credits" or "License(}" for more information. >>> numbers = (1, 4, 7, 22, 98, 156] = {"Unicorn", "Balrog", "Vampire", "Dragon", "Minotaur"] >>> mythical creatures >>> numbers

(1, 4, 7, 23, 98, 156] >>> 21 >>>

promica_crearures

Edit

numbers [3]

mythical_creatures [*Unicorn', *"Balrog', ‘Vampire’, ‘Dragon’, ‘Minotaur'}

>>> mythical_creatures{3] "Dragon" >>> numbers{-1] 156 >>> mnumbers{-2] 98

>>>

mythical creatures{-1j ‘Minotaur!

>>>

mythical creatures{-4}

‘Balrog’ >>>

Once you've defined your list, you can call each by referencing its name Followed by a number. Lists start the first item entry as 0, followed by 1, 2, 3, and so on.

Slicing is similar to indexing, but you can retrieve multiple items in a list by separating item numbers with a colon. For example:

STEP 2

For example:

numbers[1:3]

numbers

Will output 4 and 7, those being item numbers 1 and 2. Note that the returned values don’t include the second index position (as you would numbers[1:3] to return 4, 7 and 21).

To call up the entire contents of the list.

numbers[3]

21

To call the item third from zero in the list (21 in this case). [& File

-

Python 3.7.6 Shelt Edit

Shell

Debug

>>>

Options

Window

a

(Inte

on win.

\Type "copyright", “credits™ or “license()" for more information. >>> numbers = [1, 4, 7, 21, 98, 156] >>> mythical_creatures = ["Unicorn", "Balrog", "Vampire", "Dragon", "Minotaur") >>> numbers

(1, 4, 7, 21, 98, 156) >>> numbers[3) 121

>>>

mythical_creatures

[‘Unicorn', *Balrog', 'Vampire', ‘Dragon’, 'Minotaur'] >>> mythical_creatures[3} *Dragon" >>>

>>>

mythical _creatures[3}

"Dragon!

>>> numbers[-1]

Help

Python 3.7.0 (v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1

mythical creatures

(‘Unicorn', "Balrog', 'Vampire', 'Dragon', 'Minotaur’]

x

1sé

>>> numbers

mythical_creatures[-1]

*Minotaur' >>>

mythical _creatures[-4] "Balrog’

>>> mumbers[1:3] (4, 7] >>> numbers [0:4]

(1, 4, 7, 21)

>>> numbers[3:5] (21, 98) >>> numbers[1:] (4, 7, 21, 98, 156) >>> |

www.bdmpublications.com

[-2]

98

>>>

Lists

STEP

You can update items within an existing list, remove items, and even join lists together. For example, to

5

everything =

numbers +

functions, for example, insert and pop are used to add, and remove, items at certain positions:

mythical_creatures

numbers.insert(4, 62)

Then view the combined list with:

Inserts the number 62 at item index 4. And:

everything [&

-

Python 3.7.0 Shen

File

Edit

Shell

Window

Options

Debug

o

ll,

4, 7, 21, 98, 156, ‘Unicorn’,

.pop(4)

Will remove it.

Help

mythical creatures

everything

numbers

x

Python 3.7.0 (v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte 1)7 on win32 Type "copyright", “credits” or “license()" for more information. >>> numbers = [1, 4, 7, 21, 98, 156] >>> mythical_creatures = [*Unicorn”, "Balrog", "Vampire", "Dragon", "Minotaur") >>> everything = numbers + >>>

You can view what can be done with lists by entering dir(list) into the Shell. The output is the available

STEP 8

join two lists we can use:

'Balrog', ‘Vampire’, 'Dragon', 'Minotaur’]

>>>

«

'_repr_', ‘_xeversed_', '_xmul_', '__setattr_'

educe_', '_reduce_ex_',

‘_setitem_’*, '_sizeof_', '_str_', '__subclasshook_'‘, ‘append’, ‘clear’, ‘copy’, 'count', "extend", ‘index', ‘insert’, ‘pop’, 'remove', 'reverse', ‘sort |

,

>>> numbers = >>> numbers

1,

[1, 4, 7, 21, 98, 156]

4, 7, 21, 98, 186}

>>> numbers.insert 62) (4, >>> numbers (1, 4, 7, 21, 62, 98, 156} >>> numbers. pop (4) 62

>>> numbers Ol, 4, 7, 21, 98, 186) >>> |

STEP6

Items can be added to a list by entering:

numbers=numbers+[2@1]

You also use the list Function to break a string down into its components. For example:

iyeeiskemm

LlistC“David”)

Or For strings:

mythical_creatres=mythical_creatures+[“Griffin”] Or by using the append function:

Breaks the name David into D, a, a new list:

v,

|,

d.

This can then be passed

to

name=ListC“David Hayward”)

mythical_creatures.append(“Nessie”)

name

numbers .append(278)

age=[44] user = user

>>> numbers fl, 4, 7, 21, 98, 156} >>> creatures

name + age

mythical

{'Unicorn’, “Balrog', 'Vampire', 'Dragon', 'Minotaur'}

Python 3.7.0 (v3.7.0:1bfScc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type “copyright”, “credits"™ or “license()” for more information.

>>> numbers=numbers+ {201} >>> numbers {l, 4, 7, 21, 98, 156, 261] >>> mythical _creatures-mythical_creatures+["Griffin™] >>> _creatures

>>> list

{'Unicorn', ‘Balrog', 'Vampire', 'Dragon', ‘Minotaur', 'Griffin'} mythical_creatures. append ("Nessie") mythical creatures ('Unicorn', ‘Balrog', 'Vampize', 'Dragon', 'Minotaur', 'Griffin', 'Nessie']

>>> >>>

>>> numbers. append (278) >>> numbers

|

the item number:

del numbers[7] The second, by item name:

mythical_creatures. remove(“Nessie”) >>>

',

THY,

8,

He, Fat, tyt, tet, fat, txt, fat,

fat, tyt, twt, tat, txt, td'y

"dt,

°a%,

*

467

STEP 10

Based on that, we can create a program to store someone's name and age as a list:

name=inputC“What’s your name? “) Lname=ListCname) age=intCinputC“How old are you: “)) lLage=[age]

The combined name and age list is called user, which can be called by entering user into the Shell. Experiment and see what you can do.

Ui, 4, 7, 21, 98, 156, 201] >>> >>>

'Griffin'] 'Griffin', ‘Nessie'}

>>> numbers. append (278) >>> numbers

[l,

'

user = Lname + lage

mythical_creatures

[’Unicorn', Balrog’, *Vampire', ‘Dragon’, ‘*Minotaur'] >>> numbers=numbers+[201] >>> numbers

mythical_creaturea=mythical_creaturest["Griffin"] mythical creatures (VUnicorn’, ‘Balrog’, ‘Vampire’, ‘Dragon’, ‘Minotaur', >>> mythical append ("Nessie") >>> mythical_creatures {*Unicorn', “Balrog', ‘Vampire’, 'Dragon', ‘Minotaur',

U'D', tat, tw', Tat, "at, >>> age=[46] >>> user = name + age >>> user >>>

Removal of items can be done in two ways. The first is by

>>> name=List ("David Hayward") >>> name

[°D', tat, ‘wt,

4, 7, 21, 98, 156, 261, 278}

|

("David")

['D', ‘at, tw, ‘at, tat]

mythical

{l,

(Inte

4, 7, 21, 98, 156, 201, 278]

>>> del numbers {7] >>> numbers

172

{Bb

Pytnen

Fle

Fae

Stell

-

Soe Debug

Optiont

Window

ou

Fle

Help

Python 3.7.0 (v3.7.01ibéscesos3, Jum 27 2018, O4:06:47) [MSC v.1914 32 Bir (Inte 321 on wink? Type ‘copyright™, “credita™ or "license ()" for more information. De

RESTART: C:\Users\david\Documents\Python\ from your nape? Conan of Cimmerse flow old are yout 44 33> user cao tate ente tete Ht

tan

Git

Fermiat

Run

Option

Wandow

~

agening (input

("Mow

eld are you: *))

ages tage!

Pi\camelist py

user = inane + lage

ay

441

(ll, 4, 7, 21, 98, 156, 201] >>> mythical creatures. remove ("Nessie") >>> mythical_creatures {*'Unicorn', ‘Balrog’, ‘Vampire’, ‘Dragon’, 'Minotaur', ‘Griffin'] >>>

www.bdmpublications.com



Manipulating Data

Tuples Tuples are virtually identical to lists, however, where lists can be updated, deleted, or changed in some way, a tuple remains a constant. This is called immutable, and it’s perfect For storing Fixed data items.

THE IMMUTABLE TUPLE Reasons for having tuples vary depending on what the program is intended to do. Mostly a tuple is reserved For something special, but they're also used, as an example, in an adventure game where non-playing character names are stored.

STEP

A tuple

is created the same way as a list, but in this instance you use curved brackets instead of square

1

oy =f

tuple called NPC (Non-Playable Characters) containing the character name, and their combat rating, for an adventure game:

brackets. For example:

months=C“January”, “February”, “March”, “May” , months

Edit

“April”,

“June”)

NPC=[(“Conan”, 108),

Shell

C“Belit”, 80), C“Valeria”,

95)]

-

Python 3.7.0 Shell

[& File

You can create grouped tuples into lists that contain multiple sets of data. For instance, here we have a

one

Debug

Options

Window

a

x

Python 3.7.0 (v3.7.0:1lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1))] om win32 Type “copyright”, "credita™ or "License(}" for more information. >>> months=("January", "February", "March", “April*, “May”, "June™)

(Inte

>>> months

-

Python 3.7.6 Shell



Edit

File

Help

Shelt

Debug

Options

Window

x

oO

Help

Python 3.7.0 {v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.19i4 32 bit 1)} on win32 Type "copyright", "credits" or “license()" for more information. >>> NPC=[("Conan", 100), ("Belit™, 80), ("Valeria"™, 95)]

(Inte

>>>

('danvary', ‘February’, ‘March’, ‘Apxil', 'May', ‘dJune’) >>>

As with lists, the items within a named tuple can be indexed according to their position in the data range:

STEP 2 months[@] months [5]

File

-

Python 3.7.0 Sheil

Edit

Shelt

Debug

Options

Window

x

('danuary', ‘February’, 'March', ‘April’, ‘May’, ‘dune')

>>> months [0]

‘January’

(Inte

‘June!

Edit

Shel)

Debug

("July")

months. append ("July")

‘tuple’ object

‘>>> NPC=({"Conan", >>> NPC

{(*Conan', 160), >>> NPC[O)

>>>

www.bdmpublications.com

has no attribute

‘append’

Options

Window

a

x

Help

Python 3.7.0 (v3.7.0:1lbf9cec5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 11)) on win32 ‘Type "copyright", "credits" or "license()™ for more information.

10

months. append

Traceback (most recent call last): File "", line 1, in

-

Python 3.7.0 Shell

(*Conan', 100) >>> NPC[O} (1)

>>> months [5]

>>>

Will display 100.

File

>>> months

AttributeError:

whole

NPC[@] [1]

[&

Oo

Help

Python 3.7.0 (v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type "copyright", "credits" or "license()" for more information. >>> months=("January", "February", “March”, “April, “May*, “June™)

>>>

a

by entering NPC into the Shell, or they can be indexed according to their position NPC[0]. You can also index the

individual tuples within the NPC list:

And so on. However, any attempt at deleting, or adding, to the tuple will result in an error in the Shell. (&

Each of these data items can be accessed as

STEP 4

100), (*Belit®, 80), ("Valeria", 95)]

(‘Belit', 80), (*Valeria’,

95)}

bit (inte

It’s worth noting that when referencing multiple tuples within a list, the indexing is slightly different

from the norm. You would expect the 95 combat rating of the character Valeria to be NPC[4][5], however it’s not, it’s actually:

Cname,

3.7.0 Shell

File

Shell

Edit

Debug

Options

Window

a

[&

x

Edit

Shell

Debug

on win32z

‘Conan' >>> combat_rating 100 >>>

This means, of course, that the indexing Follows thus:

1,1

@,1

from the end of the data list. So, For our example, using the tuple with multiple data items, we would reference the Valeria character with:

2, 0 2,1

?

1

1, @

x

o

Help

Remember, as with lists, you can also index tuples using negative numbers, which count backwards

STEP 9

2

@

Window

>>> name

95

>>>

2,

Options

Python 3.7.0 (v3.7.0:1bf9ec5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte 1)] on win32 Type “copyright”, "credits” or “License()” for more information. >>> NPC={"Conan*, 100) >>> (name, combat_rating)=NFC

(Inte

Type "copyright", "credits" ox "license()" for more information. >>> NBC=[("Conan™, 100), ("Belit™, 80), ("Valeria", 95)]} >>> NPC(2) [1]

Q

-

Python 3.7.0 Shell

File

Help

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1934 32 bit

1))

combat_rating)=NPC

You can now check the values by entering name and combat_rating.

NPC[2] [1] L& Python

Now unpack the tuple into two c orresponding variables:

STEP 8

NPC[2][-@] [&

This, as you can imagine, gets a little confusing when you have a lot of tuple data to deal with.

-

Python 2.7.0 Shell Edit

File

Shell

Debug

Options

Window

Python 3.7.0 (v3.7.0:lbf9ccS093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit on win32 Type “copyright™, “credits” or “license(}" for more information.

1)]

>>> NPC(Oj[0}

"Conan’

|

>>> RPC=[("Conan", 100), >>> NEC(2] {-0}

x

a

Help

(Inte

{"Belit", 60), ("Valeria™, 95)]

"Valeria'

>>> NPC(O) [1] 106 >>> NPC(11 ("Belit', 80) >>> NPC{1J[0}

>>>

"Belit'

>>> NPC[1)(1} 80

>>> NPC(2}

('Valeria’, 35) >>> NPC[2} [0} ‘Valeria’

>>> NPC(2) [1] 95

>>>

Tuples though, utilise a Feature called unpacking, where the data items stored within a tuple are variables. First, create the tuple with two items (name and assigned combat rating):

STEP 10

STEP 7

highest and lowest values of a tuple composed of numbers. For example:

numbers=(10.3, 23, 45.2, 109.3, 6.1, 56.7, 99)

NPC=C“Conan”, 108) [& File

-

Python 3.7.0 Shell Edit

Shell

Debug

Options

Window

“credits™ or “license({)" for more information.

>>> NPC=("Conan", 100) >>>

The numbers can be integers and floats. To output the highest and lowest, use:

x

Help

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47} (MSC v.1914 32 bit

on wins2 |] Type "copyright",

a

(Inte

We can use the max and min Functions to find the



printC(maxCnumbers)) printCminCnumbers)) [B File

-

Python 3.7.9 Shell Edit

Shell

Debug

Options

Window

Qo

x

Help

Python 3.7.0 (v3.7.0: Ibf9$cec5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte 1)] on win32 Type "copyright", "credits" or "license(}" for more information. >>> numbers=(10.3, 23, 45.2, 109.3, 6.1, 56.7, 99) >>>

print (max (numbers) }

109.3 >>>

6.1

print (min (numbers) }

>>>

www.bdmpublications.com

|

>

Manipulating Data

Dictionaries Lists are extremely useful, but dictionaries in Python are by Far the more technical way of dealing with data items. Although they can be tricky to get to grips with at First, you'll soon be able to apply them to your own code.

KEY PAIRS A dictionary is like a list, but instead each data item comes as a pair, these are known as Key and Value. The Key part must be unique and can either be a number or string, but the Value can be any data item you like.

STEP

Let's say you want to create a phonebook in Python. You would create the dictionary name, and contain

1

the data in curly brackets, separating the key and value by Key: Value. For example:

a

As with lists and tuples, you can check the contents of a dictionary by calling the dictionary name; phonebook, in this example. This will display the data iterns you've entered in a similar Fashion to a list, which you're no doubt familiar with by now. =f

colon

phonebook={“Emma”: 1234, “Daniel”: 3456, “Hannah”: 6789}

[

-

Python 3.7.0 Shell Edit

File

Sheil

Debug

Options

Window

Fite oO

x

Help

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) (MSC v.1914 32 bit 1)] on win32 Type "copyright", "credits" or "license()" for more information. >>> phonebook={"Emma": 1234, "Daniel": 3456, "Hannah": 6789}

(Inte

>>>

'

a

Python 3.7.0 Shell Edit

Shell

Debug

Options

Window

x

Help

Python 3.7.0 (v3.7.0:1bf9cc5083, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)) on win32 Type "copyright", "credits™ or "license(}" for more information. >>> phonebook=("Emma": 1234, "Daniel": 3456, “Hannah”: 6789) >>> phonebook2={"David": "0987 654 321"} >>> phonebook {‘Emma': 1234, ‘Daniel’: 3456, 'Hannah': 6789)

(Inte

>>>

As with most lists, tuples, and so on, strings need to be enclosed in quotes (single or double), while integers can be left open. Remember that the value can be either a string, or an integer, you just need to enclose the relevant one in

[&

oe

quotes:

3.7.0

Shell

_

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 64:06:47) {MSC v.1914 32 bit 1)) on win32 Type "copyright", "credits" or "license()" for more information. >>> phonebook={"Emma": 1234, "Daniel": 3456, "Hannah": 6789} >>> phonebook2={“David' “O987 654 321%} >>> |

www.bdmpublications.com

phonebook[ “Emma” ]

phonebook[“Hannah”]

phonebook2={“David”: “0987 654 321”} [@ Python

The benefit of using a dictionary is that you can enter the key to index the value. Using the phonebook example From the previous steps, we can enter:

-

[Lm Python 3.7.8 Shell

o

x (Inte

Fite

Edit

Shell

Debug

Options

Window

Jun 27 2018, 04:06:47) [MSC v.1914 32 bit Python 3.7.0 (¥v3.7.0:lb9cc50S3, 1)) on win32 “credits” or Type "copyright", "license()" for more information. >>> phonebook=({"Emma": 1234, "Daniel": 3456, “Hannah”: 6789} >>> phonebook2={"David": "0587 654 321"} >>> phonebook {*Emma': 1234, ‘Daniel': >>> phonebook ["Emma”] 1234 >>> phonebook["Hannah"} 6785 >>>

o

x

Help

3456, 'Hannah': 6789}

(Inte

Dictionaries

STEP

Next, we need to define the user inputs and variables, one for the person’s name, the other for their phone number (we will keep it simple to avoid lengthy

Adding to a dictionary is easy too. You can include a new data item entry by adding the new key and

5

STEP 8

value items as such:

Python code):

phonebook[“David”] = “@987 654 321”

name=inputC“Enter name: “) number=intCinputC“Enter phone number:

phonebook

-

L& Python 3,7.0 Shell File

Edit

Shell

Window

Options

Debug

{’Emma’: 1234, "Daniel':

(} *Dictin.

Help

Python 3.7.0 (v3.7.0:ibfScec5083, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type "copyright", “credits” or “license()" for more information. >>> phonebook=({"Enma": 1234, "Daniel": 3456, "Hannah": 6789} >>> phonebook2={"David": "0987 654 321") >>> phonebook

x

o

Format

Edit

File

-

david: Documents\Python\From Pi\Dictin.py (3.7.0)"

CAUsersi

-

py

(Inte

“))

Run

Options

Window

oOo

xX

_Help

[phonebook=t) name=input

name:

("Enter

number=int (input ("Enter

3456, ‘Hannah’: 6789}

") phone number:

*))

>>> phonebook[*Emma"] 1234 >>> phonebook ["Hannah"] 6789 >>> phonebook["David"] = "0987 654 321" >>> phonebook

ae

1234, "Daniel':

3456, 'Hannah': 6789, "David':

'0987 654 321'}

>>>

Note we've kept the number as an integer instead of astring, even though the value can be both an integer and a string. Now we need to add the user’s inputted variables to the newly created blank dictionary. Using the same process as in Step 5, we can enter:

And you can also remove items from a dictionary by issuing the del command followed by the

-

item's key the value will also be removed as well, since both work as a pair of data items:

del phonebook[“David”] [B

-

Python 3.7.0 Shell

File

Edit

Shell

Debug

Window

Options

a

phonebook[name] = number

x

Help

[LB Dictin.py

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type “copyright”, "credits" or “license()" for more information. >>> phonebook={"Emma": 1234, "Daniel": 3456, "Hannah": 6789} >>> phonebook2={"David™: "0987 654 321") >>> phonebook {'Emma’: 1234, 'Daniel': 3456, *‘Hannah': 6789}

(Inte

File

-

C2.

Users\davidDocuments\Python\From Pi\Dictin.py (3.7.0)

Format

Edit

Run

Options

Window

Help

phonebook={}

") (input ("Enter phone number:

name=input ("Enter name:

™))

phonebook[name] = number

>>> phonebook{"Emma"]} 4

>>> 67839

phonebook {"Hannah"]

>>> phonebook["David"] = “0987 654 321" >>> phonebook

{'Emma’: 1234, 'Daniel': 3456, ‘Bannah': 6789, ‘David’:

>>> del phonebook{"David"] >>> phonebook

{'Emma’: 1234, 'Daniel':

‘0987 654 321'}

3456, *Hannah': 6789}

>>>

Taking this a step Further, how about creating a piece of code that will ask the user For the dictionary and value items? Create a new Editor instance, and start by key coding in a new, blank dictionary:

Now when we save and execute the code, Python will ask for name and a number. It will then insert those entries into the phonebook dictionary, which we can test by entering into the Shell:

phonebook={}

phonebook

[& File

-

Python 3.7.0 Shell Edit

Shell

Debug

Options

Window

(Inte

a

phonebook[“David”]

x

Help

Python 3.7.0 (v3.7.0:ibf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit |2)] on win32 Type “copyright”, “credits” or “license()™ for more information. >>>

a

STEP 10

«

IF the number needs to contain spaces you'll need to make it a string, so remove the int part of the input. LB File

phan

2)]

Bae

1

Lat then om

Shell

Debug

atte Uptions

Window

File_Fén format

tele.

3.7.0 (v4,7.011BESa86098, Jun 27 2018, 0470847) [HSC wanda

‘Type *copysight®,

“exedits”

or

>>>

“License (}"

seater,

Enter nane: David Enver phone number: 09676

for

more

information.

32 BLE

(Inte

“MM

Run

_Oppons

Window

namessnput("Entex namet

puabexangut{"kutex phone oumbes: *) phonebookinamel

(number

253 phonebook Chavsat: 9978) >oa 5876 phonebook ("Gavia")

ESTAR:

Eater mane: Bob Enter phone sunbers 0987 aoe

_Hedp!

phoachook()

$54 3221 9344

[40807 Got aaz2 s348e]7

www.bdmpublications.com



Manipulating Data

Splitting and oining Strings When dealing with data in Python, especially From a user's input, you will undoubtedly come across long sets of strings. A useful skill to learn, in Python programming, is being able to split those long strings For better readability.

STRING THEORIES We've already looked at some list Functions, using .insert, .remove, and .pop, but there are also Functions that can be applied to strings. The main tool in the string Function arsenal is .split(). ‘ With it, you're able to split apart a string of data,

STEP 1

based on the argument within the brackets. For example, here’s a string with three items, each separated by a space:

text="Daniel (Ge Python 3.7.0 File

Edit

Hannah Emma” =

Shell

Shell

Debug

Options

Window

Help

Python 3.7.0 (v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type "copyright", “credits” or “license()" for more information. >>> text="Daniel >>>

*

oO

(Inte

Hannah Emma”

Note that the text.split part contains the brackets, quotes, then a space Followed by closing quotes and brackets. The space is the separator, indicating that each list item entry is separated by a space. Likewise, CSV (Comma Separated Value) content has a comma, so we would use:

STEP 3

February ,March, April ,May, June”

months=text.spLlitC%,”) months L&

Pether

File

-

27.2 Snell

Shell

Edit

Debug

Options

Window

x

oO

Help

Python 3.7.0 (v3.7.0:1bfScc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte 1)] on win32

“copyright”, “credits” or "license()”" for more information. >>> text="January, March, April, May, June” >>> months=text.split(",") >>> months

Type

('danuary’, 'February', ‘March’, *April', 'May', 'June'j

>>>

STEP2

We've previously seen how, using a name, we can split a string into individual letters as a list:

Now let’s turn the string into a list, and split the content accordingly:

names=text.splitc*

“)

name=ListC“David”) name

And enter the name of the new list, names, to see the three items. !

La File

|

a

Python 2.7.5 Shell Edit

Shell

Debug

Options

Window

x

Help

Python 3.7.0 (v3.7.0:lbfs9cc5093, dun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte 1)] on win32 Type "copyright", “credits” or "license()” for more information. >>> text="Daniel Hannah Emma® >>> names=text.split(" ") >>> names

["Daniel', 'Hannah', ‘Emma’ >>>

The returned value is ‘D’, ‘a’, ‘v’, ‘’, ‘d’. While it may seem a little useless under ordinary circumstances, it could be handy for creating a spelling game, for example. (& Python File

Edit

3.5.0

Debug

Options

Window

Python 3.7.0 (v3.7.0:1b9ccS0S3, 1)] on win32 Type "copyright", “credits” or >>> nameslist >>> name

("David")

('D, tat, tw,

>>>

www.bdmpublications.com

=

Shell

Shell

tae]

Bo

x

Help

Jun 27 2018, 04:06:47)

"license()" for

more

[MSC

v.1914 32 bit

information.

(inte

( The converse of the .split Function is join, where f separate items in a string, can join together to Form a word, orjust combination of items; depending on the program you're writing. For instance:

STEP 5

stop, or

a

alphabet=”” . joinc[“a” ; *b” ; oO” ; aq” ; a” alphabet

Edit

Shell

col Le

Options

Window

oF

Edit

(Inte

Shell

Debug

«

"a", "e*])

‘abcde’

>>>

form the name:

”.

together, and retained the list called

Ue

name, passing it through the join Function.

-

Shell

Debug

Options

Window

x

a

Edit

32

Shell

Debug

Options

Window

Python 3.7.0 (v3.7.0:1b9cc5093, 1)] on win32 Type "copyright", "credits" or

>>> title="conan the cimmerian”™ >>> title.capitalize() "Conan the cimmerian' >>> title.citle() ‘Conan The Cimmerian' >>>

Help

Python 3.7.0 (v3.7.0:lbf9ec5093, Jun 27 2018, 04:06:47) [MSC v.191 4)) on win32 Type "copyright", "credits™ or "License(}" for more information.

-

Python 3.7.0 Shell

Fife

Python 3.7.0 Shell Edit

There's some interesting functions you can apply to a string, such as .capitalize and .title. For example:

title. capitalized) title. titled

JoinCname)

We've joined the string back

File

Help

title=”"conan the cimmerian”

name

[&

Window

>>> text=" ".join(list) >>> text "Conan raised his mighty sword and struck the demon' >>> colours=["Red", "Green", “Blue"] >>> col=",".join (colours) >>> col "Red, Green, Blue! >>>

We can therefore apply join to the separated name we made in Step 4, combining the letters again to

name=”"

Options

Python 3.7.0 (v3.7.0:lbf9ccS093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel Type “copyright”, "credits" or "license()" for more information. >>> list=("Conan”, "raised", "his", "mighty", "sword", "and", "struck", "the", "d

xX

Help

Python 3.7.0 (v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47) (MSC v.1914 32 bit 1)} on win32 Type "copyright", “credits” or “license()" for more information. >>> alphabet="".join(["a","b", "oc", >>> alphabet

Python 3.7.6 Shell

File

-

Debug

Full

ora

col=”,”.joinCcolours)

Python 3.7.0 Shell

File

have to be a space, it can also be a comma, hyphen, or whatever you like:

a

colours=[“Red”, “Green”, “Blue”]

])

This will display ‘abcde’ in the Shell. [&

and Joining Strings

4s with the split Function, the separator doesn’t

apalcesgee

!


>> namewlist ("David") >>> name

x

o

Help

Jun 27 2018, 04:06:47}

"license()" for

more

[MSC

v.1914 32 bit

(Inte

information.

UD, ta’, tv, "it, tay

>>> name="". (name) join >>> name

"David! >>>

A

a

A good example of using the join Function is when you have a list of words you want to combine into

STEP 10

sentence:

to check

List=[“Conan”, “raised”, “his”, “mighty”, “sword”, “and”, “struck”, “the”, “demon”] text=” “.join(list) text Note the space between the quotes before the .join Function (where there were no quotes in Step 6’s join). [& File

=

Python 3.7.5 shen Edit

Shell

Debug

Options

Window

Help

Python 3.7.0 (v3.7.0:4bf%ccS093, Jun 27 2018, 04:06:47) [MSC v.1914 32 Type “copyright®, “credits" or "license(}" for more information. >>> liste["Conan", "raised", "his", "mighty", “eword™, "and", 3>> terre" * join(tiat) >>> text ‘Conan raised his mighty svord ang struck the demon‘ >>>

bit (Intei)]

"struck", "the",

on win32

"demon™]

a

You can also use logic operators on strings, with the in and not in functions. These enable you

ifa string contains (or does not contain) a sequence

of characters:

message="Have a nice day” “nice” in message

in message “day” not in message “night” in message ”*bad” not

(&

Python

File

Edit

3.7.2

-

She

Shell

Debug

Options

Window

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) (MSC v.1914 32 bit 1)} on win32 Type “copyright”, "credits" ox "license()* for more information. >>> message="Have a nice day” >>> “"nice™

x

0

Help

(Inte

in

True >>> "bad" not in

True >>> "day" not in message

False >>> "night” False

in

message

www.bdmpublications.com

>

Manipulating Data

Formatting Strings As you work with data, creating lists, dictionaries, and objects you'll often want to print out the results. Merging strings with data is easy, especially with Python 3, as earlier versions of Pythons tended to complicate matters STRING FORMATTING Since Python 3, string Formatting has become a much neater process, using the .format Function combined with curly brackets. This makes things easier to follow and, as with most coding, there are other ways to do things but this way is recommended.

a to

The basic Formatting in Python is to call each variable into the string using the curly brackets:

sy =f

number=10000

printC“{} of {} was a skilled mercenary, and thief too. He once stole {} gold from

name=”Conan”

is:

printC“The barbarian hero of the Hyborian Age {}”. format (name) Ge Python

3.7.0 Shell

File

Sheil

Edit

Debug

Options

Window

x

ad

string Formatting in a single print Function: ” 99

name="Conan

known as [&

Python

File

Edit

Debuq

Window

oa

Help

Python 3.7.0 (v3.7.0:lbfSec50$3, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32 Type “copyright” "credits" or "license()* for more information. >>> name="Conan' >>> place="Cimmeria“ >>> print(*{} hailed from the North, in a cold land kmown as {}".format (name, place}) Conan hailed from the North, in a cold land known as Cimmeria >>>

Help

(intel))

on winsZ

There are many different ways to apply string formatting, some are quite simple, as we’ve shown you here, and others can be significantly more complex. It all depends on what you want from your program. A good place to reference frequently, regarding string Formatting, is the Python Docs webpage, found at https://docs.python.org/3.1/library/ string.html. Here, you will Find of help.

tons

cold land

Options

Window

STEP 4

gma tite

{}”.formatCname, place))

3.7.0 Sheil

Shell

a

Options

pro phint(*t) heiled f2um tbe Wurth, in a culd lend knuws aa place)) (1*.formet (name, Conan haaled from the North, in 2 cold land known as Cimmeria D3> numbere1ugv0 p> print{"{} of (} wea a akilled mercenary, and theif too. Me once atole {} gold from e merchanc.“. form place, number}) Conan of Cimmeria wan A Ski11e0 mercenary, ant cheif con. He nance arate 10000 gnid from a merchant.

{}".format (name})

in

Rehug

>>> name~*Conan* >>> placee*Cammeria*

Remember to close the print function with two sets of brackets, as you've encased the variable in one, and the print Function in another. You can include multiple cases of

from the North,

Shell

Hython 3.7.0 (v8.7. Uripfyeesuys, Jun 27 2018, U8:08r47) (HSC V.1N14 32 bat Type “copyriube", “credits” oz “License(Q)" fur more information.

(Inte

a0 =>

print(“{} hailed

Fait

File

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit L)] on win32 Type "copyright", "credits" or "license()" for more information.

place=”Cimmeria”

a

merchant.”.formatCname, place, number)

Help

>>> name="Conan”™ >>> print barbarian hero of the Hyborian Age is: ("The The barbarian hero of the Hyborian Age is: Conan >>>

We can, of course, also include integers into the mix:

oe

x

7.1.3. Format

a

Aneta

~

|

ae

an oncacnd deatng 14

cant

|

String Syntax

Theo

‘Th groan fro

oT

tees

~

11

Oy

eheeneera field obo a8

|

comsernce

Son

i,

z

!

fe

sem tre Forms Spectenanr

‘Tha ae fol_nams too ogra 0.7.2.

tart

eg we

wf

an 27g, 0are

iss

trans. (reges

www.bdmpublications.com

37

m

mmo

fat

Tho

Madarseige Seton.

Te peakine

scp

a's eto! aeofc) wcumbet

Dy

Co

pA

ening

Cane

NS a

a

of

ayRord

(el pat ser)

Ure

10°

8

wn

Bw

cambios tex postcnel wiguncal 2,

artery 0,1,

mide

a

25

and

iri

sheyword,

tel coc

doer nar sg_nae

Tha

kere De

apiront he rumercal

nad

By any

aa

of

tex

dna SATA

dh>

Formatting Strings

aaa)

Interestingly, you can reference a list using the string Formatting Function. You need to place an asterisk in front of the list name:

STEP

5

numbers=1, 3, 45, 567546, 3425346345 printC“Some numbers: {}, {}, {}, {},

Python3 7.0 Edit

File

printC“Hello {}.”.formatCname)

{}”.

Tile

Options

Window

2)]

x

oa

Help

Jun 27 2018, 04:06:47) (MSC v.1914 32 bit Python 3.7.0 (v3.7.0: 1lb9cc5093, 1)1 on win3z Type "copyright", “credits” or "License(}" for more information. >>> numbers*l, 3, 45, 567546, 3425346345

print ("Some

>>>

Some numbers:

numbers:

Shell

Uebug

Siptions

Fython 3.7.0 (v3.7.0:

-

Debug

Cart

-

sae

=o

Potnen

Ui

Shell

Shell

{}, {}, {}, {}, ()".format

1, 3, 45, 567546, 3425346345

(*numbers)

“)

name=inputC“What’s your name?

formatC*numbers)) [@&

You can print out the content of a user’s input in the same Fashion:

(Inte

>

on wind2

Window

1nESccsDea,

Tye “copyzight", “credics”

He

"License()” for

of

ons

Help

dun 27 2018, aai0bz47)

wore

FRSC

VISTA Sz

BoE

(inte

+

_Udd_Jermat

Run

Window

Options

Mel!

TAREeinput{-What’s your name? “) prant("Mello, ().*.fermac (aame))

information.

RESTART: C: Wnac's your name? David

Helle, Davia.

)

>>>

4S with indexing in lists, the same applies to calling a list using string Formatting. We can index each item according to its position (From 0 to however many are present):

And you can extend this simple code example to display the First letter in a person's entered name:

seexsge

numbers=1, 4, 7, printC“More numbers:

{3}, {@}, {2},

printC“The first Letter of your

-

Python 3.7.8 Shell Edit

Fite

Sheil

Debug

Options

Window

Python 3.7.0 (v3.7.0:1bf9cc5093, 1)] on win32 Type "copyright", "credits" or >>> numbers= 1, 4, 7, 9 >>> print ("More numbers: More numbers: 9, 1, 7, 4. >>>

x

a

Jun 27 2018, 04:06:47)

"license()" for

more

(3), {0}, {2}, (1}.".format

[MSC

v.1924 32 bit

(Inte

Lie

at

_eutere

And as you probably suspect, you can mix strings and integers in a single list to be called in the

“Belit”, “Valeria”,

print C“{@} is {3} years old. Whereas {1} years old.”.format(*characters))

faa

Help



You can also call upon a pair of lists, and reference them individually within the same print Function.

names=[“Conan”,

is {4}

Window

(Intel)]

“Belit”, “Valeria”]

Creating two lists. Now we can call each list, and individual items: Bo

Help

Python 3.7.0 (v3.7.0:1bf$cc5053, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit

printC“{@[0]} is {1[@]} years old. Whereas {0[1]} is {1[1]} years old.”.formatCnames, ages))

on

2

Type "copyright", "credits" or "license()™ for more information. >>> characters=["Conan", "Belit", "Valeria", 19, 27, 20] >>> print("{0} is {3} years old. Whereas, {1} is {4} years old.". format (*characters)) Conan is 19 years old. Whereas, Belit is 27 years old. >>>

Window

ages=[25, 21, 22]

Options

Opbons

yt

your name

STEP 10

19, 27,

Python 3.7.0 Shell Debug

Run

Looking back at the code from Step 7, we can alter it with:

characters=[“Conan”,

Shell

Foompt

*hicease()™ for wore saforaation.

or

QESTART: C:.

20]

Edit

{Q}”.

Sinevs your maar? Cana

Format Function:

File

a

esranay €1 Gracy yout senet bovta

(*numbers))

felios conan, feet iecter of

[&

ep

Window

2)] on wind2 Tipe copyriaht®, "czeditat

information.

is

~

[Be rithen=

Help

name

formatC*Lname))

The

A

“)

Lname=ListCname)

{1}.”. formatC*numbers)) Gi

name=inputC“What’s your name?

printC“Hello {}.”.formatCname))

9

Lab Pethen

File

Fit.

270 Shell

=

Shell

Debig

Options

Window

a

Help

Python 3.7.0 (v3.7.0:1bf9ce5093, Jun 27 2018, 04:06:47) (MSC v.1914 32 bit ‘Type “copyright", “credits” or “license()" for more information. poo names=[“Conan", “Belic”, "Valezia®] >>> ages=[25, 21, 22) >>> Drink (FLO[N]} te C(O)) years old. wh - t0n yearn as Zo years old. whereas, Belat is Zs years old.

(Intel}]

on win32

format (names, ages))

[Sonam >>>

www.bdmpublications.com



Manipulating Data

Date and Time When working with data it’s often handy to have access to the time. For example, you may want to time-stamp an entry, or see at what time a user logged into the system, and For how long. Thankfully, acquiring the time and date is easy thanks to the Time module.

TIME LORDS The Time module contains Functions that help you retrieve the current system time, read the date from strings, format the time and date, and much more. First you need to import the Time module. It’s one that’s built-in to Python 3, so you shouldn’t need to

by entering:

drop into a command prompt and pip install it. Once it’s imported, we can call the current time and date with a simple command:

.

The output

Edit

Shell

Options

Window

‘time. struct_timeCtm_

to the time this book was written.

Help

Python 3.7.0 (v3.7.0:ibf9cc5033, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type "copyright", "credits" or "license()" for more information. >>> import time

(Inte

>>> time.asctime () "Thu Jun 20 09:51:18 2019' >>> +

displayed as such:

isdst=@)’; obviously dependent on your current time, as opposed

x

Debug

is

year=2019, tm_mon=9, tm_mday=7, tm_hour=9, tm_min=6, tm_sec=13, tm_wday=3, tm_yday=25@, tm_

Python 3:70 Shell

File

.

time. Local. timeQ)

import time time .asctime() Lb

You can see the structure of how time is presented

oe

=f

+

*

L& Python File

Edit

-

3.7.0 Shell

Shell

Debug

Options

Window

Python 3.7.0 (v3.7.0: 1bf9cc5093, 1))] on win32 Type "copyright", "credits" or >>> import time

|

x

oF

Help

Jun 27 2018, 04:06:47)

"license()" for

more

[MSC

v.1914 32 bit

(Inte

information.

>>>

time. localtime() time. struct_time(tm_year=2019, tm_mon=6, tm_mday=20, tm_hour=9, tm_min=52, tm_se tm_wday=3, tm_yday=17l, tm_iadst=1)

4 >>>

The time Function is split into nine tuples, these are divided up into indexed items, as with any other tuple, and shown in the screen shot below.

STEP 2

Index

Field

0

4-digit year

2016

1

Month

1to12

2

Day

1to 31

3

Hour

0 to 23

There are numerous Functions built into the Time module. One of the most common of these is sstrftime(). With it, you're able to present a wide range of arguments as it converts the time tuple into a string. For example, to display the current day of the week we can use:

time. strftime( ‘%A’)

Values

Ge Python

3.7.0

File

Shell

|

4

Minute

0 to 59

5

Second

0 to 61 (60 or 61 are leap-seconds)

6

Day of Week

0 to 6 (0 is Monday)

7

Day of year

8

Daylight savings

www.bdmpublications.com

to 366 (Julian day)

1, -1 means library determines

Debug

Options

time.strftime {'$A') ‘Thursday’

>>>

>>>

-1, 0,

Shett

Window

Help

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) {MSC v.1914 32 bit 1)) on win32 Type "copyright", "credits" or "license()" for more information. >>> import time

|

1

Edit

DST

(Inte

1}

Date and Time

STEP

We can also use the Time module to display the amount of time taken For an event to happen. For example, taking the above code, we can alter it slightly by including:

Naturally, this means you can incorporate various functions into your own code, such as:

5

STEP 8

|

ay

time. strftimeC“%a”) time. strftimeC“%B”) time. strftimeC“%b”) time. strftimeC“%H”) time. strftimeC*%H%M”>) L& Python

3.7.0 Shell

File

Sheil

Edit

start_time=time.time() And.

endtime=time.time()-start_time

Window

Options

Debug

x

logintime.py

«

Python\From

Window

Options

Pi\

vy

-

(3.7.0)

|

name:

")

time.strftime ("4B")

print ("\nWelcome",

tame. stxrftime ("*b")

print ("\nUser:", name, “logged in at", time.strftime ("%H:4M")) print ("It took", name, endtime, “seconds ko login to their account.*)

‘Jun!

("tH")

>>> time. stritime

os"

time. strftime ("$H$h")

x

ag

Help

import time

start_time=time.time(} login

‘June!

>>>

Run

endtime=time.time (}-start_time

‘The! >>>

CAUsers\davic\D

Format

name=input ("Enter

time.strftime ("ta")

>>>

Edit

File

(Inte

-

GB

Help

Jun 27 2018, 04:06:47) [MSC v1914 32 bit Python 3.7.0 (v3.7.0:1b9cc5093, 1)} on win32 ‘Type "copyright", "credits” or "license()™ for more information. >>> import time >>>

|

name)

|

‘agsst

Note the last two entries, with %H and %H%M, as you can see, these are the hours and minutes and as the last entry indicates, entering them as %H%M doesn't display the time correctly in the Shell. We can easily rectify this with:

STEP 6

.

time.strftimeC“%H :%M”)

[

-

Python 3.7.6 Shell Edit

File

Shell

a

x

The output will look similar to the screenshot below. ' The timer Function needs to be either side of the input statement, as that’s when the variable name is being created depending on how long the user took to log in. The length of time is then displayed on the last line of the code, as the endtime variable.

STEP 9

Debug

Window

Options

Help

(Inte



-

-

[a Python 3.7.0 Shell File

Python 3.7.0 (v3.7.0:ibfScc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)} on win32 Type "copyright", “credits” or “license()* for more information. >>> import time

-

"

Edit

Shell

Debug

Options

Window

a

x

Help

Jun 27 2018, 04:06:47) [MSC v.1914 32 bit Python 3.7.0 (v3.7.0: lb9cc5093, 1)] on win32 "credits" or Type "copyright", "license()™ for more information.

(Inte

|

>>>

RESTART: C:\Users\david\Documents\Python\From

Pi\logintime.py

>>> time. strftime ("*a") "Thu! >>> time. stritime ("$B")

Enter login

>>> time. strftime ("*b")

User: David logged in at 10:07 It took David 4.050173759460449 seconds to login to their account.

name: David

Welcome David

‘June'

‘Jun!

>>> time.strftime ("8") ‘097 >>> time. strftime ("%H&M")

>o>

|

"OS55" >>> time.strftime ("$H:4M")

*09:56°

>>>

This means you're going to be able to display either

anatase

occurred, such as a user entering their name. Try this code in the Editor:

import time name=inputC“Enter Login name: “) printC“Welcome”, name, “\d”) printC“User:”, name, “Logged in at”, time.

L&

strftimeC“%H : %M”)) az0

-

shee

Ct

Datu Optra

‘him ‘Pytmon

window

ab] ea winaz Type “soprrignes, “oredites of

momee b

wetoome Bavte

Perse zemsea an oe 20:00

a

x

Deemer He

CEOOMINTI

UM

“Licenae()” for

RESTART: 1

name bavi lancer Logie

Idoeye

Hay CE

Documental

ECCS

tat

heat Bean re Cease on _Oppons_andow Hee

semen

input

oy

Jpeiat (oyna Jerane(rnsaees",

same“)

login

"logged an ax”,

Shell

NAME

fame) name,

Edit

Debug

Options

Window

time ("AE

- This

a

bit (Inte

module provides various functions to manipulate time values.

Ur))

DESCRIPTION

There are two standard representations of time. One is the number of seconds since the Epoch, in UTC (a.k.a. GMT}. It may be an integer or

a

floating point

number

x

Help

Python 3.7.0 (v3.7.0:1lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 1)] on win32 Type “copyright", “credits” or “license()” for more information. >>> import time >>> help (time) Help on built-in module time:

peroreere

mare anformation,

Pytnen\Froe Pa\legiatane.py

_sorma

-

Python 3.7.6 Shell

File

Try to extend it Further to include day, month, year, and so on. 1D Pron

There’s a lot that can be done with the Time module, some of it is quite complex too — such as displaying the number of seconds since January 1st 1970. IF you want to drill down further into the Time module, then in the Shell enter: heLpCtime) to display the current Python version help File for the Time module.

STEP 10

the current time, or the time when something

(to represent fractions of seconds).

The Epoch is system-defined; on Unix, it is generally January The actual value can be retrieved by calling gmtime The other representation is a tuple of The tuple items are:

9

ist,

1970.

integers giving local time.

www.bdmpublications.com

{



Manipulating Data

Opening Files Python, you can read text and binary Files in your programs. This enables you to import data From one source to Python; handy if you have another program language running, that’s creating an output, and you want to analyse the results in Python. In

OPEN, READ AND WRITE Python, you create a File object, similar to creating a variable, only you pass in the file using the open() Function. Files are usually categorised as text or binary. In

Start by entering some text into your system's text editor. The text editor is preferable to a word processor, as word processors include background Formatting and other elements. In our example, we have the poem The Cimmerian, by Robert E Howard, and we've saved the file as poem.txt.

STEP

1

asked to be opened. We can now use the poem variable to read the contents of the file:

poem.

The

dark woods, masicing slopes of sombre hills; grey clouds” leaden everlasting arch;

Tre duaky streams Uhat flowed without JAnd

read()

Note than a /n entry in the text represents a new line, as we have used previously.

remeaber

The

IF you now enter poem into the Shell, you will get some information regarding the text file you've just

STEP 3

1

@ sound, the lone winds that whispered down the passes.

cugged peak and gazed, his shaded sau but the endless vista fill on

File

A

-

hill,

Edit

Shel}

Debug

Options

Window

a

x

Help

Python 3.7.0 (v3.7.0:ibf9cc5093, Jun 27 2018, 04:06:47) (MSC v.1914 32 bit 1}} on win32 Type "copyright", “credits” or “license()" for more information,

(Inte

("C:\\Users\\david\\Documents\ \poem. txt")

>>> poem=open >>> poem

>> poem=open("C:\\Users\\david\\Documents\\poem.txt"} >>>

print(poem, readQ)) Now, the /n entries are removed readable text. (& File

Help

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)) on win32 Type "copyright", "credits" or "license()" for more information.

IF

(Inte

*

in

favour of new lines and

-

Python 3.7.0 Sheil Edit

Shell

Debug

Options

Type "copyright", "credits"

Window

or

Help

"license()" for

more

Vista on vista marching, hills on hills, Slope beyond slope, each dark with sullen trees, Our gaunt land lay. So when a man climbed up A rugged peak and gazed, his shaded eye

endless vista - hill on hill, Slope beyond siope, each hooded like its brothers. Saw but the

It

www.bdmpublications.com

information.

>>> poam=open ("C:\\Users\\david\\Documents\ \poem. txt") >>> print (poem.read()) I remember The dark woods, masking slopes of sombre hills; The grey clouds' leaden everlasting arch; The dusky streams that flowed without a sound, And the lone winds that whispered down the passes.

was

a gloomy

land tha’

oO

x

Opening Files

STEP

yaoi:

As with lists, tuples, dictionaries and so on, you're able to index individual characters of the text.

5

Extending this Further, you can use readlines() to grab all the lines of the text and store them as multiple lists. These can then be stored as a variable:

For example:

poem=openC(“C: \\Users\\david\\Documents\\poem. txt”)

read(5)

poem.

Lines=poem. readLlines()

Displays the first Five characters, while entering:

Lines [Q]

lines[1] lines[2]

read(5)

poem.

Will display the next Five. Entering (1) will display one character at a time.

Edit

File

Shell

Debug

File

-

[L& Python 3.7.0 Shell

Options

Window

L& Python

o

x

>>> poem=open ("C:\\Users\\david\\Documents\\poem. >>> read (5) poem. "I rem! >>> poem. read (5)

(Inte

Shell

Options

Debug

>>> lines [0] "I remember\n' >>> lines[1} ‘The dark woods, masking >>> lines[2]

txt")

‘ember!

"The grey clouds' leaden

>>>

>>>

sa

to

Similarly, you can display one line of text at a time by using the readline() Function. For example:

poem=openC“C: \\Users\\david\\Documents\\poem. poem. readLine()

poem.

Python

File

Edit

Debug

Window

everlasting arch; \n"

We can also use the for statement to read the lines of text back to us:

STEP 9

for lines in

Options

hills;\n’

poem=open(“C: \\Users\\david\\Documents\\poem. txt”)

Shell

Shell

slopes of sombre

a

poem:

print(lines)

x

-

Help

[&

Python 3.7.0 (v3.7.0:ibf9cc5093, Jun 27 2018, 04:06:47) (MSC v.1914 32 bit (Inte 1)J on win32 Type "copyright", “credits” or "license()}* for more information.

Fite

Python 3.7.0 Shell Edit

Shell

Options

Debug

Window

xremember\n'

x

a

Help

|

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)) on win32 Type “copyright”, "credits™ or “license()" for more information.

>>> poem=open ("C:\\Users\\david\\Documents\\poem.tzt"} >>> readline () poem. >>> poem. readline () ‘The dark woods, masking slopes of sombre >>>

(Inte

And, since this is Python, there are other ways to produce the same output:

readline()

3.7.0

x

Oo

Help

print(lines)

Will display the next line of text. [&

Window

for lines in lines:

txt”)

Will display the first tine of the text. And:

"I

-

3.7.9 Sheit

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.3914 32 bit 2)] on win32 Type “copyright”, "credits" or “license{}" for more information. >>> poem=open ("C:\\Users\\david\ \Documents\\poem. txt") >>> readlines () lines=poem.

Help

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:66:47} [MSC v.1914 32 bit 1)] on win3z Type “copyright”, “credits” oz "license()" for more information.

Edit

(Inte

|

>>> poemmopen ("C:\\Users\\devid\ \Documents\ \poem. txt”) >>> for lines in poem:

hills;\n'

print (lines) I remember The dark woods, masking slopes of sombre

Let's imagine that you wanted to print the text character at a time, as would an old dot matrix We can use the Time module mixed with what we've looked printer. at here. Try this:

As you may suspect, you can pass the readline() function into a variable, allowing you to call it again,

STEP 7

STEP 10

a

when needed:

poem=openC“C: \\Users\\david\\Documents\\poem. Line=poem. readlineQ)

txt”)

import time

Line [& File

poem=openC(“C: \\Users\\david\\Documents\\poem.

-

Python 3.7.0 Shell Edit

hills;

Shell

Debug

Options

Window

o

x

Help

Python 3.7.0 (v3.7.0:ibfScc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type "copyright", "credits” or “license()™ for more information. >>> poem=open ("C:\\Users\\david\\Documents\\poem. txt") >>> Line=poem. readline () >>> line "I remember\n' >>>

(Inte

txt”)

read) for lines in lines: printClines, end=””) time.sleep(.15)

Lines=poem. *

The output is Fun to view, and easily incorporated into your own code. UD

Fie

eresreenn Féa

no

Format

ote,

arnt

Creaments-Bahon

veatcem 5 EH 7E

Ran

Options

Window

Help

mge{)" tor more anformaticn. RESTART: C2/O3ers/derrs To

remeaber rhe

Gack woods, masking slopes

of

ehat xhuspered

arching, niila ke

cn

vi

www.bdmpublications.com



Manipulating Data

Writing to Files Being able to read external Files within Python is certainly handy, but writing to a file can be even more useful. Using the write() Function, you're able to output the results of a program to a file, which you can then use to read() back into Python, or as a text File For perusal later.

WRITE AND CLOSE The write() Function is slightly more complex than read(). Along with the filename, you must also include an access mode that determines whether the File in question is in read or write mode.

STEP1

Start by opening IDLE and enter the following (obviously entering your own username location):

t=open(“C:\\Users\\david\\Documents\\text.txt”, “w?) This code will create a text File, called text.txt in write mode, using the variable ‘t’. IF there's no File of that name in the location, it will

create one. If one already exits, it will overwrite [&

Python

File

Edit

3.7.0

Shell

Debug

Options

Window

Qo

x

-

Python 3.7.0 Shell

Fite

Edit

Shell

Debug

109 >>> >>>

file. This gives us the foundation for some interesting possibilities, perhaps the creation of your own log file, or even the beginning of

t.writeC“You awake in a small, square room. A Single table stands to one side, there is a Locked door in front of you.”)

an adventure game. [& File

Note, the 109, it’s the number of characters you've entered. Python 3.7.0 Shell Edit

Shell

Debug

Options

Window

Oo

x

Help

Python 3.7.0 (v3.7.0:lbf98cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte 2)] on win32 Type “copyright”, “credits” or “License(}” for more information. >>> t=open("C:\\Users\\david\\Documents\\text.txt", "w"} >>> t.write ("You awake in a small, square room. A single table stands to one sid e, there is a locked door in front of you.")} 109 >>>

|

«

Python 3.7.0 Shell Edit

Shell

x

oa

Debug

Options

Window

Help

Python 3.7.0 (v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte 2)] on win32 Type "copyright", "credits" or "License(}" for more information. >>> twopen("C:\\Users\\david\\Documents\\text.txc", "w"} >>> t.write("You awake in a small, square zoom. A single table stands to one sid e, there is a locked door in front of you.") 109 >>> >>>

t.cLose{}

-

Gb text Notepad

File

Edit

Format

a@

View

a

x

Help

in a small, square room. A single table stands to one side, there locked door in front of you.

You awake

www.bdmpublications.com

x

Oo

Help

IF you now open the text file with a text editor, you'll see that the line you created has been written to the

We can now write to the text file using the write() function. This works opposite to read(), writing lines instead of reading them. Try this:

File

Window

t.close()

STEP2

[&

Options

Python 3.7.0 (v3.7.0:1bf9ec5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte 1)) on win32 Type "copyright", "credits” or "License()” for more information. >>> t=open ("C:\\Users\\david\\Documents\\text.txt", "w%} >>> t.write("You awake in a small, square room. A single table stands to one sid e, there is a locked door in front of you.")

(Inte

>>>

-

|

file itself. Part of the write() Function is that we need to commit the changes to the File, we can do this by entering:

(L&

Help

Python 3.7.0 (v3.7.0; lbf9cc5093, dun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)1 on win32 Type "copyright", ‘credits™ or "License(}" for more information. >>> teopen("C:\\Users\\david\\Documents\\text.txt", “w")

3

t.close()

it-so be careful.

-

Shell

a

However, the actual text file is still blank (you can check by opening it up). This is because you've written the line of text to the File object, but not committed it to the

STEP

is

~

Cwansors QB at the end of the original line, instead of wiping the File and creating a new one. For example:

We can pass variables to a File that we've created in Python. Perhaps we want the value of Pi to be written to a file. We can call Pi from the Math module, create new file, and pass the output of Pi into the new file:

t=open(“/home/pi/Documents/text.txt”,”a”)

import math

STEP

To expand this code, we can re-open the file using ‘a’, for access or append mode. This will add any text

5

STEP 8

a

printC“Value of Pi is: “,math.pi) printC“\nWriting to a file now...”)

t.writeC*\n”) t.writeC* You stand and survey your surroundings. On top of the table is some meat, and a cup of water. \n”) -

Python 3.7 2 Shell

[&

Edit

File

Shell

Debug

Options

Window

a

[a

writePitoFile.py

File

Edit

-

Run

Window

Options

x

Oo

Help

import math

x

print ("Value of Pi is:

Help

Python 3.7.0 (v3.7.0;lbf9cc5093, dun 27 2018, 04:06:47) [MSC v.1914 32 bit (Inte 2)] on win32 Type "copyright", "credits" or "License()}" for more information. >>> teopen("C:\\Users\\david\\Documents\\text.txt™, "w"} >>> t.write("You awake in a small, square room. A single table stands to one sid

-

C:/Users/david‘Documents:Python/wntePitoFile.py (3.7.0)

Format

print ("\niiriting to

a

°, math.pi) file now...")

|

e, there is a locked door in front of you.") 169 >>> >>> >>>

t.ciose{)

twopen("C:\\Users\\david\\Documents\\ctext.txt",

t.write("\n"}

"a"

1

t.write("You stand and survey your surroundings. On top of the table is some meat, and a cup of water.\n")

>>>

We can keep extending the text line by line, ending each with a new line (\n). When you're done, finish the code with t.closeQ), and open the file in a text editor to see the results:

t.writeC“The door is

Fie

Edit

We also need to create

made

Debug

Cotions

Window

209

(1:

\pecumenta\ \text

Remember to change your file location to your own particular

Kou auske In a |@

door

you. surroundings. Or

solid

with iron st

oak pefsonee!

D> Rawrites"Tne door 1x ange of AoLia OME WIEN iron straps, It*s Bolted from th ontaide, loeting you in. You are a priaoner'\n®} aM

There are various types of file access to consider using the open() Function. Each depends on how the file is accessed, and even the position of the cursor. For example, r+ opens a file in read and write, and places the cursor at the start of A

the file.

File

6

ea

Shel

Debug

Options

Windom

2,7.9 (v9.7.0rib9ee6093,

win

Help.

DoD pmopen tawrbte("Cz (Adventure 17

Da» proverto

more

\(Decumenca\ \eeze, cant, Game!\n\a")

information. *E+*)

Window

Options

_Help

[mport math

to a

math.pi)

%,

file

now...")

STEP 10

To finish, we can use string Formatting to call the variable and write it to the file, then commit the !

\

nus


tawzate(*You stena ena survey your surzouscings. Gn cop of che table 18 acme meet cup oF water.\n")

-

File

print ("Value of Pi is:

ext, mo)

-

-

*“writePitoFite.py C:/Users/david/Documents/Python/writePitoFile.py (3.7.0)"

small, square room. A sing)

locked door in front of You stand and survey your 2 cup of water. The eade is of locking you in. You are a

2

“EB Python 3.7.0 shel)

new file to write Pi to:

system setup.

{39> tecdoset)

do> cecpen teaweate"\ar)

a

t=open(“C:\\Users\\david\\Documents\\pi.txt”, “w”)

1elp

Python 9.7.0 (v3.7.0:1bfSceSO8S, Jun 27 2088. 08:08:47) (HSC v.19I4 32 bat (Inte ~ on win32 Type “copyright, “credita™ ox “License for more information. ()" tat", j>>> eecpen(MCr\ Waera\ Wdavid\ \Documenta\ (Doo Cwektet"¥ou weake 40a smell, aquare\text room. A ingle table stands ro one aad fe, there 2 @ locked door in front of you.*)

[pom

variable called pi, and assign it the

a



coer

Shell

a

value of Pi:

pi=math.pi

of solid oak with iron strips. It’s bolted from the outside, Locking you in. You are a prisoner! .\n”) t.close(Q) Deas

Now let's create

STEP 9

STEP 6

Bee Fae

tail

forena

View

As you can see From the results, you're able to pass any variable to

Help

Adventure Game! a

small,

As

You awakedoor In in Front square a locked of you.room. You stand end survey your surromdings a cup of water, The door is made of solid oak with tro locking you in. You are a prisonent

a File. Dares Fle

E6e

thot

Shel ebug

proms ‘Window Help

2018,

(+ —eeneee pesto: of Fa dex [Yedee

[Mracaag to a

fale

fare ¥.194 93 tae

ents

~

Fle F

Et

Fema fun Cpbora eb

Windom

wate

Ae

22

Help

fox more storm

eres 9.a4usezennaee799

now,

Of PA

Divi beaapod fe toe tome ew

Wale of 4

tas 3,

1".

Carmes

taal

Hap

LASSORS 989793

www.bdmpublications.com



Manipulating Data

exceptions As your code begins to Form and lengthen, you'll naturally come across some exceptional circumstances that are mostly out of your control. Let’s assume you ask a user to divide two numbers, and they try to divide by zero. This will create an error, and break your code.

EXCEPTIONAL OBJECTS Rather than stop the flow of your code, Python includes exception objects, which handle unexpected errors in the code. We can combat errors by creating conditions where exceptions may occur.

STEP

You can create an exception error by simply trying to divide a number by zero. This will report back

1

with the ZeroDivisionError: Division by zero message, as seen in the screenshot. The ZeroDivisionError part is the exception class, of which there are many.

-

(& Python 3.7.0 Shell Edit

File

Shell

Debug

Options

Window

oa

x

Help

Python 3.7.0 (v3.7.0:lbfsce5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bic (Inte 1)) on win32 Type "copyright", “credits” or “license()" for more information. >>> 1/0 Traceback (most recent call last): File “", line 1, in

i/o

ZeroDivisionError: >>>

division by

zero

We can use the functions raise exception to create our own error handling code within Python. Let's assume your code has you warping around the cosmos, too much, however, results in a warp core breach. To stop the game from exiting due to the warp core going supernova, we can create a custom exception: oe

=f

raise ExceptionC“warp core breach”)

[i

-

Python 3.7.0 Shell

File

Edit

Shell

Debug

Options

Window

a

x

Help

Python 3.7.0 (v3.7.0:1lbf$cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)] on win32 Type "copyright", “credits” or "license()* for more information.

(Inte

Exception("warp core breach") call last): File "", line 1, in raise Exception(*warp core breach") Exception: warp core breach >>> raise

|

recent |Traceback (most

>>>

a

=o,

Most exceptions are raised

automatically when Python comes across something that’s inherently wrong with the code. However, we can create our own exceptions that are designed to contain the potential error and react to it, as opposed to letting the code fail.

tip

be

reeration

abvecioaescoe

of: try, except, else, where the code is held within try, then if there's an exception do something, or do something else.

-

L& “Untitled Fite

Edit

Format

Run

Options

Window

Help

try:

Insert your operations here -----> except Exception 1: If there is an exception do this

-----:

Tf there is another exception do this else: If there is no exception, then do this

YarcodeBncodale scr DntoateTrenalaceErrer Depreeationmerst st

fast +

on+ +

symtanterning TeerRarning Boruretarning TeporeMerning Unboodemerning

Bytesteraing +

www.bdmpublications.com

To trap any errors in the code we can encase the potential error within a try: block. This block consists

= strecsritmerne:

Resoareettersing

>

o

x

Exceptions

For example, using the divide by zero error, we can create an exception where the code can handle the error without Python quitting due to the problem:

STEP

5

try:

Naturally, we can quickly fix the issue by changing the “r” read only instance with a “w" for write. This,

STEP 8

as you already know, will create the file and write the content then commit the changes to the file. The end result will report a different

set of circumstances,

a=intCinputC“Enter the first number: “)) b=intCinputC“Enter the second number: “))

this case, a successful execution of the code.

in

ie

print(a/b)

WC

except ZeroDivisionError: printC“You have tried to divide by

else:

we, TETeELO” ‘eonaun

RESTART:

Etfors unable

zero!”)

no

RAL

0h

taemut

IN nee

12

Cpls

Wacko

Hay

oF CLiceRee()® For Moe LBtemMstion,

Savad\Docunwucs\PytHon\Tice PL\saoNptsen2.py C1\Couz9\ welve the Cote, Check permbsenenn,

peta:

Content Wratten te 1le

eewretally, Seve

wid

Documenta. Rate Pytheo\ a 3: ee fron mieremfully. day.

4 mow

PAexeepescaz.py

any.*

printC“You didn’t divide by zero. Well done!” Gi

-

Python 3.7.6 Shell Edit

Fite

Shell

Debug

Options

Window

Python 3.7.0 (v3.7.0: lb9cc5093, 1))] on win32 Type “copyright”, “credits” or

Fhe 64

oO

Fount

Weds 46 9

x

Help test, Yorw Norasd service will shectly cesusel

‘|

Help

Jun 27 2018, 04:06:47)

"license()" for

more

[MSC v.191

32

bit (Inte

information.

>>>

RESTART: C:\Users\david\Documents\Python\From Pi\exceptionl.py Enter the first number: 12 Enter the second number: 6 2.0 You didn't divide by zero. Well done!

int

>>>

RESTART: C:\Users\david\Documents\Python\From

Enter the first number: 12 Enter the second number: 0 You have tried to divide by zero!

a Finally: block, which works in a similar Fashion, but you cannot use else with it, Hint: You'll need to delete the textfile.txt File from your Folder.

LB exception! py CAUsers\david\Documents\Python\From Pi\exception| py (3.7.0)

Edit

Format

Run

Options

Window

Help

try:

try: txt = open C:\\Users\\david\\Documents\\textfile. txt” ; “r?) try: txt.writeC(“This is a test. Normal service will

a=int (input ("Enter the first number: *)) bint (input ("Enter the second number: ")) print (a/b) except ZeroDivisionError: print ("You have tried to divide by zero! ) else: print ("You didn't divide by zero. Well done!"

You can use exceptions to handle a variety of useful tasks. Using an example From our previous tutorials, let's assume you want to open a file and write to it:

try: txt = openC“C:\\Users\\david\\Documents\\textfile. txt” ; “r) txt.writeC“This is a test. Normal service will shortly resume!” print C“Error: unable to write the file. Check permissions”)

else: print (“Content written to file successfully. Have a nice day.”)

txt.close()

user that the permissions are incorrect.

File

try:

txt

C:\Users'

Format

Edit

=

Run

As before an error will occur as we've used the “r” read-only permission. IF we change it to a “w”, then the code will execute without the error being displayed in the IDLE Shell. Needless to say, it can be a tricky getting the exception code right the first time. Practise, though, and you will get the hang of it. [&

david

Edit

Options

Help

open{"C:\\Users\\david\\Documents\\textfile.txt", "r") a test. Normal service will shortly resume!")

except IOError:

print ("Error: unable

to write the file.

else:

print ("Content written

to file

Shell

Debug

Options

Window

a

bit (Inte

>>>

RESTART: C:\Users\david\Documents\Python\From Error: unable to write the file. Check permissions

Pi\exception3 py

>>>

RESTART: C:\Users\david\Documents\Python\From Pi\exception3.py Content written to file successfully. Have a nice day. >>>

Edit

Check permissions")

successfully.

Have a

try?

Format

Run

Options

Window

Help

= open("C:\\Users\\david\\Documents\\textfile.txt"™,

try: txt.write ("This is a test.

finally:

print ("Content written

txt.close()

to

x

Help

Python 3.7.0 (v3.7.0:ibfScc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 1)J] om win32 Type “copyright”, “credits” or “license()" for more information.

File

Documents Python\From Pixexception2.py (3.7.0)

Window

-

Python 3.7.0 Shell

[& exception3. py CAUsers\david\Documents\Python\From Pi\exception3 py (3.7.0)

txt.write ("This is

txt.close ()}

permissions”)

File

Obviously this won't work due to the file textfile.txt being opened as read only (the “r” part). So in this case, rather than Python telling us we're doing something wrong we've created an exception, using the lOError class, informing the

ey exception2.py

shortly resume!” finally: print C“Content written to file successfully. Have a nice day.”) txt.closeQ) except I0Error: print C“Error: unable to write the file. Check

STEP 10

except I0Error:

-

You can also use

STEP 9

>>>

File

coe!

Pi\exceptionl.py

Normal service

file

will

successfully.

"w"™)

shortiy resume!") Have a nice

day.")

except I0Error!

print {"Error: unable to write the file.

Check permissions")

nice day.")

www.bdmpublications.com



Manipulating Data

Python Graphics While dealing with text on the screen, either as game or ina program, is perfectly Fine, there comes a time when a bit of graphical representation wouldn't go amiss. Python 3 has numerous ways in which to include graphics, and they're surprisingly powerful too. a

GOING GRAPHICAL You can draw simple graphics, lines, squares and so on, or you can use one of the many Python modules available to bring out some spectacular effects.

STEP

One of the best graphical modules to begin learning Python graphics is Turtle. The Turtle module is, as

1

The command turtle.circle(50) is what draws the circle on the screen, with 50 being the size. You can play around with the sizes if you like, going up to 100, 150, and beyond; you can draw an arc by entering turtle. circle(s@, 180), where the size is 50, but you're telling Python to only draw 180° of the circle.

STEP 3

the name suggests, based on the turtle robots used in many schools that can be programmed to draw something ona large piece of

paper on the floor. The Turtle module can be imported with:

import turtle. (&

Python

File

Edit

3.7.0

-

Shelt

Shell

Debug

Options

Window

x

oO

Help

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) (MSC v.1914 32 bit 1)} on win32 Type "copyright", "credits" or "license()" for more information. >>> import turtle

(Inte

/

>>>

STEP 2 import

Let's begin by drawing a simple circle. Start File, then enter the following code:

a

New

turtle

The last part of the circle code tells Python to keep the window where the drawing is taking place to remain open, so the user can click to close it. Now let’s make a square: gescemme

turtle

turtle.circle(5@)

import

turtle.getscreen()._root.mainLloop()

printC“Drawing a square...”

As usual press F5 to save the code and execute it. This will open up a new window and the ‘Turtle’ will drawa circle.

for t in range(4):

Lh

Goch

=A

de

Dict

turtle. forward(100) turtle. LeftC9@)

turtle.getscreen()._root.mainloop() You'll notice we've inserted

a

loop to draw the sides of the square.

seanni)® for mare Aatornarien,

earere tere (90)

9

www.bdmpublications.com

an Tate Gps

-

a

*

Python Graphics

STEP

To add some colour, we can add a new line to the Square code:

5

Now let’s get the code by importing the pygame module:

yu Sor:

import pygame

turtle. color(“Red”)

pygame

.initC)

And we can even change the character to an actual turtle by entering:

img =

turtle. shapeC“turtle”)

white = (255, 255, 255) = 900 h = 452

Bee

phos

Gly

Tan

Fas

Format

Cetens

Wedow

jh vu tems

img



aczeen.

rarele. forwesa i100)

)

-_rooe mainioae

()

STEP 9

complex, as you begin to master the way it works. Enter this example:

turtle import * colorC‘red’, ‘yellow’)

pygame>> import calendar >>> for name tr calendar.month_nane:

print

n

Help

bit (Intel)]

on win32

(name)

January February

Interestingly we can also list the number of days in month by using a simple For loop:

STEP 6

a

import calendar

cal=caLlendar.TextCalendarCcalendar. SUNDAY) for i in cal.itermonthdays(2019, 6): printdi) se *“daysinmenth.py Edit

File

Format

C".Users\.david\

Run

Options

import calendar cal=open(“C:\\Users\\david\\Documents\\cal .html”, “w’)

c=caLlendar.HTMLCalendar(Ccalendar. SUNDAY) cal.write(c.formatmonth(2019, 1))

Documents\Python\From Pi\daysinmonth.py (:

Window

The Calendar module also allows us to write the Functions in HTML, so that you can display it ona website. Let’s start by creating a new file:

Help

cal.close()

This code will create an HTML File called cal, open it with and it displays the calendar for January 2019.

import calendar

cal=calendar.TextCalendar (calendar .SUNDAY) for in cal.itermonthdays (2019, 6): print (i)

i

Me

FE crseversstecmeniens

67

You can see that code produced some zeros at the beginning, this is due to the starting day of the

-

\[@ Python 3.7.0 Shell i

|File

Edit

Shell

Debug

Options

Window

Help

Oo

21

15 16

17

223 2

Opbons

Window

Ilelp

incr

\\Doeza\\david\ \Doounenta\\car-neay! e~calendar. ETMLCalendar (calendar. SUNDAY} (2019, 1)}

O

@

=

1839

2526

2930

STEP 10

week, Sunday in this case, and overlapping days From the previous month. So, the counting of the days will start on Saturday 1st June 2019 and will total 30 as the output correctly displays.

fun

calendar

ay nen

WUR

13:14

A

Tormat

browser

cal.vrite cal.close()(.formatmonth

Jawaary 2019 SanMonTeoWedThuFriSat

20

Edt

ame IEE

D RetinAisersidaid/Oocsll

a

Of course, you can modify that to display a given year as a web page calendar:

import calendar

year=intCinputC“Enter the year to display as x

a

“))

webpage:

cal=open(“C:\\Users\\david\\Documents\\cal .html”, “w’) cal. .writeCcalendar .HTMLCaLendarCcalendar .MONDAY) . formatyear(year))

cal.close()

This code asks the user for a year, then creates the necessary webpage. Remember to change your File destination.

» 5

DOM

7a Mw

ip202k DN

DOM

18

25 26

2 www.bdmpublications.com

85

Using Modules

S Module The OS module allows you to interact directly with the built-in commands Found in your operating system. The commands can vary, depending on the OS on which you're running the module, as some will work with Windows whereas others will work with Linux and macOS.

INTO THE SYSTEM One of the primary features of the OS module is the ability to list, move, create, delete and otherwise interact with files stored on the system; making it the perfect module for backup code. We can start the OS module with some simple functions to see how it interacts with the operating system environment that Python is running on. IF you're using Linux, or the Raspberry Pi, try this:

STEP

1

import os

The Windows output is different as that’s the current working directory of Python, as determined by the system. As you suspect, the os.getcwd() Function is asking Python to retrieve the Current Working Directory. Linux users will see something along the same lines as the Raspberry Pi, as will

STEP 3

macO$S users.

home=os .getcwd()

printChome)

-

Python 3.5.2 Shell

+,

File Edit Shel Debug Options Window Help

autem Bile

Edit

RRC

Est

C

Python 3.5.2 (default, Nov 17 2016, 17:65:23) [GCC 5.4.8 26168689) on Linux Type “copyright”, "credits" or "License{)" for more information. >>> import os >>> home=os.getcwd()

Shell Debug Qpticns Window Help

Python 3.5.3 (default, Sep 27 2018, 17:25:39} (Gec 6.3.0 26176516] on linux Type “copyright”, "credits" or "license()" for more information. >>> import Os

>>>

)

>>>

The returned result, From printing the variable home, is the current user’s home folder on the system. In Step 1 that’s /home/pi, it will be different depending on the user name you login as, and the operating system you use. For example, Windows 10 would output: C:\Users\david\AppData\,

-

UB Python 3.7.5 Shell Edit

Shell

Debug

Options

Window

Python 3.7.0 (v3.7.0:lb$cc5093, 1)] on win32 Type "copyright", "credits or >>> import og

browser=os.system(‘start chrome’) Qa

x

"license()" for

see

Wom

Help

dun 27 2018,

Another interesting element to the OS module is its ability to launch programs that are installed in the host system. For instance, if we wanted to launch the Chromium Web Browser from within a Python program we can use the command:

import os

Local\Programs\Python\Python37-32.

File

print (home)

/home/david

>>> homesos.getcwd{ >>> print (home) fhome/pi. 22>

04:06:47) more

[MSC

v.1914 32 bit (Inte

sl

Help

093, Jun 27 2016, O4r06242) (MSC 7.1914 32 Bax (Ince

~

e

&

fom Far

From!

information.

>>> home=os.getewd (} >>> print (home)

C:\Users\david\AppData\Local\Programs\Python\ Python37-32 >>>

Goo ‘Seach Goagie

a owone

a

86

www.bdmpublications.com

of

type

a

URL

v tome |

a

QB The os.system() Function is what allows interaction with external programs you can even call up previous Python programs using this method. You will obviously need to know the full path and program File name For it to work successfully. However, you can also use the Following: —

import os

os.system(‘ ‘start feed/music”’)

chrome

//www. youtube .com/

Being able to manipulate directories, or folders if you prefer, is one of the OS module’s best Features. For example, to create a new directory you can use:

STEP 8

import os os.mkdirC*C:\\BDM\\NEW”) This creates a new directory within the specified Directory (C\BDM\), named according to the object in the mkdir Function (C\BDM\NEW).

ate 10m

STEP 9

You can also rename any directories you've created by entering:

import os os.renameC(“C:\\BDM\\NEW”, “C:\\BDM\\OLD”) To show that the OS module works roughly the same across all platforms, we need to specify the name of the app according to the OS on which you're working. For example, on a Raspberry Pi you would enter:

import os os.system(‘chromium-browser

Or delete them...

import os os.rmdirC*C:\\BDM\\OLD”) a

‘eae eine

Chick excess

3S

Deophice (Team

DOWIOID

we

IOS

-

BOM

(3 Fyn 2090

“http://

Fie

"

ae

marc

BD wWoepen

bdmpublications.com/”’)

=

"F} Documnenes

FO Commtoeds ab

Muie

_€&t

Shel

Options

Debuy

9

fled

s 90:

\

("C1

ODEN

\

WERTW

*

AEN) ANFRY,

(7c: 1 (BOKoL0"f *Ct\\EH ALON)

jename

mak

x

Window

Jun 27 ZL, OF:OG:eT) (NSC V-ADLE 32 BEE Pytncn 3.7.0 (v9.7.0: iDENCCHU93, 35] on wand2 + or “Lacensecn for moce sntormation. Ftwwe "copyesans*,

\uoRe\

Another module that goes together with OS is shutil. We can use the Shutil module, together with OS and time, to create a time-stamped backup directory, and copy files into it:

STEP 10

import os,

anlar

Note, in the previous step’s example the use of single and double-quotes. The single quotes encase the entire command, and launching Chromium, whereas the double quotes open the specified page. You can even use variables to

open webpages:

import os

a=(‘start

chrome

“http: //www.google.co.uk”’)

os.system(a)

shutil,

time

t=str(time. strftimeC“%Y -%m-%d %H-%M”)>) #Path to root_src_dir = r’C:\\BDM\\Documents\\’ the source directory root_dst_dir = ‘C:\\Backup\\’ + t #Path to the backup directory for src_dir, dirs, files in os.walk(Croot_src_dir): dst_dir = src_dir.replace(root_src_dir, root_ dst_dir, 1) if not os.path.exists(Cdst_dir): os.makedirs(Cdst_dir) for file_ in files: src_file = os.path.join(src_dir, file_) dst_file = os.path.joinCdst_dir, file_) if os.path.exists(Cdst_file): os.remove(dst_file) shutil.copyCsrc_file, dst_dir) print(“>>>>>>>>>>Backup complete>> import random >>> [st=["David", 46, "Avengers", 3245.32, *Pi*, True, 3.14, "Python"] >>> rnd=random. choice >>> print (rnd)

(Inte

>>> random. shuffle >>> print (lst)

(1st)

(Pit, 3.14, ‘Avengers’,

printC“Tails:”, output[“Tails”]) fornia

La

Tot

fae

3.14

(1st)

°

Shel

~

Gonent

Debug

Window

RESTART: Heads: 5022

Tatiar

ou

Docunenta\ Pythoa\ trom

~

Pi\headrtasis

Zis

Yauia: 204l

["David', 'Avengers', 3245.32, True, 'Pi', 3.14, 'Python',

grant

Henan: 3006 Tatler 4596

46}

>>>

\Usera\davta\Docuneors\Pychon\From

Opbems

Wind



Help

STania"203 td)

range(aoovon=

a an

output pant

Headat 4459

C2

Ru

ovinelast (output. .keye

py

46A8,

nesTaRT:

sheet dang: Becuments Python. Trem

furmnet

ine sct ransom 4

RESTART: C:\Uaeza\david\Docuneata\Pythoa\From Pi\beadstaila.py

*Python', ‘David', True, 46, 3245.32)

kt

roe

Bie (Tace

B7

epee

revere

Ub

Hep

Fychen 3.7.0 (wa.7-Oelbraaesos3, Sun 37 3018, O408047) NEE w.I914 296 68 wa032 Type “oopysight™, “caedita™ of *Licanset}" for acre information.

(1st)

>>> random. shuffle >>> print (1st)

output [Lrandom. choiceCcoin)]+=1

x

Qa

[random. choice {ocdn) Joe1 »

(cueade:*, ("Hesda™| (Taalas", output ovepue*tasae"]),

Pi\headarat la py

RESTART: C:\Uaers\auris\Documencs\Pychon\ P1\headscai}s.py Prom

Meage: «nay Taita: 5072 1

Sais

C:\Usere\davia\Docunents\Pychon\froe

Pi\needsteils py

Using shuffle, we can create an entirely random list of numbers, for example, within a given range:

import random

Llst=[[i] for I in range(2@)] random. shuffleC1Lst)

Here's an interesting piece of code. Using a text file containing 466 thousand words, we can pluck

STEP 10

printCLst) Keep shuffling the list, and you'll have from 0 to 20 every time.

a

different selection of items

generated number of words from the file (text File Found at: https://github.com/dwyl/english-words):

a user

import random [&d Python 3.7.0 Shell

File

Edit

Shell

Debug

Options

Window

Help

Python 3.7.0 (v3.7.0:lbf9cc5093, Jun 27 2018, 04:06:47} [MSC v.1914 32 bit 1)} on win32 Type "copyright", "credits" or "license()" for more information. >>> import random >>> lat=[{i] for i in range (20)} >>> random. shuffle >>> print (1st)

(Inte

printC“\nUsing a 466K English word text file I can pick any words at random.\n”) wds=intCinputC“\nHow many words shall I choose?

(1st)

(81, [19], [13], (17), [10], [5], [1], [12], [3], [9], [2], [16], [0], [18],

1, (143, (223, >>>

print(“>>>>>>>>>>Random Word Finder>> >>> from >>>

tkinter

import

or

The first line Focuses on the newly created window. Click back into the Shell and continue the other lines.

x

oa

Help

“license()" for

more

(inte

«

Python 3.7.0 (v3.7.0:lbf$cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit

information.

*

52d do

Although it’s not recommended to import everything from a module using the asterisk, normally it won't window, ' enter:. anyy harm. : Let’s begin byby creating 9 a basic GUI gin

wind=Tk()

File

~

Python 3.7.0 Shett

Edit

Shell

Debug

Options

Window

.

from

.

import tkinter tkinter import *

oO

Pittkintercodel py (3.7.0)

-

as

tk

x

Help

(Inte

def clickQ): printC“You just clicked me!”) btn[“command” @

tkintercodel.py Edit

Format

-

]=click

C:\Users'\davidsDacuments’Python\From Run

Options

Window

import tkinter as tk from tkinter import *

btn=Button () ben. pack()

btn["text”)="Hello everyone!" def click(}: print ("You just clicked me!*) ben{"command"]*click

www.bdmpublications.com

New File:

btn[“text”]="Hello everyone!”

File

90

a

Then add some button interactions:

Python 3.7.0 (v3.7.0: lbf9ccS093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)} on win32 Type "copyright", “credits™ or "lice: se()" for more information. >>> import tkinter as tk >>> from tkinter import * >>> wind=Tk() >>>

We can combine the above into

btn=ButtonC) btn. pack()

This creates a small, basic window. At this point, there’s not much else to do but click the X in the corner to close the window. [&

(Inte

1)}] on win32 Type "copyright", “credits™ or "license()}" for more information. >>> import tkinter as tk >>> from tkinter import * >>> btnsButton() >>> brn.pack(} >>> btn["text"J="Hello everyone!” >>>

Help

Oo

x

Tkinter Module

Save and execute the code from Step 5, anda window will appear with ‘Hello everyone!’ inside. IF you click the Hello everyone! button, the Shell will output the text ‘You just clicked mel’. It’s simple, but shows you what can be achieved with a few lines of code. File

Edit

Shell

Debug

Options

Window

Help

Python 3.7.0 {(v3.7.0:lbf9ce5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit 1)} on win32 Type "copyright", "credits" or "license()" for more information. >>> import tkinter as tk >>> from tkinter import *

(Inte

btn=Button ()

>>> >>> >>> >>>

btn.pack()

btn["text"]="Hello

e

RESTART: C:\Users\david\Documents\Python\From

>>> You just clicked me! You just clicked me! You just clicked me! You just clicked me!

We can create radio buttons too. Try:

yu Sor:

tkinter import

from

root = TkQ) v = IntVarQ

LabelCroot, root.titleC(“Options”), text=”””Choose preferred Language:”””, justify = LEFT, padx = 20).packQ) RadiobuttonCroot, text="Python”,

a

padx = 20,

Pi\tkintercodel.py

. packCanchor=W)

o

RadiobuttonCroot,

x

text="C++”,

Hello everyone!

padx = 20,

variable=v,

STEP6

We can also display both text and images within a Tkinter window. However, only GIF, PGM, or PPM

formats are supported. So Find an image, and convert it before using the code. Here’s an example using the Raspberry Pi logo:

tkinter import

*

value=2) .packCanchor=W)

mainloop() And we can create check boxes, with buttons, and output to the Shell:

oi

root = TkQ) Logo = PhotoImageCfile=”C: \\Users\\david\\DownLoads\\

from

wl = LabelCroot, root.titleC“Raspberry

def var_statesQ):

PiLogo.gif”)

Pi”),

The Raspberry Pi Foundation is a UK-based charity that works to put the power of computing and digital making into the hands of people all over the world. We do this so that more “””

content =

people are able to harness the power of computing digital technologies for work, to solve problems that matter to them, and to express themselves creatively. “”” and

LabelCroot,

justify=LEFT,

padx = 10,

text=content) .pack(side=”Left”) root .mainlLoop()

Sais

The previous code is quite weighty, mostly due to the content variable holding a part of Raspberry Pi’s About page, from the company website. You can obviously change the content, the root.title, and the image to suit your needs. Leer

Lacemerese File

Edit

Format

Run

Ukimter

ae

Python from

os

Option:

Window

Br

esneeeznaes peed

TkO)

world.

Label

(roe,

textucontent) -pack (sides -mataloop() @

printC“Warrior: %d,\nMage:

%d”

%

Cvari1.getQ),

var2.getC))) LabelCroot, root.titleC(“Adventure Game”), text=">>>>>>>>>>Your adventure role Save As. Name this minimath.py and save it in the same location as the original basic_math.py program. Now close the minimath.py window, so the basic_math.py window is left open.

+

( Create Your Own Modules Back to the basic_math.py window, at the top of the

utilise the newly created Function definitions:

*

from minimath import

if

This will import the Function definitions as module. Press F5 to save and execute the program, and see it in action. a

Python Shell

Ld

choice == ‘1’: printCtimestwo(num1))

elif

choice == ‘2’: printCtimesthreeCnum1))

elif

choice == ‘3’: printCsquareCnum1))

3.7.0

0

shel

Cot

Fae

Pythin 3.7.8 (v3.7.0: 1bFSra:hO8a, dun

27 2018,

04:06:47)

(MSC

v.1914

92

m

We

on wind2

2))

Type "copyright",

“credits”

oz

“licensc{}" for

moze

Finally, we can now create a range of if statements to determine what to do with the number, and

STEP 9

code enter:

information,

minimath inp

(timeatwot2)) print

print

(timenthiee(3}) (square(4)) (power

(5,3))

elif

>I

choice num2 =

==

‘4’:

intCinputC“Enter second number:

“))

printCpower(Cnum1, num2))

else: printC“Invalid input”)

& *testmath. - G/Users/david/Documents/Python/testmath.py (3.7.0}* py

Fite

Format

Edit

Run

Options

from minimath import

We can now make the programa little more advanced, by utilising the newly created module to

printC“Select operation. \n”)

choice = input ("\nEnter choice (1/2/3/4):*)

printC“1.Times by two”) printC“2.Times by Three”) printC“3.Square”) printC“4.Power of”)

numl =

print (timestwo (num1)) elif

(1/2/3/4):”)

+

chutee (37279709)

'3':

==

'4':

int(input ("Enter second

number:

"))

(power (numl, num2))

print ("Invalid input”)|

|

Now we can add the user input to get the number the code will work on:

STEP 8 numl =

=

print

of")

taenter

1.f choice num2

fquare*)

input

'2':

print (square (numl))

Print i*Select operation. \n"} print Dy two! (*1.Times peat (*2 Times by Three") (*4.fower

==

choice =

-

chotce

choice

print (timesthree (numl1)})

(7.0) Ud testrmath gy Citsers/demd/DocumentyPythorvtestmath py

(93

int (input ("\nEnter number: "))

if choice =

choice = inputC“\nEnter choice

ant

Help

print ("Select operation.\n")} print("1.Times by two") print ("2.Times by Three") print ("3.Square") print ("4.Power of")

its Full. Let’s include some user interaction. Start by creating a basic menu from which the user can choose:

Print

Window

*

intCinputC“\nEnter number:

“))

This will save the user-entered number as the variable num1.

ie *testmath, py File

Edit

-

Note that for the last available options, the Power of choice, we've added a second variable: num2. This passes a second number through the function definition called power. Save and execute the program to see it in action.

STEP 10

Ci‘Users/david/Documents/Python/testmath.py (3. 7.0)*

Format

Run

Options *

Window

Help

"from Minimath import

print ("Select operation.\n")} Print ("L.Times by two") print ("2.Times by Three”) Print ("3.S5quare™) print ("4.Power of} choice = input ("\nEnter choice [(1/2/3/4):"} numl = int (input

("\nEnter number: *)) meer canoe

1/2946

mates moet § (ents? second cwbert 4

a3

3

_

—_ www.bdmpublications.com

97

98]

Index

www.bdmpublications.com

66]

Woo'suo}esI}qndwipq

mmm

Pulm J04 SOR Bebe

gs

CEN

Giessadau

wa

melee emeltm

lt

elle)

ay} Je SYOO} UOIZAS SIYL

AT

Tt h roe alter arab aol a2eds dy] pue UONeINpe ‘Hulyueq

VPM

RNR

Tm let

‘suoieoidde ‘suiajsAs Buneiado EY) Ren Lm Lm Ell tales) reo)

]Njysamod pue uaidijjo ue sl ++5

pelt tele LR PiU) ele) ay

eo

MEM CL LU aM

B]QeJISAP JO SWJa] UI ‘NOA JOJ PyJOM Mau a]OYM e suado ++ Ul apod 0}

oT: Bes ete os

ee

Be

Olt

JO S$Q>eW ‘smopuIM Buisn 3J,noA

Const)

AE TUe TUT [oN to wae pel tcon) JHOK dn samod nok uayM NOA jo yuo

Ltt

Mie Meola lost| STE mode to) BurwwesBosd Buizewe ue si ++5

BD

Introducing C++

Why C++? C++ is one of the most popular programming languages available today. Originally called C with Classes, the language was renamed to C++ in 1983. It’s an extension of the original C language, and is a general purpose object-oriented (OOP) environment. C EVERYTHING Due to both the complexity of the language and its power and performance, C++ is often used to develop games, programs, device drivers, and even entire operating systems. Dating back to 1979, the start of the golden era of home computing, C++, or rather C with Classes, was the brainchild of Danish computer scientist Bjarne Stroustrup, while working on his Ph.D thesis. Stroustrup’s plan was to Further the original C language, which had been widely used since the early seventies.

C++ proved to be popular among the developers of the 80s, since it was a much easier environment with which to get to grips, and, more importantly, it was 99% compatible with the original C language. This meant that, beyond the mainstream computing labs,

regular people who didn’t have access to the mainframes and large computing data centres could use it.

C++’s impact in the digital world is immense. Many of the programs, applications, games, and even operating systems are coded

using C++. For example, all of Adobe’s major applications, such as Photoshop, InDesign and so on, are developed in C++. You will Find

that the browser you use to surf the Internet is written in C++, as well as Windows 10, Microsoft Office, and the backbone to Google’s search engine. Apple’s macOS is written largely in C++ (with some other languages mixed in depending on the Function), and the likes of NASA, SpaceX, and even CERN use C++ For various applications, programs, controls, and umpteen other computing tasks. As well as being an easier addition to the core C language, C++ is also extremely efficient and performs well across the board. This higher level of performance over other languages, such as Python, BASIC and such, makes it an ideal development environment for modern computing; hence the aforementioned companies using it so widely.

C++ code is much Faster than other

programming languages.

wide

Teh

Beis

Jace

11

Bet Bet

AsPrime ~

false;

hreak:

“This as

4

prime number":

19 not a prime number

x fioks

x

ASearchveass Line

stele)

www.bdmpublications.com

Hessage

x

Acer x) Qaatin

x P

wuld messages

x)

Acoothekweate

x A Oathedesteresse:

>

Why C++?

- Visual Studio Community 2017 (15.0.26223.1)

Installing

Individual components

Workloads

Language packs

Windows (3)

|

|

Summary

Universal Windows Platform development MBM) Create applications for the Universal Windows Platform with C#, V8, JavaScript, or optionally C++.

IEEE

[my |

|

-NET desktop development

v Desktop development with C...

Build WPF, Windows Forms and console applications using the NET Framework,

included

|

|

v

Desktop development with C++

te

Visual C++ core desktop features

Optional

VC++ 2017 v14} toolset (x86,x64) C++ profiling toois

Build classic Windows-based applications using the power of the Visual C++ toolset, ATL and optional features like MFC and...

Windows 10 SDK (10.0.14393.0) Visual C++ tools for CMake Visual C++ ATL support

Web & Cloud (4)

Windows 8.1 SDK and UCRT SDK

ASP.NET and web development Build web applications using ASP.NET, ASP.NET Core, HTML, JavaScript, and CSS,

\ I

Windows XP support for C++

Azure development Azure SDK. tools, and projects for developing cloud apps and creating resources.

MFC and ATL support (x86 and x64)

C++/CU support Clang/C2 (experimental) Standard Library Modules

Data storage and processing Connect, develop and test data solutions using SQL Server, Azure Data Lake, Hadoop or Azure ML

development

)_Nodeds Build scalable network applications

using Nodejs, an asynchronous

event-driven JavaScript runtime. |

|

@

the By continuing, you agree to the :cerse for Visual Studio editior you selected, We also offer the

ability to download other software wth Visual Studio. This software is ‘icensed separately, as set ‘out in the 3rd Party Notices or in its accompanying license, By contiruing, you also agree to those licenses.

Mobile & Gaming (5)

Microsoft's Visual Studio is a great, free environment in which to learn C++.

C++ puts the developer in a much wider world of coding. By mastering C++, you will find yourself being able to develop code for the likes of Microsoft, Apple and so on. Generally, C++ developers enjoy a higher salary than programmers of some other languages, and, due to its versatility, the C++ programmer can move between jobs and companies without the need to re-learn anything specific.

You will discover, as you become a more advanced coder, that many of the developers in various coding jobs around the world tend to use pre-designed development engines. For example, when creating games, the likes of Bethesda, the team behind Oblivion and Skyrim, utilise 3D game engine called The Creation Engine. This enables a

the team to quickly create animations, characters, items, terrains, rooms, and just about everything else you'd see in the game. The

engine itself has been modified to make the most of the current graphics card hardware, and computer or console processing power. These engines are mostly written in C++, and when making

improvements to the engine, or when creating a new game, if the developers want to add something that the engine can’t do, they will use C++ to create the new content or link between two

different engines. The end result, of course, is game that contains the latest graphical technology, while being seamlessly bound together with some pretty clever C++ coding. a

Getting to use C++ is quite easy, all you need is the right set of tools in which to communicate with the computer in C++, and you can start your journey. A C++ IDE is free of charge, even the immensely powerful Visual Studio From Microsoft is freely available to download and use. You can get into C++ from any operating system, be it macOS, Linux, Windows, or even mobile platforms. So, to answer the question of Why C++, the answer is because it’s Fast, efficient, and developed by most of the applications you regularly use. It's cutting edge, and a Fantastic language to have mastered.

Indeed, the operating system you're using is written in C++.

Windows 10

Mac

debian

ubuntu www.bdmpublications.com

Introducing C++

C++ is one of the top programming languages in the industry. It’s quick, powerful, and used by nearly every major tech and gaming company in the world. Here’s some interesting Facts about the rather wonderful C++. e

.

C++ is one of the

eeeeoeoeceonseeoeeeoneeoneeen

Mp

e NASA, CERN, MICROSOFT, |

&

IN

ANIMATION PROCESSES.

C++ has influenced other

3D ANIA ATION, MOD ELLING,

programming languages, such as C# and Java.

ULATIONS

AND

ua,

development of all kinds of technical and commercial software.

ORACLE, PAYPAL, LINKEDIN, AMAZON AND THE MILITARY USE C++.

C++ IS USED F REQUENTLY

CI

predominant programming \anguages for the

AL L UTILISE C++. |

Alot of the Linux operating system is coded ing C++, therefore youc ‘ould say that most oft e world’s Internet ho sting servers are availabl e thanks to C++.

SUPERCOMPU ING USES C++ CODE TO CALCULATE VASTAMOUNTS OF DATA, INCLUDI NG THE NASA-BASED SUPERCOMPU’ ING FARM THAT RUNS SIMULATIONS F THE UNIVERSE. :

www.bdmpublications.com

0

/

More then 70% of all

esa]

,tadng/sknown as (HFT), and the software



responsible is written in C++ to make use of its high speed.

Onn =

Google, Quora, Stack

Ss =

Exchange, eduCBA,

StackOverflow, stackShare,

= =

AppDynamics

g

C++ Facts & Figures

The Xbox

operating system . uses C++ as its backbone.

Gaming is one of the biggest users of C++. It handles the complexities of 3D games, supports multiplayer options, and enables intensive CPU and

z

sS

Sy

Many database applications are built using C++, such as MySQL, it’s also used by Wikipedia, Yahoo and YouTube,

Google Chrome, Mozilla’s Firefox, and even Microsoft's Edge web browsers are coded in C++.

GPU hardware Functions. i CH

Oth

used in computer networking as the main code behind the

Programmable Logic Controller, connecting servers, processors, other ardware, an owen

Windows 95, 89, 2000, XP, 7, 8.1 and 10, as well as Microsoft Office, use C++ as the backbone programming language of choice.

vabdles,

PERCENTILE SALARY FOR A UK-BASED C++ DEVELOPER IS

1

20,000

MRI scanning machines and Computer Aided Design all use C++ to help with the enhanced imagery produced by these systems.

oe

s =

\

Sources: ITJobsWatch,

AN

“Uy,

Adobe's

z= stable of products ge

%

are developed using C++.

2 53

my

The Unreal 4 Engine, which is coded in C++, is used For hundreds of games, including Fortnite.

es

Basse

FLIGHT CONTROL SYSTEMS IN MODERN AIRCRAFT, INCLUDING MILITARY AIRCRAFT, USE C++.

www.bdmpublications.com

eek]

Will Need C++ SETUPS As most, if not all, operating systems have C++ at their core, it stands to reason that you can learn to program in C++ no matter what OS you're currently using.

|_|

COMPUTER

Unless you fancy writing out your C++ code by hand on a sheet of paper (which is something many older coders used to do), then a computer is an absolute must have component. PC users can have any recent Linux distro or Windows OS, Mac users the

latest macOS.

|_|

*

Conate

gw

appietion iis We,

eppeennt

Project

torent

AN IDE

As with Python, an IDE is used to enter and execute your C++ code. Many IDEs come with extensions and plugins that help make it work better, or add an extra level of Functionality. Often, an IDE will provide enhancements depending on the core OS being used, such as being enhanced for Windows 10.

tet

elasonld

Publ ce!

ueabewuiegtigg Ww

:

op

‘Cipatonost

a

|_|

COMPILER

A compiler is

program that will convert the C++ language into binary that the computer can understand. While some IDEs come with a compiler built in, others don’t. Code::Blocks is our favourite IDE that comes with a C++ compiler as part of the package. More on this later.

|_|

a

TEXT EDITOR

Some programmers much prefer to use a text editor to assemble their C++ code before running it through a compiler. Essentially you can any text editor to write code, just save it with a .cpp extension. However, Notepad++ is one of the best code

text editors available.

| _] INTERNET ACCESS oe

deme

arog

Encosng

Yew

6

namespace sed?

sad -

Bi De

While it’s entirely possible to learn how to code on a computer that’s not attached to the Internet, it’s extraordinarily difficult. You will need to install the relevant software, keep it up to date, install any extras or extensions, and look For help when coding. All of which require access to the Internet.

wectorer

>a2

liste (

we He

5

Range baned for owe

[| TIME AND PATIENCE

Yes, as with Python, you're going to need to set aside significant time to spend on learning how to code in C++. Sadly, unless you're a genius, it’s not going to happen

overnight, or even a week. A good C++ coder has spent many years honing their craft, so be patient, start small and keep learning. 104

www.bdmpublications.com

You Will Need

(Equipment

OS SPECIFIC NEEDS C++ will work in any operating system, however, getting all the necessary pieces together can be confusing to some OS specifics For C++.

As we've mentioned previously, good IDE is Microsoft's Visual Studio. However, a better IDE and compiler is Code::Blocks, which is regularly kept up to date with a new release twice a year, or so. Otherwise Windows users can enter their code in Notepad++ then compile it with MinGW — which Code::Blocks uses.

Linux users are lucky in that they already have a compiler and text editor built into their operating system. Any text editor

will allow you type out your C++ code, when it’s saved with .cpp extension, use g++ to compile it. Cede cpg

Wen

Sears

Dpoe®Aas

Touts

a

a

-Huvcuments

Qccurmerts Help

van

ag

RASPBERRY

PI

TANG

The Raspberry Pi’s operating system is Raspbian, which is Linux based. Therefore, you're able to write your code out using a text editor, then compile it with g++ as you would in any other Linux distro.

Mac owners will need to

download and install Xcode to be able to compile their C++ code natively, Other options for the macOS include Netbeans, Eclipse or Code::Blocks. Note: the latest

Code::Blocks isn’t available For Mac due to a lack of Mac developers. mee

eee

ee

eee

Cee

RE

PEPE See UC ECS

Cee ee eee

fort

newcomer, Here's

WINDOWS

LINUX

Fie

a

FCC

Project Liporer

meyeee.

=o

+

New

Go tate Open 0 hae Window

index

‘uild Configurations

Target

‘ulld

Projeet

Cheae Project

Remove trom Cantext cs



—e

———

.

— —_———

‘ Goagie Configure Properties Resource Configurations.

MacBook Air

www.bdmpublications.com

ate)

Introducing C++

How to Set Up C++ in Windows Windows users have a wealth of choice when it comes to programming in C++. There are loads of IDEs and compilers available, including Visual Studio From Microsoft. However, in our opinion, the best C++ IDE to begin with is Code::Blocks.

CODE::BLOCKS Code::Blocks is a free C++, C and Fortran IDE that is feature rich and easily extendible with plugins. It’s easy to use, comes with a compiler and has a vibrant community behind it too.

te

Start by visiting the Code::Blocks download site, at www.codeblocks.org/downloads. From there, click on the ‘Download the binary releases’ link to be taken to the latest downloadable version For Windows.

a0

When you've located the File, click on the Sourceforge.net link at the end of the line and a download notification window appears; click on Save File to start the download and save the executable to your PC. Locate the downloaded Code::Blocks installer and double-click to start. Follow the on-screen instructions to begin the installation.

a

Code::Biocks

a HOU Fo

OTE:

aca

wat

Cree

(i

rte Nes

ane

ht eters

Chasggteg

Thr

he

ners

ay

a

Ratna

ko

1a

MELA

x

tte

mo

ns

oetane pat

Sana

pte

Welcome to CodeBlocks Setup

he

vn Zadensses heared a

0

and

Say

ne! Dabian reppin he

em

ant ned

Famn

pny Shes ete

don

4

ned ney

ne

Setup will guide you through the installation of CodeBlocks.

It is recommended that you dose ail other applications before starting Setup. This will make it possible to update relevant system files without having to reboot your computer. Click Next to continue.

There you can see, there are several Windows versions available. The one you want to download has mingw-setup.exe at the end of the current version number. At te time of writing this is: codeblocks-17.12mingw-setup.exe. The difference is that the mingw-setup version includes a C++ compiler and debugger from TDM-GCC (a compiler suite).

Once you agree to the licencing terms, a choice of installation options becomes available. You can opt smaller install, missing out on some of the components but we

STEP 4

STEP 2

for

a

recommend that you opt for the Full option, as default.

|

lode

cEloubs

-

instalation

Choose Components

AAyyrtown

xP

vita 70.21

Choose which features of CodeBlocks you want to install. 10:

codeblocks 17.12 setup.oxe

30 Dae:

codeblocks 17.12 setup nonadmin.oxo

0 Oe

codeblocks-17. 12-nosetup zip

0 Dee

codeblocks-17. 12mingw-setup.exe

30 Dee

Paabhorks-17 TPmungwnnnetup

:

71p

codabineks-1/ T2mmgw_tortran-selap exe

3M

WOTE The codellocks-17 12-selup.exe fie includes Code Blocks with all plugins. The codeblucks-17.12-selup-ionadmin.exe fle is provided NOTE: Tho codablocks-17. 12mingw-sstup.oxa file inckides adcitonaty the GCC/G+-+ compiler and GOB

debugger from

for

Dee

Check the components you want to install and uncheck the components you don't want to install. Click Next to continue.

Select the type of install: Or, select the optional components you wish to instal:

[Ful:

everything All plugins, all tools, just

3-4]

Default install

Contrib

conven

lc:

TOM GCC (vorsion 6.1.0. 32 be,

(Toa. ccc). NOTE The codeblocks-17 12{nargw}nosetup.cip fles ave provided “installahon” yau are on your awn

iunsure, please use codeblocks-t7, $2magwselup.exe!

alel-)

www.bdmpublications.com

fur commenience

ty users that aw allvigic against installers,

Hower,

i wil not allow Description

Space required: 253.4 MB

Position your mouse aver 4 component ta see its

x

to Set Up C++ in Windows

(How

Next choose an install location For the Code::Blocks files. It's your choice but the default is generally sufficient (unless you have any special requirements of course).

When you click Next, the install begins; when it’s finished a notification pops up asking you if you want start Code::Blocks now, so click Yes.

a

There’s

a lot you can do in Code::Blocks, so you need to dig in and find a good C++ tutorial to help you get the most from it. However, to begin with, click on File > New > Empty File. This creates a new, blank window for you to type in.

STEP 8

Wi -unteteat - CosesBiocts

Ae

Voew

Search

17.12

Propet Gold Cebu

fortmn

wmih

Took

Tooke Plugins

Deyiincts Settings Help

D

Create shortcut: C:

Extract: gdbinit, Output folder:

Roaming Mic osoft\Windows\Start Menu Programs

G5

a

Blocks Installation

Coden

@

Ness Shaederinan dutgram

Do you want to run Code::Blocks now?

Create shortcut: C: Users\david AppData Roaming Microsoft\Windows\Start Menu'P... Nullsoft Install Systen

STEP 6

3.02.1

The First time Code::Blocks loads it runs an

autodetect for any C++ compilers you may already have installed on your system. IF you don’t have any, click on the first detected option: GNU GCC Compiler and click the Default button to set it as the system’s C++ compiler. Click OK when you're ready to continue. Compilers auto-detection

oO

Note: After auto-detection, at least

Select

you

one

ee

favourite default:

x

compier’s master path is still empty and therefore invalid.

re nes

master path Inter inthe

STEP 9

In

the new window, enter the following:

#include

Int maind t //My first C++

program

Std: :cout

“ot found ‘ound

1

wot

found

2 3

iot found

4

Not found



compiler com

332) Compiler

5

Not found

2

"ot found

*

8

diy Bal

taxat Coe prog ceeak


Save as and save the code witha .cpp extension (helloworld.cpp, for example). Code::Blocks changes the view to colour code according to C++ standards. To execute the code, click on the Build and Run icon

types. Again, we would recommend you opt For the last choice, to associate Code::Blocks with every supported file type.

along the top of the screen. It’s a green play icon together with yellow cog.

Saystsivaee

etatie

A

aaa

Code::Blocks

6

asrenity not the defeut application for

De you

want

‘You

aways change sasoastore fran

can

Oe

sett as defeat?

Cit

Testine ay

vource Mes.

the eneronment setungs biter.

everyinng nee tia an

‘Ore lee Otter,

be

a

-

°

ite

STEP 10

every tary onsets

(rt ask tt

agen

ent est)

assnciate Code: Boda with C/C++ fhe types

Biter, senccete

Code:

toc

wit every augported type fndudiny project fee

from

otter

IDE)

Ca]

www.bdmpublications.com

atiyd

How to Set Up C++ ona Mac To start C++ coding on a Mac you need to install Apple’s Xcode. This is a Free, Full Featured IDE that’s designed to create native Apple apps. However, it can also be used to create C++ code relatively easily.

XCODE Apple's Xcode is primarily designed For users to develop apps for macOS, iOS, iPadOS, tvOS and watchOS applications in Swift or Objective-C, but you can use it For C++ too. Start by opening the App Store on your Mac, Apple Menu > App Store. In the Search box enter Xcode and Return. There will be many suggestions Filling the App Store press window but it’s the first option, Xcode, that you need to click on. dy

Weta

Cage

crane

Acoae

seaty

ae Seroot

= a 1B

tor

tr Xe

2200

orssetearson

Lat

ree Susp

oo

manone



ae Senoot

oreo

ox

om

mortars

aisfood

=

ond

pea ws

|_| os

=

angperara wre ter

an

= an

Tebiviseees oe

= code)

Une =

om

tor

20

Keo

te ent

om

om

We Coren cornet

7

be

fos]

oD

Som

®e

o

7

1 Aree

Search

When you're ready, click on the Get button which then turns into ‘Install App’. Enter your Apple ID and Xcode begins to download and install. It may take some time depending on the speed of your Internet connection.

STEP 3

a

Rene er

fra]

ee :

|

anaes Fe

Take a moment to browse through the app’s information, including the compatibility to ensure you have the correct version of macOS. Xcode requires macOS 10.12.6 or later to install and work.

When the installation is complete, click on the Open button to launch Xcode, Click Agree to the licence terms and enter your password to allow Xcode to make changes to the system. When you've done that, Xcode begins to install additional components.

Xcode

gf Totes visse

wens

‘pepe ino,

Xcode and Apple SDKs Agreement PLEAGE BCROLL

OFTWARE OF

DOWN AND

nvelopes reed to create areat 2s19n, coding testing, and cet

READ ALL OF THE FOLLOWING TERMS.

SERVICES.

APPLE APPLE. ANO

OF

THIS

A!

IF YOU AQAEE

THE TERMS AND CONDITIONS, CLICK’ OR INC "AGREE" BY COWNLOADING,

Save...

TO BE BOUND

‘OR

Disagree

BY ALLey

COPYING

ANY

Agree

Pers

a

uaihes

ng aos easier and

More

9.2

ale)

www.bdmpublications.com

Pen,

(

The next step asks where to create a Git Repository for all your Future code. Choose a location on your Mac, or a network location, and click the Create button. When you've done all that, you can start to code. The left-hand pane details the Files used in the C++ program you're coding. Click on the main.cpp file in the list.

With everything now installed, including the additional components, Xcode launches, displaying the version number along with three choices and any recent projects

STEP

How to Set Up C++ ona Mac

STEP 8

5

that you've worked on; although for a Fresh install, this shows blank.

I

7

>

on

be

Rene OH 0ECWceeeges

Reem

alone

tommenarive

.

ne

Page

nme

meron

Cepepmmmtend

Omran

sere

. Paecronn

ha No Recent Projects

ae ce

‘Sein

Explore new ideas

quickly and

Clone

an

Mee

Ort

Ba

bate

Deereeens Tage

Apple Watch or

are

mein Qonen

Peo sine

Apple TY.

See

existing project

Siart working on something from an SCM repository.

ssa

em

teneunt

a

eceneteme

weersen

toe

+ Show this window when Xcode launches

Serpe

Open another project...

Start by clicking on Create New Xcode Project; this opens a template window from which to choose the platform you're developing code for. Click the macOS tab, then the Command Line Tool option and Finally, Next to continue.

You can see that Xcode has automatically completed a basic Hello World program for you.

oS

Fillin the various fields but ensure that the Language option at the bottom is set to C++. Simply choose it from the drop-down list. When you've Filled in the fields, and made sure that C++ is the chosen language, click on the Next button to continue.

The differences here are that the int main () Function now contains multiple Functions and the layout is slightly different. This is just Xcode utilising the content that’s available to your Mac.

project:

Team;

Organization Nama:

When you want to run the code, click on Product > Run. You may be asked to enable Developer Mode

STEP 10

on the Mac; this is to authorise Xcode to perform Functions without

needing your password every session. When the program executes, the output is displayed at the bottom of the Xcode window. 008

new

cee

as

oe

Choose options for your

iB

5

teens

“oe

a

easily.

Create anew Xcode project

pz

nme

Prevtaiening Paria bane Remtied

~

.

Get started with a playground

Create an app for iPhone, iPad, Mac,

aoncarers etcmrem

Ded hat hemt.

'

Version 9.2 (90400)

(S|

enanenbareet

La onl aseeneal

Welcome to Xcode [a]

fe

themeoO

*

Goce

meme

Guim

ec



BCs

tegen

bern Cos

5

remap

Reacnes

to

Add account... David Hayward

Organization identifier:

www.bdmpublications.com

109

Introducing C++

How to Set Up C++ Linux

In

great C++ coding environment. Most Linux distros already have the essential components preinstalled, such as a compiler. The text editors are also excellent For entering code into, including colour coding. There’s also tons of extra software Linux is

a

e

available to help you out.

LINUX++

For this example, we're using a Fresh installation of Linux Mint. However, these also work if you're using Ubuntu or any other Debian-based Linux OS.

a to

The First step with ensuring Linux is ready For your C++ code is check the system and software are

up to date. Open a Terminal and enter: sudo apt-get update && sudo apt-get upgrade. Press Return and enter your

password. These commands updates the entire system and any installed software.

File

View

Edit

Search Terminal s ~ §

ee

eee

sudo

AMazingly, that's it. Everything is all ready for you to start coding. Here’s how to get your first C++ program up and running. In Linux Mint the main text editor is Xed can be launched by clicking on the Menu and typing Xed into the search bar. Click on the Text Editor button in the right-hand pane to open Xed. epseaciee

Help

apt-get update

&

[sudo] password for david: Jj

Most Linux distros come preinstalled with all the necessary components to start coding in C++. However, it’s always worth checking to see if everything is present, so still within the Terminal, enter: sudo apt-get install

build-essential

and press Return. IF you have the right components, nothing is installed but if you're missing some then they are installed by the command. david@mint-mate Edit

File

View

Search « je

Terminal §

sudo

lists...

~

Help

apt-get install build-essential

rade,

@

to newly

eget

oon

Am earcias serene] MEG

rteroemeeraie

F

Uenrens Docume?

In Xed, or any other text editor you may be using, enter the lines of code that make up your C++ Hello World program. To remind you, its:

STEP 4

#include

int main() { //My first C++ program

std::cout

.

If not, see

code you're entering, including placing a closing speech mark as soon as you enter the First. Don’t Forget the semicolon at the end of the line; this is one of the most important elements to a C++ program and we'll tell you why in the next section. For now, move the cursor down to the closing curly bracket and press Return.

i)

F#include

int main()} {

}

Just as before, Code::Blocks auto-completes the

STEP 9

|) x]

1

int main(}

i

I

Notice that Code::Blocks has automatically created corresponding closing curly bracket a couple of lines below, linking the pair, as well as a slight indent. This is due to the structure of C++ and it’s where the meat of the code is entered. A

a

Now enter:

//My first C++ program we

|

std::cout

Now click on the Run icon, the green play button. A command line box appears on your screen the words: Hello, world}, followed by the time it’s taken —_ displaying see a group of icons: a yellow cog, green play button andacog/play to execute the code, and asking you press a key to continue. Well button together. These are Build, Run, Build and Run functions. done, you just compiled and executed your First C++ program. IF your code is looking similar to the one in our screenshot, then look to the menu bar along the top of the screen. Under the Fortran entry in the topmost menu you can

cke 17.12

yect

Build

Fortran

Debug

mals

wexSmith

)

Start here

L

|

*helloworkLcpp

=

Tools

BS x

STEP 4

Tools+

Plug

#include

t

18

}

going on:

cout view. txt notepad.exe view.txt

echo. File

Now, create a batch File that displays the contents of any directory and post it as a text file to the user's screen. Add the Following to the list.bat batch File:

STEP 3

File >

list.txt

list. on

-ivtepag

Edit

Format

View

Help

off

cls dir “ci\"

echo.

type

> List.txt List.txt

echo. echo Hello, XUSERNAME%. echo From the list, which directory would you set /p view= (enter as c:\directory) dir “Xview%" > view. txt notepad.exe view. txt

522

Save and execute the batch file. Within the

command prompt you can see the contents of all the Files and directories From the root of the C:\ drive; and as any user under Windows has permission to see this, there’s no UAC elevated privileges required.

like to

view?

What's happening here is the batch file asks the user to enter any of the directories displayed in the list it generated, in the form of ‘e:\directory’. Providing the user enters a valid directory, its contents are displayed as a text File. We created the view variable here along with %HOMEPATH%, to store the input and the text file.

STEP 4

SoBe dein Cer

slipVR

a

Directory of c:\ dey

Aes

dene apa e

Pas

e

craeusnay Cielp

Adora

Perflogs Program rue

a

Files

aeRO

|

CoB)

veteng tr avtve Time

Serial

bas

no.

Label.

Nonben $< $E47-ABEF

cae

Ss

cates

cae

Al

wb v

8 8

6,912 $1241

BOM

ee

BOL

Loge



:\Users\david\Documents\Batch Fi 206,692 tog 6,912 Etcape ser

Escape

162

www.bdmpublications.com

( It’s always a good idea, when creating text Files for the user to temporarily view, to clean up after

yourself. There’s nothing worse than having countless, random text Files cluttering up the file system. That being the case, let's clear up with:

STEP 8

Instead of left clicking on the Command Prompt result, as you did the First time you opened it,

right-click it and from the menu choose Run as Administrator. There is a risk that you could damage system Files as the Administrator but as long as you’re careful and don’t do anything beyond viewing directories, you will be okay.

cls del /Q view.txt del /Q list.txt echo ALL files deleted. System clean. Bier Fe

|

Ede

ae els

View

Format

Help

Filters

~

Best match

off

=

> Iist.cxt List.txt

Gir “cr\" echo.

echo Hello, SUSERMOMES. ‘echo From the which directory would you set /p view (enter as c:\directory)

list,

dir “AviewX”

like to

view?

els

Se

del JQ view.txt del /Q list.txt

All files deleted.

Command Prompt

Cs Run as administrator

>

view. txt notepad.exe view. txt

echo

@

nereoss

|

type

with Variables

Playing

(1 Open file location

System clean.

&

the Files without any user input or notification. The Final message informs the user that the files are removed.

Pin to taskbar

—4

The additions to the batch File simply clear the command prompt window (using the cls command) and delete both the view.txt and list.txt files that were created by the batch file. The /Q flag in the del command means it deletes

STEP 6

>

ap Pin to Start

This action triggers the UAC warning message, asking you if you're sure you want to run the Windows command prompt with the elevated Administrator

STEP 9

GE Command Prempt

privileges. Most of the time we wouldn't recommend this course of action: the UAC is there to protect your system. In this case, however, click Yes.

User Account Control

Do you want to allow the following program to make changes to this computer? Windows Command Processor Program name: Verified publisher: Microsoft Windows

STEP 7

Depending on how DQ

@

(¥)

Filters

Yes

show details

is

your system configured, you may not get any directory information at all or message stating Access Denied. This is because the UAC is blocking access to

Bestmatch Command Prompt

a

protected areas of the system, like c\Windows or C:\Program Files.

Therefore, you need to run the batch File as an Administrator. Click the Windows Start button and enter CMD again.

Change when these notifications appear

Desktop BPP

Search suggestions

Pa

d-

See web results

>

With the UAC active, the command prompt looks a little different. For starters, it’s now defaulting to the C\WINDOWS\system32 folder and the top of the windows is

STEP 10

labelled Administrator. To run the batch file, you need to navigate to the Batch Files directory with: cd \Users\USERNAME\Documents\

Batch Files. To help, press the Tab key to auto-complete the directory names. Ge Administrator; Command Prompt

ikea

t

tem32>cd “\Users\david\Documents\Batch

Files"

Ss

www.bdmpublications.com

Wey)

Introducing Windows 10 Batch Files

)

Batch File Programming It’s the little additions we can make to a batch file that help it stand out and ultimately become more useful. While the Windows graphical interface is still king, the command

line can

just as much, and this is where batch Files come into their own.

do

SEARCHING FOR FILES Here’s an interesting little batch File that you can easily extend For your own use. It asks the user for a File type to search for and displays the results. We are introducing a couple of new commands into the mix here but we think they're really useful.

Create @echo

a

new batch file called seek.bat and in it put:

cls

off

color

2

echo Please enter the type of file you want to search for (MP3, DOC, JPG for example) echo. -

Notepad

Edt

Format

Ad seek File

@echo

2

echo Please enter the type of file you want to search for (MP3, DOC, JPG for example)

echo. set /p ext= where /R

c:\

*.%ext% > found.txt

notepad.exe found.txt View

cls

Help

off

color

cls color

off

@echo

cls color

Now let's extend the seek. bat batch File:

a

2

echo Please enter the type of

file

you want

to search for (MP3,

DOC, IPG

for exemple)

echo.

del /Q found.txt aBernsen Ue mat lgeche

=—

13%

ne

off

jets

[solor

2

lacho fecno. Pieese enter the type of

file

you

went tu

EEBrch

for (WS,

DC,

206

for

axmple)

set Jp wrte

[niece 7K c:\ *.KexeS > Found. rotepad.ene found. tet

txt

eolor

[ft

a0

ot,

The new command in this instance is color

(Americanised spelling). Color, as you already assume, changes the colour of the command prompt display. The color attributes are specified by two hex digits, the First corresponds to the background colour of the Command console and the second to the Foreground, and can be any of the Following values:

10 fowndneee

Another new command, Where, looks For a specific file or directory based on the user’s requirements. In this case, we have created a blank variable called ext that the user can enter the file type in, which then searches using Where and dumps the results in a text File called Found.txt. Save and run the batch file. we aa bat fern ldecho

0O=Black

68=Grey

1=Blue 2=Green 3=Aque

9 = Light Blue

4 = Red

5=Purple 6=Yellow’

7=White

A2=Light Green B=Light Aqua C = Light Red D

=Light Purple = E Light Yellow F=6right White

‘color

vom

Hay

2

echo Plesse enter the type of

echo.

‘|

off

file

you want ta search

for

(92, DX,

at

296

for exemple)

mo

s\Suamer JAWALK THE TOW - Shut Up and ‘samme? 18 Rede

“The Wladbe

Could You Se

(Live)

Morty

003

mys

Loved

.

sat Matdarsier, wal

Sete

1

Stardting.p3

One Love People Get Reody.op3 TL Shot the eS t4 Vole.mg3 Wateing 32. Hedeaption Song, mp3

Natlers\Oh,

6

‘Sathity +

Nes Le\BOb

www.bdmpublications.com

Maren

id:Poste\Sob Manley 2 The Wallers\O1. Ix this Love.ap Metlers\02 Ho Woman We Coy

:\Uvers\davtd

ay)

DancelMpMonverter rt ].ap?

Grey,

Recley

&

The

My

03

Shard Sout.apd

Exc ep) Meblers\i6. Jamming Puniy Reggae Party.ap}

( Batch File Programming CHOICE MENUS Creating a menu of choices is a classic batch file use and a good example to help expand your batch File programming skills. Here’s some code to help you understand how it all works.

STEP

1

command in

Rather than using a variable to process a user’s response, batch Files can instead use the Choice conjunction with an ErrorLevel parameter to make a

menu. Create a new File called menu.bat and enter the Following:

@echo

cls

off

@echo

ErrorLevels are essentially variables and the /M switch of Choice allows a descriptive message string to be displayed. Extend this menu with something new: eeeieyemme

cls

off

echo.

choice

/M “Do you want

if errorlevel if errorlevel

2

to continue? Y/N”

echo

echo.

goto N goto Y

1

echo Please choose a

directory.

echo.

goto End:

echo Press

1

for c:\Music

echo. echo Press 2

for c:\Documents

echo. echo Press 3 for

c:\Pictures

echo. echo Press 4

for c:\Videos

echo. echo Running the code produces an error as we've called a Goto command without any reference to it in the exactly that, goes to a specific line in the batch Finish the File with the following and run it again:

file.

Goto does

file.

oN

echo.

choice /C 1234

if if if if

errorlevel errorlevel errorlevel errorlevel

0 Sto)

echo You chose No. Goodbye.

goto End

4 goto Videos 3 2

1

goto Pictures goto Documents goto Music

Now add the Goto sections:

rY

:Videos

echo.

cls

echo You chose Yes. Hello

CD %HOMEPATH%\Videos

>

echo You are now

End sereces

Borers j

iad

Fae

quero

3s

in the Videos directory.

goto End

Format

:Pictures

Yee etn

of

cls

7

[chatce “De 2you want vo comtinue? ¥/M" Af errorlevel goto errorlevel 1 gate ¥ este ted

1

=

%HOMEPATH%\Pictures echo You are now in the CD

~

acho.

Jacho You chose Ho. Goodbye,

Wi Corman

smipms

Pictures directory.

goto End

Prompt

:Documents

cls CD %HOMEPATH%\Documents

The output from your choice is different depending on whether you pick Y or N. The :End part simply signifies

STEP 3

echo You are now in the Documents

directory.

goto End :Music

the end of the file (also known as EOF). Without it the batch file runs through each line and display the Y response even if you enter N; so it’s

cls

important to remember to follow your Goto commands.

CD %HOMEPATH%\Music

echo you are now

in the Music directory.

goto End IDo

You

you want to

cantinue? V/N [¥,N]

2M

:End

chose Ha. Goodbye.

Hello \Documen

‘id\Documen

STEP 6

When executed, the batch file displays menu and with a

each choice the code changes directory to the one the

user entered. The %HOMEPATH% system variable will enter the currently logged in user's Music, Pictures and so directories, and not anyone else's.

www.bdmpublications.com

165

Introducing Windows 10 Batch

Files)

Loops and Repetition Looping and repeating commands are the staple diet of every programming language, including batch file programming. For example, you can create a simple countdown or even make numbered Files or directories in the system.

COUNTERS Creating code that counts in increasing or decreasing number sets is great for demonstrating loops. With that in mind, let’s look at the If statement a little more, alongside more variables, and introduce the Else, Timeout and eof (End of File) commands. Start by creating a new batch file called count.bat. Enter the Following, save it and run:

oe

off

@echo

The count.bat is rough way of demonstrating a loop; a better approach would be to use a For loop. Try this example instead:

a

a

off

cls

@echo

set /a counter=0

for /L

:numbers

set /a counter=%counter%+1 if %counter% ==100 (goto :eof) else Cecho

%%n

in (1,1,99)

do echo %%n

[2 fecno off for ML Xin

$0

(1,1,989

do

core Ver

%counter%)

timeout /T 1 /nobreak > nul goto :numbers BD

count

File

Edit

@echo

cls

-

Netepadd

Format

View

Help

of f

set fa counter=0 :numbers

set fa counter=%counter%+1 if %counter% =-10@ (goto :ecf) else (echo Xcounter%) timeout /T 1 /nobreak > nul goto :numbers

Breaking it down, there’s For, then the /L switch, which handles a range of numbers. Then the parameter labelled as

STEP 4

STEP 2

The count. bat code

starts at number one and counts, scrolling down the screen, until it reaches 100.

The Timeout command leaves a one second gap between numbers and the

Cemmand Prempt

-

count

%%n to denote

a

number. Then

the in (1,1,99) part, which tells the statement how to count, as in

1

(start number),

1

(steps

to take), 99 (the end number).

The next part is do, meaning DO whatever command is after.

Else statement continues

until the counter variable

equals 100 before going to the eof (End Of File), thus closing the loop.

:\Users\david\Documents\Batch Fi

www.bdmpublications.com

(

There are different ways of using the For loop. In this example, the code creates 26 directories, one for each letter of the alphabet, within the directory c\test which the batch File makes using the MD command:

You can include the pause between the numbers easily enough within the far simpler For loop by

STEP 8

adding multiple commands after the Do For loop. The brackets and ampersand (&) separate the different commands. Try this:

@echo off FOR %*F

off

@echo

for /L

in (1,1,99) nul)

%%n

/nobreak >

do Cecho %%n &

timeout /T

Loops and Repetition

INCabcdefghijyklmnopgqr

1

s,t,u,v,w,x,y,Z)

C:\test\%%F)

DO Cmd

B count- Hotepad fama FOR XXF IN

Yon

(a,b,,4,,f,8,h,41,9,K,1,0,9,0,0,0,%,5,t,U,V,WyX,¥,2)

8 |

One of the great time saving uses of batch files is to create multiple, numbered files. Assume that you want twenty five text Files within a directory, all numbered fom 1 to 25. A For loop much like the previous example does the trick:

STEP 6

off

@echo

for /L

in (1,1,25)

%%n

do copy nul %%n.txt

(14,25)

do

coy

rub

Setet

C:\tost\XXxF}

Command Frempt

Loops can be powerful and extremely useful elements ina batch file. While creating 26 directories may not sound too helpful, imagine having to create 1,000 users on a network and assign each one their own set of unique directories. This is where a batch file saves an immense amount of time.

STEP 9

Thue ‘gecho for fA Bho tn

DO (md

>t

i

+

>

Oate mocinet

a

Forepettem Sy

¥ +

it Temtonw onttin

>

ah

mre

»

1

+

>

Mey

Oocements

BF

de

Donstonds

>

pte

»

ven

>

181)

CvavROIN

ie

ae

See

Tyre

faethe ‘fetohtee

a

Htone

3s

retoe

ae

a owareerss

1

Yo

tach ieg 7tat

Name

fea rastate

Fy

Pete etait:

he

a

dn de

Fite

fy Cason,

toler

Hele

ie

fant

ide

>

+

>

anlar

you open Windows Explorer, and navigate to the Batch Files directory where you're working from,

off

for /L

2

ae rae

#%n

eo +

Ommences

cd

Dewentam

>

a

too

omone

miner

Pwo

ae

Should you ever get stuck when using the various commands within a batch file, drop into the command prompt and enter the command followed by a question

switch. For example, for /? or if

/2.

You get an on-screen help File

detailing the commands’ use. For easier reading, pipe it to

For

in (1,1,25)

/?

>

a

text file:

forhelp.txt

do copy nul User%%n.txt -

bore out

a

teen

STEP 10

IF

you can now see 25 text files all neatly numbered. OF course, you can append the file name with something like user1.txt and so on by altering the code to read:

@echo

bene

0

x

e

a

Taare

=e

mn

Flee

Die

tat

EDet oped soa Jeet oasecy

9) Docmens ww

F

Oreo

othe

Wem

See cee

Set et Sewer

Brien

ucioes a renmeny

Ota 4

ener

en

aa Been geet Dawn

Boer

www.bdmpublications.com

aC

y4

Creating

Batch File Game

a

off

@echo

Cls istart set /a score=0 set /a question=0

‘Hereisibrie ma

oti)

ihe mi

loading screen in a separate batch File and save it as screens.bat (For example). Then, from the main game batch file, you can load it at the beginning of the file

with the ‘call’ command Followed by colour to reset the game’s colours:

WED

Select Command Prompt - tereent

set /p

q

name= What

is your

name?

‘menu

cls echo.

SHO

EEE ERIK ER ER EEE EREREREREEERE

kk

ww

Make up your own questions but how about also including an introductory or loading screen? Make your

@echo off Cls Call screens.bat color :start set /a score=0 set /a question=0 cls set /p name= What is your

cls

echo. echo Welcome echo. echo Press 1 echo. echo Press 2 echo. echo Press Q echo.

tname%

to the super-cool trivia game.

to get started

for instructions to quit KEKE REREEREREERERER

SCHOO

xk

choice /C 129

if errorlevel if errorlevel if errorlevel

3 2 1

goto :eof goto Instructions goto Game

:Instructions

cls name?

echo.

CHO echo.

KRKRIRKR HAAR ER ERR ER

echo The

instructions

KIA

are simple. Answer

the

questions correctly. echo.

I RIK IK

CIO pause

cls

goto menu :Game

set /a question=%tquestion%+1

cls if %question’

==5 (goto end)

else (echo you

are on

question %question$) echo. echo get ready for the question... echo. timeout /T 5 /nobreak > nul if tquestion% ==5 (goto end) else (goto %question%) iL

cls echo. OCHO

4

echo.

IRI AIR IRE

ERR IR ERE

e e echo Your current score is %score% echo. echo HKKKK KK KEKE KERR RE echo. echo. echo Question %question’. echo. echo Which of the following version of Windows

is the

best?

echo. echo A. Windows echo. echo B. Windows echo. echo C. Windows echo. choice /C abc

if errorlevel if errorlevel if errorlevel

3

2

1

10

ME

Vista

goto wrong goto wrong goto correct

72

cls

echo.

SCH

FEKKKKAKKKKKKERKEKEKEREEEEKKEKE

echo. echo Your current score is %score% echo. KK KKK KIRKE REE echo echo. echo. echo Question %question%’. echo. echo Which of the following version of Windows most stable? echo. echo A. Windows 10 echo. echo B. Windows 95 echo. echo C. Windows ME echo. choice /C abc if errorlevel 3 goto wrong if errorlevel 2 goto wrong

if errorlevel

1

is the

goto correct

33

cls

echo. SCHOO

REKKKKAKKKKKKEKKRKKKEREEKREKRKE

echo. echo Your current score echo. SCHOO

is

%score%

FEKKKKAKKKKKKKEKEKEKEREEERERKK

echo. echo. echo Question %question’. echo. echo Which of the following Windows version

latest?

echo. echo A. Windows 10 echo. echo B. Windows 98 echo. echo C. Windows 7 echo. choice /C abe

is the

( if errorlevel if errorlevel if errorlevel

Creating a Batch File Game

goto wrong goto wrong goto correct

3

2 1

els echo. echo HIKKKK KERIKERI REKREREREREIEERER echo. echo Your current score is %score% echo. SCHOO KAKKKKKAEKARKKKKKEEKEKEKEEKREEEEREE

echo. echo. echo Question %questions echo. echo Which of the following Windows uses DirectX 12? echo. echo A. Windows 10 echo. echo B. Windows 3.11 echo. echo C. Windows XP echo. choice /C abc if errorlevel 3 goto wrong if errorlevel 2 goto wrong

if errorlevel

goto correct

1

:Wrong

els

echo HEKKKKEKEKEKEKEKEEEEE echo. echo WRONG!!!! echo. OCHO KAKKKKKKKKKKKKKKKE

set /a score=%score%-1 pause goto :game

:correct

cls echo KEKKKKEKREKKEREKEKKK echo. echo CORRECT. YIPEE!!! echo. echo HEKKKEKEKEKREKEKEEEEE set /a score=%score%tl pause

goto :game end

cls ERERERERE

KE KEK echo echo. echo Well done,

%tname%,

you have answered

all the

questions echo. echo And your final score echo. echo $score% echo.

CTO

RR RHI

I

is....

HI HI

IRI

choice

/M “play again? Y/N” if errorlevel 2 goto :eof if errorlevel 1 goto start

www.bdmpublications.com

169

( coding Projects

& Ideas

This section features some Fantastic coding projects and ideas that you can use in your own code. Want to add

something a little extra to your code? How about creating a loading screen, TIANS)

ASCII characters?

There’s code here to track the in real-time, and we even look.bas at some retro coding, using BBC Micro BASIC, to give you a better understanding of how other forms:of code come together and work.

2...

There are always more ideas to code,

www.bdmpublications.com

Passing Variables to

hon

A ogra

iggy UE (vont

EINRKO

a

agra

(3 4 (M

at

fo}

ace)

THE WINDOWS WAY

script...

It

os.environ[ ‘name’ ]

printC“Your

is... “,

name

n)

L& batpy1.py - C:/Users/david/Documents/Python/BatPy/batpy| py

python batpy1.py echo

=

n

name=What is your name? echo Let’s try and pass this to a Python

set /p

worked!!

Format

Edit

File

Run

Options

Window

-

(3.7.0)

a

*

Help

import os

os.environ['name'] batpy1.bat Edit

@echo

a

Notepad

Format

View

name is...

", n)

Help

of F

set /p name-What echo

print ("Your

Let's try

is

re

File

-

oe

|

oo

ep

import os

off

@echo

abd

new text file and enter the Following:

a

a

Con ’=< 0

the batpy Folder, create

Now open Python and create a New File. Enter the following code:

STEP 3

ene

Let's begin by creating a sample Folder within your Python directory; call it batpy, for example. Within

ONE

a

>

=e

The two systems use slightly different ways to accomplish the same task; Windows is slightly easier (by a single command) so we'll start with that.

your name?

this to

and pass

a

Python

script...

python batpy1.py a

It worked!

1

1

New

8 Tan & mm

Python

»

Baty

BE

i

@ Name

Date masified

Type

Fl batpy!

TWDUATIIUDSE

«Windows Baten Fike

bap)

18/DU2019 0843

Python Fite

[&

BOM

Ckganse>

2

Baty

folder

Using Tet Fit t*

BF Drepber (Teatn

49 >

Python

»

vy

Bethy

&

Search

=a

Aer

Bars

Name

bat!

Varad:

Date eascdtied

TBOL2O9 AGES

ype Python Fite

@

‘use

1B

Tj Using Text Flest

3F Dropbox (Team Bt

Tern BOM

This PC

Me

Objects @ Detttop

OneDrive

GM

thes PC

DB wovyects

JB) Documents

>

E

Mi

ow

z

[BaF

Fneerhng

ANSI

-

Save

Desttop

(2) Documents

.

Saveas type: AllFiles

A Hide Folders

»

PiProjects Weat

B30

se

GoogleDive # Passing

Documents

»

Tet

Onedrive

Fe

ThisPC

New folder

a

+

Oryaive

Documents

=i

.

ecoint

|

Buthon

sythion batpyl. ty byl PY

It worked! !

eg

[pavers

set /p name-What is your name? thic tno echo Let‘s try and

echo

9

code as batpy1.py.

mone

a

of

Bt

ae

echo

te name: ESM

Save at type.

Cancel

A

bide Feleers

Python

tes Save

oneal

L.

» ae:

Vv

a

ie 4

_i

Os

Ww

7

y wa oa

E | Q

i)

TL Tuy

gy og To

a”

*

828°"

eanOba

.

,

oy

recap: we

o

ahd

a

j

rece

a

7

aslo)

have a batch file called batpy1.bat,

variable called name. It'll then print to the screen a message, then run the Python code, and finally print “It worked!!”. The Python code, called batpy1.py, uses the OS module to call os.environ[‘name’], stored as n. It'll then print the value of n after a

a

system

message. . ete

seat

“Dievwye- enet Fie Gat Feet nee leecns

Drop

intoaWidows command

prompt and

navigate to the Folder Batpy. To run

a

Windows

batch file, simply enter the command:

batpy1.bat Enter your name as instructed and the reply will be passed to Python, then back to the batch file to end. Ben

Fe

BY

ne

-

which asks the user their name and stores the info as

me

oR.

ee

Bee Dor wt eS ate. pee

«

Help

off

set fo onmectbat 1s your same? Let's try and past this to

Jecho

python

Bateyl

a

Python

script...

Py

Jacho Te workedt!

THE LINUX WAY Linux's version of passing variables to Python is slightly different, just because it’s Linux! It’s easy, though, and here’s how it’s done.

agle}

Start by opening your Favourite Linux text editor, and entering the following:

import os

#1/bin/bash echo -n “Hello, what read firstname

is

“ your name?

n

*batpy.sh (~/Documents/batpy

ie

export firstname

Cae

Mew

Search

Tori

Documents

@@uwiesees:xoda

python3 ./batpy1.py

#1

Help

Qi}

= os.environ[ ‘firstname’

printC“Your

stews

name

is... “,

“It worked!!!”

“hatpyt.py -shome/david/Documents/hatpy/batpy1.py(3.67)"

firstnane

python3 ./batpy1.py

n)

-

5

File Edit Format Run Options Window Help OS

export:

]

Save the Python code as batpy1.py.

/binioash

fo

echo echo echo -n echo

Now create a new Python file, and enter the following:

n

=

ry

os.environ[' firstname’ ]

print(’Your

name

is... °,

ny

echo echo

|

echa -n “Tt worked?!”

o a

Y w

Drop into a Terminal session and make a new directory called batpy (mkdir batpy). Save the Bash script as batpy.sh, and from the Terminal enable the script as executable with: chmod +x batpy.sh.

STEP 2

Back in the Terminal, enter: ./batpy.sh to run the Bash script. As you can see, the results are the same as in Windows. The major differences are making the Bash script executable, and adding the export Firstname command to the Bash file. In Linux, you need to export system variables before they can be accessed by the subsystem, in this case the Python code.

i i V4

david@david-Mint: -/Documents/batpy Terma’

ep

Retro Coding |

THE GOLDEN ERA OF CODE

THE BEEB

Sed

The problem with BASIC is that there were so

8

many different versions available,

rH

A A

across multiple 8-bit platforms,

3 is

with each

3

i

rs

RS

x P|

i)

aN

6

*

ms

BS

a

Sait:

PHEN

having its own unique elements on top of th ecore

BASIC Functions. The 3ASIC that was

packaged with the Co different to that on the ZX Spectrum, or the Atari

‘can

“ah, ls PRINT “FAH

BBC BASIC was used on the Acorn BBC Micro range of computers,

While it may seem a little counterproductive to learn how to code ina language that’s virtually obsolete, there are some surprising benefits to

utilising the MOS 6502-based processor technologies. It was one of the quickest examples of BASIC and, thanks to an inline assembler, it was also capable of allowing the developers of the time to write code for

getting your hands dirty with a bit of retro coding. Firstly, learning old code will help you build the structure of code as, regardless of whether it

different processor types, such as the Zilog Z80 — a CPU present in the ZX Spectrum, as well as many arcade machines.

language that was developed yesterday, or Forty years ago, code still demands strict discipline to work correctly. Secondly, everyday coding is

a

elements such as loops, sub routines and so on are a great visual aid to learn in older code, especially BASIC. Lastly, it’s simply good fun.

The easiest retro language to play around with is, without doubt, BASIC. Developed back in the mid-sixties, BASIC (Beginner's All-Purpose Symbolic Instruction Code) is a high-level programming language whose design was geared toward ease of use. Ina time when computers were beginning to become more accessible, designers John Kemeny and Thomas Kurtz needed a language that students could get to grips with, quickly and easily. Think of BASIC as a distant relation to Python.

processor that’s used in virtually every Android phone and tablet, as well as smart TVs, set top boxes and so on. The BBC Micro was born ina

but it was the BBC’s Computer Literacy Project (the BBC Micro) that was chosen, due to its ruggedness, upgradability, and potential for education. Asaresult, the BBC Micro, or the Beeb as it’s affectionately known, became the dominant educational computer throughout the 80s.

BEEBEM Naturally, you could scour eBay and look for a working BBC Micro to play around on, and it'll be a lot of Fun. However, for the sake of playing

around with some retro code, we'll use one of the best BBC Micro emulators available: BeebEm.

nai

BeebEm was originally developed For UNIX in 1994 by Dave Gilbert and later ported to Windows. It is now developed by Mike Wyatt and Jon Welch, who maintain the Mac port of the emulator, and is therefore available For Windows 10, Linux and macOS, as well as other platforms. using Windows 10, simply navigate to http://www.mkw. me.uk/beebem/index.html, and download the BeebEM414.exe that’s IF you're

F

displayed in the main screen. 4

i

Sh

SAM

JONATAWNEOYONG

The BBC Micro was designed and built by Acorn Computers—a company that is historically responsible For the creation of the ARM CPU - the

time when the UK government was looking for a countrywide computer platform to be used throughout education. Different companies bid,

GOING BASIC

ON

home computers, due to the differing hardware of each system. However, it’s widely recognised that one of the ‘best’, and possibly most utilised, form oF BASIC from the 80s was that of BBC BASIC.

BBC BASIC also has some interesting built-in Features, such as the value

BeebEm - BBC Micro and Master 128 Emulator

of Pl:

-F

circle

“ r Input “Enter the radius: 3@ let area = PI*r*r 40 print “The area of your circle 2@

5@ Download version 4.14 for Windows: Becbl

Area of a

1 REM

2 CLS

is: “;

area

print

eve

As you'll notice, variables with a dollar ($) represent strings, nothing after Once downloaded, launch the executable and Follow the on-screens instructions to install it. Linux users can Find the installation files, as well as Full instructions, at: http://beebem-unix.bbcmicro.com/download.

html. MacOS users can get everything they need From: http://www.

g7jjf.com/.

the variable, or a hash (#) represent Floating point decimals; a

whole integer has a % character, and a byte has an ampersand (8).

The single quotes after the Print on line 50

BBC BASIC

indicate a blank line, one

Once installed and powered up, BeebEm will display the default BBC system start-up, along with a couple of beeps. Those of you old enough to

BBC Computer 32K

for each tick, while REM

[elke lan Oat)

on line

BASIC

have been in a UK school in the 80s

Da

BASIC, we use line numbers to determine which line of code run in sequence. For example, to print something to screen we'd enter: In

print “hello”

BASIC >10 PRINT “HELLO”

Once you've typed the above in, press Enter and then type:

aa Pa

run

isa comment,

Needless to say, there's a lot you can learn, as well as having Fun, with BBC BASIC. It’s a rainy day project and something that's interesting to

will certainly recall this setup.

1®@

1

and thus ignored by the BASIC compiler.

show the kids — this is how we rolled back in the 80s, kids! There are a number of sites you can visit to learn BBC BASIC, such as http://archive.retro-kit.co.uk/bbc.nvg.org/docs.php3.html. See what you can come up with using BBC BASIC, or other BASIC types for

different systems, and let us know what you've created.

aad

We can of course expand the code to

OTHER SYSTEMS

include variables, multi-line print statements and so on:

“Hello, what’s your

10 Input 28 print 30 print



“Hi,

n$

“ I

hope

name?



n$

you’re well today.”

rere eee eee ee eee eee eee

Ov

1 CLS

Type RUN to execute the code, you can also type LIST to view the code you've entered.

HI, DAVID

Pe

I HOPE

YOU'RE WELL TODAY.

aE 1

CLS

10 INPUT "HELLO, WHAT'S YOUR NAME? "

As you can see, variables are handled

in much the same way as Python, a print statement on its own displays a blank line, and CLS clears the screen ~as used in conjunction with the OS module in Python and when running

Windows. We're also able to do some maths work, and play around with variables too: 1 CLS 1@

input “how old are you?

2@

print

40

if if

5@

print

30

a > 40 a < 4@

“a

print “You’re over 4@ years old.” print “You’re under 4@ years old.”

Naturally, you don’t have to look to the BBC Micro to play around with some retro code. IF you grew up witha

Commodore 64, then you can always try VICE, the C64 emulator. Likewise, the ZX Spectrum has a slew of great

emulators available for every modern system to play around on. In fact, you can probably find an emulator for virtually

every 8-bit or 16-bit machine that was produced over the years. Each has their own unique perspective and coding

nuances, so Find a few and see what you can create.

Ler

Text Animations bo

THE FINAL COUNTDOWN

andso onto 10.

phe

te sethe ee

a ei

ihe

It'll take some time, but it’s worth it in the end.

Of course,

you can always take a different approach and design the numbers yourself.

The next step of the process is to initialise the code settings and start

~ & “

O

the countdown:

#Initialise settings

start = 10 message = “>

ws

") >")

404040404 v40407)

3

33333333:

222222 12222222: 2

333333353333333

")

nin)

The code in its entirety can be viewed from within our Code Repository: https:// bdmpublications.com/ code-portal, where you're free to copy it to your own Python IDLE and use it as you see Fit. The end effect is quite good and it'll be worth adding to your own games, or presentations, in Python.

BB Command Premet - p:thor

8

es

To extend the code, or make it easier to use, you can always create the number Functions in their own Python code, call it Count.py For example, then import Count at the beginning of anew Python File called Countdown.py, along with the OS and Time modules:

hee

avy

import os import time import count

input(“Press Enter to launch rocket...”

bee

a date worm

*e@SOES tan 1 O88,

count.seven() elif counter ==

ROLLING DIE Aside from the rocket animation, together with its countdown, another fun bit of text-based animation is that of a rolling dice. a great animation to include in an adventure game, where the player rolls to see what their score is compared to that of an enemy. The highest roller wins the round and the losers’ health drops as a result. It’s an age-old combat sequence, used mainly in the Dungeon and Dragons board games and Fighting Fantasy novels, but it works well.

Arolling dice can be

6:

count.six()

elif counter

elif elif

==

5:

66 0~G--

count.five() counter == 4: count. four() counter == 3: count.three() counter == 2: count. two() counter == 1: count.one()

The code you'll need to animate

Cergreu tees

distanceFromTop = 20

ow

while True: os.system(‘cls’ if os.name

==

ee

II

print(®

II

print(*

AN os.name

distanceFromTop -= 1 if distanceFromTop

Now create a folder

in

your Python code directory

on your computer (call it Test, for now), and open either Notepad for a Windows 10 computer, or, if you're using Linux, then the currently installed text editor. Click on the Select & Copy

button at the bottom of the ASCII Generator webpage, and paste the contents into the text editor.

Open up Python and create a New File. We're going to need to import the OS and Time modules for this

STEP 4

example, followed by a line to clear the screen of any content. If you're using Windows, then you'll use the CLS command, whereas it’s Clear For Linux. We can create a simple if/else statement to handle the command.

L&

*test.py

File

Edit

2

xt

-

C\Users\davicl Documents\Python\ Test\test.py (3.7.0)"

Format

Run

Options

Window

Help

os, time

os.system('cls' 1f

og.name

= ‘nt’

else ‘clear')

i

De

a «3,

9)

Os

§

at atiY

iets ert a w FT TOSg JU yal.

"wa :

oa

oS

Dy

Gat

he fp ae:

ee

TotO9*notbeauszeBoO* ae — re

one

Next we need to create a list of the names of the

Here's the code in full:

text Files we want to open, and then we need to

import os, time

open them for display in the Terminal.

filenames = frames = []

for

name

os.system(‘cls’ if

[“1.txt”, “2.txt”]

filenames = frames = []

in filenames:

with openCname, “r”, encoding="utf8”) as frames .append(f .readlines())

mun

ma

f:

for

os.name

[“1.txt”,

«2

==

‘nt’ else ‘clear’)

txt]

name in filenames: with openCname, “r”, encoding="utf8”) as

f:

frames .append(f .readlines()) r

for

in range(1@): for frame in frames: printC”. joinCframe)) time.sleep(1) 1

Pe. systemt

Kalenemes =

frames = veer

1%

[1 17

fre eutenameere, enaodingenuernny sranop append {texeaalioes))

4

os.system(‘cls’ if

ft

‘clear’)

os.name

==

‘nt’ else

Note from the loop within the code, we've used the same CLS and Clear if/else statement as before. Again, if you're running on Windows then the OS module will use the CLS command, ‘ELSE’ if you're using Linux or a Mac, the Clear command will work correctly. IF you want, you could use a Try/

STEP 9

We've used the UTF8 standard when opening the text files, as ASCll art as text, within a text File, often requires you to save the file as UTF compliant- due to the characters used. Now we can add a loop to display the files as 1.txt, then 2.txt, creating the illusion of animation while clearing the screen after each File is displayed. oS

Lee

Fe

;a

; bi

(>>

print (n)

Hangman:

~

8

init

def

(self,word):

self.word = word

self.missed_letters = [] self.quessed_letters = [] guess (self, letter): af letter in self.word and letter

def

(range(1, 11))

fh, 2, 3, 4, 5, 6, 7,

ofa

class Hangman: def guess(self, letter):

RESTART: C:\Users\david\Documents\Python\Space Invaders.py

>>> |

x

Help

Python 3.6.2 (v3.6.2:5fd33bS, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit on win32 Type "copyright", “credits” or “license(}™ for more information.

colon to the end

And so on. The colon is what separates the code, and creates the indents to which the following code belongs to.

to 10.

1

a

not

in

self.guessed_letters:

guessed_letters. append (letter) un self.word and letter not

9, 16)

>>>

in

self.missed_letters.append (letter) return return

def

hangman_won

if

CASE SENSITIVE

False

True

hangman_over (self): return self.hangman_won{) cr

def

(len(self.missed_letters)

==

6)

(self):

*_' not

return

self.missed_letters:

in

self.hide word(}: True

False

def hide_word(self):

Python is a case sensitive programming language, so you will need to check any variables you assign. For example, Lives=10 is a different variable to lives=10, calling the wrong variable in your code

fox letter in self.word: if letter not in self.gquessed_letters: +="

else: rtn +=

can have unexpected results.

return

letter

rtn

le Python 2.62 Shell |

File

Edit

Shell

Debug

Options

Window

Help

|

Python 3.6.2 on

wins?

(w3.6.2:5fd33b5, dul

Type "copyright", "credits™ 33> Lives=10 y>> lives=49 33> Print 10 4

or

§

2017, 04:14:3

"license{)}™

for

mor

(Lives, lives}

OPERATORS Using the wrong operator is also a common mistake to make. When you're performing a comparison between two values, for example, you need to use the equality operator (a double equals, ==). Using a single equal (=) is an assignment operator that places a value toa variable (such as, lives=10). 2

c=i1d

3

d=

4

b

10

==

5

BRACKETS Everyone forgets to include that extra bracket they should have added to the end of the statement. Python relies on the routine having an equal amount of closed brackets to open brackets, so any errors in your code could be due to you Forgetting to count your

brackets; including square brackets.

def print _game_status[self}:

print (board[len{self.missed letters}]} Print ("Word: ' + self.hide_word(}} print ("Letters Missed: ',} for letter in self.missed_letters: Print (letter,} Brint {} print ("Letters Guessed: ',} for letter

Erint

be=5

2

in self.guessed_ letters: Print [{letterz,}

{}

c

#false because

da

terae

5

net

equal te 10 equal te 19

ig

because 13 is

OPERATING SYSTEMS Writing code for multiple platforms is difficult, especially when you start to utilise the external commands of the operating system. For example, if your code calls for the screen to be cleared, then For Windows you would use cLs. Whereas, For Linux you need to use clear. You need to solve this by capturing the error and issuing it with an alternative command.

#

Code to

detect

error

for using

a

different

OS

run=1

while (run==1):

try: os.system(‘'clear')

except OSError:

os.system('cls') print (*\n>>>>>>>>>>Python

3

File Manager bool;

ty

Hees

1+

Call python from module and recene output ,

({noreturn]] virtual veid fee() everride;

hanchan «c2A de it by hand tut

othe Inga

Lam creeng

A

s

a

__Pfhion function error problom

My 1tonal shan ratuk

“Foo: T must be floating point")

fjoo

Newsletters.

Users

Top

rm

@b16;

template struct Foo {

iC

anaes

StackExchange”

LINE

thet pope? oe

pipe she

ha werd

i

Where Next?

GOING MOBILE

PORTFOLIOS

The mobile market is a great place to test your coding skills and present any games or apps you've created. IF your app is good, then who knows, it could be the next great thing to appear on the app stores. It’s good learning experience nevertheless, and something worth considering.

IF you've learned how to code with an eye for a developer in job the future, then it’s worth starting to build up an online portfolio of code. Look at job postings and see what skills they require,

a

then learn and code something with those skills and add it to the portfolio. When it comes to applying, include a link to the portfolio.

DP Google Play

My Work Want to sce more examples?

Sate. Shy

Chronicled.org

Bihra che

Sea account

ay

maoscognors

Reser

anyones

ay ome Wy

ecoony Peay

Puree Gus

Gawnauk @|

ONLINE LEARNING

TEACH CODE

Online courses are good examples of where to take your coding skills next, even if you start From the beginner level again. Often,

Can you teach? If your coding skills are spot on, consider approaching a college or university to see if they have need For a programming language teacher, perhaps a part-time or evening course, If not teaching, then consider creating your own YouTube how to code channel.

an online course follows a strict coding convention, so if you're self taught then it might be worth seeing how other developers lay out

their code, and what’s considered acceptable.

Learn to code interactively, for free.

C++ Programming

IN ONE ‘Sagn

up

Log

In

VIDEO

060

foe

hp

natant Mam

Whal people think programming is vs. how it actually is swe

aga

Choose a username I

Your amail ackdrexs

Choose » password

tm

nota robot

ee

SHARE CODE

HARDWARE PROJECTS

Get sharing, even if you think your code isn’t very good. The criticism, advice and comments you receive back help you iron out any issues with your code, and you add them all to your checklist. Alternatively your code might be utterly amazing but you won’t know unless you share it.

Contributing to hardware projects is great resource for proving your code with others and learning From other contributors. Many of the developer boards have postings for coders to apply to for hardware a

projects, using unique code to get the most from the hardware that’s

being designed.

Share Code in Real-time with Developers An online code editor for interviews, troubleshooting, teaching & more.

www.bdmpublications.com

ex)

Black Dog Media

at) Master Your Tech

To continue learning more about your tech visit us at:

www.bdmpublications.com FREE Tech Guides

: Apple iPhone, Lee) Mac, MacBook & Watch

ro

Lightroom

iPione

Gaerne

bdmpublications Buy our Photoshop guides and download tutorial images for free!

Cx jane

Galaxy Guidebook mar

iomoyson

ge

reas a5

Simply sign-up and get creative.

BDM's Manual Series Teh Edition

-Black Dog Media Limited (BDM) lames ..

Ayshford Karl Linstead bin Drew, Martin Smith, Lena Whitaker uss Ware, David Hayward lison Drew Mark

Printed and bound in Great Britain by: Acorn Web Offset Ltd Newsstand distribution by: Seymour Distribution Limited 2, East Poultry Avenue London EC1A 9PT

International distribution by: Pineapple Media Limited www.pineapple-media.com Digital distribution: Readly AB, Packetmags, Zinio, Cafeyn, Magzter and promotional opportunities contact: For all advertising [email protected] INTERNATIONAL LICENSING Black Dog Media has many great publications and all are available For ticensing worldwide. For more information go to: www.brucesawfordlicensing.com; email: [email protected] telephone: 0044 7831 567372

Copyright

2020 Black Dog Media. All rights reserved.

Editorial and design are the copyright Papercut Limited and are reproduced under licence to Black Dog Media. No part of this

BDM’s Manual Series is an independent publication and as such does not necessarily reflect the views or opinions of the

publication may be reproduced in any Form, stored ina retrieval system, or integrated into any other publication, database, or

producers contained within. This publication is not endorsed or associated in any way with The Linux Foundation, The Raspberry

commercial programs, without the express written permission of the publisher. Under no circumstances should this publication and its contents be resold, loaned out, or used in any form by way of

trade without the publisher's written permission. While we pride ourselves on the quality of the information we provide, Black Dog Media Limited reserves the right not to be held responsible for any

Foundation, ARM Holding, Canonical Ltd, Python, Debian Project, Lenovo, Dell, Hewlett-Packard, Apple, Microsoft and Samsung orany associate or affiliate company. All copyrights, trademarks and registered trademarks For the respective Pi

companies are acknowledged. Relevant graphic imagery reproduced with courtesy of Lenovo, Hewlett- Packard, Dell,

mistakes, or inaccuracies, found within the text of this publication. Due to the nature of the software industry, the publisher cannot guarantee that all tutorials will work on every version of Raspbian

Samsung, FUZE Technologies Ltd, and Apple. Additional images contained within this publication are

OS. It remains the purchaser's sole responsibility to determine the suitability of this book and its content For whatever purpose.

reproduced under licence from Shutterstock.com. Prices, international availability, ratings, titles and content are

Images reproduced on the front and back covers are solely for design purposes and are not representative of content. We

subject to change. All information was correct at time of print. Some content may have been previously published in other

advise all potential buyers to check listing prior to purchase For confirmation of actual content. All editorial opinion herein is that

of the reviewer as an individual and

not representative of the publisher or any of its affiliates. Therefore, the publisher holds no esponsibility in regard to editorial opinion and content. is

volumes or BDM titles. We advise potential buyers to check the suitability of contents prior to purchase.

Black Dog Media Limited (BDM) Registered in Engtand & Wales No: 5341514

i

The Complete

The Complete

Mac

|

Nikon

Manual

1

Manual

The Complete

Outdoor Photography

Manual

* The Complete

The Complete

MacBook

Photography

Manual

|

The Complete

Photoshop

The Complete

Raspberry Pi

Manual

Expert Tutorials to Improve Your Skills

Sone;(}

. The Complete

Lightroom

Ady

The Complete

macOS

Catalina Manual

—=

Expert Tutorials to Improve Your Skills

The Complete

Samsung Gala Manuel

The Complete

Python &

Windows 10 Manual

Photoshop

Elements

C++

: Manual

Expert Tutorials to Improve Your Skills

The Complete

The Complete

‘=gj

Expert Tutorials

to

Improve Your Skills

The Complete

macOS

Big Sur Manual.

Expert Tutorials to Improve Your Skills

iPad OS 14

Go Deep with Apple’s OS!

Jigswd