Этого треда уже нет.
Это копия, сохраненная 8 мая 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
282 Кб, 506x800
Python Thread #715860 В конец треда | Веб
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Код вбрасывать в тред через https://ideone.com/
Прошлый: >>708703 (OP)
#2 #715868
Антоша, ты уже перекатился на 3ю ветку? Используешь аннотации типов и статические проверки?
>>715881>>715925
#3 #715881
>>715868

> перекатился на 3ю ветку


В основном, но всё еще приходится работать с двойкой.

> Используешь аннотации типов и статические проверки?


Нет, какой профит?
>>715886
#4 #715886
>>715881

>какой профит?


-Раннее выявление ошибок (юниттесты тут тоже помогают, но далеко не всегда все покрыто на 100%)
-Удобство при рефакторинге (видно что где поломается при изменении интерфейсов)
-Адекватный автокомплит
-Лучшая документированность кода
>>715896
#5 #715896
>>715886
Очень хорошо, буду осилять.
>>715899
#6 #715899
>>715896
Рекомендую пописать что-нибудь простенькое на статике (вроде крестов с Qt, шарпа, или Scala), дабы ощутить профиты, и попытаться перенести эти ощущения на змеюку.
>>715984
#7 #715904
Такой вопросище, норм ли делать упражнения из сицп на питоне? Не встречусь ли я с непреодолимыми трудностями и опасностями?
>>715908>>716819
#8 #715908
>>715904
Хвостовой рекурсии не завезли, cons можно сэмулировать, но списки в питоне сделаны иначе, (квази)цитирования нема. Но в целом - должно подойти. Если поищешь, кто-то в жж даже пытался делать "перевод" сикпа со схемки в питон.
>>715914
#9 #715909
>>715608
Питон неудачный вариант для новичка. Язык сложный, возможностей мало, работы тоже мало, а на каждую вакансию десяток макак. Сейчас каждый школьник учит питон, а потом не знает что делать с ним. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. В Sublime Text как раз есть режим для него. По книгам. Если есть хоть немного знаний программирования, читай это: http://www.ozon.ru/context/detail/id/30425643/ Если совсем новичок, пойдет эта книга: http://www.ozon.ru/context/detail/id/28346038/ Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
#10 #715911
#11 #715913
>>715909
Заебал юродстововать. Мы тут серьезные проблемы обсуждаем
#12 #715914
>>715908
Спасибо, искать пожалуй не буду. Решил, как освою гвидон сносно, после него сицп на схеме пройду. Бросать неохота начатое
>>715917
41 Кб, 917x320
#13 #715916
>>715909
Понятно.
>>715919>>715985
#14 #715917
>>715914
Это наверное правильно. В питоне тоже много ФП, но оно фрагментарное, идиоматика в целом другая.
#15 #715919
>>715916
Работоблядь палится
>>715941
#16 #715925
>>715868

>аннотации типов и статические проверки


а че питон уже сам научился в это? последний раз когда щупал питон нихуя с ними не делал, типа оставили для разрабов всяких иде и специализированных тулз
>>715931
#17 #715931
>>715925
Тулза по-прежнему нужна, сам cpython типы проверять не умеет.
#18 #715941
>>715919
Два борща этому.
#19 #715984
>>715899
А если после статики не захочется возвращаться на питон?
>>715988
#20 #715985
>>715916
Ну правильно, у пидорах есть работа только на пхп. За рубежом же большинство крупных проектов написаны на Haskell, и серьезных специалистов по языку не хватает.
#21 #715986
Анон,я в депрессии.
Изучил Python, стоял выбор между противной жабой ,змеем и руби,затем прочитал подробное руководство по Джанге 2010 года(да,да,старая книга,но все,что писалось после нее говно без примеров). Озаботился поиском работы в моей мухосрани. Ни-че-го. Нет,я конечно подозревал что так примерно и будет.
Решил пока набить себе цену и пойти на хтмлакадемию. Пока решал задачки скроллил Авито и хх в поисках работы,в итоге единственное,что я нашел на данный момент,это ВЕБ-АДМИНИСТРАТОР. Прошел собес. Мне предложили 13-15к.
Ничего лучше у меня из вариантов не было и я согласился.
Краткая история моих походов:
1)-3 день. за 3 дня до выхода на работу,меня попросили сделать тестовое задание. Взять ключ от Хост-сервера,создать там веб пространство,зарегать домен,на этот домен залить переделанный мной сайт(поправить хтмл)
в итоге по моему ключу был закрыт доступ в админку и задание я сделал только на -1 день
2)1 день полностью был посвщен хостингу и иже с ним
3)2 день CMS. Вордпресс и прочее. я просто в рот ебал 3 часа через ВП переносить наполнение с 1 сайта на другой.
3)3 день. меня попросили разобраться в ПХП коде. Я в рот не ебу ,что там да как. Просмотреть синтаксис и обьектную модель я могу,но копаться в пыхе - не хочу.
В связи с этим я в депрессии. Понимаю,что на нынешней работе я занимаюсь нихуя не программмированием(вакансия изначально была как ПОМОЩНИК ВЕБ ПОГРОММИСТА ХТМЛ ЦИЭСЭС ЖАБАСКРИПТ),свой рост в этой компании не вижу,а большого выбора по городу и нет в общем то. Для работы по удаленке или переезда,надо хоть какой то проджект забацать,но я теряюсь в своих желания// возможности
Да и на переезд деньги нужны,так что от работы мне не отвертеться.
Анон,посоветуй чего то(кроме самовыпила,гейшлюх ,ну все этого),я в тебя верю
#22 #715988
>>715984
Захочется, тут дело не в питоне, а в качественных батарейках и 3rd party либах.
#23 #715989
>>715986
Нужно было учить хаскель, лошара.
Удаленочку ищи конечно.
#24 #715991
>>715986
Ну блин. Я когда осилял питон, твердо знал, что в своем городе работы не найду. Взамен конфигурял 1С и копил на съеб.
#25 #716005
>>715986
Да что вы к одной технологии цепляетесь и пиздец. Думайте масштабней, хотя бы в рамках сфер деятельности. Хочешь идеально совместимые с питоном хуйни: ищи что-нибудь из хтмл верстка/жс программинг/тестирование
162 Кб, 909x402
#26 #716013
Анон, объясни как сделать эту задачу и где почитать про классы максимально подробно. А то я второй час решаю уже.
#27 #716014
>>716013
У кого-то хуевый редактор, намешавший таб и спейсы.
#28 #716021
>>715986
Какого размера город? Больше полумиллиона?
>>716597
#29 #716023
Пиздос, никак строкоебля не дается. Нужно ПОДДАТЬ ГАЗКУ, придется еще ПОПОТЕТЬ

Расскажите, чем вы занимаетесь на работках, у кого они есть?
>>716034
#30 #716031
>>715779
Django: Практика создания Web-сайтов на Python В. Дронов
книга 2016 года, но Джанго там 1,6
Выбрал ее, потому что самая свежая, но теперь не знаю...
Шарящий анон посоветуй годноты по Джанге
>>716038
О #31 #716034
>>716023
Ебу пролетариев за каски, их руководителей - за безмозглость и все это под громкие улюлюки одобрения первого руководителя и гл инженера
#32 #716038
>>716031
2 scoops of django
Django by example
>>716046>>716216
#33 #716041
>>716013
По какой книжке учишь?
>>716043>>716054
#34 #716043
>>716041
Btie ff pthone
#35 #716046
>>716038
http://djbook.ru/rel1.8/
А вот это норм, а то у меня английский неочень
>>716051
#36 #716051
>>716046
Тогда учи сперва английский. Это реально самое важное в программировании.
>>716083
159 Кб, 873x288
#37 #716054
>>716041
Майкл Доусон. Но классы это слишком сложно. Не могу вкурить саму концепцию. Пытаюсь решать задачи с CheckIO. Но как видишь - нихуя пока не выходит.
#38 #716057
>>716054
бля, ваще стрёмную хуйню прикрепил
#39 #716061
>>716054
Прочитай парралельно в других книгах ту же тему, мне оче помогло
#40 #716067
>>716054
Прочитай вот это, мне помогло понять устройство классов и для чего они.

https://code-live.ru/post/cpp-classes/
>>716073
#41 #716073
>>716067

>Пишем упрощенный ассемблер и виртуальный процессор — часть 1



Годнота. напомнило, что на курсере есть курс, на котором от самого низа "собираешь" компьютер. Вплоть до языка высокого уровня, если я правильно помню.
задумался вот, разумно ли будет пройти его парралельно изучению пистончика.
>>716129
#42 #716075
>>716054
Классы в питоне вообще феерически просты. Если рассматривать основы - класс это всего лишь пространство имен, как модули. Только модуль один, а объектов созданных из класса может быть много. Ну и наследование - если имя не найдено в объекте, просматривается его класс и все классы от которых он унаследован. Хуле тут сложного то?
#43 #716076
Есть масса различных элементов и два возможных состояния у каждого. Нужно, чтобы это состояние рандомно генерировалось и не менялось в течении часа. Состояние каждого элемента не должно храниться в системе, а должно генерироваться по необходимости. Как это сделать? Пока есть идея такая - на основе номера часа и номера дня (чтобы каждый день новое и не повторялось в одинаковые часы каждого дня) и названия элемента сгенерировать случайное число от 1 до 10, если меньше 5 - то первое состояние, если больше - то второе. Но как сгенерировать число на основе другого числа? Или как ещё можно генерировать неизменное состояние (одно из двух), так, чтобы оно было одинаковым весь час?

Приведу пример. Есть элементы А, В, С. И два состояния - 1 и 2. Допустим, в 20:00 часов при запросе их состояние вернётся А-1, В-1, С-2. Если сделать запросы в 20:05, 20:22, 20:45 и так далее, что вернётся всё равно А-1, В-1, С-2. Но если сделать запрос в следующий час, например в 21:03, то вернутся другие состояния для элементов, например А-2, В-1, С-1. Они не должны храниться где то, а должны именно генерироваться. Как такое сделать?
>>716082
#44 #716082
>>716076
random.seed - начальное состояния ГПСЧ. То что тебе надо
>>716111
#45 #716083
>>716051
Да понятно что английский нужен, но параллельно хотелось бы на русском по максимуму выучить. Тем более гугл переводчик пока спасает если нужно что-то на англ форумах почитать. Правда с книжкой сложнее уже конечно.
>>716086
#46 #716086
>>716083
Не слушай этих инглишфагов, для базовых знаний на русском масса информации, а для чтения документации к конкретным либам хватает знания на уровне "лондон из зэ кэпитал оф греат бритейн", говорю на опыте, сам инглиш никогда целенаправленно не учил
#47 #716088
Посоны, насчет читаемости кода.
Пока не устроитесь на работу не поймете, что цикл на 10 строчек лучше, чем пижонистый однострочник из map и лямбд.
>>716092
#48 #716092
>>716088
пиздешь, работаю в команде, хуярю дичайшие однострочники, коллеги уже научились их читать
>>716095
#49 #716095
>>716092
Ну да, из этого непременно следует твоя неоспоримая правота
#50 #716096
Я тут, чтобы напомнть вам что ВИМ-лучший редактор.
>>716099>>716103
#51 #716099
>>716096
Тесты то пишешь?
>>716101>>716104
#52 #716101
>>716099
Нет, я свободен от этого
#53 #716103
>>716096
Сосёт с проглотом у Эмакса.
>>716110
#54 #716104
>>716099
конеш пишу, но после кода, ебал я эти tdd в туза
>>716108
#55 #716108
>>716104
Молодец. А то работал один, тоже писал в vim вместо ide, задолбались за ним править опечатки.
#56 #716110
>>716103
Но почему?
#57 #716111
>>716082
А как получать потом нужное значение? random.getstate?
>>716124
#58 #716124
>>716111
нахуя тебе его потом получать?
делаешь в функции
random.seed(seed)
state = random.randint(0, 1)
random.seed(time.time()) # возвращаем старое состояние генератора

Значение сида придумай как достать из текущей даты/времени, чтобы менялось только раз в час. Оператор % тебе в помощь.

Да, кстати, это решение не потокобезопасно, но я почти уверен что для твоей задачи это похуй
#59 #716128

> if __name__ == '__main__':



Часто в коде встречаю такую строчку в конце. Объясните, пожалуйста, что она означает?
#60 #716129
>>716073
Сначало питон нормально выучи, а потом интересностями заниматься будешь. А то получится как лебедь, рак и щука, ничего конкретного не усвоишь.
>>716138
#61 #716131
>>716128
Во-первых, такое легко гуглится.
Во-вторых, это такая принятая точка входа в программу питона. name будет равен main только когда ты запускаешь этот файл, а не импортируешь. Секешь?
>>716135
#62 #716132
>>716128
условие выполняется если файл запущен напрямую, а не через импорт.
>>716135>>716140
#63 #716133
>>716128
Это магия.
#64 #716135
>>716131

> name будет равен main только когда ты запускаешь этот файл, а не импортируешь.


> Секешь?


Нет.

>>716132
Какое условие?
#65 #716137
>>716135
Сукин сын.
#66 #716138
>>716129
true storey
#67 #716140
>>716132
Вы мне тут условия ставите?
#68 #716147
>>716135

>Какое условие?


Проиграл.
#69 #716150
>>716013
что за дичь на этой картинке блеять?
>>716151
#70 #716151
>>716150
Ну, бог, тян, кун. Ты историю не учил чтоле?
>>716171
#71 #716171
>>716151
как бы да. но почему бох не класс?
и зачем нужен {man, woman}?
>>716290
#72 #716216
>>716038
Ссылку на скачивание Джанго бай экзампл можешь дать? Не могу найти.
>>716231
#74 #716290
>>716171
Условиями определено. Нужно создать класс Human и подклассы Man, Woman. После вызвать всё методом God.
#75 #716340
>>716290
list.append() не возвращает ничего, он in-place добавляет элемент. Не говоря о том, конечно, что ты нигде этот population не определил, и как ты собрался к нему что-то добавлять — не ясно. Мне кажется, тебе стоит перечитать книжку с самого начала.

И как классы инициировать тоже. И как детей инстанциировать. У тебя в init'е Human'а есть обязательный аргумет name, но Man и Woman ты вызываешь без каких-либо аргументов. Ошибок не выдаёт, потому что ты инит родителя не вызываешь.
#76 #716350
>>716290
И вообще как с классами работать ты не знаешь, там какая-то наркомания у тебя написана. Сделай шаг назад, забудь пока про наследование.
>>716361
#77 #716359
>>716231
Ты че вирусы суешь?
>>716912
85 Кб, 885x336
#78 #716361
>>716350

>там какая-то наркомания у тебя написана


А так?
>>716367
15 Кб, 620x188
#79 #716367
>>716361
Ты видишь, что тебе интерпретатор говорит?
Давай попробуй тебе своим методом объяснить. Почему этот код не рабоатет и выпадает с той же ошибкой?
>>716369>>716371
17 Кб, 627x203
#80 #716369
>>716367
Ой, проебался чуток с классом.
>>716373
#81 #716371
>>716367
Ну я понимаю, о чём ты и о чём интерпретатор, но не могу понять как исправить. Как мне получить доступ к массиву (popul) в родительском классе?
>>716373>>716377
#82 #716373
>>716371
Что нужно сделать, чтобы у b появился атрибут 'attr' в этом коде >>716369?
>>716378
#83 #716377
>>716371
Для начала, можешь попробовать уже после инстанциирования класса, т.е.:
b = B('asd')
# insert something here
print(b.attr)
#84 #716378
>>716373
def metod(self, attr)
Вроде понял
>>716380
#85 #716380
>>716378
Нет, увы, не понял. У b уже есть метод method, если ты не хочешь изменить его поведение, то def'ать заново не нужно.

b = B('asd')
b.method()
print(b.attr) # -> "Attr!"

Но вызывать его после создания как-то не круто, где же его вызывать?
>>716392
#86 #716392
>>716380
при объявлении класса
>>716399
#87 #716399
>>716392
Верно. Покажи код.
>>716406
31 Кб, 618x193
#88 #716406
>>716410>>716413
#89 #716410
>>716406
ээ, нет. Здесь attr у тебя это классовый атрибут. http://ideone.com/SxuJEn

Ты же сам ответил, что нужно вызвать при объявлении класса, так и что же ты ничего нигде не вызвал?
>>716428
#90 #716411
Под "объявление класса" ты ведь метод __init__ имел в виду, или нет?
#91 #716413
>>716406
Дима?!
>>716420
#92 #716420
>>716413
Бля. А ты кто?
>>716434
32 Кб, 701x203
#93 #716428
>>716410
А щас?
>>716434
#94 #716434
>>716420
Угадай. Ты же вроде относительно много чего писал, как так классы/наследование не понимаешь?

>>716428
Бинго! Теперь только замени A на super(), чтобы не быть привязанным к названиям классов. (И уже не нужно будет self туда передавать)
#95 #716444
>>715860 (OP)
Какие для Питона есть GUI для Windows, чтобы делать оконный интерфейс, наподобие GUI в Delphi. Если там будет графический редактор для конструирования оконных форм, то совсем хорошо.

Заранее спасибо
>>716452>>716455
#96 #716452
>>716444
tkinter, qt, wxPython, gtk
12 Кб, 658x389
#97 #716453
Посоны подскажите за pip. Установил его, хотя потом узнал что он уже есть в питоне 3.4. Путь к нему указал в path. Но он собака не хочет работать. На любую команду реагирует так: курсор просто переходит на след строчку, ничего не происходит и вводить тоже уже ничего нельзя. Есть идеи где искать проблему?
>>716458>>716459
75 Кб, 972x712
#98 #716455
>>716444
У тебя есть выбор между gtk3 и qt5, qt получше умеет в кросплатформенность и вообще предпочтительней для windows, но гуевый редактор форм(=генерагор говнокода) только под кресты. В гтк есть граф. редактор интерфейсы можно строить через glade(интерфейс или его елементы хранятся в отдельных xml файлах, очень удобно-хорошо сделано), плюс умеет в css, но gtk хотя и неплохо умеет в окна больше прищиксориентированный.
Ну есть конечно ещё пачка маргинальных недотулкитов для Ъ.
>>716625
#99 #716458
>>716453

> windows


Жди пока убунту в дрисняточку запердолят.
>>716527
#100 #716459
>>716453
Ну очевидно же, что нужно что-то переустановить. Если лень винду, то попробуй питон.
>>716470
#101 #716470
>>716459
а лучше биос переустановить.
#102 #716527
>>716458
Ничего ждать не намерен, ставлю уебунту прямо сейчас. Нахуй эти виндоговна. Да и новый опыт как никак.
>>716528
#103 #716528
>>716527
После чего изучу емакс. Буду как царь. Хочешь-пирожные. Хочеш - морожные.
>>716530
#104 #716530
>>716528
vim же!
>>716532>>716913
#105 #716532
>>716530
Я не ведаю раницы меж ними. Значит,предстоит еще выбрать
>>716534>>716615
#106 #716534
>>716532
это одно и тоже
>>716615
#107 #716582
>>716231
Файл сломан.
>>716912
#108 #716597
>>716021
миллионник на западном урале
#109 #716615
>>716532
Не слушай этого >>716534 , вим для ровных пацанов, емакс для штульманоподсосков.
#110 #716625
>>716455

> но гуевый редактор форм(=генерагор говнокода) только под кресты


Вообще-то qt генерирует xml файл с описанием gui.
>>716657
#111 #716657
>>716625
Таки да, я совсем объебался, в коде он только обработчики для сигналов генерирует.
#113 #716733
>>716681
Не буду смотреть, страшно
#114 #716799
Что такое селениум?
>>716800>>716840
#115 #716800
>>716799
БАМП
>>716822
#116 #716801
А что спрашивают на собеседования на Python программиста?
>>719211
#117 #716819
>>715904
на ycombinator была ссылка sicp-заданий, адаптированных под пипитончик
#118 #716822
>>716800
тулза для тестирования веб-интерфейса, кликает по кнопкам, ищет элементы по селекторам, вот это вот всё
#119 #716827
Аноны, что нужно знать, что бы взяли джуниором за 25-35 к в месяц?
#120 #716832
>>716135
направление?
какое направление?
#121 #716840
>>716799
тулза, запускает браузер и предоставляет интерфейс для управления им (найти элемент, ввести буковки, кликнуть)

в качестве браузера может быть и phantom какойнибудь
#122 #716901
http://pastebin.com/tpz6JQ7h
кот нибудь может объяснить, что за хуйня? почему если я таким способом задаю список, то я отсасываю?
#123 #716904
>>716901

>foobar[0][0]='a potom takoi vnezapno zaglotnul'


так не делается
>>716908
#124 #716908
>>716904
в смысле?
#125 #716912
>>716359
>>716582

>Ты че вирусы суешь?


хуй знает, пардон. Я недавно качал сам и эту ссылку достал из истории. Там, правда, было несколько. Наверное эта нехорошая.
или менее вероятный вариант: вы просто ебнутые
#126 #716913
>>716530

>работаешь в вим, так как не знаешь, как из него выйти

>>719210
#127 #716914
Так пацаны, подскажите мне вот по такому вопросу - освоил основы питона. С чего начать изучение фреймворков, например фласка? А то там не совсем понятно излагается. Благодарю.
#128 #716918
>>716901
Ты создаешь несколько ссылок на один и тот же объект, я так понимаю.
>>716933
#129 #716922
>>716901
А что не так собственно?
#130 #716925
>>716290
сделай класс Бох, от него наследуй Чиловик, а от него уж Жинка. Бох может делать Чиловика, а так же, при условии существовании Чиловика делать Ж (при этом у человека переменная rib_count уменьшается на 1). если ребер станет слишком мало, то полэкрана темные
По мере наследования делай так, чтобы классы деградировали.
Например, Бох может create() Человека, Ч может create() двачи, ну а жинка может create() только борщ.

Мало того, что наследование раскроется более понятно чем в твоем примере, так и с философской точки зрения вернее.
А потом еще в /fem можно будет вбросить чем в /pr хуебляди занимаются
#131 #716933
>>716918
но почему тогда со вложенным всё нормально? то есть у меня в итоге 2 различных объекта, а не 1
>>716960
#132 #716948
еще 2ва вопроса
1. как найти индекс минимального значения в n-мерном списке? то есть для одномерного списка это было бы govno.index(min(govno))
2. как происходит сравнение списков\строк? ('govno' < 'mocha' == True) (или куда уебывать читать)
>>716973>>717056
#133 #716960
>>716933
Видимо, дело обстоит так:
foobar содержит список из двух ссылок на один и тот же объект, который содержит две ссылки на одну и ту же строку.
При объявлении foobar[0][0] = 'another string', в это объекте изменяется не строка, потому как она неизменяема, а вставляется новая ссылка, указывающая на новую строку 'another string'.
В итоге foobar содержит две ссылки на один и тот же объект, содержащий две ссылки на разные строки.
Но я этого не знаю наверняка, это лишь мои домыслы.
>>716973
230 Кб, 1000x984
#134 #716973
>>716960
спасибо, хотя бы смогу уснуть этой ночью
>>716948
уже успел наковырять велосипед (http://pastebin.com/us11nP1X), но все таки интересно, можно ли как нибудь без потного очка обойтись
>>716980
#135 #716980
>>716973
Не знаю насколько это правильный вариант, но для двумерного попробуй вот так:
list_2d = [[1,2,3,4,5], [6,7,8,9,10]]
min(min(x) for x in list_2d)
>>716984>>716987
#136 #716984
>>716980
думаю рекурсию нужно делать, чтобы оно лезло до тех пор пока не найдет числовой тип, вместа списка
#137 #716987
>>716980
так мне же нужны индексы минимального значения в списке
то есть в твоем примере это было бы (0,0)
>>716989
#138 #716989
>>716987
Ну уж с этим с сам сможешь разобраться, я думаю.
>>717105
#139 #717046
>>715860 (OP)
так анон приспичило перекатить с эклипса на что другое но вот на что?если есть такие кто пишет не в стандартной idle кидайте свои среды и плюхи которые там есть
#140 #717056
>>716948

>как происходит сравнение ... строк?


лексикографическое сравнение
>>717105
#141 #717057
>>717046
Pycharm / Visual Studio
плюхи найдешь в гугле
>>717293
#142 #717058
>>717046

>есть такие кто пишет не в стандартной idle


а есть такие, кто пишетт в идле?

sublime юзаю, горя не знаю
#143 #717105
>>717056
а списков?
>>716989
так я уже разобрался, а встроенной (или менее говнобыдлокодовой по сравнению с моей) хуйни нет? этожпитон
#144 #717140
>>717046
Vim. Нужно привыкнуть, зато потом будешь набирать код быстрей, чем в любой другой IDE. Ну и скорость работы такая, что саблайм отсасывает.
#145 #717254
Поясните за библиотечки для реализации действий конечного автомата. Можно и самому на коленке сделать в два приёма, но хочется на годноту взглянуть.
>>717255>>717258
#146 #717255
>>717254
Во, раз ты такой окодемик, поясни. Игра жизнь это тоже конечные автоматы?
>>717259>>717396
#147 #717258
>>717254
Там же 10 строчек кода, нафига библиотеки?
#148 #717259
>>717255
Классическую пеку с любым ПО можно рассматривать как конечный автомат.
>>717297
#149 #717293
>>717057
я фанбой Пичарма но есть у него пара блять выбешивающих глюков.
Копи/пасте иногда вырубается
и гомоебля с кешированными программами.
Когда ты все 300 раз поменял, а запускает то что было полчаса назад. И нужно делать рестарт всего пичарма, но не всегда помогает.

А ведь я ебаная утка и перекатываться мне некуда
>>717296>>717298
#150 #717296
>>717046
vim
>>717293
vim

/thread
#151 #717297
>>717259
Если не знаешь за Тьюринга, то да, можно
#152 #717298
>>717293
Все продукты жетбрейнс - Пичарп, Вебшторм, Идеа и другие хороши, но у них есть один недостаток - они медленные как пиздец, лагают, фризят, а три одновременно открытых окна съедают весь процессор. Похоже правда придётся учить вим.
>>717299>>717303
#153 #717299
>>717298
Глянул я на это чудище. Что же это делается, товарищи? Уж лучше наверное в идле писать.
>>717302
#154 #717300
>>715860 (OP)
Поясните за Пайтон.
Скачал The Meaning of Life, осилил 20 минут. Какое-то петросянство тупое, чувство вкуса вообще ноль. Так и задумано? Почему это говно считается годнотой? Чисто из-за легаси, типа 30 лет назад ничего умнее не было, поэтому приходилось этот трэш смотреть? Или это из категории "миллионы мух не могут ошибаться"?

Мне как-то неприятно, что самый охуенный ЯП был назван в честь такого говна.
>>717301>>717316
#155 #717301
>>717300
Твои аргументы инвалиды, потому что субьективны. В б твой вброс лучше бы смотрелся
>>717333
#156 #717302
>>717299
Ну вим не осилил - пиши в саблайм тексте или в емаке или в виндос-нотпаде. Какая разница-то? Что тебе нужно - ide или текстэдитор? Определись что ли. Вим - это текстэдитор, а не ide.

На саблайм есть плагин с автодополнением, что-то там с "zen" в названии.
#157 #717303
>>717298
Вим тоже успешно лагает при установке аддонов. Атом ещё попробуй. Годная альтернатива сублайму. Как по мне это самый удачный редактор evermade: все возможности рендеринга хрома (всё на сишечках, border, border-radius, картинки), вся подсветка сделана ксс классами (возможен доступ к ней через API, семантические классы у них называются scopes и через спец апи выдаются), всё можно стилизовать тоже классами. Даже keybinding классами сделаны, что часто вводит в ступор нубов, но если вдуматься, это оче хороший вариант, специфичность селекторов можно использовать чтобы твой бинд срабатывал например только в питоньих функциях.
>>717309
#158 #717305
Пока вы тут про вим начали, я вспомнил что в 10 слепых пальцев не могу. 15 минут в тренажере, аж вспотел
>>717308
#159 #717308
>>717305
Мышь таки добавляет продуктивности, кто бы там что ни говорил. А вот клавиатурный ввод а-ля терминал (двойные esc, ебанутое переключение языка и прочая херь) нет. Вим хорош, но как донор идей. Я например унёс из него команды вроде yiw. Остальное хуета и нинужно, всё равно никогда все команды оттуда знать не будешь, даже листик на стене слабо помогать будет.
>>717332
#160 #717309
>>717303
Мне нравится Атом по функционалу, удобству и плагинам, но он тоже не самый быстрый. Быстрее жетбрейнса, но в нём нет некоторых фич, которые есть в жетбрейнсе вроде автодополнения методов, экспортированных из другого файла. То есть, он дополняет только то, что есть в том файле, с которым ты работаешь.
>>717367>>718170
#161 #717316
>>717300
То ты, говно, осилил всего 10 страниц , но уже решил высказать свое авторитетное мнение?
Нахуй пошел, школотрон ебаный
>>717333
#162 #717332
>>717308

>Мышь таки добавляет продуктивности, кто бы там что ни говорил. А вот клавиатурный ввод а-ля терминал (двойные esc, ебанутое переключение языка и прочая херь) нет.


Только если ты школота, тыкающая в клавиатуру указательными пальцами.
>>717346
#163 #717333
>>717301
>>717316
Нахуй вы вообще рот открываете, если сказать по делу нечего? Хуевая привычка - пиздеть впустую.
>>717341
#164 #717341
>>717333
Можешь начинать закрывать свое ебло.
7 Кб, 236x236
#165 #717346
>>717332
К слову, вим рекомендует использовать мышь для ресайза сплитов, так как клавиатурное управление слишком сложное и неинтуитивное.
>>717351
#166 #717350
Посоны, изучаю python django. На просторах интернета нашел задание сделать игрульку КНБ с такими условиями:
1) Список игроков онлайн и он должен обновлятся как вконтактике, если игрок залогинился, то показать его в списке.
2) Создание комнат игроков, спискок комнат, все обновляется как вконтактике.
Основная сложность это в обновлении, я не знаю как это сделать. Подскажите как такое запиливать? И как продумать структуру сайтика, чтобы запилить без костылей
#167 #717351
>>717346
Не знаю, какой вим используешь ты, но мой вим запускается в терминале и вообще на мышь никак не реагирует.
>>717352>>718169
#168 #717352
>>717351
В конфиге вима set mouse=a и мышь будет работать.
#169 #717353
>>717350

>Посоны, изучаю программирование. Нашел задание сделать программу. Подскажите как такое запиливать?

#170 #717358
>>717350
Кинь ссылку на задания, брат.
>>717360
#171 #717360
>>717358
Ссылки нет. Давно когда-то текст сохранил среди книг и прочего мусора.
#172 #717364
>>717350
Хуяришь сокеты/вебсокеты, по ним рассылаешь данные как только получаешь инфу о коннекте/дисконнетке кого-то.
#173 #717367
>>717309
Ты хотел сказать: "в тех файлах, которые открыты".
#174 #717383
>>717046
Спайдер. Встроенная документация, окно переменных, веселое автодополнение и т.д. Но он не для больших проектов.
>>717394
#175 #717394
>>717383
Конченый дебагер, каждый второй запуск которого кончается фризом и kill process. Отсутствие минимальных необходимых хоткеев. Рандомные фризы намертво каждые 10 минут.

Отвратительная ide, мне бы на месте разрабов было стыдно такое говно в продакшн выкатывать. Нирикаминдую никому.
#176 #717396
>>717255
more like клеточный автомат

но учитывая конечность поля (и всех комбинаций) - да, конечный автомат
#177 #717406
Прохожу на codecademy, что-то не особо понял, зачем нужна лямбда? Где ей можно найти применение?
>>717407>>718165
#178 #717407
>>717406
когда надо запилить функцию типа если чётное делить на два и в квадрат но лень ебаться с деф
>>717610
#179 #717430
  ▲
▲ ▲
#180 #717431
 ▲
▲ ▲
#181 #717432

▲ ▲
#182 #717435
Анон,поясни за CMS. Чем удобна ,функционал(знаком сджумлой,ВП ),прослышал,что есть такие же на питоне. Как именно сиэмэски для конкретно РАЗРАБОТЧИКА,а не сеошников и прочей параши
>>717436>>718166
#183 #717436
>>717435
помогают*
быстрофикс
37 Кб, 756x752
#184 #717441
Где искать готовые конфиги для дефолтного ide? Лень самому настраивать.

мимо нюфажик
>>717456
#185 #717445
Запускаю скрипт и в строчке с import requests пишет что ImportError: No module named 'requests'. Он стоит т.к. в папке /usr/lib/python2.7/dist-packages/requests все файлы на месте.
adapters.py, adapters.pyc, api.py, api.pyc, auth.py, auth.pyc, certs.py, certs.pyc, compat.py, compat.pyc, cookies.py, cookies.pyc, exceptions.py, exceptions.pyc,
hooks.py, hooks.pyc, __init__.py, __init__.pyc, models.py, models.pyc, sessions.py, sessions.pyc, status_codes.py, status_codes.pyc, structures.py, structures.pyc,
utils.py, utils.pyc


Что не так? Скрипт чужой и я питон не знаю.
>>717455>>718202
#186 #717455
>>717445
Разобрался. Теперь он пишет это.
File "/usr/lib/python3.4/ctypes/__init__.py", line 429, in LoadLibrary
return self._dlltype(name)
File "/usr/lib/python3.4/ctypes/__init__.py", line 351, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libX11.so: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
>>718168>>718202
#187 #717456
>>717441
извращенец, поставь PyCharm
>>717459
41 Кб, 1030x692
#188 #717459
>>717456

Да есть пишарм, там так то все удобно, но я уже 15 минут не могу поставить свой шрифт. Тему свою создал, чтоб можно было менять параметры, а выбор шрифтов очень маленький, и все хуевые, оно из системы не подхватывает или я делаю что то не так. Как мне поставить мой любимый дроид санс?
#189 #717461
>>717459
да это же любитель свистоперделок!
конфиги для айдл, шрифт для пайчарм..
десктоп-тред в другом разделе
>>717462
#190 #717462
>>717461

Да какие перделки, я шрифт нормальный хочу, у меня и так -2, я хочу чтоб глаза не болели, вот и все.
#191 #717529
>>717459
Сними галку "Show only monospaced fonts" и можешь ставить свой любимый Comic Sans.
#192 #717532
  ▲
▲ ▲
#193 #717533
Анончики, вызываю функцию с 'kwargs' и в цикле может сначала вызваться первая, а после вторая функции(что нужно). Но если я запускаю скрипт опять, то они могут поменяться местами.

http://pastebin.com/wAhNG45e

Как исправить?
>>717534
#194 #717534
>>717533
kwargs является словарём, а значит его элементы неупорядочены. Используй args, ты всё равно ключи никак не используешь.
>>717537>>717545
#195 #717537
>>717534
А как их группировать?
>>717539
#196 #717539
>>717537
Кого и во что группировать?
>>717540
#197 #717540
>>717539
kwargs и словари.
>>717542>>717550
#198 #717542
>>717540
use args
#199 #717545
>>717534
Я имел в виду что-то подобное: https://ideone.com/UqNvzg
>>717593
#200 #717550
>>717540
Я не понимаю о чём ты.
#201 #717564
>>717459

Попробуй DejaVu Sans Mono или Menlo - имхо лучшие шрифты.
#202 #717593
>>717545
К примеру, если параметр 'value' равен 1, то исполнить 1-ую функцию, иначе (иначе если) -- другую или другие.
Как это можно сделать?
>>717598>>717619
#203 #717598
>>717593
Именно из args.
#204 #717610
>>717407

>если


Там оно встроено типа? Кроме если в лямбде ничего нельзя?
>>717624
#205 #717619
>>717593
https://ideone.com/7i6UsE
Может тебе стоит начать с типов данных?
>>717626
#206 #717624
>>717610
Типа этого:

if value == 1:
...for f in args:
......f()[0,1]
else:
...for f in args:
......f()[2]

Но тут не получается вызвать из-за понятных причин
#207 #717626
>>717619
А, вот тут я и обосрался.
#208 #717672
>>716013
Что на пикче за редактор?
>>718022
#209 #717984
Анон, есть время и желание покрыть тестами веб-приложение. Обычный MVC на Питоне: плюёт гет-пост на апи, и жсоны на аякс. Скиньте, если есть, какой-нибудь гитхаб-проект с живыми рабочими тестами, а не assert(2, 1+1).
>>718000
#210 #718000
>>717984
Проект не подскажу, но по тестированию джанги вот тут расписанное http://www.obeythetestinggoat.com/ безусловный лидер
>>718016
#211 #718016
>>718000
Спасибо!
Всё равно одни ассерты тупые там:
def test_home_page_returns_correct_html(self):
request = HttpRequest() #1
response = home_page(request) #2
self.assertTrue(response.content.startswith(b'<html>')) #3
self.assertIn(b'<title>To-Do lists</title>', response.content) #4
self.assertTrue(response.content.endswith(b'</html>')) #5

Вот какой прок от этой хуйни? Что она проверяет? Поясняйте.
>>718342
#212 #718022
>>717672
похож на geany
#213 #718034
Сап, питоны. Где смотреть в Питоне возможность писать алгоритмы, которые создают другие алгоритмы, которые затем и вычисляются ?
>>718071
#214 #718071
>>718034

> google: python metaprogramming

#215 #718086
Посоны, кто-то из здешних питонистов юзает vim в работе? Покажите, как он у вас выглядит.
>>718088
#216 #718088
>>718086
Чтоб ты меня потом по скринам на лоре искал? Один такой уже попался.
>>718090>>718091
#217 #718090
>>718088
Да нахуй оно мене нааадо? Правда ведь интересно.
другой онон
#218 #718091
>>718088
Нахуя? Я просто нашел такую штуку https://www.fullstackpython.com/vim.html и интересно, как у других выглядит.
>>718092
#219 #718092
>>718091
Как вы на этот сайт заходите, он же не открывается
>>718093
#220 #718093
>>718092
Проебался с ссылкой.
https://realpython.com/blog/python/vim-and-python-a-match-made-in-heaven/

Вот, смотри, какая няшнота.
>>718124
#221 #718116
>>715860 (OP)
Почему джанга на каждый запрос к бд открывает новое соединение, вместо того чтобы переиспользовать существующие? На существующем проекте на постгресе, сайт крешится при 100 коннекшенах. В качестве временной меры пока просто увеличено max_connections в postgresql.conf и использован pgbouncer.
>>718164
#222 #718124
>>718093
Няшнота, конечно, но чую кривая обучения как в дварф фортресс
#223 #718164
>>718116
У тебя там случайно не mod_python под апачем?
>>718940
#224 #718165
>>717406
sorted(dct.items(), key=lambda x: x[0]) например
#225 #718166
>>717435
Очевидный mezzanine. Но я не трогал даже его. На джанге быстро накатать можно всё что надо, чем ебать плагины хуков конфигов роутингов.
#226 #718168
>>717455
requests не требует иксы.
#227 #718169
>>717351

>вим


>в терминале


>на мышь никак не реагирует


Пиздец ты страдалец. Наверное под Z80 сидишь.
#228 #718170
>>717309
Дефолтный автокомплит в атоме наверное так и работает. Аддоны ставь. Автокомплит там как бы фреймворк, для которого аддоны уже что хотят то и воротят.
#229 #718172
Оказывается в идле есть автодополнение. Век живи век учись!
#230 #718180
Знаете, я сегодня выходил покурить где то в час ночи на улицу. Спустился. Темно, но людей довольно много - быдло бухает где то дальше, в темной части двора, какие то тни ходят. А воздух теплый-теплый. Такой, каким должен быть. И ощущение такое стало, что этот воздух - он близкий и родной. До этого была какая то злая фальшивка, а теперь он стал какой всегда был, пока его у тебя не отняли. Настоящий. И хоть ночь была, но вокруг всё было белоснежно яркое - не лживым солнечным светом, а настоящим. Это как настоящий полдень. И фонари с короткими лучиками света далеко тянулись. Небо неразличимое, свет похожий выхватывал только части громад домов. И я понял, что дома живые. Если приложить щёку у дому, то покажется, будто он неподвижен. Это неправда. Если содрать рукотворные картонные оковы со стены и. прижаться к камню, то можно почувствовать, как дом дышит. Стены не монолитны. В них много отверстий, зазоров и другого. Дом втягивает в себя воздух всем, чем может. Долго, часами, иногда сутками. А потом тяжело выдыхает, выбрасывая на улицу переработанный воздух. Это и есть тот воздух, который так близок нам - плесени на куске камня в космосе. Мы сами создали тех гигантов и вступили с ними в сиимбиоз. Зимой мы греем их изнутри, поддерживая в них дремлющую жизнь, как в цветке. А летом солнце нагревает камни и гигант начинает дышать. Воздух постепенно меняется, и вместе с ними расцветаем мы.
#231 #718181
>>718180
Это про ООП?
#232 #718182
Существует ли какая-нибудь практика по поводу применения списков и генераторов? Типа "применяй генераторы вместо списков всегда, когда это возможно", или это всегда дело вкуса?
>>718183
#233 #718183
>>718182
Применяй генераторы вместо списков когда тебе совершенно не нужно держать весь мудиллион элементов в памяти. Применяй генераторы чтобы упростить код, вместо накапливания result можно делать просто yield.
#234 #718184
>>718180
Продолжай.
#235 #718186
>>718180
Может, тоже больше дома не курить? Вдруг, обучение быстрее пойдет
#236 #718194
>>718180
Дима?
#237 #718202
>>717445
>>717455

>/usr/lib/python2.7/


>/usr/lib/python3.4/

#238 #718210
>>718180
Ебать ты накурился.
513 Кб, 1384x2085
#239 #718228
Аноны, кто сталкивался с загрузкой фото в вк, как загрузить через vk либу? С получением ссылки через getWallUploadServer вроде разобрался, а дальше как загружать?
>>718271
105 Кб, 2560x1440
110 Кб, 2560x1440
110 Кб, 2560x1440
101 Кб, 2560x1440
#240 #718259
Аноны, у меня бугурт. Попробовал тест по пайтону на апворке и, сука, даже не дашел до конца. На 40 вопросе мне написали что я такое днище, что дальше продолжать смысла нету и оценочка 0.8
До этого момента, я наивно полагал, что немного могу в пайтон. Грусть, печаль, короч. Хочу самовыпилится нахуй.
#241 #718271
>>718228
Тебе лень гуглить или там что-то поменялось?
https://toster.ru/q/235833
>>718293
#242 #718275
>>718259
Что тебе те тесты? То что ты делаешь - должно тебе доставлять. Если доставляет - ты хороший специалист и идёшь по пути дао в профессионалы. Если нет - хоть рукой по локоть в сраку ебись а дела не будет.
А питон что - питон это конструктор лего современности - 100500 библиотек на все случаи жизни из которых за три щелчка пальцами лепится и автоматизируется всё что ты хотел. Где тут можно обосраться?
Короче не унывай, ты не на соревновании и ты уже и так отстал от всяких детей Ротшильдов или тех уёбков кто программировать начал в 3 на калькуляторе, что остаётся это в удобном тебе темпе бежать к своей последней черте и по пути наслаждаться пейзажами.
>>718283
#243 #718283
>>718275
Спасибо, анон. Понимаю что реальный кодинг и тесты это разные вещи, но для себя решил потихоньку перечитать все доки по пайтону, может после этого буду увереннее себя чувствовать.
>>718309
#244 #718293
>>718271
Я это смотрел уже. Во-первых, там используется по хардкору через реквесты, а не через библиотечку vk, плюс подгружается какой-то левый модуль написанный на втором питоне. И еще gid - что это вообще за пустая строка? В общем, ерунда какая-то. И нигде нет нормальной документации и примеров, я допер как получать токены только за часов пять, это пиздец просто.
>>718300
#245 #718300
>>718293
А как ты их получаешь?
Я пытался вообще на urllib.request, не вышло
Пришлось вручную копировать токен из адресной строки браузера и скармливать скрипту каждый раз
>>718305
#246 #718305
>>718300

>скармливать скрипту каждый раз


Зачем скармливать каждый раз? Тупо отправляешь offline параметр со всеми остальными в scope и он тебе генерит бессрочный токен.
Я тоже в браузере получал, хотя по идее можно и через скрипт парсить, через параметр display=mobile, чтобы жс не генерило.
>>718310
#247 #718309
>>718283
Ну смотри, я думаю что не лучше тебя но вроде бы 2 вопрос - на общее понимание ООП.
Я не знал что такая стандартная поебень есть в питоне, с проблемой был знаком по джаваскрипту
переменной присваевается не объект а ссылка на него, поэтому если ты создал obj, и написал сначала a=obj, потом b=obj, то при изменении a (например добавлении атрибута) то же самое происходит с b.
Если же хочешь поменять b не трогая a, надо создать новый пустой объект b=obj2 и по циклу скопировать все методы-атрибуты a, что и делает как можно угадать из названия deepcopy.
Тогда a и b будут ссылаться на разные, хоть и одинаковые, объекты.
То есть не факт что от тебя хотят именно задротства и знания каждой либы по питону, мб поможет какая-то книжка с теорией.
>>718329
#248 #718310
>>718305
В каком scope? Display=mobile там же писать?
>>718311
#249 #718311
>>718310
Ну, scope - запрос доступа ко всяким функциям. Я про standalone говорю, если что.
Там идет запрос типа такого: https://oauth.vk.com/authorize?client_id=1234567&display=mobile&redirect_uri=http://vk.com&scope=wall,offline&response_type=token&v=5.50
>>718322
#250 #718316
Вопрос уровня дебила:

>for i in range(....):


>....for j in range(.....):



можно как-то деликатнее написать? что бы без цикла, мож в стандарной библиотеке какое волшебство и на этот случай припасено?
#251 #718320
>>718316
смотря какая у тебя задача, пиши конкретнее
>>718330
#252 #718322
>>718311
про мобайл понял, но как сделать этот запрос из питона и получить токен?
>>718422
#253 #718329
>>718309
На этом конкретном вопросе я тормознул из-за первой строчки.

>>>o1 = C()


В вопросе нет никакой инфы что такое C(). Скорее всего это класс, но может быть и функция. И если это класс, непонятно есть ли там переменная lst и что в ней содержится. Короче эта хрень может как угодно себя вести, выкинуть ошибку например. Тут я тупанул, конечно.
Это задание на знание рабоы модуля функции deepcopy. Полезная штука если нужно скопировать list вложенный в list, вложенный в list. Обычный list я бы скоировал так:

>>>o3 = list(o1)

>>718358
#254 #718330
>>718320
перебрать попиксельно изображение, например
for i in range(image.width):
..for j in range(image.height):
>>718340
#255 #718336
>>715860 (OP)
Посоны, кто шарит в moviepy? Подскажите, как узнать длину видеодорожки и как изменить длину аудиодорожки? И еще, возможно как-то изменить соотношение сторон? resize() не помогает.
#256 #718340
>>718330
А чем тебе циклы не нравятся?
Можно так в принципе:

>[f(x,y) for x in range(img.width) for y in range(img.height)]


где f какая-то функция
Тут вот еще можешь посмотреть:
https://docs.python.org/2/library/itertools.html
>>718423
#257 #718342
>>718016
Лол, чувак, ты серьезно? Даже в названии функции написано, что она проверяет. Функция для проверки, правильно ли, с точки зрения html, выглядит отдаваемая страница, из home_page view.
#258 #718353
>>718180
Годно.
#259 #718358
>>718259
Лёгкие же вопросы, серьёзно. Ну разве что про первый ты мог особо не знать, если не ынтырпрайз и сразу с тройки начинал.

>>718329

>В вопросе нет никакой инфы что такое C().


А она и не нужна. Всё, что нужно знать, это то, что o1 - объект.

>Это задание на знание рабоы модуля функции deepcopy.


Что делает функция deepcopy можно и по названию догадаться, ведь для верного ответа необходимо лишь знать, что она уходит вглуть хотя бы на два уровня. Ну и функцию, делающую копию лишь по первому уровню (copy.copy, он же shallow copy) deep бы не назвали, отсюда и вывод, что o1.lst и o3.lst указывают на разные списки, и изменения ондого никак не повлияют на изменения другого.
Наличие атрибута lst, кстати, вообще не важно, они же ему сначала лист присваивают всё ранво.

ininstance не знать стыдно должно быть, если честно.

Ну а smtp-протокол. Ну тут да, опыт, наверное, нужен, хотя так или иначе ты должен был о нём хотя бы слышать, если не бухгалтерша, и представлять, что почта через ftp или telnet это явно что-то не то.
>>718472
#260 #718372
>>718259
Кто-то может пояснить за первый вопрос?
>>718383
#261 #718383
>>718372
Ответ object
>>718395
#262 #718395
>>718383
> base class of new-style datatypes
Т.е. новые в тройке а в двойке было что-то другое? О слотах вообще не слышал.
Нашел - https://docs.python.org/2/glossary.html#term-new-style-class
#263 #718420
>>718316
for i, j in itertools.product(range(...), range(...)):
#264 #718422
>>718322
У димки уже есть получение токена через парсинг html. Так что делать ничего не надо самому.
84 Кб, 1000x753
#265 #718423
106 Кб, 1280x720
#266 #718464
>>715909

>Язык сложный


>каждый школьник учит питон


>Лучше попробуй Haskell


>В Sublime Text как раз есть режим для него

>>718568
148 Кб, 2560x1440
119 Кб, 2560x1440
116 Кб, 2560x1440
106 Кб, 2560x1440
#267 #718472
>>718358
Ок. Конечно, не все вопросы сложные. Прошел тест еще один раз под другим аком, получил 3.45
Но в этот раз я подсматривал в idle и помнил многие вопросы с прошлого раза, так что результат не ахти. По ощущениям, хуже всего у меня с ООП.
>>718478>>718501
#268 #718478
>>718472
Съеби уже со своим говном.
>>718508
#269 #718501
>>718472
Это правильные, или выбранные тобой ответы выделены? Потому что classmethod тоже может быть вызван без инстанциирования (что очевидно, на то он и классовый).
>>718508
#270 #718505
>>718316
С каких пор вложенные циклы - это не элегантно?
>>718513
#271 #718508
>>718501

>выбранные тобой ответы выделены


this
>>718478
Сори, я так, поныть.
#272 #718513
>>718505
низзя break'нуться из внешнего((
>>718516
#273 #718516
>>718513
Замени внешний for на while и добавь в него проверку флага, который ты можешь изменить во внутреннем цикле
>>718520
30 Кб, 1050x297
18 Кб, 416x179
402 Кб, 1680x1050
161 Кб, 1680x1050
Django дегенерат Недоумь #274 #718518
Сап, помоги анон. Есть у меня главная страница с статьями, хочу влепить авторизацию справа. Сначала сделал отдельные страницы для этого, а теперь хочу запихнуть авторизацию в главную страничку. Сделал по бомжацки, дабы показать как должно быть. С самого начала в этой коробке должна происходить проверка сессии, если юзер не залогинен - заставить ввести данные и нажать кнопку. После нажатия на кнопку, в этом блоке должно происходить получение информации, как на отдельной странице. Типо вставить через iframe, вот только так выходит тоже не как у людей.
Articles отвечает за главную страницу.
>>718523
#275 #718520
>>718516
костыли-костылики. флаг можно и в for вставить, нафига while-то делать, чтобы потом вручную индексы инкрементировать? Я мимопроходил, всё это знаю.
#277 #718568
>>718464

>>каждый школьник учит питон


Не, ну вот с этим не поспоришь.
#278 #718602
Блядь, наконец-то залил это ебаное фото вконтабу, СУКА, ЦЕЛЫЙ ДЕНЬ ЕБАЛСЯ С ЭТОЙ ХУЙНЕЙ.
#279 #718608
Пагни, есть хелловорлдная задачка.
Нужно написать функцию, которая принимает список. И если элементы в нем отсортированы от большего к меньшему вернуть тру, иначе фолсе..
Как поелехантнее написать? У меня жуть вышла, хоть и рабочая
#280 #718612
>>718608
У меня было двже идеи, сравнивать t[n] < t[n+1], и если тру, то счетчик плюс 1. И так пока счетчик не будет равен n.

А вторая идея была взять список, сделать его копию отсортированную, и сравнить по элементым. Как было бы лучше
>>718614
#281 #718614
>>718612
Нахуй там счетчик, если не меньше, то брейк и фолсе.
sage #282 #718615
>>718608
совсем обленились, пидорасы
google -> python check if list sorted
64 Кб, 483x604
#283 #718625
Анончики, подскажите библиотечку для несложной обработки фото. Нужно объеденить два png и сделать ватермарку.
Желательно не слишком сложную и без установки левых бинарников.
>>718628
#284 #718628
>>718625
pillow
>>718630
#285 #718630
>>718628
А оно генерить текст в изображение умеет?
>>718631
#286 #718631
>>718630
Умеет. Еще можешь посмотреть imagemagick - сторонний бинарник с консольным интерфейсом, умеет практически все. Если тебе питон только для работы с фото - лучше не питон, а напрямую маджиком и двумя строчками на баше.
104 Кб, 1623x996
#287 #718632
>>718633
#288 #718633
>>718632

>xrange


>2016

>>718635
123 Кб, 1542x957
#289 #718635
>>718633
Таки да.
#290 #718650
Анон, что можно написать такого на питоне?
#291 #718656
>>718650
Какого такого?
>>718657
#292 #718657
>>718656
Ну этакого
>>718661
#293 #718661
>>718657
Робота для торговли на бирже.
#294 #718668
>>718650
Робота для игры в покер.
#295 #718706
>>718650
Робота для мастурбации.
#296 #718888
чтото меня заклинило, выручайте
Джанго: есть две модели
в первой поля A,B
во второй поля B,C
Вот я получаю QuerrySet всех записей из первой модели которые мне нужны.
Как из этого получить QS содержащий соответсвующие записи второй модели?
>>718890
#297 #718890
>>718888
Блять, неправильно объяснил
1 модель: A,B(FK)
как из QS полученного из первой модели получить соответсвующие записи модели В
>>719058
#298 #718940
>>718164
Нет, там получается gunicorn за nginx-ом.
>>719189
#299 #718992
Мальчишки, как улучшить качество кода? Пишу на питоне уже 3 года, 1 из которых работаю. Сейчас стал замечать, что за последнее время качественных улучшений не просиходит, какую еболу писал, такую и пишу, в чужом коде уже фишек не подмечаю.
Как и куда расти?
#300 #719005
Какой же джанго охуенный
Полуперекатившийся из жс
>>719009>>719019
#301 #719009
#302 #719019
>>719005
Как освоить джангу?
>>719025
#303 #719025
>>719019
Освоить английский, освоить питон, прочитать официальный туториал по джанге.
>>719030>>719041
#304 #719030
>>719025
А если в туторе не совсем понятно изложено?
>>719036
#306 #719037
>>719036
Нет ничего новее? Уже 1.9.5
>>719044>>719050
#307 #719041
>>719025
Оф тутор помогает? Там же маленькое приложение с голосованием? Все в уроках учат создавать БЛОГ!! Вы серьезно?! Нахуй сейчас нужен блог?!
>>719042>>719043
#308 #719042
>>719041
Блог - это крудошлепство в вакууме. А джанго создавался для удобного крудошлепства
>>719047
#309 #719043
>>719041
Понять основные принципы джангочки помогает. Тебе что еще надо?
>>719047
#310 #719044
>>719037
специально для тебя http://tutorial.djangogirls.org/en/
#311 #719047
>>719042
>>719043
пиииииздос! ПИИИЗДОС!!!
>>719051
#312 #719050
>>719037
Жри что дают! Сначала хоть что-нибудь начни понимать, потом прочитаешь оф. тутор по свежей версии.
#313 #719051
>>719047
Слушаем твои предложения, если человек не смог даже этот туториал осилить.
#314 #719058
>>718890
B.objects.filter(a__in=qs)
# или по какому-нибудь полю A
B.objects.filter(a__name='test')
>>719452
#315 #719070
Как понять джангу если привык к MVC?
#316 #719099
http://djbook.ru/rel1.9/

Если я это освою я смогу создавать классные приложения на джанге?
>>719107
#317 #719107
>>719099
Не сможешь. http://djbook.ru/rel1.9/statistic.html
Учи английский.
>>719113
#318 #719113
>>719128
#319 #719128
>>719113
Если ты тян, то, конечно, сможешь.
#320 #719173
Только время потратил, нужно было сразу идти пайтон ебашить, а не пытаться в джангу запрыгнуть.
66 Кб, 1249x877
#321 #719177
Посоны. какого хуя?
Как перебрать все элементы массива?
Задача: удалить все уникальные элементы.
>>719180>>719185
#322 #719180
>>719177
Ты можешь сначала на листочке алгоритм написать, а потом кодить? Вот что ты за хуету написал, что она по-твоему делает и где?
>>719183
#323 #719183
>>719180
принимает на литсо массив.
Для каждого элемента:
Если элемент встречается меньше 2-х раз(1 или 0),
то удаляем его с массива
Возвращаем массив с удаленными элементами.
>>719184>>719200
#324 #719184
>>719183
Ты возвращаешь массив во время каждого перебора, а не по окончании всех
>>719188>>719192
#325 #719185
>>719177
Сделай data_w = data.copy()
Далее всё без изменений, только data_w.remove(i) и return data_w.
#326 #719188
>>719184
как это пофиксить?
>>719191
#327 #719189
>>718940

>на каждый запрос к бд открывает новое соединение


Ну это как-то слишком. Ты уверен что всё именно так? По идее каждый wsgi-воркер должен держать одно соединение. А воркеров фиксированное количество и они долго живут.
>>719306
#328 #719190
>>719185
не понял тебя
опиши словами а не питоном
>>719192
#329 #719191
>>719188
Убери два отступа у return
>>719202
#330 #719192
>>719190
Ты проходишь по списку одновременно изменяя его. Это как пилить ветку сидя на ней. Я уже точно не помню копирует ли питон список при старте итерации, но >>719184 заметил более явную и очевидную ошибку, попробуй это сначала.
>>719202
#331 #719200
>>719183
Если тебе нужны только уникальные элементы, то просто преобразуй в множество и обратно в список.
return list(set(data))
>>719202
144 Кб, 1774x892
#332 #719202
>>719200
нужно выпилить уникальные. ты шо в глаза ебешься?

>Задача: удалить все уникальные элементы.



>>719191
не помогло
>>719192
#333 #719203
>>719202
У тебя с отступами пиздец какой-то, интерпретатор ругается
Ты же знаешь про 4 пробела?
>>719206
#334 #719204
>>719202
Ок. Неправильно понял вот это

>Возвращаем массив с удаленными элементами.



>ты шо в глаза ебешься?


Чувствую себя, словно доктор Дулиттл.
#335 #719206
>>719203
там 4 пробела
#336 #719209
>>719202
Ты не должен удалять элементы из списка, если ты итерируешься по нему.
http://goo.gl/rJm9KE
>>719225
#337 #719210
>>716913
Проиграл
sage #338 #719211
>>716801
Хуи сосешь? Бочку делаешь?
#339 #719225
>>719209
Твои предложения по решению задачи?
#340 #719233
>>719225
Выдвигать предложения - твоя задача. Как решить мы знаем, но какой толк от тебя будет (даже самому себе, в личных проектах), если ты не можешь сам думать?

Если ты удаляешь элементы во время прохода по списка, происходит следующее:
итерация 1:
список = [1,2,3,4,5]
текущий элемент: 0-ой, равен 1.
удаляем единицу, список становится [2,3,4,5]
итерация 2:
список = [2,3,4,5]
текущий элемент: 1-ый, равен 3
удаляем тройку, список станвоится [2,4,5]
итерация 3:
список = [2,4,5]
текущий элемент: 2-ой, равен 5.
удаляем тройку, список становится [2,4].

Всё, по всем элементам питон тебе прошёлся. Теперь думай, как этого избежать.
>>719237>>719238
#341 #719237
>>719233
Спасибо анон. Теперь я понял, почему это дерьмо так происходит.
Думаю над решением. Как насчет после каждого удаления, сбрасывать счетчик и заново по массиву идти?
>>719243
#342 #719238
ох, думал ссылка типа lmgtfy, а не визуализация происходящего, простите за повтор.
>>719233-кун
#343 #719243
>>719237

>Как насчет после каждого удаления, сбрасывать счетчик и заново по массиву идти?


Хех, впервые вижу такое предложение. Такая себе идея, ведь в худшем случае придётся сделать (n/2)^2 итераций.
Как насчёт не удалять из того массива, по которому итерируешься, например? -> >>719185
>>719249
#344 #719247
>>719225
Хватит всем мозг ебать. Зашел на чекио, на странице задания в самом низу мелким шрифтом написано "Даже не знаю с чего начать решать"
#345 #719249
>>719243
не понял того >>719185 челика
>>719254
#346 #719254
>>719249
Ну я же объяснил, что он имел в виду. http://ideone.com/GKkjcc

В данном случае можно ещё просто с конца массива начинать.
>>719256>>719275
#347 #719256
>>719254
ааааа, скопировать массив и удалять из него?
#348 #719262
анонимные программисты,

бьюсь с вечной задачей - как сохранить картинки с треда

вот что я сделал - работаю с urllib
1. запрос сохранить тред вызывает переход на cloudflare с известной всем страничкой подождите 5 сек.
на странице есть форма с инпутами
2. что я делаю - формирую get-запрос с данными из формы и через 5 сек отправляю его на cloudflare. отдается страница с рекламой cloudflare а вовсе не тред сосача. дальнейшие запросы на сосач вызывают переход на пункт 1. страница с сосача не отдается никак.

http://ideone.com/cOo7vf

в чем тут дело?
>>719270>>719386
#349 #719270
>>719262
ебаный ideOne за каким-то хуем изгадил ссылки в скрипте

должно быть

cloudLink='https://www.cloudflare.com'
link='https://2ch.hk/s/res/1612756.html' (М)
#350 #719275
>>719254
делать мне нечего

http://ideone.com/I1fI2i
>>719280
#351 #719280
#352 #719306
>>719189
https://docs.djangoproject.com/en/1.8/ref/databases/#connection-management

Если честно я пока не вник в проблему. Суть в том что при запросе на сайт, он берет какие-то данные из базы и при этом джанга открывает новое соединение с БД (постгрес). Все как обычно и ничего смертельного. Но если например на сайте зажать ctrl-r, то он через пару секунд сдыхает и джанга выплевывает fatal: sorry, too many clients already. Проект уже какое-то время разрабатывается и на него успели повесить кучу дополнений. В трейсбеке упоминается django-cacheops, но я не думаю что это из-за него. Совет по ссылке с настройкой времени жизни соединения не помог. Я просто хз что и где искать, только понял "где рвется". Причем не важно, сервер разработки или продакшен.
>>719313
#353 #719313
>>719306
Точно джанга выплёвывает? Во всех серверах имеется встроенный backlog, поэтому твой сервак просто выплюнет bad gateway если даже backlog переполнился. А вот этот твой фатал, это от говнокода. Или вашего, или в дополнениях. Или админ дебил.
>>719474
#354 #719337
Ребята, подкиньте материала по изучению джанги пожалуйста.
>>719344
#356 #719349
Блять.

ПОДКИНЬТЕ МАТЕРИАЛ ПО ДЖАНГЕ.
С ЧЕГО НАЧАТЬ УЧИТЬ ДЖАНГУ?
КАКИЕ ТУТОРИАЛЫ ПО ДЖАНГЕ ВАМ НРАВЯТСЯ?
НАПИСАЛ ПРИЛОЖЕНИЕ НА ДЖАНГЕ, ГЛЯНЬТЕ.


Хоть бы одна сука выучила фласк или торнадо для разнообразия. Одна джанга везде.
#357 #719354
>>719349
Подскажи лучше материалов по aiohttp, а то окромя документации не могу ничего толком найти. Буду очень благодарен.
#358 #719362
>>719349
Чем фласки и торнады лучше джанго?
>>719364
#359 #719364
>>719362
Тем, что фласк и торнадо - это конструкторы, из которых ты собираешь идеальное приложение, а джанга - готовый шаблон, который нужно только чуть обмазать под себя.
>>719381>>719435
#360 #719379
>>719225
составляешь список индексов нужных (неуникальных) элементов
indexlist=[]
for index,values in enumerate(data):
____if data.count(value)>1:
________indexlist.append(index)

создаешь и вертаешь новый список:

result = [data[index] for index in indexlist]

это квадратично, конечно. Не хочешь квадратично - юзай collections.Counter, но тут давай-ка сам
>>719390>>719528
#361 #719381
>>719364
Ну и зачем конструкторы, если ты не пишешь тырпрайз или какие-то не-круд-сервисы?
#362 #719386
>>719262
используй selenium

cloudflare тем и занимается, что фильтрует "подозрительные" запросы (от всяких ботов, спамов, куков)
>>719416
#363 #719390
>>719379
опечатался
for index,value in enumerate(data):
#364 #719416
>>719386
в принципе, я уже плюнул и написал с помощью cfscrape

http://ideone.com/6HyXti

но все-таки хочется разобраться. я догадываюсь, что дело во всяких заголовках и куках, т.е. надо использовать urllib2.urlopen, но с ней мне не удается получить страничку с формой, чтобы типа авторизоваться на cloudflare
#365 #719435
>>719364
>>719349
Братишь привет, можешь дать рекомендации и материал для изучения фласка?(последней версии)
Благодарю.
>>719449
#366 #719446
>>719349
Я сегодня на фласк пересел, только разбираюсь, пока нра.
#367 #719449
>>719435
Почитай на хабре "мега учебник", на офф сайте есть инфа вся.
>>719459
#368 #719452
>>719058
Охуеть блять!
#369 #719459
>>719449
Там ведь старая версия рассматривается... Много чего вообще не работает
>>719472
#370 #719472
>>719459
Старая? А какая новая? Последняя 10ка, там 9ая, если не ошибаюсь.
#371 #719474
>>719313
Вот примерный трейсбек
http://pastebin.com/qfdtwRwt

Да я так и понял что говнокод. А что примерно искать? Плохие запросы? Вручную открытые соединения?
>>719819>>719820
#372 #719476
Обязательно ли ставить виртуальное окружение? Зачем оно нужно, вкратце?
>>719479
#373 #719479
>>719476
Если только начал изучать питон (судя по вопросу так и есть), то нет, тебе это не надо.
>>719484>>719486
#374 #719484
>>719479
Понял, спасибо. Просто установил фласк не в виртуалэнв, в туторах советуют делать иначе.
#375 #719486
>>719479
Ах да, для изоляции зависимостей. Т.е. чтобы можно было использовать разные версии библиотек и зависимостей для разных проектов. Т.е. одно окружение может использовать 2й питон, а другое 3й. Ну и версии библиотек. В вебе не использование окружений считается плохой практикой.
#376 #719504
вкатываюсь к вам в треды
но вкатываюсь не просто так
..
для меня питон это язык для подставок, надстроек, мелких скриптов и т.д. я из крестотреда но тут такая тема.. прочитал о python_mod и подобных темах! и решил поглубже покапаться в этой фиговине..
..
в тред пришел за подводными камнями руления пекой с html странички на змее или гетзапросами с аппки
зы на с++ я реализовал бы это но вот о python_mod узнал и пришел седа
зыы про mod_wsgi слышал но сути идеи этой не меняет
>>719689
#377 #719528
>>719379

>это квадратично, конечно.


чтото ты наворотил пиздец
## спойлир ##
https://ideone.com/SNIeU9
##спойлир##
>>719536>>719550
80 Кб, 1155x1024
#378 #719529
Добрый вечер, уважаемые. Выхожу из ридонли. Прочитал A Byte of Python (действительно годнота), вроде всё понятно и руки уже чешутся написать что-нибудь. Есть мысль сделать простенькую программу для сбора, хранения и обработки текстовой информации. Но хочу чтобы она не только в интерпритаторе выполнялась через командную строку, а всё как у людей: чтобы и интерфейс был и на винде без предустановленного питона запускалась. Направьте нуба в нужном направлении. Нужно изучать фреймворк сразу (нагуглил что Tkinter справиться с этим) или устанавливать PyQt? Или ещё что нибудь посоветуете? И как быть с переводом .py в .exe? Буду благодарен дельным советам.
>>719692
#379 #719536
>>719528
А два цикла-то зачем?
http://ideone.com/ovCgwD
>>719544>>719550
#380 #719544
>>719536
прочел "удалить из массива" вот из него и удаляю.
так то незачем, конечно
#381 #719550
>>719528
>>719536
Да вы в край ебанулись все. Вы что несёте? Про мамок, папок. Через count В одну сраную строку делается. Гвидо на кой хуй запиливал в питон лист компрехэншены?

[el for el in data if data.count(el) > 1]
>>719631
#382 #719631
>>719550
[e for e in d if d.count(e)>1]
победа в гольфе за мною!
>>719675>>719753
#383 #719675
>>719631
Съеби! Ты уже начинаешь портить код.
#384 #719686
>>719349
Да не бомби ты. Я вот джанго никогда не использовал и даже не тянет.
5 лет использую рот твоей мамки пифон
50 Кб, 1280x720
#385 #719689
>>719504
Это всё старое нинужное говно, уёбывай обратно, грязный плюсоёб, тебе с нами не по пути.
>>719762
#386 #719692
>>719529
pyqt/pygobject, pyinstaller.
#387 #719699
Братишки привет, можете дать рекомендации и материал для изучения фласка?(последней версии)
Благодарю.
>>719703>>719736
#388 #719703
>>719699
Ты уверен? Может, все таки джанга?
>>719715
#389 #719715
>>719703
flask only
#390 #719729
Ананас, прошу помощи, не могу вкурить как прикрутить поиск слова.
Есть такой код:
mass = []
for i in range(3):
mass.append(str(input('Введите слово:')))
from itertools import permutations
n = 3
rep = 1
for s in permutations(mass * rep, n):
print(''.join(s))

Он выводит слово, нужно , что бы он запросил ввод слова и искал по выданному списку это слово.
>>719730>>719795
#391 #719730
>>719729
Фиксануть

>Он выводит список слов

#392 #719736
>>719752
#393 #719752
>>719736
Ананас, кинь решение, время не терпит , пожаааалуйста.
>>719766
#394 #719753
>>719631
это не уход от квадратичности

а вот использование Counter + OrderedDict - возможно
>>719794
#395 #719762
>>719689
вчера 3 комитта сделали
изменения которые меряются десятками тысяч строк кода за последний год.
я просто наткнулся на старую идею, но ты похоже недочитал до конца или даун.
вангую даун.
#396 #719766
>>719752
Да не нужен он тебе, успокойся. Читай про джангу.
>>719774
#397 #719774
>>719766
Епть, там коду-то пару строк, неужели анон такой занудный пошёл?
#399 #719794
>>719753
друг, нет тут никакой квадратичности, что же ты.
>>719899
#400 #719795
>>719729
бамп епт
>>719857
#401 #719819
>>719474

>make_debug_cursor


>postgresql_psycopg2


Лел. Мне кажется что без кеша все будет работать быстрее и лучше. RTFM для начала, а потом уже говнокод искать.
#402 #719820
>>719474
Ну да, ещё послушайте материалы с PyCon 2015 про кеширование. Там много интересного и толкового как раз на эту тему. И даже есть пиздатая прозрачная и простая идея реализации, которой целый доклад выделен.
#403 #719857
>>719795
непонятно нихуя же
#404 #719868
На чем можно писать гуи для питона с относительной легкостью? В этом плане подкупает WPF, но он на си#, хочется все таки немного гибкости в начале.
#405 #719891
>>719780
Работаёбы нинужны.
#406 #719899
>>719794
Все правильно он говорит. count по твоему как считает? Каждый раз по всему списку проходит.
>>720347
#407 #720081
Братишки привет, можете дать рекомендации и материал для изучения фласка?(последней версии)
Благодарю.
>>720082>>720087
#408 #720082
>>720081
Ну и вообще кто по каким туториалам учил его.
#409 #720087
>>720081
На русском наверное желательно?
В таком случае дальше не читал

------
ну что тебе по фласку непонятного-то?
открой http://www.instructables.com/id/Raspberry-Pi-Internet-Radio-With-Flask/?ALLSTEPS например, посмотри как люди пишут хуйню эту всю фласковую - там учить нехуй просто, питон питоном и декораторы с регэксами вместо урлов

Но раз уж настаиваешь, вот, держи все закладки что имею:
Book - Grinberg M. - Flask Web Development - 2014
https://pynsk.ru/blog/2016/01/29/write-project-1-part-2/
https://github.com/mjhea0/flaskr-tdd/blob/master/README.md
http://docs.peewee-orm.com/en/latest/peewee/example.html
https://www.twilio.com/blog/2015/03/choose-your-own-adventures-presentations-wizard-mode-part-1-of-3.html
https://www.twilio.com/docs/tutorials/walkthrough/appointment-reminders/python/flask
>>720323
#410 #720110
У кого нибудь здесь есть опыт использования пистона совместно с Go? Как он стыкуется с джангами, фласками?
#411 #720150
>>720110
Что ты пишешь такое?
#412 #720163
>>720110
Детектирую ньюфага. Что конкретно ты хотел узнать?
Что угодно стыкуется с чем угодно через REST API, AMQP или десяток других протоколов/технологий.
>>720248
#413 #720246
>>720110
Go - такой же питун, только компилируемый и дофига порезанный. Зачем использовать питун с питуном?
#414 #720248
>>720163
Мне нужны вебсокеты и интересно, стоит ли игра свеч, или лучше юзать какой нибудь джанго-ченеллс. Алсо реквестирую годное чтиво по построению микросервисов.
#415 #720260
Как подружить джангу с сокетами? Насколько это ресурсозатратно? Как в пыхе?
#416 #720289
>>720260
А нахуя? Очередной чятик?
>>720299>>720301
#417 #720291
>>720260
Двачую вопрос. Будет быстрее обновлять информацию на странице через джанговские костыли к вебсокетам каждые ~3-4мин чем дергать ajax'ы каждые ~10ть сек?
>>720294
#418 #720292
Что скажете насчёт склейки питона с сишечкой? Вскрывал эту тему кто-нибудь здесь?
Подетектируйте во мне нюфага.
Есть несколько вариантов: ctypes, cffi, cpython extension, cython. Судя по отзывам побеждает таки cython, так как позволяет гетерогенность и склейка получается не такой острой. Для pypy настоятельно рекомендуют cffi, якобы он там через jit очень хорошо оптимизируется, а вот с cython пока всё плохо из-за прибитости к cpython extension api. ctypes вроде бы тот же cffi только надо вручную бойлерплейтить заместо парсинга сишного кода.
Расскажите что пробовали и как оно.
#419 #720294
>>720291
>>720260
Посоны, wsgi протокол, а так же http протокол хуёво работают как сокеты. Не морочьте себе голову, сириусли. Проще сервак с нуля накатать чем запидорить костылей в джангу а потом это всё глотая стекло и закусывая кактусами поддерживать.
>>720299
#420 #720299
>>720294
Мы ж про вебсокеты говорим, нет? Просто не хочется поднимать ноду для этих дел, и потом все это интегрировать. Придется ещё mq какой-то поднимать, ну нах

>>720289
Реалтайм-игрушка
>>720309>>720316
#421 #720301
>>720289
Мне уже стыдно на улицу выходить. В 2016 году без риалтайма.
>>720309>>720316
#422 #720309
>>720299
>>720301
Да забей на эту джанго и синхронных дибилов. Делай всё сразу на том фрейме, который может в асинхронность.
>>720312
#423 #720312
>>720309
Это всякие торнадо и фласки?
>>720316
#424 #720313
Хочу в машинное обучение. С чего начать?
>>720316
#425 #720316
>>720312
aiohttp например. Фласк кстати совсем не о вебсокетах, это альтернативная джанга.
>>720301
ServerSideEvents посмотри ещё. Смотря какой тебе реалтайм надо.
>>720299

>Реалтайм-игрушка


На джанге? Лол.
>>720313
С перцептрона.
>>720326
#426 #720323
>>720087

>Book - Grinberg M. - Flask Web Development - 2014


>Grinberg M.


>Web Development


>2014



По этой книжке невозможно научиться, все уже изменилось и обновилось 100 за 2 года. По линкам муть тоже.
#427 #720326
>>720316

>С перцептрона.


Я думал про курс или книгу. ШАД пойдёт? Первую лекцию закончил, а понятней не стало. Стоит продолжать или чем заменить?
>>720332
#428 #720332
>>720326
Как по мне, то bigdata, machine learning и data science сильно запутанные термины. Сначала надо определиться чего ты хочешь уметь делать. ШАД по идее растит data scientists. Ещё не факт что они занимаются нейросетями.
14 Кб, 415x379
#429 #720334
АААА ДЕЛАЛ ВСЁ КАК В ШАПКЕ А ВЫ МНЕ ТАКУЮ ПОДСТАВУ ГДЕ ЖЕ ВЗЯТЬ БЕСПЛАТНО
>>720337>>720338
sage #430 #720337
>>720334
for free это бесплатно.
#431 #720338
>>720334
Впиши в License server
http://idea.lanyus.com/
>>720344
#432 #720344
>>720338
30 дней так и осталось.
#433 #720347
>>719899
неожиданно, думал там умнее
#434 #720352

> print 'Hello, world!'


> SyntaxError: Missing parentheses in call to 'print'


???
sage #435 #720360
>>720352
Тебе в 2005 год.
#436 #720361
>>720352

> SyntaxError: Missing круглые скобки в вызове 'печать'

>>720368
#437 #720368
>>720361
Но зачем они? В примере с интернета их нет.
#438 #720369
>>720368
У тебя пайтон 3 версии, а пример для 2 версии
>>720375
sage #439 #720370
>>720368
Какой недогадливый. Двойку установи и заработает.
>>720375
#440 #720372
>>720368
Потому что ты троечник.
>>720375
#441 #720375
>>720372
>>720370
>>720369
Ясно. А конфиг красивый для pycharm где скачать?
>>720378
#442 #720378
>>720375
я знаю только где на русском.
но ты же не станешь читать
>>720385
3 Кб, 139x62
#443 #720385
>>720378
Что на русском и что читать? Давай короче.

Как убрать это лампочку и полоски зигзагом мезду принтом и скобками?
>>720398>>720401
#444 #720398
>>720385
Это такой толстый траленк, да?
>>720400
#445 #720400
>>720398
Нет. Вы советуете слишком толстую и сложною иде. Не могу разобраться. Давайте чего-нибудь полегче.
>>720403
129 Кб, 600x600
#446 #720401
>>720352
>>720385
Хорош.
#447 #720403
>>720400
Эта лампочка говорит тебе, что ты пидор, когда ты косячишь. Зачем тебе её убирать?
>>720405
#448 #720405
>>720403
И где я накосячил?
>>720407
#449 #720407
>>720405
Наведи на лампочку, епты
Ставишь пробел между вызовом функции и аргументами к ней
#450 #720415
>>720352
Не надо другое иде. Какое есть лёгкое, но с подсказкой при вводе? Типа я написал str а внизу вылезла список с string и другими именами какие там в питоне есть. И чтобы методы моих классов так-же могла запоминать и подсказывать. Но чтобы лёгкое и не вим с емаксом.
>>720421>>720450
#451 #720421
>>720415
Иди спатки
#452 #720425
Лол. Тк недавно перекатился с винды на ебунту, второй день уже как, решил перечитатьвсе что было в ньюфагокнигах по питону, все что относилось к пользователям линухов. В укусе питона в самом начале, учат как свой скрипт в path добавлять, чтобы отовсюду можно было его запускать. Ну и насоздавал я короче сотни папок по ка разбирался, накопировал скрипт куда не попадя, надобавлял путей переменных блять. Охуенно!
>>720427
#453 #720427
>>720425
Зачем перекатился? Я обратно перекатиться хочу
>>720428
#454 #720428
>>720427
Ну, есть причины. Просто оче хочу линухами попользоваться, хочу терминалом овладеть в процессе, питон позволит чего-нибудь поавтоматизировать. ДА и вообще, чего мне на той вине делать, в игори чтоли играть?
>>720431
#455 #720431
>>720428
В винду впилили убунту, там теперь тот же терминал, что и на линухе. А интерфейс виндовый.
>>720438
#456 #720438
>>720431
Я слышал, но все равно. Не хотеть, вообще же, и то и другое не плохо знать глубже, чем знаю я, но винда мне кажтется сложнее в разы
>>720441
#457 #720441
>>720438
Так винду не нужно знать, её просто пользоваться нужно. А линукс можно теперь и из-под винды познать.
>>720442
#458 #720442
>>720441
Ну как ето не нужно, знать нужно все.
>>720443
#459 #720443
>>720442
Как ты можешь знать то, что с закрытым исходным кодом и монолитом лежит в одной папочке?
>>720449
#460 #720449
>>720443
Ну как то ведь люди узнают! Ищут же уязвимости, все дела.
#461 #720450
>>720415
ipython
#462 #720463
Линуксы это заебись… сам пересел уже как года четыре назад. Обратно не хочется совсем, даже любимая игра под вайном заебись работает, а каесочка в стиме родная. Для программирования, а конкретнее для окружения, компиляции сишных модулей для пифона, установки зависимостей, держания нескольких версий пифона линукс лучше винды намного. Редакторы, понятное дело, одинаково выглядят.
>>720465
#463 #720465
>>720463
А потом покупаешь макбук и понимаешь что до этого 15-20-... Лет жизни с компами ты только мучался
>>720468>>720476
#464 #720468
>>720465
Люто удваиваю. Жутко страдаю за десктопом после макбука, аймак не нравится
#465 #720476
>>720465
Так а чего такого охуительного в маках? Чому все вебзасранцы с ютуба, обучающие хтмл цсс используют маки?
>>720483>>720484
#466 #720483
>>720476
Тому что это "линупс с нормальным интерфейсом"
>>720497
#467 #720484
>>720476
Ну для начала цена. Макбук дешевле любого из аналогов по экрану и качеству сборки / службы. Во-вторых оптимизация вообще всего чисто под твою машинку. Фотошопы будут лет 8 идти гладко без единого фриза, даже Ява в целом быстрее фурычет, а ты нихуя для этого не делал. В-третьих организация рутинных действий - даже то, что оно позволяет картинки в файндере сохранять в той последовательности как тебе нра, а не сортировать имя дата говно моча - и то уменьшает фрустрации.
Попробуй и скорее всего никогда не захочешь вернуться.
>>720485
#468 #720485
>>720484

>попробуй


Когда-нибудь-обязательно.
>>720489
#469 #720489
>>720485
Когда денег накопишь?
>>720499
#470 #720497
>>720483
Скорее BSD без задач, хотя для десктопа всяко лучше дриснятки или прыщей.
#471 #720499
>>720489
Икзакли
#472 #720501
Тольк не бейте,хочу спросить. А азчем нужны побитвые сдвиги <<, где применяются?
>>720637
#473 #720513
Друзья, выручайте. Я уже четвертый день ебусь с moviepy. Я пытаюсь склеивать отрезки видео+аудио+катэр, а потом все это в объединить в один файл. Отрезки скачиваются, имя файлов заносятся в массив. Так вот, в независимости от длины массива цикл склеивания заканчивается после шестого элемента. Помогите решить проблему, или посоветуйте альтернативу. Если нужно, добавлю код.
>>720533>>720551
10 Кб, 993x292
#474 #720515
Вкатился с тупым вопросом.
Анон, я просто хочу сделать запись введённых пользователем чисел в файл, и всё норм, но проглатывается первое значение. Например ввожу 1 2 3 4 5, а в txt файл записывается только 2 3 4 5. Как пофиксить?
>>720523>>720536
#475 #720523
>>720515
Что за IDE?
>>720527
#476 #720527
>>720523
komodo edit 9.3
#477 #720533
>>720513
Еще если убрать except, выбивает: OSError: [WinError 6] Неверный дескриптор
#478 #720536
>>720515
твой первый numbers никуда не записывается
>>720539
#479 #720539
>>720536
Лол, спасибо. Я слепой
#480 #720551
>>720513
Ну ты хоть код покажи.
>>720554
#481 #720552
Сосаны, реакт или ангуляр? Или jquery
46 Кб, 805x986
#482 #720554
>>720551
Строго не судите, я новичек.
#483 #720555
>>720554
Что за IDE?
>>720560
#484 #720560
>>720555
PyCharm
58 Кб, 1028x570
#485 #720567
>>720554
Выдает такую ошибку.
#486 #720637
>>720501
Да много где, очень часто в криптографии, в низкоуровневом программировании и тогда, когда нужно что-то ускорить, если это возможно.
229 Кб, 1025x1280
#487 #720657
Здрасте, я к вам из >>719798 (OP)

Я полный нуб в вебе, но решился сделать детектор скримеров в WEBM. Решил использовать ваше говно.
Первый этап - это разработка API, который будет получать ссылку на вебмку, и отвечать JSON-ом, скример это, или нет.
То есть получаем запрос, скачиваем ссылку, немного возимся с ffmpeg, и отдаём ответ. Также будет нужен кэш, а для него БД. С БД возиться не умею и не хочу, хочу всё искаропки и с ORM.

Так вот, я намерен использовать джангу. Я обезумел, или всё норм?
#488 #720732
>>720554
Не по твоему вопросу, конечно, но луп твой, по-моему, лучше организовать через while i < 20, и инкрементировать лишь один раз, если всё прошло успешно, а не декрементировать в 50 местах по разным условиям ошибок.

Алсо, в последнем except ValueError разе не должно тоже стоят continue?
>>720883
#489 #720762
>>720657
Джанго незачем, Flask + SQLAlchemy ORM будет достаточно.
>>720804
#490 #720790
>>720657
асинхронщину типа Celery/rq не забудь
#491 #720804
>>720762
Какие туториалы свежие есть по фласку? Подскажи материала для изучения.

Советчиков дохуя, учителей нихуя
#492 #720809
>>720657
хуя бля, это столько змея срёт?
#493 #720838
Зачем писать асинхронно на пайтоне, когда есть нода?
>>720851
#494 #720840
Есть необходимость сделать обновляющуюся строчку, типа прогресс бар. Делаю через банальные \r и end="". Однако, если окно терминала вдруг окажется уже, чем необходимое количество текста, то всё ломается. Есть какой-то способ этого избежать, кроме как проверять ширину терминала до вывода текста и укорачивать текст?
>>720857
#495 #720851
>>720838
Зачем писать на жс, когда есть нормальные языки?
#496 #720857
>>720840
ну по канонам окно терминала должно вмещать 80 (если я ничего не путаю) символов
вот на 80 и ориентируйся. а кто любит терминалы размером с гулькин хуй пусть ебутся конём, в конце-концов ты же под люителей скажем ТОЙ САМОЙ АМИГИ или СПЕКТРУМА не всё оптимизируешь, а они тоже где-то есть
>>720865
#497 #720865
>>720857
Да мне чисто для себя, лол, просто иногда забываю увеличить окошко и приходится наслаждаться десятком строк мусора, пока не увеличу терминал.
>>720866
#498 #720866
>>720865
да хуйни не на весь экран и припиздячь сбоку где-нибудь где видно проценты
#499 #720883
>>720732
Всё так сделал. Скрипт, вроде, быстрее начал работать. Но проблема остается. Всегда после шестого видео выдает OSerror неверный дескриптор. С except пропускает все оставшиеся видео, на всех видео эта ошибка.
>>720888>>720925
#500 #720888
>>720883
НовичОк. Ты бы хоть код свой нормально выложил, а не в виде картинки, может, кто-нибудь и посмотрит что у тебя там не работает.
>>720889
#501 #720889
>>720888
import numpy.random
import string
import urllib.request
from moviepy.editor import *

def find_between( s, first, last ):
try:
start = s.index( first ) + len( first )
end = s.index( last, start )
return s[start:end]
except ValueError:
return ""
def base36encode(number, alphabet='0123456789abcdefghijklmnopqrstuvwxyz'):
if not isinstance(number, (int)):
raise TypeError('number must be an integer')

base36 = ''
sign = ''

if number < 0:
sign = '-'
number = -number

if 0 <= number < len(alphabet):
return sign + alphabet[number]

while number != 0:
number, i = divmod(number, len(alphabet))
base36 = alphabet + base36

return sign + base36

def base36decode(number):
return int(number, 36)

for j in range(1,20):
videocliplist=[]
audiocliplist=[]
durationlist=[]
i=0
while i<20:
randint=numpy.random.randint(105,107)
try: urllib.request.urlopen('http://coub.com/embed/' + base36encode(randint))
except urllib.error.HTTPError:
continue
with urllib.request.urlopen('http://coub.com/embed/'+base36encode(randint)) as response:
html = response.read().decode("utf-8")

try:vidDuration = float(find_between(html, 'false,"duration":', ',"promo_winner"'))
except ValueError:
continue
if vidDuration<3:

continue
print(vidDuration)
videourl=find_between(html,'"file":"','","')
print(videourl)
videopath='C:\\coub\\'+str(i)+'.mp4'
try:urllib.request.urlretrieve(videourl,videopath)
except ValueError:

continue
except ConnectionResetError:

continue
audiourl=find_between(html,'"audio_url":"','","')
print(audiourl)
if audiourl =="":

continue
audiopath='C:\\coub\\'+str(i)+'.mp3'
try:urllib.request.urlretrieve(audiourl, audiopath)
except ValueError:

continue
"""
try:audio = AudioFileClip('C:\\coub\\'+str(i)+'.mp3').set_duration(vidDuration)
except AttributeError:
i = i - 1
continue
except UnicodeDecodeError:
i = i - 1
continue
except OSError:
i = i - 1
continue
"""
durationlist.append(vidDuration)
videocliplist.append(videopath)
audiocliplist.append(audiopath)
i+=1
print(videocliplist)
print(len(videocliplist))
print(len(audiocliplist))
print("Nachalo vtoroi fazi")
for k in range(1,6):
print(videocliplist)
try:audioclip=AudioFileClip(audiocliplist[k])
except OSError:
continue
except AttributeError:
continue

videoresized=VideoFileClip(videocliplist[k],audio=False).resize((1280,720))
videoresized.set_audio(audioclip)
videoresized.set_duration(durationlist[k])
try: cuter = VideoFileClip('C:\\cut.mp4',)
except OSError:
continue
print(k)
fclip = concatenate_videoclips((videoresized, cuter), method="compose", transition=None)
try:fclip.write_videofile('C:\\coub\\file' + str(k) + '.mp4', fps=30,codec='mpeg4')
except OSError:
continue
for k in range(8, len(videocliplist)):
print(videocliplist)
try:
audioclip = AudioFileClip(audiocliplist[k])
except OSError:
continue
except AttributeError:
continue

videoresized = VideoFileClip(videocliplist[k], audio=False).resize((1280, 720))
videoresized.set_audio(audioclip)
videoresized.set_duration(durationlist[k])
try:cuter = VideoFileClip('C:\\cut.mp4', )
except OSError:
continue
print(k)
fclip = concatenate_videoclips((videoresized, cuter), method="compose", transition=None)
try:
fclip.write_videofile('C:\\coub\\file' + str(k) + '.mp4', fps=30, codec='mpeg4')
except OSError:
continue
#501 #720889
>>720888
import numpy.random
import string
import urllib.request
from moviepy.editor import *

def find_between( s, first, last ):
try:
start = s.index( first ) + len( first )
end = s.index( last, start )
return s[start:end]
except ValueError:
return ""
def base36encode(number, alphabet='0123456789abcdefghijklmnopqrstuvwxyz'):
if not isinstance(number, (int)):
raise TypeError('number must be an integer')

base36 = ''
sign = ''

if number < 0:
sign = '-'
number = -number

if 0 <= number < len(alphabet):
return sign + alphabet[number]

while number != 0:
number, i = divmod(number, len(alphabet))
base36 = alphabet + base36

return sign + base36

def base36decode(number):
return int(number, 36)

for j in range(1,20):
videocliplist=[]
audiocliplist=[]
durationlist=[]
i=0
while i<20:
randint=numpy.random.randint(105,107)
try: urllib.request.urlopen('http://coub.com/embed/' + base36encode(randint))
except urllib.error.HTTPError:
continue
with urllib.request.urlopen('http://coub.com/embed/'+base36encode(randint)) as response:
html = response.read().decode("utf-8")

try:vidDuration = float(find_between(html, 'false,"duration":', ',"promo_winner"'))
except ValueError:
continue
if vidDuration<3:

continue
print(vidDuration)
videourl=find_between(html,'"file":"','","')
print(videourl)
videopath='C:\\coub\\'+str(i)+'.mp4'
try:urllib.request.urlretrieve(videourl,videopath)
except ValueError:

continue
except ConnectionResetError:

continue
audiourl=find_between(html,'"audio_url":"','","')
print(audiourl)
if audiourl =="":

continue
audiopath='C:\\coub\\'+str(i)+'.mp3'
try:urllib.request.urlretrieve(audiourl, audiopath)
except ValueError:

continue
"""
try:audio = AudioFileClip('C:\\coub\\'+str(i)+'.mp3').set_duration(vidDuration)
except AttributeError:
i = i - 1
continue
except UnicodeDecodeError:
i = i - 1
continue
except OSError:
i = i - 1
continue
"""
durationlist.append(vidDuration)
videocliplist.append(videopath)
audiocliplist.append(audiopath)
i+=1
print(videocliplist)
print(len(videocliplist))
print(len(audiocliplist))
print("Nachalo vtoroi fazi")
for k in range(1,6):
print(videocliplist)
try:audioclip=AudioFileClip(audiocliplist[k])
except OSError:
continue
except AttributeError:
continue

videoresized=VideoFileClip(videocliplist[k],audio=False).resize((1280,720))
videoresized.set_audio(audioclip)
videoresized.set_duration(durationlist[k])
try: cuter = VideoFileClip('C:\\cut.mp4',)
except OSError:
continue
print(k)
fclip = concatenate_videoclips((videoresized, cuter), method="compose", transition=None)
try:fclip.write_videofile('C:\\coub\\file' + str(k) + '.mp4', fps=30,codec='mpeg4')
except OSError:
continue
for k in range(8, len(videocliplist)):
print(videocliplist)
try:
audioclip = AudioFileClip(audiocliplist[k])
except OSError:
continue
except AttributeError:
continue

videoresized = VideoFileClip(videocliplist[k], audio=False).resize((1280, 720))
videoresized.set_audio(audioclip)
videoresized.set_duration(durationlist[k])
try:cuter = VideoFileClip('C:\\cut.mp4', )
except OSError:
continue
print(k)
fclip = concatenate_videoclips((videoresized, cuter), method="compose", transition=None)
try:
fclip.write_videofile('C:\\coub\\file' + str(k) + '.mp4', fps=30, codec='mpeg4')
except OSError:
continue
#502 #720892
>>720889
ЗАЕБОК, ПРОЧЕТАЛ НА ОДНОМ ДЫХАНЬЕ!!
>>720896>>720900
#503 #720896
>>720892
Как тебе его еще скинуть?
#504 #720898
>>720889
Да ёбаный же ты в рот.

> Код вбрасывать в тред через https://ideone.com/


Для кого это в шапке писали?
>>720900
#507 #720925
>>720883
вместо того чтобы обходить ошибки, ты бы лучше посмотрел, почему они возникают
#508 #720932
>>720900
У меня всё работает. Что у тебя там в папке coub лежит?
>>720937>>720942
#509 #720937
>>720932
Пустая папка же. Заполняется скачаными коубами.
Какая у тебя система и версия питона?
>>720939>>720942
#510 #720939
>>720937
Она точно пустая?
3.5 , win10.
Я, правда, свой рандом сделал, но дело-то вроде не в нём.
>>720941>>720942
#511 #720941
>>720939
64 bit всё?
>>720944
#512 #720942
>>720932
>>720937
>>720939
самоподдув
#513 #720944
>>720941
Не погоди, это я тебе соврал, это у меня ПЕРВАЯ ФАЗА работает. Дай мне немного времени, и перекатывайся в новый тред.
>>720946
#514 #720945
тест^
#515 #720946
>>720944
иди нахуй со своими фазами.
>>720949
#516 #720949
>>720946
эх, анон, я думал ты мне поможешь, а ты вон как со мной...
Тред утонул или удален.
Это копия, сохраненная 8 мая 2016 года.

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

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