Spec-Zone.ru › Python 3.7

IDLE

Исходный код: Lib/idlelib/

IDLE — это интегрированная среда разработки и обучения Python.

IDLE обладает следующими возможностями:

  • написан на 100% чистом Python, используя графический интерфейс tkinter
  • кроссплатформенность: работает практически одинаково на Windows, Unix и macOS
  • окно интерпретатора Python (интерактивный интерпретатор) с цветовым выделением ввода кода, вывода и сообщений об ошибках
  • многооконный текстовый редактор с многократным отменением действий, цветовым выделением Python, интеллектуальным отступом, подсказками вызовов, автозаполнением и другими функциями
  • поиск в любом окне, замена в окнах редактора и поиск по нескольким файлам (grep)
  • отладчик с постоянными точками останова, пошаговым выполнением и просмотром глобальных и локальных пространств имён
  • настройки, браузеры и другие диалоговые окна

Меню

IDLE имеет два основных типа окон: окно интерпретатора и окно редактора. Одновременно можно иметь несколько окон редактора. В Windows и Linux каждое окно имеет собственное верхнее меню. Каждое меню, описанное ниже, указывает, к какому типу окна оно относится.

Окна вывода, такие как используемые для Редактирование => Найти во всех файлах, являются подтипом окна редактора. В настоящее время они имеют то же верхнее меню, но другое стандартное название и контекстное меню.

В macOS существует одно меню приложения. Оно динамически изменяется в зависимости от выбранного окна. Оно содержит меню IDLE, и некоторые пункты, описанные ниже, перемещены для соответствия рекомендациям Apple.

Меню «Файл» (интерпретатор и редактор)

Новый файл

Создать новое окно для редактирования файла.

Открыть…

Открыть существующий файл с помощью диалога «Открыть».

Недавние файлы

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

Открыть модуль…

Открыть существующий модуль (ищет в sys.path).

Браузер классов

Показать функции, классы и методы в текущем файле редактора в виде древовидной структуры. В интерпретаторе сначала откройте модуль.

Браузер путей

Показать каталоги sys.path, модули, функции, классы и методы в виде древовидной структуры.

Сохранить

Сохранить текущее окно в связанный файл, если он есть. Окна, которые были изменены с момента открытия или последнего сохранения, имеют * перед и после названия окна. Если нет связанного файла, выполните «Сохранить как».

Сохранить как…

Сохранить текущее окно с помощью диалога «Сохранить как». Сохраненный файл становится новым связанным файлом для окна.

Сохранить копию как…

Сохранить текущее окно в другой файл без изменения связанного файла.

Печать окна

Распечатать текущее окно на стандартном принтере.

Закрыть

Закрыть текущее окно (запросить сохранение, если оно не сохранено).

Выйти

Закрыть все окна и выйти из IDLE (запросить сохранение несохраненных окон).

Меню «Правка» (интерпретатор и редактор)

Отменить

Отменить последнее изменение в текущем окне. Можно отменить до 1000 изменений.

Повторить

Повторить последнее отменённое изменение в текущем окне.

Вырезать

Скопировать выделение в системный буфер обмена; затем удалить выделение.

Копировать

Скопировать выделение в системный буфер обмена.

Вставить

Вставить содержимое системного буфера обмена в текущее окно.

Функции буфера обмена также доступны в контекстных меню.

Выделить всё

Выделить всё содержимое текущего окна.

Найти…

Открыть диалог поиска с множеством опций

Найти снова

Повторить последний поиск, если он был.

Найти выделение

Найти выделенный текст, если он есть.

Найти во всех файлах…

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

Заменить…

Открыть диалог поиска и замены.

Перейти к строке

Переместить курсор к началу запрошенной строки и сделать её видимой. Запрос за пределами файла переместит курсор в конец. Очистить выделение и обновить статус строки и столбца.

Показать автодополнение

Открыть раскрываемый список, позволяющий выбрать ключевые слова и атрибуты. См. Автозаполнение в разделе «Редактирование и навигация» ниже.

Развернуть слово

