Как в питоне пошагово проверить программу

В прошлом уроке мы установили PyCharm и запустили программу main.py, которая шла вместе с ним и выводит фразу «Hi, PyCharm!»:

def print_hi(name): print(f’Hi, ‘) if __name__ == ‘__main__’: print_hi(‘Pycharm’)

Теперь давайте немного поэкспериментируем с ней и заменим слово «PyCharm» на что-то другое, например на своё имя, напишу «Никита»:

if __name__ == ‘__main__’: print_hi(‘Никита’)

После повторного запуска, программа введет фразу «Hi, Никита». Отлично.

Особенности скрипта main.py, который создал PyCharm автоматически, мы разбирать не будем, так как у нас несколько другой путь.

Давайте создадим свою собственную первую программу. Но сперва добавим в проект два каталога: Lessons и Tasks.

Для этго надо кликнуть правой кнопкой мыши по каталогу с проектом и в выпадающем меню выбрать New → Directory.

В первом каталоге мы будем хранить файлы из видео-уроков. А во втором файлы задач. Так как сейчас мы находимся в уроке, то надо кликнуть правой кнопкой мыши по каталогу Lessons и создать новый Python-файл (New → Python file) с именем hello_world.py.

Как запустить Python IDLE и сделать первую программу (для новичков)

Обратите внимание на имя файла, оно набрано строчными буквами и между словами я вставил не пробел, а символ подчеркивания (_). Старайтесь и вы придерживаться такого стиля.

Итак, файл создан, напишем в нём:

print(«Hello, world!»)

Перед запуском давайте разберем то, что мы написали и в данном случае мы выполняем функцию print(), которая должна вывести фразу «Hello, world». Чтобы всё получилось, фраза должна быть взята в кавычки: двойные или одинарные. Мы выбрали двойные.

Давайте проверим, работает ли код. Если нажать внизу на зеленый треугольник, то программа по-прежнему будет выводит «Hi, Никита», и это потому, что зеленый треугольник снизу всегда будет запускать ту программу, которая выполнялась последней.

Чтобы запустить hello_world.py, нам нужно правой кнопкой мыши кликнуть по вкладке с файлом, и в выпадающем меню выбрать Run hello_word.

Программа запущена, и она выводит ту самую фразу «Hello, world», которую мы написали в её коде. Обратите внимание, что кавычки не выводятся, так и должно быть.

Подравляю, мы написали нашу первую программу и успешно запустили её из PyCharm. И это не единственный способ запуска python-скриптов, вы также можете выполнить код из командной строки, но об этом в следующем уроке.

Источник: shultais.education

Начало работы с отладчиками Python

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

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

Вычисляем по IP с помощью Python | Как определить местоположение по IP

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

  • Что такое отладка?
  • Что делает отладчик?
  • Не полагайтесь только на print() .
  • Что такое модуль pdb ?
  • Как запустить отладчик
  • Однократная остановка кода Python
  • Установка точек останова
  • PyCharm
  • Отладчик Visual Studio

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

Цель отладки — убедиться, что в вашем коде нет ошибок и проблем, которые могут поставить под угрозу работоспособность программы. Существует два основных типа ошибок в программировании: синтаксические ошибки и семантические ошибки.

Читайте также:
Как переделать программу в вордовский документ

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

Вот пример синтаксической ошибки в Python:

# Replace «raccoon» with «ferret» in this list housepets = [«cat», «dog», «bird», «raccoon»] housepets.pop() housepets.append(«ferret») print(hosepets) —-> Traceback (most recent call last): File «main.py», line 5, in print(hosepets) NameError: name ‘hosepets’ is not defined
Войти в полноэкранный режим Выйти из полноэкранного режима

Код не выполняется, потому что print(hosepets) должен быть написан как print(housepets) .

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

В этом примере в коде используется метод clear() , который удаляет всех животных в массиве housepets , а не только енота.

# Replace «raccoon» with «ferret» in this list housepets = [«cat», «dog», «bird», «raccoon»] housepets.clear() housepets.append(«ferret») print(housepets) —-> [‘ferret’]
Вход в полноэкранный режим Выход из полноэкранного режима

Таким образом, несмотря на то, что эта программа работает, она все еще не достигает желаемого эффекта.

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

Что делает отладчик?

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

Не полагайтесь только на print() .

Было бы упущением с моей стороны написать статью об отладке, не упомянув print() . Многие начинающие программисты Python и программисты-самоучки используют вызовы print() для отладки своего кода. Использование print() — это быстрый и простой способ проверить, присваивается ли переменной ожидаемое значение.

Однако размещение вызовов print() после каждой переменной для выявления ошибок неэффективно и может стать неуправляемым при больших объемах кода.

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

fifteen = 300/45 #print(fifteen) ten = 10 #print(ten) five = 5.0 #print(five) sum = fifteen + ten — five #print(sum) x = «The sum is equal to 30! » print(x) print(sum == 30) —-> The sum is equal to 30! False
Вход в полноэкранный режим Выход из полноэкранного режима

Здесь программа выполняется, но не достигает желаемого результата.

Если бы вы работали более чем с несколькими переменными, проверка всех их значений с помощью print() быстро стала бы утомительной.

Как начать работу с модулем pdb в Python

Что такое модуль pdb ?

Модуль pdb — это стандартный отладчик, который поставляется со всеми версиями Python. Поэтому, если на вашей машине уже установлен Python, у вас уже есть pdb . Pdb поддерживает установку условных точек останова, одиночный шаг на уровне исходной строки, осмотр стековых кадров, листинг исходного кода и оценку кода Python в контексте стекового кадра [1] .

Pdb — отличное место для начала, потому что это очень простой отладчик. Он отлично подходит для небольших и средних проектов, и вы можете добавить различные расширения (например, pdb++), чтобы сделать его более полезным.

Как запустить отладчик

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

import pdb; pdb.set_trace()
Войти в полноэкранный режим Выход из полноэкранного режима

Другой способ — импортировать отладчик в интегрированную среду разработки и обучения Python (IDLE) и заставить его запустить ваш модуль.

Вы также можете вызвать отладчик из командной строки. Вот мини-учебник о том, как это сделать.

Использование командной строки:

Сначала откройте терминал (окно командной строки) и перейдите к программе, которую нужно отлаживать.

Далее импортируйте pdb и ваш модуль, затем выполните метод pdb run() , чтобы вызвать метод модуля main .

import pdb import example.py pdb.run(‘example.main()’) (1)() (Pdb) continue
Вход в полноэкранный режим Выйти из полноэкранного режима

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

Читайте также:
Adobe flash player бесплатная программа или нет

Вы также можете запустить отладчик, выполнив следующую команду в терминале:

python -m pdb example.py
Войти в полноэкранный режим Выйти из полноэкранного режима

Если вы используете Python 3, то используйте следующую команду:

python3 -m pdb example.py
Enter fullscreen mode Выйти из полноэкранного режима

Одноэтапный просмотр кода Python

Одиночный шаг — это процесс прохождения кода по одной строке за раз. Для этого можно использовать команду step или s.

C:Usersyourname>cd c:debugging101 c:debugging101>python -m pdb example.py > c:debugging101example.py(2)() -> def main(): (Pdb) step > c:debugging101example.py(4)() -> def doubler(a): (Pdb) s > c:debugging101example.py(9)() -> for i in range(1,10):
Вход в полноэкранный режим Выйти из полноэкранного режима

В строках типа c:debugging101example.py(4)() , номер внутри круглых скобок указывает на строку, в которой произошла ошибка.

Вы можете использовать args или a для вывода текущего списка аргументов на экран. Еще одна полезная команда, которую необходимо знать, — это команда jump или j, за которой следует пробел и номер строки, на которую вы хотите перейти. Это позволит вам сразу перейти к нужной строке.

Установка точек останова

Точка останова — это строка в коде, где вы хотите приостановить выполнение. Вы можете установить точки останова, вызвав команду break или b, за которой следует пробел и номер строки, на которой вы хотите прерваться. Если вы хотите указать точку останова в другом файле, вы можете дополнить номер строки именем файла и двоеточием.

Кроме того, вы можете использовать команду break без аргумента, чтобы отобразить все точки останова в программе. Если вы используете команду break с функцией в качестве аргумента, она установит точку останова на первом исполняемом операторе в этой функции.

Если вы хотите установить временную точку останова, которая будет автоматически удаляться при нажатии, вы можете использовать команду tbreak.

В этом примере мы установили точку останова на строке 6.

c:debugging101>python -m pdb example.py > c:debugging101example.py(4)() -> def doubler(a): (Pdb) break 6 Breakpoint 1 at c:debugging101example.py:6 (Pdb) c > c:debugging101example.py(6)doubler() -> result = a*2
Вход в полноэкранный режим Выход из полноэкранного режима

Далее вы можете использовать args или команду для вывода списка аргументов на экран.

Удобная справочная таблица по командам pdb

Есть несколько полезных команд отладчика, которые необходимо знать. Если имена ваших переменных совпадают с именами команд отладчика, просто добавьте восклицательный знак ! перед переменной, чтобы отличить их друг от друга.

Эти команды были взяты из официальной документации по отладчику Python [2] . Ознакомьтесь с ней для получения более подробного списка команд!

Больше способов отладки в Python: IDE

Pdb — это отладчик командной строки, но многие IDE включают инструменты отладки, которые более наглядны и иногда более просты в использовании.

PyCharm

