Как пользоваться онлайн-компилятором Python
- Напишите или вставьте код в редактор. На странице сразу есть короткий пример; кнопка Сбросить пример в любой момент возвращает его.
- Если программа вызывает
input(), введите ответы в поле Ввод (stdin) под панелью вывода — по одной строке на каждый вызовinput(). - Нажмите кнопку Запустить или сочетание Ctrl + Enter (⌘ + Enter на Mac).
- Посмотрите результат на панели Результат. Всё, что выводится в
stderr, включая трассировки ошибок (traceback), выделяется как ошибка. - В списке Ограничение времени выберите 5, 15 или 60 секунд. Если скрипт работает дольше (например, из-за случайного
while True:), он останавливается автоматически. Кроме того, в любой момент можно нажать кнопку Остановить.
При первом запуске загружается среда выполнения Python — около 10 МБ. Браузер кэширует её, поэтому последующие запуски начинаются гораздо быстрее. Чтобы сохранить скрипт, нажмите Копировать или main.py.
Ваш код никогда не покидает устройство. Python работает прямо в вашем браузере в Web Worker, поэтому ничего не загружается на наши серверы и не хранится там. Редактор запоминает ваш последний код в локальном хранилище браузера — и больше нигде.
Что поддерживается
Компилятор использует Python 3.12 через Pyodide 0.26 — интерпретатор CPython, скомпилированный в WebAssembly. Это настоящий CPython, а не имитация Python, поэтому язык ведёт себя точно так же, как на вашем компьютере.
- Стандартная библиотека:
math,collections,itertools,datetime,json,re,dataclasses,statisticsи другие модули. - Автоматическая загрузка пакетов: когда код импортирует пакет, который есть в Pyodide, например NumPy или pandas, он загружается на лету. Доступно множество пакетов на чистом Python и научных библиотек.
- Стандартный ввод через
input()иsys.stdin, данные берутся из поля stdin. async/await: код выполняется черезrunPythonAsync, поэтомуawaitна верхнем уровне работает.
Ограничения, которые стоит учитывать:
- Нет сетевых сокетов. Модули вроде
socket,urllib.requestиrequestsне могут открывать соединения отсюда. - Нет постоянных файлов. Создавать и читать файлы через
open()можно, но они хранятся в памяти и пропадают при перезагрузке страницы или нажатии «Остановить». - Графики не отображаются. matplotlib можно импортировать, но графики не выводятся, поэтому печатайте числа или таблицы.
- Пакеты с нативным кодом, которых нет в Pyodide, установить нельзя.
Краткий справочник по Python
from dataclasses import dataclass
@dataclass
class Item:
name: str
price: float
cart = [Item("pen", 1.5), Item("book", 12.0)]
total = sum(i.price for i in cart)
print(f"{len(cart)} items, total {total:.2f}")
if total > 10 and cart:
print("Free shipping!")
| Задача | Синтаксис |
|---|---|
| Вывести форматированный текст | print(f"{x:.2f}") |
| Прочитать строку ввода | name = input("Name? ") |
| Преобразовать ввод в число | n = int(input()) |
| Генератор списка | [x * 2 for x in data if x > 0] |
| Цикл по словарю | for k, v in d.items(): |
| Обработать ошибку | try: ... except ValueError as e: ... |
Советы
- Если программа запрашивает ввод чаще, чем в поле stdin есть строк, Python выбрасывает
EOFError. Добавьте строку для каждого вызоваinput(). - Крупные импорты вроде pandas в первый раз занимают несколько секунд. Загрузка входит в ограничение времени, поэтому для тяжёлых скриптов выбирайте 60 с.
- При каждом запуске переменные создаются заново, но уже импортированные модули остаются загруженными, поэтому повторные запуски проходят быстро.
- Работаете с выводом в JSON? Вставьте его в инструмент Форматирование и валидация JSON, чтобы отформатировать его в читаемом виде и проверить.
Часто задаваемые вопросы
Это настоящий интерпретатор Python?
Да. Pyodide — это CPython 3.12, скомпилированный в WebAssembly. Синтаксис, встроенные функции и стандартная библиотека совпадают с настольным Python. Основные отличия связаны с работой в браузере: нет доступа к сети и постоянной файловой системы.
Можно ли использовать NumPy и pandas?
Да. Импортируйте их как обычно, и они загрузятся при первом запуске кода. Многие другие научные пакеты и пакеты на чистом Python, которые есть в Pyodide, загружаются так же.
Как передать программе входные данные?
Введите значения в поле stdin — по одной строке на каждый вызов input(), в том порядке, в котором программа их запрашивает. Затем нажмите «Запустить».
Почему скрипт останавливается через 15 секунд?
Ограничение времени по умолчанию защищает от бесконечных циклов, которые подвесили бы вкладку. Для более долгих вычислений выберите 60 с в списке «Ограничение времени».
Можно ли запускать и другие языки?
Да. Попробуйте онлайн-компилятор JavaScript или посмотрите все бесплатные инструменты разработчика.
Обновлено