Развернуть введённый префикс для совпадения с полным словом в том же окне; повторить для получения другого варианта расширения.

Показать подсказку вызова

После незакрытой скобки функции откроется небольшое окно с подсказками параметров функции. См. Подсказки вызова в разделе «Редактирование и навигация» ниже.

Показать окружающие скобки

Выделить окружающие скобки.

Меню «Формат» (только окно редактора)

Отступ области

Сдвинуть выделенные строки вправо на ширину отступа (по умолчанию 4 пробела).

Уменьшить отступ области

Сдвинуть выделенные строки влево на ширину отступа (по умолчанию 4 пробела).

Комментировать область

Вставить ## перед выделенными строками.

Раскомментировать область

Удалить ведущие # или ## из выделенных строк.

Табулировать область

Преобразовать ведущие пробелы в табуляции. (Примечание: мы рекомендуем использовать блоки из 4 пробелов для отступа кода Python.)

Убрать табуляцию из области

Преобразовать все табуляции в правильное количество пробелов.

Переключить табуляции

Открыть диалог для переключения между отступами с пробелами и табуляциями.

Новая ширина отступа

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

Форматировать абзац

Переформатировать текущий абзац, ограниченный пустыми строками, в блоке комментариев или многострочной строке, или выделенную строку в строке. Все строки в абзаце будут отформатированы на ширине меньше N столбцов, где N по умолчанию равно 72.

Удалить хвостовые пробелы

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

Меню «Запуск» (только окно редактора)

Запустить модуль

Выполнить Проверить модуль. Если ошибок нет, перезапустить интерпретатор для очистки среды, а затем выполнить модуль. Вывод отображается в окне интерпретатора. Обратите внимание, что для вывода необходимо использовать print или write. После завершения выполнения интерпретатор сохраняет фокус и отображает приглашение. В этот момент можно интерактивно изучить результат выполнения. Это аналогично выполнению файла с python -i file в командной строке.

Запустить… Настраиваемо

То же, что и Запустить модуль, но запустить модуль с настраиваемыми параметрами. Аргументы командной строки расширяют sys.argv, как если бы они передавались в командной строке. Модуль можно запустить в интерпретаторе без перезапуска.

Проверить модуль

Проверить синтаксис модуля, открытого в окне редактора. Если модуль не сохранён, IDLE запросит пользователя сохранить или автоматически сохранить его, как выбрано на вкладке «Общие» диалогового окна «Настройки IDLE». Если есть синтаксическая ошибка, приблизительное местоположение указано в окне редактора.

Окно интерпретатора Python

Открыть или активировать окно интерпретатора Python.

Меню «Интерпретатор» (только окно интерпретатора)

Просмотреть последнее перезапускание

Прокрутить окно интерпретатора до последнего перезапуска интерпретатора.

Перезапустить интерпретатор

Перезапустить интерпретатор для очистки среды.

Предыдущая история

Прокрутить через предыдущие команды в истории, которые соответствуют текущей записи.

Следующая история

Прокрутить через последующие команды в истории, которые соответствуют текущей записи.

Прервать выполнение

Остановить запущенную программу.

Меню «Отладка» (только окно интерпретатора)

Перейти к файлу/строке

Посмотреть текущую строку. с курсором и строкой выше для имени файла и номера строки. Если найдено, открыть файл, если он ещё не открыт, и показать строку. Используйте это для просмотра строк исходного кода, ссылающихся на отладочную информацию об исключениях, и строк, найденных с помощью «Найти во всех файлах». Также доступно в контекстном меню окна интерпретатора и окон вывода.

Отладчик (переключение)

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

Просмотр стека

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

Автоматически открывать просмотр стека

Переключать автоматическое открытие просмотра стека при необработанном исключении.

Меню «Настройки» (интерпретатор и редактор)

Настроить IDLE

Открыть диалоговое окно настроек и изменить параметры: шрифты, отступы, сочетания клавиш, темы цветового оформления текста, окна и размеры при запуске, дополнительные источники справки и расширения. В macOS откройте диалоговое окно настроек, выбрав «Настройки» в меню приложения. Для получения дополнительной информации см. Настройка параметров в разделе «Справка и настройки».

