Idle python руководство

Содержание:развернуть

  • Запуск IDLE
  • Интерактивный режим
  • Подсветка синтаксиса

  • Отступы

  • Autocomplete

  • Подсказки к функциям

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

  • Режим редактирования файлов

IDLE (Integrated Development and Learning Environment) — это интегрированная среда для разработки (и обучения), которая поставляется вместе с Python. Сама IDLE написана на Python с использованием библиотеки Tkinter, поэтому является кроссплатформенным приложением (может работать на Windows, Mac OS, Linux).

IDLE это по сути текстовый редактор с подсветкой синтаксиса, автозаполнением, умным отступом и другими функциями для удобства написания кода на Python.

В данной статье рассмотрим основные принципы работы с IDLE.

Запуск IDLE

Перед запуском IDLE необходимо установить Python

IDLE в Windows находится в меню «Пуск» → «Python 3.x» → «IDLE«. Также можно быстро найти его через «Поиск» около меню «Пуск«, набрав в поле поиска «IDLE»:

Быстрый запуск IDLE в Windows.

В Unix-подобных операционных системах (Linux, MacOS), IDLE запускается через терминал командой idle. Если программа не запустилась, поищите idle в каталоге tools/idle дистрибутива Python. Если idle отсутствует в вашей системе, установите его командой:

sudo apt-get install idle3

Интерактивный режим

Изначально программа запускается в интерактивном режиме. По другому его называют REPL. Все что вы напишете в интерактивном режиме после «>>>» будет сразу же выполнено построчно. Традиционный «Hello world!» будет выглядеть так:

Первая программа в IDLE – вывод фразы «Hello world!».

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

Подсветка синтаксиса

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

Подсветка синтаксиса в Python IDLE.

Отступы

Отступы в IDLE создаются автоматически. По умолчанию их размер равен 8-ми пробелам.

В REPL режиме команды исполняются построчно, однако IDLE понимает, что для некоторых инструкций (if-else, while и т.д.) необходим многострочный ввод. Когда вы ввели первую строку, например if n == 0: и нажали «enter», IDLE перенесет курсор на новую строку и автоматически создаст новый отступ.

IDLE автоматически создает отступы для многострочных инструкций.

Небольшая инструкция по работе с отступами:

  • при нажатии на «enter» в нужных конструкциях, отступы создаются автоматически;
  • если вам необходимо сдвинуться на предыдущий уровень, нажмите «Backspace» или стрелку «Влево«;
  • если необходимо сдвинуться вправо, нажмите «Tab» или стрелку «Вправо«;
  • если вы напечатали выражение pass, return, break, continue или raise и нажали «enter», каретка автоматически вернется к прежнему отступу.

Autocomplete

Механизм автозавершения фраз и конструкций используется во многих IDE, и Python IDLE не исключение. Если вы будете пользоваться этой функцией, скорость написания вашего кода заметно ускорится, так как не придется дописывать названия переменных и конструкций полностью. Достаточно ввести часть слова (например pri) и нажать Alt + /. Если вариантов слова несколько, нажмите данную комбинацию несколько раз.

Подсказки к функциям

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

Подсказки для функций в IDLE Python.

Подсказка будет отображаться до тех пор, пока вы не закроете скобку.

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

Чтобы полистать историю введенных ранее команд, установите курсор после «>>>» и выполните комбинацию Alt + n (листать вперед) или Alt + p (листать назад).

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

Режим редактирования файлов

В IDLE есть возможность полноценно работать с файлами — просматривать, редактировать, создавать новые. Чтобы создать новый файл, выберите «File» -> «New File» (или Ctrl + N). Откроется новое окно:

Новый файл в IDLE.

В новом окне доступен тот же функционал, что и в интерактивном режиме. Однако разница все же есть — в режиме редактирования файлов используется 4 пробела для отступа, в отличие от интерактивного режима (там используется 8 пробелов).

Для примера, напишем простой код и сохраним его с помощью «File» → «Save» (или Ctrl + S). После того как файл сохранен, IDLE начнет понимать что этот файл имеет расширение «.py» и подсветит синтаксис.

Подсветка синтаксиса в IDLE доступна после сохранения файла с расширением «.py».

Теперь, чтобы запустить код, выберите «Run» → «Run Module» (или F5). Откроется новое окно Python Shell с результатом выполнения нашего кода.

Нажмите F5 для выполнения кода.

IDLE особенно удобно использовать при обучении языку Python, чтобы быстро проверять на практике команды и инструкции. Также, в режиме REPL, IDLE имеет ряд преимуществ перед обычной консолью (подсказки, подсветка синтаксиса, авто-отступы и др.)

Однако имеющегося функционала может оказаться недостаточно для серьезной разработки. Стоит присмотреться к PyCharm или VSCode.

Если вы недавно загрузили Python на свой компьютер, то, возможно, вы заметили новую программу на вашем компьютере под названием IDLE . Вы можете спросить: «Что эта программа делает на моем компьютере? Я не скачал это! Хотя вы, возможно, не загружали эту программу самостоятельно, IDLE поставляется в комплекте с каждой установкой Python. Он поможет вам начать работу с языком прямо из коробки. Из этого руководства вы узнаете, как работать в Python IDLE, и несколько интересных приемов, которые вы можете использовать в своем путешествии по Python!

*В этом уроке вы узнаете:*
  • Что такое Python IDLE

  • Как взаимодействовать с Python напрямую, используя IDLE

  • Как редактировать, выполнять и отлаживать файлы Python с помощью IDLE

  • Как настроить Python IDLE на свой вкус

    *Бесплатный бонус:* ссылка: [Нажмите здесь, чтобы получить шпаргалку Python] и изучить основы Python 3, такие как работа с типами данных, словарями, списками и функциями Python.

Что такое Python IDLE?

Каждая установка Python поставляется с Интегрированной средой разработки и обучения , которую вы увидите сокращенной до IDLE или даже IDE. Это класс приложений, которые помогают вам писать код более эффективно. Хотя существует множество IDEs на ваш выбор, Python IDLE очень прост, что делает его идеальным инструментом для начинающего программиста.

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

Интерактивный переводчик

Лучшее место для экспериментов с кодом Python — это interactive интерпретатор, иначе известный как shell . Оболочка представляет собой простой Read-Eval-Print Loop (REPL). Он читает инструкцию Python, оценивает результат этой инструкции, а затем выводит результат на экран. Затем он возвращается к следующему оператору.

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

Редактор файлов

Каждый программист должен иметь возможность редактировать и сохранять текстовые файлы. Программы Python — это файлы с расширением + .py +, которые содержат строки кода Python. Python IDLE дает вам возможность создавать и редактировать эти файлы с легкостью.

Python IDLE также предоставляет несколько полезных функций, которые вы увидите в профессиональных IDE, таких как подсветка основного синтаксиса, автозавершение кода и авто-отступ. Профессиональные IDE — более надежные части программного обеспечения, и у них крутая кривая обучения. Если вы только начинаете свое программирование на Python, то Python IDLE — отличная альтернатива!

Как использовать оболочку Python IDLE

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

Blank Python Interpreter в IDLE

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

Hello Мировая программа

Здесь вы использовали + print () +, чтобы вывести строку " Hello, from IDLE! " На ваш экран. Это самый простой способ взаимодействия с Python IDLE. Вы вводите команды по одной за раз, и Python отвечает результатом каждой команды.

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

the строка меню для IDLE с отображенным меню Shell

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

В результате выполнения некоторый код в оболочке IDLE

На изображении выше вы сначала объявляете переменную + x = 5 +. Когда вы вызываете + print (x) +, оболочка показывает правильный вывод, который является числом + 5 +. Однако, когда вы перезапустите оболочку и попытаетесь снова вызвать + print (x) +, вы увидите, что оболочка печатает traceback. Это сообщение об ошибке, в котором говорится, что переменная + x + не определена. Оболочка забыла обо всем, что было до перезапуска.

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

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

Сообщение об ошибке + KeyboardInterrupt + отображается красным текстом в нижней части окна. Программа получила прерывание и прекратила выполнение.

Как работать с файлами Python

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

Открытие файла

Чтобы запустить новый файл Python, выберите File → New File в строке меню. Это откроет пустой файл в редакторе, например так:

shows пустой файл после открытия нового файла для редактирования в IDLE

Из этого окна вы можете написать новый файл Python. Вы также можете открыть существующий файл Python, выбрав _File → Open… _ в строке меню. Это откроет браузер файлов вашей операционной системы. Затем вы можете найти файл Python, который хотите открыть.

Если вы заинтересованы в чтении исходного кода для модуля Python, вы можете выбрать File → Path Browser. Это позволит вам просматривать модули, которые может видеть Python IDLE. Если дважды щелкнуть один из них, откроется редактор файлов, и вы сможете его прочитать.

Содержимое этого окна будет таким же, как пути, возвращаемые при вызове + sys.path +. Если вы знаете имя определенного модуля, который хотите просмотреть, вы можете выбрать File → Module Browser и ввести имя модуля в появившемся окне.

Редактирование файла

После того, как вы открыли файл в Python IDLE, вы можете внести в него изменения. Когда вы будете готовы отредактировать файл, вы увидите что-то вроде этого:

an открыл файл Python в IDLE

Содержимое вашего файла отображается в открытом окне. Панель в верхней части окна содержит три важных элемента:

  1. Имя файла, который вы редактируете

  2. Полный путь к папке, где вы можете найти этот файл на вашем компьютере

  3. Версия Python, которую использует IDLE

На изображении выше вы редактируете файл + myFile.py +, который находится в папке + Documents +. Версия Python 3.7.1, которую вы можете увидеть в скобках.

В правом нижнем углу окна также есть две цифры:

  1. Ln: показывает номер строки, на которой находится ваш курсор.

  2. Col: показывает номер столбца, на котором находится ваш курсор.

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

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

показывает

Имя файла, отображаемое в верхней части окна IDLE, окружено звездочками. Это означает, что в вашем редакторе есть несохраненные изменения. Вы можете сохранить эти изменения с помощью стандартного сочетания клавиш вашей системы или выбрать Файл → Сохранить в строке меню. Убедитесь, что вы сохранили свой файл с расширением + .py +, чтобы подсветка синтаксиса была включена.

Выполнение файла

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

Чтобы выполнить файл в режиме IDLE, просто нажмите клавишу F5 на клавиатуре. Вы также можете выбрать Run → Run Module в строке меню. Любой из вариантов перезапустит интерпретатор Python, а затем запустит код, который вы написали, с новым интерпретатором. Процесс такой же, как когда вы запускаете + python3 -i [имя файла] + в вашем терминале.

Когда ваш код будет выполнен, интерпретатор будет знать все о вашем коде, включая любые глобальные переменные, функции и классы. Это делает Python IDLE отличным местом для проверки ваших данных, если что-то пойдет не так. Если вам когда-нибудь понадобится прервать выполнение вашей программы, вы можете нажать [.keys] # Ctrl + C # в интерпретаторе, который выполняет ваш код.

Как улучшить ваш рабочий процесс

Теперь, когда вы увидели, как писать, редактировать и выполнять файлы в Python IDLE, пришло время ускорить ваш рабочий процесс! Редактор Python IDLE предлагает несколько функций, которые вы увидите в большинстве профессиональных IDE, чтобы помочь вам быстрее кодировать. Эти функции включают в себя автоматическое отступление, завершение кода и советы по вызову, а также контекст кода.

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

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

Вы можете настроить, сколько пробелов будет перемещать курсор в настройках, но по умолчанию используются стандартные четыре пробела. Разработчики Python согласовали стандартный стиль для хорошо написанного кода Python, который включает в себя правила для отступов, пробелов и многого другого. Этот стандартный стиль был формализован и теперь известен как PEP 8 . Чтобы узнать больше об этом, ознакомьтесь с Как написать красивый код Python с помощью PEP 8.

Завершение кода и Советы по вызову

Когда вы пишете код для большого проекта или сложной проблемы, вы можете потратить много времени, просто набирая весь необходимый код. Завершение кода помогает вам сэкономить время, пытаясь завершить ваш код для вас. Python IDLE имеет базовую функциональность завершения кода. Это может только автозаполнение имен функций и классов. Чтобы использовать автозаполнение в редакторе, просто нажмите клавишу табуляции после последовательности текста.

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

displays простой совет для вызова метода append с питоном список

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

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

Функциональность code context — это удобная функция редактора файлов Python IDLE. Он покажет вам область действия функции, класса, цикла или другой конструкции. Это особенно полезно, когда вы просматриваете длинный файл и вам нужно отслеживать, где вы находитесь, просматривая код в редакторе.

Чтобы включить его, выберите Options → Code Context в строке меню. Вы увидите серую полосу в верхней части окна редактора:

show функция контекста кода редактора бездействия

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

Как отлаживать в IDLE

*Ошибка* - неожиданная проблема в вашей программе. Они могут появляться во многих формах, и некоторые из них труднее исправить, чем другие. Некоторые ошибки достаточно хитры, и вы не сможете их обнаружить, просто прочитав свою программу. К счастью, Python IDLE предоставляет некоторые базовые инструменты, которые помогут вам https://realpython.com/courses/python-debugging-pdb/[debug] ваши программы с легкостью!

Режим интерпретатора DEBUG

Если вы хотите запустить свой код с помощью встроенного отладчика, то вам нужно включить эту функцию. Для этого выберите Debug → Debugger в строке меню Python IDLE. В интерпретаторе вы должны увидеть + [DEBUG ON] + перед запросом (+ >>> +), что означает, что интерпретатор готов и ожидает.

Когда вы запустите ваш файл Python, появится окно отладчика:

shows пустое окно отладчика в режиме ожидания Python

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

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

  • Go: Нажмите эту кнопку, чтобы перейти к следующему breakpoint. Вы узнаете об этом в следующем разделе.

  • Шаг: Нажмите, чтобы выполнить текущую строку и перейти к следующей.

  • Over: Если текущая строка кода содержит вызов функции, нажмите эту кнопку, чтобы перейти на over эту функцию. Другими словами, выполните эту функцию и перейдите к следующей строке, но не делайте паузу во время выполнения функции (если не существует точки останова).

  • Out: Если текущая строка кода находится в функции, нажмите эту кнопку, чтобы перейти к шагу out этой функции. Другими словами, продолжайте выполнение этой функции, пока не вернетесь к ней.

Будьте осторожны, потому что нет кнопки реверса! Вы можете только сделать шаг вперед во время выполнения вашей программы.

Вы также увидите четыре флажка в окне отладки:

  1. Globals: глобальная информация о вашей программе

  2. Locals: локальная информация вашей программы во время выполнения

  3. Стек: функции, которые запускаются во время выполнения

  4. Источник: Ваш файл в редакторе IDLE

Выбрав один из них, вы увидите соответствующую информацию в окне отладки.

Контрольные точки

*Точка останова* - это строка кода, которую вы определили как место, где интерпретатор должен приостановить выполнение кода. Они будут работать только при включенном режиме _DEBUG_, поэтому убедитесь, что вы сделали это в первую очередь.

Чтобы установить точку останова, щелкните правой кнопкой мыши строку кода, которую вы хотите приостановить. Это выделит строку кода желтым цветом как визуальную индикацию установленной точки останова. Вы можете установить столько точек останова в своем коде, сколько захотите. Чтобы отменить точку останова, снова щелкните правой кнопкой мыши на той же строке и выберите Clear Breakpoint.

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

Ошибки и исключения

Когда вы видите сообщение об ошибке в интерпретаторе, Python IDLE позволяет перейти прямо к файлу или строке, вызвавшей сбой, из строки меню. Все, что вам нужно сделать, это выделить номер строки или имя файла указанным курсором и выбрать Debug → Перейти к файлу/строке в строке меню. Это откроет файл-нарушитель и приведет вас к строке, содержащей ошибку. Эта функция работает независимо от того, включен ли режим DEBUG.

Python IDLE также предоставляет инструмент, который называется stack viewer . Вы можете получить к нему доступ через параметр Debug в строке меню. Этот инструмент покажет вам traceback ошибки, как она появляется в стеке последней ошибки, или exception что Python IDLE встретился при запуске вашего кода. Когда происходит неожиданная или интересная ошибка, вам может быть полезно взглянуть на стек. В противном случае эту функцию может быть сложно разобрать, и, вероятно, она вам не пригодится, если вы не пишете очень сложный код.

Как настроить Python IDLE

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

Для доступа к окну настройки выберите Options → Configure IDLE в строке меню. Чтобы просмотреть результат изменения, которое вы хотите внести, нажмите Apply. Когда вы закончите настройку Python IDLE, нажмите OK, чтобы сохранить все ваши изменения. Если вы не хотите сохранять изменения, просто нажмите Cancel.

Существует 5 областей Python IDLE, которые вы можете настроить:

  1. Шрифты/Tabs

  2. Особенности

  3. Keys

  4. генеральный

  5. расширения

Давайте посмотрим на каждого из них сейчас.

Шрифты/Tabs

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

the окно настроек шрифта настройки простоя панель

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

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

Особенности

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

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

  1. IDLE Day

  2. IDLE Night

  3. IDLE Новый

Вы можете выбрать одну из этих предустановленных тем или создать собственную тему прямо в этом окне:

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

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

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

Keys

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

python панель настройки сочетаний клавиш для режима ожидания простоя

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

Создание ваших собственных ярлыков

Настройка сочетаний клавиш очень похожа на настройку цветов подсветки синтаксиса. К сожалению, IDLE не позволяет устанавливать пользовательские сочетания клавиш из файла. Вы должны создать собственный набор ярлыков на вкладке Keys.

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

idle настройки новых ключей всплывающее окно

Здесь вы можете использовать флажки и меню прокрутки, чтобы выбрать комбинацию клавиш, которые вы хотите использовать для этого ярлыка. Вы можете выбрать _Advanced Key Binding Entry >> _, чтобы ввести команду вручную. Обратите внимание, что это не может подобрать нажатия клавиш. Вы должны буквально ввести команду так, как вы видите ее в списке ярлыков.

генеральный

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

показывает

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

расширения

Пятая вкладка окна настройки позволяет добавлять расширения в Python IDLE. Расширения позволяют добавлять новые замечательные функции в редактор и окно интерпретатора. Вы можете скачать их из Интернета и установить прямо в Python IDLE.

Чтобы посмотреть, какие расширения установлены, выберите Options → Configure IDLE → Extensions. В Интернете доступно множество extensions, о которых вы можете прочитать больше. Найдите те, которые вам нравятся, и добавьте их в Python IDLE!

Заключение

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

  • Работа с оболочкой Python IDLE

  • Используйте Python IDLE в качестве редактора файлов

  • Улучшите ваш рабочий процесс с помощью функций, которые помогут вам быстрее писать код

  • Отладка вашего кода и просмотр ошибок и исключений

  • Настройте Python IDLE по своему вкусу

Теперь вы вооружены новым инструментом, который позволит вам продуктивно писать код Pythonic и сэкономит вам бесчисленные часы в будущем. Удачного программирования!

Source code: Lib/idlelib/


IDLE is Python’s Integrated Development and Learning Environment.

IDLE has the following features:

  • coded in 100% pure Python, using the tkinter GUI toolkit
  • cross-platform: works mostly the same on Windows, Unix, and Mac OS X
  • Python shell window (interactive interpreter) with colorizing
    of code input, output, and error messages
  • multi-window text editor with multiple undo, Python colorizing,
    smart indent, call tips, auto completion, and other features
  • search within any window, replace within editor windows, and search
    through multiple files (grep)
  • debugger with persistent breakpoints, stepping, and viewing
    of global and local namespaces
  • configuration, browsers, and other dialogs

25.5.2. Editing and navigation¶

In this section, ‘C’ refers to the Control key on Windows and Unix and
the Command key on Mac OSX.

  • Backspace deletes to the left; Del deletes to the right

  • C-Backspace delete word left; C-Del delete word to the right

  • Arrow keys and Page Up/Page Down to move around

  • C-LeftArrow and C-RightArrow moves by words

  • Home/End go to begin/end of line

  • C-Home/C-End go to begin/end of file

  • Some useful Emacs bindings are inherited from Tcl/Tk:

    • C-a beginning of line
    • C-e end of line
    • C-k kill line (but doesn’t put it in clipboard)
    • C-l center window around the insertion point
    • C-b go backward one character without deleting (usually you can
      also use the cursor key for this)
    • C-f go forward one character without deleting (usually you can
      also use the cursor key for this)
    • C-p go up one line (usually you can also use the cursor key for
      this)
    • C-d delete next character

Standard keybindings (like C-c to copy and C-v to paste)
may work. Keybindings are selected in the Configure IDLE dialog.

25.5.2.1. Automatic indentation¶

After a block-opening statement, the next line is indented by 4 spaces (in the
Python Shell window by one tab). After certain keywords (break, return etc.)
the next line is dedented. In leading indentation, Backspace deletes up
to 4 spaces if they are there. Tab inserts spaces (in the Python
Shell window one tab), number depends on Indent width. Currently, tabs
are restricted to four spaces due to Tcl/Tk limitations.

See also the indent/dedent region commands in the edit menu.

25.5.2.2. Completions¶

Completions are supplied for functions, classes, and attributes of classes,
both built-in and user-defined. Completions are also provided for
filenames.

The AutoCompleteWindow (ACW) will open after a predefined delay (default is
two seconds) after a ‘.’ or (in a string) an os.sep is typed. If after one
of those characters (plus zero or more other characters) a tab is typed
the ACW will open immediately if a possible continuation is found.

If there is only one possible completion for the characters entered, a
Tab will supply that completion without opening the ACW.

‘Show Completions’ will force open a completions window, by default the
C-space will open a completions window. In an empty
string, this will contain the files in the current directory. On a
blank line, it will contain the built-in and user-defined functions and
classes in the current namespaces, plus any modules imported. If some
characters have been entered, the ACW will attempt to be more specific.

If a string of characters is typed, the ACW selection will jump to the
entry most closely matching those characters. Entering a tab will
cause the longest non-ambiguous match to be entered in the Editor window or
Shell. Two tab in a row will supply the current ACW selection, as
will return or a double click. Cursor keys, Page Up/Down, mouse selection,
and the scroll wheel all operate on the ACW.

“Hidden” attributes can be accessed by typing the beginning of hidden
name after a ‘.’, e.g. ‘_’. This allows access to modules with
__all__ set, or to class-private attributes.

Completions and the ‘Expand Word’ facility can save a lot of typing!

Completions are currently limited to those in the namespaces. Names in
an Editor window which are not via __main__ and sys.modules will
not be found. Run the module once with your imports to correct this situation.
Note that IDLE itself places quite a few modules in sys.modules, so
much can be found by default, e.g. the re module.

If you don’t like the ACW popping up unbidden, simply make the delay
longer or disable the extension.

25.5.2.3. Calltips¶

A calltip is shown when one types ( after the name of an accessible
function. A name expression may include dots and subscripts. A calltip
remains until it is clicked, the cursor is moved out of the argument area,
or ) is typed. When the cursor is in the argument part of a definition,
the menu or shortcut display a calltip.

A calltip consists of the function signature and the first line of the
docstring. For builtins without an accessible signature, the calltip
consists of all lines up the fifth line or the first blank line. These
details may change.

The set of accessible functions depends on what modules have been imported
into the user process, including those imported by Idle itself,
and what definitions have been run, all since the last restart.

