Этого треда уже нет.
Это копия, сохраненная 15 сентября 2015 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
77 Кб, 600x484
Python #525512 В конец треда | Веб
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Прошлый: >>519548 (OP)

Слоупокам напоминаю, что в 2020 заканчивается поддержка второго питона и пора бы переходить на третий
http://legacy.python.org/dev/peps/pep-0373/
#2 #525519
>>525488

> прокомментировать экосистему разработки программ для браузера на Питоне/Джанго


Эм, это MVC фрейморк, в php тоже есть подобные, то есть ты пишешь шаблоны, модели вьюшки и т.п. Потом запускаешь uwsgi или fastcgi сервер и наводишь на него nginx. По типу php-fpm или как его. Есть и девсервер для тестирования который одной командой запускается

>Кроме Джанго есть что-то популярное, насколько оно хорошее?


Есть. Хорошее. Но работы больше всего с django

>но удобные инструменты для электронной коммерции и платёжных шлюзов


Есть полно.

> И менеджер пакетов?


Есть смотри
https://www.djangopackages.com/
https://pypi.python.org/pypi?%3Aaction=search&term=django&submit=search
Можешь там поискать сразу модули для твоих плалежных шлюзов

> На Виндовс желательно с Питоном через виртуализацию работать, правильно?


Да, но не обязательно. Некоторые на винде сидят.

перепостил т.к. перекат
#3 #525520
>>525512 (OP)
До 2020 ещё дожить надо. Да и подержку продлят я думаю т.к. всё ещё останется дофига легаси кода.
#4 #525523
>>525520
2020 наступит быстрее чем ты думаешь. А потом ты постареешь и умрешь.
#5 #525570
Репостну годноту с конца прошлого треда.
https://github.com/madisonmay/Tomorrow
85 Кб, 1438x320
#6 #525601
Не кидайте хуями. Я нюфаг, вникаю в питон по курсу на codecademy. Почему-то, когда использую raw_input, к элементам списка дописывается u'. В чем дело?
#8 #525609
>>525601
видимо во втором питоне рав_инпут переводится в юникод.
#9 #525610
>>525601
Это означает что строка в unicode(типа unicode)
Если ты сделаешь
print hobbies[0]
То напечатает без кавычек и u. Просто ты печатаешь весь список и тогда выводится его repr
81 Кб, 1427x308
#10 #525613
>>525609
А если просто выводить, не добавляя в список, то все норм
>>525610
Похоже на то.
7 Кб, 320x138
#11 #525616
>>525613
Смотри.
Когда ты делаешь
print list
он вызывает метод __str__ у list. У list этот метод возвращает квадратные скобочки и repr() от каждого элемента через запятую.
Для юникод строк этот repr выглядит как u'строка'
#12 #525618
>>525613
Алсо попробуй сделать

print '; '.join(hobbies)
#13 #525619
>>525616
Ок, прочитаю про это
>>525618
Ага, так все норм, спасибо.
#14 #525622
>>525570

>https://github.com/madisonmay/Tomorrow


Просто обкончался с проекта. Люблю такие няшные микро-библиотеки.
20 Кб, 1097x440
#16 #525665
Вот что значит на работу устроился.
#17 #525669
>>525665
Никуда ты не устроился кому ты пиздишь.
#18 #525674
>>525519

Спасибо. Еще раз перепощу сюда тоже:

>Ребята, писал на PHP/Laravel, появилась возможность перелезть на Python/Django (в том числе и потому, что работы нет, везде на серверной стороне Битрикс через Битрикс Битриксом погоняет), но я немного испугался того, о чём совсем не знаю. Можете просто как-то прокомментировать экосистему разработки программ для браузера на Питоне/Джанго и осмысленность такого перехода? Кроме Джанго есть что-то популярное, насколько оно хорошее? Вопрос, наверное, риторический, но удобные инструменты для электронной коммерции и платёжных шлюзов, разумеется, тоже в наличии? И менеджер пакетов? На Виндовс желательно с Питоном через виртуализацию работать, правильно? Vagrant-бокс с Питоном и Hyper-V существует популярный?



>Извиняюсь за вопросы, которые мог нагуглить, просто попробуйте ответить сходу на что-то, пожалуйста, а чего не увижу, потом просто загуглю. Спасибо!

#19 #525687
Реквестирую годные материалы по теме asyncio, корутины, вот это все. Документация официальная что-то унылая.
#20 #525761
Хули пик такой страшный? Надо было что-то поняшнее.

>>525674
На фласке.
66 Кб, 640x334
#21 #525765
>>525761
Двачую аж вспомнился пикрелейтед.
#23 #525767
>>525761
ЕТО ТЫ СТРАШНЫЙ, НА ФОТКЕ ВИЛЕКОЛЕПНЫЙ ЗМЕЙ
(НО ЯЗЫК ПИТОН ВСЕ РАВНО СУПЕРГАВНИЩЕ)
#24 #525768
>>525660
А теперь перепиши на qt вместо tk.
#25 #525770
>>525767
А вот и местный шизик в тред пожаловал.
58 Кб, 1366x732
#26 #525773
Скоро буду писать на фласке.
#28 #525778
>>525773

>ravno


Yasno.
#30 #525781
>>525774
>>525778
Blia idite nahuj.
#31 #525782
>>525781
Ponyatno)))
#32 #525784
>>525782
Yasno)))))))))))
#33 #525789
)))))))))))))))))))))))))))))
#34 #525803
>>525761
А мне нравится, он весь такой РАДУЖНЫЙ, как бензин. Сейчас модно быть РАДУЖНЫМ.
#37 #525840
>>525839
хули он не па русски пиздит
#38 #525841
>>525840
Чурка ебаная потомушто
#39 #525848
>>525839
Гвидо подтвердил что поддержка второго говна продлеваться больше не будет. 2020 - все.
#40 #525850
>>525848
его никто не спрашивает.
python2 Это энтерпрайз.
#41 #525852
Это можно украсть бесплатно без смс?
http://www.ozon.ru/context/detail/id/31249592/
#42 #525853
>>525850
Твой легаси ынтырпрайз будет сам развивать вторую ветку?
#43 #525854
>>525852
Можно, разрешаем.
#44 #525870
>>525848
на счёт троечки там вообще уныние полное было. гвидо в ходе выступления такой типа, а поднимите руки кто троечку в проде использует, и я там чуть ли не один вообще во всём зале был
#45 #525883
>>525870
Ай, не пизиди, был он там!
#46 #525895
>>525768
Нет. На Qt что-нибудь другое, когда-нибудь, если будет время.
#47 #525897
>>525839
ГВИДО ЮЗАЕТ И ЕМАКС И ВИМ, ШОК-СЕНСАЦИЯ
#48 #525898
>>525895
У тебя всегда будет время потому что ты никому не нужны хиккан.
#49 #525900
>>525852

>2495.00 руб


Нихрена себе цена, надо срочно книжку писать.
#50 #525903
>>525898
Кому ты пиздишь? На этой доске только успешные разработчики от 500к$.
#52 #525989
>>525979
Какой вопрос такой и ответ.
#53 #526031
Загрузил пакет в PyPI. Страница пакета появилась, но через pip install он не ищется. И через поиск по сайту тоже. Это нормально и он позже появится или я накосячил где-то?
169 Кб, 1906x934
#54 #526040
Поцаны у меня твиттер бутстрап (Flask-bootstrap) перестал работать во всех браузерах. Например сайт http://blog.miguelgrinberg.com/index выглядит так. В чем проблема?
#55 #526043
>>526040
У меня все работает. Какой-нибудь носкрипт режет?
#56 #526048
>>526031
Разобрался. Оказалось, что после регистрации проекта нужно еще создать его дистрибутив и залить его, лол.
#57 #526057
>>526043
Все плагины отключены. У тебя какой браузер? Есть подозрение что виновата во всем yota, так как вчера вечером у меня перестал работать их днс сервер и заработал только сегодня днем.
#58 #526066
>>526057
Единственный нормальный, ФФ.

>днс


Пропиши 8.8.8.8 жи.
#59 #526073
>>526066
Уже пробовал, но он все равно йотовским.
И такая проблема на всех устройствах подключенных к йоте. При этом через анонимайзер все работает как надо.
#62 #526150
>>526128
1. У тебя акселераторы повторяются. Например для Правка и Помощь один - П
2. Нету popup-подсказок при наведении на значки. Я хуй знает что пустой квадрат должен делать, и он не говорит.
3. Как включить нумерацию строк? Вид-нумерация - не активно.
#63 #526153
>>526128
4. И ТАБЫ запили.
#64 #526227
Написал небольшой пакет для отложенного выполнения функций после сигнала с клавиатуры (т.е. после нажатия Ctrl-C).
Скачать можно через 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
15 Кб, 843x527
16 Кб, 843x527
#65 #526247
>>526150
1. Ну, соррь, тупанул чёт.
2. В tkinter их изначально нет, надо костыли городить.
3. Нумерация работает только в режиме "Перенос по ..." --> "Без переноса".
>>526153
4. Сначала запуск питон скрипта, потом табы.
#66 #526248
>>526227
А нахуя оно? Можно же просто завернуться в try except KeyboardInterrupt.
26 Кб, 1318x249
#67 #526251
Это что блядь за хуета?
#68 #526252
>>526251
Настало время переустановить шиндовс.
#69 #526267
>>526227
Вот ето свежисть, вот ето новезна!
https://docs.python.org/3/library/atexit.html?highlight=atexit#module-atexit
#70 #526270
>>526227
Бля, ты даже не pypi это говно принёс. Ну будьте людьми, не уподобляйтесь js-макакам!
#71 #526272

>136 downloads in the last day


Интересно. Везде боты что-то тянут. Подозреваю что хайринговые конторки.
#72 #526306
>>526227
Ты гоблядей наслушался чтоли? defer это бесполезный костыль.

with f = open('HelloWorld.txt'): s = f.read()
#73 #526309
>>526306
Ой бля не тот язык сорри.

with open('HelloWorld.txt') as f: s = f.read()
#74 #526470
>>526248
Можно, но так красивей, мне кажется.
>>526267

>Вот ето свежисть, вот ето новезна!


Ну, да, велосипед. Но это норма, лол.
>>526270

>Ну будьте людьми, не уподобляйтесь js-макакам!


Ну, это, наверное, зря. Хотел попробовать что-нибудь на pypi закинуть. Но никакой полезной идеи в голову не пришло.
>>526306
Про with я знаю, но это не совсем то. И гошный defer, кстати, довольно удобный.
#75 #526561
господа, дико извиняюсь за платину, но поясните плез,
что надо для девелопа джуна питона?
сейчас осиливаю байт оф питона очень нравится, но этого ведь недостаточно жеж
#76 #526571
>>526561
1) Разработчики на питоне не нужны
2) Разработчики на питоне никому не нужны
3) Вроде как нет единого стандарта квалификации, потому что уровень знаний в шарпе стандартизирует MS, например, уровень знаний в жабе -- оракл, а по питону экзамены никто не проводит, как-то так получилось
4) Если ты-таки сумеешь отыскать вакансию, там будет знание Django, инфа сотка / к гадалке не ходи / отнесите мои слова в банк
#77 #526578
>>526571
вакансия отыскана, но там нихера не пишут про джангу, а просто мол "знай петон" и все.
но по остальному понятно что веб-шмеб
настоящая мистика
#78 #526580
>>526227

> def is_empty(self):


> \t\treturn self.items == []


Тоже недавно разгребал js говнокод…
#79 #526581
>>526580
Не спорю. Можешь сказать, почему это говнокод, и как нужно было сделать в этих случаях?
#80 #526608
>>526581
Всё что делает 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 оборачиваются в процедуры, а сам он как бы подразумевается синглтоном.
Зачем тогда он был нужен?
#81 #526635
>>526581

> и как нужно было сделать в этих случаях?


Как то так:
http://pastebin.com/3d8psxYw
#82 #526664
Аноны, собираюсь обмазаться питоном, для руби например в качестве ОС лучше юзать юникс системы, а под питон? Вин или юникс?
#83 #526676
>>526664
Линукс/макось, да. Иначе будешь не язык учить а ебаться с проблемами.
#84 #526916
Почему нельзя выкинуть гил и сделать как в каком-нибудь Го? Все вокруг да около танцуем, асинхронность, мультипроцессинг, хуйта всякая. Четко и ясно давайте.
#85 #526920
>>526608

>None object is not callable ;)


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

>Зачем тогда он был нужен?


Ради возможного расширения в будущем. Но в большей мере потому что я плохо ООП чувствую, где нужен класс, где нет. До этого на гошечке писал (да и продолжаю), а там классов нет, только стракты и методы к ним. Вот я и пытаюсь классы как простые стракты использовать. Зра, наверное.
В общем, переделаю все. Спасибо за критику.
#86 #526964
({a,b}, {e,d}, {a,e}, и так далее и тому подобное )
нужно объеденить пересекающиеся сеты
получить нужно вида {a,b,e,d,c}
проблема для меня в том, что первый и второй непосредственно не пересекаются, поэтому последовательным объединением решить не могу
#87 #526968
или вот еще вопрос:
если я в таком виде прохожу, скажем, по листу, то на самом деле я ведь прохожу не по самому листу а по копиям незаметно сделанным специально для итерации и таким образом не выходит сделать изменения собственно в оригинальном листе.
Все ли я верно понимаю и что делать?

for i in list_1:
....for j in list_1:
........if i==j:
............i+='abumudak' # у меня не работает
print(list_1) #выводит оригинальный лист без изменений
#88 #526979
>>526635
Тоже говнокод.
>>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 так-то неправильно. Явно же не ок нихуя.
#89 #526989
>>526916
Потому что гил значительно упрощает интерпретатор. Честная мультитредность штука вычислительно дорогая, а питон итак медленный.
Ну и есть PyPy в котором пилят STM, там уже всё без гила. Субъективно работает действительно живее, раза в 2-3, за счёт jit, но заметны сборки мусора, в итоге что-то вроде жабы получится. Если не смущает привкус жабы, то жди @ помогай напиливать. Запиливали ещё stackless, вроде бы тоже избавление от гила, только на существующей кодобазе cpython, но что-то интерес потеряли. Наверное нахуй никому оно на самом деле не нужно. Всем срать на гил.
#90 #527013
>>526979

>1


В этом случае у обычный лист можно использовать. У его методов pop и append тоже временная сложность константная. А в начало мне записывать/удалять не нужно.

>3


Это так, но тут предполагается, что в коде нет других обработчиков сигналов. Можно это прописать в README.

>4


На виндоус я и не рассчитываю, не вижу смысла - это как писать версию мобильного предложения под виндофон.

>5


Выход из программы по Ctrl-C - это вполне обычно дело, разве нет? Много где используется именно с тем смыслом, что все ок.

>2


А вот это правда, и тут нечего сказать. Наверное, действительно зря полез в байтоебство, да еще и с питоном, который не для этого. Даже не знаю, что делать. Хочется написать что-нибудь более практическое, чем учебные реализации структур данных и алгоритмов, но ничего в голову не приходит. не борду же очередную пилить.
#91 #527020
>>526964
Тебе 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]]
#92 #527025
#93 #527026
>>527013

>не борду же очередную пилить.


А почему бы и нет. Хороших борд ровно 0.
#94 #527027
Этот чувак очень интересно рассказывает. Офигеть.
http://www.youtube.com/watch?v=EiOglTERPEo
#95 #527049
Так, посоны. Вроде на asyncio как бы даже сервер делают. Значит ли это что он подходит для задачи "качать файлы из интернета и записывать их на диск"? Если да, то хоть какую подсказку дайте как записывать файлы. Как качать более менее понятно.
#96 #527051
>>527049
Ты думаешь твой интернет канал быстрее твоего диска?
#97 #527055
>>527049
А в чём трудность?
#98 #527057
>>527020
про циклы ясно

Нужно складвать пересекающиеся сеты до тех пор пока не останется пересекающихся
({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})

Чтото мне подсказывает что это можно сделать в одну строчку, без ебли с итерациями.
#99 #527075
>>525512 (OP)
В связи со значительно улучшившейся работой замечательной проги 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 теперь просто заебательская и никаких вылетов на середине вроде бы больше нету.

Заранее спасибо!
#100 #527076
Не туда ссылку кинул http://www.avidemux.org/admWiki/doku.php?id=tinypy:gui быстрофикс*
#101 #527081
>>527075
Без понятия, как именно там работает 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? Проще говоря, как реализовать то, что я посоветовал выше через генератор списков?
#102 #527082
>>527081

> exts = ['avi','mp4','wmv']


> filelist = []


> for ext in exts:


> filelist += get_folder_content(folder, ext)


Да, спасибо, заработало!
#103 #527088
>>527055
>>527051
Да я не совсем понимаю как результаты этих корутин получать. С самой библиотекой не разобрался еще.
#104 #527089
Visualize CPython development since 1990
https://www.youtube.com/watch?v=tZVG57xFwMk

Красивенько
#105 #527091
Посоны, четко модель для джанги определил или надо как-то по другому?
http://ideone.com/CgTBjo
Я думаю, из кода понятно что она делает.
#106 #527095
>>527091

Нахуй classmethod? Доп запрос жи.
А даже если через classmethod, то можно через filter и update, шобы один запрос был:
...filter(pk=pk).update(F('popularity')+value)
#107 #527096
>>527091

>F('popularity') + value

#109 #527098
#110 #527100
>>527098
У тебя скобка не там стоит.
#111 #527104
>>527097

Нахуя ты это линканул?

Там же дальше даже написано юзать update, чтобы не делать лишних запросов.
#112 #527106
>>527081
sum([func(x) for x in some_list],[])

from operator import add
reduce(add,[[1,2] for x in xrange(5)],[])
#113 #527120
>>527081
my_list = [y for x in some_list for y in func(x)]
92 Кб, 607x670
#115 #527131
>>527130
отступы
150 Кб, 1023x767
#117 #527133
>>527131
Уже смещал "by_three()" вправо всю
#118 #527134
>>527133
Во-первых, на вторую строку посмотри, а во-вторых — нахуя ты весь код вправо один таб подвинул?
#119 #527136
Вот именно поэтому надо начинать с питона. Сразу шишек набил и понял пока нет как правильно. А иначе он бы до синьора писал как говно.
43 Кб, 638x720
#120 #527139
>>527134
Спс. Вообще эти задротства с отступами чуть раздражают
#121 #527143
Как в джанге добавить файл в модель с полем FileField из памяти? Например, я помощью urllib скачал что нибудь прямо на сервере и хочу добавить в бд. Но если я сохраню файл на диске, то джанга еще его перетащит в свою MEDIA_ROOT директорию. А копировать сразу в джанговский путь не очень надежно как я считаю - можно же ошибиться и записать не туда и опять будет копирование. Нужна помощь.
#122 #527144
>>527100
Опа. Спасибо.
#123 #527148
>>527139
Ну и соси тогда, ёпту.
#124 #527149
>>527143
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.
#125 #527152
>>527143
Но вообще сама джанга большие файлы при загрузке пишет в /tmp и оттуда уже перемещает в MEDIA_ROOT потом. Если она делает mv, и это одна файловая система это моментальная операция.
Вот ещё ссылка по теме
http://www.revsys.com/blog/2014/dec/03/loading-django-files-from-code/
Просто делай так как там, не парься.
#127 #527155
>>527088
Ну так это и спрашивай тогда. Вот я тебе накалякал тут примерчик, может поможет: http://ideone.com/jWM9r9 (лучше скопируй и локально запускай, чтобы риалтайм — наглядней)
Time-consuming task, очевидно, будет скачивание файлов. Правда, почему бы не записывать в файлы сразу же в корутинах? Тогда и результат корутин не нужно получать. Там ещё asyncio.Future() для этого, в принципе, есть (включая проверку на завершение корутин, я так понимаю).
93 Кб, 540x747
#128 #527156
>>527148
Нет, ты
#129 #527157
>>527156
Ну и зачем тогда тебе питон, который любят за отступы? Тебе в пхп тред какой-нибудь.
#130 #527160
>>527157
Насколько я знаю за хуево расставленные отступы даже пхпшников пиздят.
#131 #527161
>>527160
Но там на них можно забить хуи и говнокодить как душа пожелает!
#132 #527168
Хуесосам не нужны отступы и оформления кода вообще.
#133 #527178
>>525767
Шёл бы ты отсюда, петушок.
#134 #527181
>>527139
Ёбушки-воробушки. Никто в здравом уме сам отступы не расставляет. Будешь каждый раз таб херачить или 4 пробела считать что ли? Не нужно быть таким упоротым. Возьми нормальный редактор кода, например Sublime Text. Он сам будет отступы расставлять и не нужно будет париться вообще на счёт их.
97 Кб, 1959x1959
#135 #527205
>>527157
Или в рубитред.
#136 #527220
>>527181
Или PyCharm.
#137 #527221
метод это функция класса
вот че надумал
#138 #527278
>>527149
>>527152
>>527153
>>527155
Спасибо, ребята.
#139 #527299
>>527278
Пошёл нахуй!
#140 #527376
>>527132
Блять, спасибо что не поленился.
То что ты не понял вопрос полностью компенсируется твоей благонамеренностью.
Еще раз, спасибо блять.
#141 #527392
>>527057

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