Большинство параметров настроек применяются ко всем окнам или всем будущим окнам. Пункты настроек ниже применяются только к активному окну.

Показать/скрыть контекст кода (только для окна редактора)

Открыть область в верхней части окна редактирования, которая отображает контекст блока кода, который прокрутили выше верхней части окна. См. Контекст кода в разделе «Редактирование и навигация» ниже.

Показать/скрыть номера строк (только для окна редактора)

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

Изменить масштаб/восстановить высоту

Переключает окно между нормальным размером и максимальной высотой. Начальный размер по умолчанию составляет 40 строк по 80 символов, если не изменен в вкладке «Общие» диалогового окна «Настройка IDLE». Максимальная высота для экрана определяется при первом увеличении окна на экране. Изменение настроек экрана может привести к аннулированию сохраненной высоты. Эта переключатель не действует, когда окно максимизировано.

Меню «Окно» (Консоль и Редактор)

Отображает имена всех открытых окон; выберите одно, чтобы перевести его на передний план (если необходимо, разблокировать его).

Меню «Справка» (Консоль и Редактор)

О программе IDLE

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

Справка по IDLE

Отобразить данное руководство по IDLE, подробно описывая пункты меню, базовые функции редактирования и навигации, а также другие советы.

Документация Python

Доступ к локальной документации Python, если она установлена, или открыть веб-браузер и перейти на страницу docs.python.org, отобразив последнюю документацию Python.

Демонстрация Черепахи

Запустить модуль turtledemo с примером кода Python и черепашьими рисунками.

Дополнительные источники справки могут быть добавлены здесь в диалоговом окне «Настройка IDLE» на вкладке «Общие». Подробнее о пунктах меню «Справка» см. в разделе «Источники справки» ниже.

Контекстные меню

Открыть контекстное меню, щелкнув правой кнопкой мыши в окне (нажатие клавиши Control на macOS). Контекстные меню содержат стандартные функции буфера обмена, также доступные в меню «Правка».

Вырезать

Скопировать выделенный фрагмент в системный буфер обмена; затем удалить выделение.

Копировать

Скопировать выделенный фрагмент в системный буфер обмена.

Вставить

Вставить содержимое системного буфера обмена в текущее окно.

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

Установить точку останова

Установить точку останова на текущей строке.

Удалить точку останова

Удалить точку останова на этой строке.

В окнах консоли и вывода также доступны следующие функции.

Перейти к файлу/строке

Аналогично в меню «Отладка».

В окне консоли также есть функция сжатия вывода, объяснённая в подразделе «Окно консоли Python» ниже.

Сжать

Если курсор находится над строкой вывода, сжать весь вывод между кодом выше и приглашением ниже до метки «Сжатый текст».

Редактирование и навигация

Окна редактора

IDLE может открыть окна редактора при запуске, в зависимости от настроек и способа запуска IDLE. После этого используйте меню «Файл». Для данного файла может быть только одно открытое окно редактора.

Строка заголовка содержит имя файла, полный путь, версию Python и IDLE, работающие в окне. Строка состояния содержит номер строки («Строка») и номер столбца («Столбец»). Номера строк начинаются с 1; номера столбцов с 0.

IDLE предполагает, что файлы с известным расширением .py* содержат код Python, а другие файлы — нет. Запустите код Python с помощью меню «Выполнить».

Сочетания клавиш

В этом разделе «C» относится к клавише Control в Windows и Unix и к клавише Command в macOS.

  • Backspace удаляет влево; Del удаляет вправо
  • C-Backspace удаляет слово влево; C-Del удаляет слово вправо
  • Стрелки и Page Up/Page Down для перемещения
  • C-LeftArrow и C-RightArrow перемещает по словам
  • Home/End перемещается в начало/конец строки
  • C-Home/C-End перемещается в начало/конец файла
  • Некоторые полезные сочетания клавиш из Emacs наследуются от Tcl/Tk:

    • C-a начало строки
    • C-e конец строки
    • C-k удалить строку (но не поместить её в буфер обмена)
    • C-l центрировать окно вокруг точки вставки
    • C-b переместиться назад на один символ (обычно для этого можно использовать клавишу курсора)
    • C-f переместиться вперёд на один символ (обычно для этого можно использовать клавишу курсора)
    • C-p переместиться вверх на одну строку (обычно для этого можно использовать клавишу курсора)
    • C-d удалить следующий символ

