Форум сайта python.su
Создаю такую тему и называею ее именно так, потому что, наверняка, не я одни учу питон с нуля, и не у меня одного могут возникать всякие глупеньки вопросы об “азах” программирования на этом языке, и т.п. Поэтому, надеюсь, эта тема будет более или менее востребована, и народ не будет создавать отдельную тему типа “Подкиньте пару хадачек… ” (Не в обиду ;) )
И вот первый вопрос.
У меня какие-то странные косяки с вводом строковых значений в переменную:
>>> p=“”
>>> p=input()
qwe
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “<string>”, line 1, in <module>
NameError: name ‘qwe’ is not defined
Печенкой чую, что это знает каждый первоклассник, но нигде не могу найти таких простых вещей.
Офлайн
замени input на raw_input.
input пытается интерпретировать ввод как выражение питона (Equivalent to eval(raw_input(prompt))). raw_input, соответственно, никаких иллюзий не строи
Офлайн
Есть ли возможность осуществлять трассировку в питоне? Испльзую drPython, ночего подобного не нашел. Что посоветуете?
Офлайн
Камикадзезначит он её не поддерживает.
Испльзую drPython, ночего подобного не нашел
Камикадзене использовать drPython. и воспользоваться поиском по форму и подобрать себе другую IDE
Что посоветуете?
Офлайн
Используй Eclipse с pyDev.
Офлайн
Как понимаю, качаем Eclipse Classic и ставим плагин pyDev?
Офлайн
а чем Idle не устраивает ? есть еще неплохой pyCrust из wxPython з броузером переменных и классов…
Офлайн
На самом деле именно качаем Eclipse Classic и ставим плагин pydev. Лучше, ИМХО, нет.
Другой вопрос - я не использую сейчас IDE. Совсем. Мне так удобней. Почему - ответ будет не быстрый.
Офлайн
> Почему - ответ будет не быстрый.
Но очень интересно его услышать.
Офлайн
Итак, длинный ответ на тему необходимости IDE.
Зачем она нужна?
- набирать текст, пользуясь моноширинным шрифтом и раскраской синтаксиса. Очень ценно. Правда, решается любым редактором кода.
- получать подсказки. Только на мой код подсказки иногда нелепые (сильно использую метапрограммирование, а никакой IDE из мне из мне известных не способен понять, как именно метакласс класс меняет, а класс меняет экземпляр :). Подсказки - штука полезная. Но моя память вместе с документацией сильно помогают, а наиболее часто встречающиеся вещи вполне решаются автоподсказчиком по словам (как просто, да?)
- ставить и убирать комментарии. Это любой редактор для программиста умеет (если он знает Питон).
- хелп и прочая помощь. Я привык обходится документацией. Даже браузер ее худо-бедно покажет.
- автодополнение в виде закрывающих скобок и проч. Ненавижу, и сразу же отключаю. Мне проще набрать самому (и времени это занимает немного).
- иерархия модулей. В моем случае легко отображается на файловую структуру, ей и пользуюсь. Да и Питон в этом случае сильно помогает вправить мозги. А если приходится делать import hook's - у IDE сносит крышу.
- рефакторинг. IDE делает только inline method, rename method и прочую тривиальщину. Я привык ставить в этих местах
def modal(self, widget):
import warnings
warnings.warn('use doModal instead', DeprecationWarning, stacklevel=2)
return self.doModal(widget)
Довольно быстро эти затычки исчезают из проекта. Переменная заменяется дескриптором и т.д.
- отладчик. Именно из-за него долго пользовался pydev. Потом отказался. Стандартный модуль pdb при правильном использовании решает мои небольшие запросы по отладке. Нужно остановиться - напиши import pdb;pdb.set_trace(). Если функция вылетает “странно” - напиши вместо
ret = f(a,b,c)
ret = pdb.runcall(f, a,b,c)
Будет вылетать - попадет в отладчик.
Как им пользоваться - здесь
И, самое главное - НЕ ТОРМОЗИТ ПРОГРАММУ, ПОКА НЕ ВЫЗВАН. Очень уж временами напрягало.
Резюме. Пишу клиентов под винду и сервера под Юникс. Пользуюсь, в основном, Far Manager в качестве основного средства разработки (обвешанным плагинами, естественно). Очень доволен.
Отредактировано (Сен. 25, 2007 21:21:11)
Офлайн