[Ответить в тред] Ответить в тред

26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10
27/09/15 - Двач API — Инструкция к применению



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 547 | 29 | 103
Назад Вниз Каталог Обновить

Python Аноним 01/03/16 Втр 01:30:31  671902  
14567850317380.jpg (66Кб, 604x525)
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Прошлый: >>665294 (OP)

2.х или 3.х v1: http://legacy.python.org/dev/peps/pep-0373/
2.x или 3.x v2: https://wiki.python.org/moin/Python2orPython3
Аноним 01/03/16 Втр 02:03:21  671925
1
Аноним 01/03/16 Втр 02:04:42  671927
14567870823510.png (50Кб, 164x180)
Аноним 01/03/16 Втр 02:29:06  671958
>>671902 (OP)
ОП-пик устарел.
Аноним 01/03/16 Втр 03:08:14  671969
>>671958
Вам завезли switch-case или до сих пор городите костыли?
Аноним 01/03/16 Втр 04:40:48  671977
>>671969
угомонись уже, пидор
Аноним 01/03/16 Втр 08:25:44  672010
>>671969
А нахуй нужен свитч в некомпилируемом и динамическом языке? Вся его фишка же в том, что свитч сравнивает переменную с константами, из-за чего что-то там оптимизируется и быстро работает.
if/elif всё равно не больше места занимает (даже на один отступ меньше, чем если бы свитч был).
Аноним 01/03/16 Втр 09:40:12  672035
Вопрос:
Допустим, мне надо, чтобы моя программа качала некие документы, которые ежедневно выкладываются на неком веб-ресурсе. Они бы складывались на фтп-сервере, каждый в папку со своей датой, когда были скачаны в формате dd/mm/yyyy. Чисто теоретически, сложно такую задачу на питоне?
Аноним 01/03/16 Втр 09:41:27  672036
>>672035
Нет.
Аноним 01/03/16 Втр 09:43:52  672040
>>672036
Что нужно знать для реализации сей тривиальной задачи? Я начинающий программист. До этого на паскале/делфи писал из разряда laba1.
Аноним 01/03/16 Втр 09:46:08  672043
>>672040
Нужны модули datetime, requests, ftplib. Наверное, всё.
Аноним 01/03/16 Втр 09:47:02  672044
>>672043
Спасибо, анон, сотню нефти тебе.
Аноним 01/03/16 Втр 09:51:52  672046
>>672044
А тебе не под линукс?
Аноним 01/03/16 Втр 10:01:09  672052
>>672046
Все равно, в общем-то. А если нет, что поменяется? Полагаю, у виндоюзера должны возникнуть проблемы.
Аноним 01/03/16 Втр 10:04:41  672054
>>672052
Нет, просто можно было бы и на bash написать. В общем, не важно.
Аноним 01/03/16 Втр 10:10:20  672062
>>672054
Аноним 01/03/16 Втр 10:10:44  672063
>>672054
Мисскликнул. Хотел сказать, что тоже интересно, буду знать.
Аноним 01/03/16 Втр 10:26:55  672073
>>672035
Когда-то делал заливатель изменений из гит репозитория по фтп. Можешь передрать оттуда, там курлом всё сделано.

https://gist.github.com/kctier/33cda7cf6413c733d7eb
Аноним 01/03/16 Втр 10:27:17  672075
>>672054
for url in urls.txt;do curl $url -o $(date +"%d/%m/%y");done;
Аноним 01/03/16 Втр 10:33:12  672081
>>672075
Серьёзно? Это все? Выглядит просто волшебно!
Анон, что задал вопрос.
Аноним 01/03/16 Втр 10:36:25  672085
>>672081
Тут в цикле достаются url из файла и сохраняются в текущей папке с датой в формате, который ты указал. А с ftp я не очень понял что тебе и куда, но будет выглядеть примерно так же.
Аноним 01/03/16 Втр 10:38:32  672086
>>672085
С фтп надо будет просто качать в папочку, которая корневая у ftp сервера, который он поставит.
Аноним 01/03/16 Втр 10:57:25  672095
>>672086
Ну тогда должно выглядеть примерно так:
mkdir -p $(date +"") && cd $_;
for url in urls.txt;do curl $url -O $(date +"%d-%m-%y");done;
Первая строка создаёт директорию, если она еще не существует, и переходит в неё. Вторая строка в цикле скачивает файлы по url и сохраняется с тем же названием, что и в url. Как-то так.
Аноним 01/03/16 Втр 10:59:06  672097
>>672095
Что такое $_. Вывод предыдущей команды? Первый раз вижу такую конструкцию, это башизм?
Аноним 01/03/16 Втр 11:01:43  672098
>>672095
Ошибся.
mkdir -p $(date +"%d-%m-%y") && cd $_;
r url in urls.txt;do curl -O $url ;done;
$_ - последний аргумент предыдущей команды.
Аноним 01/03/16 Втр 11:49:15  672130
>>672035
Мне лень работать, поэтому вот вариант на powershell:
$urls = get-content "urls.txt"
$outputFolder = New-Item -Force -ItemType Directory -Name (get-date -format dd-MM-yy);
foreach ($url in $urls) {Start-BitsTransfer -Source $url -Destination $outputFolder}
Аноним 01/03/16 Втр 11:56:53  672133
>>672130
Говно этот павершелл. Многие вендоадмины питон юзают.
Или http://xon.sh/ какой-нить.
Аноним 01/03/16 Втр 12:01:57  672138
>>672133
Powershell работает из коробки и для такой задачи самое оно.
Аноним 01/03/16 Втр 12:04:36  672140
>>672138
Питон ставится в 2 клика.
Аноним 01/03/16 Втр 12:05:19  672142
>>672140
Powershell работает из коробки.
Аноним 01/03/16 Втр 12:16:08  672150
>>672140
>>672142
Ну заебали. Сейчас ещё прикатится хуй с картинкой о распространенности двойки на pypi.
Аноним 01/03/16 Втр 12:16:27  672151
>>672142
Что мешает, кстати микрософт-быдлу поставлять питон из коробки? Лицензия позволяет. Поддержка винды там норм.
Apple вот поставляет.
Аноним 01/03/16 Втр 12:17:01  672152
>>672151
Просто за это никто не заплатит.
Аноним 01/03/16 Втр 12:31:19  672158
>>672035
Как-то так.
http://pastebin.com/NTKybJxV
Аноним 01/03/16 Втр 12:36:40  672164
Есть один ИИ. Внезапно перед ним встаёт задача выбрать между 2мя стульями. Доступные варианты:
1) Стул с пиками. Вес 5.
2) Стул с хуями. Вес 3.
3) Правильный ответ. Вес 1.
ИИ должен случайно выбрать в соответствии с весом варианта. Но при этом алгоритм должен быть универсальным Тоесть, нельзя просто взять и написать что-то типа:
> a = random.randint(1,9)
> if a <= 5: ai.piki_tocheni()
> elif a <= 8: ai.hui_drocheni()
> else: ai.pravilniy_otvet()
Нужно чтобы была возможность удалять и добавлять варианты и менять их вес.
Есть ли в питоне что-то готовое для такой задачи или нужно самому велосипед изобретать?
Как такой велосипед лучше организовать?
Аноним 01/03/16 Втр 12:42:11  672167
>>672164
О, я делал такое. Тебе нужно сгенерировать кеш по всем значениям, суммируя последовательно веса: [5, 8, 9]. Далее randint по всему диапазону и бинарный поиск индекса по кешу (есть хороший модуль bisect).
Аноним 01/03/16 Втр 12:49:19  672173
>>672164
Правда если у тебя оче дохуя удалений, вставок и перевешиваний, то советую сделать как бы бинарное дерево. В каждой ноде хранятся полные суммы весов каждой из двух ветвей. Туда же я бы посоветовал записывать полное количество листьев каждой ветви, чтобы дерево можно было поддерживать сбалансированным. Собственно поиск это спуск по дереву до листа: в каждой ноде у нас два весовых числа и мы просто выбираем взвешенным рандомом одну из ветвей, далее повторяем пока не достигнем листа. Удаление, добавление и перевешивание в целом тривиальны, будут иметь логарифмическую сложность.
Аноним 01/03/16 Втр 13:04:32  672179
>>672164
Как-то ты ебануто справшиваешь. Тебе просто надо из списка вариантов рандомным образом выбрать один? Random.choise и вперде.
Аноним 01/03/16 Втр 13:09:09  672184
14568269499690.webm webm file (4750Кб, 854x480, 00:00:17)
>>672164
А, я хуячил такой ИИ, только на другом языке.

Суть такова. Тебе нужно использовать реализацию дерева решений. Если не понял, то читай дальше. В твоем случае у тебя одноуровневое дерево с тремя листьями: стул с пиками (вес 5), стул с хуями (вес 3 - пидор, лол, хуи предпочтительнее пик (мне тоже) ) и хуи дроченые срубают пики точены (вес 1).

Чтобы алгоритм обработки оптимального выбора был оптимальным тебе нужна рекурсия (итеративно тоже можно, но заебешься, если у тебя многоуровневое дерево с множеством узлов). Рассмотрим сначала пример с твоим деревом решений, потом посмотрим многоуровневые деревья с лабиринтом пик, негров, хуев, пироженок.

Ты находишься на верхнем узле дерева. У тебя есть 3 листа (лист это конечный элемент дерева. Грубо говоря, нижний). То есть 3 возможных хода ИИ. В начале рекурсивной функции проверяешь не является ли текущая позиция листом (конечным элементом). Если являешься, то вызываешь функцию оценки листа (стула с пиками), который узнает вес этого листа и возвращает его обратно. Рекурсивная функция, получив итоговую оценку своей позиции, возвращает ее вес.
Если текущая позиция не является листом (конечным стулом-элементом), а является узлом, у которого еще есть выборы, то возможные ходы (выборы сортов стульев) этой позиции добавляются в массив или коллекцию. Дальше хуячишь цикл по всем элементам массива. На каждом возможном ходу вызываешь рекурсивную функцию передавая в качестве параметра позицию хода (стула) и сравниваешь возвращенный вес с уже имеющимся наилучшим. Если вес меньше (хуи дроченые срубают пики точены (вес 1) лучше стула с пиками (вес 5) ), то наилучший вес делаешь равным возвращенному.
Только не забудь ограничить глубину раскрытия дерева решений - то есть идет оценка позиции и возврат веса если это лист (конечный элемент, достигли ДНА дерева) или достигнута максимальная глубина. Само собой, при погружении внутрь тогда надо изменять текущую глубину.

В результате такой хуйни, функция рекурсивно пробегает по всему дереву и возвращает наилучший ход (если несколько наилучших, то первый из них. Или какой сделаешь). То есть с одноуровневым (с 1 узлом - родительским и 3 листями - стельями) такая хуйня пробежится по всем стульям и вернет срубление пик точеных хуями, ибо вес ее будет наилучшим.

Если же у тебя многоуровневное дерево (перед тобой 3 прохода в каждом из которых 3 прохода в каждом из которых несколько стульев различного веса), то вернет наилучший ход и ИИ гарантированно не зайдет в позицию, где на одном стуле неснимаемые пики точены, на другом несрубаемые хуи дрочены, а на третьем распаленные геи-ниггеры из далекого космоса.

