Найти - Пользователи
Полная версия: Несложные вопросы по Python
Начало » Python для экспертов » Несложные вопросы по Python
1 2
Камикадзе
Создаю такую тему и называею ее именно так, потому что, наверняка, не я одни учу питон с нуля, и не у меня одного могут возникать всякие глупеньки вопросы об “азах” программирования на этом языке, и т.п. Поэтому, надеюсь, эта тема будет более или менее востребована, и народ не будет создавать отдельную тему типа “Подкиньте пару хадачек… ” (Не в обиду ;) )

И вот первый вопрос.
У меня какие-то странные косяки с вводом строковых значений в переменную:

>>> 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
dorian
Используй Eclipse с pyDev.
Камикадзе
Как понимаю, качаем Eclipse Classic и ставим плагин pyDev?
umup
а чем Idle не устраивает ? есть еще неплохой pyCrust из wxPython з броузером переменных и классов…
Андрей Светлов
На самом деле именно качаем Eclipse Classic и ставим плагин pydev. Лучше, ИМХО, нет.
Другой вопрос - я не использую сейчас IDE. Совсем. Мне так удобней. Почему - ответ будет не быстрый.
nss
> Почему - ответ будет не быстрый.

Но очень интересно его услышать.
Андрей Светлов
Итак, длинный ответ на тему необходимости 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 в качестве основного средства разработки (обвешанным плагинами, естественно). Очень доволен.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB