Python and Algorithmic Thinking for the Complete Beginner Kindle Edition Part of Copyright © 2015 by Aristides S Bouras and Loukia V Ainarozidou http://www.bouraspage.com Python and PyCon are trademarks or registered trademarks of the Python Software Foundation Eclipse™ is a trademark of Eclipse Foundation, Inc PyDev is a trademark of Appcelerator Oracle and Java are registered trademarks of Oracle and/or its affiliates PHP is a copyright of the PHP Group The following are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries: Microsoft, Windows, IntelliSense, SQL Server, VBA, Visual Basic, and Visual C# Other names may be trademarks of their respective owners All rights reserved No part of this book may be reproduced or transmitted in any form or by any means, mechanical or electronic, including photocopying, recording, or by any information storage and retrieval system, without written permission from the authors Warning and Disclaimer This book is designed to provide information about learning “Algorithmic Thinking,” mainly through the use of Python programming language Every effort has been taken to make this book compatible with all releases of Python 3.x, and it is almost certain to be compatible with any future releases of Python The information is provided on an “as is” basis The authors shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book or from the use of the files that may accompany it This book is dedicated to you, the reader, in the hope that you enjoy what you learn and reach your goals through it Contents at a Glance Preface………… Section Introductory Knowledge 14 Chapter How a Computer Works 15 Chapter Python 21 Chapter Software Packages to Install 24 Review Questions in “Introductory Knowledge” 30 Section Getting Started with Python 31 Chapter Introduction to Basic Algorithmic Concepts 32 Chapter Variables and Constants 45 Chapter Handling Input and Output 55 Chapter Operators 63 Chapter Trace Tables 76 Chapter Using Eclipse 84 Review Questions in “Getting Started with Python” 103 Section Sequence Control Structures 105 Chapter 10 Introduction to Sequence Control Structures 106 Chapter 11 Manipulating Numbers 113 Chapter 12 Complex Mathematical Expressions 126 Chapter 13 Exercises With a Quotient and a Remainder 132 Chapter 14 Manipulating Strings 142 Review Questions in “Sequence Control Structures” 159 Index 160 Table of Contents Preface………… About the Authors Acknowledgments 10 How This Book is Organized 10 Who Should Buy This Book? 10 Where to Find Answers to Review Questions and Exercises 11 How to Report Errata 11 Conventions Used in This Book 12 Section Introductory Knowledge 14 Chapter How a Computer Works 15 1.1 Introduction 15 1.2 What is Hardware? 15 1.3 What is Software? 16 1.4 How a Computer Executes (Runs) a Program 16 1.5 Compilers and Interpreters 16 1.6 What is Source Code? 17 1.7 Review Questions: True/False 17 1.8 Review Questions: Multiple Choice 18 Chapter Python 21 2.1 What is Python? 21 2.2 What is the Difference Between a Script and a Program? 21 2.3 Why You Should Learn Python 21 2.4 How Python Works 22 Chapter Software Packages to Install 24 3.1 How to Set Up Python 24 3.2 Eclipse 25 3.3 How to Set Up Eclipse 26 Review Questions in “Introductory Knowledge” 30 Section Getting Started with Python 31 Chapter Introduction to Basic Algorithmic Concepts 32 4.1 What is an Algorithm? 32 4.2 The Algorithm for Making a Cup of Tea 32 4.3 Properties of an Algorithm 32 4.4 Okay About Algorithms But What is a Computer Program Anyway? 33 4.5 The Party of Three! 33 4.6 The Three Main Stages Involved in Creating an Algorithm 33 4.7 Flowcharts 34 4.8 4.9 4.10 4.11 What are ”Reserved Words”? 37 What is the Difference Between a Statement and a Command? 37 What is Structured Programming? 38 The Three Fundamental Control Structures 38 4.12 4.13 4.14 4.15 4.16 4.17 Your First Python Program 40 What is the Difference Between Syntax Errors and Logic Errors? 40 Commenting Your Code 40 User-Friendly Programs 41 Review Questions: True/False 41 Review Questions: Multiple Choice 43 Exercise 4.7-1 Finding the Average Value of Three Numbers 36 Exercise 4.11-1 Understanding Control Structures Using Flowcharts 38 Chapter Variables and Constants 45 5.1 What is a Variable? 45 5.2 What is a Constant? 47 5.3 How Many Types of Variables and Constants Exist? 50 5.4 Rules for Naming Variables in Python 51 5.5 What Does the Phrase “Declare a Variable” Mean? 51 5.6 How to Declare Variables in Python 52 5.7 How to Declare Constants in Python 52 5.8 Review Questions: True/False 52 5.9 Review Questions: Multiple Choice 53 5.10 Review Exercises 54 Chapter Handling Input and Output 55 6.1 Which Statement Outputs Messages and Results on a User’s Screen? 55 6.2 How to Alter the Default Behavior of a print Statement 56 6.3 Which Statement Lets the User Enter Data? 59 6.4 Review Questions: True/False 61 6.5 Review Questions: Multiple Choice 62 Chapter Operators 63 7.1 The Value Assignment Operator 63 7.2 Arithmetic Operators 66 7.3 What is the Precedence of Arithmetic Operators? 67 7.4 Compound Assignment Operators 69 Exercise 7.4-1 Exercise 7.4-2 Which Python Statements are Syntactically Correct? 69 Finding Variable Types 70 7.5 String Operators 70 7.6 7.7 Review Questions: True/False 71 Review Questions: Multiple Choice 72 Exercise 7.5-1 Concatenating Names 71 7.8 Review Exercises 74 Chapter Trace Tables 76 8.1 What is a Trace Table? 76 Exercise 8.1-1 Exercise 8.1-2 Exercise 8.1-3 Exercise 8.1-4 Exercise 8.1-5 8.2 8.3 Creating a Trace Table 77 Swapping Values of Variables 77 Swapping Values of Variables – An Alternative Approach 80 Creating a Trace Table 80 Creating a Trace Table 81 Review Questions: True/False 82 Review Exercises 82 Chapter Using Eclipse 84 9.1 Creating a New Python Project 84 9.2 Writing and Executing a Python Program 89 9.3 What “Debugging” Means 92 9.4 Debugging Python Programs with Eclipse 93 9.5 Review Exercises 101 Review Questions in “Getting Started with Python” 103 Section Sequence Control Structures 105 Chapter 10 Introduction to Sequence Control Structures 106 10.1 What is the Sequence Control Structure? 106 Exercise 10.1-1 Exercise 10.1-2 Exercise 10.1-3 Exercise 10.1-4 Exercise 10.1-5 Exercise 10.1-6 Exercise 10.1-7 Exercise 10.1-8 10.2 Calculating the Area of a Parallelogram 106 Calculating the Area of a Circle 107 Calculating Fuel Economy .107 Where is the Car? Calculating Distance Traveled 108 Kelvin to Fahrenheit 109 Calculating Sales Tax 109 Calculating a Sales Discount 110 Calculating the Sales Tax Rate and Discount 111 Review Exercises 111 Chapter 11 Manipulating Numbers 113 11.1 Introduction 113 11.2 Useful Mathematical Functions, Methods and Constants 114 Exercise 11.2-1 Calculating the Distance Between Two Points 120 Exercise 11.2-2 How Far Did the Car Travel? 121 11.3 11.4 11.5 Review Questions: True/False 122 Review Questions: Multiple Choice 123 Review Exercises 124 Chapter 12 Complex Mathematical Expressions 126 12.1 Writing Complex Mathematical Expressions 126 Exercise 12.1-1 Representing Mathematical Expressions in Python 126 Exercise 12.1-2 Writing a Mathematical Expression in Python 127 Exercise 12.1-3 Writing a Complex Mathematical Expression in Python 127 12.2 Review Exercises 129 Chapter 13 Exercises With a Quotient and a Remainder 132 13.1 Introduction 132 Exercise 13.1-1 Exercise 13.1-2 Exercise 13.1-3 Exercise 13.1-4 13.2 Calculating the Quotient and Remainder of Integer Division 132 Finding the Sum of Digits .133 Displaying an Elapsed Time 139 Reversing a Number .140 Review Exercises 141 Chapter 14 Manipulating Strings 142 14.1 Introduction 142 14.2 Retrieving Individual Characters From a String 143 Exercise 14.2-1 Finding the Sum of Digits .144 14.3 Retrieving a Portion From a String 145 14.4 Useful String Functions, Methods, and Constants 147 Exercise 14.3-1 Displaying a String Backwards 146 Exercise 14.4-1 Exercise 14.4-2 Exercise 14.4-3 Exercise 14.4-4 14.5 14.6 14.7 Switching the Order of Names 151 Creating a Login ID 152 Creating a Random Word 153 Reversing a Number .154 Review Questions: True/False 155 Review Questions: Multiple Choice 156 Review Exercises 158 Review Questions in “Sequence Control Structures” 159 Index 160 Preface………… About the Authors Aristides S Bouras Aristides1 S Bouras was born in 1973 During his early childhood, he discovered a love of computer programming He got his first computer at the age of 12, a Commodore 64, which incorporated a ROM-based version of the BASIC programming language and 64 kilobytes of RAM!!! He holds a degree in Computer Engineering from the Technological Educational Institute of Piraeus, and a degree in Electrical and Computer Engineering from the Democritus Polytechnic University of Thrace He worked as a software developer at a company that specialized in industrial data flow and labelling of products His main job was to develop software applications for data terminals, as well as PC software applications for collecting and storing data on ® a Microsoft SQL Server He has developed many applications such as warehouse managing systems and websites for companies and other organizations Nowadays, he works as a high school teacher He mainly teaches courses in computer networks, programming tools for the Internet/intranets, and databases He is married to Loukia V Ainarozidou and they have two children Loukia V Ainarozidou Loukia V Ainarozidou was born in 1975 She got her first computer at the age of 13, an Amstrad CPC6128 with 128 kilobytes of RAM and an internal 3-inch floppy disk drive!!! She holds a degree in Computer Engineering from the Technological Educational Institute of Piraeus, and a degree in Electrical and Computer Engineering from the Democritus Polytechnic University of Thrace She worked as a supervisor in the data logistics department of a company involved in the packaging of fruit and vegetables Nowadays, she works as a high school teacher She mainly teaches courses in computer networks, computer programming, and digital design She is married to Aristides S Bouras and they have two children Aristides (530 BC–468 BC) was an ancient Athenian statesman and general The ancient historian Herodotus cited him as “the best and most honorable man in Athens.” He was so fair in all that he did that he was often referred to as “Aristides the Just.” He flourished in the early quarter of Athens’s Classical period and helped Athenians defeat the Persians at the battles of Salamis and Plataea 10 Acknowledgments If it weren’t for Dr Yannis T Kappos, we may never have written this book As a renowned author of technical books on AutoCAD, he inspired us to take a seat and start writing We wish to express our enormous appreciation to him for generously spending his time answering all of our questions—even the foolish ones We would also like to extend our thanks, with particular gratefulness, to our friend and senior editor Victoria (Vicki) Austin for her assistance in copy editing Without her, this book might not have reached its full potential With her patient guidance and valuable and constructive suggestions, she helped us bring this book up to a higher level! How This Book is Organized The book you hold in your hands follows the spiral curriculum teaching approach, a method proposed in 1960 by Jerome Bruner, an American psychologist According to this method, as a subject is being taught, basic ideas are revisited at intervals—at a more sophisticated level each time—until the reader achieves a complete understanding of the subject First, the reader learns the basic elements without worrying about the details Later, more details are taught and basic elements are mentioned again and again, eventually being stored in the brain’s long term memory According to Jerome Bruner, learning requires the student’s active participation, experimentation, exploration, and discovery This book contains many examples, most of which can be practically performed This gives the reader the opportunity to ® get his or her hands on Python and become capable of creating his or her own programs Who Should Buy This Book? This book is for anyone who wants to learn computer programming and knows absolutely nothing about it Of course, if you are wondering whether this book is going to teach you how to create amazing applets or incredible desktop or mobile applications, the answer is “no”—that is a job for other books So many books out there can teach you those skills in Python, C#, or Java Many of them even claim that they can teach you in 24 hours! Don’t laugh! They probably can that, but all of them take one thing for granted—that the reader knows some basics about computer programming None of those books, unfortunately, bothers to teach you the first thing that a novice programmer needs to learn, which is “Algorithmic Thinking.” Algorithmic Thinking involves more than just learning code It is a problem solving process that involves learning how to code With over 700 pages, and containing more than 300 solved and 400 unsolved exercises, over 450 true/false, 150 multiple choice, and 180 review questions (the solutions and the answers to which can be found on the Internet), this book is ideal for students, teachers, professors, novices or average programmers, or for anyone who wants to start learning or teaching computer programming using the proper conventions and techniques ... in a scripting language such as JavaScript, or VBA (Visual Basic for Applications) is to control another application So you can say that, in some ways JavaScript controls the web browser, and VBA... software applications for data terminals, as well as PC software applications for collecting and storing data on ® a Microsoft SQL Server He has developed many applications such as warehouse managing... Internet/intranets, and databases He is married to Loukia V Ainarozidou and they have two children Loukia V Ainarozidou Loukia V Ainarozidou was born in 1975 She got her first computer at the age of 13, an Amstrad