Хуйня получается компактной, расширяемой (функции поебать на размер и многоуровневость дерева) и твой преподаватель тебе отсосет. Только пиши аккуратно, а то охуеешь от траблшутинга, если что-то будет работать не так, как должно.
Если по-прежнему нихуя не понял, то ищи стратегию минимакса - по ней поймешь.
Аноним 01/03/16 Втр 13:13:30  672186
>>672179
> Тебе просто надо из списка вариантов рандомным образом выбрать один?
Да, но при этом 1 элемент должен выпадать чаще другого, пропорционально весу.
Аноним 01/03/16 Втр 13:15:22  672187
14568273225220.jpg (10Кб, 295x171)
>>672186
> Есть два стула... Я выберу срубание... Хотя нет, в этот раз я выберу хуи. Не повезло прост((
Аноним 01/03/16 Втр 13:16:28  672189
>>672186
Сделай список в котором каждого элемента будет n*вес
Аноним 01/03/16 Втр 13:17:24  672190
>>672189
Рубисты в треде, все в пхп.
Аноним 01/03/16 Втр 13:18:32  672192
Все, что связано с хуями и пиками всегда привлекало внимание на бордах.
Аноним 01/03/16 Втр 13:19:08  672194
>>672184
А где тут случайный выбор?
Аноним 01/03/16 Втр 13:21:44  672195
>>672194
Не нужен.
Но если хочется присесть на пики, то легко прикрутить.
Аноним 01/03/16 Втр 13:26:12  672202
>>672195
Анон же написал:
>ИИ должен случайно выбрать в соответствии с весом варианта.
Аноним 01/03/16 Втр 13:30:08  672203
>>672189
Я думал о таком решении, но, если у пик будет вес 9999, а у хуёв 1, то придётся генерить список в 1000, а потом каждый раз перегенерировать при изменении весов, что непозволительный просер вычислительных ресурсов.
Аноним 01/03/16 Втр 13:32:19  672204
>>672203
Делай уже по моим подсказкам. Аж целых джва варианта тебе: с иммутабельной выборкой >>672167 и с мутабельной >>672173.
Аноним 01/03/16 Втр 13:32:53  672205
>>672164
Чому бы не сортировать по весу и выбрать из наименьших?
Аноним 01/03/16 Втр 13:34:13  672207
>>672164
Внезапно https://docs.python.org/3/library/random.html#examples-and-recipes
Аноним 01/03/16 Втр 13:38:38  672211
>>672207
Первый вариант там: этот пост >>672189
Второй вариант: этот >>672167
Вот хуле нового ты сейчас сказал?
Аноним 01/03/16 Втр 13:41:39  672215
>>672211
Зачем устраивать дискуссию, если это есть в документации?
>Вот хуле нового ты сейчас сказал?
Ты очень неприятно выражаешься.
Аноним 01/03/16 Втр 13:43:42  672221
>>672211
>Вот хуле нового ты сейчас сказал?
Конкретный пример в питоновских буквах.
Мне пригодилось. Больше чем описание про кеш словами без примера.
Всем спасибо за подсказки и участие.
Аноним 01/03/16 Втр 13:46:09  672226
>>672221
Стековерфлоу-программисты пишут ИИ, лол.
Аноним 01/03/16 Втр 13:47:10  672228
>>672203
> то придётся генерить список в 1000
И что? Во-первых, 1000 элементов это ничто. Во-вторых, они будут ссылаться на тот-же объект, то есть памяти тоже минимум съедено.
Не занимайся преждевременной оптимизацией тем более на быдлопитоне.
Аноним 01/03/16 Втр 13:48:45  672231
>>672228
Внезапно появляется вес 1012 к одному.
Не занимайся быдлокодингом даже на быдлопитоне.
Аноним 01/03/16 Втр 13:50:44  672234
>>672231
> Внезапно появляется
А если не появиться?
Аноним 01/03/16 Втр 13:56:47  672242
>>672234
Ну не появляйся.
Аноним 01/03/16 Втр 14:08:43  672246
>>672242
Ну вот. Тем более 10^12 вес. Обычно не бывает такого. При таком весе весом 1 можно было бы вообще принебречь.
Аноним 01/03/16 Втр 14:13:29  672248
>>672246
Ну вот видишь сколько условностей нужно соблюсти. Этот алгоритм неплох, но для небольших фиксированных чисел. И об этом даже там в доках >>672207 написали. То есть 1000 - это уже плохо, так как если тебе нужно сделать миллион выборок по разным вариантам, будешь джва года ждать.
Аноним 01/03/16 Втр 14:25:36  672262
Аноны, у меня есть задание сделать небольшой SPA с возможностью загрузки картинок, сохранения их в галерею, показа отдельной картинки и всей галереи.
Я только учусь и никогда раньше не сталкивался с таким таском, для этого мне можно обойтись только Django REST и для отображения написать несколько Ajax запросов? Я правильно понял?
Аноним 01/03/16 Втр 14:34:35  672276
>>672262
Думаю тебе надо пердолиться с каким-то javascript фреймворком. Питоновская часть то простая. Кстати django rest довольно сложный, есть попробще либы.
Аноним 01/03/16 Втр 14:37:31  672278
>>672276
в туториалах советуют Angular + REST, с первым я не знаком совсем. Хотя, думаю, задача не такая трудная чтобы на фронтенде использовать фреймворк.
Аноним 01/03/16 Втр 14:47:05  672299
>>672278
В яваскрипт треде янгуляр чмырят дико. Сам я его не осилил(и не пытался).
Можешь на простом яваскрипте сделать или на jquery.
Аноним 01/03/16 Втр 14:47:43  672300
>>672262
Если тебе просто преподу показать, то можно хранить картинки прямо в localStorage, а для SPA взять один из тысячи js галлерей, которая в любом случае понадобится.
Аноним 01/03/16 Втр 14:48:15  672302
>>672299
или на аджахе
Аноним 01/03/16 Втр 14:49:17  672304
>>672302
Или?
Аноним 01/03/16 Втр 14:51:35  672308
>>672304
на
Аноним 01/03/16 Втр 14:51:52  672309
>>672308
аджахе!
Аноним 01/03/16 Втр 14:53:31  672310
>>672186
Лови говнокд, братишь
https://ideone.com/yuGqTQ
Аноним 01/03/16 Втр 14:53:34  672311
>>672300
Да, мне нужно просто реализовать это приложение на дев сервере. Я просто не совсем понимаю, что входит в понятие SPA. В моем представление, это приложение в котором весь обмен данными реализован через Ajax, без обновления страницы и данные отдаются через Json.
Соответственно мне нужен Django Rest. Я правильно все понял?
Аноним 01/03/16 Втр 14:54:50  672312
>>672262
Дай-ка угадаю: ТЕСТОВОЕ ЗАДАНИЕ?
Аноним 01/03/16 Втр 15:05:41  672317
>>672311
Django REST необязательно, можно и на голом Django все это сделать. Тут как тебе будет удобнее.
Галерей на js масса, выбирай одну, смотри в каком формате она получает данные. Скорее всего, это будет json список ссылок на превьюшки и полноразмерные картинки.
Аноним 01/03/16 Втр 15:08:19  672320
>>672311
Single Page applications же, еба.
>данные отдаются через Json.
Не обязательно. Даннуми ты можешь хоть через WEB-сокет по каштомному бинарному протоколу обмениваться.
>Соответственно мне нужен Django Rest.
Совсем не обязательно. Можно на простой джанге заипошить, можно на фласке, можно хоть на голых скриптах. Задание-то хоть на какую позицию?
Аноним 01/03/16 Втр 15:12:25  672324
>>672311
Django REST нужен чаще всего когда ты хочешься сделать по быстрому нормальное API к своему приложению, чтобы другие могли юзать его из своих сервисов. В твоем случае обычные вьюхи и какойнить ангуляр с библиотекой для картиночек будет достаточно.
Аноним 01/03/16 Втр 15:16:00  672325
>>672317
>>672320
>>672324

Спасибо
Я позицию джуниора ищу и выполняю все задания которые предлагают. Пока устроится не могу. Самое тяжелое пока было написать простое реалтайм приложение, я написал но завалил все, что можно в интервью, сейчас подтянул знания.

Погуглю галереи и отдавать буду Jsonresponce через Ajax запросы, намного проще пока выглядит чем вникать в Rest и Angular
Аноним 01/03/16 Втр 15:23:21  672330
>>672325
первый запрос на SPA галерею
http://demo.jankuri.com/ngGallery/
чтд.
Аноним 01/03/16 Втр 15:23:26  672331
14568350067750.jpg (83Кб, 442x618)
>>672325
>выполняю все задания которые предлагают
Аноним 01/03/16 Втр 15:25:19  672332
>>672331
Это же опыт, который мне пригодится
Аноним 01/03/16 Втр 15:28:22  672336
>>672332
моча рано ударила в голову в 4 активно ругался матом
в детском саду девочки впервые показали мне пизду
потом школа вонючая форма драки клей так я становился сильней
Аноним 01/03/16 Втр 15:43:19  672356
>>672336
Уебывай в /б
Аноним 01/03/16 Втр 15:52:31  672367
>>672356
да тут такойже /b, только все ждут что тут сэры и герцоги одни.
Аноним 01/03/16 Втр 16:46:04  672417
Аноны, подскажите название пакета, насколько я помню аналог Selenium, только рендерит страницу в консоли.
Аноним 01/03/16 Втр 16:49:30  672421
>>672417
Ghost.py?
Аноним 01/03/16 Втр 17:03:50  672435
>>672421
Не совсем то, но пока искал, нашел, что Selenium в качестве вебдрайвера может phantomjs использовать.
Аноним 01/03/16 Втр 17:38:02  672457
>>672325
Ты умничка
Я ещё годик поучу питон похожим макаром и тоже попизжу куда кодером
Аноним 01/03/16 Втр 17:38:59  672458
>>672367
Господа жи.
Аноним 01/03/16 Втр 17:42:30  672464
>>672325
Ну рассказывай свой путь, с чего начал, какие материалы уже успел изучить, ну и входные данные какие были.

И ты еще расскажи >>672457
Аноним 01/03/16 Втр 17:52:07  672468
>>672464
Месяцев 7 учусь, работаю 2х2 так что время свободное есть.
Входных данных никаких, даже отдаленно не представлял как все устроено. Прочитал Лутца, посмотрел кучу туториалов, вроде вник в основы, потом начал Django изучать, сейчас с основами тоже знаком хорошо. По sql небольшую книгу прочитал, не помню автора, просто чтобы представлять как делать запросы без ОРМ. Свой уровень не могу точно оценить но на джуниора точно должен тянуть.
Вообще нужно очень много практики, чтобы в голове откладывалось больше информации. На собеседования зовут редко как сделаю что-нибудь стоящее для гитхаба, может получше пойдет
Аноним 01/03/16 Втр 18:42:43  672500
>>672464
3 месяца
Кодекадеми -> книжки-туториалы все подряд, уже добрый десяток книжечек со всеми заданиями и прочей хуйнёй, штук сорок скриптов для себя накатал что бы автоматизировать всё что хотел, вроде автоматизировал.
Начинал учить что бы высрать вполне конкретные две системки на джанго но меня до сих пор ебёт их делать.

А с другой стороны кодинг заебись, даже если я буду зарабатывать за месяц 3 сотни баксов это будет больше чем моя текущая зп, а я так понял удалёнку на 3 сотни найти не самое сложное в этой жизни.
Аноним 01/03/16 Втр 18:44:55  672503
>>672500
что у тебя за работа? Я только один парсер себе для удобства работы написал
Аноним 01/03/16 Втр 18:53:50  672513
>>672503
Скажем так, я фрилансер в сфере корпоративного управления. Обычно это означает что я сижу дома и пизжу с долбоёбами на линкедине за мизерную ставку. Изредка - что я куда-то еду и за огромную кучу бабла им чёто делаю. Изредка это реально изредка.
Из других смешных особенностей опыта у меня вроде и много, но для международного уровня маловато, а местный вымер нахуй ввиду того что теперь моя область называется лднром.
Вот и получается что для говновакансий за 500 баксов никто с экспантом ебаться не захочет, собеседоваться зовут только на всякое говнище по 1-2 К $, а живу я на 10 тыщ руб которые зарабатываю тем что торгую через инет при помощи вордпресса и адсенса/директа всяким говном
Аноним 01/03/16 Втр 19:30:09  672544
>>672417
Фантом жс. Только его надо отдельно скачивать. Удобная штука. А во время отладки надо одну строку поменять чтобы все было видно
Аноним 01/03/16 Втр 20:00:20  672554
Пистоны, задачка с codewars.

Вычислить выражение типа

1 | 2 | 3 | ... | n

На тестах большого числа n все ломается.

Делал через reduce - MemoryError

А через цикл - Process was terminated. It took longer than 6000ms to complete.

Какой алгоритм взять?
Аноним 01/03/16 Втр 20:03:13  672557
>>672554
Выражение то какое?
Аноним 01/03/16 Втр 20:06:33  672560
>>672557

вычислить or натуральных чисел от 0 до n


>Given a number n we will define it's scORe to be 0 | 1 | 2 | 3 | ... | n, where | is the bitwise OR operator.

>Write a function that takes n and finds it's scORe.
Аноним 01/03/16 Втр 20:45:49  672580
>>672464
а меня хоть никто и не просил тоже расскажу.
С лета мееедленно так читал сначала Укус, понял что нихера не понял (вернее для реализации даже курсачей понимания маловато), решил сделать "сначала все зубришь-потом кодишь", поэтому читал вяло полгода Лутца. Понял что так нихера не проканает и сижу читаю теорию Лутца, практику Лутца, Бизли с примерами и описаловом библиотеки и еще СИКП и пытаюсь в курсачи и чтобы понять как работает оно. Но этого не случалось пока мне не припекло что мне надо перебираться из моей мухосрани а коденхом это сделать будет проще всего по затратам времени.
Аноним 01/03/16 Втр 20:52:00  672590
>>672554
А большое n - это сколько? На моем днищеноуте n=100 млн вычисляет 5.4s
Аноним 01/03/16 Втр 20:55:26  672593
Я еще раз прочитал про SPA, главное отличие SPA это выполнения кода на одной странице без перезагрузки? Т.е. если в Django я отправляю во вью все через Jsonresponce, по средствам Ajax это будет SPA? Или у SPA есть какие то другие особенности?
Аноним 01/03/16 Втр 21:04:26  672601
>>672560
https://ideone.com/Qe36UV
Аноним 01/03/16 Втр 21:16:34  672611
>>672601
https://ideone.com/N0G3XI
Аноним 01/03/16 Втр 21:18:30  672612
>>672601

Какая-то магия.
Аноним 01/03/16 Втр 21:21:52  672615
>>672611
Само собой. Я просто хотел чтобы было видно почему так получается.
Аноним 01/03/16 Втр 21:34:07  672624
>>672612
OR не умеет превращать 1 в 0. Если у числа где-то 1 в двоичном представлении, то сколько его не орь она там останется.
Поэтому у тебя сразу должно возникнуть предположение, что двоичном представлении X = 1 | 2 | ... | N должно быть дофига единиц.
По факту результат будет состоять из такого же количества битов, что и N, но все они будут "1". Даже объяснять лень.
Аноним 01/03/16 Втр 21:40:16  672629
>>672468
>>672500
А вы молодцы, удачи вам и упорства побольше.
Тоже надо плотнее уже заняться этим делом, а то прерываюсь часто из-за дел.

Расскажите еще какую-нибудь стори.
Аноним 01/03/16 Втр 21:40:47  672632
14568576472230.jpg (9Кб, 236x216)
Питоны, подскажите, что лучше использовать. Есть сайт, он берет данные не из бд, а из rest/soap сервиса, крутящегося на другом сервере. С помощью чего лучше реализовать получение этих данных (нагуглил сериализаторы), и какой фреймворк использовать? Вроде как нашел, что для этого Flask хорошо подходит, а в Django для такой задачи слишком много лишнего, верно ли это? В общем, хелп ми плиз.
Аноним 01/03/16 Втр 21:45:21  672639
>>672632
По мне и фласк слишком батарейкнутый для простых дел.
Попробуй веб2пу - оно простое как банка пива и тоже работает.
Аноним 01/03/16 Втр 22:04:41  672677
>>672624

Алсо вот верхний ответ с codewars

score=lambda n:2n.bit_length()-1
Аноним 01/03/16 Втр 22:07:00  672685
>>672639
что рекомендуешь прочесть чтобы понять веб2пу? и понять что он прост как банка пива?
Аноним 01/03/16 Втр 22:07:06  672686
>>672677
Ну или так.

score=lambda n:(1<<n.bit_length())-1



Аноним 01/03/16 Втр 22:20:15  672713
>>672685
Туториал на оф. сайте
Аноним 01/03/16 Втр 22:21:45  672716
Анон, что за хуйня:
f =open('file.txt').read().replace(',\n',',').split('\n')
f = filter(None, f)
for i in f:
print(i)
должно быть 10 строк, но их 11, т.е последняя пустая. Откуда она берется, как ее убрать?
Аноним 01/03/16 Втр 23:19:24  672808
>>671902 (OP)
Так так так. А что не так с каррингом? Глаз зацепился просто.
Аноним 01/03/16 Втр 23:54:18  672891
># -- coding: UTF-8 --

Такая хрень же не нужна в третьем, да?
Аноним 02/03/16 Срд 00:19:12  672918
Захотел я сделать сайт на web2py, например, не на локалхосте, а чтобы другие люди могли зайти.Я знаю только что нужен домен и хостинг, а как это всё работает? Какие шаги надо проделать, чтобы на выходе иметь настоящий домен в интернете, и на нем разрабатывать сайт. Распишите подробнее, пожалуйста. И не отправляйте в веб
Аноним 02/03/16 Срд 00:23:11  672922
>>672918
Поиграй с бесплатным питонэнивер хостингом, пройди Джанго герлс туториал - базарю вопросов не останется вовсе а по времени займет ну 3 часа
Аноним 02/03/16 Срд 02:11:30  672998
14568738908600.png (72Кб, 1280x1024)
Вечер в хату. Есть вопрос.
Хочу вкатиться в кодинг в Х лет, нихуя не умея (кроме английского). Как я понял, из ЯП Python - самый легкий в плане синтаксиса.
Прочитал Лутца, прошел пару онлайн-курсов по основам синтаксиса, порешал задачки. Теперь хочу перейти к прикладному применению, писать код по обработке встроенных типов данных уже не интересно.
Посмотрел материалы, много книг, туториалов на инглише, по применению python в куче разных областей. Не представляю, за что браться, с чего начинать, так как по-хорошему специализироваться придется в чем-то одном. Data analysis, system administration, networking не привлекают, питоновские GUI и mobile apps убогие (пацаны сказали), остается web-development (порог вхождения низкий, как раз для всякого днища подойдет).
Так вот, где можно посмотреть примерный перечень технологий для фулстэк веб-разработки на питоне? Насколько я понял, нужно мочь в: верстку (html, css), базы данных (sql, postgres, mongodb), специализированные питоновские библиотеки и фреймворки (flask, pyramid, django), знать теорию (компьютерные сети, алгоритмы, паттерны проектирования), опционально linux, JS плюс соответствующие библиотеки и фреймворки. Поправьте, если что-то пропустил или ошибся.
Еще все утверждают, что просто учить синтаксис не имеет смысла, надо в ходе изучения создавать некие проекты. Что это за проекты и с чем их едят? Где можно посмотреть примеры, чтобы что-то выбрать для себя?
Аноним 02/03/16 Срд 03:12:17  673029
>>672998
Лучше вкатывайся в мобайл девелопмент, на питоне гораздо лучше.
Аноним 02/03/16 Срд 08:29:11  673112
>>672998
Учи все что попадает под руку, тебе это много времени на текущем уровне не займет, а кругозор расширит.
Аноним 02/03/16 Срд 08:34:26  673114
>>673112
Ага, быстрее найдет "точку опору" и начнет ориентироваться во всех этих баззвордз.
Аноним 02/03/16 Срд 08:37:43  673116
Позвали в РАМАКС ДС-2 на собеседование. Может тут есть Анон который ходил туда и сможет что-нибудь рассказать ?
Аноним 02/03/16 Срд 08:44:13  673118
>>672998

Синтаксис похуй тащемта.
Аноним 02/03/16 Срд 08:56:43  673121
>>672891
не нужна
Аноним 02/03/16 Срд 08:59:35  673122
>>672998
на степик 10 марта начнется курс "прикладное программирование", может будет интересно
Аноним 02/03/16 Срд 09:31:42  673128
Анон, учу тхреады. Пример из справочника Бизли:
def clock(interval):
while True:
print("Текущее время: $s" % time.ctime())
time.sleep(interval)

t = threading.Thread(target=clock, args=(15,))
t.daemon = True
t.start()

Process finished with exit code 0
И все, ничего не выводит. В чем подвох?
Аноним 02/03/16 Срд 09:37:29  673132
>>673128
Книги Бизли есть в русском переводе?
Аноним 02/03/16 Срд 09:59:28  673141
>>673132
Нагуглил как минимум справочник на русском
Аноним 02/03/16 Срд 10:38:48  673157
>>673128
>A thread can be flagged as a "daemon thread". The significance of this flag is that the entire Python program exits when only daemon threads are left.
Попробуй убрать этот флаг, поставь интервал поменьше (1 секунду) и запусти. Смотри на консоль. Затем читай про .join() в доках.
Аноним 02/03/16 Срд 12:14:11  673212
А как проще всего питоном проверить картинки на раржпг'ность?
Через try: os.... Рар архиватор запускать консольный и если вышел с ошибкой - следующий?
Аноним 02/03/16 Срд 12:42:40  673236
>>673212
Проверяешь содержимое файла на заголовки распространенных архивов.
Аноним 02/03/16 Срд 12:49:52  673242
>>673236
Именно весь файл просматривать?
Страшно представить сколько времени займет проверка картиночек по 15 мб
Аноним 02/03/16 Срд 13:02:36  673251
>>673242
Ну ты можешь сначала прочитать заголовок жипега (http://www.fastgraph.com/help/jpeg_header_format.html), вытянуть оттуда нужные данные, посчитать размер и пропустить нужное количество байт, а там уж видно будет, есть что-то или нет (ну или сразу сравнить с размером картинки).
Аноним 02/03/16 Срд 13:53:00  673277
Реквестирую годной обучалки по пихтону для неновичка в программировании.
Аноним 02/03/16 Срд 13:57:21  673281
>>673277
Think Python
Аноним 02/03/16 Срд 13:59:11  673283
>>673277
http://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW
вот отличный курс
Аноним 02/03/16 Срд 13:59:29  673284
>>673283
http://www.youtube.com/watch?v=5V7XG1mGiHc&list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW
Аноним 02/03/16 Срд 14:00:53  673285
>>673283
По 1:20:00 в среднем лекции
И у кого-то же есть время этих пиздаболов столько слушать, жесть
Аноним 02/03/16 Срд 14:17:14  673300
>>673285
мне очень понравился лектор, интересно слушать его. Вообще у них много годных лекций на канале
Аноним 02/03/16 Срд 16:19:11  673394
>>673116
Ходил устраиваться туда около полугода назад. Сначала немного общался текстом в скайпе с эйчаршей, вроде все норм. Пришел, прошел через охранника. Коридоры просторные, светлые. Вроде и аккуратно всё, но отдает какой то медицинской стерильностью. Вышла эйчарша. Симпатичная молодая девушка в джинсах и клетчатой рубашке, офисным стилем даже не пахнет. Пригласила в кабинет. Спросила за мой опыт, проекты, задала несколько несложных вопросов. Сказала что ы как профессионал её устраиваю, но хотелось бы ещё узнать личные качества. Пригласила для неформальной обстановке выйти покурить. На улице начала настойчиво ко мне приставать, обнимать, говорить что ей нужно узнать меня поближе. Сказала рядом живет. Ну я тогда молодой был, токсикозный. Согласился. Жила она правда рядом, буквально через дорогу. Пришли, она взасос поцеловала, начала меня раздевать. Ну я же листва, начал дрожащими руками её раздевать. Стягиваю джинсы с неё, а она без трусов и у неё нихуевый такой хуй, сантиметров 18 точно будет. Я охуел, замер, перевожу на неё взгляд, а она улыбается, меня по голове гладит и показывает на хуй, говорит - "я тебя на работу возьму без испытательного, зарплату сделаю выше на половину". Ну я подумал - а что терять? Она ничего не докажет, а работа не помешает. Ну я и сделал ей минет. Она как кончила сразу чего то занервначала, стала одеваться. Мне мою одежду дала и вытолкнула за дверь, сказала завтра сообщит по телефону во сколько приходить на работу. Этим же вечером пришла смска, что я им не подхожу. Я перезванивал - телефон не доступен. Обратно в офис ходил - охранник отказывается пускать. Квартира та как оказалась была съемная. Плохая компания, не рекомендую.
Аноним 02/03/16 Срд 16:33:45  673406
>>673394
Всегда читаю как в первый раз. Вот такой вот я романтик.
Аноним 02/03/16 Срд 16:54:59  673431
>>673406
мечтаешь так же?
Аноним 02/03/16 Срд 17:01:35  673434
>>673431
А потом взять эйчаршу замуж
Аноним 02/03/16 Срд 17:10:03  673437
Анон, хочу парсить сайты из выдачи гугла или яндекса, на которых есть виджет комментарие ВК, в каком направлении двигаться, что гуглить?
Аноним 02/03/16 Срд 17:11:05  673439
>>673437
>комментариев
Аноним 02/03/16 Срд 17:12:07  673440
>>673437
виджет - жс, значит тебе нужно что-то типа селениума что бы оно могло эти страницы с жс в браузере собрать прежде чем по икспас парсить
Аноним 02/03/16 Срд 17:20:34  673451
>>673440
нафига?

виджет подключается с помощью определенного жс скрипта вроде как, парсишь на страницах урл с этим жсником, все
Аноним 02/03/16 Срд 17:28:04  673461
>>673451
тебе комменты ж собирать из виджета?
Аноним 02/03/16 Срд 17:36:59  673476
Поясните с какой книги начинать Питон (имею опыт на PHP и Symfony, читал SICP и вообще молодец), чтобы не 100 страниц про переменные, а полная и непротиворечивая информация по языку, его фичам и прочему.

Пока смотрю на Dive into.
Аноним 02/03/16 Срд 17:38:05  673479
>>673476
ну или справочник Бизли
Аноним 02/03/16 Срд 17:38:26  673481
>>673476
>>673281
Аноним 02/03/16 Срд 17:40:21  673482
>>673476
https://www.youtube.com/watch?v=N4mEzFDjqtA
Аноним 02/03/16 Срд 17:41:04  673483
>>673461
я не >>673437
ему для спама я так понимаю нужно базу сайтов собрать, потом он уже будет специальным софтом спамить
Аноним 02/03/16 Срд 17:42:34  673486
>>673476
Я уже 2 книги добавил где описывается все без воды.
https://github.com/TheKnightsWhoSayNi/info/wiki/Books#%D0%9B%D1%91%D0%B3%D0%BA%D0%B8%D0%B5-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B8
Аноним 02/03/16 Срд 17:53:25  673496
>>673486
fluent python читали?
Аноним 02/03/16 Срд 17:58:56  673505
>>673496
>fluent python
Да дахуя этих книг, но те 2 - это топ.
Аноним 02/03/16 Срд 18:03:45  673512
>>673394
лолд
Аноним 02/03/16 Срд 18:05:53  673514
>>673394
отлично, мне подходит

но я все равно бампану >>673116
Аноним 02/03/16 Срд 18:36:18  673541
>>673434
Это она тебя возьмет.
Аноним 02/03/16 Срд 18:37:56  673543
>>673541
да похуй, если выглядит как тян, то мечта просто
Аноним 02/03/16 Срд 18:38:20  673545
>>673543
Двачую, трап > тян.
Аноним 02/03/16 Срд 18:40:27  673547
А потом кодить на питоне. То она на твоем, то ты на ее.
Аноним 02/03/16 Срд 18:42:54  673550
А потом разблокируешь ей GIL и итерируешь генератор.
Аноним 02/03/16 Срд 19:11:53  673592
>>673550
У меня один знакомый не успел переназначить бранч и закоммитил в мастер тян. В итоге релизнулся проект, а ему пришлось стать контрибьютором. Не забывай про безопасность.
Аноним 02/03/16 Срд 19:12:56  673593
>>673592
не в ту ветку пушишь, тут трапы и их преимущества
Аноним 02/03/16 Срд 23:19:21  673861
>>673440
То есть, сперва спарсить все сайты из выдачи?
Аноним 02/03/16 Срд 23:21:56  673864
И да, мне для спама, дальше 10-й страницы парсить нет смысла, ибо трафика там нет уже.
Аноним 02/03/16 Срд 23:38:07  673892
>>673437
если просто найти, то хоть юрлгетом. Смотришь как у гугла/яндекса url формируется для запросов, потом берешь какую-нибудь либу для работы с DOMом, там BeautifulSoap или Grab, ну или что ты там нагуглишь. Потом ходишь ею по ссылкам с выдачи, скачиваешь исходник сайта, можешь той же либой, но urllib должно хватить. Ну и ищешь в исходниках код, который вставляют для того что бы добавить этот блок комментариев.
Аноним 02/03/16 Срд 23:56:40  673918
>>673121
Спасибо.
Аноним 03/03/16 Чтв 06:12:13  674030
>>672716
>f =open('file.txt').read().replace(',\n',',').split('\n')
>f = filter(None, f)
>for i in f:
>print(i)
Покажи свой файл
Аноним 03/03/16 Чтв 06:17:23  674031
>>672922
>базарю вопросов не останется вовсе а по времени займет ну 3 часа
Сдается мне, ты пиздишь. Вкатиться в джанго и за три дня не удастся, во всяком случае вопросов становится все больше, а про то чтобы хостить сайт даже пока боюсь и думать.
мимо нуб кун
Аноним 03/03/16 Чтв 07:14:59  674046
Всем привет , есть ли какая годная инфа по pykinter или pygame?
Аноним 03/03/16 Чтв 11:11:36  674140
>>674046
> pykinter
Чё эт?
Аноним 03/03/16 Чтв 12:23:13  674174
14569969932220.jpg (68Кб, 604x415)
>>674031
Человек о хостинге и жеплое питон-приложений на этот хостинг спрашивал.
Спрашивал о веб2пу а не Джанго
А туториал от Джанго герлс я ему почитать рекомендовал ибо там тема использования питонэнивер раскрыта так что даже бабы врубаются.
Аноним 03/03/16 Чтв 14:37:05  674240
>>673128
Читай документацию, блеать.
https://docs.python.org/3.5/library/threading.html#threading.Thread.daemon
>The entire Python program exits when no alive non-daemon threads are left.
Короче либо крестик сними daemon=true убери, либо [/s]трусы надень[/s] t.join() сделай.
Аноним 03/03/16 Чтв 14:38:15  674244
>>672716
Ну у тебя в конце файла есть перевод строки. Стрипни текст и все.
Аноним 03/03/16 Чтв 14:40:30  674247
>>674244
> f = filter(None, f)
Должно убрать пустые строки. Видимо там не просто пустая строка а пробел.
Аноним 03/03/16 Чтв 16:36:30  674362
>>672010
Два чая этому господину. Некоторые пункты на OP пике вообще высосаны из пальца. Зачем питону компилятор, если он изначально разрабатывался без расчёта на компиляцию в машинный код. А так то, компиляция в байт-код есть, ибо .pyc файлы никто не отменял. Приватные методы - _,methodname или __methodname. КАРОЧИ ТОЛСТА.
Аноним 03/03/16 Чтв 16:46:42  674375
>>674362
Канпелятор есть - jit и pypy, есть nuitka, есть cython.
Проверка типов тоже есть - mypy и в pycharm.
Под "хвостовая рекурсия" афтар видимо имел ввиду tail call optimization и это фишка функциональных языков где нет циклов. Зачем оно в питоне непонятно, но всё равно можно запилить через хаки.
Карринг тоже есть - тот же functools.partial или самому запилить можно т.к. функции первого порядка
Ленивость тоже.
Аноним 03/03/16 Чтв 19:04:32  674601
Написал небольшой скрипт на питоне для скачки всех файлов с треда. Полезно на всяких png-тредах или подобном
https://github.com/OlegWock/2ch-files-downloader

Подписывайтесь, ставьте лайки
Аноним 03/03/16 Чтв 19:29:52  674621
Гвиданы, как мне в джанго получить url картинок, чтобы их повставлять в темлпейт при создании новости, если картинки эти заливаются в отдельную модель, а в посте они через мени-ту-мени-филд.
Аноним 03/03/16 Чтв 20:33:20  674689
>>674621
Все разобрался.
Аноним 03/03/16 Чтв 20:36:54  674696
>>674689
kak?
Аноним 03/03/16 Чтв 21:36:26  674798
Объясните, как на пистоне строить графики функций.

matplotlib - тормознутое говно
vispy - не работающее аппаратно-ускоренное говно, кидающееся NotImplementedException на попытку его использования для построения графиков
всё остальное - низкоуровневое говно для рендеринга полигональных моделек
Аноним 03/03/16 Чтв 21:38:17  674802
>>674798
Честно - ни разу не слышал что бы матплот обвиняли именно в тормознутости
В других грехах - да, но в тормознутости от тебя первого слышу. Может ты что-то делаешь не так?
Аноним 03/03/16 Чтв 21:47:30  674817
>>674798
Сотни их. plotly и pygal сам юзал, заебись.
Аноним 03/03/16 Чтв 22:15:44  674869
Хелп ми плиаз. Прошел начальный курс по питону от MIT хз что теперь дальше изучать (сижу на код академи от этого профит есть?). Вот нашел сборник книг, курсов но какой выбрать? http://tproger.ru/articles/free-programming-books/#python
Аноним 03/03/16 Чтв 22:20:50  674876
>>674869
Изучай популярные фреймворки и скорее вкатывайся в работку.
Аноним 03/03/16 Чтв 22:23:29  674884
Посоветуйте самый годный учебник по сабжу, или онлайн-курс. Можно на английском.
Аноним 03/03/16 Чтв 22:27:53  674889
>>674876
>пистон
>работку
ПХАХАХАХХ
Аноним 03/03/16 Чтв 22:31:32  674893
>>674876
Можете сказать какие, а то я в этом деле валенок.
Аноним 03/03/16 Чтв 22:32:53  674895
а вы знали что есть подскасты по петону?
Вчера слушал "Talk Python to me" не совсем понял зачем он, какоето бесконечное обмазывание петоном в прямом эфире.
Аноним 03/03/16 Чтв 22:36:00  674900
>>674244
>Ну у тебя в конце файла есть перевод строки. Стрипни текст и все.
нет, пустые строки от перевода(любого количества) срок не появились бы
Аноним 03/03/16 Чтв 22:37:45  674903
>>674174
да? ну тогда ладно.
Аноним 03/03/16 Чтв 22:53:19  674934
>>674817
plotly - рендерит в браузере, и по-видимому юзает веб-сервис. Ты мне ещё предложи jupyter заюзать (не идёт потому, что разрабы pyzmq послали xp на хуй, увидев, что одной из импортируемых ими функций в xp нет, а разрабы jupyterа по видимому завязали jupyter на всяякое не нужное дерьмо (нахуя локалному нехайлоад экземпляру сервер очередей?)).
pygal - 2д диаграммы

>>674802
1 а ты попробуй построить 3d график
2 а на старом железе даже 2d будет тормозить

>но в тормознутости от тебя первого слышу.
1 на стековерфлоу есть об этом тред
2 в доках об этом написано и сказано юзать vispy
Аноним 03/03/16 Чтв 23:04:52  674955
>>674895
Есть еще подкаст.инит и питон тест подкаст
По мне так до жопы все это, я тупо разговорные слушаю что бы не так быстро речь иноземную забывать а пионерские термины - их и так хуй забудешь за отсутствием русских.
Аноним 03/03/16 Чтв 23:05:49  674958
>>674869
>>674884
Все в оп посте. Или нахуя нам шапка по-вашему?
Аноним 03/03/16 Чтв 23:31:09  674993
>>674955
а что такое пионерские термины?
Аноним 03/03/16 Чтв 23:32:23  674995
>>674993
Исправление ебучим гуглсвайпом слова "программерские"
Аноним 03/03/16 Чтв 23:50:37  675035
>>674995
в том эпизоде что я слушай, кстати, поясняли что без петона в cgi и кинематограф вообще не ходи.
Аноним 04/03/16 Птн 00:29:07  675103
Посоны, а как вообще интерфейсы делают? Ведь экраны мало того разные по разрешению - у них еще и разный dpi. Как же сделать так, чтобы на разных мониторах приложение выглядело приемлемо?
Аноним 04/03/16 Птн 00:52:50  675139
Почаны про spb-tut(точка)ru что скажите? Вот не могу понять, он жесткий продаван и нагородил какой-то хуйни на джанге в виде портала УСПЕЙ КУПИТЬ ВСЕ ПО 9999999 ДО ЗАВТРА или реально годные темы задвигает? Что вообще годного можно найти по основе построения вэб-приложений/приложений, не из разряда тыкайте сюда и хуяхуяк runserver во как у вас круто вышел helloworld, а что-то ближе к реальному миру, типо пишем с нуля магазин для продажи говен лопатами на развес ИНТЕРАКТИВНЕНЬКО с AJAX НА БУТСТРАПЕ АДАПТИВНЕНЬКО. Ну или как-то так хз, только въезжать начинаю лол
Аноним 04/03/16 Птн 00:54:33  675143
>>672716
Это тащемто ddl.sql, т.е. create table и т.д
>>674247
Должно, видимо сплит в последней строке убирает \n и пилит новую строку. Почему фильтр эту строку не удаляет я не знаю
>>674244
Можно пример для тупых, а то пробовал не вышло
Аноним 04/03/16 Птн 00:56:52  675147
>>674934
http://www.pygal.org/en/latest/documentation/types/line.html
Аноним 04/03/16 Птн 00:58:16  675152
>>674934
> xp
Ну, бля, ты бы ещё на отсутствие поддержки win95 жаловался. Поставь линукс.
Аноним 04/03/16 Птн 01:04:11  675153
>>674934
Вот ещё кстати, к ней примерялся, но тогда она qt5 не поддерживала и я её дропнул.
https://github.com/pyqtgraph/pyqtgraph
Аноним 04/03/16 Птн 01:37:21  675163
Что делать если не могу обновить pip с 7 до 8?
Аноним 04/03/16 Птн 01:41:24  675167
Допустим, я написал приложение, которое может быть полезно многим людям и хочу выложить его на pip. Насколько это сложно? Как отправить туда пакет для проверки? У них есть какие-нибудь обязательные требования?
Аноним 04/03/16 Птн 01:47:48  675172
>>675167
Регистрируешься, логинишься, прописываешь в своем пакете всякую установочную муру, отправляешь. По сути мало чем отличается от ебилдов в генте или пкгбилдов в арче.

>>675163
sudo easy_install3 -U pip
Аноним 04/03/16 Птн 01:56:03  675189
>>675163
Что значит «не могу»?
Аноним 04/03/16 Птн 01:56:39  675190
>>675172
sudo easy_install3 -U pip ошибку выдает
Аноним 04/03/16 Птн 01:59:01  675191
>>675190
>ошибку выдает
Очень полезная диагностическая информация, оставайтесь на линии, наши экстрасенсы уже закидываются спайсом и вылетают.
Аноним 04/03/16 Птн 02:12:22  675207
>>675167
Никаких требований кроме регистрации. Делается через setup.py (как они там сейчас называются, setuptools или distutils). Есть ещё тестовый pypi, можешь попробовать, посмотреть, поправить.
Аноним 04/03/16 Птн 02:15:20  675208
>>675103
Использовать пункты вместо пикселей, использовать вектор вместо растра.
Аноним 04/03/16 Птн 02:17:29  675211
>>675153
Там дадо полигоноёбствать чтобы построить в 3d
Аноним 04/03/16 Птн 02:20:33  675213
>>675139
>тыкайте сюда и хуяхуяк runserver
Обычно такой способ изучения фреймворков самый эффективный. Если же ты не в теме как решается некая задача, для которой предназначен именно этот фреймворк, то учись. Блог напиши, гостевуху, а то с хелловорлда решил сразу магазины идти писать.
Аноним 04/03/16 Птн 02:41:06  675237
Спасибо анону за совет с djangogirls. Дошел до питонэнивер, установил вайтнойс, пытаюсь выполнить команду python manage.py collectstatic, Выходят сплощные ошбики типа таких:
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 429, in exec
ute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in exec
ute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 191, in run_from
_argv
self.execute(args, *options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 219, in execute
self.validate()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 249, in validate
num_errors = get_validation_errors(s, app)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/validation.py", line 35, in get
_validation_errors
for (app_name, error) in get_app_errors().items():
File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 146, in get_app_err
ors
self._populate()
File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 64, in _populate
self.load_app(app_name)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 78, in load_app
models = import_module('.models', app_name)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/Contra111/my-first-blog/blog/models.py", line 2, in <module>
from django.utils import timezone
ImportError: cannot import name timezone
Мне что-то подсказывает что проблема в том, что в ошибках питон 2.7, я то писал всё на третьем и учебник на третьем, что делать?
Аноним 04/03/16 Птн 02:42:43  675239
Ну да, и команда python пишет, что там используется 2.7
Аноним 04/03/16 Птн 02:43:37  675241
>>675239
Используй третий, очевидно.
Аноним 04/03/16 Птн 02:43:56  675244
>>675241
И как сделать, чтобы там исопользовался третий?
Аноним 04/03/16 Птн 02:45:18  675245
На стаковерфлоу предложили такую команду использовать:
mkvirtualenv --python=/usr/bin/python3.4 django18
Теперь версия 3.4
Аноним 04/03/16 Птн 02:46:17  675246
>>675237
Чёт у тебя какая-то плохая джанга. У меня импортируется всё.

In [1]: from django.utils import timezone
In [2]: import django
In [3]: django.__version__
Out[3]: '1.8.7'
Аноним 04/03/16 Птн 02:47:26  675250
>>675246
Виртуаленв поменял на 3.4, теперь другая ошибка:
(django18) 23:45 ~/my-first-blog (master)$ python manage.py collectstatic
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named 'django'
Аноним 04/03/16 Птн 02:48:20  675251
>>675250
А тут джанги у тебя совсем нет.
Аноним 04/03/16 Птн 02:48:23  675252
На этот питонэнивер не нужно заново джангу ставить или её там нет сейчас? Похоже что нет
Аноним 04/03/16 Птн 02:49:11  675254
>>675252
Приличные господа используют свои сервера.
Аноним 04/03/16 Птн 02:49:56  675256
>>675254
Я пока совсем слаб во всех эти серверах, комитах и прочем, пройду этот гайд для девочек, и уже буду о своих серверах думать!
Аноним 04/03/16 Птн 02:50:21  675257
На локалхосте ставил 1.9.3, здесь не ставится:
django18) 23:45 ~/my-first-blog (master)$ pip install django-1.9.3
Collecting django-1.9.3
Could not find a version that satisfies the requirement django-1.9.3 (from versions: )
No matching distribution found for django-1.9.3
(django18) 23:48 ~/my-first-blog (master)$ pip install django1.9.3
Collecting django1.9.3
Could not find a version that satisfies the requirement django1.9.3 (from versions: )
No matching distribution found for django1.9.3
Аноним 04/03/16 Птн 02:53:25  675261
>>675257
Хех. На локалхосте у тебя видимо файл лежал прям там же, с именем django-1.9.3. Так-то pip install Django==1.9.3 (если есть такая вообще, на pypi сверься)
Аноним 04/03/16 Птн 02:54:42  675263
>>675261
А ну да, так и ставил, на питонэнивер тоже поставил, пытаюсь выполнить python manage.py collectstatic :
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/Contra111/.virtualenvs/django18/lib/python3.4/site-packages/django/core/management/__in
it__.py", line 353, in execute_from_command_line
utility.execute()
File "/home/Contra111/.virtualenvs/django18/lib/python3.4/site-packages/django/core/management/__in
it__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/Contra111/.virtualenvs/django18/lib/python3.4/site-packages/django/core/management/base
.py", line 348, in run_from_argv
self.execute(args, cmd_options)
File "/home/Contra111/.virtualenvs/django18/lib/python3.4/site-packages/django/core/management/base
.py", line 399, in execute
output = self.handle(
args, options)
File "/home/Contra111/.virtualenvs/django18/lib/python3.4/site-packages/django/contrib/staticfiles/
management/commands/collectstatic.py", line 173, in handle
if self.interactive and input(''.join(message)) != 'yes':
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid continuation byte
Аноним 04/03/16 Птн 02:56:34  675268
>>675263
Не пиши туда "да", пиши "yes".
Аноним 04/03/16 Птн 02:57:52  675271
>>675268
Чего троллишь то, конечно yes писал
Аноним 04/03/16 Птн 02:58:22  675272
Попробовал еще раз, заработало, какая-то хуета
Аноним 04/03/16 Птн 03:01:59  675275
>>675272
Чёт ты туда ввёл не то. Наверное под КОИ-8 сидишь прямо из восьмидесятых, что даже юникодный строкожуй подавился. Да, в utf-8 таки есть невалидные байты.
Аноним 04/03/16 Птн 03:02:36  675278
>>675275
Ты о чем вообще, я сижу в консоли pythonanywhere
Аноним 04/03/16 Птн 03:07:36  675287
Теперь настраиваю wsgi, и опять ошибка, как я понял он не может найти whitenoise, но я же устанавливал его только что, что за бред
Аноним 04/03/16 Птн 03:08:41  675289
>>675278
Мне это ни о чём не говорит. Что за пайтонэнивеа. Для нюфагов наверное, очередное всё-в-одном. Ток чёт глядя на твои стектрейсы мне кажется оно не справилось с тем для чего предназначалось.
Аноним 04/03/16 Птн 03:10:14  675291
>>675289
я как понял это хостинг бесплатный, я туда отправил свой репозиторий с проектом, установил джангу, установил whitenoise, теперь пытаюсь настроить файл wsgi, и вот на этом моменте опять ошибка, он не видит whitenoise почему-то, хотя только что установил
Аноним 04/03/16 Птн 03:17:54  675297
14570506745050.png (23Кб, 419x771)
Не понимаю почему он не видит staticlocal, в дереве файлов же появилась папка static и всё остальное
Аноним 04/03/16 Птн 03:18:00  675299
>>675291
Вангую что venv на стороне сервера не подключён.
Аноним 04/03/16 Птн 03:19:46  675301
>>675299
я когда на локалхосте ставил джангу, не стал ставить венв, так как не понял зачем он нужен, а на сервере пришлось поставить, т.к иначе использовался питон 2.7
Аноним 04/03/16 Птн 03:27:26  675313
>>675301
Не, тут речь о программе-сервере. Сам venv может быть в порядке. Например так:

uwsgi:
plugins: python34
env: SETTINGS_MODULE=settings
module: wsgi:app
venv: /ряяяяя/.venv/
master: true
processes: 1
Аноним 04/03/16 Птн 03:33:34  675318
>>675313
Я в этот файл записал то что в гайде написано, только ник поменял на свой
http://tutorial.djangogirls.org/ru/deploy/index.html
Аноним 04/03/16 Птн 03:35:11  675321
>>675297
>эти шрифты
>эта радуга
Аноним 04/03/16 Птн 03:47:57  675328
В каждом втором посте каждый тролль потешает своё чсв, а по делу сказать то?
Аноним 04/03/16 Птн 03:55:17  675332
>>675318
>настроить файл wsgi

Сам wsgi файл обычно "настраивать" не нужно. У меня например вместо sys.path.append просто есть директива chdir, а вместо os.environ директива env. В итоге я могу вертеть как хочу, а wsgi файл остаётся нетронутым. И это правильно потому что складывать в общий гит, в общий файл wsgi.py настройки одной конкретной машины плохо. Но на твоём хостинге видимо нет возможности так делать, поэтому прямо в wsgi хардкодом вписали.

>не видит whitenoise

Пробуй под активированным венв запустить питон и импортировать этот модуль.

>В секции "Virtualenv" кликни по красному тексту "Enter the path to a virtualenv" и набери /home/<your-username>/my-first-blog/myvenv/

На тот который надо указывает?
Аноним 04/03/16 Птн 03:59:05  675334
>>675332
В консоли импорт вайтнойс работает, а под запущенным венв это как?
Аноним 04/03/16 Птн 04:01:51  675336
>>675328
Lucida console хороший шрифт, я сам даже как-то сидел. А с cleartype всё ок, кроме того что делать с ним скриншоты дело богопротивное.

>>675334
Ну или так

source myvenv/bin/activate
python

или

myvenv/bin/python
Аноним 04/03/16 Птн 04:01:52  675337
>>675332
Пишет что не найдео венв по этому пути
Аноним 04/03/16 Птн 04:10:21  675341
>>675337
Читать секции "как создать" и "как использовать".
https://habrahabr.ru/post/157287/

Учитывай что симлинк ipython не создаётся, только python.
Аноним 04/03/16 Птн 04:16:46  675342
>>675207
>>675172
Спасибо! А пакеты проверяются вручную или загружаются в автоматическом режиме?
Аноним 04/03/16 Птн 04:19:43  675343
>>675342
Их никто не проверяет. Туда просто пакадж вливается файлом и сразу же появляется для скачивания.
Аноним 04/03/16 Птн 04:28:38  675349
Теперь версия питона опять стала 2.7, как это работает не понимаю
Аноним 04/03/16 Птн 04:32:57  675354
>>675244
Никто не использует третий кроме школьников это не интерпрайз.
Аноним 04/03/16 Птн 04:39:12  675357
Всё переделал заново, с самого начала поставил венв, потом поставил джангу и вайтнойс, настроил висг, и всё равно ошибка:
ImportError: No module named 'whitenoise'
Аноним 04/03/16 Птн 04:39:39  675358
>>675349
При создании виртуаленва версию питона надо выбрать.

Раньше это было:
virtualenv --python=python3.4 venv_dir

Теперь:
python3.4 -m venv venv_dir

Вот так ещё можно не делать его изолированным окончательно, разрешить использовать уже установленное в системе:
python3.4 -m venv --system-site-packages venv_dir

На самом деле это всё такой хак, позволяющий изолировать питоны и наборы библиотек. Он там подменяет несколько переменных окружения и расставляет симлинки. То есть ты под активированным венвом набираешь "python" и у тебя сразу нужная версия питона с нужным набором библиотек, всё импортируется, pip ставит только в этот венв (pip тоже теперь симлинк, в venv_dir/bin глянь). deactivate просто затирает переменные окружения в текущем баш-интерпретаторе и у тебя снова дефолтный системный питон.
Аноним 04/03/16 Птн 04:40:08  675360
>>675358
Я сейчас все заново переделал, посмотри вот этот пост
>>675357
Аноним 04/03/16 Птн 04:43:50  675362
>>675358
Мне кажется что проблема не в венв?
Аноним 04/03/16 Птн 04:50:06  675365
>>675360
Ну и чо. Не нашёл снова он у тебя модуль. Питон ищет модули по переменной окружения PYTHON_PATH + несколько каталогов по умолчанию (их можно изменить при сборке самого питона из исходников, чем пользуются дистростроители чтобы соблюсти свой дзен расположения файлов). Можешь прямо в шелле echo $PYTHON_PATH сделать (если выведет пустоту, это ок, значит используются только пути по умолчанию). venv в частности подменяет этот самый PYTHON_PATH. И если ты создал venv, сделал activate, установил в него пакет, а потом он у тебя не находится и не импортируется, значит где-то ты сделал хуйню, не знаю, может через sudo поставил системно или ещё что. Гугли @ читай короче, руки выпрямить по телефону я не могу.
Аноним 04/03/16 Птн 04:51:34  675366
>>675365
Сделаю сейчас заново как ты писал про венв, если я файл висг оставляю пустым то всё работает, нахуй вообще эти висг нужен
Аноним 04/03/16 Птн 04:52:37  675368
>>675365
>echo $PYTHON_PATH
Ничего не выводит
Аноним 04/03/16 Птн 04:55:51  675370
01:54 ~/my-first-blog (master)$ python3.4 -m venv myvenv
The virtual environment was not created successfully because ensurepip is not
available. On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.
apt-get install python3-venv
You may need to use sudo with that command. After installing the python3-venv
package, recreate your virtual environment.
Аноним 04/03/16 Птн 04:57:40  675371
>>675366
Это точка подключения твоей джанги к вебсерверу. Грубо говоря оно запускает питон и импортирует wsgi.py, затем импортированные объекты могут многократно срать ответами на запросы. Запускать на каждый запрос manage.py это пизда производительности и практика уровня начала 90х, когда сайты на башскриптах писали.

Твоя задача по сути сделать так, чтобы вебсервер запустил правильный питон, подключил правильный venv c библиотеками (если конечно ты используешь venv) и стартанул твою приложуху через wsgi.py.
Аноним 04/03/16 Птн 04:58:15  675372
>>675370
Нахуй нужен venv. Чем он лучше virtualenv?
Аноним 04/03/16 Птн 04:58:59  675373
>>675371
Спасибо.
Я сейчас начал заного делать, и теперь венв не создается, делаю так же как в тот раз
virtualenv --python=python3.4 myvenv
а так как ты писал вылетает ошибка >>675370
Старый венв как то надо удалить? И как это сделать?
Аноним 04/03/16 Птн 04:59:18  675374
>>675372
Я не знаю блеать, я по гайду делаю, еще толком не вник во всё это
Аноним 04/03/16 Птн 04:59:19  675375
>>675371
> сайты на башскриптах писали.
Нихуя мы их на сишечке писали или на крайняк на perl
Аноним 04/03/16 Птн 04:59:22  675376
>>675372
Тем что он вшит в сам питон. Но под двойкой только старый virtualenv.
Аноним 04/03/16 Птн 05:00:20  675377
14570568204140.png (12Кб, 401x150)
>>675373
Надо
Аноним 04/03/16 Птн 05:02:34  675378
>>675377
В гугле пишут, что удалить нельзя, можно только отключить
Аноним 04/03/16 Птн 05:05:23  675379
>>675378
Похоже деактивате это не та команда, активировал обратно на всякий
Аноним 04/03/16 Птн 05:07:22  675380
>>675373
То куда насрал venv, вот этот твой каталог myvenv, ты его можешь взять и удалить как обычный каталог. В нём нет ничего особенного. Главное не пилить ветку на которой сидишь отключить его через deactivate если он у тебя сейчас подключен (source myvenv/bin/activate который).
Аноним 04/03/16 Птн 05:08:49  675381
надо удалить каталог myvenv?
http://puu.sh/nu05C/afd63608b7.png
Аноним 04/03/16 Птн 05:09:14  675382
>>675381
->
>>675380
Аноним 04/03/16 Птн 05:12:35  675384
В самом начале (myenv) значит что я под венв сейчас сижу?
Аноним 04/03/16 Птн 05:12:57  675385
>>675384
http://puu.sh/nu0gT/da579d32b4.png
Аноним 04/03/16 Птн 05:19:44  675387
>>675384
Да, дебил.
Аноним 04/03/16 Птн 05:26:43  675391
>>675358
Чтобы в текущей папке сделать венв что надо писать вместо venv_dir? Пишет что обязательно путь писать
Аноним 04/03/16 Птн 05:28:21  675392
>>675358
>>675391
Я как понял на этом серве не получится установить венв как ты пишешь, требует рут права и утстановку пакета python3-venv, а этих прав у меня конечно нет
Аноним 04/03/16 Птн 05:30:35  675394
>>674934
matplotlib стартует интерактивный просмотрщик, хуле ты хотел, там аки в гуглокартах приближать-отдалять можно. Запекай итоговую картинку сразу, будет быстро. По крайней мере я сомневаюсь что где-то будет быстрее. Тем более если ещё учесть время на написания кода.
Аноним 04/03/16 Птн 05:42:20  675395
>>675392
Хз. Я тебе написал как оно делается стандартно. У тебя там какое-то чудо mkvirtualenv, которое уже установлено и настроено, юзай его, по аналогии, mkvirtualenv --help читни.

>что надо писать вместо venv_dir
Да любое название же. Суть в том что ты можешь хоть тыщу этих виртуаленвов завести. В одном двойка с джангой, в другом тройка и фласк версии точно 14.88, третьем ещё какой чёрт лысый. При этом у тебя всё есть и точно нужные версии пакетов без троганья рута. Если каждый полезет глобально ставить джангу рутом то весь хостинг далеко не уедет, для этого собственно и придумали венв, Virtual Environment. А весь этот замороч с activate/deactivate нужен только чтобы переключаться между ними.

>Пишет что обязательно путь писать
Ну наверное надо создать каталог сначала через mkdir.
Аноним 04/03/16 Птн 06:34:44  675405
на всякий случай сообщу что
aws.amazon.com на год бесплатно дает невероятные количества хуерги.
Можно в один клик накатить сервер с уставновленной джангой и всем что ей по вкусу.
Туториалов применительно к aws - мильярд. Да и почетно пиздеть что имеешь с авс опыт же, лол.
Аноним 04/03/16 Птн 06:36:30  675407
>>675405
это я к тому что там можно не ебстись с венв, если что поломал - накатываешь свежий сервер ровно за минуту
с:499999
Аноним 04/03/16 Птн 06:54:14  675411
>>675407
Да это хорошо, но разобраться то надо
Аноним 04/03/16 Птн 07:52:53  675424
>>675405
Ага, только нужно будет привязать к твоему амазон акку свою кредитку, и через год они могут начать ее юзать на каждый чих при нагрузке на сервак. спасибо, не надо
Аноним 04/03/16 Птн 08:17:05  675429
Хочу на винду поставить numpy. Через пип фейлится, потому что:
> error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)
Вижуал студия 2015 стоит. Windows 7 64bit, готовые бинарники только на 32 есть, вроде.

Откуда этот файл взять и куда его пихать, честно говоря, искать лень, уж простите.

И чего делать, виндоёбы? Ставить всякие анаконды не хочу, ведь мне просто для проверки кроссплатформенности проги нужно, а не работы. Ну и виртуалки/линукс не предлагать, я макоёб и там всё прекрасно, цель сейчас именно на винде сделать.
Аноним 04/03/16 Птн 08:54:25  675436
>>675424
купи себе календарь блять.
Аноним 04/03/16 Птн 08:55:40  675437
>>675411
да там ты быстрее разберешься.
Или может не быстрее, но зато будет реально полезный опыт на который можно ссылаться.
Аноним 04/03/16 Птн 09:36:37  675460
если есть лист А
то для чего используется выражение А[:] ?
Аноним 04/03/16 Птн 10:05:42  675485
>>675460
для выборки
Аноним 04/03/16 Птн 10:09:59  675489
>>675460
>если есть лист А
А что? А4?

A[:] слайсит список и возвращает копию (просто слайсит от начала до конца, поэтому получается полная копия), поэтому ты можешь без проблем сделать так:
for e in A[:]: A.pop(0)
Попробуй и посмотри что будет, если убрать индексацию.
Аноним 04/03/16 Птн 11:03:00  675522
>>675394
В математике всё быстро.
В octave всё быстро.
Вот только математика платная, а octave вылетает.
Аноним 04/03/16 Птн 11:09:25  675529
>>675429
ну можешь поставить winpython, он портативный, но всё равно желательно в песочницу.
Аноним 04/03/16 Птн 11:11:08  675530
>>675429
>И вообще, я нихуя не понимаю, хули требуется visual c++, если большинство пакетов используют поставляемый вместе с питоном gcc (а могли бы и clang)
Аноним 04/03/16 Птн 11:20:04  675534
Как делают счетчики в кружках? Например, число писем, отобразить на кнопке в красном кружке. Какие-то игрища с CSS и background текста?
Аноним 04/03/16 Птн 11:26:51  675539
>>675429
Разрядность установленного питона тоже должна быть 32.
Я так постоянно подрывался, пока у меня стоял х64 и х32.
Если х32, то ты не такие же Microsoft Visual C++ 10.0 поставил.
Аноним 04/03/16 Птн 11:36:00  675548
>>675539
у него 2015, а требует 2010
Аноним 04/03/16 Птн 13:00:12  675600
>>675534
Лооол, естественно это игрища html+css.
Аноним 04/03/16 Птн 13:12:51  675604
>>675539
>Разрядность установленного питона тоже должна быть 32.
В смысле тоже? Питон у меня 32, а винда 64. Винду переставить я, очевидно, не могу.
>ты не такие же Microsoft Visual C++ 10.0 поставил.
Как уже сказали, стоит у меня 2015-ая и не для питона, собственно, ставилась.

В общем, проблема решилась: шла б эта винда нахуй. Всем спасибо.
Аноним 04/03/16 Птн 13:59:57  675628
>>675429
>Хочу на винду поставить numpy.
Троллейбус из буханки.жпг
Поставь уже себе какую-нибудь бубнту в виртуалку и кодь как человек.
Аноним 04/03/16 Птн 14:06:06  675634
>>675522
Тогда покупай математику или сиди дебагай октав, очевидно же.
>>675534
Большой border-radius. Сам бы уже инспектором глянул.
Аноним 04/03/16 Птн 14:07:56  675636
>>675628
Чому бы под мингв не поставить всё? Тот же посикс, но под виндой. Зачем советуют сразу виртуалки, они ж тормозят.
Аноним 04/03/16 Птн 14:14:14  675645
14570900545030.jpg (273Кб, 1370x774)
Антуаны не могу обновить pip как пофиксить?
Аноним 04/03/16 Птн 14:22:53  675663
>>675645
>\Даня
Вот это вот пиздец. Меняй имя учетки на латиницу, или готовься разрабатывать очко еблей с bytes/unicode, и прочими косяками из-за ебучей кириллицы.
Аноним 04/03/16 Птн 14:27:22  675667
>>675663
Особенно понравится переименовывать, если учетка - встроенная admin'нская.
Аноним 04/03/16 Птн 14:28:57  675671
>>675645
Кстати, это как раз тот самый случай, походу. Другие модули ставятся через pip? Вангую, что нет.
Аноним 04/03/16 Птн 14:31:24  675675
>>675645
Надо как-то питону прописать твою системную кодировку. Вместо утф8 вин1251.
Аноним 04/03/16 Птн 14:34:12  675679
>>675675
Зачем привыкать к этой хуйне, когда есть человеческая utf-8?
Аноним 04/03/16 Птн 14:36:26  675681
>>675645
Эти превозмогания. Ставь виртуалбокс с убунтой.
Аноним 04/03/16 Птн 14:37:18  675683
>>675681
Отсутствия кириллицы в названии рабочих папок хватит.
Аноним 04/03/16 Птн 14:37:49  675684
>>675628
Ну ты б хоть спойлер прочёл, что ли.
Аноним 04/03/16 Птн 14:42:17  675687
>>675679
Не понимаю откуда у core пакаджей вообще проблемы с кодировками. Они же кроссплатформенные. Переименовывания это полумера, питон должен уметь работать под любым окружением.
Аноним 04/03/16 Птн 14:48:33  675692
>>675687
Ну так он пытается декодировать Даню с использованием utf-8, а кодировка Дани - вин1251. Даня не попадает в диапазон ASCII, который общий у всего юникода.
Аноним 04/03/16 Птн 14:57:55  675705
>>675692
pip вообще никак локаль не задействует, видимо. Жестко заданный utf-8. Но такое не только у него всплывает, и не только у core пакаджей. Так что никакой кириллицы - самая годная мера.
Аноним 04/03/16 Птн 15:08:44  675718
а нельзя ли просто сменить локаль консоли на utf8 с помощью chcp
Аноним 04/03/16 Птн 15:13:12  675726
>>675718
А проблема разве в консоли? Там именно внутри кода не может декодировать Даню нормально, а не при выводе в консоль.
Аноним 04/03/16 Птн 15:27:29  675752
>>675405
А что у них с ценами? Во сколько примерно обходится месяц слабого сервера, который на DO дают за пять баксов?
Аноним 04/03/16 Птн 15:27:32  675753
>>675726
винда хранит имена файлов в юникоде
Аноним 04/03/16 Птн 15:29:41  675757
>>675726
Ну вот как бы я к тому же. Почему системные вызовы в кроссплатформенном Питоне падают?
>>675692
А собственно почему он пытается найти там утф8? Внутренне у питона юникод, значит он может прочесть строку из любой кодировки. По идее он должен сдетектировать вин1251 и системные вызовы выполнять в ней.
Аноним 04/03/16 Птн 15:34:03  675763
>>675726
если не в консоли, тогда в конфиге. Может он в семибайтовой кодировке, тогда его надо сконвертить в utf8
Аноним 04/03/16 Птн 15:35:58  675765
>>675757
Ну так ASCII (латиницу) он и прочтет из любой кодировки. Потому что 128 символов совпадают почти везде. В том числе в вин1251.
Юникод это не волшебная НЕХ, которая любые кодировки распознает.
UTF-8 - это и есть кодировки юникодная.
Аноним 04/03/16 Птн 15:38:17  675767
>>675763
*семибитной
Аноним 04/03/16 Птн 15:46:34  675773
>>675757
https://habrahabr.ru/post/135913/
Аноним 04/03/16 Птн 15:49:18  675778
>>675765
>Юникод это не волшебная НЕХ, которая любые кодировки распознает.
>UTF-8 - это и есть кодировки юникодная.
Ок, не распознаёт, но может хранить любой символ. Обычно другие кодировки это подмножество юникода. Внутри питона кстати не используется UTF-8, и даже не UCS, они там своё кастомное хранилище намутили, оно оче место экономит. Но это опять же не отменяет тот факт, что питон внутри себя может использовать любой символ юникода, а значит и прочитать практически любую кодировку используя codecs.

>>675773
>Юникод для чайников
Не тралируй, плис((
Аноним 04/03/16 Птн 15:52:30  675781
print len(var)
print var.lower()


Анон, я не могу понять, нахуй у этих методов разный синтаксис?
Аноним 04/03/16 Птн 15:54:26  675783
>>675781
len([1,2,3])
len('lol')
len({'a', 8, None})
len({4: 'x', 5: 'b'})

'lol'.lower()

len это не метод, это встроенная функция питона. lower - это уже метод, но только у строк.
Аноним 04/03/16 Птн 15:55:56  675787
Знатоки кодировок itt.
Аноним 04/03/16 Птн 15:57:23  675789
>>675778
Ну да, могло бы хотя бы вывести кракозябры. Но там, может, после 0xc4 даже кракозябр не нашлось на последовательность.
Аноним 04/03/16 Птн 15:58:36  675791
>>675783
Спасибо.

Аноним 04/03/16 Птн 15:59:56  675795
>>675781
Так сложилось исторически.
http://effbot.org/pyfaq/why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list.htm
Если хочешь язык с нормальным ооп и последовательный юзай ruby.
Аноним 04/03/16 Птн 16:04:10  675803
>>675795
> Если хочешь язык с нормальным ооп и последовательный
Проиграл с формулировки.
Аноним 04/03/16 Птн 16:07:01  675807
>>675645
Короче вот:

1. Ищи если есть инсталлятор питона посвежее, уже с обновлённым pip.
2. Если такого нет, то возьми и зарепорти баг в pip. Эта хрень должна работать нормально.
3. Если тебе это оче сложно, то забей и работай со старым pip.

>>675789
Да там не в кракозябрах даже дело, а в том что откуда-то в пип приходят байты в win1251, а он предполагает что отовсюду они придут в utf-8. Кракозябры, а точнее квадраты, получаются во время print из-за того что консолька не совладает с некоторыми символами. Тру кракозябры получаются когда закодировали одной кодировкой, а раскодировали другой.

>>675795
Это какое-то мнение недалёкого человека. В питоне с помощью магических методов ты можешь сделать len для чего угодно, в том числе и для сишных объектов. И оно будет везде len(..) и значить будет одно и то же. Так-то никто не мешает расширить класс str и добавить туда свойство length аки в жабаскрипте.
Аноним 04/03/16 Птн 16:07:31  675808
>>675803
Я имею ввиду что в раби всё это метод всегда. В питоне же иногда метод, иногда встроенная функция потому что так сложилось ещё до того как туда ооп завезли)
Аноним 04/03/16 Птн 16:08:20  675810
>>675781
Но ведь len можно передать не только строки.

А .lower() - метод типа str. Нельзя сделать ['a', 'B'].lower, но можно len(['a', 'B']).

Динамическая типизация, тип.
Аноним 04/03/16 Птн 16:09:47  675812
14570969879090.jpg (16Кб, 220x220)
>>675808
РАБИ
Аноним 04/03/16 Птн 16:10:50  675814
>>675795
> 2016
> ооп
Аноним 04/03/16 Птн 16:11:20  675815
>>675810
Что мешало сделать метод len() у строк и у списков и везде где он возможен?
> Нельзя сделать ['a', 'B'].lower
В нормальном языке можно было бы
array = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
array.map(&:upcase)
или array.map!(&:upcase) чтобы изменить их in-place
Аноним 04/03/16 Птн 16:12:45  675818
>>675807
Я только что закодировал Даню с cp1251, и раскодировал в UTF-8 b'\xc4\xe0\xed\xff'. Тот же результат.

UnicodeDecodeError: 'utf8' codec can't decode byte 0xc4 in position 0: invalid continuation byte

Никаких кракозябр. В тч, в shell самого питона.
Аноним 04/03/16 Птн 16:14:59  675824
>>675815
>array.map(&:upcase)
В чем разница? Ты ту же самую итерацию сделал. Тут тоже так можно кучей способов.
Аноним 04/03/16 Птн 16:15:19  675826
>>675815
array = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
[a.upper() for a in array]
array[:] = [a.upper() for a in array]

Зато у нас map это ленивый генератор и мы можем выстраивать длинные цепи из filter/map не выделяя тонны памяти на каждый шаг.
Аноним 04/03/16 Птн 16:16:49  675829
>>675815
Именно сам тип list не может быть .lower() же, должны быть предметы в нем. Что и делает map.
Считай, аналог всяких
for x in list:
....x.lower()
Аноним 04/03/16 Птн 16:19:40  675832
>>675815
А если в списке будут цифры? Как уменьшить регистр 2, например?
Аноним 04/03/16 Птн 16:19:44  675833
>>675818
Ну дык это питон такой хитрый, всё в ascii перегоняет при repr(). Считается что ascii работает везде. Так-то если ты сохранишь эти байты в файл и откроешь блокнотом/браузером/cat, кракозябры таки будут.
Аноним 04/03/16 Птн 16:20:18  675835
>>675832
Или у если у меня в списке вообще неведомая ебаная хуйня типа экземпляров классов?
Аноним 04/03/16 Птн 16:21:13  675836
>>675832
>>675835
Тогда и питон, и руби посоветуют тебе сделать бочку.
Аноним 04/03/16 Птн 16:33:46  675843
>>675815

Питон:

a = [1,2,3]
In [5]: a.
a.append a.clear a.copy a.count a.extend a.index a.insert a.pop a.remove a.reverse a.sort

Руби:

a = [1,2,3]
=> [1, 2, 3]
irb(main):002:0> a.public_methods
=> [:inspect, :to_s, :to_a, :to_ary, :frozen?, :==, :eql?, :hash, :[], :[]=, :at, :fetch, :first, :last, :concat, :<<, :push, :pop, :shift, :unshift, :insert, :each, :each_index, :reverse_each, :length, :size, :empty?, :find_index, :index, :rindex, :join, :reverse, :reverse!, :rotate, :rotate!, :sort, :sort!, :sort_by!, :collect, :collect!, :map, :map!, :select, :select!, :keep_if, :values_at, :delete, :delete_at, :delete_if, :reject, :reject!, :zip, :transpose, :replace, :clear, :fill, :include?, :<=>, :slice, :slice!, :assoc, :rassoc, :+, :*, :-, :&, :|, :uniq, :uniq!, :compact, :compact!, :flatten, :flatten!, :count, :shuffle!, :shuffle, :sample, :cycle, :permutation, :combination, :repeated_permutation, :repeated_combination, :product, :take, :take_while, :drop, :drop_while, :bsearch, :pack, :entries, :sort_by, :grep, :find, :detect, :find_all, :flat_map, :collect_concat, :inject, :reduce, :partition, :group_by, :all?, :any?, :one?, :none?, :min, :max, :minmax, :min_by, :max_by, :minmax_by, :member?, :each_with_index, :each_entry, :each_slice, :each_cons, :each_with_object, :chunk, :slice_before, :lazy, :nil?, :===, :=~, :!~, :class, :singleton_class, :clone, :dup, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :remove_instance_variable, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :extend, :display, :method, :public_method, :define_singleton_method, :object_id, :to_enum, :enum_for, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__, :__id__]

Ящетаю разница налицо. В питоне у нас необходимый минимум, в руби в обычный список вмешано половина стандартной библиотеки.
Аноним 04/03/16 Птн 16:36:49  675844
>>675833
Там замена фейлового декодирования спецсимволами, поди.
Аноним 04/03/16 Птн 16:36:52  675845
>>675843
Это называется ООП. Эти методы получены путем наследования и миксинов.
Пользователь сам может переопределять или дополнять класс Array если хочет.
Аноним 04/03/16 Птн 16:43:59  675853
>>675845
У питона столько же методов можно отрыть, они такого плана __x__.
Аноним 04/03/16 Птн 16:46:21  675854
>>675843
In [2]: a.
a.append a.copy a.extend a.insert a.remove a.sort
a.clear a.count a.index a.pop a.reverse

In [2]: a._
a.__add__ a.__eq__ a.__iadd__ a.__mul__ a.__rmul__
a.__class__ a.__format__ a.__imul__ a.__ne__ a.__setattr__
a.__contains__ a.__ge__ a.__init__ a.__new__ a.__setitem__
a.__delattr__ a.__getattribute__ a.__iter__ a.__reduce__ a.__sizeof__
a.__delitem__ a.__getitem__ a.__le__ a.__reduce_ex__ a.__str__
a.__dir__ a.__gt__ a.__len__ a.__repr__ a.__subclasshook__
a.__doc__ a.__hash__ a.__lt__ a.__reversed__
Аноним 04/03/16 Птн 16:50:31  675859
Есть какой-то краткая книга по пистону? Если уже знаешь плюсы, жабку. Но не урезанная, чтобы все аспекты языка освещались.
Начинал читать Лутца когда-то, но терпения не хватило, какие-то дела появились и забил.
Аноним 04/03/16 Птн 16:50:43  675860
>>675845
В питоне всё точно так же, но нельзя модифицировать встроенные классы. Зато можно расширить встроенный list и сделать его как в руби. Но использовать его придётся явно, сам литерал не станет сразу ExtList:

class ExtList(list):
...

a = ExtList([1,2,3])

Я считаю это преимуществом. Каждый себе строит свой list, никто никому не мешает. Тем более что в остальном этот ExtList ведёт себя как обычный:

len(a)
a.pop()
a.sort()
[a for x in a]
etc

>>675854
>a.public_methods
Твой аргумент инвалид.
Аноним 04/03/16 Птн 17:03:09  675869
>>675859
cheatsheet какой-нибудь найди и тутор пройди, дальше по мере возникновения проблем. Считай что ты всё пишешь на stl (list, dict, set, str), а тип элемента для контейнеров variant.
Аноним 04/03/16 Птн 17:45:02  675899
>>675645
>>675628
Аноним 04/03/16 Птн 19:43:32  676196
Выручай нубаса, бро
Прохожу курсы на курсере и значит вот,

Нужно спарсить из файла эмайл адреса и посчитать самого активного.
Проблема у меня встала в следующем.
Разбиваю файл на слова ['From', 'stephen.marquard@uct.ac.za', 'Sat', 'Jan', '5', '09:14:16', '2008', 'Return-Path:', 'Received:', 'from', 'murder', '(mail.umich.edu', '[141.211.14.90])', 'by', 'frankenstein.mail.umich.edu', '(Cyrus', 'v2.3.8)', 'with', 'LMTPA;]
Такого вида список получается.
Далее прохожу по каждому слову и ищу From, мыло будет вторым словом после From. Как его получить? Всю голову сломал, я нубас, получается только вторую букву из From лол.

вот говно код, подскажи, бро

name = raw_input("Enter file:")
temp = open (name)
text = temp.read()
words = text.split()

print words

for word in words:
if word.startswith('From'):
print word[2]

Аноним 04/03/16 Птн 19:48:49  676206
>>675485
>>675489
да, заебись фича. Странно даже что про нее не вопят на каждом углу в туториалах
Аноним 04/03/16 Птн 19:49:04  676207
14571101442420.png (27Кб, 418x285)
>>676196
for w1, w2 in zip(lst, lst[1:]): if w1 == 'From': print(w2)
Но вообще ты как-то через жопу это делаешь.
Аноним 04/03/16 Птн 19:49:45  676209
>>676206
Имхо list(orig_list) как-то более очевидно чем orig_list[:]
Аноним 04/03/16 Птн 19:50:25  676212
>>676196
Т.е. было бы логичнее разбивать файл на строки и искать строки, начинающиеся с From
Аноним 04/03/16 Птн 19:54:26  676217
>>676206
Это антипаттерн.
for e in A.copy(): лучше делать.
Слайсинг имеет несколько иную природу и совсем не обязательно копирует объект.
Аноним 04/03/16 Птн 19:54:44  676219
Лазил, натолкнулся на ебанутую задачку, можно умничать.

a=typle(1,'xyu',[])
a[2]+=['pizda']

что произойдет если эту хуйню выполнить?
Аноним 04/03/16 Птн 20:00:02  676225
>>676212
Да точно, я просто походу не так условие на англ понял, спасибо, бро.
Аноним 04/03/16 Птн 20:02:09  676234
>>676219
Ошибка. А вот a[2].append('a') сработает.
Аноним 04/03/16 Птн 20:06:07  676238
>>676234
ты знал или експеримент провел?
Аноним 04/03/16 Птн 20:07:43  676242
>>676238
Я наталкивался уже на эту фигню в каком-то quiz`е по питоне или какой-то статье типа python wat`с.
Вот здесь наверное https://github.com/cosmologicon/pywat
Аноним 04/03/16 Птн 20:10:45  676248
>>676238
Вообще понятно почему так. Интерпретатор не знает mutable там объект или immutable и как у него iadd устроен.
Аноним 04/03/16 Птн 20:29:43  676272
>>676248
По мне так не совсем логично, ведь чтобы быть имутабле туплу нужно в себе держать не ссылку на объект а его реальную копию.
Что он соственно и делет в случае
b=[2]
a=[1,b,3]
b=[100]
Аноним 04/03/16 Птн 20:30:08  676273
>>676272
a=(1,b,3)
Аноним 04/03/16 Птн 20:34:00  676281
хотя если делать extend и append на лист внутре тупла, то оно даже ошибки не выдает и лист изменяется.
Аноним 04/03/16 Птн 20:34:49  676284
>>676272
Имутабле сам тупл, но объекты в нем не обязательно.
Аноним 04/03/16 Птн 20:39:51  676294
>>676284
Я вижу что на деле им не запрещено быть мутабле, но тогда сам тупл нихуя не иммутабл(на деле опять же).
Как они собираются чтото там хешировать если тупл фактически изменяется со временем причем хуй это отконтролируешь?
Аноним 04/03/16 Птн 20:47:46  676302
14571136665660.png (10Кб, 328x151)
>>676294
Никак
Аноним 04/03/16 Птн 21:50:53  676417
Стоит задача - написать облачную CRM/ERP систему с большим количеством связей и около 15 классов сущностей в модели. Также она должна спокойно крутиться под нагрузкой овер 200 клиентов синхронно и не падать. Использование Django/DjangoREST для выполнения данной задачи - гуд, или лучше обмазаться Flask/SQLA и не стрелять себе в ногу? С учетом того, что придется агрегировать данные для статистики и строить сложные многофакторные запросы.
Аноним 04/03/16 Птн 21:52:09  676423
>>676417
https://www.odoo.com/
Аноним 04/03/16 Птн 21:53:46  676430
>>676417
Строить сложные запросы, конечно, лучше алхимией и она поддерживает особенности субд разных.
Аноним 04/03/16 Птн 21:58:43  676443
>>676423
Odoo крутая штука, но мне не потребуется почти ничего оттуда. Надо решить более частную задачу, требующую кастомного программирования.
Аноним 04/03/16 Птн 22:06:19  676459
>>676302
ок, не знал.
Аноним 04/03/16 Птн 22:07:27  676463
Где взять нормальную поддержку юникода в 3.4? Качаю посты с сосача, а ему то то не нравится, то это, что ещё что-нибудь он декодить не может.
Аноним 04/03/16 Птн 22:10:22  676472
Призываются боги апача/джанги.

заливаю новый проет, вроде как прописываю к нему путь, но мне показывает 403.

смутно понимаю что нужно дать права доступа какомуто пользователю/группе пользователей кроме себя самого, но понятия не имею кому.
Аноним 04/03/16 Птн 22:11:44  676476
>>676463
помоему это виндапроблемы.
На маке у меня все работает, а на винде никто за десять тредов(давно уже было) не заборол.
Ну кроме очевидных советов, которые нихуя не работают, декоде ютф и прочее.
Аноним 04/03/16 Птн 22:13:19  676478
Редко использую винду, но ни разу никаких проблем с кодировками не было. Не считая того, что в консоль можно срать только ascii. Но кому нужна эта консоль, когда есть логи?
Аноним 04/03/16 Птн 22:15:59  676483
>>676472
Нахрена тебе апач? mod_python чтоли используешь? Выкинь это.
Аноним 04/03/16 Птн 22:19:10  676487
>>676483
а? что? развейте мысль
Аноним 04/03/16 Птн 22:19:14  676488
>>676472
Используй связку gunicorn и nginx.
Аноним 04/03/16 Птн 22:21:51  676491
>>676487
Никто не использует апач в 2016 году. Разве что для php из-за поддержки .htaccess и т.п. но это оффтопик.
Используй wsgi и nginx.
Аноним 04/03/16 Птн 22:23:30  676493
>>676472
> нужно дать права доступа какому-то пользователю/группе
Возможно ты имеешь в виду пользователя www-data.
Аноним 04/03/16 Птн 22:24:04  676496
>>676493
> www-data.
Это дистро-специфично.
Аноним 04/03/16 Птн 22:24:39  676498
>>676463
https://docs.python.org/3/library/locale.html
В эту сторону копай, давно не ебался с питоном на винде, так что не скажу конкретнее. Ну и да, поставь хотя бы cygwin, побереги психику.
Аноним 04/03/16 Птн 22:29:17  676503
>>676219
Тупл иммутабельный. Ашибка.
Аноним 04/03/16 Птн 22:29:27  676504
>>676496
Твоя правда.
Аноним 04/03/16 Птн 22:31:12  676505
Вот кстати есть ещё http://cherokee-project.com/
Интересно кто-нить юзает в продакшене?
Я когда-то лайти использовал и он мне даже больше nginx нравился но у него память текла и разработчики нифига не делали чтобы это исправить.
Аноним 04/03/16 Птн 22:32:30  676507
>>676503
ой. обосрался. индекс 2 а не 1. Эм. Ну вроде бы списки должно сложить вместе. Но так как это сложение создаёт новый список, тупл не позволит поменять его. А вот append/extend изменяют inplace.
Аноним 04/03/16 Птн 22:34:48  676510
где читать про этот ваш нгих в разрезе почему он теперь тру а апач не тру?
Аноним 04/03/16 Птн 22:36:08  676511
14571201688940.png (8Кб, 186x149)
>>676507
> так как это сложение создаёт новый список
Не создает.
+=(ака __iadd__) может вернуть новый объект, а может и старый. В случае списка оно делает extend.
Аноним 04/03/16 Птн 22:37:41  676513
>>676510
nginx асинхронный и позволяет намного больше запросов в секунду обрабатывать пожирая меньше ресурсов. Для статики он намного лучше, а для питона в качестве прокси к wsgi(или там fastcgi) серверу.
Аноним 04/03/16 Птн 22:39:26  676516
>>676510

Ngnix король статики. Для высоконагруженных проектов можно задрачивать комбинации ngnix + сервер динамики, тесты гуглить.
Аноним 04/03/16 Птн 22:44:41  676529
хорошо, спрошу иначе.
на кой пес начинающему нубу переходить на нгихн с апача?

мне бы оно хоть както заработало, а не чтобы козырять.
че там реально проще/логичней?
>>676511
только я сделал красивый скриншот, как ты меня опередил
Аноним 04/03/16 Птн 22:45:24  676530
14571207249120.png (33Кб, 623x317)
Лол блядь.
Аноним 04/03/16 Птн 22:50:46  676546
14571210463480.png (27Кб, 647x217)
Пупу туда же. Кстати как вы читаете PyPy и PyPI?
Аноним 04/03/16 Птн 22:50:56  676547
14571210570270.png (5Кб, 642x126)
Я так не играю.
Аноним 04/03/16 Птн 22:51:04  676548
>>676529
По nginx больше всяких статей типа "как поднять проект на django". Легче нагуглить будет если какие-то вопросы.
апач с питоном никто давно не использует.
И да ничего сложного там нет.
Аноним 04/03/16 Птн 22:53:03  676551
14571211831810.png (23Кб, 623x405)
>>676530
2 часа в пейнте
Аноним 04/03/16 Птн 22:55:53  676557
>>676530

Баг или фича?
Аноним 04/03/16 Птн 22:55:56  676558
>>676548
ну, окай. Буду смотреть.
Аноним 04/03/16 Птн 23:00:41  676562
>>676557
https://docs.python.org/3/faq/programming.html#why-does-a-tuple-i-item-raise-an-exception-when-the-addition-works
Аноним 04/03/16 Птн 23:03:29  676564
>>676562
Тоже это нагуглил и хотел запостить
Аноним 04/03/16 Птн 23:05:43  676567
>>676564
Frequently asked хех. Ну в любом случае не зная этот нюанс заранее предугадать нельзя. Вангую что этот вопрос любят задать на собеседовании.
Аноним 04/03/16 Птн 23:06:52  676569
>>676567
> этот вопрос любят задать на собеседовании.
Хуевый вопрос и бессмысленный. Какой смысл это спрашивать на собеседовании?
Вряд ли в реальном коде такое попадается.
Аноним 04/03/16 Птн 23:07:13  676570
>>676567
Так делать никто не будет в реальных программках.
Аноним 04/03/16 Птн 23:09:02  676571
>>676569
Вы написали в своём резюме что знаете питон. Выходит не знаете?

>>676570
Это из разряда ++i + ++i
Аноним 04/03/16 Птн 23:10:50  676575
>>676571
еще пару тредов назад разбирали как себя ведет __del__ в некоторых случаях. Еще пару примеров и можно будет унижать интервьюэров в их собственном HR офисе
Аноним 04/03/16 Птн 23:13:12  676580
Пытаюсь создать пакет в pip. Поясните, куда там пихать непосредственно код, устанавливающий приложение? Я вижу можно через онлайн форму, можно через setup.py, но там только информация о пакете. А куда класть сам код для исполнения при установке?
Аноним 04/03/16 Птн 23:16:16  676584
>>676575
Мне кажется имеет смысл утверждать что знание недокументированных возможностей больше вредит чем помогает. Дзен питона процитировать и должны отъебаться.

>>676580
Попробуй с помощью setup.py для начала собрать дистр. Кажется sdist build. Оно тебе высрет зип файл или колесо, да, я в курсе про них. Если высрало и содержимое этого зипа тебя устраивает, выполняй через тот же setup заливку на pypi.
Аноним 04/03/16 Птн 23:21:24  676595
>>676584
Спасибо, буду тыкаться.
Аноним 04/03/16 Птн 23:30:32  676622
>>676595
Покажи что выкладываешь.
Аноним 05/03/16 Суб 00:26:13  676682
>>671902 (OP)
Доброй ночи, мужики. Решил быстро скачать все картинки с одного блога. получил html с помощью urllib, но к несчастью осознал, что в блоге используется бесконечная прокрутка, а она не даёт мне спарсить весь бложик. Будь там старый добрый переход по страницам, вопросов бы не было, но тут эта модная жабаскрипт хуета. Можно ли как-то решить проблему?
Аноним 05/03/16 Суб 00:30:51  676684
>>676682
Извините, поленился нормально погуглить. Уже нашёл решение. Всем споконой ночи, друзья.
Аноним 05/03/16 Суб 00:54:20  676697
>>676682
>бесконечная прокрутка
А потом жалуются что браузеры тормозят и отжирают.
Аноним 05/03/16 Суб 01:40:27  676750
>>676684
покажи нам, раз нашел
Аноним 05/03/16 Суб 02:14:51  676783
Хочу запилить маленькое веб-приложение, которое будет генерить картинку pillow и отдавать её на страницу в base64. Для такого всякие джанги не нужны, а потому встаёт вопрос - что взять: flask или bottle? Желательно с прицелом на последующее применение.
Аноним 05/03/16 Суб 02:16:40  676788
Вы что, серьезно? У питона практически неограниченные возможности, он стоит на каждой кофеварке, вы можете делать что угодно, а вы пишете парсеры? Что с вами не так?
Аноним 05/03/16 Суб 03:26:11  676837
>>676788
>/pr
Ну а что ты хотел?
Аноним 05/03/16 Суб 04:10:32  676866
Где можно натырить странных слов для капчи?
Аноним 05/03/16 Суб 04:12:10  676867
>>676866
мята мяту мяте мяты
Аноним 05/03/16 Суб 04:14:28  676868
>>676867
Маловато, да и не оригинально.
Я подумывал итальянских каких-нибудь набрать вперемешку с английскими, но их искать и отбирать задолбаешься. Думал, может где базы есть.
Аноним 05/03/16 Суб 04:16:32  676869
>>676868
Сгенерируй. Букв всего 33.
Аноним 05/03/16 Суб 04:17:39  676870
>>676869
Тогда получится просто рандом. Я хочу получить что-то типа старой гугловской капчи с инглипом.
Аноним 05/03/16 Суб 04:25:36  676877
>>676870
У гугла тохда были сканы старых книг
Аноним 05/03/16 Суб 04:30:50  676880
>>676877
Да, я знаю. Но за неимением таковых я хочу попробовать их имитировать каким-либо образом.
Аноним 05/03/16 Суб 04:31:08  676881
>>676788
что ты имеешь ввиду? это потому что линукс встраиваемая во все что угодно ОС?
ньюфаг
Аноним 05/03/16 Суб 04:33:34  676882
>>676880
Ну и найди шрифт подходящий или прямо со сканов сдери весь алфавит. Потом рандом пару слов. Растяни и поверни их как-нибудь, добавь грязи и искажений.
Аноним 05/03/16 Суб 09:11:36  676930
>>676788
Ну что например? Отвечай, быстро и решительно, плебей.
Аноним 05/03/16 Суб 11:22:14  676974
А Tkinter пользует кто для gui? Он вроде простой как банка пива
Аноним 05/03/16 Суб 11:28:08  676980
>>676974
И бесполезный как крышка от этой бутылки. Юзай pyqt/pyside
Аноним 05/03/16 Суб 11:30:00  676982
>>676974
Все пишут питоновский гуй на gtk через pygobject, а тот кто его не пишет почему-то советует pyqt/pyside
Аноним 05/03/16 Суб 11:30:35  676984
В QT можно вообще через таб выбирать заголовки во всяких View? Например, QTreeWidget, я нихуя не могу найти, как сделать выбор заголовка столбца программно. Вроде же и это Item, но его не выбрать через row же.
Аноним 05/03/16 Суб 11:31:40  676985
>>676984
А именно нужен фокус на нем. Чтобы с помощью клавиатуры делать сортировку столбца, например.
Аноним 05/03/16 Суб 11:42:40  676991
>>676985
Фокус через Tab сразу стартует со списка, никак не реагирует на заголовки. Переходит на кнопки, Аллаха и хз что еще, но не на заголовки.
Никакие setFocusPolicy им тоже не установить.
Аноним 05/03/16 Суб 11:43:23  676992
>>676750
>>676750
Вот тут предлагают юзать селениум http://stackoverflow.com/questions/12519074/scrape-websites-with-infinite-scrolling
Хотя я решил проблему, просто подобрав значения в адресной сроке.
Аноним 05/03/16 Суб 12:51:34  677015
Поясните мне вот эту хуйню пожалуйста.
https://ideone.com/R4Oygz
Аноним 05/03/16 Суб 12:57:32  677022
>>677015
Итерируйся по копии a.
Вообще итерироваться по списку и внутри что-то с ним делать плохая идея.
Аноним 05/03/16 Суб 13:01:21  677024
>>677015
Я так понимаю, удаляя элемент 0, нулевым становится первый элемент, а цикл переходит к следующему и удаляет уже второй элемент, оставляя первый.
Аноним 05/03/16 Суб 13:02:41  677025
14571721613980.png (5Кб, 170x176)
>>677024
Как-то так и есть, там внутри счетчик где-то.
Аноним 05/03/16 Суб 13:15:17  677030
>>677022
Я то думал, что раз я не на каких-нибудь крестах дрочёных пишу, а как белый человек на питоне, то я могу делать такие простые вещи без танцев с бубном.
Но оказывается, что если я хочу перебрать какой-нибудь список на предмет нежелательных элементов, то мне нельзя удалять их сразу после выявления. Нет, мне нужно сначала в одном цикле всех проверить и составить специальный расстрельный список. А потом уже только вторым перебором по расстрельному списку, очищать ряды партии. Всё через жопу.
Аноним 05/03/16 Суб 13:19:54  677035
>>677030
Нет, тебе просто нужно написать
for i in a[:]: a.remove(i)

Или вообще использовать filter или что-то типа new_list = [i for i in a if i!=2]
Аноним 05/03/16 Суб 13:26:58  677042
>>677030
Мутабельные структуры данных следует использовать только от безысходности. А это явно не твой случай. Тогда будет тебе все удобно.
Аноним 05/03/16 Суб 13:50:09  677072
>>677035
>a[:]
Охуительная идея создавать каждый раз список на тысячи элементов, только чтобы удалить 2 или 3 из них.
>>677042
> А это явно не твой случай.
Почему это?
Аноним 05/03/16 Суб 13:55:01  677076
>>677072
Зачем проходиться в цикле по списку, чтобы проверить есть ли там элемент?
Можно сделать
try: lst.remove('el') except ValueError: blabla
Можно
if 'element' in lst: blabla
Можно проходиться с конца, если тебе уж так хочется и тогда этой проблемы не возникнет. (reversed возвращает итератор, а не копию списка)
Аноним 05/03/16 Суб 14:07:26  677089
>>677076
>Зачем проходиться в цикле по списку, чтобы проверить есть ли там элемент?
Во-первых не чтобы провериль, а чтобы удалить его оттуда если нужно.
Во-вторых, например: по экрану летит нарисованный снаряд. Чтобы он мог лететь, нужно добавить его в определённый список, который будет каждый кадр перебираться, чтобы вызвать метод снаряда update. Этот метод рассчитывает текущее положение снаряда, чтобы знать где его рисовать, а в случае если снаряд сталкивается с препятствием этот метод должен обработать последствия: в том числе удалить снаряд из списка.
Аноним 05/03/16 Суб 14:17:34  677101
>>677089
http://pyode.sourceforge.net/
Аноним 05/03/16 Суб 14:30:13  677112
>>677101
А это тут зачем?
Аноним 05/03/16 Суб 14:33:06  677119
>>677112
При том, что зачем рассчитывать положение снаряда, траекторию, ускорение и прочую фигню в цикле на питоне когда для этого есть готовая библиотека?
Аноним 05/03/16 Суб 14:33:40  677121
>>677112
И collision detection там тоже есть.
Аноним 05/03/16 Суб 14:43:14  677135
>>677119
За тем, что снаряд может двигаться не по физическим законам.
>>677121
Я рад за ODE.

Но вопрос не в том как рассчитать физон снаряда и колизии, а в том, что удалять элемент перебираемого списка - вполне насущная задача, но сделать это можно только через заднепроходное отверстие.
Аноним 05/03/16 Суб 14:43:34  677137
>>676982
Я на pyqt уже штук 10 зделал на фрилансе.
Аноним 05/03/16 Суб 14:45:42  677140
>>677025
AttributeError: 'range' object has no attribute 'remove'
Аноним 05/03/16 Суб 14:45:48  677141
14571783484750.jpg (18Кб, 630x630)
Есть сайт с которого мне нужно скачать страницы в виде хтмл, но они весят много
У сайта есть мобильная версия, но только в виде приложений на ios/android. Как можно залезть туда и начать скачивать оттуда?
Советуют указать мобильного клиента в хедере, но я не знаю что это такое и как это делать
Посоветуете что-то?
Аноним 05/03/16 Суб 14:48:19  677143
>>677135
> удалять элемент перебираемого списка - вполне насущная задача
Тебе уже сказали, используй filter и tuple. А теперь уябывай.
Аноним 05/03/16 Суб 14:54:26  677155
>>677072
>Охуительная идея создавать каждый раз список на тысячи элементов, только чтобы удалить 2 или 3 из них.
можно подумать твое удаление 2 или 3 не потребует 2 или 3 копии. список только называется списком, на самом деле это массив.
>>677089
>Чтобы он мог лететь, нужно добавить его в определённый список
да уж, гейдев за 300.
Аноним 05/03/16 Суб 14:55:13  677158
>>677143
>Тебе уже сказали, используй filter и tuple.
Тоесть феирически говнокодить для решения элементарной задачи.
Аноним 05/03/16 Суб 15:00:34  677168
>>677158
Иммутабельный контейнеры и фильтрация - это шаг вперёд по сравнению с "удалением элемента из списка". Возвращайся в кресты лучше.
Аноним 05/03/16 Суб 15:00:57  677169
>>677135
Проходись по списку с конца используя reversed. В любом другом языке была бы такая же проблема и поэтому перебирают массивы с конца.
Аноним 05/03/16 Суб 15:02:02  677170
>>677140
А "print i" тебя не смутило?
Это второй питон. В третьем надо писать a=list(range(10))
Аноним 05/03/16 Суб 15:08:02  677178
А на GUI можно рисовать графики?
Аноним 05/03/16 Суб 15:10:03  677181
>>677178
Можно.
Аноним 05/03/16 Суб 15:13:09  677188
>>677170
В третьем так не надо писать.
Аноним 05/03/16 Суб 15:13:20  677190
>>677155
>можно подумать твое удаление 2 или 3 не потребует 2 или 3 копии. список только называется списком, на самом деле это массив.
Хочешь сказать, что копирование списка сопоставимо по скорости с удалением или добавлением элемента в него?
Аноним 05/03/16 Суб 15:14:30  677192
>>677168
>Иммутабельный контейнеры и фильтрация - это шаг вперёд по сравнению с "удалением элемента из списка".
Только в твоих влажных фантазиях.
Аноним 05/03/16 Суб 15:16:18  677197
>>677188
Если тебе нужно получить список? Надо.
Аноним 05/03/16 Суб 15:16:52  677199
>>677190
Настоящий линейный список это deque. Но там доступ не O(1), как и должно быть. Так что ты тут в любом случае в пролёте со своими ко-ко-коптимизациями.
>>677192
> куд-кудах-пок-пок
Ясно.
Аноним 05/03/16 Суб 15:24:52  677214
>>677169
Вот этот вариант внезапно работает быстрее всего. Спасибо.
Аноним 05/03/16 Суб 15:25:56  677218
Ещё возможен вариант не удалять элементы из твоего гиганского списка сразу, а помечать как удаленные. Или заносить в другой список на удаление. А потом удалить разом.
Аноним 05/03/16 Суб 15:27:10  677222
>>677199
> Нет аргументов, поэтому пошли шуточки про петушков.
Ясно.
Аноним 05/03/16 Суб 15:28:20  677226
>>677218
Я так и сделал сначала. Но это костыль.
Аноним 05/03/16 Суб 15:32:39  677234
>>677226
На какой-нибудь сишечке так и пришлось бы сделать.
И если у тебя там много элементов, это должно быть быстрее.
Аноним 05/03/16 Суб 15:32:59  677236
>>677222
По-твоему "Только в твоих влажных фантазиях" это аргумент?
Аноним 05/03/16 Суб 15:46:42  677261
>>677181
А это трудно? Можно японскими свечами нарисовать? И прокрутку сделать?
Аноним 05/03/16 Суб 15:46:54  677262
>>677236
По моему, это указание то, что твоё:
>Иммутабельный контейнеры и фильтрация - это шаг вперёд по сравнению с "удалением элемента из списка".
Ни на чём не основано, кроме личных предпочтений.
Аноним 05/03/16 Суб 15:52:25  677273
14571823455490.png (33Кб, 882x56)
>>676882
>шрифт подходящий
>Растяни и поверни их как-нибудь, добавь грязи и искажений
Так и сделал. Просто не хочу полный рандом - будет неинтересно. вообще для "напиши сценарий по капче" пилил
Аноним 05/03/16 Суб 15:53:08  677275
>>677218
>>677226
В чём проблема удалять с конца?
Аноним 05/03/16 Суб 15:55:33  677278
14571825335420.png (31Кб, 427x494)
>>677275
Считай ты копируешь списко каждый раз.
Аноним 05/03/16 Суб 15:58:34  677280
>>677278
Не мог бы ты пояснить "копируешь каждый раз". Что за каждый раз и почему копируешь?
Аноним 05/03/16 Суб 15:59:14  677283
>>677262
Во-первых, иммутабельные контейнеры удобнее и проще в использовании, ибо не надо думать о сайд эффектах. Во-вторых, пифон не тот язык, где нужно всерьёз думать о производительности этих самых контейнеров. Если тебе не хватает производительности, то скорее всего надо использовать не пифон в этой ситуации.
Аноним 05/03/16 Суб 15:59:42  677284
>>677278
Для удаления в конце думаю константная сложность.
Аноним 05/03/16 Суб 16:00:34  677286
>>677278
>>677280
In [67]: a
Out[67]: [21, 7, 5, 4, 2, 2, 2]

In [68]: id(a)
Out[68]: 58128064

In [69]: a.pop(-4)
Out[69]: 4

In [70]: id(a)
Out[70]: 58128064

In [71]: a
Out[71]: [21, 7, 5, 2, 2, 2]
Аноним 05/03/16 Суб 16:00:54  677287
>>677286
>>677278
Аноним 05/03/16 Суб 16:02:32  677293
>>677280
Выше написали уже что list в питоне это не список, а массив указателей.
Поиск и удаление элементы из середины - дорогая операция, такая же дорогая как копирование всего списка.
Если элементов много и надо удалить много элементов, то выгоднее завести новый список, куда помещать элементы для удаления и после прохода пересоздать список, исключив эти элементы.
Или даже делать это не после каждого прохода, а реже.
>>677284
Ему не надо удалять именно последний элемент с конца. Ему надо удалять элементы посередине, которые соответствуют определенным критериям.
Аноним 05/03/16 Суб 16:03:24  677295
После удаления ты должен сдвинуть все элементы после удалённого на одну позицию
Аноним 05/03/16 Суб 16:03:47  677297
>>677293
А понял, из-за сдвига индекса. Спасибо.
Аноним 05/03/16 Суб 16:03:54  677298
>>677286
Причем тут это. Речь о том, что удаление элемента из середины дорогая операция.
Аноним 05/03/16 Суб 16:05:10  677302
>>677298
Мне там сказали, что я список каждый раз копирую.
Почему она должна быть дорогой то? Два указателя всего поправить нужно.
Аноним 05/03/16 Суб 16:06:43  677304
>>677302
> Два указателя всего поправить нужно.
Список в питоне не двусвязный список, а массив.
See >>677295
Аноним 05/03/16 Суб 16:10:57  677311
>>677199
Аноним 05/03/16 Суб 16:12:56  677316
>>677304
>а массив
Чистым массивом он точно быть не может, потому что умеет растягиваться и хранить элементы разных типов. Может какое-нибудь сищное подобие вектора указателей, но тогда встаёт вопрос, как он в сях реализован.
Аноним 05/03/16 Суб 16:15:13  677318
>>677316
> хранить элементы разных типов.
Он не хранит элементы разных типов. Он хранит указатели на объекты, они все одного типа.
Аноним 05/03/16 Суб 16:18:39  677323
>>677283
1) Забивать на производительность, когда можешь сделать хорошо - это признак говнокода.
2) Мутабельные контейнеры бывают удобнее с точки зрения читаемости и поддерживаемости кода. А читаемость и поддерживаемость признак хорошего кода.
Аноним 05/03/16 Суб 16:20:14  677326
>>677141
бамп
Аноним 05/03/16 Суб 16:21:14  677329
>>677326
А как сайт этот устроен? Оно точно не генерит html на клиенте получая данные через ajax и api какой-нить?
Аноним 05/03/16 Суб 16:27:01  677339
>>677329
Вряд ли, да я и не знаю как это проверить на самом деле.
Аноним 05/03/16 Суб 16:29:15  677346
>>677339
Но в любом случае, тебе же надо на выходе получить html.
Мобильная версия в виде приложения получает данные не в виде html.
Аноним 05/03/16 Суб 16:33:18  677348
>>677346
Значит стоит делать просто как обычно?
Какими способами можно тогда ускорить общение с сервером?
Аноним 05/03/16 Суб 16:36:46  677351
>>677348
Несколько тредов, включить keep-alive.
Аноним 05/03/16 Суб 16:37:47  677353
>>677323
1. Удаление первого элемента списка по скорости на том же уровне, что и создание нового тупла из всех элементов без первого. Единственное для чего стоит использовать мутабельные объекты — экономия памяти.
2. В малой части типа сортировок да. В остальном — нет.
Аноним 05/03/16 Суб 16:46:10  677368
>>677353
Вообще туплы в питоне не задуманы для такого использование. Они скорее как структуры в си или чтобы передать несколько элементов.
И вообще с такими идеями тебе в какой-нить фукнциональный язык.
Аноним 05/03/16 Суб 16:50:09  677373
>>677326
Попробуй вот так. Посмотри что он тебе отдаст.
import requests
url = 'http://your-site'
headers = {'user-agent': 'Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'}
r = requests.get(url, headers=headers)
Аноним 05/03/16 Суб 16:50:16  677374
>>677351
Для keep-alive использовать urlgrabber?
Я правильно понимаю, что достаточно объявить keep-alive в начале и каждый urlopen будет проходить с его участием?
Аноним 05/03/16 Суб 16:52:37  677380
>>677373
Ничего не выводит, но заканчивается без ошибок
Аноним 05/03/16 Суб 16:53:31  677382
>>677380
r.url тот, что и запрашивал?
Аноним 05/03/16 Суб 16:55:04  677386
>>677382
Да
Аноним 05/03/16 Суб 16:56:16  677388
>>677368
С чего это не задуманы? Можешь использовать список, но не изменять его, если религия не позволяет.
Аноним 05/03/16 Суб 16:56:28  677390
>>677374
Используй requests и Session отткуда
http://docs.python-requests.org/en/master/user/advanced/#keep-alive
Аноним 05/03/16 Суб 17:00:17  677396
>>677388
Потом типичные операции это list.append/list.pop и они быстрые.
Аноним 05/03/16 Суб 17:04:45  677412
А r.text такой же как в браузере? Ты на адрес мобильной версии посылаешь запрос?
Аноним 05/03/16 Суб 17:04:52  677413
>>676788
Ну же, отвечай!
Аноним 05/03/16 Суб 17:06:29  677417
>>677412
Он же сказал что мобильная версия сделана не в виде сайта, а в виде приложений.
Аноним 05/03/16 Суб 17:07:14  677420
>>677396
поп(0) О(n) уже картинку скинули. аппенд амортизирован О(1), но если нужно изменить внутренний размер листа, но это долшьше. Для тру О(1) добавления/удаления в начало/конец используются deque, queue
Аноним 05/03/16 Суб 17:09:10  677422
>>677137
>зделал
За домашнюю работу уже платить стали?
Аноним 05/03/16 Суб 17:10:35  677426
>>677412
Нет, r.text намного меньше чем в браузере
https://www.diffchecker.com/ghcqvped
Вот здесь разница если важно
Аноним 05/03/16 Суб 17:10:38  677427
>>677417
Возможно, увидев андройдовский user agent, сервер отдаст ему данные для приложения. В любом случае он должен что-то отдать.
Аноним 05/03/16 Суб 17:17:27  677434
>>677412
через мобильную версию вес html меньше раз в 6
Спасибо
Аноним 05/03/16 Суб 17:18:29  677436
>>677427
> увидев андройдовский user agent, сервер отдаст ему данные для приложения
Обычно смотрят не на user-agent а на другие заголовки. Типа content-type, Accept. Да и url другой.
Аноним 05/03/16 Суб 17:19:03  677438
>>677434
Рад за тебя. Если тебе нужны какие-то конкретные данные, то у них вроде API есть.
Аноним 05/03/16 Суб 17:19:46  677439
>>677438
Но через api у них не возьмешь список всех книг, а именно это мне и нужно:с
Аноним 05/03/16 Суб 17:19:47  677440
Какой максимальный размер (ширина, высота) картинок тут?
Аноним 05/03/16 Суб 17:22:05  677444
>>677436
Я лишь знаю, что увидев user-agent обычно редиректят на url мобильной версии. Я в этом не силен.
Аноним 05/03/16 Суб 17:23:43  677446
>>677439
search.books - Find books by title, author, or ISBN.
Думаю, тут есть варианты как извратиться.
Аноним 05/03/16 Суб 17:24:45  677448
>>677446
Да мне кажется, что простой crawler тоже сможет это сделать. Да и опыт написание crawler'a лишним не будет
Аноним 05/03/16 Суб 17:27:52  677453
>>677448
Зачем это, если не секрет?
Аноним 05/03/16 Суб 17:29:34  677458
>>677453
Скоро интернет вырубят и будет чебурашка.
Надо успеть скачать всё что есть в интернете.
Аноним 05/03/16 Суб 17:30:05  677459
14571882052010.jpg (68Кб, 600x462)
Перекат где?
Аноним 05/03/16 Суб 17:33:31  677464
14571884118830.png (130Кб, 3444x56)
Капча из 20 слов
Аноним 05/03/16 Суб 17:38:09  677469
>>677464
Больной ублюдок.
Аноним 05/03/16 Суб 17:46:52  677486
Аноны, кто-нибудь использовал связку angular + django_rest? никак не получается отправить файл на сервер через форму, хотя через api все отправляется
Аноним 05/03/16 Суб 17:50:10  677495
>>677469
Хотел из 100, но она, говорит, слишком большая. Из 50 тоже не пускает.
Аноним 05/03/16 Суб 17:53:14  677498
>>677495
И что ты собрался с этим чудовищем делать?
Аноним 05/03/16 Суб 17:55:47  677502
14571897480620.png (35Кб, 1051x56)
>>677498
Роллить во славу Инглипа конечно же! для "напиши сценарий для фильма по капче", я там выше писал Только рандом в словах ещё не завёз, но сервис уже работает.
Аноним 05/03/16 Суб 18:38:06  677553
>>677453
Прости, уходил
Это проект на полгода на первом курсе, рекомендательную систему нужно построить
Аноним 05/03/16 Суб 18:44:46  677561
Что значит

10% used (10.39s of your 100 second CPU allowance)
Allowance resets in 6 hours, 53 minutes
?
Что после того, как я попользуюсь процом 100 секунд, то после этого не смогу, пока таймер не сбросится?
Аноним 05/03/16 Суб 21:37:14  677693
14572030346220.jpg (33Кб, 604x474)
Аноним 05/03/16 Суб 22:05:53  677711
14572047537490.jpg (32Кб, 604x474)
Аноним 06/03/16 Вск 02:21:17  677890
>>677889 (OP)
Аноним 06/03/16 Вск 05:10:39  677924
14572302390170.jpg (218Кб, 1000x750)
>>677693
Аноним 06/03/16 Вск 12:30:30  678026
>>677143
>Тебе уже сказали, используй filter и tuple.
Я тут почитал ваш спор и у меня к тебе вопрос: а можешь показать пример, как исползовать тупл в ситуациях, когда нужно удалять/добавлять элементы в список?
Предположим, у меня есть список студентов Гарварда (20к+), нужно убрать оттуда тех, кто уже дал взятку. Однако, если деньги во взятке оказались фальшивыми, студента нужно будет туда вернуть.
Со списками всё элементарно:
#получаем эвент "дал взятку" с аргументом штудента
not_bribed.remove(student)
bribed.append(student)
#получаем эвент, что взятка оказалась фальшивой
bribed.remove(student)
not_bribed.append(student)

student.bribe /= 0.5 # в качестве штрафа удваиваем необходимую взятку*

А как быть с туплами? Программа у нас однотрендовая с эвентлупом, никаких одновременных обращений к списками не будет.
Аноним 06/03/16 Вск 12:34:30  678030
>>678026
Разумеется, информация должна быть постоянно самая свежая, поэтому держать какой-то дополнительный список "на удаление" глупо, ведь ректор может попросить список имён для "домашнего визита" в любое время.
Аноним 06/03/16 Вск 13:45:56  678100
>>678026
Всё просто
bribed = bribed + (student,)
i = not_bribed.index(student)
not_bribed = not_bribed[:i] + not_bribed[i + 1:]
Ты придумал данную задачу так, что здесь изначально два мутабельных контейнера и предлагаешь их заменить иммутабельными. Гораздо лучше в класс студент добавить свойство "давал взятку". Тогда нужен один тупл и всё.
Аноним 06/03/16 Вск 14:07:48  678129
>>678100
>Ты придумал данную задачу так
Я просто придумал первую пришедшую в голову задачу со списками. Второй список, если честно, появился случайно при развитии сюжета. Делать шаг назад, естественно, было нельзя - первое правильно импровизации.

А в чём в итоге плюс-то этого постоянного пересоздания тупла вместо изменения списка? По скорости, как ты и говорил, разницы нет ( http://ideone.com/qXxwWC ), даже если remove заменить на поиск индекса и последующий pop. От случайных изменений можно защититься тем, чтобы не писать код, который изменяет.

То есть, в относительно небольшом приложении, какая может быть объективная причина использовать иммутабл и эти плюсы и слайсы, вместо очевидных и красивых append/remove?
Аноним 06/03/16 Вск 14:12:34  678139
>>678129
Появится многопоточность, а она скорее всего появится. И мутабельность сыграет злую шутку.
В остальном, да, либо использовать эти списки, либо, как я уже выше написал, иметь один тупл со студентами и поле "взяточничества" студента.
Аноним 06/03/16 Вск 20:34:16  678618
Перекатываемся
https://2ch.hk/pr/res/677889.html

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 547 | 29 | 103
Назад Вверх Каталог Обновить

Топ тредов