For example, restart the Shell and enter itertools.count(. A calltip
appears because Idle imports itertools into the user process for its own use.
(This could change.) Enter turtle.write( and nothing appears. Idle does
not import turtle. The menu or shortcut do nothing either. Enter
import turtle and then turtle.write( will work.

In an editor, import statements have no effect until one runs the file. One
might want to run a file after writing the import statements at the top,
or immediately run an existing file before editing.

25.5.2.4. Python Shell window¶

  • C-c interrupts executing command

  • C-d sends end-of-file; closes window if typed at a >>> prompt

  • Alt-/ (Expand word) is also useful to reduce typing

    Command history

    • Alt-p retrieves previous command matching what you have typed. On
      OS X use C-p.
    • Alt-n retrieves next. On OS X use C-n.
    • Return while on any previous command retrieves that command

25.5.2.5. Text colors¶

Idle defaults to black on white text, but colors text with special meanings.
For the shell, these are shell output, shell error, user output, and
user error. For Python code, at the shell prompt or in an editor, these are
keywords, builtin class and function names, names following class and
def, strings, and comments. For any text window, these are the cursor (when
present), found text (when possible), and selected text.

Text coloring is done in the background, so uncolorized text is occasionally
visible. To change the color scheme, use the Configure IDLE dialog
Highlighting tab. The marking of debugger breakpoint lines in the editor and
text in popups and dialogs is not user-configurable.

25.5.3. Startup and code execution¶

Upon startup with the -s option, IDLE will execute the file referenced by
the environment variables IDLESTARTUP or PYTHONSTARTUP.
IDLE first checks for IDLESTARTUP; if IDLESTARTUP is present the file
referenced is run. If IDLESTARTUP is not present, IDLE checks for
PYTHONSTARTUP. Files referenced by these environment variables are
convenient places to store functions that are used frequently from the IDLE
shell, or for executing import statements to import common modules.

In addition, Tk also loads a startup file if it is present. Note that the
Tk file is loaded unconditionally. This additional file is .Idle.py and is
looked for in the user’s home directory. Statements in this file will be
executed in the Tk namespace, so this file is not useful for importing
functions to be used from IDLE’s Python shell.

25.5.3.1. Command line usage¶

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)

If there are arguments:

  • If -, -c, or r is used, all arguments are placed in
    sys.argv[1:...] and sys.argv[0] is set to '', '-c',
    or '-r'. No editor window is opened, even if that is the default
    set in the Options dialog.
  • Otherwise, arguments are files opened for editing and
    sys.argv reflects the arguments passed to IDLE itself.

25.5.3.2. Startup failure¶

IDLE uses a socket to communicate between the IDLE GUI process and the user
code execution process. A connection must be established whenever the Shell
starts or restarts. (The latter is indicated by a divider line that says
‘RESTART’). If the user process fails to connect to the GUI process, it
displays a Tk error box with a ‘cannot connect’ message that directs the
user here. It then exits.

A common cause of failure is a user-written file with the same name as a
standard library module, such as random.py and tkinter.py. When such a
file is located in the same directory as a file that is about to be run,
IDLE cannot import the stdlib file. The current fix is to rename the
user file.

Though less common than in the past, an antivirus or firewall program may
stop the connection. If the program cannot be taught to allow the
connection, then it must be turned off for IDLE to work. It is safe to
allow this internal connection because no data is visible on external
ports. A similar problem is a network mis-configuration that blocks
connections.

Python installation issues occasionally stop IDLE: multiple versions can
clash, or a single installation might need admin access. If one undo the
clash, or cannot or does not want to run as admin, it might be easiest to
completely remove Python and start over.

A zombie pythonw.exe process could be a problem. On Windows, use Task
Manager to detect and stop one. Sometimes a restart initiated by a program
crash or Keyboard Interrupt (control-C) may fail to connect. Dismissing
the error box or Restart Shell on the Shell menu may fix a temporary problem.

When IDLE first starts, it attempts to read user configuration files in
~/.idlerc/ (~ is one’s home directory). If there is a problem, an error
message should be displayed. Leaving aside random disk glitches, this can
be prevented by never editing the files by hand, using the configuration
dialog, under Options, instead Options. Once it happens, the solution may
be to delete one or more of the configuration files.

If IDLE quits with no message, and it was not started from a console, try
starting from a console (python -m idlelib) and see if a message appears.

25.5.3.3. IDLE-console differences¶

With rare exceptions, the result of executing Python code with IDLE is
intended to be the same as executing the same code in a console window.
However, the different interface and operation occasionally affect
visible results. For instance, sys.modules starts with more entries.

IDLE also replaces sys.stdin, sys.stdout, and sys.stderr with
objects that get input from and send output to the Shell window.
When Shell has the focus, it controls the keyboard and screen. This is
normally transparent, but functions that directly access the keyboard
and screen will not work. If sys is reset with importlib.reload(sys),
IDLE’s changes are lost and things like input, raw_input, and
print will not work correctly.

With IDLE’s Shell, one enters, edits, and recalls complete statements.
Some consoles only work with a single physical line at a time. IDLE uses
exec to run each statement. As a result, '__builtins__' is always
defined for each statement.

25.5.3.4. Developing tkinter applications¶

IDLE is intentionally different from standard Python in order to
facilitate development of tkinter programs. Enter import tkinter as tk;
root = tk.Tk()
in standard Python and nothing appears. Enter the same
in IDLE and a tk window appears. In standard Python, one must also enter
root.update() to see the window. IDLE does the equivalent in the
background, about 20 times a second, which is about every 50 milleseconds.
Next enter b = tk.Button(root, text='button'); b.pack(). Again,
nothing visibly changes in standard Python until one enters root.update().

Most tkinter programs run root.mainloop(), which usually does not
return until the tk app is destroyed. If the program is run with
python -i or from an IDLE editor, a >>> shell prompt does not
appear until mainloop() returns, at which time there is nothing left
to interact with.

When running a tkinter program from an IDLE editor, one can comment out
the mainloop call. One then gets a shell prompt immediately and can
interact with the live application. One just has to remember to
re-enable the mainloop call when running in standard Python.

25.5.3.5. Running without a subprocess¶

By default, IDLE executes user code in a separate subprocess via a socket,
which uses the internal loopback interface. This connection is not
externally visible and no data is sent to or received from the Internet.
If firewall software complains anyway, you can ignore it.

If the attempt to make the socket connection fails, Idle will notify you.
Such failures are sometimes transient, but if persistent, the problem
may be either a firewall blocking the connection or misconfiguration of
a particular system. Until the problem is fixed, one can run Idle with
the -n command line switch.

If IDLE is started with the -n command line switch it will run in a
single process and will not create the subprocess which runs the RPC
Python execution server. This can be useful if Python cannot create
the subprocess or the RPC socket interface on your platform. However,
in this mode user code is not isolated from IDLE itself. Also, the
environment is not restarted when Run/Run Module (F5) is selected. If
your code has been modified, you must reload() the affected modules and
re-import any specific items (e.g. from foo import baz) if the changes
are to take effect. For these reasons, it is preferable to run IDLE
with the default subprocess if at all possible.

Deprecated since version 3.4.

25.5.4. Help and preferences¶

25.5.4.1. Additional help sources¶

IDLE includes a help menu entry called “Python Docs” that will open the
extensive sources of help, including tutorials, available at docs.python.org.
Selected URLs can be added or removed from the help menu at any time using the
Configure IDLE dialog. See the IDLE help option in the help menu of IDLE for
more information.

25.5.4.2. Setting preferences¶

The font preferences, highlighting, keys, and general preferences can be
changed via Configure IDLE on the Option menu. Keys can be user defined;
IDLE ships with four built-in key sets. In addition, a user can create a
custom key set in the Configure IDLE dialog under the keys tab.

25.5.4.3. Extensions¶

IDLE contains an extension facility. Preferences for extensions can be
changed with the Extensions tab of the preferences dialog. See the
beginning of config-extensions.def in the idlelib directory for further
information. The only current default extension is zzdummy, an example
also used for testing.

Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Starting With Python IDLE

If you’ve recently downloaded Python onto your computer, then you may have noticed a new program on your machine called IDLE. You might be wondering, “What is this program doing on my computer? I didn’t download that!” While you may not have downloaded this program on your own, IDLE comes bundled with every Python installation. It’s there to help you get started with the language right out of the box. In this tutorial, you’ll learn how to work in Python IDLE and a few cool tricks you can use on your Python journey!

In this tutorial, you’ll learn:

  • What Python IDLE is
  • How to interact with Python directly using IDLE
  • How to edit, execute, and debug Python files with IDLE
  • How to customize Python IDLE to your liking

What Is Python IDLE?

Every Python installation comes with an Integrated Development and Learning Environment, which you’ll see shortened to IDLE or even IDE. These are a class of applications that help you write code more efficiently. While there are many IDEs for you to choose from, Python IDLE is very bare-bones, which makes it the perfect tool for a beginning programmer.

Python IDLE comes included in Python installations on Windows and Mac. If you’re a Linux user, then you should be able to find and download Python IDLE using your package manager. Once you’ve installed it, you can then use Python IDLE as an interactive interpreter or as a file editor.

An Interactive Interpreter

The best place to experiment with Python code is in the interactive interpreter, otherwise known as a shell. The shell is a basic Read-Eval-Print Loop (REPL). It reads a Python statement, evaluates the result of that statement, and then prints the result on the screen. Then, it loops back to read the next statement.

The Python shell is an excellent place to experiment with small code snippets. You can access it through the terminal or command line app on your machine. You can simplify your workflow with Python IDLE, which will immediately start a Python shell when you open it.

A File Editor

Every programmer needs to be able to edit and save text files. Python programs are files with the .py extension that contain lines of Python code. Python IDLE gives you the ability to create and edit these files with ease.

Python IDLE also provides several useful features that you’ll see in professional IDEs, like basic syntax highlighting, code completion, and auto-indentation. Professional IDEs are more robust pieces of software and they have a steep learning curve. If you’re just beginning your Python programming journey, then Python IDLE is a great alternative!

How to Use the Python IDLE Shell

The shell is the default mode of operation for Python IDLE. When you click on the icon to open the program, the shell is the first thing that you see:

Blank Python Interpreter in IDLE

This is a blank Python interpreter window. You can use it to start interacting with Python immediately. You can test it out with a short line of code:

Hello World program shown in the IDLE python interpreter

Here, you used print() to output the string "Hello, from IDLE!" to your screen. This is the most basic way to interact with Python IDLE. You type in commands one at a time and Python responds with the result of each command.

Next, take a look at the menu bar. You’ll see a few options for using the shell:

the menu bar for IDLE with the Shell menu brought up showing the options of view last restart, restart shell, and interrupt execution

You can restart the shell from this menu. If you select that option, then you’ll clear the state of the shell. It will act as though you’ve started a fresh instance of Python IDLE. The shell will forget about everything from its previous state:

The result of executing some code in the IDLE shell, and then restarting the shell. The shell no longer knows about anything that happening in its previous state.

In the image above, you first declare a variable, x = 5. When you call print(x), the shell shows the correct output, which is the number 5. However, when you restart the shell and try to call print(x) again, you can see that the shell prints a traceback. This is an error message that says the variable x is not defined. The shell has forgotten about everything that came before it was restarted.

You can also interrupt the execution of the shell from this menu. This will stop any program or statement that’s running in the shell at the time of interruption. Take a look at what happens when you send a keyboard interrupt to the shell:

Sending a keyboard interrupt with the Interrupt Execution option in the IDLE menu bar will result in something similar to this. The execution of this program was halted when that option was selected.

A KeyboardInterrupt error message is displayed in red text at the bottom of your window. The program received the interrupt and has stopped executing.

How to Work With Python Files

Python IDLE offers a full-fledged file editor, which gives you the ability to write and execute Python programs from within this program. The built-in file editor also includes several features, like code completion and automatic indentation, that will speed up your coding workflow. First, let’s take a look at how to write and execute programs in Python IDLE.

Opening a File

To start a new Python file, select File → New File from the menu bar. This will open a blank file in the editor, like this:

shows the blank file after opening a new file for editing in IDLE

From this window, you can write a brand new Python file. You can also open an existing Python file by selecting File → Open… in the menu bar. This will bring up your operating system’s file browser. Then, you can find the Python file you want to open.

If you’re interested in reading the source code for a Python module, then you can select File → Path Browser. This will let you view the modules that Python IDLE can see. When you double click on one, the file editor will open up and you’ll be able to read it.

The content of this window will be the same as the paths that are returned when you call sys.path. If you know the name of a specific module you want to view, then you can select File → Module Browser and type in the name of the module in the box that appears.

Editing a File

Once you’ve opened a file in Python IDLE, you can then make changes to it. When you’re ready to edit a file, you’ll see something like this:

an opened python file in IDLE containing a single line of code

The contents of your file are displayed in the open window. The bar along the top of the window contains three pieces of important information:

  1. The name of the file that you’re editing
  2. The full path to the folder where you can find this file on your computer
  3. The version of Python that IDLE is using

In the image above, you’re editing the file myFile.py, which is located in the Documents folder. The Python version is 3.7.1, which you can see in parentheses.

There are also two numbers in the bottom right corner of the window:

  1. Ln: shows the line number that your cursor is on.
  2. Col: shows the column number that your cursor is on.

It’s useful to see these numbers so that you can find errors more quickly. They also help you make sure that you’re staying within a certain line width.

There are a few visual cues in this window that will help you remember to save your work. If you look closely, then you’ll see that Python IDLE uses asterisks to let you know that your file has unsaved changes:

shows what an unsaved file looks like in the idle editor

The file name shown in the top of the IDLE window is surrounded by asterisks. This means that there are unsaved changes in your editor. You can save these changes with your system’s standard keyboard shortcut, or you can select File → Save from the menu bar. Make sure that you save your file with the .py extension so that syntax highlighting will be enabled.

Executing a File

When you want to execute a file that you’ve created in IDLE, you should first make sure that it’s saved. Remember, you can see if your file is properly saved by looking for asterisks around the filename at the top of the file editor window. Don’t worry if you forget, though! Python IDLE will remind you to save whenever you attempt to execute an unsaved file.

To execute a file in IDLE, simply press the F5 key on your keyboard. You can also select Run → Run Module from the menu bar. Either option will restart the Python interpreter and then run the code that you’ve written with a fresh interpreter. The process is the same as when you run python3 -i [filename] in your terminal.

When your code is done executing, the interpreter will know everything about your code, including any global variables, functions, and classes. This makes Python IDLE a great place to inspect your data if something goes wrong. If you ever need to interrupt the execution of your program, then you can press Ctrl+C in the interpreter that’s running your code.

How to Improve Your Workflow

Now that you’ve seen how to write, edit, and execute files in Python IDLE, it’s time to speed up your workflow! The Python IDLE editor offers a few features that you’ll see in most professional IDEs to help you code faster. These features include automatic indentation, code completion and call tips, and code context.

Automatic Indentation

IDLE will automatically indent your code when it needs to start a new block. This usually happens after you type a colon (:). When you hit the enter key after the colon, your cursor will automatically move over a certain number of spaces and begin a new code block.

You can configure how many spaces the cursor will move in the settings, but the default is the standard four spaces. The developers of Python agreed on a standard style for well-written Python code, and this includes rules on indentation, whitespace, and more. This standard style was formalized and is now known as PEP 8. To learn more about it, check out How to Write Beautiful Python Code With PEP 8.

Code Completion and Call Tips

When you’re writing code for a large project or a complicated problem, you can spend a lot of time just typing out all of the code you need. Code completion helps you save typing time by trying to finish your code for you. Python IDLE has basic code completion functionality. It can only autocomplete the names of functions and classes. To use autocompletion in the editor, just press the tab key after a sequence of text.

Python IDLE will also provide call tips. A call tip is like a hint for a certain part of your code to help you remember what that element needs. After you type the left parenthesis to begin a function call, a call tip will appear if you don’t type anything for a few seconds. For example, if you can’t quite remember how to append to a list, then you can pause after the opening parenthesis to bring up the call tip:

displays a simple call tip for the append method with a python list

The call tip will display as a popup note, reminding you how to append to a list. Call tips like these provide useful information as you’re writing code.

Code Context

The code context functionality is a neat feature of the Python IDLE file editor. It will show you the scope of a function, class, loop, or other construct. This is particularly useful when you’re scrolling through a lengthy file and need to keep track of where you are while reviewing code in the editor.

To turn it on, select Options → Code Context in the menu bar. You’ll see a gray bar appear at the top of the editor window:

shows the code context feature of the idle editor

As you scroll down through your code, the context that contains each line of code will stay inside of this gray bar. This means that the print() functions you see in the image above are a part of a main function. When you reach a line that’s outside the scope of this function, the bar will disappear.

How to Debug in IDLE

A bug is an unexpected problem in your program. They can appear in many forms, and some are more difficult to fix than others. Some bugs are tricky enough that you won’t be able to catch them by just reading through your program. Luckily, Python IDLE provides some basic tools that will help you debug your programs with ease!

Interpreter DEBUG Mode

If you want to run your code with the built-in debugger, then you’ll need to turn this feature on. To do so, select Debug → Debugger from the Python IDLE menu bar. In the interpreter, you should see [DEBUG ON] appear just before the prompt (>>>), which means the interpreter is ready and waiting.

When you execute your Python file, the debugger window will appear:

shows a blank debugger window in python idle

In this window, you can inspect the values of your local and global variables as your code executes. This gives you insight into how your data is being manipulated as your code runs.

You can also click the following buttons to move through your code:

  • Go: Press this to advance execution to the next breakpoint. You’ll learn about these in the next section.
  • Step: Press this to execute the current line and go to the next one.
  • Over: If the current line of code contains a function call, then press this to step over that function. In other words, execute that function and go to the next line, but don’t pause while executing the function (unless there is a breakpoint).
  • Out: If the current line of code is in a function, then press this to step out of this function. In other words, continue the execution of this function until you return from it.

Be careful, because there is no reverse button! You can only step forward in time through your program’s execution.

You’ll also see four checkboxes in the debug window:

  1. Globals: your program’s global information
  2. Locals: your program’s local information during execution
  3. Stack: the functions that run during execution
  4. Source: your file in the IDLE editor

When you select one of these, you’ll see the relevant information in your debug window.

Breakpoints

A breakpoint is a line of code that you’ve identified as a place where the interpreter should pause while running your code. They will only work when DEBUG mode is turned on, so make sure that you’ve done that first.

To set a breakpoint, right-click on the line of code that you wish to pause. This will highlight the line of code in yellow as a visual indication of a set breakpoint. You can set as many breakpoints in your code as you like. To undo a breakpoint, right-click the same line again and select Clear Breakpoint.

Once you’ve set your breakpoints and turned on DEBUG mode, you can run your code as you would normally. The debugger window will pop up, and you can start stepping through your code manually.

Errors and Exceptions

When you see an error reported to you in the interpreter, Python IDLE lets you jump right to the offending file or line from the menu bar. All you have to do is highlight the reported line number or file name with your cursor and select Debug → Go to file/line from the menu bar. This is will open up the offending file and take you to the line that contains the error. This feature works regardless of whether or not DEBUG mode is turned on.

Python IDLE also provides a tool called a stack viewer. You can access it under the Debug option in the menu bar. This tool will show you the traceback of an error as it appears on the stack of the last error or exception that Python IDLE encountered while running your code. When an unexpected or interesting error occurs, you might find it helpful to take a look at the stack. Otherwise, this feature can be difficult to parse and likely won’t be useful to you unless you’re writing very complicated code.

How to Customize Python IDLE

There are many ways that you can give Python IDLE a visual style that suits you. The default look and feel is based on the colors in the Python logo. If you don’t like how anything looks, then you can almost always change it.

To access the customization window, select Options → Configure IDLE from the menu bar. To preview the result of a change you want to make, press Apply. When you’re done customizing Python IDLE, press OK to save all of your changes. If you don’t want to save your changes, then simply press Cancel.

There are 5 areas of Python IDLE that you can customize:

  1. Fonts/Tabs
  2. Highlights
  3. Keys
  4. General
  5. Extensions

Let’s take a look at each of them now.

Fonts/Tabs

The first tab allows you to change things like font color, font size, and font style. You can change the font to almost any style you like, depending on what’s available for your operating system. The font settings window looks like this:

the font settings window of the idle customization pane

You can use the scrolling window to select which font you prefer. (I recommend you select a fixed-width font like Courier New.) Pick a font size that’s large enough for you to see well. You can also click the checkbox next to Bold to toggle whether or not all text appears in bold.

This window will also let you change how many spaces are used for each indentation level. By default, this will be set to the PEP 8 standard of four spaces. You can change this to make the width of your code more or less spread out to your liking.

Highlights

The second customization tab will let you change highlights. Syntax highlighting is an important feature of any IDE that highlights the syntax of the language that you’re working in. This helps you visually distinguish between the different Python constructs and the data used in your code.

Python IDLE allows you to fully customize the appearance of your Python code. It comes pre-installed with three different highlight themes:

  1. IDLE Day
  2. IDLE Night
  3. IDLE New

You can select from these pre-installed themes or create your own custom theme right in this window:

shows the syntax highlighting customization pane

Unfortunately, IDLE does not allow you to install custom themes from a file. You have to create customs theme from this window. To do so, you can simply start changing the colors for different items. Select an item, and then press Choose color for. You’ll be brought to a color picker, where you can select the exact color that you want to use.

You’ll then be prompted to save this theme as a new custom theme, and you can enter a name of your choosing. You can then continue changing the colors of different items if you’d like. Remember to press Apply to see your changes in action!

Keys

The third customization tab lets you map different key presses to actions, also known as keyboard shortcuts. These are a vital component of your productivity whenever you use an IDE. You can either come up with your own keyboard shortcuts, or you can use the ones that come with IDLE. The pre-installed shortcuts are a good place to start:

python idle settings keyboard shortcut customization pane

The keyboard shortcuts are listed in alphabetical order by action. They’re listed in the format Action — Shortcut, where Action is what will happen when you press the key combination in Shortcut. If you want to use a built-in key set, then select a mapping that matches your operating system. Pay close attention to the different keys and make sure your keyboard has them!

Creating Your Own Shortcuts

The customization of the keyboard shortcuts is very similar to the customization of syntax highlighting colors. Unfortunately, IDLE does not allow you to install custom keyboard shortcuts from a file. You must create a custom set of shortcuts from the Keys tab.

Select one pair from the list and press Get New Keys for Selection. A new window will pop up:

idle settings new keys popup window

Here, you can use the checkboxes and scrolling menu to select the combination of keys that you want to use for this shortcut. You can select Advanced Key Binding Entry >> to manually type in a command. Note that this cannot pick up the keys you press. You have to literally type in the command as you see it displayed to you in the list of shortcuts.

General

The fourth tab of the customization window is a place for small, general changes. The general settings tab looks like this:

shows teh general settings available for idle

Here, you can customize things like the window size and whether the shell or the file editor opens first when you start Python IDLE. Most of the things in this window are not that exciting to change, so you probably won’t need to fiddle with them much.

Extensions

The fifth tab of the customization window lets you add extensions to Python IDLE. Extensions allow you to add new, awesome features to the editor and the interpreter window. You can download them from the internet and install them to right into Python IDLE.

To view what extensions are installed, select Options → Configure IDLE -> Extensions. There are many extensions available on the internet for you to read more about. Find the ones you like and add them to Python IDLE!

Conclusion

In this tutorial, you’ve learned all the basics of using IDLE to write Python programs. You know what Python IDLE is and how you can use it to interact with Python directly. You’ve also learned how to work with Python files and customize Python IDLE to your liking.

You’ve learned how to:

  • Work with the Python IDLE shell
  • Use Python IDLE as a file editor
  • Improve your workflow with features to help you code faster
  • Debug your code and view errors and exceptions
  • Customize Python IDLE to your liking

Now you’re armed with a new tool that will let you productively write Pythonic code and save you countless hours down the road. Happy programming!

Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Starting With Python IDLE

замечания

Логотип Python
Python — широко используемый язык программирования. Это:

  • Высокий уровень : Python автоматизирует операции низкого уровня, такие как управление памятью. Это оставляет программиста с меньшим контролем, но имеет много преимуществ, включая читаемость кода и минимальные выражения кода.

  • Универсальный : Python построен для использования во всех контекстах и ​​средах. Примером для языка общего пользования является PHP: он специально разработан как скриптовый язык для веб-разработки на стороне сервера. Напротив, Python может использоваться для веб-разработки на стороне сервера, но также для создания настольных приложений.

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

    if something:
        x = 1
    else:
        x = 'this is a string'
    print(x)
    
  • Сильно напечатан : во время выполнения программы вам не разрешено делать что-либо, что несовместимо с типом данных, с которыми вы работаете. Например, нет скрытых преобразований от строк к числам; строка, сделанная из цифр, никогда не будет считаться номером, если вы не решите ее явно:

    1 + '1'  # raises an error
    1 + int('1')  # results with 2
    
  • Начинающий дружелюбный :) : Синтаксис и структура Python очень интуитивно понятны. Он является высокоуровневым и предоставляет конструкции, предназначенные для написания четких программ как в маленьком, так и в крупном масштабе. Python поддерживает несколько парадигм программирования, включая объектно-ориентированное, императивное и функциональное программирование или процедурные стили. Он имеет большую, всеобъемлющую стандартную библиотеку и множество простых в установке сторонних библиотек.

Его принципы дизайна изложены в Zen of Python .

В настоящее время существуют две основные ветви релиза Python, которые имеют некоторые существенные отличия. Python 2.x — это устаревшая версия, хотя она по-прежнему широко используется. Python 3.x создает набор несовместимых в обратную сторону изменений, которые направлены на сокращение дублирования функций. Чтобы помочь решить, какая версия лучше всего подходит вам, см. Эту статью .

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

Существует одна официальная реализация языка, предоставляемого Python.org, обычно называемого CPython, и нескольких альтернативных реализаций языка на других платформах времени исполнения. К ним относятся IronPython (под управлением Python на платформе .NET), Jython (в среде исполнения Java) и PyPy (реализация Python в самом подмножестве).

Версии

Python 3.x

Версия Дата выхода
[3,7] 2017-05-08
3,6 2016-12-23
3,5 2015-09-13
3,4 2014-03-17
3,3 2012-09-29
3,2 2011-02-20
3,1 2009-06-26
3.0 2008-12-03

Python 2.x

Версия Дата выхода
2,7 2010-07-03
2,6 2008-10-02
2.5 2006-09-19
2,4 2004-11-30
2,3 2003-07-29
2,2 2001-12-21
2,1 2001-04-15
2,0 2000-10-16

Начиная

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

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

  • Python 3.x является текущей версией и находится в активной разработке.
  • Python 2.x является устаревшей версией и будет получать только обновления для системы безопасности до 2020 года. Никаких новых функций не будет. Обратите внимание, что многие проекты по-прежнему используют Python 2, хотя переход на Python 3 становится проще.

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

Чтобы убедиться, что Python установлен правильно, вы можете убедиться, что, выполнив следующую команду в своем любимом терминале (если вы используете ОС Windows, вам нужно добавить путь к python в переменную окружения, прежде чем использовать его в командной строке):

$ python --version

Python 3.x 3.0

Если у вас установлен Python 3 , и это ваша версия по умолчанию (см. Раздел «Устранение неполадок» ), вы должны увидеть что-то вроде этого:

$ python --version
Python 3.6.0

Python 2.x 2.7

Если у вас установлен Python 2 , и это ваша версия по умолчанию (см. Раздел « Поиск и устранение неисправностей» ), вы должны увидеть что-то вроде этого:

$ python --version
Python 2.7.13

Если вы установили Python 3, но $ python --version выводит версию Python 2, у вас также установлен Python 2. Это часто бывает в MacOS и во многих дистрибутивах Linux. $ python3 этого используйте $ python3 чтобы явно использовать интерпретатор Python 3.

Привет, мир в Python, используя IDLE


IDLE — простой редактор для Python, который поставляется вместе с Python.

Как создать программу Hello, World в IDLE

  • Откройте IDLE в вашей системе выбора.
    • В старых версиях Windows его можно найти в разделе « All Programs в меню «Windows».
    • В Windows 8+ найдите IDLE или найдите его в приложениях, присутствующих в вашей системе.
    • В системах на основе Unix (включая Mac) вы можете открыть его из оболочки, набрав $ idle python_file.py .
  • Он откроет оболочку с параметрами вверху.

В оболочке есть подсказка из трех прямоугольных скобок:

>>>

Теперь напишите в подсказке следующий код:

>>> print("Hello, World")

Нажмите Enter .

>>> print("Hello, World")
Hello, World

Файл Hello World Python

Создайте новый файл hello.py который содержит следующую строку:

Python 2.x 2.6

Вы можете использовать функцию print Python 3 в Python 2 со следующим оператором import :

from __future__ import print_function

Python 2 имеет ряд функций, которые могут быть импортированы из Python 3 с __future__ модуля __future__ , как описано здесь .

Python 2.x 2.7

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

print 'Hello, World'

В своем терминале перейдите в каталог, содержащий файл hello.py .

Введите python hello.py , затем нажмите клавишу Enter .

$ python hello.py
Hello, World

Вы должны увидеть Hello, World напечатанную на консоли.

Вы также можете заменить hello.py на путь к вашему файлу. Например, если у вас есть файл в вашем домашнем каталоге, а ваш пользователь «пользователь» в Linux, вы можете ввести python /home/user/hello.py .

Запустить интерактивную оболочку Python

Выполняя (запуская) команду python в вашем терминале, вы получаете интерактивную оболочку Python. Это также известно как Python Interpreter или REPL (для «Read Evaluate Print Loop»).

$ python
Python 2.7.12 (default, Jun 28 2016, 08:46:01) 
[GCC 6.1.1 20160602] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'Hello, World'
Hello, World
>>>

Если вы хотите запустить Python 3 из своего терминала, выполните команду python3 .

$ python3
Python 3.6.0 (default, Jan 13 2017, 00:00:00) 
[GCC 6.1.1 20160602] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello, World')
Hello, World
>>>

Кроме того, запустите интерактивную подсказку и загрузите файл с помощью python -i <file.py> .

В командной строке выполните:

$ python -i hello.py
"Hello World"
>>>

Существует несколько способов закрыть оболочку Python:

>>> exit()

или же

>>> quit()

Кроме того, CTRL + D закроет оболочку и вернет вас в командную строку вашего терминала.

Если вы хотите отменить команду, находящуюся в середине ввода и вернуться к чистой командной строке, оставаясь внутри оболочки Interpreter, используйте CTRL + C.

Попробуйте интерактивную оболочку Python в Интернете .

Другие онлайн-оболочки

Различные веб-сайты предоставляют онлайн-доступ к оболочкам Python.

Онлайн-оболочки могут быть полезны для следующих целей:

  • Запустите небольшой фрагмент кода с компьютера, на котором отсутствует установка python (смартфоны, планшеты и т. Д.).
  • Изучайте базовый Python.
  • Решите проблемы онлайн-судьи.

Примеры:

Отказ от ответственности: автор (ы) документации не связаны ни с какими ресурсами, перечисленными ниже.

  • https://www.python.org/shell/ — онлайн-оболочка Python, размещенная на официальном веб-сайте Python.
  • https://ideone.com/ — Широко используется в сети для иллюстрации поведения фрагмента кода.
  • https://repl.it/languages/python3 — Мощный и простой онлайн-компилятор, IDE и интерпретатор. Код, компилировать и запускать код в Python.
  • https://www.tutorialspoint.com/execute_python_online.php — полнофункциональная оболочка UNIX и удобный проводник проекта.
  • http://rextester.com/l/python3_online_compiler — Простая и простая в использовании среда разработки, которая показывает время выполнения

Выполнять команды как строку

Python может быть передан произвольным кодом в виде строки в оболочке:

$ python -c 'print("Hello, World")'
Hello, World

Это может быть полезно при объединении результатов скриптов вместе в оболочке.

Оболочки и последующие

Управление пакетами. Рекомендованным PyPA инструментом для установки пакетов Python является PIP . Для установки в командной строке выполните команду pip install <the package name> . Например, pip install numpy . (Примечание. В окнах вы должны добавить pip в переменные среды PATH. Чтобы этого избежать, используйте python -m pip install <the package name> ).

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

Программы. Для долговременного хранения вы можете сохранять контент в .py-файлах и редактировать / выполнять их как скрипты или программы с помощью внешних инструментов, таких как оболочка, IDE (например, PyCharm ), ноутбуки Jupyter и т. Д. Промежуточные пользователи могут использовать эти инструменты; однако способы, описанные здесь, достаточны для начала.

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

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

Создание переменных и назначение значений

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

<variable name> = <value>

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

# Integer
a = 2
print(a)
# Output: 2

# Integer    
b = 9223372036854775807
print(b)
# Output: 9223372036854775807

# Floating point
pi = 3.14
print(pi)
# Output: 3.14

# String
c = 'A'
print(c)
# Output: A

# String    
name = 'John Doe'
print(name)
# Output: John Doe

# Boolean    
q = True
print(q)
# Output: True

# Empty value or null data type
x = None
print(x)
# Output: None

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

0 = x
=> Output: SyntaxError: can't assign to literal

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

import keyword
print(keyword.kwlist)

Правила для именования переменных:

  1. Имена переменных должны начинаться с буквы или подчеркивания.
 x  = True   # valid
 _y = True   # valid

 9x = False  # starts with numeral 
 => SyntaxError: invalid syntax   

 $y = False #  starts with symbol 
 => SyntaxError: invalid syntax
  1. Остальная часть вашего имени переменной может состоять из букв, цифр и символов подчеркивания.
has_0_in_it = "Still Valid" 
  1. Имена чувствительны к регистру.
x = 9  
y = X*5   
=>NameError: name 'X' is not defined

Несмотря на то, что нет необходимости указывать тип данных при объявлении переменной в Python, при распределении необходимой области в памяти для переменной интерпретатор Python автоматически выбирает для нее наиболее подходящий встроенный тип :

a = 2
print(type(a))
# Output: <type 'int'>

b = 9223372036854775807
print(type(b))
# Output: <type 'int'>

pi = 3.14
print(type(pi))
# Output: <type 'float'>

c = 'A'
print(type(c))
# Output: <type 'str'>

name = 'John Doe'
print(type(name))
# Output: <type 'str'>

q = True
print(type(q))
# Output: <type 'bool'>

x = None
print(type(x))
# Output: <type 'NoneType'>

Теперь вы знаете основы задания, давайте сделаем эту тонкость о назначении в python в сторону.

Когда вы используете = для выполнения операции присваивания, то, что слева от = — это имя для объекта справа. Наконец, what = is присваивает ссылку объекта справа на имя слева.

То есть:

a_name = an_object  # "a_name" is now a name for the reference to the object "an_object"

Так, из многих примеров присваивания выше, если мы выбираем pi = 3.14 , то pi этого имя (не имя, так как объект может иметь несколько имен) для объекта 3.14 . Если вы не понимаете что-то ниже, вернитесь к этому вопросу и прочитайте это снова! Кроме того, вы можете взглянуть на это для лучшего понимания.


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

a, b, c = 1, 2, 3
print(a, b, c)
# Output: 1 2 3

a, b, c = 1, 2
=> Traceback (most recent call last):
=>   File "name.py", line N, in <module>
=>     a, b, c = 1, 2
=> ValueError: need more than 2 values to unpack

a, b = 1, 2, 3
=> Traceback (most recent call last):
=>   File "name.py", line N, in <module>
=>     a, b = 1, 2, 3
=> ValueError: too many values to unpack

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

a, b, _ = 1, 2, 3
print(a, b)
# Output: 1, 2

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

a, b, _ = 1,2,3,4
=>Traceback (most recent call last):
=>File "name.py", line N, in <module>
=>a, b, _ = 1,2,3,4
=>ValueError: too many values to unpack (expected 3)

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

a = b = c = 1
print(a, b, c)
# Output: 1 1 1

При использовании такого каскадного назначения важно отметить, что все три переменные a , b и c относятся к одному и тому же объекту в памяти, к объекту int со значением 1. Другими словами, a , b и c представляют собой три разных имени заданный одному и тому же объекту int. Назначение другого объекта одному из них впоследствии не изменяет других, как и ожидалось:

a = b = c = 1    # all three names a, b and c refer to same int object with value 1
print(a, b, c)
# Output: 1 1 1
b = 2            # b now refers to another int object, one with a value of 2
print(a, b, c)
# Output: 1 2 1  # so output is as expected.

Вышеизложенное также верно для изменяемых типов (например, list , dict и т. Д.), Так же как и для неизменяемых типов (например, int , string , tuple и т. Д.):

x = y = [7, 8, 9]   # x and y refer to the same list object just created, [7, 8, 9]
x = [13, 8, 9]      # x now refers to a different list object just created, [13, 8, 9]
print(y)            # y still refers to the list it was first assigned
# Output: [7, 8, 9]

Все идет нормально. Что-то немного изменилось, когда дело доходило до модификации объекта (в отличие от назначения имени другому объекту, который мы сделали выше), когда каскадное присвоение используется для изменяемых типов. Взгляните ниже, и вы увидите это из первых рук:

x = y = [7, 8, 9]     # x and y are two different names for the same list object just created, [7, 8, 9]
x[0] = 13             # we are updating the value of the list [7, 8, 9] through one of its names, x in this case
print(y)              # printing the value of the list using its other name
# Output: [13, 8, 9]  # hence, naturally the change is reflected

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

x = [1, 2, [3, 4, 5], 6, 7] # this is nested list
print x[2]
# Output: [3, 4, 5]
print x[2][1]
# Output: 4

Наконец, переменные в Python не должны оставаться теми же типами, с которыми они были сначала определены — вы можете просто использовать = для назначения нового значения переменной, даже если это значение имеет другой тип.

a = 2 
print(a)
# Output: 2

a = "New value"
print(a)
# Output: New value

Если это вас беспокоит, подумайте о том, что то, что находится слева от = — это просто имя для объекта. Во- первых вы вызываете int объект со значением 2 , то вы передумали и решили дать имя a a , к string объекту, имеющему значение «Нового значения». Простой, не так ли?

Вход пользователя

Интерактивный вход

Чтобы получить вход от пользователя, используйте функцию input ( обратите внимание : в Python 2.x вместо этого функция называется raw_input , хотя Python 2.x имеет свою собственную версию input которая совершенно иная):

Python 2.x 2.3

name = raw_input("What is your name? ")
# Out: What is your name? _

Замечание по безопасности Не используйте input() в Python2 — введенный текст будет оцениваться так, как если бы это было выражение Python (эквивалентное eval(input()) в Python3), которое может легко стать уязвимостью. См. Эту статью для получения дополнительной информации о рисках использования этой функции.

Python 3.x 3.0

name = input("What is your name? ")
# Out: What is your name? _

Остальная часть этого примера будет использовать синтаксис Python 3.

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

name = input("What is your name? ")
# Out: What is your name?

Если пользователь вводит «Боб» и попадает, name переменной будет присвоено строке "Bob" :

name = input("What is your name? ")
# Out: What is your name? Bob
print(name)
# Out: Bob

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

x = input("Write a number:")
# Out: Write a number: 10
x / 2
# Out: TypeError: unsupported operand type(s) for /: 'str' and 'int'
float(x) / 2
# Out: 5.0

Примечание. Рекомендуется использовать блоки try / except чтобы перехватывать исключения при работе с пользовательскими вводами . Например, если ваш код хочет raw_input в int , и то, что пользователь пишет, является непередаваемым, оно вызывает ValueError .

IDLE — графический интерфейс Python

IDLE — это интегрированная среда разработки и обучения Python и является альтернативой командной строке. Как следует из названия, IDLE очень полезно для разработки нового кода или обучения python. В Windows это поставляется с интерпретатором Python, но в других операционных системах вам может потребоваться установить его через диспетчер пакетов.

Основными целями IDLE являются:

  • Многострочный текстовый редактор с подсветкой синтаксиса, автозаполнением и интеллектуальным отступом
  • Оболочка Python с подсветкой синтаксиса
  • Интегрированный отладчик с степпингом, постоянными точками останова и видимостью стека вызовов
  • Автоматический отступ (полезно для начинающих, изучающих отступ Python)
  • Сохраняя программу Python как .py-файлы, запустите их и отредактируйте позже в любом из них с помощью IDLE.

В IDLE нажмите F5 или run Python Shell чтобы запустить интерпретатор. Использование IDLE может быть лучшим опытом обучения для новых пользователей, потому что код интерпретируется как пользователь пишет.

Обратите внимание, что существует множество альтернатив, см., Например, эту дискуссию или этот список .

Поиск проблемы

  • Windows

    Если вы работаете в Windows, команда по умолчанию — python . Если вы получаете ошибку "'python' is not recognized" , наиболее вероятной причиной является то, что местоположение Python не входит в PATH среды PATH вашей системы. Доступ к нему можно получить, щелкнув правой кнопкой мыши на «Мой компьютер» и выбрав «Свойства» или перейдя в «Система» через «Панель управления». Нажмите «Дополнительные системные настройки», а затем «Переменные среды …». Измените переменную PATH чтобы включить каталог вашей установки Python, а также папку сценария (обычно C:Python27;C:Python27Scripts ). Для этого требуются административные привилегии и может потребоваться перезагрузка.

    При использовании нескольких версий Python на одном и том же компьютере возможным решением является переименование одного из файлов python.exe . Например, именование одной версии python27.exe приведет к тому, что python27 станет командой Python для этой версии.

    Вы также можете использовать Python Launcher для Windows, который доступен через установщик и поставляется по умолчанию. Он позволяет вам выбрать версию Python для запуска с помощью py -[xy] вместо python[xy] . Вы можете использовать последнюю версию Python 2, запустив скрипты с py -2 и последней версией Python 3, запустив скрипты с py -3 .

  • Debian / Ubuntu / MacOS

    В этом разделе предполагается, что местоположение исполняемого файла python добавлено в PATH среды PATH .

    Если вы находитесь в Debian / Ubuntu / MacOS, откройте терминал и введите python для Python 2.x или python3 для Python 3.x.

    Введите, which python будет видеть, какой интерпретатор Python будет использоваться.

  • Arch Linux

    По умолчанию Python на Arch Linux (и потомки) — это Python 3, поэтому используйте python или python3 для Python 3.x и python2 для Python 2.x.

  • Другие системы

    Python 3 иногда связан с python вместо python3 . Чтобы использовать Python 2 в этих системах, где он установлен, вы можете использовать python2 .

Типы данных

Встроенные типы

Булевы

bool : Логическое значение True или False . Логические операции, такие как and , or , not могут выполняться по булевым.

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True

В Python 2.x и в Python 3.x логическое значение также является int . Тип bool является подклассом типа int а True и False являются его единственными экземплярами:

issubclass(bool, int) # True

isinstance(True, bool) # True
isinstance(False, bool) # True

Если в арифметических операциях используются логические значения, их целочисленные значения ( 1 и 0 для True и False ) будут использованы для возврата целочисленного результата:

True + False == 1 # 1 + 0 == 1
True * True  == 1 # 1 * 1 == 1

чисел

  • int : целое число

    a = 2
    b = 100
    c = 123456789
    d = 38563846326424324
    

    Целые числа в Python имеют произвольные размеры.

    Примечание: в более старых версиях Python был доступен long тип, и это отличалось от int . Они были объединены.

  • float : число с плавающей точкой; точность зависит от реализации и архитектуры системы, для CPython тип данных float соответствует C double.

    a = 2.0
    b = 100.e0
    c = 123456789.e1
    
  • complex : комплексные номера

    a = 2 + 1j
    b = 100 + 10j
    

Операторы < , <= , > и >= будут вызывать исключение TypeError если любой операнд является сложным числом.

Струны

Python 3.x 3.0

  • str : строка в Юникоде . Тип 'hello'
  • bytes : байтовая строка . Тип b'hello'

Python 2.x 2.7

  • str : строка байтов . Тип 'hello'
  • bytes : синоним для str
  • unicode : строка в Юникоде . Тип u'hello'

Последовательности и коллекции

Python различает упорядоченные последовательности и неупорядоченные коллекции (такие как set и dict ).

  • строки ( str , bytes , unicode ) являются последовательностями

  • reversed : обратный порядок str с reversed функцией

    a = reversed('hello')
    
  • tuple : упорядоченный набор n значений любого типа ( n >= 0 ).

    a = (1, 2, 3)
    b = ('a', 1, 'python', (1, 2))
    b[2] = 'something else' # returns a TypeError
    

    Поддерживает индексирование; неизменный; hashable, если все его члены являются хешируемыми

  • list : упорядоченный набор n значений ( n >= 0 )

    a = [1, 2, 3]
    b = ['a', 1, 'python', (1, 2), [1, 2]]
    b[2] = 'something else' # allowed
    

    Не хешируется; изменчивый.

  • set : неупорядоченный набор уникальных значений. Элементы должны быть хешируемыми .

    a = {1, 2, 'a'}
    
  • dict : неупорядоченный набор уникальных пар ключ-значение; ключи должны быть хешируемыми .

    a = {1: 'one',
         2: 'two'}
    
    b = {'a': [1, 2, 3],
         'b': 'a string'}
    

Объект hashable, если он имеет значение хэша, которое никогда не изменяется в течение его жизненного __hash__() (ему нужен __hash__() ), и его можно сравнить с другими объектами (ему нужен __eq__() ). Объекты Hashable, которые сравнивают равенство, должны иметь одно и то же значение хэш-функции.

Встроенные константы

В сочетании со встроенными типами данных в встроенном пространстве имен имеется небольшое количество встроенных констант:

  • True : истинное значение встроенного типа bool
  • False : ложное значение встроенного типа bool
  • None : Объект singleton используется для обозначения того, что значение отсутствует.
  • Ellipsis или ... : используется в основном Python3 + в любом месте и ограниченное использование в Python2.7 + как часть нотации массива. numpy и связанные с ним пакеты используют это как ссылку «включить все» в массивы.
  • NotImplemented : singleton используется для указания Python, что специальный метод не поддерживает конкретные аргументы, а Python будет пытаться использовать альтернативы, если они доступны.
a = None # No value will be assigned. Any valid datatype can be assigned later

Python 3.x 3.0

None кого нет естественного заказа. Использование операторов сравнения заказов ( < , <= , >= , > ) больше не поддерживается и будет вызывать TypeError .

Python 2.x 2.7

None всегда меньше любого числа ( None < -32 оценивает значение True ).

Тестирование типа переменных

В python мы можем проверить тип данных объекта с помощью встроенного type функции.

a = '123'
print(type(a))
# Out: <class 'str'>
b = 123
print(type(b))
# Out: <class 'int'>

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

i = 7
if isinstance(i, int):
    i += 1
elif isinstance(i, str):
    i = int(i)
    i += 1

Для получения информации о различиях между type() и isinstance() read: Различия между isinstance и типом в Python

Чтобы проверить, имеет ли что-то значение NoneType :

x = None
if x is None:
    print('Not a surprise, I just defined x as None.')

Преобразование между типами данных

Вы можете выполнить явное преобразование типов данных.

Например, «123» имеет тип str и может быть преобразован в целое число с использованием функции int .

a = '123'
b = int(a)

Преобразование из строки с плавающей точкой, например, «123.456», может быть выполнено с помощью функции float .

a = '123.456'
b = float(a)
c = int(a)    # ValueError: invalid literal for int() with base 10: '123.456'
d = int(b)    # 123

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

a = 'hello'
list(a)  # ['h', 'e', 'l', 'l', 'o']
set(a)   # {'o', 'e', 'l', 'h'}
tuple(a) # ('h', 'e', 'l', 'l', 'o')

Явный тип строки при определении литералов

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

  • b'foo bar' : результаты bytes в Python 3, str в Python 2
  • u'foo bar' : результаты str в Python 3, unicode в Python 2
  • 'foo bar' : results str
  • r'foo bar' : результат так называемой сырой строки, где экранирование специальных символов не требуется, все принимается дословно, когда вы ввели
normal  = 'foonbar'   # foo
                       # bar
escaped = 'foo\nbar'  # foonbar   
raw     = r'foonbar'  # foonbar

Переменные и неизменяемые типы данных

Объект называется изменчивым, если его можно изменить. Например, когда вы передаете список какой-либо функции, список можно изменить:

def f(m):
    m.append(3)  # adds a number to the list. This is a mutation.

x = [1, 2]
f(x)
x == [1, 2]  # False now, since an item was added to the list

Объект называется неизменяемым, если его нельзя каким-либо образом изменить. Например, целые числа неизменяемы, поскольку их невозможно изменить:

def bar():
    x = (1, 2)
    g(x)
    x == (1, 2)  # Will always be True, since no function can change the object (1, 2)

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

Типы данных, экземпляры которых изменяемы, называются изменяемыми типами данных , а также для неизменяемых объектов и типов данных.

Примеры неизменяемых типов данных:

  • int , long , float , complex
  • str
  • bytes
  • tuple
  • frozenset

Примеры изменяемых типов данных:

  • bytearray
  • list
  • set
  • dict

Встроенные модули и функции

Модуль — это файл, содержащий определения и утверждения Python. Функция — это фрагмент кода, который выполняет некоторую логику.

>>> pow(2,3)    #8

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

>>> dir(__builtins__)
[
    'ArithmeticError', 
    'AssertionError', 
    'AttributeError', 
    'BaseException', 
    'BufferError', 
    'BytesWarning', 
    'DeprecationWarning', 
    'EOFError', 
    'Ellipsis', 
    'EnvironmentError', 
    'Exception', 
    'False', 
    'FloatingPointError', 
    'FutureWarning', 
    'GeneratorExit', 
    'IOError', 
    'ImportError', 
    'ImportWarning', 
    'IndentationError', 
    'IndexError', 
    'KeyError', 
    'KeyboardInterrupt', 
    'LookupError', 
    'MemoryError', 
    'NameError', 
    'None', 
    'NotImplemented', 
    'NotImplementedError', 
    'OSError', 
    'OverflowError', 
    'PendingDeprecationWarning', 
    'ReferenceError', 
    'RuntimeError', 
    'RuntimeWarning', 
    'StandardError', 
    'StopIteration', 
    'SyntaxError', 
    'SyntaxWarning', 
    'SystemError', 
    'SystemExit', 
    'TabError', 
    'True', 
    'TypeError', 
    'UnboundLocalError', 
    'UnicodeDecodeError', 
    'UnicodeEncodeError', 
    'UnicodeError', 
    'UnicodeTranslateError', 
    'UnicodeWarning', 
    'UserWarning', 
    'ValueError', 
    'Warning', 
    'ZeroDivisionError', 
    '__debug__', 
    '__doc__', 
    '__import__', 
    '__name__', 
    '__package__', 
    'abs', 
    'all', 
    'any', 
    'apply', 
    'basestring', 
    'bin', 
    'bool', 
    'buffer', 
    'bytearray', 
    'bytes', 
    'callable', 
    'chr', 
    'classmethod', 
    'cmp', 
    'coerce', 
    'compile', 
    'complex', 
    'copyright', 
    'credits', 
    'delattr', 
    'dict', 
    'dir', 
    'divmod', 
    'enumerate', 
    'eval', 
    'execfile', 
    'exit', 
    'file', 
    'filter', 
    'float', 
    'format', 
    'frozenset', 
    'getattr', 
    'globals', 
    'hasattr', 
    'hash', 
    'help', 
    'hex', 
    'id', 
    'input', 
    'int', 
    'intern', 
    'isinstance', 
    'issubclass', 
    'iter', 
    'len', 
    'license', 
    'list', 
    'locals', 
    'long', 
    'map', 
    'max', 
    'memoryview', 
    'min', 
    'next', 
    'object', 
    'oct', 
    'open', 
    'ord', 
    'pow', 
    'print', 
    'property', 
    'quit', 
    'range', 
    'raw_input', 
    'reduce', 
    'reload', 
    'repr', 
    'reversed', 
    'round', 
    'set', 
    'setattr', 
    'slice', 
    'sorted', 
    'staticmethod', 
    'str', 
    'sum', 
    'super', 
    'tuple', 
    'type', 
    'unichr', 
    'unicode', 
    'vars', 
    'xrange', 
    'zip'
]

Чтобы узнать функциональность любой функции, мы можем использовать встроенную функцию help .

>>> help(max)
Help on built-in function max in module __builtin__:
max(...)
    max(iterable[, key=func]) -> value
    max(a, b, c, ...[, key=func]) -> value
    With a single iterable argument, return its largest item.
    With two or more arguments, return the largest argument.

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

>>> import math
>>> math.sqrt(16) # 4.0

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

>>> import math
>>> dir(math)

   ['__doc__', '__name__', '__package__', 'acos', 'acosh', 
   'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 
   'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 
   'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 
   'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 
   'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 
   'tan', 'tanh', 'trunc']

кажется __doc__ полезно предоставить некоторую документацию, например, в функциях

>>> math.__doc__
'This module is always available.  It provides access to thenmathematical
 functions defined by the C standard.'

В дополнение к функциям документация также может предоставляться в модулях. Итак, если у вас есть файл helloWorld.py вот так:

"""This is the module docstring."""

def sayHello():
    """This is the function docstring."""
    return 'Hello World'

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

>>> import helloWorld
>>> helloWorld.__doc__
'This is the module docstring.'
>>> helloWorld.sayHello.__doc__
'This is the function docstring.'
  • Для любого пользовательского типа, его атрибутов, атрибутов его класса и рекурсивно атрибуты базовых классов его класса можно получить с помощью dir ()
>>> class MyClassObject(object):
...     pass
... 
>>> dir(MyClassObject)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

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

>>> str(123)    # "123"

Отступ блока

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

Python использует символ двоеточия ( : ) и отступы для показа , где блоки кода начинаются и заканчивается (Если вы пришли из другого языка, не путайте это с каким — то образом быть связаны с троичным оператором ). То есть блоки в Python, такие как функции, петля, if пункты и другие конструкции, не имеют идентификаторов концовки. Все блоки начинаются с двоеточия, а затем содержат отступы под ним.

Например:

def my_function():    # This is a function definition. Note the colon (:)
    a = 2             # This line belongs to the function because it's indented
    return a          # This line also belongs to the same function
print(my_function())  # This line is OUTSIDE the function block

или же

if a > b:             # If block starts here
    print(a)          # This is part of the if block
else:                 # else must be at the same level as if
    print(b)          # This line is part of the else block

Блоки, которые содержат ровно один однострочный оператор, могут быть помещены в одну строку, хотя эта форма обычно не считается хорошим стилем:

if a > b: print(a)
else: print(b)  

Попытка сделать это более чем с одним заявлением не будет работать:

if x > y: y = x
    print(y) # IndentationError: unexpected indent

if x > y: while y != z: y -= 1  # SyntaxError: invalid syntax

Пустой блок вызывает IndentationError . Используйте pass (команда, которая ничего не делает), когда у вас есть блок без содержимого:

def will_be_implemented_later():
    pass

Пробелы против вкладок

Короче: всегда используйте 4 пробела для отступов.

Использование вкладок исключительно возможно, но PEP 8 , руководство по стилю для кода Python, указывает, что пробелы предпочтительнее.

Python 3.x 3.0

Python 3 запрещает смешивать использование вкладок и пробелов для отступов. В этом случае генерируется ошибка времени компиляции: Inconsistent use of tabs and spaces in indentation а программа не запускается.

Python 2.x 2.7

Python 2 позволяет смешивать вкладки и пробелы в отступе; это сильно обескураживает. Символ табуляции завершает предыдущий отступ, чтобы быть кратным 8 пробелам . Поскольку обычно редакторы настроены на отображение вкладок в количестве, равном 4 местам, это может вызвать тонкие ошибки.

Цитируя PEP 8 :

При вызове интерпретатора командной строки Python 2 с параметром -t он выдает предупреждения о коде, который незаконно смешивает вкладки и пробелы. При использовании -tt эти предупреждения становятся ошибками. Эти варианты настоятельно рекомендуется!

У многих редакторов есть конфигурация «tabs to spaces». При настройке редактора следует различать символ табуляции (‘ t’) и клавишу Tab .

  • Вкладка символ должен быть настроен , чтобы показать 8 пробелов, чтобы соответствовать семантике языка — по крайней мере , в тех случаях , когда (случайно) смешанные отступы возможно. Редакторы также могут автоматически преобразовывать символ табуляции в пробелы.
  • Однако было бы полезно настроить редактор так, чтобы нажатие клавиши Tab вставляло 4 пробела вместо того, чтобы вставлять символ табуляции.

Исходный код Python, написанный сочетанием вкладок и пробелов, или с нестандартным числом пространств отступа можно сделать pep8-совместимым с помощью autopep8 . (Менее мощная альтернатива поставляется с большинством установок Python: reindent.py )

Типы коллекций

В Python существует несколько типов коллекций. Хотя типы, такие как int и str содержат одно значение, типы коллекции содержат несколько значений.

Списки

Тип list вероятно, является наиболее часто используемым типом коллекции в Python. Несмотря на свое имя, список больше похож на массив на других языках, в основном на JavaScript. В Python список представляет собой просто упорядоченный набор действительных значений Python. Список может быть создан путем включения значений, разделенных запятыми, в квадратных скобках:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']

Список может быть пустым:

empty_list = []

Элементы списка не ограничены одним типом данных, что имеет смысл, учитывая, что Python является динамическим языком:

mixed_list = [1, 'abc', True, 2.34, None]

Список может содержать другой список:

nested_list = [['a', 'b', 'c'], [1, 2, 3]]

Элементы списка могут быть доступны через индекс или числовое представление их позиции. Списки в Python имеют нулевое индексирование, означающее, что первый элемент в списке имеет индекс 0, второй элемент — в индексе 1 и так далее:

names = ['Alice', 'Bob', 'Craig', 'Diana', 'Eric']
print(names[0]) # Alice
print(names[2]) # Craig

Индексы также могут быть отрицательными, что означает подсчет с конца списка ( -1 — индекс последнего элемента). Итак, используя список из приведенного выше примера:

print(names[-1]) # Eric
print(names[-4]) # Bob

Списки изменяются, поэтому вы можете изменить значения в списке:

names[0] = 'Ann'
print(names)
# Outputs ['Ann', 'Bob', 'Craig', 'Diana', 'Eric']

Кроме того, можно добавлять и / или удалять элементы из списка:

Добавить объект в конец списка с помощью L.append(object) , возвращает None .

names = ['Alice', 'Bob', 'Craig', 'Diana', 'Eric']
names.append("Sia")
print(names) 
# Outputs ['Alice', 'Bob', 'Craig', 'Diana', 'Eric', 'Sia']

Добавьте новый элемент для отображения по определенному индексу. L.insert(index, object)

names.insert(1, "Nikki")
print(names)
# Outputs ['Alice', 'Nikki', 'Bob', 'Craig', 'Diana', 'Eric', 'Sia']

Удалите первое вхождение значения с L.remove(value) , возвращает None

names.remove("Bob")
print(names) # Outputs ['Alice', 'Nikki', 'Craig', 'Diana', 'Eric', 'Sia']

Получить индекс в списке первого элемента, значение которого равно x. Он покажет ошибку, если такого элемента нет.

name.index("Alice")
0

Подсчитать длину списка

len(names)
6

подсчет количества элементов в списке

a = [1, 1, 1, 2, 3, 4]
a.count(1)
3

Изменить список

a.reverse()
[4, 3, 2, 1, 1, 1]
# or
a[::-1]
[4, 3, 2, 1, 1, 1]

Удалите и верните элемент по индексу (по умолчанию последний элемент) с L.pop([index]) , возвращает элемент

names.pop() # Outputs 'Sia'

Вы можете перебирать элементы списка, как показано ниже:

for element in my_list:
    print (element)

Кортеж

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

ip_address = ('10.20.30.40', 8080)

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

Кортеж с одним членом должен быть определен (обратите внимание на запятую) следующим образом:

one_member_tuple = ('Only member',)

или же

one_member_tuple = 'Only member',   # No brackets

или просто используя синтаксис tuple

one_member_tuple = tuple(['Only member'])

Словари

dictionary в Python представляет собой набор пар ключ-значение. Словарь окружен фигурными фигурными скобками. Каждая пара разделяется запятой, а ключ и значение разделяются двоеточием. Вот пример:

state_capitals = {
    'Arkansas': 'Little Rock',
    'Colorado': 'Denver',
    'California': 'Sacramento', 
    'Georgia': 'Atlanta'
}

Чтобы получить значение, обратитесь к нему по его ключу:

ca_capital = state_capitals['California']

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

for k in state_capitals.keys():
    print('{} is the capital of {}'.format(state_capitals[k], k))

Словари сильно напоминают синтаксис JSON. json модуль json в стандартной библиотеке Python может использоваться для преобразования между JSON и словарями.

задавать

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

Определение set очень похоже на определение dictionary :

first_names = {'Adam', 'Beth', 'Charlie'}

Или вы можете построить set используя существующий list :

my_list = [1,2,3]
my_set = set(my_list)

Проверьте членство в set с использованием in :

if name in first_names:
    print(name)

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

defaultdict

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

Значение defaultdict никогда не вызовет KeyError. Любой ключ, который не существует, возвращает значение по умолчанию.

Например, рассмотрим следующий словарь

>>> state_capitals = {
    'Arkansas': 'Little Rock',
    'Colorado': 'Denver',
    'California': 'Sacramento', 
    'Georgia': 'Atlanta'
}

Если мы попытаемся получить доступ к несуществующему ключу, python возвращает нам ошибку следующим образом

>>> state_capitals['Alabama']
Traceback (most recent call last):

  File "<ipython-input-61-236329695e6f>", line 1, in <module>
    state_capitals['Alabama']

KeyError: 'Alabama'

Давайте попробуем с defaultdict . Его можно найти в модуле коллекций.

>>> from collections import defaultdict
>>> state_capitals = defaultdict(lambda: 'Boston')

То, что мы здесь сделали, — установить значение по умолчанию ( Boston ), если ключ-ключ не существует. Теперь заселите диктофон, как раньше:

>>> state_capitals['Arkansas'] = 'Little Rock'
>>> state_capitals['California'] = 'Sacramento'
>>> state_capitals['Colorado'] = 'Denver'
>>> state_capitals['Georgia'] = 'Atlanta'

Если мы попытаемся получить доступ к dict с несуществующим ключом, python вернет нам значение по умолчанию, то есть Boston

>>> state_capitals['Alabama']
'Boston'

и возвращает созданные значения для существующего ключа, как обычный dictionary

>>> state_capitals['Arkansas']
'Little Rock'

Полезная утилита

Python имеет несколько функций, встроенных в интерпретатор. Если вы хотите получить информацию о ключевых словах, встроенные функции, модули или темы, откройте консоль Python и введите:

>>> help()

Вы получите информацию, непосредственно введя ключевые слова:

>>> help(help)

или внутри утилиты:

help> help

который покажет объяснение:

Help on _Helper in module _sitebuiltins object:

class _Helper(builtins.object)
 |  Define the builtin 'help'.
 |  
 |  This is a wrapper around pydoc.help that provides a helpful message
 |  when 'help' is typed at the Python interactive prompt.
 |  
 |  Calling help() at the Python prompt starts an interactive help session.
 |  Calling help(thing) prints help for the python object 'thing'.
 |  
 |  Methods defined here:
 |  
 |  __call__(self, *args, **kwds)
 |  
 |  __repr__(self)
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)