Обоснуй @ докажи. Рассмотри частный случай, когда изначально все множества состоят из 2 элементов. По сути тогда они задают последовательность объединений для системы непересекающихся множеств, которая нихуя в одну строчку не реализуется.
#142 #527441
Анон, какой линукс начинающему питонисту ставить? Выбираю между Debian и Ubuntu. Или разницы особой нет?
#143 #527442
>>527441
Однозначно убунту, епта.
#144 #527444
>>527441
Разница между ними стремится к нулю. Ну убунта в ппа разве что умеет. И апстарт вместо systemd
#145 #527502
>>527441

>Выбираю между древним говном мамонта и древним говном мамонта из ветки unstable.


Ставь арч или федору.
#146 #527532
>>527441
Десяточку ставь
#147 #527579
В джанге пишу db_index=True, но смотрю базу в другой программе и она пишет, что только один индекс на айди. Почему так? На sqlite у меня все пока.
Алсо, unique=True подразумевает создание индекса?
#148 #527583
>>527579

>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 эмулируется в коде.
#150 #527648
Можете, пожалуйста, подсказать по правилам хорошего кода? Вот у меня есть класс, часть полей инициализируется в __init__, часть в каких-то других функциях.

Pycharm грит, что плохо брать и не упоминать поля в __init__, а создавать их в другом месте. В принципе, замечание логичное, хочется, чтобы все поля были в одном месте.

Инициализировал их None. Но теперь проблема в том, что каким-то полям я присваиваю callable-объект, а потом Pycharm начинает ругаться на "fieldName is not callable", что меня не устраивает.

Так, все же, как принято инициализировать поля объекта класса, а?
#151 #527654
>>527648

> Pycharm грит, что плохо брать и не упоминать поля в __init__,


Почему?
#152 #527657
>>527654
Ну а вот так он говорит, я откуда знаю?
Ну обосновать такие замечания я могу,

>В принципе, замечание логичное, хочется, чтобы все поля были в одном месте.


Но вопрос как раз в том, как это обычно делают
#153 #527658
>>527502
Про что несёшь?! Вообще охуеть!
#154 #527660
>>527657
Нихуя не понятно без твоего кода.
Зачем тебе в какой-то функции прописывать callable объект как поле класса?
#155 #527670
>>527441
openSUSE ставь.
#156 #527743
>>527660
Ну, грубо говоря, есть библиотека (называется theano), которая берет какие-то символьные выражения, оптимизирует их и компилирует в машинный код. Возвращает callable-объект. Именно этот объект у меня хранится внутри экземпляра моего класса. Причем так получается, что нельзя эту функцию построить на этапе инициализации объекта ну можно, конечно, но выглядеть это будет дико

Я понимаю, что полностью подчиняться требованиям IDE не очень правильно, но ведь наверняка все такие предупреждения не просто так же
#157 #527746
>>527648

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

В скрытые методы инициализацию подкапотную вынеси и пучарм перестанет пиздеть, да и сам красавчиком станешь баразарю
#158 #527753
>>527746
Что ты имеешь в виду под подкапотной инициализацией?
Ну, грубо говоря, у меня вот есть нейронная сеть, есть слои нейронной сети, для того, чтобы слой полностью проинициализировать, мне его надо подключить к предыдущему.

Я могу сделать что-то типа Layer3(Layer2(Layer1))), но это выглядит как-то убого. Проще и красивей выглядит такая штука:
network.add(Layer1)
network.add(Layer2)
network.add(Layer3)
network.build(), внутри этой вот фунции я беру, итерируюсь по слоям, вызываю у каждого слоя метод connect, передавая ему предыдущий.
#159 #527760
>>527753

>Проще и красивей выглядит такая штука:


>4 строки хуиты вместо одной простой


Мда.
#160 #527765
>>527760
Ага, а теперь у меня будет 10 слоев, охуенный многострочник получится. Ах, да, я же еще и параметры слоям передаю, вообще заебись будет
#161 #527766
>>527583
>>527584
Спасибо, разобрался.
#162 #527810
Понадобилось тут формочек нарожать (пока вижуал студию качается), решил попробовать этот ваш куте. И вот вопрос - а чем, собственно, всякие PySide и PyQt отличаются-то, что друг на друга люди срут? Из того, что у видел за 10 минут - разница в импорте библотек, а дальше всё одно и тоже: заменил from PyQt5.QtWidget import звёздочка на from PySide.QtGui import звёздочка и пример спокойно запустился.
Так вот, если не видно разницы, то зачем платить больше думать над выбором?
sage #163 #527814
>>527765
layer1 = Layer1(parametry1)
...
layern = LayerN(layerNMinus1, parametryN)
Нет, не хочу, хочу делать абстрактные фабрики композиций слоев.
#164 #527816
>>527810
PySide вперде с 4-й версией Qt. PyQt шагает в ногу с самим Qt, плюс развивает инфраструктуру (pyqtdeploy, всякие обвесы на qt).
#165 #527856
Подскажите годной литературы уровня ммммаксимум эксперт по самой современной версии питона (3+)
Если конкретнее, хочу уметь следующие темы:
√ то, что должен знать каждый питонист
√ все "особо продвинутые" хаки и метапрограммирование
√ как максимально удобно писать в функциональном стиле
√ маст-хев библиотеки, в том числе встроенные

желательно по-минимуму воды и совсем нубской инфы для тех, кто изучает питон как первый язык — это не мой случай.
заранее спасибо :з
#166 #527862
Аноны, а вы дадите рекомендации и критику, если закину чисто учебный проект на Flask?
#167 #527866
>>527856
кукбук.
#168 #527867
>>527866
который?
#169 #527868
>>527867
Самый новый, очевидно же.
#170 #527873
>>527868
а что это?
#172 #527882
>>527880
Я не перехожу по сокращённым ссылкам. Ищи других дураков™
#173 #527884
>>525512 (OP)

>2015


>питон

#174 #527885
>>527882
Ну и соси тогда, ёпта!
#175 #527886
>>527885
Нет, ты!
#176 #527945

>Какой фреймворк юзаете для обвязки rest api? Почему? Преимущества?



Дауны из джяваскрипт треда так и не ответили.
#177 #527958
>>527945
django rest вроде норм. потому что джанга.
есть ещё на flask
#178 #527960
Аноны, есть какой-нибудь годный и удобный сайт с задачками?
#180 #527965
>>527960
А project euler ещё там интересные задачки.
#181 #527972
>>527962
>>527965
Дай Бог здоровья.
#182 #527982
>>527392

>Обоснуй @ докажи


очень может быть, да.
Ну, если так - тоже результат, буду делать как делал.
Спасибо.
#183 #528070
>>527958
А на фронтенде че? Который этот апи и хавает
#184 #528082
>>528070
Это вопрос не в этот тред я думаю. И вкусовщина к тому же.
http://knockoutjs.com/
http://backbonejs.org/
http://facebook.github.io/react/
Можно и ручками на js и через jquery
#187 #528108
>>528088
Всё норм, посаны с доу рикаминдуют. Даже такую ссылку вкидывали.
https://www.facebook.com/notes/andrey-khavryuchenko/how-to-prepare-for-development-carreer-in-42-coffee-cups/10153470495568413?pnref=lhc
#188 #528109
>>528108
фу блять.
гляди на кого ссылку то кидаешь
55 Кб, 540x689
#189 #528112
>>528109
Лол
#190 #528113
Ребят, я написал штуку которая берёт две веб страницы, в них ищет определённые теги и если они есть выводит сообщение. Все бы хорошо, но оно очень медленное, если к этим двум линкам добавить ещё пять то результата я дождусь примерно через 19 секунд. Как оптимизировать?
Код: http://pastebin.com/neyqEnRZ
#191 #528114
>>528113
Треды
962 Кб, 1237x982
#192 #528115
питон у велкоро на телефоне
#193 #528118
>>528109
Так тебе работа или путенвсехпереиграл с долларом по 80 зимой?
Этот хохол анальный учредитель компании куда ты хочешь пойти работать, лол.
#194 #528119
>>528118
Зачем работать на хохла тем более удаленно?
Хохлы ражные будут мало платить, а напрягать дофига.
Перепродают твою работу на аутсорс наверняка всё равно, потому что своих айти проектов у хохлов нет.
Так почему бы напрямую на пиндосов не работать? Тем более знание ангельского и у хохла требуется.
#195 #528120
>>528118
Почему анальный?
#196 #528121
>>528119
Нахуя ты меня об этом спрашиваешь? Дебила выше спроси. Мне в целом похуй на кого работать, хоть на ИГИЛ, главное чтобы платили хорошо.

>>528120
Потому что учредитель и будет ебать тебя в анус. НОЧАЛЬНЕК
#197 #528141
>>528118

>куда ты хочешь пойти работать, лол.


если я тебе молочко с супом сфоткаю, твоя попка выдержит?
Или ты просто воспримешь критику и начнешь адекватно подписывать ссылки, если они токсичны?
#198 #528146
>>528141
Я тебя нихуя не понел. Какое молочко, какой суп, ты ебанутый? Можешь что угодно фоткать, я разрешаю.
Токсичные ссылки у него. Реддитодебил, это ты?
40 Кб, 484x600
sage #199 #528147

>если я тебе молочко с супом сфоткаю, твоя попка выдержит?


Или ты просто воспримешь критику и начнешь адекватно подписывать ссылки, если они токсичны?

Ты сайтом не ошибся?
#200 #528151
>>528147
Может вы разделом ошиблись?
#201 #528159
>>528114
Попробую, спасибо.
#204 #528195
>>528194
Спасибо, но я пока на 2 ветке сижу, как освою её на приличном уровне перелезу на 3.
#205 #528197
>>528194
Для его задачи треды норм. Да чего уж там скорее всего тупо запускать несколько процессов питона норм. Нахуй выебываться.
#206 #528239
>>528195
Сразу 3 осваивай, делать нехуй что ли так распылятся?
#207 #528334
>>528195
Кто тебе подсказал такой глупостью заниматсья?
90 Кб, 669x696
#208 #528501
Вопрос по Django 1.8. Начал осваивать туторы на оф.сайте, делаю всё, как там расписано, но после %переменная%.save() получаю это. Как пофиксить?
43 Кб, 620x349
#209 #528510
>>528501
Вышел из шелла, снова зашёл, проделал те же самые действия. Всё исправилось, хотя я так пытался и раньше это решить.
#210 #528511
>>528510
Спермопроблемы
#212 #528606
>>528599
Я в потере, подскажите
двойные кавычки на одинарные менял
121 Кб, 659x490
#213 #528608
Что за херня? Убрал скобки квадратные и работает. А вот выше и с квадратными скобками норм...
#214 #528609
>>528606

> двойные кавычки на одинарные менял



дурной что ли?

seashel != seashell
#215 #528611
>>528608

> Убрал скобки квадратные и работает



a, b, c == (a, b, c) == tuple([a, b, c])

Видать в задании срать - кортеж это или список
#216 #528647
>>528239
>>528334
У школьников батхерт что они выучили троечку потому что ЦЫФЕРКАЛЬ БiЛЬШЕ а её никто в продакшене не использует и не собирается.
Её только в уроках для студентоты освоили.
#217 #528679
>>528647
Использую 3 в продакшене, где твой дьявол теперь?!
#218 #528680
>>528679
Твой локалхост с бложиком это не продакшн))
#219 #528681
>>528680
Сарян, мимо.
#220 #528682
>>528647
Что твой продакшын легаси будет делать, когда у второй ветки кончится поддержка? Четко и ясно давай
#221 #528684
>>528682
Не кончится. Секьюрити фиксы будут делать.
#222 #528685
На самом деле этот «спор» между версиями просто раздут дибилами, которые не могут в питон. Ведь всем очевидно, что третий лучше второго по дизайну.
#223 #528688
>>525852
http://scanlibs.com/python-sozdanie-prilozheniy/

Две секунды в гугле. ДВЕ, КАРЛ!
#224 #528692
>>528647
Да что ж вы так схватились за эту двойку? Какие в ней выгоды?
#225 #528693
>>528684
Вообще-то только их сейчас и делают:

>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 не будет. Вообще.
#226 #528694
>>528693
Недавно бэкпортировали измнения для улучшения производительности
https://lwn.net/Articles/646888/
#227 #528695
>>528694
Как видишь они считают это bugfix-release. Которые прекратятся после 2020.
Но ты с темы не утекай. После 2020 делать то что со своим легаси будешь?
#228 #528698
>>528692
Да никаких, просто некоторые лелки вдолбили себе в голову бред уровня "говно мамонта = багов нет" и ставят на сервера всякие дебиан-стейблы с центосями. Как будто баги выветрились за 10 лет.
#229 #528699
>>528695
Ты до 2020 не доживешь всё равно пидораш
#230 #528700
>>528698
Дебиан с центосями тоже кстати переходят на третий. В одном из прошлых тредов обсуждали.
#231 #528701
>>528699
Ясн
19 Кб, 438x135
#232 #528702
>>528698

> Да никаких


Многие библиотеки до сих пор только под двойку. Где мой twister?
Даже из всяких мелких примочек для джанги только треть работает под тройкой, хотя их-то легко было бы портировать. Про pypi я вообще молчу.

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

>сервера всякие дебиан-стейблы с центосями


Ты нихуя не шаришь, там стабильная версия софта, так что при обновлении у тебя нихуя не сломается из-за несовместимых api и прочей поеботы. Но секьюрити фиксы все туда портируются, у редхата этим занимается специальные люди.
#233 #528707
>>528702

>Но старые никто на тройку переводить не будет просто ради тройки.


Как и никто не будет портировать новые фичи из тройки в двойку. А потом и на багфиксы забьют.
Вот и думай кто больше соснул, твое легаси без языка, или язык без легаси.
#234 #528709
>>528707
Я просто подожду пока появиться что-то пиздатое на python3 что будет оправдывать переход. И пока больше либ поддянеться.
Пока что это только asyncio, если делать проект с ним, то конечно есть смысл тройку использовать.
#235 #528713
>>528702
Откуда такая уверенность что множество Py3 пакаджей полностью включено в Py2? Немало нового и интересного запилено уже начиная с тех же asyncio и aiohttp.
#236 #528738
>>528702
Вроде как всеми силами переводят. Вот из последнего ченджлога

>10+ modules ported to Python 3 (see NEWS for specifics)

#237 #528742
Хорошая у вас шапка треда, вот только там не сказано, как мне совсем нюфагу стартануть, я не про книги и прочее, я про то что мне нужно скачать сам питон с оффсайта, установить его? как в нем работать дальше, что, где. Вот это все.
#238 #528743
Блин что за сраный акцент у него австралийский чтоли. Еле понятно что он бормочет
https://www.youtube.com/watch?v=UgcC_bY4rPg
#239 #528745
>>528742
В линуксе он установлен по умолчанию.
В венде да скачать с python.org запускаешь idle и можешь вводить команды и сразу видеть результат.
Можешь поставить какую-нить IDE типа pycharm потом вбивать там код и запускать прям оттуда.
#240 #528746
>>528742
Потом там есть ссылки на всякие онлайн курсы, в них и объяснено что делать ньюфагу. И вроде там вообще ничего ставить не надо, можно вбивать код по мере обучения в окне браузера прям.
#241 #528747
>>528742
Вот ещё например
https://winpython.github.io/
#242 #528749
>>528745
>>528746
>>528747

Спасибо ребят. Еще такой вопрос, все эти курсы наверняка с разным уровнем вхождения(или нет) есть совет, какой подойдет для человека который никак вообще не связан с программированием?

Я прсто инженером работаю, и на теперешнем месте у меня довольно много свободного времени, вот я и подумал - почему бы и нет.
#243 #528753
>>528749
Я сам ими не пользоался так что не знаю, но поидее они очень простые. Единственно анлийский надо знать.
#244 #528754
>>528753
Я знаю его явно не на достаточном уровне.
97 Кб, 1409x722
#245 #528782
Ребят, я вот этот вот нюфажик >>528742 >>528749 >>528754

Стартанул, по урокам, делаю хелловорлды естественно...

Обратите внимание на скрин.
Стандартный шелл, писать черным на белом у меня вытекут глаза, поменял фон на серый, но у текста все равно белый фон - выглядит пиздецово, читать неудобно. В нотпаде все ок, тут и говорить нечего, но из нотпада я не могуили могу? запускать свой код сразу, как я это делаю в шеле.
Задача:
Или напердолить шелл до удобоваримого состояния, или я даже незнаю что. Нужно чтоб глаза не уставали, и выглядило все приятно для глаз. Если это будет что то стороннее, чтоб синтаксис подсвечивался.. ну вы думаю поняли о чем я. Скорее всего конечно, делать что то с шелом, потому что нужна возможность запускать код сразу же.
#246 #528785
>>528782
Поставь какой-нить редактор который умеет запускать питон.
https://pythonhosted.org/spyder/installation.html#installing-on-windows-xp-vista-7-8
например
#247 #528788
>>528782
Вот ещё вариант
поставь http://sourceforge.net/projects/console/
И запусти python.exe из c:\python или где он у тебя там.
Можешь конечно в обычном cmd.exe запустить ,но эта console вроде лучше.
#248 #528789
>>528785
Спасибо, посмотрю, но ты мне лучше скажи что мне вообще нужно, как это называется, что мне гуглить - дальше я думаю сам разберусь.
#249 #528794
>>528702

>Где мой twister?


Твистер?

>Даже из всяких мелких примочек для джанги только треть работает под тройкой, хотя их-то легко было бы портировать


Это все аргументы того же уровня, что и когда с шиндовс 7 с хп переходить не хотели. Мол, "пок-пок мой кейлоггер от васяна на 7 не заработает". Не знаю как там на джанго пакаджес, но на pypi любой хуй может свою лабу1 загрузить, в результате 90% пакетов абсолютно бесполезны. Я уж не говорю о том что если либу даже не пытаются портировать на питон 3 то она скорее всего не поддерживается совсем, а использовать неподдерживающиеся либы это идея невероятно хуевая.
#250 #528795
>>528794
Ладно убедил. В 2020 начну переползать на 3-й.
35 Кб, 1600x900
#251 #528796
>>528785
Лол, отличное начало!
#253 #528808
>>528801
Кстати в чем отличие комьюнити и полной версии?
Можно за полную версию не платить? Бесконечный триал как-нить себе устроить например?
#254 #528809
>>528808

А Зачем тебе полная версия то? Мне и комюнити с головой хватает.
#255 #528810
>>528809
Да мне вроде тоже хватает.
Я вообще с джангой в основном работаю, вот там пишут что какая-то улучшенная поддержка джанги, но в чем?
Надо попробовать будет триал всё-таки.
#256 #528880
>>528810

Автокомплит специфичных для джанги хуевин. Например, параметры в class Meta моделей, модели в FK и M2M, если стрингой добавляешь и т.п.

Ну и с орм попизже интеграция. Мб в шаблонах тоже че-то есть (комьюнити не пользовался особо).
#257 #528886
В кумунити версион, отключены тонкие настройки интерфейса, размер шрифта к примеру не поменять, если буквы для вас слишком мелкие.
31 Кб, 748x436
#258 #528890
>>528886

> размер шрифта к примеру не поменять


Да ладно
#259 #528891
>>528890
А теперь наведи мышку и напечатай свою цифру.
18 Кб, 674x404
#260 #528892
>>528886
>>528891

