Зачем использовать интерактивный режим Python? - PullRequest
21 голосов
/ 19 апреля 2010

Когда я впервые начал читать о Python, во всех руководствах вы используете интерактивный режим Python. Трудно сохранять, писать длинные программы или редактировать существующие строки (по крайней мере, для меня). Это кажется гораздо более сложным способом написания кода на Python, чем открытие файла code.py и запуск интерпретатора для этого файла.

python code.py

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

Ответы [ 10 ]

36 голосов
/ 19 апреля 2010

Посмотрим:

  • Если вы хотите знать, как что-то работает, вы можете просто попробовать. Нет необходимости записывать файл. Я почти всегда пишу свои программы в интерпретаторе, прежде чем кодировать их. Это не только из-за того, что вы не знаете, как они работают на языке программирования. Я никогда не помню, какие правильные аргументы для диапазона нужно создать, например, [-2, -1, 0, 1]. Мне не нужно Мне просто нужно запустить переводчика и попробовать что-нибудь, пока я не выясню, что это range(-2, 2) (сделал это только сейчас, на самом деле).

  • Вы можете использовать его в качестве калькулятора.

  • Python - очень интроспективный язык программирования. Если вы хотите что-то узнать об объекте, вы можете просто сделать dir(object). Если вы используете IPython, вы даже можете сделать object.<TAB>, и он завершит вкладку методов и атрибутов этого объекта. Это намного быстрее, чем искать вещи в документации или даже в коде.

  • help(anything) для документации. Это намного быстрее, чем любой веб-интерфейс.

  • Опять же, вы должны использовать IPython (настоятельно рекомендуется), но вы можете рассчитывать время. %timeit func1() и %timeit func2() - это общая идиома, определяющая, что быстрее.

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

  • Debugging. Вам не нужно помещать в код выборочные операторы печати, чтобы видеть, какие переменные вы записываете в интерпретаторе. Вам просто нужно набрать >>> a, и он покажет, что такое a. Приятно снова посмотреть, правильно ли вы что-то построили. Сборка Python отладчика Python также использует функциональность intrepeter, так что вы можете не только видеть, что переменная при отладке, но вы также можете манипулировать или даже изменять без остановки отладки.

Когда люди говорят, что Python быстрее разрабатывается, я гарантирую, что это большая часть того, о чем они говорят.

Комментаторы: что-нибудь, что я забыл?

13 голосов
/ 19 апреля 2010

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

5 голосов
/ 19 апреля 2010

Вы говорите о запуске Python в консоли, просто набрав "python"? Это только для небольших тестов и для практики с языком. Это очень полезно при изучении языка и тестировании других модулей.

Конечно, любой реальный программный проект написан в .py файлах и позже выполнен интерпретатором!

2 голосов
/ 19 апреля 2010

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

Это отличный первый шаг для ошибок типа «Эй, это не работает на моей машине» или «В каком Python он все-таки был установлен».

2 голосов
/ 19 апреля 2010

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

Лично я использую оболочку Python как очень быстрый способ выполнения простых числовых операций (предоставляется модулем math). У меня есть настройки среды, так что математический модуль автоматически импортируется при каждом запуске оболочки Python. На самом деле, это хороший способ «продвигать» Python на непифониастов. Покажите им, как они могут использовать Python как аккуратный научный калькулятор и для простого математического прототипирования.

2 голосов
/ 19 апреля 2010

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

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

2 голосов
/ 19 апреля 2010

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

2 голосов
/ 19 апреля 2010

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

Гораздо проще сказать новичку запустить интерпретатор и "сделать это", чем заставить его открыть файл, ввести какой-то код, сохранить его, сделать его исполняемым, убедиться, что python находится в вашей переменной PATH, или использовать # и т. д. и т. д. Удалите все это и просто запустите интерпретатор. Для простых примеров, вы не можете победить. Он никогда не предназначался для длинных программ, поэтому, если вы использовали его для этого, вы, вероятно, пропустили ту часть учебника, в которой говорилось, что «более длинные сценарии помещаются в файл». :)

1 голос
/ 19 апреля 2010

При кодировании на Java у вас почти всегда будет открыт API в каком-либо окне браузера. Однако с помощью интерпретатора Python вы всегда можете импортировать любой модуль, который вы планируете использовать, и проверить, что он предлагает. Вы также можете протестировать поведение новых методов, в которых вы не уверены, чтобы устранить «О, вот как это работает» как источник ошибок.

0 голосов
/ 20 апреля 2010

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

...