Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Легкое введение в программирование с использованием языка Python (глава 1).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
33.2 Кб
Скачать

1.2 Что такое программа?

Программа представляет собой последовательность команд, которая определяет, как выполнять вычисления. Расчет может быть чем-то математическим, например, решение системы уравнений или нахождение корней многочлена, но он также может выполнять символьные вычисления, такие как поиск и замена текста в документе или (как ни странно) составление программы.

Детали выглядят по-разному на разных языках, но несколько базовых команд появляются практически в каждом языке:

input - ввод данных с клавиатуры, файла или какого-либо другого устройства. output - отображение данных на экране или отправка данных в файл или другое устройство. math выполняет базовые математические операции, такие как сложение и умножение. conditional execution выполняет проверку на условное выполнение определенных условий и выполнение соответствующей последовательности операторов. repetition - выполнение какого-то действия неоднократно, как правило, с некоторыми вариациями.

Верьте или нет, это в значительной степени все, что есть по нему. Каждая программа, которую вы когда-либо использовали, независимо от того, насколько она сложна, состоит из инструкций, которые выглядят более или менее подобно этим. Таким образом, мы можем описать программирование как процесс разделения большой и сложной задачи на более мелкие и более мелкие подзадачи, пока эти подзадачи недостаточно просты, чтобы быть выполненными одной из этих основных инструкций.

Это может быть немного расплывчато, но мы вернемся к этой теме позже, когда мы будем говорить об алгоритмах.

1.3 Что такое отладка?

Программирование представляет собой сложный процесс, и так как он делается людьми, это часто приводит к ошибкам. По эксцентричным причинам, ошибками программирования называются багами, а процесс их отслеживания и коррекции называют отладкой.

Три вида ошибок могут возникнуть в программе: синтаксические ошибки, ошибки выполнения и смысловые ошибки. Полезно провести различие между ними для того, чтобы находить их быстрее.

Синтаксические ошибки

Python может выполнить программу, только если программа синтаксически правильна; в противном случае процесс терпит неудачу и возвращает сообщение об ошибке. Синтаксис относится к структуре программы и правилам этой структуры. Например, на английском языке, предложение должно начинаться с заглавной буквы и заканчиваться точкой. эта фраза содержит синтаксическую ошибку. Также и здесь

Для большинства читателей, несколько ошибок синтаксиса не является серьезной проблемой, поэтому мы можем читать поэзию э.э. каммингса без получения сообщений об ошибках. Python не так снисходителен. Если есть одна ошибка синтаксиса в любом месте в вашей программе, Python выдаст сообщение об ошибке и завершит работу, и вы не сможете запустить программу. В течение первых нескольких недель вашей карьеры программирования вы, вероятно, потратите много времени отслеживая ошибки синтаксиса. Однако по мере приобретения опыта вы будете делать меньше ошибок и находить их быстрее.

Ошибки выполнения

Второй тип ошибки - ошибка выполнения, называемая так потому, что ошибка не появляется, пока вы не запустите программу. Эти ошибки также называются исключениями, потому что они, как правило, показывают, что произошло что-то исключительное (и плохое).

Ошибки выполнения очень редки в простых программах, которые вы увидите в первых нескольких главах, так что может быть пройдет какое-то время, прежде чем вы столкнетесь с ними.

Семантические ошибки

Третий тип ошибок - семантические ошибки. Если в вашей программе есть семантическая ошибка, она будет работать успешно, в том смысле, что компьютер не будет генерировать сообщения об ошибках, но она будет делать неправильные вещи. Она будет делать что-то другое. В частности, она будет делать то, что вы сказали ей делать.

Проблема заключается в том, что программа, которую вы написали, не является программой, которую вы хотели написать. Смысл программы (его семантика) является неправильным. Выявление семантических ошибок может быть сложным, потому что оно требует от вас работы в обратном направлении: посмотрев на выход программы, пытаться выяснить, что она делает.

Экспериментальная отладка

Одним из наиболее важных навыков, которые вы приобретете, является отладка. Хотя это может быть неприятным, отладка является одним из самых интеллектуально богатых, сложных и интересных частей программирования.

В некотором смысле, отладка как детективная работа. Вы столкнулись с подсказкой, и вы должны вывести процессы и события, которые привели к результатам, которые вы видите.

Отладка также подобна экспериментальной науке. После того, как у вас есть представление о том, что происходит не так, вы измените вашу программу и попытаетесь снова. Если гипотеза верна, то вы можете предсказать результат модификации, и вы делаете шаг навстречу к работающей программе. Если ваша гипотеза была ошибочной, вам придется предложить новую. Как отметил Шерлок Холмс, «Если исключить невозможное, то все что останется и будет правдой, сколь бы невероятным оно ни казалось.» (А. Конан Дойл, Знак четырех)

Для некоторых людей программирование и отладка - одно и то же. То есть, программирование — это процесс постепенной отладки программы, пока она не сделает то, что вы хотите. Идея состоит в том, что вы должны запускать программу, которая делает что-то, и делать маленькие модификации, отлаживая их по ходу дела, таким образом у вас всегда будет работающая программа.

Например, Linux является операционной системой, которая содержит тысячи строк кода, но это началось как простая программа, которую Линус Торвальдс использовал для изучения чипа Intel 80386. По словам Ларри Гринфилда, «одним из ранних проектов Линуса была программа, которая переключалась между печатью AAAA и BBBB. Позже это превратилось в Linux. « (Руководство пользователей Linux, Бета-версия 1)

В последующих главах будет сделано больше указаний об отладке и других методах программирования.