Дваждую, у мня оно вообще серым и не активно. Всегда так было.
37 Кб, 604x399
#261 #528896
>>528891
Ну ввел
#262 #528897
Как в PyCharm применять кастомные темы вот отсюда
http://www.ideacolorthemes.org/home/
#263 #528900
>>528897

> 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.


В глаза долбишься?
#264 #528901
>>528900
Могу видео записать, импортирует как надо, само идет в перезагрузку а потом кастомной темы в Editor» → «Colors and fonts
НЕТ
#265 #528916
>>528901
У меня есть, я 2 темы оттуда поставил.
И шрифты и размер шрифта у меня выберается.
А какая версия, 4.5.3?
#266 #528920
>>528916

> А какая версия, 4.5.3?



Да
#267 #528930
>>528782
PyCharm
#269 #528934
>>528931
Не стоит называть переменную sum, потому что есть встроенная функция sum и ты её переопределяешь тем самым. Это может сломать код.
#270 #528935
>>528609
Ох сука, вот это я объебался с невнимательностью тогда. Добра тебе
74 Кб, 1375x763
#271 #528936
Мда, что же делать, оно просто не активно и нажать туда нельзя. Поставил только что с офф.сайта.
#272 #528940
>>528936
короче 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.


После этого можно будет менять шрифт.
#273 #528943
>>528934
Норм все.
#274 #528949
Перевели какую-то книгу по питону
http://vk.com/wall-97616552_223
#275 #528960
>>528949
Как бы я уже давно добавил ее.
https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
#276 #529012
>>528949
В книге охватываются базовые вещи, хватит ли этого чтобы потом перейти к изучению фласка?
#277 #529014
>>529012
Мне хватило прочитать туториал по питон и джанге чтобы что-то начать лепить на них. Потом уже книгу почитал по питон чтобы детальней вникнуть.
Правда я знал php.
#278 #529052
>>529014
Хз, я слоупок.
#279 #529053
>>529052
Хотя кое-какое знание РНР имеется, что такое MVC и прочие вещи, но ничего серьезного на нем не делал.
#280 #529343
http://ideone.com/d9gn7h

Пытаюсь к словарику создать второй словарик, в котором бы values из первого словарика стали key, а key - соответственно values.

Столкнулся с такой хуитой, что в первом словарике 38 слов, а второй словарик на последнем прогоне содержит 37 слов. Явно, что какая-то шляпа связана с тем, что индексация идет с нуля.

Но все равно не пойму причину:
В последнем прогоне len 37, это значит порядковый номер икса 36. Последний возможный порядковый номер икса 37, какого хуя оно не идет на еще один круг x += 1?
#282 #529351
>>529347
Это классно, но что с моим кодом?
#283 #529353
>>529347
Алсо, с инвертмапой тоже какая-то жидохуита творится.

len(inv_map) 37!
А первый словарик len 38.
http://ideone.com/MrbsP1
66 Кб, 910x405
#284 #529360
>>529353
Два одинаковых иероглифа.
#285 #529366
>>529360
Блджад, и точно. Импортные коллекции, значит. Удобно, я не знал про эту шляпу. Спасибо, анон.
#286 #529469
На последней дырке проблема вылезла
http://ideone.com/7oKxcF

Рандомно генерит key из словарика, загадывает загадку. Но проверку равенства инпутного пользователем m и d[key] код фейлит. Пробовал вариант if m in d[key], if m == d[key], if d[key] == m. Нихуя.
#287 #529524
>>529469
random.sample возвращает массив.

Вообще, питон тебе об этом явно и сообщает, говоря "TypeError: unhashable type: 'list'"
#288 #529525
>>529524
В смысле, лист возвращает. А то налетят.
#289 #529560
>>529524
>>529525
А так?
https://ideone.com/G6SwVJ

Конвертировал лист в стр через n = r[0]
#290 #529610
>>529560
Ну и в чём вопрос? Работает же. Оче вырвиглазно.
#291 #529612
>>529610
чтобработало
#292 #529613
>>529610

>Оче вырвиглазно



Имеешь в виду, что все это гораздо проще можно было сделать?
44 Кб, 461x333
#293 #530167
Зацени, ананас. Хорошо зделол или можно лучше?

http://pastebin.com/UXLCYZe8
#294 #530170
>>530167
Как давно я не видел эту картинку на бордах. Какой-то воровачер что ли просмотрел папку с картинками?
#295 #530172
>>530167
А собственно какая задача была?
#296 #530181
>>530167
Корутины не занимают потоки, поэтому делать пул не из чего. По сути ты просто ограничил количество одновременно работающих задач, что можно было и семафором сделать. http://ideone.com/DjYcMD
#297 #530221
Объединюсь с ньюфагом и слоупоком для совместного обучения на опенсурс проектах. elektropochta88 at gmail.com
#298 #530225
>>530221
Давай лучше запилим что-то свое опенсорсное, чтобы пацаны зауважали. С тебя годная идея.
#299 #530229
>>530225
Давай, но я пока ничего не умею.
#300 #530236
>>530229
Идею вперед плз, окда? Можешь сюда писать.
71 Кб, 800x536
#301 #530253
>>530236

Я еще ничего не придумал.
#302 #530254
>>530236
Пойду спать.
#303 #530258
>>530181
>>530172
Ну мне надо ещё распределять задачи по определённым слотам с данными, а не только ограничить количество. Грубо говоря, если только три лошадки, а нам нужно по очереди на них наездников сажать когда те сделают по кругу.

Хм. Может и правда на семафоре переделать. А то я как-то глянул, но почему-то отбросил такой вариант. И если честно долго врубался чем корутины от фьючеров и тасков отличаются.
#304 #530259
>>530229
Сюда идею не пиши, а то я спизжу и создам стартуп, а вы соснете.
#305 #530260
>>530259
Нет я.
#306 #530262
>>530258

>Ну мне надо ещё распределять задачи по определённым слотам с данными


Создай очередь из этих слотов и вместо print('+ task') и print('- task') доставай элемент/клади обратно.
526 Кб, 500x302
#307 #530276
>>530262
Интересно. Спасибо.
#308 #530283
>>530276
Впринципе семафор тогда тоже не нужен. http://ideone.com/p2XTal
#309 #530297
>>530283

> return (yield from coro)


Ох блин. А я с ним страдал. Скобки оказывается надо поставить.
#310 #530310
Есть один сервис хранения текстов и фотографий.
Просто выдрать ссылки на фотографии на нужной странице мало и это я уже сделал. Дело в том, что помимо тех фотографий ссылки на которые указаны, хостинг хранит и те фотографии ссылки на которые не публикует. Т.е., опубликованные ссылки могут быть вида:
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)
Как указать путь куда скачивать и создать папку при необходимости не нашел. Скачивать в папку с питоном желания нет совсем.
#311 #530319
>>530297
Дибил, хуле.
#312 #530365
>>530310
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 для чего, по-твоему?
#313 #530372
>>530365

>Ты хочешь узнать неизвестное рандомно сгенерированное имя файла?


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

>Дай хотя бы примеры имён, что ли.


Обычно это просто цифровая последовательность от 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() узнал.
#314 #530429
>>527962

>checkio


Охуеть, в первой же задаче цикл for element in data выводит 6, сука, значений, когда список передан из ПЯТИ значений, ПЯТИ, КАРЛ! Нахуй и в пизду.
#315 #530432
>>530372
Там с первым ответом кое-что не так пошло, так как макаба индексы за курсив приняла, лол. (Надо было не i использовать.) Вот — http://ideone.com/xPOVMm Это при условии, что изменемая часть целиком число и все цифры стоят рядом друг с другом.
#316 #530441
Реквестирую список современных средств разработки для питона. Например:
1) Что используется для тестирования.
2) Что для отслеживания покрытия кода тестами.
3) Автоматическая сборка.
4) Как обновляют питоновскую десктоп программу.
Может еще что интересное.
#317 #530501
У меня всегда была проблема с лаконичным названием переменных.
Вот как называть класс, который содержит список однотипных объектов? И еще и создает сам эти объекты?
ObjectFactory? А как нибудь человечнее? Тем более что он не совсем сам создает эти объекты, а делегирует процесс создания другому классу.
#318 #530514
>>530429
Ссылку на задачу или не было.
#319 #530518
>>530441
1. nose
2. nose + coveralls
3. flit (если речь о пакете)
4. esky
Ещё дохуя всего.
#320 #530519
>>530501
С таким описанием токо ObjectFactory, сорян.
#321 #530521
>>530501

>CamelCase

#322 #530522
>>530521
Игнорируйте это сообщение, не увидел слова "класс" в посте.
#323 #530524
>>530522
Ебать ты лох.
#324 #530526
>>530501
SozdavatelObjektov, ochevidno je.
#325 #530531
>>530501
ObjectBuilder, ObjectHandler, ObjectProcessor, ObjectManager, ObjectWrapper, ObjectOfObjects
#326 #530539
Какой фреймворк юзать на фронтенде для чтения рест апи?
#327 #530540
>>530501
AbstractObjectFactoryProxyList
#328 #530571
Анон, памаги, чем(как) скомпилировать пистонистский скрипт с расширением .pyt? С меня как обычно.
#329 #530573
>>530571
во што?
#330 #530575
>>530573
Исходный код(.py) в .pyt.
#331 #530576
>>530575
%script_name%.py переименовать в %script_name%.pyt
#332 #530577
>>530576
Спермовора за километр видно.
#333 #530579
>>530577
нет, у меня линюкс
#334 #530580
>>530579
Про mv слышал? Переменные в консольке баше знаешь как обозначаются?
#335 #530581
#336 #530583
>>530581
У тебя пиратский баш.
#337 #530585
a = "иди"
b = "нахуй"
c = "бля"
print '%s %s %s' % (a, b, c)
#338 #530587
>>530585
Вот ты ебанутый.
#339 #530590
>>530587
Аргументируй, почему?
#340 #530591
>>530590

>питон 2


>2015

#341 #530594
>>530576
Спасибо антош.
#342 #530596
>>530585
1. Это формат принта второго питона, в самом питоне к переменным не по % обращаются.
2. Я спрашивал про баш. Дважды. Раз ты линуксоид, ты мог написать mv script.py script.pyt, но ты выдумал какой-то адский велосипед с процентиками в стиле cmd.exe и cловом "переименовать". В баше кстати по $
3. Ну и да,

>2015


>python2



проиграл со всей беседы
#343 #530661
>>530591
Питон 2 - питон здорового человека.
#344 #530670
>>530518
Спасибо, посмотрю. И всем кто ответил >>530501 тоже спасибо.
#345 #530678
>>530539
Я только ангуляром пользовался, только его и могу посоветовать.
#346 #530697
>>530661
Питон контрамота-лиспобляди.
19 Кб, 337x191
170 Кб, 699x392
47 Кб, 400x400
Как же я устал... #347 #530751
#348 #530754
>>530751
Устал быть балбесом?
#349 #530758
>>530754
Да, особенно от невнимательности
ну ПАМАГИТЕ, ПЛЕС!
#350 #530761
>>530758
Сдвинь всю if-else конструкцию на один индент вправо.
#351 #530765
>>530761
Это...чудо
Это особенность break?
121 Кб, 604x403
28 Кб, 570x291
#352 #530770
>>530765
Инденты в питоне определяют область видимости и логические блоки кода.

for bla bla
.. чота делаем
.. break #будет внутри цикла

for bla bla
.. чота делаем
break #будет снаружи цикла, выполнится после завершения, но т.к. цикл уже закончился - выходить не от куда - пошлет нахуй.

В остальных языках на это можно забить, но в питоне это обязательная часть синтаксиса, чтобы такие как ты учились и не писали все подряд на первом уровне индента как на пикрелейтед. Потому что иначе хуй поймешь.
#353 #530772
Как в >2015 на бидоне делают риалтаймовые вещи?
#354 #530781
>>530772
Никак. Риалтайм делают на сишке под QNX, как и раньше.
#355 #530788
>>530781
Тенденция реалтайм переносить на контроллеры и общаться с ними из-под линукса.
#356 #530790
Питурд с кодакадемии, как твои успехи?
#357 #530795
>>530790
Подавился десу
и поделом
29 Кб, 320x529
sage #358 #530881
Знаешь, питонач, с одной стороны это круто, запилить нужный опенсорный проект. Но с другой это очень выматывает. Морально, а не умственно или физически. У меня внезапно оказалось чуть больше сотни звездочек на жидхабе, и люди уже во всю делают пулл-реквесты, пишут багрепорты, бегают туда-сюда, делают что-то, пишут мне. И все они накладываются друг на друга, и каждому блять надо ответить, пояснить или самому узнать/уточнить у него что-то.
Для маминого хекки это пиздос как утомительно. Я уже жалею. Не надо было ничего делать.
#359 #530882
>>530881
Что за проект? Давно программируешь?
Можешь без ссылок если дианон-лигивон, на словах. Реально полезных опенсорс проектов за историю сосача и кодача было 2.5 пожалуй, а то и меньше.
sage #360 #530885
>>530882
Деанон по гитхабу моментальный, лол, тоже об этом жалею.
Проект - ничего интересного. Украл взял старую заброшенную линуксовую поделку, переписал, обновил с учетом всех модных изменений в линуксах, добавил мелких фич и красивенькую морду, вбросил на реддит. Таких возможностей по обновлению еще навалом если копнуть. Просто клад какой-то.
144 Кб, 572x469
#361 #530922
Неужели ни одного ньюфага нет, кто хотел бы со мной вместе учиться? Будем делать всякие штуки и задавать друг другу глупые вопросы.
#362 #530924
Пистонята, подкиньте годных задач на чистом питоне.
Прочитал 2 книги, а толку нету
#364 #530929
>>530927
Спасибки
#365 #530986
Котаны, кто какой IDE использует?
#366 #530989
>>530986
pycharm
#367 #530990
>>530986
PyCharm
#368 #530992
>>530986
PyCharm
#369 #530993
>>530989
>>530990
ок, чекну, я просто 3 недели юзаю стандартный.
#370 #530994
>>530986
PYCHARM
#371 #530995
>>530986
пучарм конечно же
#372 #530996
Если кому нужна бесплатная лицензия PyCharm:
http://blog.asidorov.name/2013/09/jetbrains-pycharm-27-ide-python.html
(Работает с последней версией)
74 Кб, 953x605
34 Кб, 1243x597
6 Кб, 537x295
#373 #530999
Так, скачал и установил ПиЧарм, сразу вопрос. Вот тут http://www.ideacolorthemes.org/home/ нашел темы для него, они в вот таком странном формате(пик1) способ установки с сайта(пик2) дает нам пик3. Вопрос, как что я сделал не так, тема же лежит там, значит с не все в порядке, как поставить то?
#374 #531000
>>530999

>ПиЧарм


Сьеби.
#375 #531001
>>531000

> Сьеби.



Или что, истерику устроишь?
#376 #531007
>>530999
по идее должно все работать, даже незнаю, я темы не устанавливал - мне хватает дефолтных.
#377 #531022
>>530999
Попробуй юзать стандартный.
1 Кб, 617x458
1 Кб, 699x448
#378 #531026
>>531022

Слишком бело, слишком темно.

А как поменять конкретно фон, я еще не разобрался.
80 Кб, 1251x714
#379 #531040
В сублиме выглядит конечно гораздо лучше, можно конечно руками все поменять PyCharm - но все же очень жаль, что я так и не понял как кастомные темs применять, там как раз есть тема SublimeText3
#380 #531069
>>531040
У тебя отступ в один пробел, не пойму? Ёбу дал?
#381 #531077
>>531069
Ты мне лучше скажи как темы применять.
#382 #531079
А Visual Studio для питона пробовал кто? Как оно?
#383 #531106
>>531079
Ты че дебил? Используй PyCharm
#384 #531109
>>525512 (OP)
Насколько уместно делать сайт на питоне? Это вообще реально? Если реально - какие плюсы и минусы по сравнению с другими вариантами, типа пыха?

Сайт без йоба нагрузки, обычный сайт для компании.
#385 #531120
>>531106
я твою маму ебал.
#386 #531126
>>531109
пыха хуиха, нахуй катись, дятел.
#387 #531130
>>531109
Да, питон используют в многих крупных проектах как бэкенд.
Изучаешь питон, осваиваешь джангу и делаешь сайты. Можно ещё фласк, но вакансий мало, зато для небольших сайтов ничего лучше нет, на своем опыте скажу. Курсы кодеакадеми за 1.5 дня + книга-гайд по фласку на 150 страниц + хтмлакадеми и можно делать.
#388 #531131
>>531130
Это конечно если тебя не воротит на фронтенда, от жс, от хтмл с ксс, от бутстрапов всяких, вот от этого всего. Меня воротит.
#389 #531133
>>531131

>на фронтенда


ОТ*, конечно же.
#390 #531134
>>531077
Кодом сначала займись, идиот, потом уже темы меняй.
#391 #531136
>>530986
vim+jedi
#392 #531141
>>531134
С кодом у меня все ок, спасибо. Я вижу ответа на вопрост у тебя нет, только пиздеть в состоянии - типичный сосачер. А чтоб код писать, нужно сперва сделать так, чтоб его было писать удобно и приятно.
#393 #531144
>>531141
Пошел вон. Чтобы писать код нужно иметь клавиатуру.
#394 #531147
>>531144
Хочу нейроинтерфейс. Как в каменном веке руками работаем.
#395 #531148
>>531144

И вытекающие глаза, от пяления в монитор, на черные буквы на белом фоне 5+ часов? Иди наааахууууй.
#396 #531155
>>531130
>>531131

>Это конечно если тебя не воротит на фронтенда


Поясни как это связано именно с выбором питона? На том же пыхе от фронтенда тоже никуда не деться.

Я просто никогда сайты не делал, имею только общее представление о них.
12 Кб, 482x179
#397 #531157
>>531040

> не понял как кастомные темs применять


Дурачок штоле?
#398 #531158
>>531155
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

Можешь пройти эти + вступительные по питону, ну и кодеакадеми. Потом перекатывайся на джангу и делай дальше.
#399 #531165
>>531158
Ты не ответил на мой вопрос.
#400 #531171
>>531165
Ты задавал его не мне, поэтому я и не отвечал. Вопрос, если честно, дебильный. Анона выше утомляет пердолинг в фронтендом, вот и всё, поэтому он намекнул что если тебя это утомляет как и его, то не хочешь ли ты делать что-то другое, а не сайты. Как-то так пожалуй.

А по делу - пиздуй учить питон, вопросы он тут задает. Можешь и пхп, разница ровно нихуя, но питон не превратит тебя в такого говнокодера как пхп. Строже, проще, можно писать под все платформы, простые кодестайлы, тонны литературы для нюфаков
#401 #531174
>>531157

Смотрим сюда

>>530999
#402 #531177
>>531155
Да никак не связано, тащемта. Просто он говорит что типа все так легко, просто взял за 1.5 дня и запилил. А на самом деле не легко, ведь надо преодолеть рвотные позывы при работе с фронтендом. Там та еще свалка копротехнологий, бэкэнд сказкой покажется.
#403 #531178
>>531171

>если тебя это утомляет как и его, то не хочешь ли ты делать что-то другое, а не сайты.



Блин, я уже хуй знает сколько лет на C++ пишу, от драйверов до машинного зрения. Мне нужен сайт для собственного наебизнеса и все, а питон просто удобен для прототипирования матана, поэтому хочу, делая сайт, еще и в нем прошариться заодно.
#404 #531180
>>531177
За полтора дня освоил. А делать он будет дольше, Лутца то можно и за вечер прочитать, но без практики это нихуя не стоит, поэтому и говорю - учишь базу и вперед, только практика, только хардкор, только стаковерфлоу и тупые вопросы. Добра.
#405 #531183
>>531178
Ааа, епта. Я то думал ты нюфак очередной извиняй, кек. Ну смотри, если тебе по книгам удобнее там, вечерок почитать. Я бы взял Dive into Python на твоем месте, потом глянул мануал по джанге и всё сделал.

Да, с фронтендом будет геморрой, потому что там обычно начинается дрочево и всё криво. В JS треде есть Фленегана книга, она в целом отличный справочник, скачай и по ней смотри что и как.

Ну, с таким набором думаю всё без проблем сделаешь. Можешь конечно чисто через документацию, но мне например обычно проще прочитать книгу какую-то за вечер, а потом сразу за дело понимая в целом язык и его возможности.
Можешь и на PHP, но там веб онли всё таки, но будет наверное даже быстрее на каком-нибудь Yii.

Алсо, да, для сайта попроще есть flask.
#406 #531184
>>531178
Короче мне нужно что-то, чтобы быстро въехать в веб-разработку с моей базой, а не сидеть эти нудные лекции слушать или хз чего там на курсерах.

HTML, CSS я представляю что такое, делал плагин для браузера.

Какие проблемы с совместимостью - хз.
#407 #531185
>>531183

> с фронтендом будет геморрой, потому что там обычно начинается дрочево и всё криво


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

>В JS треде есть Фленегана книга, она в целом отличный справочник, скачай и по ней смотри что и как.


C JS я уже сталкивался ранее, разберусь наверное на ходу.

Какие плюсы и минусы у питона в бекенда по сравнению с тем же пыхом?
#408 #531188
>>531183
>>531185
Ну смотри, посоветовали тебе правильно.

По HTML/CSS тебе нужен CSS: The Missing Manual, там всё есть. Если сайт интерактивный, нужный перделки на JS тупой вопрос, конечно нужны, то Фленеган ОК. Не хочешь тратить на всё это говно время, а сразу за работу - тебе нужен htmlbook и MDN. Там просто охуительнейшая документация с примерами по всем вопросам. Чтобы не изобретать велосипеды и тратить на это время, бери Bootstrap и JQuery, чтобы без лишней траты времени всё сделать сразу.
По Python смотри dive into python, если что-то поменьше и чтобы за часик, то byte of python. Если совсем мелкое - то документация.
По Django - официальный мануал. Он в целом ОК и даст всё что надо. Тут ещё писали про его альтернативу, Flask. Так вот, Flask это микрофреймворк очень клевый. На нём ты сможешь быстро реализовать сайт, не тратя время на всякую магию джанги и поиски нужных решений. Годнота, глянь документацию, он простой как пробка.
Там буквально на ходу чтения документации питона и фласка сможешь набросать простенький сайт, а дальше уже навешать перделок. Ну и потом сделать весь бэкенд нужной тебе сложности.

Про плюсы и минусы? Я бы не сказал что пых чем-то хуже для веба или лучше. Он просто популярнее, поэтому больше всяких CMS, фреймворков и других радостей. Синтаксисы всюду съедобны, особенно после С++ то лол, так что выбирай что больше нравки и пригодится. Всё таки питон скриптовый язык который можно всюду применить, а пхп весьма ограничен в этом выборе. Я бы лучше потратил время на змею, полезнее будет. Ну и да, если тебе интересны всякие машин лернинги и бигдаты, то тут уж точно питон идеально подходит.

Надеюсь помог.
#409 #531190
>>531188

>то тут уж точно питон идеально подходит


Вот поэтому его и выбрал, лол. Вопросы про пых просто для общего развития были.

Еще такой вопрос. У меня был когда-то скачанный сайт на пыхе, там был веб-сервер апач. Для .net есть IIS. А что выполняет роль веб-сервера для питона?

И еще поясни за хостинг. У меня тот сайт стоял прямо на компе с апачем у провайдера и там все было просто, а про внешний хостинг я вообще не знаю ничего. Зависит ли выбор хостинг-провайдера от языка реализации бекенда? Какой дается доступ к машине?

Заранее извиняюсь за дебильные вопросы.
#410 #531192
>>531190
Обычно берется впс с линуксом и ssh для доступа. Дальше у тебя полнейшая свобода действий, любой веб-сервер, любой язык бекенда, любой фреймворк.
#411 #531193
>>531185
>>531188
Да, тебе хорошие вещи посоветовали. В общем смотри как можно быстро нашлепать сайтец.
На бекенде python + flask.
Создаешь rest api.
Далее делаешь обвязку к rest api с помощью angular/backbone.

Мне такая модель построения приложений очень понравилась.
#412 #531194
>>531174
Просто скопируй папки colors и fonts в C:\Users\username\.PyCharmверсия\config.
#413 #531195
>>531190
Что касается flask, то он использует встроенный WSGI, т.е. тебе ничего не нужно устанавливать.
#414 #531196
>>531192
>>531193
>>531194
>>531195

Короче всем спасибо, теперь есть у меня есть отправная точка.
57 Кб, 1525x704
60 Кб, 1523x889
#415 #531202
>>531194

> Просто скопируй папки colors и fonts в C:\Users\username\.PyCharmверсия\config.



Спасибо, в принципе все работает, правда settings файл я так и не применил, незнаю куда его положить, да и нужно ли.
#416 #531203
>>531202

>шрифты с засечками


>в коде


Ебу дал? Я чуть не ослеп!
#417 #531204
>>531203
Как глаза потекут будет знать.
#418 #531205
>>531203

Я только поставил пиШарм, нехуя еще не пердолил, все что я делал пока что - это подбирал тему, чтоб глазам было приятно. Посоветуй шрифт, рас ответил.
#419 #531206
>>531205
Очевидный терминус, лучший моношрифт для кода.
#420 #531207
>>531206

Ок, ка мне теперь его впердолить в сишарм?, я смотрю оно шрифты берет из себя самой а не из системы.
#421 #531208
>>531207
Не знаю, у меня вим.
#422 #531216
>>531205
C-o-n-s-o-l-a-s
84 Кб, 629x554
#423 #531244
>>531216

> C-o-n-s-o-l-a-s



Да это там есть, единственный нормальный блять.

Поставил нормальные шрифты - пиШарм их не видит, все другте системные шрифты видит, рукалицо блять. Что то я уже заебался с ним, на первый взгляд нормальный инстркмент, а на дели все гвоздями приколочено и костыль на костыле.
13 Кб, 800x600
#424 #531268
>>531244

>Поставил нормальные шрифты


Вот нормальные шрифты. Просто, вам уже ничего не поможет.
#425 #531306
Почему синглетон не рекомендуют использовать? Разве не лучше ли его взять для другого паттерна - медиатор? По-моему, он туда неплохо подойдет, если программе как раз нужно связующее звено в виде одного объекта.
#426 #531311
#428 #531362
Посоны, а как в логгерах обычно организуется запись в файл? При каждом новом логе открывается файл, аппендится, закрывается, или при запуске программы открывается и там уже будь что будет, если крешнется?
#429 #531364
>>531362
Открывается при open, пишется в буфер энного размера (io.DEFAULT_BUFFER_SIZE), по переполнении которого идет flush на диск. Повторить до бесконечности. При закрытии тоже flush.

https://docs.python.org/3.4/library/functions.html?highlight=open#open тут все написано.
#430 #531366
>>531364
Да, забыл. Закрывается только явно с file.close() и неявно с with open. Все остальное время файл держится открытым, посмотреть кто держит файло открытым можно например с /usr/bin/lsof ./logfile
#431 #531434
>>531362
import logging
Не?
#432 #531469
>>530885
Ну подкинь пару идей.
#433 #531491
#434 #531705
Ньюфак, изучаю PyQt4. Сделал мейн виндоу, в нем график вью, в график вью положил сцену с парой линий и картинками.
Как при изменении размера окна адекватно масштабировать нарисованное? Есть какое-то свойство, которое я не вижу или нужно руками делать ресайз ивент в котором пересоздать каждый элемент под нужный масштаб?
#435 #531714
Во-первых, pyqt5. Во-вторых, не пересоздавать, а ресайзить, если это объекты qt, и перерисовывать, если это твои кастомные "линии".
#436 #531716
>>525616
в чем код пишешь?
#437 #531747
Запускаю notest локально из корня своего проекта - все работает отлично. Запускаю unittest через консоль - тоже. Отправляю на гитхаб и travis - пишет ошибку, что не может импортировать мои модули, которые я написал и которые друг друга там импортируют. Хз че делать.
35 Кб, 400x261
#438 #531748
>>531747
Пикрилейтед.
#439 #531770
Питоняши, выручайте. Раньше баловался с поиском яндекса, но он стал часто выдавать капчу, у гугла как-то всё криво, решил пересесть на альтернативные сайты. Выдает ошибку в ссылке, ибо вроде как urllib непонятным образом обрезает её.

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()
#440 #531811
Суп, пайтонач. Помоги, пожалуйста. Есть один сайтик на джанге, который является интерфейсом к python-демону, работающему на сервере. Хочу чтобы приложение брало настройки из бд, которые туда записываются из веб-интерфейса. Весь гугл перерыл, но не смог найти ответ на интересующий меня вопрос: можно ли использовать одну бд для их связи друг с другом? Может есть более простые общепринятые решения?
С меня как обычно.
#441 #531823
>>531747
Посмотри чужой проект, в котором всё работает. Что как маленький?!
#442 #531854
>>531811
можно, почему нет?
#443 #531906
>>531716
ipython
#444 #531920
>>525616
ебать цветовая схема, меня пока глаза не потекли.
#445 #531925
>>531920
Это терминал просто
#446 #531947
>>531854
Спасибо
А в sqlite есть блокировки или что-то подобное? Меня просто останавливает то, что есть вероятность одновременной записи/чтения.
#447 #531949
>>531947
https://www.sqlite.org/lockingv3.html
Лучше sqlite для этого не используй. Данные то может и целостными будут, а вот тормоза могут быть.
#448 #531953
>>531947
И вообще когда ты юзаешь django с sqlite это может привести к проблемам всяким. Дохуя функционала не поддерживается на уровне бд и эмулируется в питон коде - связи, контроль целостности и т.п. Даже типа данных в sqlite есть только text и int, остальное эмулируется.
Например у меня есть сайт с sqlite его на другую бд уже так просто не переведешь - дохуя ошибок всяких вылазит.
Юзай постгрес.
#449 #531969
>>531953
>>531949
Спасибо, няши. Возьму постгрес. А почему не мускуль, например?
И да: смогу ли я использовать разные орм для одной бд? (гугл молчит)
#450 #531975
>>531969
У постгрес намного больше фич и производительность сейчас лучше. Я код качественней судя по автоматическим тестам всяким.
Мускуль имеет смысл брать если ты очень хорошо знаешь его особенности и поведения и умеет оптимизировать под мускуль всё имхо.

> И да: смогу ли я использовать разные орм для одной бд?


