The Python Workbook: A Brief Introduction with Exercises and Solutions, 3rd Edition / Сборник упражнений по Python: Краткое введение с упражнениями и решениями, 3-е издание
Год издания: 2025
Автор: Stephenson Ben / Стивенсон Бен
Издательство: Springer International Publishing Switzerland
ISBN: 978-3-031-84560-4
Серия: Texts in Computer Science
Язык: Английский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Количество страниц: 281
Описание: The Python Workbook is a student-friendly compendium of 212 exercises that span a variety of academic disciplines and everyday situations paired with concise introductions to the programming concepts needed to complete them. Accessible and easy to follow, the textbook encourages development of programming skills through active practice and hands-on learning.
Thoroughly updated and expanded, this strong revised edition includes new sections on debugging, additional exercises in all chapters, and extensive revisions that reflect current practice, increase clarity, and ease comprehension. The exercises and solutions require no prior background knowledge, beyond the material covered in a typical introductory Python course.
Solutions to approximately half of the exercises are provided in the second half of this book. If you become stuck on an exercise, a quick peek at my solution may help you work through your problem without requiring assistance from someone else. Many of the solutions include brief annotations that explain the approach used to solve the problem or highlight a specific point of Python syntax. You will find these annotations in shaded boxes, making it easy to distinguish them from the solutions themselves.
Topics and features:
includes a mixture of classic exercises from the fields of computer science and mathematics, along with exercises that connect to other academic disciplines
presents the solutions to approximately half of the exercises
provides annotations alongside the solutions, explaining the approach taken to solve the problem and relevant aspects of Python syntax
contains exercises that encourage the development of programming skills using if statements, loops, functions, lists, dictionaries, files, and recursion
examines common errors and how to correct them
offers a variety of exercises of different lengths and difficulties
Undergraduate students enrolled in their first programming course will find this book ideal for their needs. Their programming and debugging skills will be enhanced by reading its chapters, completing its exercises, and studying the provided solutions.
Сборник упражнений по Python - это удобный для учащихся сборник из 212 упражнений, которые охватывают различные академические дисциплины и повседневные ситуации, а также краткое введение в концепции программирования, необходимые для их выполнения. Доступный и понятный для понимания, учебник способствует развитию навыков программирования посредством активной практики и практического обучения.
Это тщательно обновленное и дополненное издание включает в себя новые разделы по отладке, дополнительные упражнения во всех главах и обширные правки, которые отражают текущую практику, повышают ясность и облегчают понимание. Упражнения и решения не требуют предварительных базовых знаний, помимо материала, изложенного в обычном вводном курсе Python.
Решения примерно к половине упражнений приведены во второй части этой книги. Если вы застряли на каком-то упражнении, беглый просмотр моего решения может помочь вам справиться с вашей проблемой, не прибегая к чьей-либо помощи. Многие решения содержат краткие пояснения, которые объясняют подход, используемый для решения проблемы, или подчеркивают определенный момент синтаксиса Python. Вы найдете эти пояснения в затемненных полях, что позволяет легко отличить их от самих решений.
Темы и особенности:
включает в себя смесь классических упражнений из областей компьютерных наук и математики, а также упражнений, связанных с другими академическими дисциплинами
, содержит решения примерно к половине упражнений
, содержит аннотации к решениям, объясняющие подход, применяемый для решения проблемы, и соответствующие аспекты синтаксиса Python
, содержит упражнения, способствующие развитию языка Python. навыки программирования с использованием операторов if, циклов, функций, списков, словарей, файлов и рекурсии
изучают распространенные ошибки и способы их исправления
содержит множество упражнений различной длины и сложности
Студенты старших курсов, поступающие на свой первый курс программирования, найдут эту книгу идеальной для своих нужд. Их навыки программирования и отладки будут улучшены после прочтения глав, выполнения упражнений и изучения предлагаемых решений.
Примеры страниц (скриншоты)
Оглавление
Part I Exercises
1 Introduction to Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Storing and Manipulating Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Calling Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Reading Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Displaying Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Importing Additional Functions . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Formatting Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Working with Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6.1 Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6.3 Logic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Decision-Making . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1 If Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2 If-Else Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3 If-Elif-Else Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4 If-Elif Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5 Nested If Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6 Boolean Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.7 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.7.1 Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.7.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.7.3 Logic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3 Repetition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1 While Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2 For Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3 Nested Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4.1 Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4.3 Logic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.1 Functions with Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2 Variables in Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.3 Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.4 Importing Functions into Other Programs . . . . . . . . . . . . . . . . . . . . . . . 81
4.5 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.5.1 Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.5.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.5.3 Logic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.1 Accessing Individual Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.2 Loops and Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.3 Additional List Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.3.1 Adding Elements to a List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.3.2 Removing Elements from a List . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3.3 Rearranging the Elements in a List . . . . . . . . . . . . . . . . . . . . . . 102
5.3.4 Searching a List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4 Lists as Return Values and Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.5 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.5.1 Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.5.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.5.3 Logic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.1 Accessing, Modifying and Adding Values . . . . . . . . . . . . . . . . . . . . . . 126
6.2 Removing a Key-Value Pair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.3 Additional Dictionary Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.4 Loops and Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.5 Dictionaries as Arguments and Return Values . . . . . . . . . . . . . . . . . . . 129
6.6 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.6.1 Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.6.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.6.3 Logic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7 Files and Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.1 Opening a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.2 Reading Input from a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.3 End of Line Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.4 Writing Output to a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
7.5 Command Line Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.6 Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.7 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.7.1 Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.7.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.7.3 Logic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
8 Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
8.1 Summing Integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
8.2 Fibonacci Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
8.3 Counting Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
8.4 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
8.4.1 Syntax Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
8.4.2 Runtime Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.4.3 Logic Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
Part II Solutions
9 Solutions to Selected Introductory Exercises . . . . . . . . . . . . . . . . . . . . . . . . 185
10 Solutions to Selected Decision-Making Exercises . . . . . . . . . . . . . . . . . . . 195
11 Solutions to Selected Repetition Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . 209
12 Solutions to Selected Function Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
13 Solutions to Selected List Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
14 Solutions to Selected Dictionary Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . 249
15 Solutions to Selected File and Exception Exercises . . . . . . . . . . . . . . . . . . 257
16 Solutions to Selected Recursion Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279