Вы также можете запросить подклассы модулей:

help(pymysql.connections)

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

>>> help(math)

и вы получите сообщение об ошибке

>>> import math
>>> help(math)

Теперь вы получите список доступных методов в модуле, но только ПОСЛЕ того, как вы его импортировали.

Закрой помощник с quit

Создание модуля

Модуль — это импортируемый файл, содержащий определения и утверждения.

Модуль можно создать, создав файл .py .

# hello.py
def say_hello():
    print("Hello!")

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

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

$ python
>>> import hello
>>> hello.say_hello()
=> "Hello!"

Модули могут быть импортированы другими модулями.

# greet.py
import hello
hello.say_hello()

Конкретные функции модуля можно импортировать.

# greet.py
from hello import say_hello
say_hello()

Модули могут быть сглажены.

# greet.py
import hello as ai
ai.say_hello()

Модуль может быть автономным исполняемым скриптом.

# run_hello.py
if __name__ == '__main__':
    from hello import say_hello
    say_hello()

Запустить его!

$ python run_hello.py
=> "Hello!"

Если модуль находится внутри каталога и должен быть обнаружен с помощью python, каталог должен содержать файл с именем __init__.py .

Строковая функция — str () и repr ()

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

repr(x) вызывает x.__repr__() : представление x . eval обычно преобразует результат этой функции обратно в исходный объект.

