М.Двач / Программирование

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

66 Кб, 604x525

Python 01 Мар, 01:30 #671902 В конец треда | Веб

Шапка: 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

Ответы>>671958>>672808>>676682

01 Мар, 02:03 #2 #671925

1

50 Кб, 164x180

01 Мар, 02:04 #3 #671927

01 Мар, 02:29 #4 #671958

>>671902 (OP)
ОП-пик устарел.

Ответы>>671969

01 Мар, 03:08 #5 #671969

>>671958
Вам завезли switch-case или до сих пор городите костыли?

Ответы>>671977>>672010

01 Мар, 04:40 #6 #671977

>>671969
угомонись уже, пидор

01 Мар, 08:25 #7 #672010

>>671969
А нахуй нужен свитч в некомпилируемом и динамическом языке? Вся его фишка же в том, что свитч сравнивает переменную с константами, из-за чего что-то там оптимизируется и быстро работает.
if/elif всё равно не больше места занимает (даже на один отступ меньше, чем если бы свитч был).

Ответы>>674362

01 Мар, 09:40 #8 #672035

Вопрос:
Допустим, мне надо, чтобы моя программа качала некие документы, которые ежедневно выкладываются на неком веб-ресурсе. Они бы складывались на фтп-сервере, каждый в папку со своей датой, когда были скачаны в формате dd/mm/yyyy. Чисто теоретически, сложно такую задачу на питоне?

Ответы>>672036>>672073>>672130>>672158

01 Мар, 09:41 #9 #672036

>>672035
Нет.

Ответы>>672040

01 Мар, 09:43 #10 #672040

>>672036
Что нужно знать для реализации сей тривиальной задачи? Я начинающий программист. До этого на паскале/делфи писал из разряда laba1.

Ответы>>672043

01 Мар, 09:46 #11 #672043

>>672040
Нужны модули datetime, requests, ftplib. Наверное, всё.

Ответы>>672044

01 Мар, 09:47 #12 #672044

>>672043
Спасибо, анон, сотню нефти тебе.

Ответы>>672046

01 Мар, 09:51 #13 #672046

>>672044
А тебе не под линукс?

Ответы>>672052

01 Мар, 10:01 #14 #672052

>>672046
Все равно, в общем-то. А если нет, что поменяется? Полагаю, у виндоюзера должны возникнуть проблемы.

Ответы>>672054

01 Мар, 10:04 #15 #672054

>>672052
Нет, просто можно было бы и на bash написать. В общем, не важно.

Ответы>>672062>>672063>>672075

01 Мар, 10:10 #16 #672062

>>672054

01 Мар, 10:10 #17 #672063

>>672054
Мисскликнул. Хотел сказать, что тоже интересно, буду знать.

01 Мар, 10:26 #18 #672073

>>672035
Когда-то делал заливатель изменений из гит репозитория по фтп. Можешь передрать оттуда, там курлом всё сделано.

https://gist.github.com/kctier/33cda7cf6413c733d7eb

01 Мар, 10:27 #19 #672075

>>672054
for url in urls.txt;do curl $url -o $(date +"%d/%m/%y");done;

Ответы>>672081

01 Мар, 10:33 #20 #672081

>>672075
Серьёзно? Это все? Выглядит просто волшебно!
Анон, что задал вопрос.

Ответы>>672085

01 Мар, 10:36 #21 #672085

>>672081
Тут в цикле достаются url из файла и сохраняются в текущей папке с датой в формате, который ты указал. А с ftp я не очень понял что тебе и куда, но будет выглядеть примерно так же.

Ответы>>672086

01 Мар, 10:38 #22 #672086

>>672085
С фтп надо будет просто качать в папочку, которая корневая у ftp сервера, который он поставит.

Ответы>>672095

01 Мар, 10:57 #23 #672095

>>672086
Ну тогда должно выглядеть примерно так:
mkdir -p $(date +"") && cd $_;
for url in urls.txt;do curl $url -O $(date +"%d-%m-%y");done;
Первая строка создаёт директорию, если она еще не существует, и переходит в неё. Вторая строка в цикле скачивает файлы по url и сохраняется с тем же названием, что и в url. Как-то так.

Ответы>>672097>>672098

01 Мар, 10:59 #24 #672097

>>672095
Что такое $_. Вывод предыдущей команды? Первый раз вижу такую конструкцию, это башизм?

01 Мар, 11:01 #25 #672098

>>672095
Ошибся.
mkdir -p $(date +"%d-%m-%y") && cd $_;
r url in urls.txt;do curl -O $url ;done;
$_ - последний аргумент предыдущей команды.

01 Мар, 11:49 #26 #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}

Ответы>>672133

01 Мар, 11:56 #27 #672133

>>672130
Говно этот павершелл. Многие вендоадмины питон юзают.
Или http://xon.sh/ какой-нить.

Ответы>>672138

01 Мар, 12:01 #28 #672138

>>672133
Powershell работает из коробки и для такой задачи самое оно.

Ответы>>672140

01 Мар, 12:04 #29 #672140

>>672138
Питон ставится в 2 клика.

Ответы>>672142>>672150

01 Мар, 12:05 #30 #672142

>>672140
Powershell работает из коробки.

Ответы>>672150>>672151

01 Мар, 12:16 #31 #672150

>>672140
>>672142
Ну заебали. Сейчас ещё прикатится хуй с картинкой о распространенности двойки на pypi.

01 Мар, 12:16 #32 #672151

>>672142
Что мешает, кстати микрософт-быдлу поставлять питон из коробки? Лицензия позволяет. Поддержка винды там норм.
Apple вот поставляет.

Ответы>>672152

01 Мар, 12:17 #33 #672152

>>672151
Просто за это никто не заплатит.

01 Мар, 12:31 #34 #672158

>>672035
Как-то так.
http://pastebin.com/NTKybJxV

01 Мар, 12:36 #35 #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()
Нужно чтобы была возможность удалять и добавлять варианты и менять их вес.
Есть ли в питоне что-то готовое для такой задачи или нужно самому велосипед изобретать?
Как такой велосипед лучше организовать?

Ответы>>672167>>672173>>672179>>672184>>672205>>672207

01 Мар, 12:42 #36 #672167

>>672164
О, я делал такое. Тебе нужно сгенерировать кеш по всем значениям, суммируя последовательно веса: [5, 8, 9]. Далее randint по всему диапазону и бинарный поиск индекса по кешу (есть хороший модуль bisect).

Ответы>>672204>>672211

01 Мар, 12:49 #37 #672173

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

Ответы>>672204

01 Мар, 13:04 #38 #672179

>>672164
Как-то ты ебануто справшиваешь. Тебе просто надо из списка вариантов рандомным образом выбрать один? Random.choise и вперде.

Ответы>>672186

4750 Кб, Webm

01 Мар, 13:09 #39 #672184

>>672164
А, я хуячил такой ИИ, только на другом языке.

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

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

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

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

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

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

Ответы>>672194

01 Мар, 13:13 #40 #672186

>>672179
> Тебе просто надо из списка вариантов рандомным образом выбрать один?
Да, но при этом 1 элемент должен выпадать чаще другого, пропорционально весу.

Ответы>>672187>>672189>>672310

10 Кб, 295x171

01 Мар, 13:15 #41 #672187

>>672186
> Есть два стула... Я выберу срубание... Хотя нет, в этот раз я выберу хуи. Не повезло прост((

01 Мар, 13:16 #42 #672189

>>672186
Сделай список в котором каждого элемента будет n*вес

Ответы>>672190>>672203>>672211

01 Мар, 13:17 #43 #672190

>>672189
Рубисты в треде, все в пхп.

01 Мар, 13:18 #44 #672192

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

01 Мар, 13:19 #45 #672194

>>672184
А где тут случайный выбор?

Ответы>>672195

01 Мар, 13:21 #46 #672195

>>672194
Не нужен.
Но если хочется присесть на пики, то легко прикрутить.

Ответы>>672202

01 Мар, 13:26 #47 #672202

>>672195
Анон же написал:
>ИИ должен случайно выбрать в соответствии с весом варианта.

01 Мар, 13:30 #48 #672203

>>672189
Я думал о таком решении, но, если у пик будет вес 9999, а у хуёв 1, то придётся генерить список в 1000, а потом каждый раз перегенерировать при изменении весов, что непозволительный просер вычислительных ресурсов.

Ответы>>672204>>672228

01 Мар, 13:32 #49 #672204

>>672203
Делай уже по моим подсказкам. Аж целых джва варианта тебе: с иммутабельной выборкой >>672167 и с мутабельной >>672173.

01 Мар, 13:32 #50 #672205

>>672164
Чому бы не сортировать по весу и выбрать из наименьших?

01 Мар, 13:34 #51 #672207

>>672164
Внезапно https://docs.python.org/3/library/random.html#examples-and-recipes

Ответы>>672211>>672248

01 Мар, 13:38 #52 #672211

>>672207
Первый вариант там: этот пост >>672189
Второй вариант: этот >>672167
Вот хуле нового ты сейчас сказал?

Ответы>>672215>>672221

01 Мар, 13:41 #53 #672215

>>672211
Зачем устраивать дискуссию, если это есть в документации?
>Вот хуле нового ты сейчас сказал?
Ты очень неприятно выражаешься.

01 Мар, 13:43 #54 #672221

>>672211
>Вот хуле нового ты сейчас сказал?
Конкретный пример в питоновских буквах.
Мне пригодилось. Больше чем описание про кеш словами без примера.
Всем спасибо за подсказки и участие.

Ответы>>672226

01 Мар, 13:46 #55 #672226

>>672221
Стековерфлоу-программисты пишут ИИ, лол.

01 Мар, 13:47 #56 #672228

>>672203
> то придётся генерить список в 1000
И что? Во-первых, 1000 элементов это ничто. Во-вторых, они будут ссылаться на тот-же объект, то есть памяти тоже минимум съедено.
Не занимайся преждевременной оптимизацией тем более на быдлопитоне.

Ответы>>672231

01 Мар, 13:48 #57 #672231

>>672228
Внезапно появляется вес 1012 к одному.
Не занимайся быдлокодингом даже на быдлопитоне.

Ответы>>672234

01 Мар, 13:50 #58 #672234

>>672231
> Внезапно появляется
А если не появиться?

Ответы>>672242

01 Мар, 13:56 #59 #672242

>>672234
Ну не появляйся.

Ответы>>672246

01 Мар, 14:08 #60 #672246

>>672242
Ну вот. Тем более 10^12 вес. Обычно не бывает такого. При таком весе весом 1 можно было бы вообще принебречь.

Ответы>>672248

01 Мар, 14:13 #61 #672248

>>672246
Ну вот видишь сколько условностей нужно соблюсти. Этот алгоритм неплох, но для небольших фиксированных чисел. И об этом даже там в доках >>672207 написали. То есть 1000 - это уже плохо, так как если тебе нужно сделать миллион выборок по разным вариантам, будешь джва года ждать.

01 Мар, 14:25 #62 #672262

Аноны, у меня есть задание сделать небольшой SPA с возможностью загрузки картинок, сохранения их в галерею, показа отдельной картинки и всей галереи.
Я только учусь и никогда раньше не сталкивался с таким таском, для этого мне можно обойтись только Django REST и для отображения написать несколько Ajax запросов? Я правильно понял?

Ответы>>672276>>672300>>672312

01 Мар, 14:34 #63 #672276

>>672262
Думаю тебе надо пердолиться с каким-то javascript фреймворком. Питоновская часть то простая. Кстати django rest довольно сложный, есть попробще либы.

Ответы>>672278

01 Мар, 14:37 #64 #672278

>>672276
в туториалах советуют Angular + REST, с первым я не знаком совсем. Хотя, думаю, задача не такая трудная чтобы на фронтенде использовать фреймворк.

Ответы>>672299

01 Мар, 14:47 #65 #672299

>>672278
В яваскрипт треде янгуляр чмырят дико. Сам я его не осилил(и не пытался).
Можешь на простом яваскрипте сделать или на jquery.

Ответы>>672302

01 Мар, 14:47 #66 #672300

>>672262
Если тебе просто преподу показать, то можно хранить картинки прямо в localStorage, а для SPA взять один из тысячи js галлерей, которая в любом случае понадобится.

Ответы>>672311

01 Мар, 14:48 #67 #672302

>>672299
или на аджахе

Ответы>>672304

01 Мар, 14:49 #68 #672304

>>672302
Или?

Ответы>>672308

01 Мар, 14:51 #69 #672308

>>672304
на

Ответы>>672309

01 Мар, 14:51 #70 #672309

>>672308
аджахе!

01 Мар, 14:53 #71 #672310

>>672186
Лови говнокд, братишь
https://ideone.com/yuGqTQ

01 Мар, 14:53 #72 #672311

>>672300
Да, мне нужно просто реализовать это приложение на дев сервере. Я просто не совсем понимаю, что входит в понятие SPA. В моем представление, это приложение в котором весь обмен данными реализован через Ajax, без обновления страницы и данные отдаются через Json.
Соответственно мне нужен Django Rest. Я правильно все понял?

Ответы>>672317>>672320>>672324

01 Мар, 14:54 #73 #672312

>>672262
Дай-ка угадаю: ТЕСТОВОЕ ЗАДАНИЕ?

01 Мар, 15:05 #74 #672317

>>672311
Django REST необязательно, можно и на голом Django все это сделать. Тут как тебе будет удобнее.
Галерей на js масса, выбирай одну, смотри в каком формате она получает данные. Скорее всего, это будет json список ссылок на превьюшки и полноразмерные картинки.

Ответы>>672325

01 Мар, 15:08 #75 #672320

>>672311
Single Page applications же, еба.
>данные отдаются через Json.
Не обязательно. Даннуми ты можешь хоть через WEB-сокет по каштомному бинарному протоколу обмениваться.
>Соответственно мне нужен Django Rest.
Совсем не обязательно. Можно на простой джанге заипошить, можно на фласке, можно хоть на голых скриптах. Задание-то хоть на какую позицию?

Ответы>>672325

01 Мар, 15:12 #76 #672324

>>672311
Django REST нужен чаще всего когда ты хочешься сделать по быстрому нормальное API к своему приложению, чтобы другие могли юзать его из своих сервисов. В твоем случае обычные вьюхи и какойнить ангуляр с библиотекой для картиночек будет достаточно.

Ответы>>672325

01 Мар, 15:16 #77 #672325

>>672317
>>672320
>>672324

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

Погуглю галереи и отдавать буду Jsonresponce через Ajax запросы, намного проще пока выглядит чем вникать в Rest и Angular

Ответы>>672330>>672331>>672457>>672464

01 Мар, 15:23 #78 #672330

>>672325
первый запрос на SPA галерею
http://demo.jankuri.com/ngGallery/
чтд.

83 Кб, 442x618

01 Мар, 15:23 #79 #672331

>>672325
>выполняю все задания которые предлагают

Ответы>>672332

01 Мар, 15:25 #80 #672332

>>672331
Это же опыт, который мне пригодится

Ответы>>672336

01 Мар, 15:28 #81 #672336

>>672332
моча рано ударила в голову в 4 активно ругался матом
в детском саду девочки впервые показали мне пизду
потом школа вонючая форма драки клей так я становился сильней

Ответы>>672356

01 Мар, 15:43 #82 #672356

>>672336
Уебывай в /б

Ответы>>672367

01 Мар, 15:52 #83 #672367

>>672356
да тут такойже /b, только все ждут что тут сэры и герцоги одни.

Ответы>>672458

01 Мар, 16:46 #84 #672417

Аноны, подскажите название пакета, насколько я помню аналог Selenium, только рендерит страницу в консоли.

Ответы>>672421>>672544

01 Мар, 16:49 #85 #672421

>>672417
Ghost.py?

Ответы>>672435

01 Мар, 17:03 #86 #672435

>>672421
Не совсем то, но пока искал, нашел, что Selenium в качестве вебдрайвера может phantomjs использовать.

01 Мар, 17:38 #87 #672457

>>672325
Ты умничка
Я ещё годик поучу питон похожим макаром и тоже попизжу куда кодером

Ответы>>672464

01 Мар, 17:38 #88 #672458

>>672367
Господа жи.

01 Мар, 17:42 #89 #672464

>>672325
Ну рассказывай свой путь, с чего начал, какие материалы уже успел изучить, ну и входные данные какие были.

И ты еще расскажи >>672457

Ответы>>672468>>672500>>672580

01 Мар, 17:52 #90 #672468

>>672464
Месяцев 7 учусь, работаю 2х2 так что время свободное есть.
Входных данных никаких, даже отдаленно не представлял как все устроено. Прочитал Лутца, посмотрел кучу туториалов, вроде вник в основы, потом начал Django изучать, сейчас с основами тоже знаком хорошо. По sql небольшую книгу прочитал, не помню автора, просто чтобы представлять как делать запросы без ОРМ. Свой уровень не могу точно оценить но на джуниора точно должен тянуть.
Вообще нужно очень много практики, чтобы в голове откладывалось больше информации. На собеседования зовут редко как сделаю что-нибудь стоящее для гитхаба, может получше пойдет

Ответы>>672629

01 Мар, 18:42 #91 #672500

>>672464
3 месяца
Кодекадеми -> книжки-туториалы все подряд, уже добрый десяток книжечек со всеми заданиями и прочей хуйнёй, штук сорок скриптов для себя накатал что бы автоматизировать всё что хотел, вроде автоматизировал.
Начинал учить что бы высрать вполне конкретные две системки на джанго но меня до сих пор ебёт их делать.

А с другой стороны кодинг заебись, даже если я буду зарабатывать за месяц 3 сотни баксов это будет больше чем моя текущая зп, а я так понял удалёнку на 3 сотни найти не самое сложное в этой жизни.

Ответы>>672503>>672629

01 Мар, 18:44 #92 #672503

>>672500
что у тебя за работа? Я только один парсер себе для удобства работы написал

Ответы>>672513

01 Мар, 18:53 #93 #672513

>>672503
Скажем так, я фрилансер в сфере корпоративного управления. Обычно это означает что я сижу дома и пизжу с долбоёбами на линкедине за мизерную ставку. Изредка - что я куда-то еду и за огромную кучу бабла им чёто делаю. Изредка это реально изредка.
Из других смешных особенностей опыта у меня вроде и много, но для международного уровня маловато, а местный вымер нахуй ввиду того что теперь моя область называется лднром.
Вот и получается что для говновакансий за 500 баксов никто с экспантом ебаться не захочет, собеседоваться зовут только на всякое говнище по 1-2 К $, а живу я на 10 тыщ руб которые зарабатываю тем что торгую через инет при помощи вордпресса и адсенса/директа всяким говном

01 Мар, 19:30 #94 #672544

>>672417
Фантом жс. Только его надо отдельно скачивать. Удобная штука. А во время отладки надо одну строку поменять чтобы все было видно

01 Мар, 20:00 #95 #672554

Пистоны, задачка с codewars.

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

1 | 2 | 3 | ... | n

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

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

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

Какой алгоритм взять?

Ответы>>672557>>672590

01 Мар, 20:03 #96 #672557

>>672554
Выражение то какое?

Ответы>>672560

01 Мар, 20:06 #97 #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.

Ответы>>672601

01 Мар, 20:45 #98 #672580

>>672464
а меня хоть никто и не просил тоже расскажу.
С лета мееедленно так читал сначала Укус, понял что нихера не понял (вернее для реализации даже курсачей понимания маловато), решил сделать "сначала все зубришь-потом кодишь", поэтому читал вяло полгода Лутца. Понял что так нихера не проканает и сижу читаю теорию Лутца, практику Лутца, Бизли с примерами и описаловом библиотеки и еще СИКП и пытаюсь в курсачи и чтобы понять как работает оно. Но этого не случалось пока мне не припекло что мне надо перебираться из моей мухосрани а коденхом это сделать будет проще всего по затратам времени.

01 Мар, 20:52 #99 #672590

>>672554
А большое n - это сколько? На моем днищеноуте n=100 млн вычисляет 5.4s

01 Мар, 20:55 #100 #672593

Я еще раз прочитал про SPA, главное отличие SPA это выполнения кода на одной странице без перезагрузки? Т.е. если в Django я отправляю во вью все через Jsonresponce, по средствам Ajax это будет SPA? Или у SPA есть какие то другие особенности?

01 Мар, 21:04 #101 #672601

>>672560
https://ideone.com/Qe36UV

Ответы>>672611>>672612

01 Мар, 21:16 #102 #672611

>>672601
https://ideone.com/N0G3XI

Ответы>>672615

01 Мар, 21:18 #103 #672612

>>672601

Какая-то магия.

Ответы>>672624

01 Мар, 21:21 #104 #672615

>>672611
Само собой. Я просто хотел чтобы было видно почему так получается.

01 Мар, 21:34 #105 #672624

>>672612
OR не умеет превращать 1 в 0. Если у числа где-то 1 в двоичном представлении, то сколько его не орь она там останется.
Поэтому у тебя сразу должно возникнуть предположение, что двоичном представлении X = 1 | 2 | ... | N должно быть дофига единиц.
По факту результат будет состоять из такого же количества битов, что и N, но все они будут "1". Даже объяснять лень.

Ответы>>672677

01 Мар, 21:40 #106 #672629

>>672468
>>672500
А вы молодцы, удачи вам и упорства побольше.
Тоже надо плотнее уже заняться этим делом, а то прерываюсь часто из-за дел.

Расскажите еще какую-нибудь стори.

9 Кб, 236x216

01 Мар, 21:40 #107 #672632

Питоны, подскажите, что лучше использовать. Есть сайт, он берет данные не из бд, а из rest/soap сервиса, крутящегося на другом сервере. С помощью чего лучше реализовать получение этих данных (нагуглил сериализаторы), и какой фреймворк использовать? Вроде как нашел, что для этого Flask хорошо подходит, а в Django для такой задачи слишком много лишнего, верно ли это? В общем, хелп ми плиз.

Ответы>>672639

01 Мар, 21:45 #108 #672639

>>672632
По мне и фласк слишком батарейкнутый для простых дел.
Попробуй веб2пу - оно простое как банка пива и тоже работает.

Ответы>>672685

01 Мар, 22:04 #109 #672677

>>672624

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

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

Ответы>>672686

01 Мар, 22:07 #110 #672685

>>672639
что рекомендуешь прочесть чтобы понять веб2пу? и понять что он прост как банка пива?

Ответы>>672713

01 Мар, 22:07 #111 #672686

>>672677
Ну или так.

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

01 Мар, 22:20 #112 #672713

>>672685
Туториал на оф. сайте

01 Мар, 22:21 #113 #672716

Анон, что за хуйня:
f =open('file.txt').read().replace(',\n',',').split('\n')
f = filter(None, f)
for i in f:
print(i)
должно быть 10 строк, но их 11, т.е последняя пустая. Откуда она берется, как ее убрать?

Ответы>>674030>>674244>>675143

01 Мар, 23:19 #114 #672808

>>671902 (OP)
Так так так. А что не так с каррингом? Глаз зацепился просто.

01 Мар, 23:54 #115 #672891

># -- coding: UTF-8 --

Такая хрень же не нужна в третьем, да?

Ответы>>673121

02 Мар, 00:19 #116 #672918

Захотел я сделать сайт на web2py, например, не на локалхосте, а чтобы другие люди могли зайти.Я знаю только что нужен домен и хостинг, а как это всё работает? Какие шаги надо проделать, чтобы на выходе иметь настоящий домен в интернете, и на нем разрабатывать сайт. Распишите подробнее, пожалуйста. И не отправляйте в веб

Ответы>>672922

02 Мар, 00:23 #117 #672922

>>672918
Поиграй с бесплатным питонэнивер хостингом, пройди Джанго герлс туториал - базарю вопросов не останется вовсе а по времени займет ну 3 часа

Ответы>>674031

72 Кб, 1280x1024

02 Мар, 02:11 #118 #672998

Вечер в хату. Есть вопрос.
Хочу вкатиться в кодинг в Х лет, нихуя не умея (кроме английского). Как я понял, из ЯП Python - самый легкий в плане синтаксиса.
Прочитал Лутца, прошел пару онлайн-курсов по основам синтаксиса, порешал задачки. Теперь хочу перейти к прикладному применению, писать код по обработке встроенных типов данных уже не интересно.
Посмотрел материалы, много книг, туториалов на инглише, по применению python в куче разных областей. Не представляю, за что браться, с чего начинать, так как по-хорошему специализироваться придется в чем-то одном. Data analysis, system administration, networking не привлекают, питоновские GUI и mobile apps убогие (пацаны сказали), остается web-development (порог вхождения низкий, как раз для всякого днища подойдет).
Так вот, где можно посмотреть примерный перечень технологий для фулстэк веб-разработки на питоне? Насколько я понял, нужно мочь в: верстку (html, css), базы данных (sql, postgres, mongodb), специализированные питоновские библиотеки и фреймворки (flask, pyramid, django), знать теорию (компьютерные сети, алгоритмы, паттерны проектирования), опционально linux, JS плюс соответствующие библиотеки и фреймворки. Поправьте, если что-то пропустил или ошибся.
Еще все утверждают, что просто учить синтаксис не имеет смысла, надо в ходе изучения создавать некие проекты. Что это за проекты и с чем их едят? Где можно посмотреть примеры, чтобы что-то выбрать для себя?

Ответы>>673029>>673112>>673118>>673122

02 Мар, 03:12 #119 #673029

>>672998
Лучше вкатывайся в мобайл девелопмент, на питоне гораздо лучше.

02 Мар, 08:29 #120 #673112

>>672998
Учи все что попадает под руку, тебе это много времени на текущем уровне не займет, а кругозор расширит.

Ответы>>673114

02 Мар, 08:34 #121 #673114

>>673112
Ага, быстрее найдет "точку опору" и начнет ориентироваться во всех этих баззвордз.

02 Мар, 08:37 #122 #673116

Позвали в РАМАКС ДС-2 на собеседование. Может тут есть Анон который ходил туда и сможет что-нибудь рассказать ?

Ответы>>673394>>673514

02 Мар, 08:44 #123 #673118

>>672998

Синтаксис похуй тащемта.

02 Мар, 08:56 #124 #673121

>>672891
не нужна

Ответы>>673918

02 Мар, 08:59 #125 #673122

>>672998
на степик 10 марта начнется курс "прикладное программирование", может будет интересно

02 Мар, 09:31 #126 #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
И все, ничего не выводит. В чем подвох?

Ответы>>673132>>673157>>674240

02 Мар, 09:37 #127 #673132

>>673128
Книги Бизли есть в русском переводе?

Ответы>>673141

02 Мар, 09:59 #128 #673141

>>673132
Нагуглил как минимум справочник на русском

02 Мар, 10:38 #129 #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 Мар, 12:14 #130 #673212

А как проще всего питоном проверить картинки на раржпг'ность?
Через try: os.... Рар архиватор запускать консольный и если вышел с ошибкой - следующий?

Ответы>>673236

02 Мар, 12:42 #131 #673236

>>673212
Проверяешь содержимое файла на заголовки распространенных архивов.

Ответы>>673242

02 Мар, 12:49 #132 #673242

>>673236
Именно весь файл просматривать?
Страшно представить сколько времени займет проверка картиночек по 15 мб

Ответы>>673251

02 Мар, 13:02 #133 #673251

>>673242
Ну ты можешь сначала прочитать заголовок жипега (http://www.fastgraph.com/help/jpeg_header_format.html), вытянуть оттуда нужные данные, посчитать размер и пропустить нужное количество байт, а там уж видно будет, есть что-то или нет (ну или сразу сравнить с размером картинки).

02 Мар, 13:53 #134 #673277

Реквестирую годной обучалки по пихтону для неновичка в программировании.

Ответы>>673281>>673283

02 Мар, 13:57 #135 #673281

>>673277
Think Python

Ответы>>673481

02 Мар, 13:59 #136 #673283

>>673277
http://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW
вот отличный курс

Ответы>>673284>>673285

02 Мар, 13:59 #137 #673284

>>673283
http://www.youtube.com/watch?v=5V7XG1mGiHc&list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW

02 Мар, 14:00 #138 #673285

>>673283
По 1:20:00 в среднем лекции
И у кого-то же есть время этих пиздаболов столько слушать, жесть

Ответы>>673300

02 Мар, 14:17 #139 #673300

>>673285
мне очень понравился лектор, интересно слушать его. Вообще у них много годных лекций на канале

02 Мар, 16:19 #140 #673394

>>673116
Ходил устраиваться туда около полугода назад. Сначала немного общался текстом в скайпе с эйчаршей, вроде все норм. Пришел, прошел через охранника. Коридоры просторные, светлые. Вроде и аккуратно всё, но отдает какой то медицинской стерильностью. Вышла эйчарша. Симпатичная молодая девушка в джинсах и клетчатой рубашке, офисным стилем даже не пахнет. Пригласила в кабинет. Спросила за мой опыт, проекты, задала несколько несложных вопросов. Сказала что ы как профессионал её устраиваю, но хотелось бы ещё узнать личные качества. Пригласила для неформальной обстановке выйти покурить. На улице начала настойчиво ко мне приставать, обнимать, говорить что ей нужно узнать меня поближе. Сказала рядом живет. Ну я тогда молодой был, токсикозный. Согласился. Жила она правда рядом, буквально через дорогу. Пришли, она взасос поцеловала, начала меня раздевать. Ну я же листва, начал дрожащими руками её раздевать. Стягиваю джинсы с неё, а она без трусов и у неё нихуевый такой хуй, сантиметров 18 точно будет. Я охуел, замер, перевожу на неё взгляд, а она улыбается, меня по голове гладит и показывает на хуй, говорит - "я тебя на работу возьму без испытательного, зарплату сделаю выше на половину". Ну я подумал - а что терять? Она ничего не докажет, а работа не помешает. Ну я и сделал ей минет. Она как кончила сразу чего то занервначала, стала одеваться. Мне мою одежду дала и вытолкнула за дверь, сказала завтра сообщит по телефону во сколько приходить на работу. Этим же вечером пришла смска, что я им не подхожу. Я перезванивал - телефон не доступен. Обратно в офис ходил - охранник отказывается пускать. Квартира та как оказалась была съемная. Плохая компания, не рекомендую.

Ответы>>673406>>673512>>673514

02 Мар, 16:33 #141 #673406

>>673394
Всегда читаю как в первый раз. Вот такой вот я романтик.

Ответы>>673431

02 Мар, 16:54 #142 #673431

>>673406
мечтаешь так же?

Ответы>>673434

02 Мар, 17:01 #143 #673434

>>673431
А потом взять эйчаршу замуж

Ответы>>673541

02 Мар, 17:10 #144 #673437

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

Ответы>>673439>>673440>>673483>>673892

02 Мар, 17:11 #145 #673439

>>673437
>комментариев

02 Мар, 17:12 #146 #673440

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

Ответы>>673451>>673861

02 Мар, 17:20 #147 #673451

>>673440
нафига?

виджет подключается с помощью определенного жс скрипта вроде как, парсишь на страницах урл с этим жсником, все

Ответы>>673461

02 Мар, 17:28 #148 #673461

>>673451
тебе комменты ж собирать из виджета?

Ответы>>673483

02 Мар, 17:36 #149 #673476

Поясните с какой книги начинать Питон (имею опыт на PHP и Symfony, читал SICP и вообще молодец), чтобы не 100 страниц про переменные, а полная и непротиворечивая информация по языку, его фичам и прочему.

Пока смотрю на Dive into.

Ответы>>673479>>673481>>673482>>673486

02 Мар, 17:38 #150 #673479

>>673476
ну или справочник Бизли

02 Мар, 17:38 #151 #673481

>>673476
>>673281

02 Мар, 17:40 #152 #673482

>>673476
https://www.youtube.com/watch?v=N4mEzFDjqtA

02 Мар, 17:41 #153 #673483

>>673461
я не >>673437
ему для спама я так понимаю нужно базу сайтов собрать, потом он уже будет специальным софтом спамить

02 Мар, 17:42 #154 #673486

>>673476
Я уже 2 книги добавил где описывается все без воды.
https://github.com/TheKnightsWhoSayNi/info/wiki/Books#Лёгкие-книги

Ответы>>673496

02 Мар, 17:53 #155 #673496

>>673486
fluent python читали?

Ответы>>673505

02 Мар, 17:58 #156 #673505

>>673496
>fluent python
Да дахуя этих книг, но те 2 - это топ.

02 Мар, 18:03 #157 #673512

>>673394
лолд

02 Мар, 18:05 #158 #673514

>>673394
отлично, мне подходит

но я все равно бампану >>673116

02 Мар, 18:36 #159 #673541

>>673434
Это она тебя возьмет.

Ответы>>673543

02 Мар, 18:37 #160 #673543

>>673541
да похуй, если выглядит как тян, то мечта просто

Ответы>>673545

02 Мар, 18:38 #161 #673545

>>673543
Двачую, трап > тян.

02 Мар, 18:40 #162 #673547

А потом кодить на питоне. То она на твоем, то ты на ее.

02 Мар, 18:42 #163 #673550

А потом разблокируешь ей GIL и итерируешь генератор.

Ответы>>673592

02 Мар, 19:11 #164 #673592

>>673550
У меня один знакомый не успел переназначить бранч и закоммитил в мастер тян. В итоге релизнулся проект, а ему пришлось стать контрибьютором. Не забывай про безопасность.

Ответы>>673593

02 Мар, 19:12 #165 #673593

>>673592
не в ту ветку пушишь, тут трапы и их преимущества

02 Мар, 23:19 #166 #673861

>>673440
То есть, сперва спарсить все сайты из выдачи?

02 Мар, 23:21 #167 #673864

И да, мне для спама, дальше 10-й страницы парсить нет смысла, ибо трафика там нет уже.

02 Мар, 23:38 #168 #673892

>>673437
если просто найти, то хоть юрлгетом. Смотришь как у гугла/яндекса url формируется для запросов, потом берешь какую-нибудь либу для работы с DOMом, там BeautifulSoap или Grab, ну или что ты там нагуглишь. Потом ходишь ею по ссылкам с выдачи, скачиваешь исходник сайта, можешь той же либой, но urllib должно хватить. Ну и ищешь в исходниках код, который вставляют для того что бы добавить этот блок комментариев.

02 Мар, 23:56 #169 #673918

>>673121
Спасибо.

03 Мар, 06:12 #170 #674030

>>672716
>f =open('file.txt').read().replace(',\n',',').split('\n')
>f = filter(None, f)
>for i in f:
>print(i)
Покажи свой файл

03 Мар, 06:17 #171 #674031

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

Ответы>>674174

03 Мар, 07:14 #172 #674046

Всем привет , есть ли какая годная инфа по pykinter или pygame?

Ответы>>674140

03 Мар, 11:11 #173 #674140

>>674046
> pykinter
Чё эт?

68 Кб, 604x415

03 Мар, 12:23 #174 #674174

>>674031
Человек о хостинге и жеплое питон-приложений на этот хостинг спрашивал.
Спрашивал о веб2пу а не Джанго
А туториал от Джанго герлс я ему почитать рекомендовал ибо там тема использования питонэнивер раскрыта так что даже бабы врубаются.

Ответы>>674903

03 Мар, 14:37 #175 #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 Мар, 14:38 #176 #674244

>>672716
Ну у тебя в конце файла есть перевод строки. Стрипни текст и все.

Ответы>>674247>>674900>>675143

03 Мар, 14:40 #177 #674247

>>674244
> f = filter(None, f)
Должно убрать пустые строки. Видимо там не просто пустая строка а пробел.

Ответы>>675143

03 Мар, 16:36 #178 #674362

>>672010
Два чая этому господину. Некоторые пункты на OP пике вообще высосаны из пальца. Зачем питону компилятор, если он изначально разрабатывался без расчёта на компиляцию в машинный код. А так то, компиляция в байт-код есть, ибо .pyc файлы никто не отменял. Приватные методы - _,methodname или __methodname. КАРОЧИ ТОЛСТА.

Ответы>>674375

03 Мар, 16:46 #179 #674375

>>674362
Канпелятор есть - jit и pypy, есть nuitka, есть cython.
Проверка типов тоже есть - mypy и в pycharm.
Под "хвостовая рекурсия" афтар видимо имел ввиду tail call optimization и это фишка функциональных языков где нет циклов. Зачем оно в питоне непонятно, но всё равно можно запилить через хаки.
Карринг тоже есть - тот же functools.partial или самому запилить можно т.к. функции первого порядка
Ленивость тоже.

03 Мар, 19:04 #180 #674601

Написал небольшой скрипт на питоне для скачки всех файлов с треда. Полезно на всяких png-тредах или подобном
https://github.com/OlegWock/2ch-files-downloader

Подписывайтесь, ставьте лайки

03 Мар, 19:29 #181 #674621

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

Ответы>>674689

03 Мар, 20:33 #182 #674689

>>674621
Все разобрался.

Ответы>>674696

03 Мар, 20:36 #183 #674696

>>674689
kak?

03 Мар, 21:36 #184 #674798

Объясните, как на пистоне строить графики функций.

matplotlib - тормознутое говно
vispy - не работающее аппаратно-ускоренное говно, кидающееся NotImplementedException на попытку его использования для построения графиков
всё остальное - низкоуровневое говно для рендеринга полигональных моделек

Ответы>>674802>>674817

03 Мар, 21:38 #185 #674802

>>674798
Честно - ни разу не слышал что бы матплот обвиняли именно в тормознутости
В других грехах - да, но в тормознутости от тебя первого слышу. Может ты что-то делаешь не так?

Ответы>>674934

03 Мар, 21:47 #186 #674817

>>674798
Сотни их. plotly и pygal сам юзал, заебись.

Ответы>>674934

03 Мар, 22:15 #187 #674869

Хелп ми плиаз. Прошел начальный курс по питону от MIT хз что теперь дальше изучать (сижу на код академи от этого профит есть?). Вот нашел сборник книг, курсов но какой выбрать? http://tproger.ru/articles/free-programming-books/#python

Ответы>>674876>>674958

03 Мар, 22:20 #188 #674876

>>674869
Изучай популярные фреймворки и скорее вкатывайся в работку.

Ответы>>674889>>674893

03 Мар, 22:23 #189 #674884

Посоветуйте самый годный учебник по сабжу, или онлайн-курс. Можно на английском.

Ответы>>674958

03 Мар, 22:27 #190 #674889

>>674876
>пистон
>работку
ПХАХАХАХХ

03 Мар, 22:31 #191 #674893

>>674876
Можете сказать какие, а то я в этом деле валенок.

03 Мар, 22:32 #192 #674895

а вы знали что есть подскасты по петону?
Вчера слушал "Talk Python to me" не совсем понял зачем он, какоето бесконечное обмазывание петоном в прямом эфире.

Ответы>>674955

03 Мар, 22:36 #193 #674900

>>674244
>Ну у тебя в конце файла есть перевод строки. Стрипни текст и все.
нет, пустые строки от перевода(любого количества) срок не появились бы

03 Мар, 22:37 #194 #674903

>>674174
да? ну тогда ладно.

03 Мар, 22:53 #195 #674934

>>674817
plotly - рендерит в браузере, и по-видимому юзает веб-сервис. Ты мне ещё предложи jupyter заюзать (не идёт потому, что разрабы pyzmq послали xp на хуй, увидев, что одной из импортируемых ими функций в xp нет, а разрабы jupyterа по видимому завязали jupyter на всяякое не нужное дерьмо (нахуя локалному нехайлоад экземпляру сервер очередей?)).
pygal - 2д диаграммы

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

>но в тормознутости от тебя первого слышу.
1 на стековерфлоу есть об этом тред
2 в доках об этом написано и сказано юзать vispy

Ответы>>675147>>675152>>675153>>675394

03 Мар, 23:04 #196 #674955

>>674895
Есть еще подкаст.инит и питон тест подкаст
По мне так до жопы все это, я тупо разговорные слушаю что бы не так быстро речь иноземную забывать а пионерские термины - их и так хуй забудешь за отсутствием русских.

Ответы>>674993

03 Мар, 23:05 #197 #674958

>>674869
>>674884
Все в оп посте. Или нахуя нам шапка по-вашему?

03 Мар, 23:31 #198 #674993

>>674955
а что такое пионерские термины?

Ответы>>674995

03 Мар, 23:32 #199 #674995

>>674993
Исправление ебучим гуглсвайпом слова "программерские"

Ответы>>675035

03 Мар, 23:50 #200 #675035

>>674995
в том эпизоде что я слушай, кстати, поясняли что без петона в cgi и кинематограф вообще не ходи.

04 Мар, 00:29 #201 #675103

Посоны, а как вообще интерфейсы делают? Ведь экраны мало того разные по разрешению - у них еще и разный dpi. Как же сделать так, чтобы на разных мониторах приложение выглядело приемлемо?

Ответы>>675208

04 Мар, 00:52 #202 #675139

Почаны про spb-tut(точка)ru что скажите? Вот не могу понять, он жесткий продаван и нагородил какой-то хуйни на джанге в виде портала УСПЕЙ КУПИТЬ ВСЕ ПО 9999999 ДО ЗАВТРА или реально годные темы задвигает? Что вообще годного можно найти по основе построения вэб-приложений/приложений, не из разряда тыкайте сюда и хуяхуяк runserver во как у вас круто вышел helloworld, а что-то ближе к реальному миру, типо пишем с нуля магазин для продажи говен лопатами на развес ИНТЕРАКТИВНЕНЬКО с AJAX НА БУТСТРАПЕ АДАПТИВНЕНЬКО. Ну или как-то так хз, только въезжать начинаю лол

Ответы>>675213

04 Мар, 00:54 #203 #675143

>>672716
Это тащемто ddl.sql, т.е. create table и т.д
>>674247
Должно, видимо сплит в последней строке убирает \n и пилит новую строку. Почему фильтр эту строку не удаляет я не знаю
>>674244
Можно пример для тупых, а то пробовал не вышло

04 Мар, 00:56 #204 #675147

>>674934
http://www.pygal.org/en/latest/documentation/types/line.html

04 Мар, 00:58 #205 #675152

>>674934
> xp
Ну, бля, ты бы ещё на отсутствие поддержки win95 жаловался. Поставь линукс.

04 Мар, 01:04 #206 #675153

>>674934
Вот ещё кстати, к ней примерялся, но тогда она qt5 не поддерживала и я её дропнул.
https://github.com/pyqtgraph/pyqtgraph

Ответы>>675211

04 Мар, 01:37 #207 #675163

Что делать если не могу обновить pip с 7 до 8?

Ответы>>675172>>675189

04 Мар, 01:41 #208 #675167

Допустим, я написал приложение, которое может быть полезно многим людям и хочу выложить его на pip. Насколько это сложно? Как отправить туда пакет для проверки? У них есть какие-нибудь обязательные требования?

Ответы>>675172>>675207

04 Мар, 01:47 #209 #675172

>>675167
Регистрируешься, логинишься, прописываешь в своем пакете всякую установочную муру, отправляешь. По сути мало чем отличается от ебилдов в генте или пкгбилдов в арче.

>>675163
sudo easy_install3 -U pip

Ответы>>675190>>675342

04 Мар, 01:56 #210 #675189

>>675163
Что значит «не могу»?

04 Мар, 01:56 #211 #675190

>>675172
sudo easy_install3 -U pip ошибку выдает

Ответы>>675191

04 Мар, 01:59 #212 #675191

>>675190
>ошибку выдает
Очень полезная диагностическая информация, оставайтесь на линии, наши экстрасенсы уже закидываются спайсом и вылетают.

04 Мар, 02:12 #213 #675207

>>675167
Никаких требований кроме регистрации. Делается через setup.py (как они там сейчас называются, setuptools или distutils). Есть ещё тестовый pypi, можешь попробовать, посмотреть, поправить.

Ответы>>675342

04 Мар, 02:15 #214 #675208

>>675103
Использовать пункты вместо пикселей, использовать вектор вместо растра.

04 Мар, 02:17 #215 #675211

>>675153
Там дадо полигоноёбствать чтобы построить в 3d

04 Мар, 02:20 #216 #675213

>>675139
>тыкайте сюда и хуяхуяк runserver
Обычно такой способ изучения фреймворков самый эффективный. Если же ты не в теме как решается некая задача, для которой предназначен именно этот фреймворк, то учись. Блог напиши, гостевуху, а то с хелловорлда решил сразу магазины идти писать.

04 Мар, 02:41 #217 #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, я то писал всё на третьем и учебник на третьем, что делать?

Ответы>>675246

04 Мар, 02:42 #218 #675239

Ну да, и команда python пишет, что там используется 2.7

Ответы>>675241

04 Мар, 02:43 #219 #675241

>>675239
Используй третий, очевидно.

Ответы>>675244

04 Мар, 02:43 #220 #675244

>>675241
И как сделать, чтобы там исопользовался третий?

Ответы>>675354

04 Мар, 02:45 #221 #675245

На стаковерфлоу предложили такую команду использовать:
mkvirtualenv --python=/usr/bin/python3.4 django18
Теперь версия 3.4

04 Мар, 02:46 #222 #675246

>>675237
Чёт у тебя какая-то плохая джанга. У меня импортируется всё.

In [1]: from django.utils import timezone
In [2]: import django
In [3]: django.__version__
Out[3]: '1.8.7'

Ответы>>675250

04 Мар, 02:47 #223 #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'

Ответы>>675251

04 Мар, 02:48 #224 #675251

>>675250
А тут джанги у тебя совсем нет.

04 Мар, 02:48 #225 #675252

На этот питонэнивер не нужно заново джангу ставить или её там нет сейчас? Похоже что нет

Ответы>>675254

04 Мар, 02:49 #226 #675254

>>675252
Приличные господа используют свои сервера.

Ответы>>675256

04 Мар, 02:49 #227 #675256

>>675254
Я пока совсем слаб во всех эти серверах, комитах и прочем, пройду этот гайд для девочек, и уже буду о своих серверах думать!

04 Мар, 02:50 #228 #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

Ответы>>675261

04 Мар, 02:53 #229 #675261

>>675257
Хех. На локалхосте у тебя видимо файл лежал прям там же, с именем django-1.9.3. Так-то pip install Django==1.9.3 (если есть такая вообще, на pypi сверься)

Ответы>>675263

04 Мар, 02:54 #230 #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

Ответы>>675268

04 Мар, 02:56 #231 #675268

>>675263
Не пиши туда "да", пиши "yes".

Ответы>>675271

04 Мар, 02:57 #232 #675271

>>675268
Чего троллишь то, конечно yes писал

04 Мар, 02:58 #233 #675272

Попробовал еще раз, заработало, какая-то хуета

Ответы>>675275

04 Мар, 03:01 #234 #675275

>>675272
Чёт ты туда ввёл не то. Наверное под КОИ-8 сидишь прямо из восьмидесятых, что даже юникодный строкожуй подавился. Да, в utf-8 таки есть невалидные байты.

Ответы>>675278

04 Мар, 03:02 #235 #675278

>>675275
Ты о чем вообще, я сижу в консоли pythonanywhere

Ответы>>675289

04 Мар, 03:07 #236 #675287

Теперь настраиваю wsgi, и опять ошибка, как я понял он не может найти whitenoise, но я же устанавливал его только что, что за бред

04 Мар, 03:08 #237 #675289

>>675278
Мне это ни о чём не говорит. Что за пайтонэнивеа. Для нюфагов наверное, очередное всё-в-одном. Ток чёт глядя на твои стектрейсы мне кажется оно не справилось с тем для чего предназначалось.

Ответы>>675291

04 Мар, 03:10 #238 #675291

>>675289
я как понял это хостинг бесплатный, я туда отправил свой репозиторий с проектом, установил джангу, установил whitenoise, теперь пытаюсь настроить файл wsgi, и вот на этом моменте опять ошибка, он не видит whitenoise почему-то, хотя только что установил

Ответы>>675299

23 Кб, 419x771

04 Мар, 03:17 #239 #675297

Не понимаю почему он не видит staticlocal, в дереве файлов же появилась папка static и всё остальное

Ответы>>675321

04 Мар, 03:18 #240 #675299

>>675291
Вангую что venv на стороне сервера не подключён.

Ответы>>675301

04 Мар, 03:19 #241 #675301

>>675299
я когда на локалхосте ставил джангу, не стал ставить венв, так как не понял зачем он нужен, а на сервере пришлось поставить, т.к иначе использовался питон 2.7

Ответы>>675313

04 Мар, 03:27 #242 #675313

>>675301
Не, тут речь о программе-сервере. Сам venv может быть в порядке. Например так:

uwsgi:
plugins: python34
env: SETTINGS_MODULE=settings
module: wsgi:app
venv: /ряяяяя/.venv/
master: true
processes: 1

Ответы>>675318

04 Мар, 03:33 #243 #675318

>>675313
Я в этот файл записал то что в гайде написано, только ник поменял на свой
http://tutorial.djangogirls.org/ru/deploy/index.html

Ответы>>675332

04 Мар, 03:35 #244 #675321

>>675297
>эти шрифты
>эта радуга

04 Мар, 03:47 #245 #675328

В каждом втором посте каждый тролль потешает своё чсв, а по делу сказать то?

Ответы>>675336

04 Мар, 03:55 #246 #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/

На тот который надо указывает?

Ответы>>675334>>675337

04 Мар, 03:59 #247 #675334

>>675332
В консоли импорт вайтнойс работает, а под запущенным венв это как?

Ответы>>675336

04 Мар, 04:01 #248 #675336

>>675328
Lucida console хороший шрифт, я сам даже как-то сидел. А с cleartype всё ок, кроме того что делать с ним скриншоты дело богопротивное.

>>675334
Ну или так

source myvenv/bin/activate
python

или

myvenv/bin/python

04 Мар, 04:01 #249 #675337

>>675332
Пишет что не найдео венв по этому пути

Ответы>>675341

04 Мар, 04:10 #250 #675341

>>675337
Читать секции "как создать" и "как использовать".
https://habrahabr.ru/post/157287/

Учитывай что симлинк ipython не создаётся, только python.

04 Мар, 04:16 #251 #675342

>>675207
>>675172
Спасибо! А пакеты проверяются вручную или загружаются в автоматическом режиме?

Ответы>>675343

04 Мар, 04:19 #252 #675343

>>675342
Их никто не проверяет. Туда просто пакадж вливается файлом и сразу же появляется для скачивания.

04 Мар, 04:28 #253 #675349

Теперь версия питона опять стала 2.7, как это работает не понимаю

Ответы>>675358

04 Мар, 04:32 #254 #675354

>>675244
Никто не использует третий кроме школьников это не интерпрайз.

04 Мар, 04:39 #255 #675357

Всё переделал заново, с самого начала поставил венв, потом поставил джангу и вайтнойс, настроил висг, и всё равно ошибка:
ImportError: No module named 'whitenoise'

Ответы>>675360

04 Мар, 04:39 #256 #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 просто затирает переменные окружения в текущем баш-интерпретаторе и у тебя снова дефолтный системный питон.

Ответы>>675360>>675362>>675391>>675392

04 Мар, 04:40 #257 #675360

>>675358
Я сейчас все заново переделал, посмотри вот этот пост
>>675357

Ответы>>675365

04 Мар, 04:43 #258 #675362

>>675358
Мне кажется что проблема не в венв?

04 Мар, 04:50 #259 #675365

>>675360
Ну и чо. Не нашёл снова он у тебя модуль. Питон ищет модули по переменной окружения PYTHON_PATH + несколько каталогов по умолчанию (их можно изменить при сборке самого питона из исходников, чем пользуются дистростроители чтобы соблюсти свой дзен расположения файлов). Можешь прямо в шелле echo $PYTHON_PATH сделать (если выведет пустоту, это ок, значит используются только пути по умолчанию). venv в частности подменяет этот самый PYTHON_PATH. И если ты создал venv, сделал activate, установил в него пакет, а потом он у тебя не находится и не импортируется, значит где-то ты сделал хуйню, не знаю, может через sudo поставил системно или ещё что. Гугли @ читай короче, руки выпрямить по телефону я не могу.

Ответы>>675366>>675368

04 Мар, 04:51 #260 #675366

>>675365
Сделаю сейчас заново как ты писал про венв, если я файл висг оставляю пустым то всё работает, нахуй вообще эти висг нужен

Ответы>>675371

04 Мар, 04:52 #261 #675368

>>675365
>echo $PYTHON_PATH
Ничего не выводит

04 Мар, 04:55 #262 #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.

Ответы>>675372>>675373

04 Мар, 04:57 #263 #675371

>>675366
Это точка подключения твоей джанги к вебсерверу. Грубо говоря оно запускает питон и импортирует wsgi.py, затем импортированные объекты могут многократно срать ответами на запросы. Запускать на каждый запрос manage.py это пизда производительности и практика уровня начала 90х, когда сайты на башскриптах писали.

Твоя задача по сути сделать так, чтобы вебсервер запустил правильный питон, подключил правильный venv c библиотеками (если конечно ты используешь venv) и стартанул твою приложуху через wsgi.py.

Ответы>>675373>>675375

04 Мар, 04:58 #264 #675372

>>675370
Нахуй нужен venv. Чем он лучше virtualenv?

Ответы>>675374>>675376

04 Мар, 04:58 #265 #675373

>>675371
Спасибо.
Я сейчас начал заного делать, и теперь венв не создается, делаю так же как в тот раз
virtualenv --python=python3.4 myvenv
а так как ты писал вылетает ошибка >>675370
Старый венв как то надо удалить? И как это сделать?

Ответы>>675377>>675380

04 Мар, 04:59 #266 #675374

>>675372
Я не знаю блеать, я по гайду делаю, еще толком не вник во всё это

04 Мар, 04:59 #267 #675375

>>675371
> сайты на башскриптах писали.
Нихуя мы их на сишечке писали или на крайняк на perl

04 Мар, 04:59 #268 #675376

>>675372
Тем что он вшит в сам питон. Но под двойкой только старый virtualenv.

12 Кб, 401x150

04 Мар, 05:00 #269 #675377

>>675373
Надо

Ответы>>675378

04 Мар, 05:02 #270 #675378

>>675377
В гугле пишут, что удалить нельзя, можно только отключить

Ответы>>675379

04 Мар, 05:05 #271 #675379

>>675378
Похоже деактивате это не та команда, активировал обратно на всякий

04 Мар, 05:07 #272 #675380

>>675373
То куда насрал venv, вот этот твой каталог myvenv, ты его можешь взять и удалить как обычный каталог. В нём нет ничего особенного. Главное не пилить ветку на которой сидишь отключить его через deactivate если он у тебя сейчас подключен (source myvenv/bin/activate который).

Ответы>>675382

04 Мар, 05:08 #273 #675381

надо удалить каталог myvenv?
http://puu.sh/nu05C/afd63608b7.png

Ответы>>675382

04 Мар, 05:09 #274 #675382

>>675381
->
>>675380

04 Мар, 05:12 #275 #675384

В самом начале (myenv) значит что я под венв сейчас сижу?

Ответы>>675385>>675387

04 Мар, 05:12 #276 #675385

>>675384
http://puu.sh/nu0gT/da579d32b4.png

04 Мар, 05:19 #277 #675387

>>675384
Да, дебил.

04 Мар, 05:26 #278 #675391

>>675358
Чтобы в текущей папке сделать венв что надо писать вместо venv_dir? Пишет что обязательно путь писать

Ответы>>675392

04 Мар, 05:28 #279 #675392

>>675358
>>675391
Я как понял на этом серве не получится установить венв как ты пишешь, требует рут права и утстановку пакета python3-venv, а этих прав у меня конечно нет

Ответы>>675395

04 Мар, 05:30 #280 #675394

>>674934
matplotlib стартует интерактивный просмотрщик, хуле ты хотел, там аки в гуглокартах приближать-отдалять можно. Запекай итоговую картинку сразу, будет быстро. По крайней мере я сомневаюсь что где-то будет быстрее. Тем более если ещё учесть время на написания кода.

Ответы>>675522

04 Мар, 05:42 #281 #675395

>>675392
Хз. Я тебе написал как оно делается стандартно. У тебя там какое-то чудо mkvirtualenv, которое уже установлено и настроено, юзай его, по аналогии, mkvirtualenv --help читни.

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

>Пишет что обязательно путь писать
Ну наверное надо создать каталог сначала через mkdir.

04 Мар, 06:34 #282 #675405

на всякий случай сообщу что
aws.amazon.com на год бесплатно дает невероятные количества хуерги.
Можно в один клик накатить сервер с уставновленной джангой и всем что ей по вкусу.
Туториалов применительно к aws - мильярд. Да и почетно пиздеть что имеешь с авс опыт же, лол.

Ответы>>675407>>675424>>675752

04 Мар, 06:36 #283 #675407

>>675405
это я к тому что там можно не ебстись с венв, если что поломал - накатываешь свежий сервер ровно за минуту
с:499999

Ответы>>675411

04 Мар, 06:54 #284 #675411

>>675407
Да это хорошо, но разобраться то надо

Ответы>>675437

04 Мар, 07:52 #285 #675424

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

Ответы>>675436

04 Мар, 08:17 #286 #675429

Хочу на винду поставить numpy. Через пип фейлится, потому что:
> error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)
Вижуал студия 2015 стоит. Windows 7 64bit, готовые бинарники только на 32 есть, вроде.

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

И чего делать, виндоёбы? Ставить всякие анаконды не хочу, ведь мне просто для проверки кроссплатформенности проги нужно, а не работы. Ну и виртуалки/линукс не предлагать, я макоёб и там всё прекрасно, цель сейчас именно на винде сделать.

Ответы>>675529>>675530>>675539>>675628

04 Мар, 08:54 #287 #675436

>>675424
купи себе календарь блять.

04 Мар, 08:55 #288 #675437

>>675411
да там ты быстрее разберешься.
Или может не быстрее, но зато будет реально полезный опыт на который можно ссылаться.

04 Мар, 09:36 #289 #675460

если есть лист А
то для чего используется выражение А[:] ?

Ответы>>675485>>675489

04 Мар, 10:05 #290 #675485

>>675460
для выборки

Ответы>>676206

04 Мар, 10:09 #291 #675489

>>675460
>если есть лист А
А что? А4?

A[:] слайсит список и возвращает копию (просто слайсит от начала до конца, поэтому получается полная копия), поэтому ты можешь без проблем сделать так:
for e in A[:]: A.pop(0)
Попробуй и посмотри что будет, если убрать индексацию.

Ответы>>676206

04 Мар, 11:03 #292 #675522

>>675394
В математике всё быстро.
В octave всё быстро.
Вот только математика платная, а octave вылетает.

Ответы>>675634

04 Мар, 11:09 #293 #675529

>>675429
ну можешь поставить winpython, он портативный, но всё равно желательно в песочницу.

04 Мар, 11:11 #294 #675530

>>675429
>И вообще, я нихуя не понимаю, хули требуется visual c++, если большинство пакетов используют поставляемый вместе с питоном gcc (а могли бы и clang)

04 Мар, 11:20 #295 #675534

Как делают счетчики в кружках? Например, число писем, отобразить на кнопке в красном кружке. Какие-то игрища с CSS и background текста?

Ответы>>675600>>675634

04 Мар, 11:26 #296 #675539

>>675429
Разрядность установленного питона тоже должна быть 32.
Я так постоянно подрывался, пока у меня стоял х64 и х32.
Если х32, то ты не такие же Microsoft Visual C++ 10.0 поставил.

Ответы>>675548>>675604

04 Мар, 11:36 #297 #675548

>>675539
у него 2015, а требует 2010

04 Мар, 13:00 #298 #675600

>>675534
Лооол, естественно это игрища html+css.

04 Мар, 13:12 #299 #675604

>>675539
>Разрядность установленного питона тоже должна быть 32.
В смысле тоже? Питон у меня 32, а винда 64. Винду переставить я, очевидно, не могу.
>ты не такие же Microsoft Visual C++ 10.0 поставил.
Как уже сказали, стоит у меня 2015-ая и не для питона, собственно, ставилась.

В общем, проблема решилась: шла б эта винда нахуй. Всем спасибо.

04 Мар, 13:59 #300 #675628

>>675429
>Хочу на винду поставить numpy.
Троллейбус из буханки.жпг
Поставь уже себе какую-нибудь бубнту в виртуалку и кодь как человек.

Ответы>>675636>>675684>>675899

04 Мар, 14:06 #301 #675634

>>675522
Тогда покупай математику или сиди дебагай октав, очевидно же.
>>675534
Большой border-radius. Сам бы уже инспектором глянул.

04 Мар, 14:07 #302 #675636

>>675628
Чому бы под мингв не поставить всё? Тот же посикс, но под виндой. Зачем советуют сразу виртуалки, они ж тормозят.

273 Кб, 1370x774

04 Мар, 14:14 #303 #675645

Антуаны не могу обновить pip как пофиксить?

Ответы>>675663>>675671>>675675>>675681>>675807>>675899

04 Мар, 14:22 #304 #675663

>>675645
>\Даня
Вот это вот пиздец. Меняй имя учетки на латиницу, или готовься разрабатывать очко еблей с bytes/unicode, и прочими косяками из-за ебучей кириллицы.

Ответы>>675667

04 Мар, 14:27 #305 #675667

>>675663
Особенно понравится переименовывать, если учетка - встроенная admin'нская.

04 Мар, 14:28 #306 #675671

>>675645
Кстати, это как раз тот самый случай, походу. Другие модули ставятся через pip? Вангую, что нет.

04 Мар, 14:31 #307 #675675

>>675645
Надо как-то питону прописать твою системную кодировку. Вместо утф8 вин1251.

Ответы>>675679

04 Мар, 14:34 #308 #675679

>>675675
Зачем привыкать к этой хуйне, когда есть человеческая utf-8?

Ответы>>675687

04 Мар, 14:36 #309 #675681

>>675645
Эти превозмогания. Ставь виртуалбокс с убунтой.

Ответы>>675683

04 Мар, 14:37 #310 #675683

>>675681
Отсутствия кириллицы в названии рабочих папок хватит.

04 Мар, 14:37 #311 #675684

>>675628
Ну ты б хоть спойлер прочёл, что ли.

04 Мар, 14:42 #312 #675687

>>675679
Не понимаю откуда у core пакаджей вообще проблемы с кодировками. Они же кроссплатформенные. Переименовывания это полумера, питон должен уметь работать под любым окружением.

Ответы>>675692

04 Мар, 14:48 #313 #675692

>>675687
Ну так он пытается декодировать Даню с использованием utf-8, а кодировка Дани - вин1251. Даня не попадает в диапазон ASCII, который общий у всего юникода.

Ответы>>675705>>675757

04 Мар, 14:57 #314 #675705

>>675692
pip вообще никак локаль не задействует, видимо. Жестко заданный utf-8. Но такое не только у него всплывает, и не только у core пакаджей. Так что никакой кириллицы - самая годная мера.

04 Мар, 15:08 #315 #675718

а нельзя ли просто сменить локаль консоли на utf8 с помощью chcp

Ответы>>675726

04 Мар, 15:13 #316 #675726

>>675718
А проблема разве в консоли? Там именно внутри кода не может декодировать Даню нормально, а не при выводе в консоль.

Ответы>>675753>>675757>>675763

04 Мар, 15:27 #317 #675752

>>675405
А что у них с ценами? Во сколько примерно обходится месяц слабого сервера, который на DO дают за пять баксов?

04 Мар, 15:27 #318 #675753

>>675726
винда хранит имена файлов в юникоде

04 Мар, 15:29 #319 #675757

>>675726
Ну вот как бы я к тому же. Почему системные вызовы в кроссплатформенном Питоне падают?
>>675692
А собственно почему он пытается найти там утф8? Внутренне у питона юникод, значит он может прочесть строку из любой кодировки. По идее он должен сдетектировать вин1251 и системные вызовы выполнять в ней.

Ответы>>675765>>675773

04 Мар, 15:34 #320 #675763

>>675726
если не в консоли, тогда в конфиге. Может он в семибайтовой кодировке, тогда его надо сконвертить в utf8

Ответы>>675767

04 Мар, 15:35 #321 #675765

>>675757
Ну так ASCII (латиницу) он и прочтет из любой кодировки. Потому что 128 символов совпадают почти везде. В том числе в вин1251.
Юникод это не волшебная НЕХ, которая любые кодировки распознает.
UTF-8 - это и есть кодировки юникодная.

Ответы>>675778

04 Мар, 15:38 #322 #675767

>>675763
*семибитной

04 Мар, 15:46 #323 #675773

>>675757
https://habrahabr.ru/post/135913/

Ответы>>675778

04 Мар, 15:49 #324 #675778

>>675765
>Юникод это не волшебная НЕХ, которая любые кодировки распознает.
>UTF-8 - это и есть кодировки юникодная.
Ок, не распознаёт, но может хранить любой символ. Обычно другие кодировки это подмножество юникода. Внутри питона кстати не используется UTF-8, и даже не UCS, они там своё кастомное хранилище намутили, оно оче место экономит. Но это опять же не отменяет тот факт, что питон внутри себя может использовать любой символ юникода, а значит и прочитать практически любую кодировку используя codecs.

>>675773
>Юникод для чайников
Не тралируй, плис((

Ответы>>675789

04 Мар, 15:52 #325 #675781

print len(var)
print var.lower()

Анон, я не могу понять, нахуй у этих методов разный синтаксис?

Ответы>>675783>>675795>>675810

04 Мар, 15:54 #326 #675783

>>675781
len([1,2,3])
len('lol')
len({'a', 8, None})
len({4: 'x', 5: 'b'})

'lol'.lower()

len это не метод, это встроенная функция питона. lower - это уже метод, но только у строк.

Ответы>>675791

04 Мар, 15:55 #327 #675787

Знатоки кодировок itt.

04 Мар, 15:57 #328 #675789

>>675778
Ну да, могло бы хотя бы вывести кракозябры. Но там, может, после 0xc4 даже кракозябр не нашлось на последовательность.

Ответы>>675807

04 Мар, 15:58 #329 #675791

>>675783
Спасибо.

04 Мар, 15:59 #330 #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.

Ответы>>675803>>675807>>675814

04 Мар, 16:04 #331 #675803

>>675795
> Если хочешь язык с нормальным ооп и последовательный
Проиграл с формулировки.

Ответы>>675808

04 Мар, 16:07 #332 #675807

>>675645
Короче вот:

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

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

>>675795
Это какое-то мнение недалёкого человека. В питоне с помощью магических методов ты можешь сделать len для чего угодно, в том числе и для сишных объектов. И оно будет везде len(..) и значить будет одно и то же. Так-то никто не мешает расширить класс str и добавить туда свойство length аки в жабаскрипте.

Ответы>>675818

04 Мар, 16:07 #333 #675808

>>675803
Я имею ввиду что в раби всё это метод всегда. В питоне же иногда метод, иногда встроенная функция потому что так сложилось ещё до того как туда ооп завезли)

Ответы>>675812

04 Мар, 16:08 #334 #675810

>>675781
Но ведь len можно передать не только строки.

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

Динамическая типизация, тип.

Ответы>>675815

16 Кб, 220x220

04 Мар, 16:09 #335 #675812

>>675808
РАБИ

04 Мар, 16:10 #336 #675814

>>675795
> 2016
> ооп

04 Мар, 16:11 #337 #675815

>>675810
Что мешало сделать метод len() у строк и у списков и везде где он возможен?
> Нельзя сделать ['a', 'B'].lower
В нормальном языке можно было бы
array = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
array.map(&:upcase)
или array.map!(&:upcase) чтобы изменить их in-place

Ответы>>675824>>675826>>675829>>675832>>675843

04 Мар, 16:12 #338 #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 самого питона.

Ответы>>675833

04 Мар, 16:14 #339 #675824

>>675815
>array.map(&:upcase)
В чем разница? Ты ту же самую итерацию сделал. Тут тоже так можно кучей способов.

04 Мар, 16:15 #340 #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 Мар, 16:16 #341 #675829

>>675815
Именно сам тип list не может быть .lower() же, должны быть предметы в нем. Что и делает map.
Считай, аналог всяких
for x in list:
....x.lower()

04 Мар, 16:19 #342 #675832

>>675815
А если в списке будут цифры? Как уменьшить регистр 2, например?

Ответы>>675835>>675836

04 Мар, 16:19 #343 #675833

>>675818
Ну дык это питон такой хитрый, всё в ascii перегоняет при repr(). Считается что ascii работает везде. Так-то если ты сохранишь эти байты в файл и откроешь блокнотом/браузером/cat, кракозябры таки будут.

Ответы>>675844

04 Мар, 16:20 #344 #675835

>>675832
Или у если у меня в списке вообще неведомая ебаная хуйня типа экземпляров классов?

Ответы>>675836

04 Мар, 16:21 #345 #675836

>>675832
>>675835
Тогда и питон, и руби посоветуют тебе сделать бочку.

04 Мар, 16:33 #346 #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__]

Ящетаю разница налицо. В питоне у нас необходимый минимум, в руби в обычный список вмешано половина стандартной библиотеки.

Ответы>>675845>>675854

04 Мар, 16:36 #347 #675844

>>675833
Там замена фейлового декодирования спецсимволами, поди.

04 Мар, 16:36 #348 #675845

>>675843
Это называется ООП. Эти методы получены путем наследования и миксинов.
Пользователь сам может переопределять или дополнять класс Array если хочет.

Ответы>>675853>>675860

04 Мар, 16:43 #349 #675853

>>675845
У питона столько же методов можно отрыть, они такого плана __x__.

04 Мар, 16:46 #350 #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__

Ответы>>675860

04 Мар, 16:50 #351 #675859

Есть какой-то краткая книга по пистону? Если уже знаешь плюсы, жабку. Но не урезанная, чтобы все аспекты языка освещались.
Начинал читать Лутца когда-то, но терпения не хватило, какие-то дела появились и забил.

Ответы>>675869

04 Мар, 16:50 #352 #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 Мар, 17:03 #353 #675869

>>675859
cheatsheet какой-нибудь найди и тутор пройди, дальше по мере возникновения проблем. Считай что ты всё пишешь на stl (list, dict, set, str), а тип элемента для контейнеров variant.

04 Мар, 17:45 #354 #675899

>>675645
>>675628

04 Мар, 19:43 #355 #676196

Выручай нубаса, бро
Прохожу курсы на курсере и значит вот,

Нужно спарсить из файла эмайл адреса и посчитать самого активного.
Проблема у меня встала в следующем.
Разбиваю файл на слова ['From', [email-masked]', '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]

Ответы>>676207>>676212

04 Мар, 19:48 #356 #676206

>>675485
>>675489
да, заебись фича. Странно даже что про нее не вопят на каждом углу в туториалах

Ответы>>676209>>676217

27 Кб, 418x285

04 Мар, 19:49 #357 #676207

>>676196
for w1, w2 in zip(lst, lst[1:]): if w1 == 'From': print(w2)
Но вообще ты как-то через жопу это делаешь.

04 Мар, 19:49 #358 #676209

>>676206
Имхо list(orig_list) как-то более очевидно чем orig_list[:]

04 Мар, 19:50 #359 #676212

>>676196
Т.е. было бы логичнее разбивать файл на строки и искать строки, начинающиеся с From

Ответы>>676225

04 Мар, 19:54 #360 #676217

>>676206
Это антипаттерн.
for e in A.copy(): лучше делать.
Слайсинг имеет несколько иную природу и совсем не обязательно копирует объект.

04 Мар, 19:54 #361 #676219

Лазил, натолкнулся на ебанутую задачку, можно умничать.

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

что произойдет если эту хуйню выполнить?

Ответы>>676234>>676503

04 Мар, 20:00 #362 #676225

>>676212
Да точно, я просто походу не так условие на англ понял, спасибо, бро.

04 Мар, 20:02 #363 #676234

>>676219
Ошибка. А вот a[2].append('a') сработает.

Ответы>>676238

04 Мар, 20:06 #364 #676238

>>676234
ты знал или експеримент провел?

Ответы>>676242>>676248

04 Мар, 20:07 #365 #676242

>>676238
Я наталкивался уже на эту фигню в каком-то quiz`е по питоне или какой-то статье типа python wat`с.
Вот здесь наверное https://github.com/cosmologicon/pywat

04 Мар, 20:10 #366 #676248

>>676238
Вообще понятно почему так. Интерпретатор не знает mutable там объект или immutable и как у него iadd устроен.

Ответы>>676272

04 Мар, 20:29 #367 #676272

>>676248
По мне так не совсем логично, ведь чтобы быть имутабле туплу нужно в себе держать не ссылку на объект а его реальную копию.
Что он соственно и делет в случае
b=[2]
a=[1,b,3]
b=[100]

Ответы>>676273>>676284

04 Мар, 20:30 #368 #676273

>>676272
a=(1,b,3)

04 Мар, 20:34 #369 #676281

хотя если делать extend и append на лист внутре тупла, то оно даже ошибки не выдает и лист изменяется.

04 Мар, 20:34 #370 #676284

>>676272
Имутабле сам тупл, но объекты в нем не обязательно.

Ответы>>676294

04 Мар, 20:39 #371 #676294

>>676284
Я вижу что на деле им не запрещено быть мутабле, но тогда сам тупл нихуя не иммутабл(на деле опять же).
Как они собираются чтото там хешировать если тупл фактически изменяется со временем причем хуй это отконтролируешь?

Ответы>>676302

10 Кб, 328x151

04 Мар, 20:47 #372 #676302

>>676294
Никак

Ответы>>676459

04 Мар, 21:50 #373 #676417

Стоит задача - написать облачную CRM/ERP систему с большим количеством связей и около 15 классов сущностей в модели. Также она должна спокойно крутиться под нагрузкой овер 200 клиентов синхронно и не падать. Использование Django/DjangoREST для выполнения данной задачи - гуд, или лучше обмазаться Flask/SQLA и не стрелять себе в ногу? С учетом того, что придется агрегировать данные для статистики и строить сложные многофакторные запросы.

Ответы>>676423>>676430

04 Мар, 21:52 #374 #676423

>>676417
https://www.odoo.com/

Ответы>>676443

04 Мар, 21:53 #375 #676430

>>676417
Строить сложные запросы, конечно, лучше алхимией и она поддерживает особенности субд разных.

04 Мар, 21:58 #376 #676443

>>676423
Odoo крутая штука, но мне не потребуется почти ничего оттуда. Надо решить более частную задачу, требующую кастомного программирования.

04 Мар, 22:06 #377 #676459

>>676302
ок, не знал.

04 Мар, 22:07 #378 #676463

Где взять нормальную поддержку юникода в 3.4? Качаю посты с сосача, а ему то то не нравится, то это, что ещё что-нибудь он декодить не может.

Ответы>>676476>>676498

04 Мар, 22:10 #379 #676472

Призываются боги апача/джанги.

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

смутно понимаю что нужно дать права доступа какомуто пользователю/группе пользователей кроме себя самого, но понятия не имею кому.

Ответы>>676483>>676488>>676493

04 Мар, 22:11 #380 #676476

>>676463
помоему это виндапроблемы.
На маке у меня все работает, а на винде никто за десять тредов(давно уже было) не заборол.
Ну кроме очевидных советов, которые нихуя не работают, декоде ютф и прочее.

04 Мар, 22:13 #381 #676478

Редко использую винду, но ни разу никаких проблем с кодировками не было. Не считая того, что в консоль можно срать только ascii. Но кому нужна эта консоль, когда есть логи?

04 Мар, 22:15 #382 #676483

>>676472
Нахрена тебе апач? mod_python чтоли используешь? Выкинь это.

Ответы>>676487

04 Мар, 22:19 #383 #676487

>>676483
а? что? развейте мысль

Ответы>>676491

04 Мар, 22:19 #384 #676488

>>676472
Используй связку gunicorn и nginx.

04 Мар, 22:21 #385 #676491

>>676487
Никто не использует апач в 2016 году. Разве что для php из-за поддержки .htaccess и т.п. но это оффтопик.
Используй wsgi и nginx.

04 Мар, 22:23 #386 #676493

>>676472
> нужно дать права доступа какому-то пользователю/группе
Возможно ты имеешь в виду пользователя www-data.

Ответы>>676496

04 Мар, 22:24 #387 #676496

>>676493
> www-data.
Это дистро-специфично.

Ответы>>676504

04 Мар, 22:24 #388 #676498

>>676463
https://docs.python.org/3/library/locale.html
В эту сторону копай, давно не ебался с питоном на винде, так что не скажу конкретнее. Ну и да, поставь хотя бы cygwin, побереги психику.

04 Мар, 22:29 #389 #676503

>>676219
Тупл иммутабельный. Ашибка.

Ответы>>676507

04 Мар, 22:29 #390 #676504

>>676496
Твоя правда.

04 Мар, 22:31 #391 #676505

Вот кстати есть ещё http://cherokee-project.com/
Интересно кто-нить юзает в продакшене?
Я когда-то лайти использовал и он мне даже больше nginx нравился но у него память текла и разработчики нифига не делали чтобы это исправить.

04 Мар, 22:32 #392 #676507

>>676503
ой. обосрался. индекс 2 а не 1. Эм. Ну вроде бы списки должно сложить вместе. Но так как это сложение создаёт новый список, тупл не позволит поменять его. А вот append/extend изменяют inplace.

Ответы>>676511

04 Мар, 22:34 #393 #676510

где читать про этот ваш нгих в разрезе почему он теперь тру а апач не тру?

Ответы>>676513>>676516

8 Кб, 186x149

04 Мар, 22:36 #394 #676511

>>676507
> так как это сложение создаёт новый список
Не создает.
+=(ака __iadd__) может вернуть новый объект, а может и старый. В случае списка оно делает extend.

Ответы>>676529

04 Мар, 22:37 #395 #676513

>>676510
nginx асинхронный и позволяет намного больше запросов в секунду обрабатывать пожирая меньше ресурсов. Для статики он намного лучше, а для питона в качестве прокси к wsgi(или там fastcgi) серверу.

04 Мар, 22:39 #396 #676516

>>676510

Ngnix король статики. Для высоконагруженных проектов можно задрачивать комбинации ngnix + сервер динамики, тесты гуглить.

04 Мар, 22:44 #397 #676529

хорошо, спрошу иначе.
на кой пес начинающему нубу переходить на нгихн с апача?

мне бы оно хоть както заработало, а не чтобы козырять.
че там реально проще/логичней?
>>676511
только я сделал красивый скриншот, как ты меня опередил

Ответы>>676548

33 Кб, 623x317

04 Мар, 22:45 #398 #676530

Лол блядь.

Ответы>>676551>>676557

27 Кб, 647x217

04 Мар, 22:50 #399 #676546

Пупу туда же. Кстати как вы читаете PyPy и PyPI?

5 Кб, 642x126

04 Мар, 22:50 #400 #676547

Я так не играю.

04 Мар, 22:51 #401 #676548

>>676529
По nginx больше всяких статей типа "как поднять проект на django". Легче нагуглить будет если какие-то вопросы.
апач с питоном никто давно не использует.
И да ничего сложного там нет.

Ответы>>676558

23 Кб, 623x405

04 Мар, 22:53 #402 #676551

>>676530
2 часа в пейнте

04 Мар, 22:55 #403 #676557

>>676530

Баг или фича?

Ответы>>676562

04 Мар, 22:55 #404 #676558

>>676548
ну, окай. Буду смотреть.

04 Мар, 23:00 #405 #676562

>>676557
https://docs.python.org/3/faq/programming.html#why-does-a-tuple-i-item-raise-an-exception-when-the-addition-works

Ответы>>676564

04 Мар, 23:03 #406 #676564

>>676562
Тоже это нагуглил и хотел запостить

Ответы>>676567

04 Мар, 23:05 #407 #676567

>>676564
Frequently asked хех. Ну в любом случае не зная этот нюанс заранее предугадать нельзя. Вангую что этот вопрос любят задать на собеседовании.

Ответы>>676569>>676570

04 Мар, 23:06 #408 #676569

>>676567
> этот вопрос любят задать на собеседовании.
Хуевый вопрос и бессмысленный. Какой смысл это спрашивать на собеседовании?
Вряд ли в реальном коде такое попадается.

Ответы>>676571

04 Мар, 23:07 #409 #676570

>>676567
Так делать никто не будет в реальных программках.

Ответы>>676571

04 Мар, 23:09 #410 #676571

>>676569
Вы написали в своём резюме что знаете питон. Выходит не знаете?

>>676570
Это из разряда ++i + ++i

Ответы>>676575

04 Мар, 23:10 #411 #676575

>>676571
еще пару тредов назад разбирали как себя ведет __del__ в некоторых случаях. Еще пару примеров и можно будет унижать интервьюэров в их собственном HR офисе

Ответы>>676584

04 Мар, 23:13 #412 #676580

Пытаюсь создать пакет в pip. Поясните, куда там пихать непосредственно код, устанавливающий приложение? Я вижу можно через онлайн форму, можно через setup.py, но там только информация о пакете. А куда класть сам код для исполнения при установке?

Ответы>>676584

04 Мар, 23:16 #413 #676584

>>676575
Мне кажется имеет смысл утверждать что знание недокументированных возможностей больше вредит чем помогает. Дзен питона процитировать и должны отъебаться.

>>676580
Попробуй с помощью setup.py для начала собрать дистр. Кажется sdist build. Оно тебе высрет зип файл или колесо, да, я в курсе про них. Если высрало и содержимое этого зипа тебя устраивает, выполняй через тот же setup заливку на pypi.

Ответы>>676595

04 Мар, 23:21 #414 #676595

>>676584
Спасибо, буду тыкаться.

Ответы>>676622

04 Мар, 23:30 #415 #676622

>>676595
Покажи что выкладываешь.

05 Мар, 00:26 #416 #676682

>>671902 (OP)
Доброй ночи, мужики. Решил быстро скачать все картинки с одного блога. получил html с помощью urllib, но к несчастью осознал, что в блоге используется бесконечная прокрутка, а она не даёт мне спарсить весь бложик. Будь там старый добрый переход по страницам, вопросов бы не было, но тут эта модная жабаскрипт хуета. Можно ли как-то решить проблему?

Ответы>>676684>>676697

05 Мар, 00:30 #417 #676684

>>676682
Извините, поленился нормально погуглить. Уже нашёл решение. Всем споконой ночи, друзья.

Ответы>>676750

05 Мар, 00:54 #418 #676697

>>676682
>бесконечная прокрутка
А потом жалуются что браузеры тормозят и отжирают.

05 Мар, 01:40 #419 #676750

>>676684
покажи нам, раз нашел

Ответы>>676992

05 Мар, 02:14 #420 #676783

Хочу запилить маленькое веб-приложение, которое будет генерить картинку pillow и отдавать её на страницу в base64. Для такого всякие джанги не нужны, а потому встаёт вопрос - что взять: flask или bottle? Желательно с прицелом на последующее применение.

05 Мар, 02:16 #421 #676788

Вы что, серьезно? У питона практически неограниченные возможности, он стоит на каждой кофеварке, вы можете делать что угодно, а вы пишете парсеры? Что с вами не так?

Ответы>>676837>>676881>>676930>>677413

05 Мар, 03:26 #422 #676837

>>676788
>/pr
Ну а что ты хотел?

05 Мар, 04:10 #423 #676866

Где можно натырить странных слов для капчи?

Ответы>>676867

05 Мар, 04:12 #424 #676867

>>676866
мята мяту мяте мяты

Ответы>>676868

05 Мар, 04:14 #425 #676868

>>676867
Маловато, да и не оригинально.
Я подумывал итальянских каких-нибудь набрать вперемешку с английскими, но их искать и отбирать задолбаешься. Думал, может где базы есть.

Ответы>>676869

05 Мар, 04:16 #426 #676869

>>676868
Сгенерируй. Букв всего 33.

Ответы>>676870

05 Мар, 04:17 #427 #676870

>>676869
Тогда получится просто рандом. Я хочу получить что-то типа старой гугловской капчи с инглипом.

Ответы>>676877

05 Мар, 04:25 #428 #676877

>>676870
У гугла тохда были сканы старых книг

Ответы>>676880

05 Мар, 04:30 #429 #676880

>>676877
Да, я знаю. Но за неимением таковых я хочу попробовать их имитировать каким-либо образом.

Ответы>>676882

05 Мар, 04:31 #430 #676881

>>676788
что ты имеешь ввиду? это потому что линукс встраиваемая во все что угодно ОС?
ньюфаг

05 Мар, 04:33 #431 #676882

>>676880
Ну и найди шрифт подходящий или прямо со сканов сдери весь алфавит. Потом рандом пару слов. Растяни и поверни их как-нибудь, добавь грязи и искажений.

Ответы>>677273

05 Мар, 09:11 #432 #676930

>>676788
Ну что например? Отвечай, быстро и решительно, плебей.

05 Мар, 11:22 #433 #676974

А Tkinter пользует кто для gui? Он вроде простой как банка пива

Ответы>>676980>>676982

05 Мар, 11:28 #434 #676980

>>676974
И бесполезный как крышка от этой бутылки. Юзай pyqt/pyside

05 Мар, 11:30 #435 #676982

>>676974
Все пишут питоновский гуй на gtk через pygobject, а тот кто его не пишет почему-то советует pyqt/pyside

Ответы>>677137

05 Мар, 11:30 #436 #676984

В QT можно вообще через таб выбирать заголовки во всяких View? Например, QTreeWidget, я нихуя не могу найти, как сделать выбор заголовка столбца программно. Вроде же и это Item, но его не выбрать через row же.

Ответы>>676985

05 Мар, 11:31 #437 #676985

>>676984
А именно нужен фокус на нем. Чтобы с помощью клавиатуры делать сортировку столбца, например.

Ответы>>676991

05 Мар, 11:42 #438 #676991

>>676985
Фокус через Tab сразу стартует со списка, никак не реагирует на заголовки. Переходит на кнопки, Аллаха и хз что еще, но не на заголовки.
Никакие setFocusPolicy им тоже не установить.

05 Мар, 11:43 #439 #676992

>>676750
>>676750
Вот тут предлагают юзать селениум http://stackoverflow.com/questions/12519074/scrape-websites-with-infinite-scrolling
Хотя я решил проблему, просто подобрав значения в адресной сроке.

05 Мар, 12:51 #440 #677015

Поясните мне вот эту хуйню пожалуйста.
https://ideone.com/R4Oygz

Ответы>>677022>>677024

05 Мар, 12:57 #441 #677022

>>677015
Итерируйся по копии a.
Вообще итерироваться по списку и внутри что-то с ним делать плохая идея.

Ответы>>677030

05 Мар, 13:01 #442 #677024

>>677015
Я так понимаю, удаляя элемент 0, нулевым становится первый элемент, а цикл переходит к следующему и удаляет уже второй элемент, оставляя первый.

Ответы>>677025

5 Кб, 170x176

05 Мар, 13:02 #443 #677025

>>677024
Как-то так и есть, там внутри счетчик где-то.

Ответы>>677140

05 Мар, 13:15 #444 #677030

>>677022
Я то думал, что раз я не на каких-нибудь крестах дрочёных пишу, а как белый человек на питоне, то я могу делать такие простые вещи без танцев с бубном.
Но оказывается, что если я хочу перебрать какой-нибудь список на предмет нежелательных элементов, то мне нельзя удалять их сразу после выявления. Нет, мне нужно сначала в одном цикле всех проверить и составить специальный расстрельный список. А потом уже только вторым перебором по расстрельному списку, очищать ряды партии. Всё через жопу.

Ответы>>677035>>677042

05 Мар, 13:19 #445 #677035

>>677030
Нет, тебе просто нужно написать
for i in a[:]: a.remove(i)

Или вообще использовать filter или что-то типа new_list = [i for i in a if i!=2]

Ответы>>677072

05 Мар, 13:26 #446 #677042

>>677030
Мутабельные структуры данных следует использовать только от безысходности. А это явно не твой случай. Тогда будет тебе все удобно.

Ответы>>677072

05 Мар, 13:50 #447 #677072

>>677035
>a[:]
Охуительная идея создавать каждый раз список на тысячи элементов, только чтобы удалить 2 или 3 из них.
>>677042
> А это явно не твой случай.
Почему это?

Ответы>>677076>>677155

05 Мар, 13:55 #448 #677076

>>677072
Зачем проходиться в цикле по списку, чтобы проверить есть ли там элемент?
Можно сделать
try: lst.remove('el') except ValueError: blabla
Можно
if 'element' in lst: blabla
Можно проходиться с конца, если тебе уж так хочется и тогда этой проблемы не возникнет. (reversed возвращает итератор, а не копию списка)

Ответы>>677089

05 Мар, 14:07 #449 #677089

>>677076
>Зачем проходиться в цикле по списку, чтобы проверить есть ли там элемент?
Во-первых не чтобы провериль, а чтобы удалить его оттуда если нужно.
Во-вторых, например: по экрану летит нарисованный снаряд. Чтобы он мог лететь, нужно добавить его в определённый список, который будет каждый кадр перебираться, чтобы вызвать метод снаряда update. Этот метод рассчитывает текущее положение снаряда, чтобы знать где его рисовать, а в случае если снаряд сталкивается с препятствием этот метод должен обработать последствия: в том числе удалить снаряд из списка.

Ответы>>677101>>677155

05 Мар, 14:17 #450 #677101

>>677089
http://pyode.sourceforge.net/

Ответы>>677112

05 Мар, 14:30 #451 #677112

>>677101
А это тут зачем?

Ответы>>677119>>677121

05 Мар, 14:33 #452 #677119

>>677112
При том, что зачем рассчитывать положение снаряда, траекторию, ускорение и прочую фигню в цикле на питоне когда для этого есть готовая библиотека?

Ответы>>677135

05 Мар, 14:33 #453 #677121

>>677112
И collision detection там тоже есть.

Ответы>>677135

05 Мар, 14:43 #454 #677135

>>677119
За тем, что снаряд может двигаться не по физическим законам.
>>677121
Я рад за ODE.

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

Ответы>>677143>>677169

05 Мар, 14:43 #455 #677137

>>676982
Я на pyqt уже штук 10 зделал на фрилансе.

Ответы>>677422

05 Мар, 14:45 #456 #677140

>>677025
AttributeError: 'range' object has no attribute 'remove'

Ответы>>677170

18 Кб, 630x630

05 Мар, 14:45 #457 #677141

Есть сайт с которого мне нужно скачать страницы в виде хтмл, но они весят много
У сайта есть мобильная версия, но только в виде приложений на ios/android. Как можно залезть туда и начать скачивать оттуда?
Советуют указать мобильного клиента в хедере, но я не знаю что это такое и как это делать
Посоветуете что-то?

Ответы>>677326

05 Мар, 14:48 #458 #677143

>>677135
> удалять элемент перебираемого списка - вполне насущная задача
Тебе уже сказали, используй filter и tuple. А теперь уябывай.

Ответы>>677158>>678026

sage 05 Мар, 14:54 #459 #677155

>>677072
>Охуительная идея создавать каждый раз список на тысячи элементов, только чтобы удалить 2 или 3 из них.
можно подумать твое удаление 2 или 3 не потребует 2 или 3 копии. список только называется списком, на самом деле это массив.
>>677089
>Чтобы он мог лететь, нужно добавить его в определённый список
да уж, гейдев за 300.

Ответы>>677190

05 Мар, 14:55 #460 #677158

>>677143
>Тебе уже сказали, используй filter и tuple.
Тоесть феирически говнокодить для решения элементарной задачи.

Ответы>>677168

05 Мар, 15:00 #461 #677168

>>677158
Иммутабельный контейнеры и фильтрация - это шаг вперёд по сравнению с "удалением элемента из списка". Возвращайся в кресты лучше.

Ответы>>677192

05 Мар, 15:00 #462 #677169

>>677135
Проходись по списку с конца используя reversed. В любом другом языке была бы такая же проблема и поэтому перебирают массивы с конца.

Ответы>>677214

05 Мар, 15:02 #463 #677170

>>677140
А "print i" тебя не смутило?
Это второй питон. В третьем надо писать a=list(range(10))

Ответы>>677188

05 Мар, 15:08 #464 #677178

А на GUI можно рисовать графики?

Ответы>>677181

05 Мар, 15:10 #465 #677181

>>677178
Можно.

Ответы>>677261

05 Мар, 15:13 #466 #677188

>>677170
В третьем так не надо писать.

Ответы>>677197

05 Мар, 15:13 #467 #677190

>>677155
>можно подумать твое удаление 2 или 3 не потребует 2 или 3 копии. список только называется списком, на самом деле это массив.
Хочешь сказать, что копирование списка сопоставимо по скорости с удалением или добавлением элемента в него?

Ответы>>677199

05 Мар, 15:14 #468 #677192

>>677168
>Иммутабельный контейнеры и фильтрация - это шаг вперёд по сравнению с "удалением элемента из списка".
Только в твоих влажных фантазиях.

Ответы>>677199

05 Мар, 15:16 #469 #677197

>>677188
Если тебе нужно получить список? Надо.

05 Мар, 15:16 #470 #677199

>>677190
Настоящий линейный список это deque. Но там доступ не O(1), как и должно быть. Так что ты тут в любом случае в пролёте со своими ко-ко-коптимизациями.
>>677192
> куд-кудах-пок-пок
Ясно.

Ответы>>677222>>677311

05 Мар, 15:24 #471 #677214

>>677169
Вот этот вариант внезапно работает быстрее всего. Спасибо.

05 Мар, 15:25 #472 #677218

Ещё возможен вариант не удалять элементы из твоего гиганского списка сразу, а помечать как удаленные. Или заносить в другой список на удаление. А потом удалить разом.

Ответы>>677226>>677275

05 Мар, 15:27 #473 #677222

>>677199
> Нет аргументов, поэтому пошли шуточки про петушков.
Ясно.

Ответы>>677236

05 Мар, 15:28 #474 #677226

>>677218
Я так и сделал сначала. Но это костыль.

Ответы>>677234>>677275

05 Мар, 15:32 #475 #677234

>>677226
На какой-нибудь сишечке так и пришлось бы сделать.
И если у тебя там много элементов, это должно быть быстрее.

05 Мар, 15:32 #476 #677236

>>677222
По-твоему "Только в твоих влажных фантазиях" это аргумент?

Ответы>>677262

05 Мар, 15:46 #477 #677261

>>677181
А это трудно? Можно японскими свечами нарисовать? И прокрутку сделать?

05 Мар, 15:46 #478 #677262

>>677236
По моему, это указание то, что твоё:
>Иммутабельный контейнеры и фильтрация - это шаг вперёд по сравнению с "удалением элемента из списка".
Ни на чём не основано, кроме личных предпочтений.

Ответы>>677283

33 Кб, 882x56

05 Мар, 15:52 #479 #677273

>>676882
>шрифт подходящий
>Растяни и поверни их как-нибудь, добавь грязи и искажений
Так и сделал. Просто не хочу полный рандом - будет неинтересно. вообще для "напиши сценарий по капче" пилил

05 Мар, 15:53 #480 #677275

>>677218
>>677226
В чём проблема удалять с конца?

Ответы>>677278

31 Кб, 427x494

05 Мар, 15:55 #481 #677278

>>677275
Считай ты копируешь списко каждый раз.

Ответы>>677280>>677284>>677286>>677287

05 Мар, 15:58 #482 #677280

>>677278
Не мог бы ты пояснить "копируешь каждый раз". Что за каждый раз и почему копируешь?

Ответы>>677286>>677293

05 Мар, 15:59 #483 #677283

>>677262
Во-первых, иммутабельные контейнеры удобнее и проще в использовании, ибо не надо думать о сайд эффектах. Во-вторых, пифон не тот язык, где нужно всерьёз думать о производительности этих самых контейнеров. Если тебе не хватает производительности, то скорее всего надо использовать не пифон в этой ситуации.

Ответы>>677323

05 Мар, 15:59 #484 #677284

>>677278
Для удаления в конце думаю константная сложность.

Ответы>>677293

05 Мар, 16:00 #485 #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]

Ответы>>677287>>677298

05 Мар, 16:00 #486 #677287

>>677286
>>677278

05 Мар, 16:02 #487 #677293

>>677280
Выше написали уже что list в питоне это не список, а массив указателей.
Поиск и удаление элементы из середины - дорогая операция, такая же дорогая как копирование всего списка.
Если элементов много и надо удалить много элементов, то выгоднее завести новый список, куда помещать элементы для удаления и после прохода пересоздать список, исключив эти элементы.
Или даже делать это не после каждого прохода, а реже.
>>677284
Ему не надо удалять именно последний элемент с конца. Ему надо удалять элементы посередине, которые соответствуют определенным критериям.

Ответы>>677297

05 Мар, 16:03 #488 #677295

После удаления ты должен сдвинуть все элементы после удалённого на одну позицию

Ответы>>677304

05 Мар, 16:03 #489 #677297

>>677293
А понял, из-за сдвига индекса. Спасибо.

05 Мар, 16:03 #490 #677298

>>677286
Причем тут это. Речь о том, что удаление элемента из середины дорогая операция.

Ответы>>677302

05 Мар, 16:05 #491 #677302

>>677298
Мне там сказали, что я список каждый раз копирую.
Почему она должна быть дорогой то? Два указателя всего поправить нужно.

Ответы>>677304

05 Мар, 16:06 #492 #677304

>>677302
> Два указателя всего поправить нужно.
Список в питоне не двусвязный список, а массив.
See >>677295

Ответы>>677316

05 Мар, 16:10 #493 #677311

>>677199

05 Мар, 16:12 #494 #677316

>>677304
>а массив
Чистым массивом он точно быть не может, потому что умеет растягиваться и хранить элементы разных типов. Может какое-нибудь сищное подобие вектора указателей, но тогда встаёт вопрос, как он в сях реализован.

Ответы>>677318

05 Мар, 16:15 #495 #677318

>>677316
> хранить элементы разных типов.
Он не хранит элементы разных типов. Он хранит указатели на объекты, они все одного типа.

05 Мар, 16:18 #496 #677323

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

Ответы>>677353

05 Мар, 16:20 #497 #677326

>>677141
бамп

Ответы>>677329>>677373

05 Мар, 16:21 #498 #677329

>>677326
А как сайт этот устроен? Оно точно не генерит html на клиенте получая данные через ajax и api какой-нить?

Ответы>>677339

05 Мар, 16:27 #499 #677339

>>677329
Вряд ли, да я и не знаю как это проверить на самом деле.

Ответы>>677346

05 Мар, 16:29 #500 #677346

>>677339
Но в любом случае, тебе же надо на выходе получить html.
Мобильная версия в виде приложения получает данные не в виде html.

Ответы>>677348

05 Мар, 16:33 #501 #677348

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

Ответы>>677351

05 Мар, 16:36 #502 #677351

>>677348
Несколько тредов, включить keep-alive.

Ответы>>677374

05 Мар, 16:37 #503 #677353

>>677323
1. Удаление первого элемента списка по скорости на том же уровне, что и создание нового тупла из всех элементов без первого. Единственное для чего стоит использовать мутабельные объекты — экономия памяти.
2. В малой части типа сортировок да. В остальном — нет.

Ответы>>677368

05 Мар, 16:46 #504 #677368

>>677353
Вообще туплы в питоне не задуманы для такого использование. Они скорее как структуры в си или чтобы передать несколько элементов.
И вообще с такими идеями тебе в какой-нить фукнциональный язык.

Ответы>>677388

05 Мар, 16:50 #505 #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)

Ответы>>677380

05 Мар, 16:50 #506 #677374

>>677351
Для keep-alive использовать urlgrabber?
Я правильно понимаю, что достаточно объявить keep-alive в начале и каждый urlopen будет проходить с его участием?

Ответы>>677390

05 Мар, 16:52 #507 #677380

>>677373
Ничего не выводит, но заканчивается без ошибок

Ответы>>677382

05 Мар, 16:53 #508 #677382

>>677380
r.url тот, что и запрашивал?

Ответы>>677386

05 Мар, 16:55 #509 #677386

>>677382
Да

05 Мар, 16:56 #510 #677388

>>677368
С чего это не задуманы? Можешь использовать список, но не изменять его, если религия не позволяет.

Ответы>>677396

05 Мар, 16:56 #511 #677390

>>677374
Используй requests и Session отткуда
http://docs.python-requests.org/en/master/user/advanced/#keep-alive

05 Мар, 17:00 #512 #677396

>>677388
Потом типичные операции это list.append/list.pop и они быстрые.

Ответы>>677420

05 Мар, 17:04 #513 #677412

А r.text такой же как в браузере? Ты на адрес мобильной версии посылаешь запрос?

Ответы>>677417>>677426>>677434

05 Мар, 17:04 #514 #677413

>>676788
Ну же, отвечай!

05 Мар, 17:06 #515 #677417

>>677412
Он же сказал что мобильная версия сделана не в виде сайта, а в виде приложений.

Ответы>>677427

05 Мар, 17:07 #516 #677420

>>677396
поп(0) О(n) уже картинку скинули. аппенд амортизирован О(1), но если нужно изменить внутренний размер листа, но это долшьше. Для тру О(1) добавления/удаления в начало/конец используются deque, queue

05 Мар, 17:09 #517 #677422

>>677137
>зделал
За домашнюю работу уже платить стали?

05 Мар, 17:10 #518 #677426

>>677412
Нет, r.text намного меньше чем в браузере
https://www.diffchecker.com/ghcqvped
Вот здесь разница если важно

05 Мар, 17:10 #519 #677427

>>677417
Возможно, увидев андройдовский user agent, сервер отдаст ему данные для приложения. В любом случае он должен что-то отдать.

Ответы>>677436

05 Мар, 17:17 #520 #677434

>>677412
через мобильную версию вес html меньше раз в 6
Спасибо

Ответы>>677438

05 Мар, 17:18 #521 #677436

>>677427
> увидев андройдовский user agent, сервер отдаст ему данные для приложения
Обычно смотрят не на user-agent а на другие заголовки. Типа content-type, Accept. Да и url другой.

Ответы>>677444

05 Мар, 17:19 #522 #677438

>>677434
Рад за тебя. Если тебе нужны какие-то конкретные данные, то у них вроде API есть.

Ответы>>677439

05 Мар, 17:19 #523 #677439

>>677438
Но через api у них не возьмешь список всех книг, а именно это мне и нужно:с

Ответы>>677446

05 Мар, 17:19 #524 #677440

Какой максимальный размер (ширина, высота) картинок тут?

05 Мар, 17:22 #525 #677444

>>677436
Я лишь знаю, что увидев user-agent обычно редиректят на url мобильной версии. Я в этом не силен.

05 Мар, 17:23 #526 #677446

>>677439
search.books - Find books by title, author, or ISBN.
Думаю, тут есть варианты как извратиться.

Ответы>>677448

05 Мар, 17:24 #527 #677448

>>677446
Да мне кажется, что простой crawler тоже сможет это сделать. Да и опыт написание crawler'a лишним не будет

Ответы>>677453

05 Мар, 17:27 #528 #677453

>>677448
Зачем это, если не секрет?

Ответы>>677458>>677553

05 Мар, 17:29 #529 #677458

>>677453
Скоро интернет вырубят и будет чебурашка.
Надо успеть скачать всё что есть в интернете.

68 Кб, 600x462

05 Мар, 17:30 #530 #677459

Перекат где?

130 Кб, 3444x56

05 Мар, 17:33 #531 #677464

Капча из 20 слов

Ответы>>677469

05 Мар, 17:38 #532 #677469

>>677464
Больной ублюдок.

Ответы>>677495

05 Мар, 17:46 #533 #677486

Аноны, кто-нибудь использовал связку angular + django_rest? никак не получается отправить файл на сервер через форму, хотя через api все отправляется

05 Мар, 17:50 #534 #677495

>>677469
Хотел из 100, но она, говорит, слишком большая. Из 50 тоже не пускает.

Ответы>>677498

05 Мар, 17:53 #535 #677498

>>677495
И что ты собрался с этим чудовищем делать?

Ответы>>677502

35 Кб, 1051x56

05 Мар, 17:55 #536 #677502

>>677498
Роллить во славу Инглипа конечно же! для "напиши сценарий для фильма по капче", я там выше писал Только рандом в словах ещё не завёз, но сервис уже работает.

05 Мар, 18:38 #537 #677553

>>677453
Прости, уходил
Это проект на полгода на первом курсе, рекомендательную систему нужно построить

05 Мар, 18:44 #538 #677561

Что значит

10% used (10.39s of your 100 second CPU allowance)
Allowance resets in 6 hours, 53 minutes
?
Что после того, как я попользуюсь процом 100 секунд, то после этого не смогу, пока таймер не сбросится?

33 Кб, 604x474

05 Мар, 21:37 #539 #677693

Ответы>>677924

32 Кб, 604x474

05 Мар, 22:05 #540 #677711

06 Мар, 02:21 #541 #677890

>>677889 (OP)

218 Кб, 1000x750

06 Мар, 05:10 #542 #677924

>>677693

06 Мар, 12:30 #543 #678026

>>677143
>Тебе уже сказали, используй filter и tuple.
Я тут почитал ваш спор и у меня к тебе вопрос: а можешь показать пример, как исползовать тупл в ситуациях, когда нужно удалять/добавлять элементы в список?
Предположим, у меня есть список студентов Гарварда (20к+), нужно убрать оттуда тех, кто уже дал взятку. Однако, если деньги во взятке оказались фальшивыми, студента нужно будет туда вернуть.
Со списками всё элементарно:
#получаем эвент "дал взятку" с аргументом штудента
not_bribed.remove(student)
bribed.append(student)
#получаем эвент, что взятка оказалась фальшивой
bribed.remove(student)
not_bribed.append(student)
student.bribe /= 0.5 # в качестве штрафа удваиваем необходимую взятку*

А как быть с туплами? Программа у нас однотрендовая с эвентлупом, никаких одновременных обращений к списками не будет.

Ответы>>678030>>678100

06 Мар, 12:34 #544 #678030

>>678026
Разумеется, информация должна быть постоянно самая свежая, поэтому держать какой-то дополнительный список "на удаление" глупо, ведь ректор может попросить список имён для "домашнего визита" в любое время.

06 Мар, 13:45 #545 #678100

>>678026
Всё просто
bribed = bribed + (student,)
i = not_bribed.index(student)
not_bribed = not_bribed[:i] + not_bribed[i + 1:]
Ты придумал данную задачу так, что здесь изначально два мутабельных контейнера и предлагаешь их заменить иммутабельными. Гораздо лучше в класс студент добавить свойство "давал взятку". Тогда нужен один тупл и всё.

Ответы>>678129

06 Мар, 14:07 #546 #678129

>>678100
>Ты придумал данную задачу так
Я просто придумал первую пришедшую в голову задачу со списками. Второй список, если честно, появился случайно при развитии сюжета. Делать шаг назад, естественно, было нельзя - первое правильно импровизации.

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

То есть, в относительно небольшом приложении, какая может быть объективная причина использовать иммутабл и эти плюсы и слайсы, вместо очевидных и красивых append/remove?

Ответы>>678139

06 Мар, 14:12 #547 #678139

>>678129
Появится многопоточность, а она скорее всего появится. И мутабельность сыграет злую шутку.
В остальном, да, либо использовать эти списки, либо, как я уже выше написал, иметь один тупл со студентами и поле "взяточничества" студента.

06 Мар, 20:34 #548 #678618

Перекатываемся
https://2ch.hk/pr/res/677889.html (М)

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion