Отладчик Python онлайн
Ищите ошибки в коде на Python прямо в браузере, ничего не устанавливая. Ставьте точки останова, выполняйте программу по шагам, строка за строкой, заходите внутрь функций и смотрите, как меняются переменные и стек вызовов.
Как отладить код на Python онлайн
- Откройте редактор Python и напишите или вставьте свою программу. Можно взять и один из примеров ниже.
- Щёлкните рядом с номером строки: появится красная точка останова. Их можно поставить сколько угодно.
- Нажмите Debug. Программа запустится и остановится на первой точке останова, до которой дойдёт. Если вы переключали редактор в режим «Браузерный Python», сначала верните «Сервер выполнения»: отладчик работает там.
- На панели Variables видны текущие значения переменных, а на панели Call Stack - цепочка функций, которая привела к этой строке.
- Step Over выполняет следующую строку, Step Into заходит внутрь вызываемой функции, Step Out выполняет текущую функцию до конца, а Continue продолжает работу до следующей точки останова.
- Когда найдёте ошибку, нажмите Stop, исправьте код и запустите его снова.
Что показывает отладчик
- Точки остановаОстановите программу ровно там, где значение становится неверным, вместо того чтобы расставлять print() по всему коду.
- Пошаговое выполнениеИдите по коду строка за строкой, заходите в функции и выходите из них - и всегда видите, какая строка выполнится следующей.
- ПеременныеПри каждой остановке видны переменные текущей функции (или глобальные, если вы вне функции) и их значения.
- Стек вызововЦепочка вызовов функций, которая привела к текущей строке. С ней легко разобраться в рекурсии.
- Настоящий Python, с input()Программа выполняется на нашем сервере с настоящим Python 3 (это режим редактора по умолчанию), поэтому во время отладки работают ввод с клавиатуры и установленные библиотеки.
- Помощь ИИПопросите ИИ объяснить ошибку или предложить исправление прямо в редакторе.
Попробуйте: почему среднее считается неверно?
Среднее чисел 80, 72, 95 и 73 равно 80, но функция возвращает 60.0. Поставьте точку останова на строке с return и нажмите Debug: total равно 240, а не 320, потому что range(1, len(scores)) начинает со второго элемента.
def average(scores):
total = 0
for i in range(1, len(scores)):
total += scores[i]
# Ожидаем 80.0, а программа печатает 60.0.
# Поставьте точку останова на следующей строке и посмотрите на total и i.
return total / len(scores)
print(average([80, 72, 95, 73]))
Рекурсия в стеке вызовов
Поставьте точку останова на строке return n * factorial(n - 1) и нажимайте Step Into. Каждый вызов добавляет в стек новый кадр со своим значением n. Второй вызов, factorial(0), проскакивает базовый случай и уходит всё глубже, пока Python не выдаст RecursionError. По стеку видно, почему так происходит.
def factorial(n):
if n == 1:
return 1
return n * factorial(n - 1)
# Заходите в каждый вызов через Step Into и смотрите, как стек вызовов растёт, а потом уменьшается.
print(factorial(4))
# factorial(0) никогда не дойдёт до n == 1: посмотрите в отладчике, почему.
print(factorial(0))
Проверка условия внутри цикла
Груш (pears) нет в наличии, но они всё равно попадают в список. Поставьте точку останова на строке с if и нажимайте Continue, чтобы останавливаться на каждом товаре: когда count равно 0, условие всё ещё истинно.
inventory = {"apples": 3, "pears": 0, "plums": 5}
in_stock = []
for name, count in inventory.items():
if count >= 0: # Ошибка: должно быть > 0
in_stock.append(name)
print("В наличии:", in_stock)
Отладчик, визуализатор или print()?
| Инструмент | Когда подходит |
|---|---|
| Отладчик | Настоящие программы: остановиться в нужном месте, посмотреть значения и самому решать, как программа пойдёт дальше. |
| Визуализатор Python | Учёба: каждый шаг короткой программы записывается и рисуется, со стрелками от переменных к спискам и объектам. |
| print() | Быстро посмотреть одно значение или записывать в лог, что делает долго работающая программа. |
| Проверка кода с ИИ | Объяснение сообщения об ошибке и готовое исправление. |
Частые вопросы
Как отладить код на Python онлайн?
Откройте редактор Python, щёлкните рядом с номером строки, чтобы поставить точку останова, и нажмите Debug. Программа остановится на этой строке, и дальше её можно выполнять по шагам, наблюдая за переменными и стеком вызовов.
Нужно ли устанавливать Python или IDE?
Нет. Отладчик открывается в браузере, а программа выполняется на нашем сервере с настоящим Python, поэтому он работает на любом компьютере, в том числе на школьном ноутбуке или Chromebook.
Можно ли заходить внутрь функций?
Да. Step Into заходит в функцию, которая вызывается на текущей строке, Step Out выполняет её до конца и возвращается к месту вызова, а Step Over выполняет строку целиком, не заходя внутрь.
Чем отладчик отличается от визуализатора?
Отладчик останавливает настоящую программу на точках останова и даёт управлять её выполнением. Визуализатор Python записывает каждый шаг короткой программы и рисует переменные и объекты со стрелками - он удобнее, когда нужно понять, как устроены ссылки.
Работает ли input() во время отладки?
Да. Программа выполняется на сервере и запрашивает ввод в терминале, как при обычном запуске.
Это бесплатно?
Да. Отладка бесплатна и не требует регистрации.