ISBN: 978-1-910523-11-7 - PG Online

2y ago
3 Views
1 Downloads
3.66 MB
25 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Fiona Harless
Transcription

Learning to Program inPython Cover picture:‘Fosse No.4’Oil on linen,30x30cm Barbara Burns 2015www.slaneart.comIt teaches basic syntax and programmingtechniques, and introduces three built-inPython modules: Tkinter, used for building a graphical userinterface, which is an option that some usersmay like to include in their project work. SQLite, which enables the creation andprocessing of a database from within a Pythonprogram. This provides an alternative to writingto a text file when data needs to be storedand retrieved. pdb, Python’s debugging module, which can beused to help find elusive logic errors.Learning to Program in PythonThis book is intended for individuals and studentslearning to program. You may already have donesome programming in other languages, but not befamiliar with Python. Novice programmers shouldwork through the book sequentially, starting atChapter 1. It will also be a useful reference bookfor students on a programming course or anyoneworking on a programming project. Learning to Program inPythonQuestions and exercises are included in everychapter. Answers to these, as well as over 120Python programs for all the examples and exercisesgiven in the book, may be downloaded fromwww.pgonline.co.uk. These programs enableusers of the book to try out the in-text examplesand check possible solutions to the exercises.PM HeathcoteISBN: 978-1-910523-11-7PM Heathcote

Learning to Program inPython P.M. HeathcotePublished byPG Online LimitedThe Old Coach House35 Main RoadTolpuddleDorsetDT2 7EWUnited Kingdomsales@pgonline.co.ukwww.pgonline.co.uk2017

Graphics: Paul Raudner / PG Online LtdDesign and artwork: PG Online LtdFirst edition 2017, reprinted June 2018A catalogue entry for this book is available from the British LibraryISBN: 978-1-910523-11-7Copyright PM Heathcote, 2017All rights reservedNo part of this publication may be reproduced, stored in aretrieval system, or transmitted in any form or by any meanswithout the prior written permission of the copyright owner.Printed and bound in Great Britainii

PrefaceProgramming is fun! Trial and error is to be encouraged and you should type all of theexamples and try all the exercises to get used to entering and debugging programsand to see how the programs run.Python is one of the most popular programming languages both in schools and inindustry. Python is used by Google, NASA, Instagram, Facebook and thousands ofother companies to develop their applications. It is easy to learn and is a suitablelanguage for tackling projects from school onwards.This book is intended for individuals and students who may have done someprogramming in other languages, but are not familiar with Python. It is intended thatusers of the book should work through the book sequentially, starting at Chapter 1.However, it will be a useful reference book for students on a programming course oranyone working on a programming project.It teaches basic syntax and programming techniques, and introduces three built-inPython modules: Tkinter, used for building a graphical user interface, which is an option that someusers may like to include in their project work. SQLite, which enables the creation and processing of a database from within aPython program. This provides an alternative to writing to a text file when dataneeds to be stored and retrieved. pdb, Python's debugging module, which can be used to help find elusivelogic errors.Questions and exercises are included throughout every chapter. Over 120 Pythonprograms for all the examples and exercises given in the book may be downloadedfrom www.pgonline.co.uk. We strongly advise you to write your own code, andcheck your solutions against the sample programs provided.Enjoy – the sky's the limit!Downloading Python 3Python is available to be downloaded free from https://www.python.org/downloads/.The version used in this book is version 3.6. All the programs have been written andtested in IDLE, Python’s own integrated development environment. Many schools andindividuals may prefer to use alternative development environments and the book isequally applicable to these.iii

ContentsChapter 1 – Data types, operators and I-O 1Programming in Python 1Programming in interactive mode 1Data types 2Rounding a result 3Naming objects 4Augmented assignment operators 6The print statement 6The input statement 9Chapter 2 – Strings and numbers 11Script mode 11Adding comments 12Keeping the console window open 12String methods 12Syntax errors 13Inputting numbers 14Converting between strings and numbers 15Functions and methods 16Chapter 3 – Selection 17Programming constructs 17Boolean conditions 18The elif clause 18Nested selection statements 19Complex Boolean expressions 19Importing library modules 20v