str(x) вызывает x.__str__() : человекочитаемая строка, описывающая объект. Это может привести к некоторым техническим деталям.


магнезии ()

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

ул ()

Для строк это возвращает строку. Разница между этим и представлением repr(object) заключается в том, что str(object) не всегда пытается вернуть строку, приемлемую для eval() . Скорее, его цель — вернуть печатную или «удобочитаемую» строку. Если аргумент не задан, это возвращает пустую строку, '' .


Пример 1:

s = """w'o"w"""
repr(s) # Output: ''w\'o"w''  
str(s)  # Output: 'w'o"w'
eval(str(s)) == s  # Gives a SyntaxError 
eval(repr(s)) == s # Output: True

Пример 2:

import datetime
today = datetime.datetime.now()
str(today)  # Output: '2016-09-15 06:58:46.915000'
repr(today) # Output: 'datetime.datetime(2016, 9, 15, 6, 58, 46, 915000)'

При написании класса вы можете переопределить эти методы, чтобы делать все, что хотите:

class Represent(object):

    def __init__(self, x, y):
        self.x, self.y = x, y

    def __repr__(self):
        return "Represent(x={},y="{}")".format(self.x, self.y)

    def __str__(self):
        return "Representing x as {} and y as {}".format(self.x, self.y)

Используя вышеприведенный класс, мы можем увидеть результаты:

r = Represent(1, "Hopper")
print(r)  # prints __str__
print(r.__repr__)  # prints __repr__: '<bound method Represent.__repr__ of Represent(x=1,y="Hopper")>'
rep = r.__repr__()  # sets the execution of __repr__ to a new variable
print(rep)  # prints 'Represent(x=1,y="Hopper")'
r2 = eval(rep) # evaluates rep
print(r2)  # prints __str__ from new object
print(r2 == r)  # prints 'False' because they are different objects

Установка внешних модулей с помощью pip

pip — ваш друг, когда вам нужно установить любой пакет из множества вариантов, доступных в индексе пакета python (PyPI). pip уже установлен, если вы используете Python 2> = 2.7.9 или Python 3> = 3.4, загруженный с python.org. Для компьютеров под управлением Linux или другого * nix с собственным менеджером пакетов, pip часто должен быть установлен вручную.

В случаях, когда установлены оба Python 2 и Python 3, pip часто ссылается на Python 2 и pip3 на Python 3. Использование pip будет устанавливать пакеты только для Python 2, а pip3 будет устанавливать пакеты только для Python 3.

Поиск / установка пакета

Поиск пакета так же просто, как ввод текста

$ pip search <query>
# Searches for packages whose name or summary contains <query>

Установка пакета так же проста, как набирать (в терминале / командной строке, а не в интерпретаторе Python)

$ pip install [package_name]           # latest version of the package

$ pip install [package_name]==x.x.x    # specific version of the package

$ pip install '[package_name]>=x.x.x'  # minimum version of the package

где xxx — номер версии пакета, который вы хотите установить.

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

$ pip --proxy http://<server address>:<port> install

Обновление установленных пакетов

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

$ pip list --outdated

Чтобы обновить использование определенного пакета

$ pip install [package_name] --upgrade

Обновление всех устаревших пакетов не является стандартной функциональностью pip .

Модернизация

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

  • В Linux или macOS X:

    $ pip install -U pip
    

    Возможно, вам понадобится использовать sudo with pip в некоторых Linux-системах

  • В Windows:

    py -m pip install -U pip
    

    или же

    python -m pip install -U pip
    

Для получения дополнительной информации о пипе читайте здесь .

Установка Python 2.7.x и 3.x

Примечание . Следующие инструкции написаны для Python 2.7 (если не указано): инструкции для Python 3.x аналогичны.

WINDOWS

Сначала загрузите последнюю версию Python 2.7 с официального сайта ( https://www.python.org/downloads/) . Версия предоставляется как пакет MSI. Чтобы установить его вручную, просто дважды щелкните файл.

По умолчанию Python устанавливается в каталог:

 C:Python27

Предупреждение: установка автоматически не изменяет переменную среды PATH.

Предполагая, что ваша установка Python находится в C: Python27, добавьте это в свой PATH:

C:Python27;C:Python27Scripts

Теперь, чтобы проверить правильность установки Python, напишите в cmd:

python --version

Python 2.x и 3.x Side-By-Side

Чтобы установить и использовать оба Python 2.x и 3.x рядом с Windows-машиной:

  1. Установите Python 2.x с помощью установщика MSI.

    • Убедитесь, что Python установлен для всех пользователей.
    • Необязательно: добавьте Python в PATH чтобы сделать Python 2.x доступным из командной строки с помощью python .
  2. Установите Python 3.x с помощью соответствующего установщика.

    • Опять же, убедитесь, что Python установлен для всех пользователей.
    • Необязательно: добавьте Python в PATH чтобы сделать Python 3.x доступным из командной строки с помощью python . Это может переопределить настройки Python 2.x PATH , поэтому дважды проверьте свой PATH и убедитесь, что он настроен на ваши предпочтения.
    • Обязательно установите py launcher установку py launcher для всех пользователей.

Python 3 установит пусковую установку Python, которая может использоваться для запуска Python 2.x и Python 3.x взаимозаменяемо из командной строки:

P:>py -3
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

C:>py -2
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Чтобы использовать соответствующую версию pip для конкретной версии Python, используйте:

C:>py -3 -m pip -V
pip 9.0.1 from C:Python36libsite-packages (python 3.6)

C:>py -2 -m pip -V
pip 9.0.1 from C:Python27libsite-packages (python 2.7)

LINUX

Последние версии CentOS, Fedora, Redhat Enterprise (RHEL) и Ubuntu поставляются с Python 2.7.

Чтобы установить Python 2.7 на Linux вручную, просто выполните следующие действия в терминале:

wget --no-check-certificate https://www.python.org/ftp/python/2.7.X/Python-2.7.X.tgz
tar -xzf Python-2.7.X.tgz  
cd Python-2.7.X
./configure  
make  
sudo make install

Также добавьте путь к новому питону в переменной среды PATH. Если новый python находится в /root/python-2.7.X тогда выполните export PATH = $PATH:/root/python-2.7.X

Теперь, чтобы проверить правильность установки Python, напишите в терминале:

python --version

Ubuntu (From Source)

Если вам нужен Python 3.6, вы можете установить его из источника, как показано ниже (Ubuntu 16.10 и 17.04 имеют версию 3.6 в универсальном репозитории). Ниже приведены шаги для Ubuntu 16.04 и более низких версий:

sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
tar xvf Python-3.6.1.tar.xz 
cd Python-3.6.1/
./configure --enable-optimizations
sudo make altinstall

Macos

Как мы говорим, macOS поставляется с Python 2.7.10, но эта версия устарела и немного изменена из обычного Python.

Версия Python, поставляемая с OS X, отлично подходит для обучения, но это не хорошо для разработки. Версия, поставляемая с OS X, может быть устаревшей из официальной текущей версии Python, которая считается стабильной производственной версией. ( источник )

Установить Homebrew :

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Установите Python 2.7:

brew install python

Для Python 3.x используйте команду brew install python3 .

Понравилась статья? Поделить с друзьями:
  • Котел ferroli руководство по эксплуатации
  • Лазолван инструкция 30 мг таблетки инструкция по применению детям
  • Налгезин 275 мг инструкция по применению таблетки взрослым
  • Руководство ieee для выполнения расчетов опасности вспышки дуги
  • Cybex cloud z i size инструкция на русском