Стандартные сочетания клавиш (например, C-c для копирования и C-v для вставки) могут работать. Сочетания клавиш выбираются в диалоговом окне «Настройка IDLE».

Автоматическое отступание

После оператора открытия блока следующая строка отступает на 4 пробела (в окне консоли Python на один табулятор). После некоторых ключевых слов (break, return и т.д.) следующая строка смещается влево. При отступе слева Backspace удаляет до 4 пробелов, если они есть. Tab вставляет пробелы (в окне консоли Python один табулятор), количество зависит от ширины отступа. В настоящее время табуляция ограничена четырьмя пробелами из-за ограничений Tcl/Tk.

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

Автозаполнение

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

Окно автозаполнения (ACW) откроется после предварительно заданной задержки (по умолчанию 2 секунды) после ввода «.» или (в строке) os.sep. Если после одного из этих символов (плюс ноль или более других символов) вводится табуляция, ACW откроется немедленно, если найдена возможная продолжение.

Если существует только одно возможное завершение введённых символов, табуляция ( Tab) предоставит это завершение без открытия ACW.

«Показать завершения» заставит открыть окно завершений, по умолчанию C-space откроет окно завершений. В пустой строке оно будет содержать файлы в текущем каталоге. В пустой строке оно будет содержать встроенные и определённые пользователем функции и классы в текущих пространствах имён, а также любые импортированные модули. Если введены какие-то символы, ACW попытается быть более конкретным.

Если введена строка символов, выбор ACW перейдёт к записи, наиболее точно соответствующей этим символам. Ввод табуляции ( tab) вызовет ввод в окно редактора или консоль самого длинного недвусмысленного соответствия. Две табуляции подряд предоставят текущий выбор ACW, как и возврат или двойной щелчок. Клавиши управления курсором, Page Up/Down, выбор мышью и колесико мыши действуют в ACW.

«Скрытые» атрибуты могут быть доступны путём ввода начала скрытого имени после «.», например «_». Это позволяет получить доступ к модулям с установленным __all__, или к атрибутам классов, доступным только внутри класса.

Автозаполнение и функция «Развернуть слово» могут сэкономить много времени!

Автозаполнение в настоящее время ограничено пространствами имён. Имена в окне редактора, которые не из __main__ и sys.modules не будут найдены. Запустите модуль один раз с вашими импортами, чтобы исправить эту ситуацию. Обратите внимание, что IDLE сам помещает довольно много модулей в sys.modules, поэтому многое можно найти по умолчанию, например, модуль re.

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

Подсказки вызова

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

Подсказка вызова состоит из сигнатуры функции и первой строки строки документации. Для встроенных функций без доступной сигнатуры подсказка вызова состоит из всех строк до пятой строки или первой пустой строки. Эти детали могут измениться.

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

Например, перезапустите консоль и введите itertools.count(. Появляется подсказка вызова, потому что Idle импортирует itertools в процесс пользователя для собственного использования. (Это может измениться.) Введите turtle.write( и ничего не появляется. Idle не импортирует черепаху. Меню или ярлык тоже ничего не делают. Введите import turtle , а затем turtle.write( будут работать.

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

Контекст кода

В окне редактора с кодом Python контекст кода можно переключать, чтобы показывать или скрывать панель в верхней части окна. При отображении эта панель замораживает начальные строки блочного кода, такие как те, которые начинаются с ключевых слов class, def, или if, которые в противном случае могли бы прокручиваться за пределы видимости. Размер панели будет расширяться и сжиматься по мере необходимости, чтобы отобразить все текущие уровни контекста, до максимального числа строк, определённого в диалоге настроек IDLE (по умолчанию 15). Если нет текущих строк контекста и функция включена, будет отображаться одна пустая строка. Щёлкните по строке в области контекста, чтобы переместить эту строку в начало редактора.

Цвета текста и фона для области контекста можно настроить на вкладке «Выделение» в диалоге настроек IDLE.

Окно командной строки Python

С помощью оболочки IDLE вы вводите, редактируете и вызываете полные операторы. Большинство консолей и терминалов работают только с одной физической строкой за раз.

Когда вы вставляете код в оболочку, он не компилируется и, возможно, не выполняется, пока вы не нажмёте Return. Вы можете предварительно отредактировать вставленный код. Если вы вставляете более одного оператора в оболочку, результатом будет SyntaxError, так как несколько операторов компилируются как один.

Функции редактирования, описанные в предыдущих разделах, работают при вводе кода интерактивно. Окно оболочки IDLE также реагирует на следующие клавиши.

  • C-c прерывает выполнение команды
  • C-d отправляет конец файла; закрывает окно, если введено в >>> приглашении
  • Alt-/ (Развернуть слово) также полезно для уменьшения набора текста

    История команд

    • Alt-p извлекает предыдущую команду, соответствующую введенной вами. В macOS используйте C-p.
    • Alt-n извлекает следующую. В macOS используйте C-n.
    • Return при нахождении любой предыдущей команды извлекает эту команду

Цвета текста

IDLE по умолчанию использует чёрный текст на белом фоне, но выделяет текст со специальными значениями. Для оболочки это вывод оболочки, ошибка оболочки, вывод пользователя и ошибка пользователя. Для Python-кода в приглашении оболочки или в редакторе это ключевые слова, имена встроенных классов и функций, имена, следующие за class и def, строки и комментарии. Для любого текстового окна это курсор (если есть), найденный текст (если возможно) и выделенный текст.

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

Запуск и выполнение кода

При запуске с опцией -s IDLE выполнит файл, на который ссылаются переменные среды IDLESTARTUP или PYTHONSTARTUP. IDLE сначала проверяет IDLESTARTUP; если IDLESTARTUP присутствует, запускается файл, на который он ссылается. Если IDLESTARTUP отсутствует, IDLE проверяет PYTHONSTARTUP. Файлы, на которые ссылаются эти переменные среды, являются удобными местами для хранения часто используемых функций из оболочки IDLE или для выполнения операторов импорта для импорта общих модулей.

Кроме того, Tk также загружает файл запуска, если он присутствует. Обратите внимание, что файл Tk загружается безусловно. Этот дополнительный файл — .Idle.py и его поиск ведётся в домашнем каталоге пользователя. Операторы в этом файле будут выполняться в пространстве имён Tk, поэтому этот файл не подходит для импорта функций, которые будут использоваться из Python-оболочки IDLE.

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

idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...

-c command  run command in the shell window
-d          enable debugger and open shell window
-e          open editor window
-h          print help message with legal combinations and exit
-i          open shell window
-r file     run file in shell window
-s          run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
-t title    set title of shell window
-           run stdin in shell (- must be last option before args)

Если есть аргументы:

  • Если -, -c, или r используется, все аргументы помещаются в sys.argv[1:...], а sys.argv[0] устанавливается в '', '-c', или '-r'. Окно редактора не открывается, даже если это значение по умолчанию установлено в диалоге настроек.
  • В противном случае аргументы — файлы, открытые для редактирования, и sys.argv отражает аргументы, переданные в IDLE.

Ошибка запуска

IDLE использует сокет для связи между процессом графического интерфейса IDLE и процессом выполнения кода пользователя. Подключение должно быть установлено всякий раз, когда оболочка запускается или перезапускается. (Последнее показано разделительной линией, которая гласит «RESTART»). Если пользовательский процесс не сможет подключиться к процессу графического интерфейса, он отобразит окно с ошибкой Tk с сообщением «невозможно подключиться», которое направит пользователя сюда. Затем он завершится.

Распространённой причиной сбоя является файл, написанный пользователем, с тем же именем, что и стандартный модуль библиотеки, например, random.py и tkinter.py. Когда такой файл находится в той же директории, что и файл, который собирается быть запущен, IDLE не может импортировать файл stdlib. Текущее решение — переименовать файл пользователя.

Хотя это менее распространено, чем раньше, программа защиты от вирусов или брандмауэр может остановить подключение. Если программу нельзя научить допускать подключение, её нужно отключить, чтобы IDLE работала. Безопасно разрешить это внутреннее подключение, поскольку никакие данные не видны на внешних портах. Аналогичная проблема — неправильная настройка сети, которая блокирует подключения.

Проблемы с установкой Python иногда препятствуют работе IDLE: несколько версий могут конфликтовать, или для одной установки может потребоваться доступ администратора. Если конфликт устранён, или вы не можете или не хотите работать как администратор, проще всего полностью удалить Python и начать заново.

Проблемой может быть процесс-зомби pythonw.exe. В Windows используйте Диспетчер задач, чтобы проверить его и остановить, если он есть. Иногда перезапуск, инициированный сбоем программы или прерыванием клавиатуры (клавиша Control-C), может не подключиться. Закрытие окна с ошибкой или использование команды «Перезапустить оболочку» в меню оболочки может исправить временную проблему.

При первом запуске IDLE он пытается прочитать файлы конфигурации пользователя в ~/.idlerc/ (~ — это домашний каталог). При возникновении проблемы должно отобразиться сообщение об ошибке. Помимо случайных сбоев диска, этого можно избежать, никогда не редактируя файлы вручную. Вместо этого используйте диалог настроек, в разделе «Настройки». Если в файле конфигурации пользователя возникла ошибка, лучшим решением может быть его удаление и повторное начало работы с диалогом настроек.

Если IDLE завершится без сообщения и не запускался из консоли, попробуйте запустить его из консоли или терминала (python -m idlelib). Это может вывести сообщение об ошибке.

Выполнение кода пользователя

За редким исключением, результат выполнения Python-кода с помощью IDLE должен быть таким же, как и при выполнении того же кода стандартным способом — непосредственно с помощью Python в текстовой консоли или окне терминала. Однако разный интерфейс и работа иногда влияют на видимые результаты. Например, sys.modules начинается с большего количества записей, а threading.activeCount() возвращает 2 вместо 1.

По умолчанию IDLE выполняет код пользователя в отдельном процессе ОС, а не в процессе пользовательского интерфейса, который выполняет оболочку и редактор. В процессе выполнения он заменяет sys.stdin, sys.stdout, и sys.stderr объектами, которые получают входные данные от окна оболочки и отправляют выходные данные в него. Исходные значения, хранящиеся в sys.__stdin__, sys.__stdout__, и sys.__stderr__, не изменяются, но могут быть None.

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

Стандартные замены потоков IDLE не наследуются подпроцессами, созданными в процессе выполнения, будь то непосредственно пользователем или модулями, такими как multiprocessing. Если такие подпроцессы используют input из sys.stdin или print или write в sys.stdout или sys.stderr, IDLE следует запускать в окне командной строки. В этом случае вторичный подпроцесс будет присоединён к этому окну для ввода и вывода.

Код IDLE, работающий в процессе выполнения, добавляет кадры в стек вызовов, которых бы не было иначе. IDLE оборачивает sys.getrecursionlimit и sys.setrecursionlimit для уменьшения влияния дополнительных кадров стека.

Если sys сбрасывается кодом пользователя, например, с помощью importlib.reload(sys), изменения IDLE теряются, и ввод с клавиатуры и вывод на экран не будут работать правильно.

Когда код пользователя вызывает SystemExit, либо напрямую, либо вызвав sys.exit, IDLE возвращается к приглашению оболочки, вместо того чтобы завершиться.

Вывод пользователя в оболочке

Когда программа выводит текст, результат определяется соответствующим устройством вывода. Когда IDLE выполняет код пользователя, sys.stdout и sys.stderr подключены к области отображения оболочки IDLE. Некоторые её функции унаследованы от базового виджета Tk Text. Другие — это добавленные программно функции. Там, где это важно, оболочка предназначена для разработки, а не для производственного выполнения.

Например, оболочка никогда не отбрасывает вывод. Программа, которая отправляет неограниченный вывод в оболочку, в конечном итоге заполнит память, что приведёт к ошибке памяти. В отличие от этого, некоторые текстовые окна системы сохраняют только последние n строк вывода. Например, консоль Windows сохраняет настраиваемое пользователем от 1 до 9999 строк, по умолчанию 300 строк.

Виджет Tk Text, а следовательно, и оболочка IDLE, отображает символы (кодовые точки) в подмножестве Unicode BMP (Basic Multilingual Plane). Какие символы отображаются с правильным глифом, а какие — с замещающим прямоугольником, зависит от операционной системы и установленных шрифтов. Символы табуляции приводят к тому, что следующий текст начинается после следующей точки табуляции. (Они возникают каждые 8 «символов»). Символы новой строки приводят к тому, что следующий текст появляется на новой строке. Другие управляющие символы игнорируются или отображаются как пробел, прямоугольник или что-то ещё, в зависимости от операционной системы и шрифта. (Перемещение курсора текста через такой вывод с помощью клавиш со стрелками может привести к некоторым неожиданным пробелам).

>>> s = 'a\tb\a<\x02><\r>\bc\nd'  # Enter 22 chars.
>>> len(s)
14
>>> s  # Display repr(s)
'a\tb\x07<\x02><\r>\x08c\nd'
>>> print(s, end='')  # Display s as is.
# Result varies by OS and font.  Try it.

Функция repr используется для интерактивного отображения значений выражений. Она возвращает изменённую версию входной строки, в которой управляющие коды, некоторые кодовые точки BMP и все кодовые точки, не входящие в BMP, заменены на escape-коды. Как показано выше, это позволяет идентифицировать символы в строке независимо от того, как они отображаются.

Нормальный и ошибочный вывод обычно отделяются (на разных строках) от ввода кода и друг от друга. Они имеют разные цвета выделения.

Для отслеживания ошибок SyntaxError обычная метка «^», обозначающая место обнаружения ошибки, заменяется выделением текста цветом. При выполнении кода из файла, вызывающего другие исключения, можно щелкнуть правой кнопкой мыши на строке отслеживания, чтобы перейти к соответствующей строке в редакторе IDLE. Файл будет открыт при необходимости.

Консоль имеет специальную возможность сжатия строк вывода до метки «Сжатый текст». Это делается автоматически для вывода более N строк (по умолчанию N = 50). N можно изменить в разделе PyShell на странице «Общие» диалогового окна «Настройки». Вывод с меньшим количеством строк можно сжать, щелкнув правой кнопкой мыши по выводу. Это может быть полезно для строк достаточно длинных, чтобы замедлить прокрутку.

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

Разработка приложений tkinter

IDLE преднамеренно отличается от стандартного Python, чтобы облегчить разработку программ tkinter. В стандартном Python введите import tkinter as tk; root = tk.Tk() и ничего не появится. В IDLE введите то же самое, и появится окно tk. В стандартном Python также необходимо ввести root.update(), чтобы увидеть окно. IDLE выполняет эквивалентные действия в фоновом режиме примерно 20 раз в секунду, то есть примерно каждые 50 миллисекунд. Далее введите b = tk.Button(root, text='button'); b.pack(). Опять же, в стандартном Python ничего визуально не изменится, пока вы не введете root.update().

Большинство программ tkinter выполняют root.mainloop(), что обычно не возвращает результат, пока приложение tk не будет уничтожено. Если программа запускается с помощью python -i или из редактора IDLE, приглашение консоли >>> не появится, пока mainloop() не вернётся, в этот момент не останется ничего для взаимодействия.

При запуске программы tkinter из редактора IDLE можно прокомментировать вызов mainloop. Тогда вы сразу получите приглашение консоли и сможете взаимодействовать с активным приложением. Нужно просто помнить, что при запуске в стандартном Python необходимо снова активировать вызов mainloop.

Запуск без подпроцесса

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

Если попытка установить сокетное соединение терпит неудачу, Idle уведомит вас. Такие сбои иногда временные, но если они повторяются, проблема может заключаться либо в том, что брандмауэр блокирует соединение, либо в неправильной конфигурации конкретной системы. Пока проблема не будет исправлена, можно запустить Idle с флагом командной строки -n.

Если IDLE запущен с флагом командной строки -n, он будет работать в одном процессе и не будет создавать подпроцесс, который выполняет сервер выполнения Python RPC. Это может быть полезно, если Python не может создать подпроцесс или интерфейс сокета RPC на вашей платформе. Однако в этом режиме пользовательский код не изолирован от самого IDLE. Кроме того, среда не перезапускается при выборе «Запуск/Запустить модуль» (F5). Если ваш код был изменён, вы должны загрузить (reload()) затронутые модули и повторно импортировать все конкретные элементы (например, from foo import baz), если изменения должны вступить в силу. По этим причинам предпочтительнее запускать IDLE с помощью стандартного подпроцесса, если это вообще возможно.

Устарело начиная с версии 3.4.

Справка и настройки

Источники справки

Пункт меню «Справка» → «Справка IDLE» отображает отформатированную html-версию главы IDLE справочника по библиотеке. Результат, отображаемый в текстовом окне tkinter только для чтения, очень похож на то, что вы видите в веб-браузере. Перемещайтесь по тексту, используя колесо мыши, полосу прокрутки или клавиши со стрелками вверх и вниз. Или нажмите кнопку TOC (Оглавление) и выберите заголовок раздела в открывшемся окне.

Пункт меню «Документация Python» открывает обширные источники справки, включая учебники, доступные по адресу docs.python.org/x.y, где ‘x.y’ — текущая версия Python. Если на вашей системе имеется автономная копия документации (это может быть опция установки), она будет открыта вместо неё.

Выбранные URL-адреса можно добавлять или удалять из меню справки в любое время, используя вкладку «Общие» диалогового окна «Настройка IDLE».

Настройка предпочтений

Настройки шрифтов, выделения, клавиш и общих предпочтений можно изменить в диалоговом окне «Настройка IDLE» в меню «Опции». Нестандартные пользовательские настройки сохраняются в каталоге .idlerc в домашнем каталоге пользователя. Проблемы, вызванные плохими конфигурационными файлами пользователя, решаются путём редактирования или удаления одного или нескольких файлов в .idlerc.

На вкладке «Шрифт» обратите внимание на пример текста, чтобы увидеть влияние набора шрифтов и размера на несколько символов на разных языках. Отредактируйте пример, чтобы добавить другие символы, представляющие личный интерес. Используйте пример для выбора шрифтов с одинаковой шириной символов. Если у конкретных символов возникают проблемы в консоли или редакторе, добавьте их в начало примера и попробуйте изменить сначала размер, а затем шрифт.

На вкладке «Подсветка и клавиши» выберите встроенную или пользовательскую цветовую тему и набор клавиш. Чтобы использовать более новую встроенную цветовую тему или набор клавиш с более старыми версиями IDLE, сохраните её как новую пользовательскую тему или набор клавиш, и она будет доступна для более старых версий IDLE.

IDLE на macOS

В настройках системы: «Панель задач», можно установить «Предпочитать вкладки при открытии документов» в «Всегда». Эта настройка несовместима с фреймворком tk/tkinter GUI, используемым IDLE, и она нарушает некоторые функции IDLE.

Расширения

IDLE содержит механизм расширений. Настройки расширений можно изменить на вкладке «Расширения» диалогового окна настроек. Подробнее см. в начале файла config-extensions.def в директории idlelib. Единственным текущим расширением по умолчанию является zzdummy, также используемый для тестирования.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.7/library/idle.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API