Chapter 4 – Iteration 22The for loop 22The while loop 24String processing 25Slicing strings 27Interrupting execution 28Chapter 5 – Lists and tuples 29Python lists 29Operations on lists 30Appending to a list 31List processing 32Two-dimensional lists 33Tuples 35Chapter 6 – Validating user input Validating user input 37The ASCII code 38Functions ord() and chr() 40Regular expressions 41Chapter 7 – Searching and sorting 44Dictionary data structure 44Storing a list in a dictionary 47Sorting a list 47Sorting a two-dimensional list 47Chapter 8 – Functions vi3750Types of subroutine 50Built-in functions 50Writing your own functions 51

Using parameters and return values 52A note about procedures and functions 55Local and global variables 56Chapter 9 – Reading and writing files 59Storing data 59Records and fields 59Opening, reading and closing a text file 60Writing to a file 64File processing 65Formatting output 68Chapter 10 – Databases and SQL 71Flat file databases 71Records, fields and primary keys 72Querying a database 73Adding a record to a database table 73Updating a record 74Deleting records from a table 74Chapter 11 – Python’s SQLite module 76Using SQL commands in a Python program 76Creating a database 76Importing data from a text file 78Creating a new database and loading it with data 80Querying the database 81Adding records entered by the user 83Trapping errors 84Deleting a record 84Updating the database 85vii

Chapter 12 – Introduction to Tkinter 88The Python Tkinter module 88The “Hello World” program 89Widgets 90Placing widgets in a window 91Responding to user input 92Setting window parameters 93Chapter 13 – Developing an application using Tkinter 95Sample Application 1 95Designing the data input window 95Building the form 96Sample Application 2 102Sample Application 3 106Chapter 14 – Program design 110Planning a program 110The sample task 110Chapter 15 – Testing and debugging 113Drawing up a test plan 113Python module pdb 115Index 119viii

Chapter 1Data types, operators and I-OObjectives Run commands in interactive mode Use string, numeric and Boolean data types and operators Learn the rules and guidelines for naming variables Use input and output statementsProgramming in PythonPython is a popular, easy-to-learn programming language. A Python program is simplya series of instructions written according to the rules or syntax of the language, usuallydesigned to perform some task or come up with a solution to a problem. You write theinstructions, and then the computer translates these instructions into binary machinecode which the computer can execute. It will do this using a translator program,which could be either a compiler or an interpreter. Python uses elements of both aninterpreter and a compiler.1Python comes with an integrated development environment called IDLE whichenables you to enter your program, save it, edit it, translate it to machine code and runit once it is free of syntax errors. If you have written a statement wrongly, that will bereported by the interpreter as a syntax error, and you can correct it and try again.Programming in interactive modePython has two modes of entering and running programs. In interactive mode, youcan type instructions and Python will respond immediately. This is very useful for tryingout statements that you are not sure about, and is a good place to start. However, youcannot save a program that you have written in interactive mode. This has to be donein script mode, described in the next chapter.1

Chapter 2Strings and numbersObjectives write and execute programs in script mode learn some useful string methods and functions convert string input to numerical values and vice versa identify and correct syntax errorsScript modeIn the last chapter we used interactive mode, which allows you to test outdifferent Python statements and gives instant feedback. However, if you want tosave a program so that you can load and run it later, you need to use script mode.Alternatively, you can use one of the many interactive development environments(IDEs) that are available to create, edit, save and run Python programs. In this book thescreenshots show programs entered and executed in Python IDLE.2You can open an Editor window in Python’s IDLE (integrated developmentenvironment) from the interactive Shell window. Select File, New File from the menubar, and a new window will open. In this window, type a one-line program: Before you can run the program, you must save it, so select File, Save from themenu bar and save it with the name hello world.py in a suitable folder Then select Run, Run Module from the menu or use the shortcut key F5 The interactive window will appear with the result:Hello World11

LEARNING TO PROGRAM IN PYTHONYou can leave the interactive window open while you are writing programs in scriptmode. That way, if you are not sure about a statement, you can try it before writing it inyour program.Adding commentsIt’s a good idea to include comments at the top of every program (beyond the verytrivial) that you write, giving the name and purpose of the program, your name and thedate you wrote the program. You may also want to document in which folder you havesaved it so you can quickly find it again after a few weeks or months.Within the program, add comments to explain the purpose of any tricky bit of codeand how it works.To write a comment, type the # symbol. Anything to the right of # will be ignored.Keeping the console window openIf you run the Python program by double-clicking its name in your folder, ratherthan launching it from IDLE, the program will run and then the console window willimmediately close so that you can’t see what happened. To keep it open, add a line tothe end of your program:input("\nPress Enter to exit: ")The window will remain open until the user presses the Enter key.2String methodsEvery data type in Python is an object. Strings, integers and floating point numbersare all objects, and they have built-in methods which perform useful tasks. Someuseful string methods are shown in Table 2.1.Method ExampleDescriptionupperastring.upper()returns astring all in uppercaselowerastring.lower()returns astring all in item)replaceastring.replace(old,new)returns the index of the first occurrence ofitem in astring, or an error if not foundreturns the index of the first occurrence ofitem in astring, or -1 if not foundreplaces all occurrences of old substringwith new in astringTable 2.1: String methods12

LEARNING TO PROGRAM IN PYTHONThere is a missing comma before the variable name astring. You can click OK,correct the error, resave and try again.Q1There are two more errors in the program. Can you spot them?Inputting numbersA simple program to find the cost of lunch is shown below.Example 32#Program name: Ch 2 Example 3 Cost of lunch.pymain 3.00juice 0.75banana 1.00total main juice bananaprint("Total for lunch: ",total)This prints outTotal for lunch: 4.75Example 4To make the program more useful, we could ask the user to enter the cost of the maincourse, juice and banana. Here is a first attempt:#Program name: Ch 2 Example 4 Cost of lunch v2.pymain input("Enter cost of main course: ")juice input("Enter cost of juice: ")banana input("Enter cost of banana: ")total main juice bananaprint("Total for lunch: ",total)14

LEARNING TO PROGRAM IN PYTHONQ1Write Python code to do the following:(a)  Print the numbers 10 - 0 starting at 10. Then print “Lift-off!” Import thetime module at the start of the program with the statement importtime. Include a time delay of 1 second before printing each number, usingthe statement time.sleep(1).(b)   Ask the user to enter 5 numbers. Keep a running total and print the totaland average of the numbers.The while loopThe while loop is used when the number of times the loop will be performed isinitially unknown. The loop is performed as long as a specified Boolean condition isTrue. If the condition is False before the while statement is encountered, the loopwill be skipped.The Boolean condition is tested in the while statement at the start of the loop, andagain each time the loop is completed. If it becomes True halfway through the loop,the remaining statements in the loop will be executed before the condition is re-tested.Example 3Write code to accept a series of integer test results from a user, find and print themaximum and minimum results. Assume all the results are between 0 and 100. Theend of the input is signalled by an input of -1.4#Program name: Ch 4 Example 3 max and min.pytestResult int(input("Please enter test result: "))# Set maximum and minimum to first test resultmaxResult testResultminResult testResultwhile testResult ! -1:if testResult maxResult:maxResult testResultif testResult minResult:minResult testResulttestResult int(input("Please enter test result (-1 tofinish): "))print("\nMaximum test result ", maxResult)print("Minimum test result ", minResult)24

LEARNING TO PROGRAM IN PYTHON9Formatting outputThe data printed above would look much better printed neatly in columns, with columnheadings at the top.Format operatorsTo do this, Python provides format operators which are used to produceformatted strings.The % operator is a string operator called the format operator. Using the formatoperator, instead of writing something likeprint(city, temperatureC, localTime)the statement is written asprint("%s,%d,%s" %(city, temperatureC, localTime))We can try this out in IDLE to see what the output looks like: city "London" temperatureC 7 localTime "1200" print("%s,%d,%s" %(city, temperatureC, localTime))London,7,1200 print("The temperature in %s was %d degrees C at %s"%(city,temperatureC,localTime))The temperature in London was 7 degrees C at 1200The formatting expression is divided into two parts.The first part, "%s,%d,%s", contains one or more format specifications. A conversioncharacter tells the format operator what type of value is to be inserted into that positionin the string; %s indicates a string, %d indicates an integer.The second part, %(city, temperatureC, localTime), specifies the valuesthat are to be printed.Q3Write statements to do the following:set a 3, b 4, c a b, d a * b.Use format operators to print the statements:3 4 7The product of 3 and 4 is 1268

Chapter 10Databases and SQLObjectives Learn how data is held in a database so that information can be easily added,deleted, amended and retrieved Learn some database terms: table, record, field, primary key Write SQL statements to create a database table and add, update or delete data inthe table Write SQL statements to query a databaseFlat file databasesA database is a collection of records held in a number of different tables. In this bookwe will be concerned only with flat file databases, which contain just one table.10Within a database table, data is held in rows, with each row holding information aboutone person or thing. The data about city temperatures that we held in a text file in thelast chapter could be held in a database table like ad201500Winnipeg-120600New York140700Nairobi271500Sydney222300London71

Chapter 13Developing an applicationusing TkinterObjectives Design and implement a data entry form for a given application Implement actions to be performed when a button is clicked Use a message window to give information to the user Close the Tk window and continue or end the programSample Application 1This chapter describes how you might set about developing a GUI applicationusing Tkinter. The sample application will display a data entry screen to enable ateacher or administrator to enter a user ID, first name and surname for a student.13Designing the data input windowYou should start by hand drawing a rough design for your form, perhaps somethinglike the image below.95

LEARNING TO PROGRAM IN PYTHONCreating the root windowThe parameters of the root window will be set in the same way as in Example 3 of theprevious chapter.#create a fixed size windowroot Tk()root.geometry("270x240")root.title("Student details")root.resizable (False, False)root.configure(background "Light blue")Creating the framesIt’s useful to draw a grid over the window design so we can easily see in which rowand column within a particular frame each widget is to be placed.Column 0Student details formRow 013Column 1Row 0UsernameRow 1First nameRow 2SurnameRow 2SubmitFrame 1Frame 2ClearRootwindowWithin each frame, the first row is Row 0, the second row is Row 1 and so on. The twobuttons are in the main window, not in a frame, so they are in Row 2 with referenceto the window, since Frame 1 is in Row 0 of the window and Frame 2 is in Row 1 ofthe window. Note that the rows do not have to be the same height – their height isdetermined by their contents.98

LEARNING TO PROGRAM IN PYTHONSample Application 2In this application, the user will log on by typing a username and password. If thepassword is incorrect, an error message will be displayed, the username field and thepassword will be cleared and the user can press a Password hint button to help themget their password correct. In this example, the password is “aaaaaa”. The user nameis not checked. The input screen looks like this:Once the password has been entered correctly, another message window is displayedinviting the user to continue. Once they press OK, the message box and the mainwindow close and control passes back to the program, where the user could entersome data, play a game, take a test or perform any other task. In this example theprogram simply prints “carry on now ” and ends.13The password typed by the user will be replaced by asterisks on the screen, as asecurity measure. This is achieved by including the parameter show "*" in theEntry widget:entry password Entry(frame entry,width 15,bg "white",show "*")Using a message boxThe messagebox widget is not one of Tkinter’s standard widgets, so you needto include the statement from tkinter import messagebox at the top ofthe program.A message box is useful for alerting the user to an error or to give them information. Inthis application we will use two message boxes. The first one pops up with a messagewhen they press a Password hint button if they have forgotten their password. Itis common practice in many login routines to include a button to click if you haveforgotten your password – normally the system will reset the password and email you anew one.102

messagebox.showinfo( title "Password hint",message "Hint: Try password aaaaaa")This generates the pop-up window, and the user must click OK to continue.Once the user presses the Submit button, the program checks the password and ifcorrect, displays a message “Password accepted” and a message box to allow theuser to continue.Note: The password and hint in this example are clearly used for testing purposes only;in a real situation, the password and the hint would be something that the user hadoriginally supplied, such as a hint “Grandmother’s birthday” to accompany a passwordsuch as GMa221155, to remind them what password they had specified.DEVELOPING AN APPLICATION USING TKINTERThe Python code to display the message box isClosing the Tkinter GUIThe window named root is closed in the submit function with the statementroot.destroy()Control then passes back to the statement following the root.mainloop()statement and the program continues.13The complete listing is shown below.#Program name: Ch 13 Sample app 2 validate password aaaaaa.py#Program asks user to login, then checks password#In this program, password is "aaaaaa"from tkinter import *from tkinter import messageboxdef submit():password entry password.get()username entry username.get()messageAlert Label(root,width 30)messageAlert.grid(row 3, column 0, columnspan 2, padx 5,pady 5)103

LEARNING TO PROGRAM IN PYTHON13if password ! "aaaaaa":messageAlert.config(text "Password incorrect")entry username.delete(0,"END")entry password.delete(0,"END")entry username.focus set()else:messageAlert.config(text "Password accepted")print("password accepted")print("Username: ", username)print("Password: ", password)messagebox.showinfo(title "Password OK",message "Press OK to continue")root.destroy()# display a message box with a hint for passworddef hint():messagebox.showinfo(title "Password hint",message "Hint: Try password aaaaaa")#create the main windowroot Tk()root.geometry("250x180")root.title("Login Screen")root.resizable (False, False)root.configure(background "Light blue")#place a frame round labels and user entriesframe entry Frame(root)#frame entry.pack(padx 10, pady 10)frame entry.grid(row 0, column 0, columnspan 2,padx 10, pady 10)#place a frame around the buttonsframe buttons Frame(root)frame buttons.grid(row 2, column 0, columnspan 3,padx 10, pady 10)#place the labels and text entry fieldsLabel( frame entry, text "Enter username: ").grid(row 0,column 0, padx 5, pady 5)104

Label( frame entry, text "Enter password: ").grid(row 1,column 0, padx 10, pady 10)# The parameter show "*" will cause asterisks to appear# instead of the characters typed by the userentry password Entry(frame entry, width 15, bg "white",show "*")entry password.grid(row 1, column 1, padx 5,pady 5)#place the submit buttonsubmit button Button(frame buttons, text "Submit",width 8, command submit)submit button.grid(row 0, column 0, padx 5, pady 5)#place the Hint buttonhint button Button(frame buttons, text "Password hint",width 15, command hint)hint button.grid(row 0, column 1, padx 5, pady 5)#run mainlooproot.mainloop()print("carry on now.")DEVELOPING AN APPLICATION USING TKINTERentry username Entry(frame entry, width 15, bg "white")entry username.grid(row 0, column 1, padx 5, pady 5)13105

LEARNING TO PROGRAM IN PYTHONSample Application 3This application allows a user (for example, a teacher) to create a multiple choice testconsisting of several questions which could be saved in a text file or database. Theinput window will look like this:The skeleton code is given below. There are several new features covered in the code.Notes below the code explain the lines indicated by Note 1, Note 2 etc.13#Program name: Ch13 Sample app 3 multiple choice test entry.py#Program to allow entry of questions for a multiple choice test#Questions and correct answer are printed#and could be sent to a file for permanent storagefrom tkinter import *from tkinter import ttk Note 1# functions executed when a button is presseddef submit():if questionNumber.get() "1":print("Test name", testname.get())print("Question number: ",questionNumber.get())print("Question stem: ",questionStem.get(1.0,END)) print("Possible answers: ")print(possibleAnswers.get(1.0, END))print("Correct answer: ", correctAnswer.get(), "\n")106Note 2

Aarithmetic operators, 3ASCII code, 38assignment statement, 5attribute, 72augmented assignmentoperators, 6BBooleanconditions, 18expressions, 19variable, 18break statement, 26Cclear() function, 100close() method, 77combo box, 108comma separator, 6comments, 12commit() method, 77, 85compiler, 1concatenate, 2connection object, 76console window, 12container data types, 44conversion functions, 15cursor object, 77Ddata typeBoolean, 4numeric, 2string, 2databaseflat file, 71query, 72, 81database tableadd new record, 73create, 77delete a record, 74update a record, 74del, 46INDEXIndexdictionary, 44methods, 45div, 3docstring, 52EEditor window, 11elif, 18endin print statement, 8, 63escape sequence, 7, 32executemany, 80Ffield, 60, 72fileopen, 60process, 65read, 61, 63write, 64flag, 40flat file database, 71float() function, 15floating point, 2for loop, 22formatcheck, 37, 41modifier, 69operator, 68output, 68frame, 96place in window, 99function, 16, 50, 55built-in, 50conversion, 15parameters, 52programmer-written, 51return values, 52GGeometry ManagerGrid, 91Pack, 91Place, 92global variable, 57Graphical User Interface, 88GUI, 88Iidentifier, 4, 72IDLE, 1indexing strings, 26input statement, 9inputting numbers, 14int() function, 15integer, 2integer division, 3integrated developmentenvironment, 1interactivemode, 1window, 2interpreter, 1interrupt execution, 28, 115iteration, 17Jjustifyleft or right, 109KIkill program, 28Llambda keyword, 48length check, 37list, 29append, 31methods, 30two-dimensional, 33local variable, 56logic errorfinding, 115logical operator, 4long statement, 8Mmainloop(), 93, 109message box, 102119

LEARNING TO PROGRAM IN PYTHONmethod, 16methodsstring, 12mod, 3modeappend, 64write, 64multi-line statement, 8mutable, 44Nnested loops, 23nested selection statement, 19newline, 7None keyword, 30Oobject, 4, 12openmode, 61operatorlogical, 4relational, 4outputformatted, 67PI120pack() method, 90padding, 93parameters, 52pdb module, 115placing widgets, 91planning a program, 110primary key, 72print, 6on same line, 8procedure, 50, 55pseudocode, 111Python Shell window, 2, 11QTquote mark, 2tab, 7, 32terminate program, 28test plan, 113text file, 59Tkinter module, 88trace, 115trapping errors, 38, 84triple quotes, 8, 52try except, 38, 84ttk module, 109tuple, 35type check, 38Rrandint() function, 20random number, 20record, 60, 72regular expression, 41relational operator, 4return values, 52, 54, 55root window, 57, 98round() function, 3Sscript mode, 1, 11selection, 17separator, 7sequence, 17Shell window, 2slicing strings, 27sortlist, 47table, 48spacesin statements, 4SQL, 72command, 77SQLite, 76str() function, 7, 15string, 2string processing, 25Structured Query Language, 72submit() function, 100subroutine, 50syntax error, 13Vvalidation, 37variableglobal, 57local, 56name, 4, 5Wwhile loop, 24widget, 90button, 90combo box, 108label, 91place in window, 91text, 109windowclose, 103master, 98setting parameters, 93with connection, 85

Learning to Program inPython Cover picture:‘Fosse No.4’Oil on linen,30x30cm Barbara Burns 2015www.slaneart.comIt teaches basic syntax and programmingtechniques, and introduces three built-inPython modules: Tkinter, used for building a graphical userinterface, which is an option that some usersmay like to include in their project work. SQLite, which enables the creation andprocessing of a database from within a Pythonprogram. This provides an alternative to writingto a text file when data needs to be storedand retrieved. pdb, Python’s debugging module, which can beused to help find elusive logic errors.Learning to Program in PythonThis book is intended for individuals and studentslearning to program. You may already have donesome programming in other languages, but not befamiliar with Python. Novice programmers shouldwork through the book sequentially, starting atChapter 1. It will also be a useful reference bookfor students on a programming course or anyoneworking on a programming project. Learning to Program inPythonQuestions and exercises are included in everychapter. Answers to these, as well as over 120Python programs for all the examples and exercisesgiven in the book, may be downloaded fromwww.pgonline.co.uk. These programs enableusers of the book to try out the in-text examplesand check possible solutions to the exercises.PM HeathcoteISBN: 978-1-910523-11-7PM Heathcote

It teaches basic syntax and programming techniques, and introduces three built-in Python modules: Tkinter, used for building a graphical user interface, which is an option that some users may like to include in their project work. SQLite, which enables the creation and processing of

Related Documents:

FAKTUM kitchen with APPLÅD white doors/drawer fronts andAVSIKT glass doors 4480 Breakfast bar supported by VIKA BYSKE leg. AVSIKT horizontal tempered glass/aluminium doors. Styled with EXAKT knobs. White painted fi nish. What’s in the price? See p. 5. RATIONELL series Suitable for W60cm FAKTUM base cabinet, sold separately.Under oven interior

2nd Edition ISBN 978 1 4504 0161 6 16.99 / 21.99 Mastering Mountain Bike Skills, 2nd Edition ISBN 978 0 7360 8371 3 15.99 / 19.20 Archery, 3rd Edition ISBN 978 0 7360 5542 0 12.99 / 15.60 Advanced Marathoning, 2nd Edition ISBN 978 0 7360 7460 5 12.99 / 15.60 Periodization Training for Sports, 2nd Edition ISBN 978 0 7360 5559 8

Publishing with KDP Print Sleeping Cat Books https://sleepingcatbooks.com 6 Print ISBN - Select either Get a free KDP ISBN or Use my own ISBN. o Get a free KDP ISBN - Click Assign me a free KDP ISBN, then Assign ISBN. o Use my own ISBN - If you select to use your own ISBN, enter the ISBN and imprint name. Both fields must match the entry in the ISBN database exactly, including

Test Bank 978 0 131 84930 3 TestGen CD-ROM 978 0 131 95954 5 Fundamentals of English Grammar Intermediate: Third Edition Student Book 978 0 13 246932 6 Student Book (w/AK) 978 0 13 707169 2 Student Book A (w/o AK) 978 0 13 138353 1 Student Book B (w/o AK) 978 0 13 707523 2 Workbook (w AK) 978 0 13 802212 9 Workbook A (w/AK) 978 0 13 707524 9 Workbook B (w/AK) 978 0 13 707490 7 Teacher’s .

ISBN-10: 1598290061, ISBN-13: 978-1598290066. 3. Human Identification Based on Gait, Springer, Mark Nixon, Tieniu Tan and Rama Chellappa, 2005. ISBN: 978-0-387-29488-9. 4. Unconstrained Face Recognition, Springer, Shaohua Zhou and Rama Chellappa, 2005. ISBN: 978-0-387-29486-5. 5. Statis

The Giraffe the Pelly and Me 978-0-14-241384-5 Going Solo 978-0-14-241383-8 James and the Giant Peach 978-0-14-241036-3 The Magic Finger 978-0-14-241385-2 Matilda 978-0-14-241037-0 The Minpins 978-0-14-241474-3 The Twits 978-0-14-241039-4 The Witches 978-0-14-241011-0 Revolting Recipes

Mastering Change - Introduction to Organizational Therapy by Ichak Kalderon Adizes ISBN: 978-0937120323 The Mentor in Me by William Todd ISBN: 978-0998327709 Mindset – How You Can Fulfil Your Potential by Dr. Carol S. Dweck ISBN: 978-1472139955 The Mystic Path to Cosmic Power by Vernon Howard ISBN: 978-1934162637 1000 CEOs by Andrew Davidson

AS Edexcel (2008) ISBN: 978-0-340-95760-8 A2 Edexcel (2009) Author: George Facer ISBN: 978-0-340-95761-5 Edexcel Chemistry for A2 Authors: Graham Hill and Andrew Hunt ISBN: 978 0340 959305 Edexcel Chemistry for AS Authors: Graham Hill and Andrew Hunt ISBN: 978 0340 94908 5 Course text books: Edexcel A Le