Да, почему нет. Ты можешь и django orm/модели использовать со своим демоном тоже.
Можешь sqlalchemy какой-нить прикрутить.

Если тебе понадобиться серьезно тюнить postgres вот ссылка http://postgresql.leopard.in.ua/
#451 #531976
Есть идеи как в Kivy сделать тень вокруг виджета? Как вообще их делают? Шейдеры?
#452 #531977
>>531976
киви и так говно тормозное а ты ещё тени какие-то хочешь
#453 #531997
>>531975
Спасибо большое, пойду кодить :3
#454 #531998
>>531977
Ну на самом деле оно только грузится долго, в остальном юзабельно.

мимо
97 Кб, 700x452
#455 #532026
Как в tkinter в виджете Text табы отключить или на пробелы заменить. С помощью .bind() перехватываю нажатие <Tab>, но печатает сначала 4 пробела, а потом таб.
48 Кб, 666x637
#456 #532119
В чем шутка?
Если ищу в листе "new" то пропускает букву "О" а если в строке "text" то всё ОК. По сути функция должна гласные удалять из строки
#457 #532121
>>531770
Бампну, пожалуй.
#458 #532122
>>532119
В том что нельзя изменять список когда по нему итерируешься.
#459 #532123
>>532119
Потому что ты проходишь по списку, из которого удаляешь. Либо проходи по копии, либо итерируй с конца.
#460 #532125
>>532119
Не надо изменить список ходу итерирования по нему.
Если ты напишешь for x in list(new):
То всё будет окей.
А вообще
return ''.join(x for x in text if x not in 'aeiouAEIOU')
Или
import re
re.sub('[aeiouAEIOU]','','testeeOO')
#461 #532134
>>532123

> либо итерируй с конца.


С чего бы этому работать?
#462 #532148
>>532134
https://ideone.com/9u0NKt

Идя сначала мы удаляем элемент, изменяем len, упускаем из итерации n элеменов, которые удалили. Пилим сук на котором сидим.
Идя с конца мы уже идем со стартового, максимального len до нуля, и удаление нам ничего в итерации не ломает. Пилим сук перед собой.

А с копией листа можно соснуть если он оче большой.

//Хуле ideone так лагает?
31 Кб, 677x414
#463 #532150
Не могу запустить pydoc в режиме gui. В пуске значка этого нет.
#464 #532151
>>532148
Твой пример кода хуев.
Во-первых ты итерируешься по range то есть по копии l во втором случае
Во-вторых, range создает список с нуля по len(l) а l у тебя с еденицы.
127 Кб, 1000x830
#465 #532153
>>532122
>>532123
>>532125
Спасибо, ясно. Видно прохлопал момент в теме про строки и листы
#466 #532154
>>532150
Подскажите, пацаны
#467 #532155
>>532154
pydoc.py -b
может? у тя же нет там никакого -g в списке опций
#468 #532156
>>532155
Это я вижу. В книге просто был написан этот ключ
12 Кб, 379x217
#469 #532157
>>532154
Собственно этот гуи это хуйня, которая просто предлагает тебе открыть браузер.
pydoc.py -b
делай
#470 #532158
>>532155
ключ -b открывает локальный файл этот в браузере.
22 Кб, 218x220
#471 #532159
>>532157
Да я уже понял. Просто интересно чего это у меня нет такой опции.
Вот такой вот интерфейс был в книге.
#472 #532160
>>532151

>ты итерируешься по range то есть по копии l во втором случае


>по range то есть по копии


Чего несешь, ебанутый? Во втором случае копия листа НЕ делается. Делается список с индексами, с циферками от нуля до len(l)-1, потом на него кидаем реверс и идем от len(l)-1 до нуля, удаляем из листа по индексу. Такой список в дохуя раз легче чем копия листа из которого удаляем. Там хуй знает что может быть, сотни сотен данных.

>l у тебя с еденицы.


Какая нахуй разница с чего начинается l? Я на рандом вбил, ну вбей туда буковки, нихуя не изменится.
#473 #532163
>>532157
А какая у тебя версия питона?
#474 #532164
>>532160

> Во втором случае копия листа НЕ делается. Делается список с индексами


Тогда и итерируйся в первом случае не по l а по списку с индексами.
И будет однохуйственно
#475 #532165
>>532163
Вторая. В pydoc3 у меня ключика -g тоже нет
#476 #532166
>>532164
https://ideone.com/IVfdF6

Нет, не однохуйственно. Фишка именно в том, чтобы идти с конца.
#477 #532167
>>532165
Походу тогда выпилили они это gui, ибо учебник по ранней версии 3-го
#478 #532170
>>532166
Эмм ну да в данном случае да.
Но вообще это хуевая идея удалять элементы из списка по которому как-то итерируешься. Лучше уж тогда что-то типа
while l: dosomething(l.pop())
#479 #532171
>>532148
А, ну ясно, я-то думал ты с remove пример приведёшь как у >>532119
Но вообще такие манёвры лучше не делать.
#480 #532178
>>532170
Ну по сути мы итерируемся не по листу который меняем, а по его индексам, которые в отдельном листе даже не в листе, а "в" range, он не отдает листов. И если идти с конца то Все безопасно, размер листа меняется вместе с итерацией по листу индексов или не меняется вовсе и не может быть <i.

А обходить лист через while как-то странно, а если еще не до пустого листа то бряки всякие ставить надо, иначе бесконечный цикл. Геморрой. Я обычно через такую обратную итерацию делаю.

>>532171
С remove не покатит, он по value, а мы по индексу удаляем. Но суть близка жи.
#481 #532184
>>532178
Вообще while True и break где-нить довольно часто попадается в коде. Иногда это удобней.
grepнул /usr/lib/python - 654 раза while True попалось.
#482 #532186
>>532184
Ну так то для других целей норм, а не для обхода листа. Мы то обходим. Длина листа известна, количество итераций чтобы его пройти равна его длине, каждый элемент смотрим один раз. Зачем там while true? Путает читающего только.
#483 #532188
>>532186
Ну while lst: lst.pop()
для обхода листа вполне норм если лист у нас что-то вроде очереди - надо доставать оттуда элементы убирая и обрабатывая.
#484 #532190
>>532188
Ну лан, может быть. Надо на конкретную ситуацию смотреть, но на скриншоте у того анона я бы таки сделал обратную итерацию по индексам.
#485 #532191
>>532190
На скриншоте у того анона я бы сделал >>532125
#486 #532199
>>532151

>range создает список


2015 на дворе, а они всё списки создают для итераций. Да и вообще, 50% что на скрине третий, а значит никаких списков range не создаёт.
#487 #532201
>>532199
Не придирайся к словам, в данном контексте это не важно.
#488 #532240
>>525512 (OP)
help. Pycharm наебнулся. любая прога кончает с надписью в консоли Process finished with exit code -1073741511 (0xC0000139).
гуглъ не помог. новыйпроект вклвыкл комп и т д не помогли. щито
239 Кб, 1959x1959
#489 #532241
>>532240
Семь бед — один ресет
#490 #532242
>>532240
Пришло время.
#491 #532244
>>532240
Спроси у них в багтрекере/поддержке.
Нахуй тут спрашивать то
#492 #532261
Питаны! Форма регистрации не создает нового пользователя. Почему?
#493 #532263
>>532261
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
#494 #532294
>>532263
Print debug в помощь. Узнай сколько раз и с каким commit вызывается твой save. Узнай что такое этот user, не факт что это модель. Ну и в конце концов лучше не выёбываться и сделать по туториалу.

form = PartialAuthorForm(request.POST)
author = form.save(commit=False)
author.title = 'Mr'
author.save()
#495 #532297
>>532263
Во-первых, у тебя нет ни одного инстанс атрибута нет, всё классовое. Так и задумано? Во-вторых, как ты вызываешь супер с RegistrationForm в качестве аргумента если Meta не является подклассом этой самой формы? Как это вообще не крешится? В-третьих, судя по формату супера, ты используешь второй — а это значит, что от object наследуй классы, а не просто "class Meta:". Вангую, что сейв ни разу не вызывается. Да и где он, собственно, вызываться-то должен?
#497 #532326
>>532026
Уже весь гугл стёр, хер знает что делать.
#498 #532331
>>532325
Ты ожидал от российского ойти-образования чего-то другого? Хорошо что питон вообще есть. Обычно это бейсик, делфи и насилу пропихнутый маркетолухами сисярп. По выпуску человек умеет только формочки мышкой составлять и хелловорлды из трех строк писать. А потом такие приходят в зк и шутят про

>мы вам перезвоним

14 Кб, 364x253
#499 #532333
>>532325

>Боклаг Наталья Юрьевна

#500 #532335
>>532331
Да ничего я не ожидал, просто хочу табы на пробелы заменить.
#501 #532364
>>532294
>>532297
Спасибо, буду разбираться!
92 Кб, 175x175
#502 #532407
Хеллоу.
Начинаю учить пихтон по вот етому сайту: http://pythonworld.ru/samouchitel-python
Однако, я нихуя не понимаю.
Про какие-то там циклы, какие-то переменные, вообще охуеть.
Есть более удобный самоучитель? Чтобы прям вообще для ламера. А то там, я как понимаю, для тех, кто хоть что-то знает хотя бы по другим языкам.
Или может есть анон, который поможет мне в скайпике с этим? Будет моим наставником так сказать, пока я не начну разбираться в этом.
#503 #532418
Утонули? Утонули.
#504 #532420
>>532407
Попробуй Лутца навернуть. В шапке его книги есть, чувак максимально нудно и долго расписывает.
#506 #532450
>>532407
Антоша, если ты тут, поясню это справочник для тех кто уже гуру в проге и просто хочет освежить в памяти или понять вещи относящиеся конкретно к пистону, или дрочи Лутца или курсы, как тебе уже советовали.
#507 #532473
>>532420
>>532450
Лутца уже читаю, да, просто подумалось, што с сайтами быстрее будет, и што его, Лутца, будет мало.
Но таки спасибо, буду тогда дальше его читать.
А то мой лвл совсем мал.
Ухожу-ухожу с этого треда
#508 #532683
Подскажите какой-нибудь самоучитель по джанго, нихуя не соображу что к чему.
Тред утонул или удален.
Это копия, сохраненная 15 сентября 2015 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски