Это копия, сохраненная 15 сентября 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прошлый: >>519548 (OP)
Слоупокам напоминаю, что в 2020 заканчивается поддержка второго питона и пора бы переходить на третий
http://legacy.python.org/dev/peps/pep-0373/
> прокомментировать экосистему разработки программ для браузера на Питоне/Джанго
Эм, это MVC фрейморк, в php тоже есть подобные, то есть ты пишешь шаблоны, модели вьюшки и т.п. Потом запускаешь uwsgi или fastcgi сервер и наводишь на него nginx. По типу php-fpm или как его. Есть и девсервер для тестирования который одной командой запускается
>Кроме Джанго есть что-то популярное, насколько оно хорошее?
Есть. Хорошее. Но работы больше всего с django
>но удобные инструменты для электронной коммерции и платёжных шлюзов
Есть полно.
> И менеджер пакетов?
Есть смотри
https://www.djangopackages.com/
https://pypi.python.org/pypi?%3Aaction=search&term=django&submit=search
Можешь там поискать сразу модули для твоих плалежных шлюзов
> На Виндовс желательно с Питоном через виртуализацию работать, правильно?
Да, но не обязательно. Некоторые на винде сидят.
перепостил т.к. перекат
До 2020 ещё дожить надо. Да и подержку продлят я думаю т.к. всё ещё останется дофига легаси кода.
2020 наступит быстрее чем ты думаешь. А потом ты постареешь и умрешь.
https://github.com/madisonmay/Tomorrow
Это означает что строка в unicode(типа unicode)
Если ты сделаешь
print hobbies[0]
То напечатает без кавычек и u. Просто ты печатаешь весь список и тогда выводится его repr
Смотри.
Когда ты делаешь
print list
он вызывает метод __str__ у list. У list этот метод возвращает квадратные скобочки и repr() от каждого элемента через запятую.
Для юникод строк этот repr выглядит как u'строка'
Никуда ты не устроился кому ты пиздишь.
Спасибо. Еще раз перепощу сюда тоже:
>Ребята, писал на PHP/Laravel, появилась возможность перелезть на Python/Django (в том числе и потому, что работы нет, везде на серверной стороне Битрикс через Битрикс Битриксом погоняет), но я немного испугался того, о чём совсем не знаю. Можете просто как-то прокомментировать экосистему разработки программ для браузера на Питоне/Джанго и осмысленность такого перехода? Кроме Джанго есть что-то популярное, насколько оно хорошее? Вопрос, наверное, риторический, но удобные инструменты для электронной коммерции и платёжных шлюзов, разумеется, тоже в наличии? И менеджер пакетов? На Виндовс желательно с Питоном через виртуализацию работать, правильно? Vagrant-бокс с Питоном и Hyper-V существует популярный?
>Извиняюсь за вопросы, которые мог нагуглить, просто попробуйте ответить сходу на что-то, пожалуйста, а чего не увижу, потом просто загуглю. Спасибо!
А вот и местный шизик в тред пожаловал.
Yasno)))))))))))
А мне нравится, он весь такой РАДУЖНЫЙ, как бензин. Сейчас модно быть РАДУЖНЫМ.
Чурка ебаная потомушто
Гвидо подтвердил что поддержка второго говна продлеваться больше не будет. 2020 - все.
http://www.ozon.ru/context/detail/id/31249592/
на счёт троечки там вообще уныние полное было. гвидо в ходе выступления такой типа, а поднимите руки кто троечку в проде использует, и я там чуть ли не один вообще во всём зале был
Ай, не пизиди, был он там!
ГВИДО ЮЗАЕТ И ЕМАКС И ВИМ, ШОК-СЕНСАЦИЯ
Кому ты пиздишь? На этой доске только успешные разработчики от 500к$.
Какой вопрос такой и ответ.
Разобрался. Оказалось, что после регистрации проекта нужно еще создать его дистрибутив и залить его, лол.
Все плагины отключены. У тебя какой браузер? Есть подозрение что виновата во всем yota, так как вчера вечером у меня перестал работать их днс сервер и заработал только сегодня днем.
Уже пробовал, но он все равно йотовским.
И такая проблема на всех устройствах подключенных к йоте. При этом через анонимайзер все работает как надо.
1. У тебя акселераторы повторяются. Например для Правка и Помощь один - П
2. Нету popup-подсказок при наведении на значки. Я хуй знает что пустой квадрат должен делать, и он не говорит.
3. Как включить нумерацию строк? Вид-нумерация - не активно.
Скачать можно через pip install pycloser.
Есть три функции: defer, listen и close.
С помощью первой функции кладутся на стек. Пример с открытием и закрытием файла:
@defer # Откладываем печать в консоль
def goodbuy():
print('Good buy!')
f = open('HelloWorld.txt') # Открываем файл
@defer # Откладываем закрытие файла
def close_file():
f.close()
listen() # Слушаем сигналы. Если пользователь нажимает Ctrl-C, из стека достанется и запустится close_file()
s = f.read() # Тут как-то работаем с файлом
close() # Выполняем функции из стека, если не было сигнала
Если пользователь нажмет Ctrl-C, то сначала выполнится close_file(), а потом goodbuy().
Код можно посмотреть тут: https://github.com/arvinkulagin/pycloser
Настало время переустановить шиндовс.
Вот ето свежисть, вот ето новезна!
https://docs.python.org/3/library/atexit.html?highlight=atexit#module-atexit
Бля, ты даже не pypi это говно принёс. Ну будьте людьми, не уподобляйтесь js-макакам!
>136 downloads in the last day
Интересно. Везде боты что-то тянут. Подозреваю что хайринговые конторки.
Ты гоблядей наслушался чтоли? defer это бесполезный костыль.
with f = open('HelloWorld.txt'): s = f.read()
Можно, но так красивей, мне кажется.
>>526267
>Вот ето свежисть, вот ето новезна!
Ну, да, велосипед. Но это норма, лол.
>>526270
>Ну будьте людьми, не уподобляйтесь js-макакам!
Ну, это, наверное, зря. Хотел попробовать что-нибудь на pypi закинуть. Но никакой полезной идеи в голову не пришло.
>>526306
Про with я знаю, но это не совсем то. И гошный defer, кстати, довольно удобный.
что надо для девелопа джуна питона?
сейчас осиливаю байт оф питона очень нравится, но этого ведь недостаточно жеж
1) Разработчики на питоне не нужны
2) Разработчики на питоне никому не нужны
3) Вроде как нет единого стандарта квалификации, потому что уровень знаний в шарпе стандартизирует MS, например, уровень знаний в жабе -- оракл, а по питону экзамены никто не проводит, как-то так получилось
4) Если ты-таки сумеешь отыскать вакансию, там будет знание Django, инфа сотка / к гадалке не ходи / отнесите мои слова в банк
вакансия отыскана, но там нихера не пишут про джангу, а просто мол "знай петон" и все.
но по остальному понятно что веб-шмеб
настоящая мистика
Не спорю. Можешь сказать, почему это говнокод, и как нужно было сделать в этих случаях?
Всё что делает Stack, это предоставляет несколько методов list под другими именами.
push → append, pop → pop с сюрпризом, is_empty → __bool__ на велосипеде.
И при этом не является каким либо внешним интерфейсом.
Зачем?
Ну и конечно же классика:
> while not self.handlers.is_empty():
вместо for in.
> func = self.handlers.pop()
> \t\t\tfunc()
None object is not callable ;)
И в конце:
> def defer():
Все методы Closer оборачиваются в процедуры, а сам он как бы подразумевается синглтоном.
Зачем тогда он был нужен?
Линукс/макось, да. Иначе будешь не язык учить а ебаться с проблемами.
>None object is not callable ;)
Да, идея со своей реализацией стека была говнокодием. И ноны эти бессмысленны. В свое оправдание могу сказать, что подсмотрел ее в книге по алгоритмам и в пакете реализовал не подумав.
>Зачем тогда он был нужен?
Ради возможного расширения в будущем. Но в большей мере потому что я плохо ООП чувствую, где нужен класс, где нет. До этого на гошечке писал (да и продолжаю), а там классов нет, только стракты и методы к ним. Вот я и пытаюсь классы как простые стракты использовать. Зра, наверное.
В общем, переделаю все. Спасибо за критику.
нужно объеденить пересекающиеся сеты
получить нужно вида {a,b,e,d,c}
проблема для меня в том, что первый и второй непосредственно не пересекаются, поэтому последовательным объединением решить не могу
если я в таком виде прохожу, скажем, по листу, то на самом деле я ведь прохожу не по самому листу а по копиям незаметно сделанным специально для итерации и таким образом не выходит сделать изменения собственно в оригинальном листе.
Все ли я верно понимаю и что делать?
for i in list_1:
....for j in list_1:
........if i==j:
............i+='abumudak' # у меня не работает
print(list_1) #выводит оригинальный лист без изменений
Тоже говнокод.
>>526920
Ну давай разберем по частям тобою написанное.
1. Стек уже есть в стандартной библиотеке - collections.deque. Настоящий стек, со всеми вставками-удалениями за O(1), как положено.
2. Вот ты импортируешь signal и дальше какие-то обработчики ставишь. Ты ведь понимаешь что ты полез в низкоуровневое байтоебство? В то самое, где например close может вернуть EINTR (а питон это выдаст как исключение InterruptedError) что означает "системный вызов был прерван сигналом, надо повторить", но при этом конкретно в случае close файловый дескриптор уже был закрыт поэтому несмотря на EINTR повторять его нельзя. Не надо пытаться хуярить системное программирование тебе пока.
3. Если код уже установил обработчик сигнала через signal, то ты его успешно проебал. signal.signal при вызове возвращает либо старый обработчик, либо SIG_IGN, т.е. что сигнал надо проигнорировать вообще, либо SIG_DFL, то есть стандартное поведение ОС, либо самый хуевый случай - None, что значит "старый обработчик был установлен сишным кодом и теперь хуй ты его вызовешь".
4. SIGHUP нет на Windows, поэтому ты получишь AttributeError во время инициализации.
5. Выходить с кодом ОК по SIGINT/SIGTERM так-то неправильно. Явно же не ок нихуя.
Потому что гил значительно упрощает интерпретатор. Честная мультитредность штука вычислительно дорогая, а питон итак медленный.
Ну и есть PyPy в котором пилят STM, там уже всё без гила. Субъективно работает действительно живее, раза в 2-3, за счёт jit, но заметны сборки мусора, в итоге что-то вроде жабы получится. Если не смущает привкус жабы, то жди @ помогай напиливать. Запиливали ещё stackless, вроде бы тоже избавление от гила, только на существующей кодобазе cpython, но что-то интерес потеряли. Наверное нахуй никому оно на самом деле не нужно. Всем срать на гил.
>1
В этом случае у обычный лист можно использовать. У его методов pop и append тоже временная сложность константная. А в начало мне записывать/удалять не нужно.
>3
Это так, но тут предполагается, что в коде нет других обработчиков сигналов. Можно это прописать в README.
>4
На виндоус я и не рассчитываю, не вижу смысла - это как писать версию мобильного предложения под виндофон.
>5
Выход из программы по Ctrl-C - это вполне обычно дело, разве нет? Много где используется именно с тем смыслом, что все ок.
>2
А вот это правда, и тут нечего сказать. Наверное, действительно зря полез в байтоебство, да еще и с питоном, который не для этого. Даже не знаю, что делать. Хочется написать что-нибудь более практическое, чем учебные реализации структур данных и алгоритмов, но ничего в голову не приходит. не борду же очередную пилить.
Тебе set([a,b]+[e,d]+[a,e]) нужно или что? Откуда там "с" вылезло в примере? Кака разница, последовательно они идут или нет? Или тебе не все вместе, а по группам их как-то объединить нужно?
>>526968
Никаких копий не создаётся. Дело в том, что string в питоне — immutable. И вот это i+="..." не изменяет элемент массива, а, фактически, присваивает локальной переменной "i" новое значение. i — это всего лишь ссылка на объект, а не сам объект. Поэтому когда ты пишешь "i = ...", ты не объект меняешь, а ссылку.
Будь у тебя в списке mutable элементы и соответстувющие функции в лупе, всё было бы норм:
l1 = [[1,2],[3,4]]
l2 = [[3,4],[4,5]]
for e1 in l1:
for e2 in l2:
if e1 == e2:
e1.append(5)
print(l1) # -> [[1,2],[3,4,5]]
http://www.youtube.com/watch?v=EiOglTERPEo
про циклы ясно
Нужно складвать пересекающиеся сеты до тех пор пока не останется пересекающихся
({a,b},{e,d}, {a,e}, {z,x})
в этом примере [0] и [2] пересеаются, если мы их сложим(допустим при этом удалив исходные сеты, хотя это не важно)
({a,b,e},{e,d},{z,x}) теперь пересекаются 0 и 1, после сложения:
({a,b,e,d}, {z,x})
Чтото мне подсказывает что это можно сделать в одну строчку, без ебли с итерациями.
В связи со значительно улучшившейся работой замечательной проги avidemux в части потокового процессинга под прыщами http://www.avidemux.org/admWiki/doku.php?id=tutorial:batch_processing я решил перенести столь важный процесс, как кодирование порно из HD -> SD на рабочий сервачок с двумя ксеонами.
Когда-то давно я писал следующий быдлокод http://paste.ubuntu.com/12027254/
Суть его проста - выбираются из папки все видосы заданного формата (mp4) с высотой кадра больше 540 или шириной больше 700 пикселей, после чего к ним применяется фильтр пропорционального уменьшения в размер не превышаюсь обозначенных значений, а результат сохраняется в x264/mkv.
Быдлокод максимальный, т.к. в питоне я не понимал ничего ни тогда, ни сейчас. Помогите, пожалуйста реализовать следующее - вместо одного формата mp4, нужно чтобы скрипт обрабатывал за один запуск файлы из папки сразу 3х форматов - avi, mp4, wmv. Благо поддержка CLI теперь просто заебательская и никаких вылетов на середине вроде бы больше нету.
Заранее спасибо!
Без понятия, как именно там работает get_folder_content(), на самый просто способ, наверное:
exts = ['avi','mp4','wmv']
filelist = []
for ext in exts:
filelist += get_folder_content(folder, ext)
И сразу возник вопрос и у меня. Если есть некая функция func, возвращающая список, то генератор список вернёт список списков:
my_list = [func(x) for x in some_list]
my_list = [[...],[...],...]
Можно ли как-нибудь в ту же одну строчку (т.е. не так, как я выше указал) сделать так, чтобы my_list был именно списком элементов всех списков, которые возвращались функцией func? Проще говоря, как реализовать то, что я посоветовал выше через генератор списков?
> exts = ['avi','mp4','wmv']
> filelist = []
> for ext in exts:
> filelist += get_folder_content(folder, ext)
Да, спасибо, заработало!
http://ideone.com/CgTBjo
Я думаю, из кода понятно что она делает.
Нахуй classmethod? Доп запрос жи.
А даже если через classmethod, то можно через filter и update, шобы один запрос был:
...filter(pk=pk).update(F('popularity')+value)
Нахуя ты это линканул?
Там же дальше даже написано юзать update, чтобы не делать лишних запросов.
sum([func(x) for x in some_list],[])
from operator import add
reduce(add,[[1,2] for x in xrange(5)],[])
my_list = [y for x in some_list for y in func(x)]
Во-первых, на вторую строку посмотри, а во-вторых — нахуя ты весь код вправо один таб подвинул?
Опа. Спасибо.
http://stackoverflow.com/questions/7894897/django-saving-an-image-manually-to-an-imagefield-field
http://stackoverflow.com/questions/3330677/a-stringio-like-class-that-extends-django-core-files-file
Вот как-то так. Вместо StringIO ты можешь подсунуть прямо urllib`ом открытый url, он тоже file-like object.
Но вообще сама джанга большие файлы при загрузке пишет в /tmp и оттуда уже перемещает в MEDIA_ROOT потом. Если она делает mv, и это одна файловая система это моментальная операция.
Вот ещё ссылка по теме
http://www.revsys.com/blog/2014/dec/03/loading-django-files-from-code/
Просто делай так как там, не парься.
И вот ещё ссылка по теме
https://docs.djangoproject.com/en/dev/ref/files/file/#the-contentfile-class
Ну так это и спрашивай тогда. Вот я тебе накалякал тут примерчик, может поможет: http://ideone.com/jWM9r9 (лучше скопируй и локально запускай, чтобы риалтайм — наглядней)
Time-consuming task, очевидно, будет скачивание файлов. Правда, почему бы не записывать в файлы сразу же в корутинах? Тогда и результат корутин не нужно получать. Там ещё asyncio.Future() для этого, в принципе, есть (включая проверку на завершение корутин, я так понимаю).
Ну и зачем тогда тебе питон, который любят за отступы? Тебе в пхп тред какой-нибудь.
Но там на них можно забить хуи и говнокодить как душа пожелает!
Шёл бы ты отсюда, петушок.
Ёбушки-воробушки. Никто в здравом уме сам отступы не расставляет. Будешь каждый раз таб херачить или 4 пробела считать что ли? Не нужно быть таким упоротым. Возьми нормальный редактор кода, например Sublime Text. Он сам будет отступы расставлять и не нужно будет париться вообще на счёт их.
Или в рубитред.
Или PyCharm.
вот че надумал
Пошёл нахуй!
Блять, спасибо что не поленился.
То что ты не понял вопрос полностью компенсируется твоей благонамеренностью.
Еще раз, спасибо блять.
>Чтото мне подсказывает что это можно сделать в одну строчку, без ебли с итерациями.
Обоснуй @ докажи. Рассмотри частный случай, когда изначально все множества состоят из 2 элементов. По сути тогда они задают последовательность объединений для системы непересекающихся множеств, которая нихуя в одну строчку не реализуется.
Однозначно убунту, епта.
Разница между ними стремится к нулю. Ну убунта в ппа разве что умеет. И апстарт вместо systemd
>Выбираю между древним говном мамонта и древним говном мамонта из ветки unstable.
Ставь арч или федору.
Десяточку ставь
Алсо, unique=True подразумевает создание индекса?
>Note that when unique is True, you don’t need to specify db_index, because unique implies the creation of an index.
>Почему так?
Ты db_index добавил уже после того как syncdb делал и таблица в базе была создана? Может тебе миграцию сделать?
>sqlite
не советую ей пользоваться там многое эмулируется в коде потому что таких фич нет в базе данных. например целостность всяких foreignkey эмулируется в коде.
Pycharm грит, что плохо брать и не упоминать поля в __init__, а создавать их в другом месте. В принципе, замечание логичное, хочется, чтобы все поля были в одном месте.
Инициализировал их None. Но теперь проблема в том, что каким-то полям я присваиваю callable-объект, а потом Pycharm начинает ругаться на "fieldName is not callable", что меня не устраивает.
Так, все же, как принято инициализировать поля объекта класса, а?
Ну а вот так он говорит, я откуда знаю?
Ну обосновать такие замечания я могу,
>В принципе, замечание логичное, хочется, чтобы все поля были в одном месте.
Но вопрос как раз в том, как это обычно делают
Про что несёшь?! Вообще охуеть!
Нихуя не понятно без твоего кода.
Зачем тебе в какой-то функции прописывать callable объект как поле класса?
openSUSE ставь.
Ну, грубо говоря, есть библиотека (называется theano), которая берет какие-то символьные выражения, оптимизирует их и компилирует в машинный код. Возвращает callable-объект. Именно этот объект у меня хранится внутри экземпляра моего класса. Причем так получается, что нельзя эту функцию построить на этапе инициализации объекта ну можно, конечно, но выглядеть это будет дико
Я понимаю, что полностью подчиняться требованиям IDE не очень правильно, но ведь наверняка все такие предупреждения не просто так же
Потому что все методы твоего объекта можно вызвать снаружи. Где гарантии, что при вызове какого-то из методов был вызван другой, в котором была инициализация поля?
В скрытые методы инициализацию подкапотную вынеси и пучарм перестанет пиздеть, да и сам красавчиком станешь баразарю
Что ты имеешь в виду под подкапотной инициализацией?
Ну, грубо говоря, у меня вот есть нейронная сеть, есть слои нейронной сети, для того, чтобы слой полностью проинициализировать, мне его надо подключить к предыдущему.
Я могу сделать что-то типа Layer3(Layer2(Layer1))), но это выглядит как-то убого. Проще и красивей выглядит такая штука:
network.add(Layer1)
network.add(Layer2)
network.add(Layer3)
network.build(), внутри этой вот фунции я беру, итерируюсь по слоям, вызываю у каждого слоя метод connect, передавая ему предыдущий.
Ага, а теперь у меня будет 10 слоев, охуенный многострочник получится. Ах, да, я же еще и параметры слоям передаю, вообще заебись будет
Так вот, если не видно разницы, то зачем платить больше думать над выбором?
layer1 = Layer1(parametry1)
...
layern = LayerN(layerNMinus1, parametryN)
Нет, не хочу, хочу делать абстрактные фабрики композиций слоев.
PySide вперде с 4-й версией Qt. PyQt шагает в ногу с самим Qt, плюс развивает инфраструктуру (pyqtdeploy, всякие обвесы на qt).
Если конкретнее, хочу уметь следующие темы:
√ то, что должен знать каждый питонист
√ все "особо продвинутые" хаки и метапрограммирование
√ как максимально удобно писать в функциональном стиле
√ маст-хев библиотеки, в том числе встроенные
желательно по-минимуму воды и совсем нубской инфы для тех, кто изучает питон как первый язык — это не мой случай.
заранее спасибо :з
Нет, ты!
>Какой фреймворк юзаете для обвязки rest api? Почему? Преимущества?
Дауны из джяваскрипт треда так и не ответили.
>Обоснуй @ докажи
очень может быть, да.
Ну, если так - тоже результат, буду делать как делал.
Спасибо.
Это вопрос не в этот тред я думаю. И вкусовщина к тому же.
http://knockoutjs.com/
http://backbonejs.org/
http://facebook.github.io/react/
Можно и ручками на js и через jquery
http://blog.kevinastone.com/getting-started-with-django-rest-framework-and-angularjs.html
Вот тут angularjs используют.
Всё норм, посаны с доу рикаминдуют. Даже такую ссылку вкидывали.
https://www.facebook.com/notes/andrey-khavryuchenko/how-to-prepare-for-development-carreer-in-42-coffee-cups/10153470495568413?pnref=lhc
Код: http://pastebin.com/neyqEnRZ
Так тебе работа или путенвсехпереиграл с долларом по 80 зимой?
Этот хохол анальный учредитель компании куда ты хочешь пойти работать, лол.
Зачем работать на хохла тем более удаленно?
Хохлы ражные будут мало платить, а напрягать дофига.
Перепродают твою работу на аутсорс наверняка всё равно, потому что своих айти проектов у хохлов нет.
Так почему бы напрямую на пиндосов не работать? Тем более знание ангельского и у хохла требуется.
>куда ты хочешь пойти работать, лол.
если я тебе молочко с супом сфоткаю, твоя попка выдержит?
Или ты просто воспримешь критику и начнешь адекватно подписывать ссылки, если они токсичны?
Я тебя нихуя не понел. Какое молочко, какой суп, ты ебанутый? Можешь что угодно фоткать, я разрешаю.
Токсичные ссылки у него. Реддитодебил, это ты?
>если я тебе молочко с супом сфоткаю, твоя попка выдержит?
Или ты просто воспримешь критику и начнешь адекватно подписывать ссылки, если они токсичны?
Ты сайтом не ошибся?
Может вы разделом ошиблись?
Спасибо, но я пока на 2 ветке сижу, как освою её на приличном уровне перелезу на 3.
Для его задачи треды норм. Да чего уж там скорее всего тупо запускать несколько процессов питона норм. Нахуй выебываться.
Вышел из шелла, снова зашёл, проделал те же самые действия. Всё исправилось, хотя я так пытался и раньше это решить.
Спермопроблемы
> Убрал скобки квадратные и работает
a, b, c == (a, b, c) == tuple([a, b, c])
Видать в задании срать - кортеж это или список
Сарян, мимо.
Что твой продакшын легаси будет делать, когда у второй ветки кончится поддержка? Четко и ясно давай
Вообще-то только их сейчас и делают:
>Python 2.7.10 is a bug fix release of the Python 2.7.x series.
>Python 2.7.9 is a bugfix version for the Python 2.7 release series.
>Python 2.7.8 This release includes regression and security fixes over 2.7.7
>Python 2.7.7 This is a regularly scheduled 2.7 series bugfix and includes numerous bugfixes over 2.7.6.
>Python 2.7.6 was released on November 10, 2013. This is a 2.7 series bugfix release.
>Python 2.7.5 was released on May 15, 2013. This is a 2.7 series bugfix release.
>Python 2.7.4 was released on April 6, 2013. This is a 2.7 series bugfix release.
>Python 2.7.3 was released on April 9, 2012. 2.7.3 includes fixes for several reported security issues in 2.7.2
а закончат в 2020:
>Being the last of the 2.x series, 2.7 will have an extended period of maintenance. The current plan is to support it for at least 10 years from the initial 2.7 release. This means there will be bugfix releases until 2020.
>This means there will be bugfix releases until 2020.
Никаких фиксов после 2020 не будет. Вообще.
Недавно бэкпортировали измнения для улучшения производительности
https://lwn.net/Articles/646888/
Как видишь они считают это bugfix-release. Которые прекратятся после 2020.
Но ты с темы не утекай. После 2020 делать то что со своим легаси будешь?
Да никаких, просто некоторые лелки вдолбили себе в голову бред уровня "говно мамонта = багов нет" и ставят на сервера всякие дебиан-стейблы с центосями. Как будто баги выветрились за 10 лет.
Дебиан с центосями тоже кстати переходят на третий. В одном из прошлых тредов обсуждали.
Ясн
> Да никаких
Многие библиотеки до сих пор только под двойку. Где мой twister?
Даже из всяких мелких примочек для джанги только треть работает под тройкой, хотя их-то легко было бы портировать. Про pypi я вообще молчу.
Может быть новый проект я бы и начал на тройке, может быть. Но старые никто на тройку переводить не будет просто ради тройки.
>сервера всякие дебиан-стейблы с центосями
Ты нихуя не шаришь, там стабильная версия софта, так что при обновлении у тебя нихуя не сломается из-за несовместимых api и прочей поеботы. Но секьюрити фиксы все туда портируются, у редхата этим занимается специальные люди.
>Но старые никто на тройку переводить не будет просто ради тройки.
Как и никто не будет портировать новые фичи из тройки в двойку. А потом и на багфиксы забьют.
Вот и думай кто больше соснул, твое легаси без языка, или язык без легаси.
Я просто подожду пока появиться что-то пиздатое на python3 что будет оправдывать переход. И пока больше либ поддянеться.
Пока что это только asyncio, если делать проект с ним, то конечно есть смысл тройку использовать.
Откуда такая уверенность что множество Py3 пакаджей полностью включено в Py2? Немало нового и интересного запилено уже начиная с тех же asyncio и aiohttp.
Вроде как всеми силами переводят. Вот из последнего ченджлога
>10+ modules ported to Python 3 (see NEWS for specifics)
https://www.youtube.com/watch?v=UgcC_bY4rPg
В линуксе он установлен по умолчанию.
В венде да скачать с python.org запускаешь idle и можешь вводить команды и сразу видеть результат.
Можешь поставить какую-нить IDE типа pycharm потом вбивать там код и запускать прям оттуда.
Потом там есть ссылки на всякие онлайн курсы, в них и объяснено что делать ньюфагу. И вроде там вообще ничего ставить не надо, можно вбивать код по мере обучения в окне браузера прям.
>>528746
>>528747
Спасибо ребят. Еще такой вопрос, все эти курсы наверняка с разным уровнем вхождения(или нет) есть совет, какой подойдет для человека который никак вообще не связан с программированием?
Я прсто инженером работаю, и на теперешнем месте у меня довольно много свободного времени, вот я и подумал - почему бы и нет.
Я сам ими не пользоался так что не знаю, но поидее они очень простые. Единственно анлийский надо знать.
Стартанул, по урокам, делаю хелловорлды естественно...
Обратите внимание на скрин.
Стандартный шелл, писать черным на белом у меня вытекут глаза, поменял фон на серый, но у текста все равно белый фон - выглядит пиздецово, читать неудобно. В нотпаде все ок, тут и говорить нечего, но из нотпада я не могуили могу? запускать свой код сразу, как я это делаю в шеле.
Задача:
Или напердолить шелл до удобоваримого состояния, или я даже незнаю что. Нужно чтоб глаза не уставали, и выглядило все приятно для глаз. Если это будет что то стороннее, чтоб синтаксис подсвечивался.. ну вы думаю поняли о чем я. Скорее всего конечно, делать что то с шелом, потому что нужна возможность запускать код сразу же.
Поставь какой-нить редактор который умеет запускать питон.
https://pythonhosted.org/spyder/installation.html#installing-on-windows-xp-vista-7-8
например
Вот ещё вариант
поставь http://sourceforge.net/projects/console/
И запусти python.exe из c:\python или где он у тебя там.
Можешь конечно в обычном cmd.exe запустить ,но эта console вроде лучше.
Спасибо, посмотрю, но ты мне лучше скажи что мне вообще нужно, как это называется, что мне гуглить - дальше я думаю сам разберусь.
>Где мой twister?
Твистер?
>Даже из всяких мелких примочек для джанги только треть работает под тройкой, хотя их-то легко было бы портировать
Это все аргументы того же уровня, что и когда с шиндовс 7 с хп переходить не хотели. Мол, "пок-пок мой кейлоггер от васяна на 7 не заработает". Не знаю как там на джанго пакаджес, но на pypi любой хуй может свою лабу1 загрузить, в результате 90% пакетов абсолютно бесполезны. Я уж не говорю о том что если либу даже не пытаются портировать на питон 3 то она скорее всего не поддерживается совсем, а использовать неподдерживающиеся либы это идея невероятно хуевая.
Ладно убедил. В 2020 начну переползать на 3-й.
Кстати в чем отличие комьюнити и полной версии?
Можно за полную версию не платить? Бесконечный триал как-нить себе устроить например?
Да мне вроде тоже хватает.
Я вообще с джангой в основном работаю, вот там пишут что какая-то улучшенная поддержка джанги, но в чем?
Надо попробовать будет триал всё-таки.
Автокомплит специфичных для джанги хуевин. Например, параметры в class Meta моделей, модели в FK и M2M, если стрингой добавляешь и т.п.
Ну и с орм попизже интеграция. Мб в шаблонах тоже че-то есть (комьюнити не пользовался особо).
Ну ввел
http://www.ideacolorthemes.org/home/
> Select «File» → «Import Setting» from the main menu and follow the instructions. After the IDE restarted go to the Preferences, expand «Editor» → «Colors and fonts» tab and choose the installed theme.
В глаза долбишься?
Могу видео записать, импортирует как надо, само идет в перезагрузку а потом кастомной темы в Editor» → «Colors and fonts
НЕТ
У меня есть, я 2 темы оттуда поставил.
И шрифты и размер шрифта у меня выберается.
А какая версия, 4.5.3?
PyCharm
Не стоит называть переменную sum, потому что есть встроенная функция sum и ты её переопределяешь тем самым. Это может сломать код.
Ох сука, вот это я объебался с невнимательностью тогда. Добра тебе
короче https://www.jetbrains.com/pycharm/help/configuring-colors-and-fonts.html
Надо схему свою создать
>click Save as button, and type the new scheme name in the dialog box.
После этого можно будет менять шрифт.
Норм все.
http://vk.com/wall-97616552_223
В книге охватываются базовые вещи, хватит ли этого чтобы потом перейти к изучению фласка?
Мне хватило прочитать туториал по питон и джанге чтобы что-то начать лепить на них. Потом уже книгу почитал по питон чтобы детальней вникнуть.
Правда я знал php.
Хотя кое-какое знание РНР имеется, что такое MVC и прочие вещи, но ничего серьезного на нем не делал.
Пытаюсь к словарику создать второй словарик, в котором бы values из первого словарика стали key, а key - соответственно values.
Столкнулся с такой хуитой, что в первом словарике 38 слов, а второй словарик на последнем прогоне содержит 37 слов. Явно, что какая-то шляпа связана с тем, что индексация идет с нуля.
Но все равно не пойму причину:
В последнем прогоне len 37, это значит порядковый номер икса 36. Последний возможный порядковый номер икса 37, какого хуя оно не идет на еще один круг x += 1?
Это классно, но что с моим кодом?
Алсо, с инвертмапой тоже какая-то жидохуита творится.
len(inv_map) 37!
А первый словарик len 38.
http://ideone.com/MrbsP1
Блджад, и точно. Импортные коллекции, значит. Удобно, я не знал про эту шляпу. Спасибо, анон.
http://ideone.com/7oKxcF
Рандомно генерит key из словарика, загадывает загадку. Но проверку равенства инпутного пользователем m и d[key] код фейлит. Пробовал вариант if m in d[key], if m == d[key], if d[key] == m. Нихуя.
random.sample возвращает массив.
Вообще, питон тебе об этом явно и сообщает, говоря "TypeError: unhashable type: 'list'"
чтобработало
Как давно я не видел эту картинку на бордах. Какой-то воровачер что ли просмотрел папку с картинками?
Корутины не занимают потоки, поэтому делать пул не из чего. По сути ты просто ограничил количество одновременно работающих задач, что можно было и семафором сделать. http://ideone.com/DjYcMD
Давай лучше запилим что-то свое опенсорсное, чтобы пацаны зауважали. С тебя годная идея.
Пойду спать.
>>530172
Ну мне надо ещё распределять задачи по определённым слотам с данными, а не только ограничить количество. Грубо говоря, если только три лошадки, а нам нужно по очереди на них наездников сажать когда те сделают по кругу.
Хм. Может и правда на семафоре переделать. А то я как-то глянул, но почему-то отбросил такой вариант. И если честно долго врубался чем корутины от фьючеров и тасков отличаются.
Нет я.
>Ну мне надо ещё распределять задачи по определённым слотам с данными
Создай очередь из этих слотов и вместо print('+ task') и print('- task') доставай элемент/клади обратно.
Просто выдрать ссылки на фотографии на нужной странице мало и это я уже сделал. Дело в том, что помимо тех фотографий ссылки на которые указаны, хостинг хранит и те фотографии ссылки на которые не публикует. Т.е., опубликованные ссылки могут быть вида:
1.jpg
2.jpg
5.jpg
9.jpg
и т.д.
При этом файлы с именами 4, 6, 7, 8 существуют и их надо выдрать. Проблема осложняется тем, что файлы могут содержать буквы, подчеркивания и тире. Т.е., быть формата (буквы)_(цифры)-(буквы)(еще цифры). При этом заранее неизвестно какая часть изменяется - изменяться могут буквы от a до z или цифры по порядку.
Так вот как сделать проверку какая части изменяется и высчитать те имена, которые не опубликованы? Я пока все это вижу адским количеством циклов, проверяющих каждый элемент имени файла на то является он инт или стринг, потом объединяющий элементы по типу если они идут друг за другом, сравнивающий с предыдущим именем, высчитыванием разницы и т.д. Короче, это должно решаться как-то сильно проще.
Вопрос в том как?
Вопрос второй: у нас есть цифры 1, 2, 3 и т.д. Мы их можем отсортировать и посчитать разницу между первой и второй, второй и третьей и т.д. Как сделать тоже самое для букв? Т.е., не для 1, 2, 3, а для a, b, c и т.д.?
Вопрос третий: как указать куда скачивать файл? Скачиваю так:
image = urllib.URLopener()
image.retrieve(img, filename)
Как указать путь куда скачивать и создать папку при необходимости не нашел. Скачивать в папку с питоном желания нет совсем.
Дибил, хуле.
1. Ты хочешь узнать неизвестное рандомно сгенерированное имя файла? Дай хотя бы примеры имён, что ли. Но если там исключительно символы на определённых местах (последовательно) меняются, то зная имена отображаемых, можешь индексы различающихся найти:
nms = ['ab_cy_4-eg','ab_cz_4-eg','ab_da_4-eg','ab_db_4-eg']
diff_indices = [i for i in range(len(nms[0])) if not all(name == nms[0] for name in nms)] # [3,4]
Ну а дальше только перебор, чего ещё тут сказать-то.
2.
ord('c') - ord('a')
ну или :
import string
letters = string.ascii_letters
difference = letters.index('c') - letters.index('a')
Если тебе в обоих регистрах нужно и не хочется связываться с тем, что между строчными и заглавными буквами в ascii идут ещё символы некоторые (ord('A') - ord('z') != 1).
3. Ну, ээ, а параметр filename для чего, по-твоему?
>Ты хочешь узнать неизвестное рандомно сгенерированное имя файла?
Нет, имя дает пользователь, а потом грузит на хостинг. Так вот часть файлов просто не публикует.
>Дай хотя бы примеры имён, что ли.
Обычно это просто цифровая последовательность от 0 до n.
Но бывают и такие:
img_6563-001
img_6568-001
img_6573-001
Бывает последовательность от a до z, где символы меняются. Сейчас уже не найду - бывает редко, а массив большой.
>nms = ['ab_cy_4-eg','ab_cz_4-eg','ab_da_4-eg','ab_db_4-eg']
>diff_indices = [i for i in range(len(nms[0])) if not all(name == nms[0] for name in nms)] # [3,4]
Не совсем понял, но попробую разобраться.
>ord('c') - ord('a')
Я этого даже не знал. Сейчас почитал и правда, обратно переведу char(). Удобно.
Про второй вариант тоже не догадывался.
>3. Ну, ээ, а параметр filename для чего, по-твоему?
Я думал он для того, чтобы сохранить файл под нужным именем. Благодарю. Заодно про os.mkdir() узнал.
>checkio
Охуеть, в первой же задаче цикл for element in data выводит 6, сука, значений, когда список передан из ПЯТИ значений, ПЯТИ, КАРЛ! Нахуй и в пизду.
Там с первым ответом кое-что не так пошло, так как макаба индексы за курсив приняла, лол. (Надо было не i использовать.) Вот — http://ideone.com/xPOVMm Это при условии, что изменемая часть целиком число и все цифры стоят рядом друг с другом.
1) Что используется для тестирования.
2) Что для отслеживания покрытия кода тестами.
3) Автоматическая сборка.
4) Как обновляют питоновскую десктоп программу.
Может еще что интересное.
Вот как называть класс, который содержит список однотипных объектов? И еще и создает сам эти объекты?
ObjectFactory? А как нибудь человечнее? Тем более что он не совсем сам создает эти объекты, а делегирует процесс создания другому классу.
Ссылку на задачу или не было.
С таким описанием токо ObjectFactory, сорян.
Ебать ты лох.
SozdavatelObjektov, ochevidno je.
ObjectBuilder, ObjectHandler, ObjectProcessor, ObjectManager, ObjectWrapper, ObjectOfObjects
AbstractObjectFactoryProxyList
У тебя пиратский баш.
Спасибо антош.
1. Это формат принта второго питона, в самом питоне к переменным не по % обращаются.
2. Я спрашивал про баш. Дважды. Раз ты линуксоид, ты мог написать mv script.py script.pyt, но ты выдумал какой-то адский велосипед с процентиками в стиле cmd.exe и cловом "переименовать". В баше кстати по $
3. Ну и да,
>2015
>python2
проиграл со всей беседы
Я только ангуляром пользовался, только его и могу посоветовать.
Питон контрамота-лиспобляди.
Инденты в питоне определяют область видимости и логические блоки кода.
for bla bla
.. чота делаем
.. break #будет внутри цикла
for bla bla
.. чота делаем
break #будет снаружи цикла, выполнится после завершения, но т.к. цикл уже закончился - выходить не от куда - пошлет нахуй.
В остальных языках на это можно забить, но в питоне это обязательная часть синтаксиса, чтобы такие как ты учились и не писали все подряд на первом уровне индента как на пикрелейтед. Потому что иначе хуй поймешь.
Тенденция реалтайм переносить на контроллеры и общаться с ними из-под линукса.
Для маминого хекки это пиздос как утомительно. Я уже жалею. Не надо было ничего делать.
Что за проект? Давно программируешь?
Можешь без ссылок если дианон-лигивон, на словах. Реально полезных опенсорс проектов за историю сосача и кодача было 2.5 пожалуй, а то и меньше.
Деанон по гитхабу моментальный, лол, тоже об этом жалею.
Проект - ничего интересного. Украл взял старую заброшенную линуксовую поделку, переписал, обновил с учетом всех модных изменений в линуксах, добавил мелких фич и красивенькую морду, вбросил на реддит. Таких возможностей по обновлению еще навалом если копнуть. Просто клад какой-то.
Спасибки
PyCharm
PYCHARM
пучарм конечно же
http://blog.asidorov.name/2013/09/jetbrains-pycharm-27-ide-python.html
(Работает с последней версией)
по идее должно все работать, даже незнаю, я темы не устанавливал - мне хватает дефолтных.
Насколько уместно делать сайт на питоне? Это вообще реально? Если реально - какие плюсы и минусы по сравнению с другими вариантами, типа пыха?
Сайт без йоба нагрузки, обычный сайт для компании.
я твою маму ебал.
пыха хуиха, нахуй катись, дятел.
Да, питон используют в многих крупных проектах как бэкенд.
Изучаешь питон, осваиваешь джангу и делаешь сайты. Можно ещё фласк, но вакансий мало, зато для небольших сайтов ничего лучше нет, на своем опыте скажу. Курсы кодеакадеми за 1.5 дня + книга-гайд по фласку на 150 страниц + хтмлакадеми и можно делать.
Это конечно если тебя не воротит на фронтенда, от жс, от хтмл с ксс, от бутстрапов всяких, вот от этого всего. Меня воротит.
vim+jedi
С кодом у меня все ок, спасибо. Я вижу ответа на вопрост у тебя нет, только пиздеть в состоянии - типичный сосачер. А чтоб код писать, нужно сперва сделать так, чтоб его было писать удобно и приятно.
Хочу нейроинтерфейс. Как в каменном веке руками работаем.
И вытекающие глаза, от пяления в монитор, на черные буквы на белом фоне 5+ часов? Иди наааахууууй.
https://www.udacity.com/course/full-stack-foundations--ud088
https://www.udacity.com/course/developing-scalable-apps-in-python--ud858
https://www.udacity.com/course/web-development--cs253
Можешь пройти эти + вступительные по питону, ну и кодеакадеми. Потом перекатывайся на джангу и делай дальше.
Ты задавал его не мне, поэтому я и не отвечал. Вопрос, если честно, дебильный. Анона выше утомляет пердолинг в фронтендом, вот и всё, поэтому он намекнул что если тебя это утомляет как и его, то не хочешь ли ты делать что-то другое, а не сайты. Как-то так пожалуй.
А по делу - пиздуй учить питон, вопросы он тут задает. Можешь и пхп, разница ровно нихуя, но питон не превратит тебя в такого говнокодера как пхп. Строже, проще, можно писать под все платформы, простые кодестайлы, тонны литературы для нюфаков
Да никак не связано, тащемта. Просто он говорит что типа все так легко, просто взял за 1.5 дня и запилил. А на самом деле не легко, ведь надо преодолеть рвотные позывы при работе с фронтендом. Там та еще свалка копротехнологий, бэкэнд сказкой покажется.
>если тебя это утомляет как и его, то не хочешь ли ты делать что-то другое, а не сайты.
Блин, я уже хуй знает сколько лет на C++ пишу, от драйверов до машинного зрения. Мне нужен сайт для собственного наебизнеса и все, а питон просто удобен для прототипирования матана, поэтому хочу, делая сайт, еще и в нем прошариться заодно.
За полтора дня освоил. А делать он будет дольше, Лутца то можно и за вечер прочитать, но без практики это нихуя не стоит, поэтому и говорю - учишь базу и вперед, только практика, только хардкор, только стаковерфлоу и тупые вопросы. Добра.
Ааа, епта. Я то думал ты нюфак очередной извиняй, кек. Ну смотри, если тебе по книгам удобнее там, вечерок почитать. Я бы взял Dive into Python на твоем месте, потом глянул мануал по джанге и всё сделал.
Да, с фронтендом будет геморрой, потому что там обычно начинается дрочево и всё криво. В JS треде есть Фленегана книга, она в целом отличный справочник, скачай и по ней смотри что и как.
Ну, с таким набором думаю всё без проблем сделаешь. Можешь конечно чисто через документацию, но мне например обычно проще прочитать книгу какую-то за вечер, а потом сразу за дело понимая в целом язык и его возможности.
Можешь и на PHP, но там веб онли всё таки, но будет наверное даже быстрее на каком-нибудь Yii.
Алсо, да, для сайта попроще есть flask.
Короче мне нужно что-то, чтобы быстро въехать в веб-разработку с моей базой, а не сидеть эти нудные лекции слушать или хз чего там на курсерах.
HTML, CSS я представляю что такое, делал плагин для браузера.
Какие проблемы с совместимостью - хз.
> с фронтендом будет геморрой, потому что там обычно начинается дрочево и всё криво
Там - это где? Во фронтенде в принципе или это как-то с питоном связано? Я так понимаю, что фронтенд от выбора бекенда никак не зависит - везде тот же самый HTML и JS. Или на питоне это все скрыто за какими-нибудь фреймворками и т.д.?
>В JS треде есть Фленегана книга, она в целом отличный справочник, скачай и по ней смотри что и как.
C JS я уже сталкивался ранее, разберусь наверное на ходу.
Какие плюсы и минусы у питона в бекенда по сравнению с тем же пыхом?
>>531185
Ну смотри, посоветовали тебе правильно.
По HTML/CSS тебе нужен CSS: The Missing Manual, там всё есть. Если сайт интерактивный, нужный перделки на JS тупой вопрос, конечно нужны, то Фленеган ОК. Не хочешь тратить на всё это говно время, а сразу за работу - тебе нужен htmlbook и MDN. Там просто охуительнейшая документация с примерами по всем вопросам. Чтобы не изобретать велосипеды и тратить на это время, бери Bootstrap и JQuery, чтобы без лишней траты времени всё сделать сразу.
По Python смотри dive into python, если что-то поменьше и чтобы за часик, то byte of python. Если совсем мелкое - то документация.
По Django - официальный мануал. Он в целом ОК и даст всё что надо. Тут ещё писали про его альтернативу, Flask. Так вот, Flask это микрофреймворк очень клевый. На нём ты сможешь быстро реализовать сайт, не тратя время на всякую магию джанги и поиски нужных решений. Годнота, глянь документацию, он простой как пробка.
Там буквально на ходу чтения документации питона и фласка сможешь набросать простенький сайт, а дальше уже навешать перделок. Ну и потом сделать весь бэкенд нужной тебе сложности.
Про плюсы и минусы? Я бы не сказал что пых чем-то хуже для веба или лучше. Он просто популярнее, поэтому больше всяких CMS, фреймворков и других радостей. Синтаксисы всюду съедобны, особенно после С++ то лол, так что выбирай что больше нравки и пригодится. Всё таки питон скриптовый язык который можно всюду применить, а пхп весьма ограничен в этом выборе. Я бы лучше потратил время на змею, полезнее будет. Ну и да, если тебе интересны всякие машин лернинги и бигдаты, то тут уж точно питон идеально подходит.
Надеюсь помог.
>то тут уж точно питон идеально подходит
Вот поэтому его и выбрал, лол. Вопросы про пых просто для общего развития были.
Еще такой вопрос. У меня был когда-то скачанный сайт на пыхе, там был веб-сервер апач. Для .net есть IIS. А что выполняет роль веб-сервера для питона?
И еще поясни за хостинг. У меня тот сайт стоял прямо на компе с апачем у провайдера и там все было просто, а про внешний хостинг я вообще не знаю ничего. Зависит ли выбор хостинг-провайдера от языка реализации бекенда? Какой дается доступ к машине?
Заранее извиняюсь за дебильные вопросы.
Обычно берется впс с линуксом и ssh для доступа. Дальше у тебя полнейшая свобода действий, любой веб-сервер, любой язык бекенда, любой фреймворк.
Просто скопируй папки colors и fonts в C:\Users\username\.PyCharmверсия\config.
Что касается flask, то он использует встроенный WSGI, т.е. тебе ничего не нужно устанавливать.
> Просто скопируй папки colors и fonts в C:\Users\username\.PyCharmверсия\config.
Спасибо, в принципе все работает, правда settings файл я так и не применил, незнаю куда его положить, да и нужно ли.
Как глаза потекут будет знать.
Я только поставил пиШарм, нехуя еще не пердолил, все что я делал пока что - это подбирал тему, чтоб глазам было приятно. Посоветуй шрифт, рас ответил.
Ок, ка мне теперь его впердолить в сишарм?, я смотрю оно шрифты берет из себя самой а не из системы.
Не знаю, у меня вим.
> C-o-n-s-o-l-a-s
Да это там есть, единственный нормальный блять.
Поставил нормальные шрифты - пиШарм их не видит, все другте системные шрифты видит, рукалицо блять. Что то я уже заебался с ним, на первый взгляд нормальный инстркмент, а на дели все гвоздями приколочено и костыль на костыле.
0/10
Открывается при open, пишется в буфер энного размера (io.DEFAULT_BUFFER_SIZE), по переполнении которого идет flush на диск. Повторить до бесконечности. При закрытии тоже flush.
https://docs.python.org/3.4/library/functions.html?highlight=open#open тут все написано.
Да, забыл. Закрывается только явно с file.close() и неявно с with open. Все остальное время файл держится открытым, посмотреть кто держит файло открытым можно например с /usr/bin/lsof ./logfile
Ну подкинь пару идей.
vim
Как при изменении размера окна адекватно масштабировать нарисованное? Есть какое-то свойство, которое я не вижу или нужно руками делать ресайз ивент в котором пересоздать каждый элемент под нужный масштаб?
Пикрилейтед.
ValueError: unknown url type: '/searchTerms/…
fromlxml.htmlimport*
importurllib.request
headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;rv:39.0)Gecko/20100101Firefox/39.0'}
req=urllib.request.Request('http://search.disconnect.me/',None,headers)
page=fromstring(urllib.request.urlopen(req).read())
page.forms[0].fields['query']='python'
result=parse(submit_form(page.forms[0])).getroot()
С меня как обычно.
Посмотри чужой проект, в котором всё работает. Что как маленький?!
ipython
Это терминал просто
Спасибо
А в sqlite есть блокировки или что-то подобное? Меня просто останавливает то, что есть вероятность одновременной записи/чтения.
https://www.sqlite.org/lockingv3.html
Лучше sqlite для этого не используй. Данные то может и целостными будут, а вот тормоза могут быть.
И вообще когда ты юзаешь django с sqlite это может привести к проблемам всяким. Дохуя функционала не поддерживается на уровне бд и эмулируется в питон коде - связи, контроль целостности и т.п. Даже типа данных в sqlite есть только text и int, остальное эмулируется.
Например у меня есть сайт с sqlite его на другую бд уже так просто не переведешь - дохуя ошибок всяких вылазит.
Юзай постгрес.
У постгрес намного больше фич и производительность сейчас лучше. Я код качественней судя по автоматическим тестам всяким.
Мускуль имеет смысл брать если ты очень хорошо знаешь его особенности и поведения и умеет оптимизировать под мускуль всё имхо.
> И да: смогу ли я использовать разные орм для одной бд?
Да, почему нет. Ты можешь и django orm/модели использовать со своим демоном тоже.
Можешь sqlalchemy какой-нить прикрутить.
Если тебе понадобиться серьезно тюнить postgres вот ссылка http://postgresql.leopard.in.ua/
Спасибо большое, пойду кодить :3
Если ищу в листе "new" то пропускает букву "О" а если в строке "text" то всё ОК. По сути функция должна гласные удалять из строки
Бампну, пожалуй.
Потому что ты проходишь по списку, из которого удаляешь. Либо проходи по копии, либо итерируй с конца.
Не надо изменить список ходу итерирования по нему.
Если ты напишешь for x in list(new):
То всё будет окей.
А вообще
return ''.join(x for x in text if x not in 'aeiouAEIOU')
Или
import re
re.sub('[aeiouAEIOU]','','testeeOO')
https://ideone.com/9u0NKt
Идя сначала мы удаляем элемент, изменяем len, упускаем из итерации n элеменов, которые удалили. Пилим сук на котором сидим.
Идя с конца мы уже идем со стартового, максимального len до нуля, и удаление нам ничего в итерации не ломает. Пилим сук перед собой.
А с копией листа можно соснуть если он оче большой.
//Хуле ideone так лагает?
Твой пример кода хуев.
Во-первых ты итерируешься по range то есть по копии l во втором случае
Во-вторых, range создает список с нуля по len(l) а l у тебя с еденицы.
Это я вижу. В книге просто был написан этот ключ
Собственно этот гуи это хуйня, которая просто предлагает тебе открыть браузер.
pydoc.py -b
делай
ключ -b открывает локальный файл этот в браузере.
Да я уже понял. Просто интересно чего это у меня нет такой опции.
Вот такой вот интерфейс был в книге.
>ты итерируешься по range то есть по копии l во втором случае
>по range то есть по копии
Чего несешь, ебанутый? Во втором случае копия листа НЕ делается. Делается список с индексами, с циферками от нуля до len(l)-1, потом на него кидаем реверс и идем от len(l)-1 до нуля, удаляем из листа по индексу. Такой список в дохуя раз легче чем копия листа из которого удаляем. Там хуй знает что может быть, сотни сотен данных.
>l у тебя с еденицы.
Какая нахуй разница с чего начинается l? Я на рандом вбил, ну вбей туда буковки, нихуя не изменится.
> Во втором случае копия листа НЕ делается. Делается список с индексами
Тогда и итерируйся в первом случае не по l а по списку с индексами.
И будет однохуйственно
Походу тогда выпилили они это gui, ибо учебник по ранней версии 3-го
Эмм ну да в данном случае да.
Но вообще это хуевая идея удалять элементы из списка по которому как-то итерируешься. Лучше уж тогда что-то типа
while l: dosomething(l.pop())
Ну по сути мы итерируемся не по листу который меняем, а по его индексам, которые в отдельном листе даже не в листе, а "в" range, он не отдает листов. И если идти с конца то Все безопасно, размер листа меняется вместе с итерацией по листу индексов или не меняется вовсе и не может быть <i.
А обходить лист через while как-то странно, а если еще не до пустого листа то бряки всякие ставить надо, иначе бесконечный цикл. Геморрой. Я обычно через такую обратную итерацию делаю.
>>532171
С remove не покатит, он по value, а мы по индексу удаляем. Но суть близка жи.
Вообще while True и break где-нить довольно часто попадается в коде. Иногда это удобней.
grepнул /usr/lib/python - 654 раза while True попалось.
Ну так то для других целей норм, а не для обхода листа. Мы то обходим. Длина листа известна, количество итераций чтобы его пройти равна его длине, каждый элемент смотрим один раз. Зачем там while true? Путает читающего только.
Ну while lst: lst.pop()
для обхода листа вполне норм если лист у нас что-то вроде очереди - надо доставать оттуда элементы убирая и обрабатывая.
Ну лан, может быть. Надо на конкретную ситуацию смотреть, но на скриншоте у того анона я бы таки сделал обратную итерацию по индексам.
>range создает список
2015 на дворе, а они всё списки создают для итераций. Да и вообще, 50% что на скрине третий, а значит никаких списков range не создаёт.
Не придирайся к словам, в данном контексте это не важно.
help. Pycharm наебнулся. любая прога кончает с надписью в консоли Process finished with exit code -1073741511 (0xC0000139).
гуглъ не помог. новыйпроект вклвыкл комп и т д не помогли. щито
Семь бед — один ресет
Пришло время.
class RegistrationForm(forms.ModelForm):
password1 = forms.CharField(label="Пароль",
widget=forms.PasswordInput)
password2 = forms.CharField(label="Подтверждение пароля",
widget=forms.PasswordInput,
help_text="Введите пароль еще раз")
class Meta:
model = models.User
fields = ('username', 'email', 'first_name', 'last_name')
def save(self,commit = True):
user = super(RegistrationForm, self).save(commit = False)
user.email = self.cleaned_data['email']
user.first_name = self.cleaned_data['username']
if commit:
user.save()
return user
Print debug в помощь. Узнай сколько раз и с каким commit вызывается твой save. Узнай что такое этот user, не факт что это модель. Ну и в конце концов лучше не выёбываться и сделать по туториалу.
form = PartialAuthorForm(request.POST)
author = form.save(commit=False)
author.title = 'Mr'
author.save()
Во-первых, у тебя нет ни одного инстанс атрибута нет, всё классовое. Так и задумано? Во-вторых, как ты вызываешь супер с RegistrationForm в качестве аргумента если Meta не является подклассом этой самой формы? Как это вообще не крешится? В-третьих, судя по формату супера, ты используешь второй — а это значит, что от object наследуй классы, а не просто "class Meta:". Вангую, что сейв ни разу не вызывается. Да и где он, собственно, вызываться-то должен?
Уже весь гугл стёр, хер знает что делать.
Ты ожидал от российского ойти-образования чего-то другого? Хорошо что питон вообще есть. Обычно это бейсик, делфи и насилу пропихнутый маркетолухами сисярп. По выпуску человек умеет только формочки мышкой составлять и хелловорлды из трех строк писать. А потом такие приходят в зк и шутят про
>мы вам перезвоним
Да ничего я не ожидал, просто хочу табы на пробелы заменить.
Начинаю учить пихтон по вот етому сайту: http://pythonworld.ru/samouchitel-python
Однако, я нихуя не понимаю.
Про какие-то там циклы, какие-то переменные, вообще охуеть.
Есть более удобный самоучитель? Чтобы прям вообще для ламера. А то там, я как понимаю, для тех, кто хоть что-то знает хотя бы по другим языкам.
Или может есть анон, который поможет мне в скайпике с этим? Будет моим наставником так сказать, пока я не начну разбираться в этом.
Попробуй Лутца навернуть. В шапке его книги есть, чувак максимально нудно и долго расписывает.
Антоша, если ты тут, поясню это справочник для тех кто уже гуру в проге и просто хочет освежить в памяти или понять вещи относящиеся конкретно к пистону, или дрочи Лутца или курсы, как тебе уже советовали.
Это копия, сохраненная 15 сентября 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.