Одной из лучших IDE для работы на Python является PyCharm от JetBrains. PyCharm был разработан специально для работы с Python! Как IDE для Python, вы можете ожидать, что PyCharm будет удовлетворять специфические потребности Python. PyCharm также поддерживает классические функции отладки, такие как точки останова и одиночный шаг.

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

Примечание: PyCharm имеет как панель инструментов отладки, так и панель инструментов шагов.

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

Отладчик Visual Studio

Microsoft Visual Studio (VS) — это еще одна полнофункциональная IDE, но она была разработана для поддержки множества различных языков программирования и является бесплатной как для профессиональных, так и для личных начинаний. IDE VS включает редактор кода VS Code, который имеет интуитивно понятный и простой в использовании интерфейс. Новичкам, возможно, будет легче ориентироваться в VS IDE от Microsoft, чем в PyCharm.

Читайте также:
Как в программе руфус

Вы можете отладить файл Python через редактор кода, нажав Run -> Start Debugging или нажав F5 для запуска текущего файла, в котором вы находитесь. Как и PyCharm, VS Code также поддерживает использование точек останова и одиночного шага, но у него есть дополнительное преимущество — эмулятор терминала, который позволяет работать в любой оболочке, установленной на вашем компьютере. Так что, если вы хотите работать в Linux, это абсолютно то, что вам нужно.

VS Code также позволяет легко настроить процесс отладки в настройках по мере необходимости и обеспечивает поддержку различных библиотек Python.

И PyCharm, и Visual Studio обеспечивают отличную поддержку Git и GitHub.

Подведение итогов и следующие шаги

К этому моменту вы, возможно, уже имеете представление о том, что такое отладка, об ограничениях использования print() и, надеюсь, немного лучше знакомы с некоторыми популярными инструментами отладки Python. Не существует универсальной процедуры отладки, поэтому вам следует изучить, какие инструменты и методы подходят для вашего проекта.

Всегда приятно видеть, как растет сообщество Python, и мы надеемся, что вы приобретете навыки, необходимые для того, чтобы стать замечательным программистом.

Поскольку у Python так много фантастических приложений, всегда интересно наблюдать, как люди изучают и применяют Python в новых областях. В компании Educative мы любим поддерживать людей, которые стремятся учиться! Поэтому мы всегда будем работать над тем, чтобы предоставить вам ресурсы, необходимые для того, чтобы вы стали замечательным программистом.

Чтобы получать больше материалов по Python прямо в свой почтовый ящик, подпишитесь на нашу рассылку Grokking Python на Substack!

Чтобы помочь вам освоить Python, мы создали учебный курс «Python для программистов».

Продолжайте изучать Python на сайте Educative

  • Полное руководство по веб-разработке на Python
  • 50 вопросов и ответов для собеседования по Python
  • Усовершенствуйте свои навыки работы с Python с помощью этих 6 задач

Начните обсуждение

Что еще вы хотите узнать о Python? Была ли эта статья полезной? Сообщите нам об этом в комментариях ниже!

Источник: procodings.ru

Забудьте об использовании print() для отладки в Python

В этой статье мы разберем более совершенное средство дебага — модуль icecream .

icecream

Какую функцию Python мы используем чаще всего? Как и в любом языке программирования — print() . Пожалуй, большинство разработчиков во время разработки используют эту функцию для вывода данных в консоль.

Конечно, полностью функцию print() ничто не заменит (да и зачем?). Но для облегчения отладки существует множество интересных решений. В этой статье мы познакомимся с библиотекой “Ice Cream”. Она позволит вам значительно упростить и ускорить процесс дебага.

Плохой пример

Давайте рассмотрим действительно плохой пример. Допустим, мы объявили функцию и хотим проверить, хорошо ли она работает.

def square_of(num): return num * num

Эта функция просто возвращает квадрат числа, переданного в качестве аргумента. Проверить ее работу мы можем так:

print(square_of(2)) print(square_of(3)) print(square_of(4)) # Вывод: 4 9 16

Кажется, все работает. Но на практике у нас будет куда больше строк кода. Кроме того, в коде может быть много функций print() , выводящих разные вещи в область output-а. В в таких условиях можно не сразу понять, какой именно print() вывел ту или иную строку в консоли.

Хороший тон — добавить небольшое описание в содержимое print() , чтобы видеть, какую именно информацию он выводит.

print(‘Квадрат 2:’, square_of(2)) print(‘Квадрат 3:’, square_of(3)) print(‘Квадрат 4:’, square_of(4)) # Вывод: Квадрат 2: 4 Квадрат 3: 9 Квадрат 4: 16

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

Исследование переменных с помощью функции ic() из библиотеки Ice Cream

А теперь рассмотрим библиотеку Ice Cream. Как она решает проблему, о которой мы говорили выше?

В первую очередь необходимо установить эту библиотеку с помощью pip.

pip install icecream

Затем ее нужно импортировать.

from icecream import ic

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

Вызов функции

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru