Сохранен 511
https://2ch.hk/pr/res/1199534.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Python

 Аноним 30/05/18 Срд 18:42:22 #1 №1199534 
1.jpg
2.png
3.jpg
4.png
F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Для кода https://repl.it/languages/python3
Не скидывайте сложные исходники в тред, у двоща ебанутое форматирование
Книги https://yadi.sk/d/tArKKuQu3Kejuq

В предыдущей серии >>1188085 (OP)
Еще ранее >>1182179 (OP) (OP)
Аноним 30/05/18 Срд 18:44:26 #2 №1199535 
перекатил, а теперь спасите меня плз.
Нужна максимально простая и понятная по деплою flask'a под ubuntu 16.04, nginx+uwsgi.
Последний шажок в Тестовом задании на работягу, уже второй день ебусь, все осложнено тем что сервера то у меня нет проверить.
Аноним 30/05/18 Срд 18:54:04 #3 №1199538 
>>1199534 (OP)
Что за секси бой на третьем пике? Как с таким познакомиться?
Аноним 30/05/18 Срд 20:53:27 #4 №1199644 
Стикер
>>1199534 (OP)
Как можно на ОП-пики поставить абсолютно те же, блять, пики, что и в предыдущем треде? Ты совсем охуел, пидрила?
Это что ж это делается-то такое, люди добрые, а? Как так можно-то?
Еще и с гиперссылками обосрался, вообще охуеть.
Аноним 30/05/18 Срд 22:55:21 #5 №1199731 
1452607035neft.jpg
20180528222702.jpg
Анон, который писал это >>1189387 некоторое время назад, ты просто охуенен. За всё прошедшее время я решил большинство поставленных задач, а эту оставил практически на самый конец, сохранив всё, что ты писал. Сейчас всё начал проверять, и это блядь работает! Не знаю какими словами выразить свою благодарность, но ты охуенен. Сотни нефти тебе, 72 девственницы, обнимаю братишка. В таких вещах чувствуется опыт, когда ньюфаг просто не знает куда идти и что со всем этим делать. В общем, спасибо!
Аноним 30/05/18 Срд 23:22:29 #6 №1199735 
>>1199731
Обидно правда, что я сделал это не сам, и сделать подобное самому заняло бы наверное дня 3-4.
Аноним 31/05/18 Чтв 00:28:54 #7 №1199765 
Посоветуйте OS (желательно сетевое приложение)проект для обучения.
Аноним 31/05/18 Чтв 00:38:44 #8 №1199774 
>>1199644
Тут сидят эпилептики, пидар ты полоумный.
Аноним 31/05/18 Чтв 00:56:05 #9 №1199786 
14736192397360.webm
>>1199774
Я например не эпилептик, и тот анон прав. Такой себе перекот. Фронтовики вон себе аниме на оппик поставили. Я даже нагуглил анимешных питонов, чтобы сделать перекот, когда понадобится. А тут такое блять.

Как найти работу Питона в бекенде, или даже подойти к ней? Выучил ванильный питон, начал джангу, а там в описании моделей были many-to-many relationship. А я такого не помню из учебника по mysql, что прочитал. В итоге уже неделю-две тереблю документацию и книги по postgresql, да и фронт решил немного подучить, думаю каких-то базовых знаний будут ждать даже от заднеприводного. А Пистон свой вообще перестал трогать. Как дальше идти?
Аноним 31/05/18 Чтв 07:38:25 #10 №1199826 
>>1199534 (OP)
Питон классный язык! Смотрите, я хочу получить последние три цифры списка. Если бы я хотел получить первые три цифры списка, я бы написал:
lst[0:3]
=>[1, 2, 3]
Но как же получить три последние цифры?
Может, lst[-1:-4]?
=>[]
А, наверное, lst[-3:-1]
=>[3, 4]
Точно! lst[-3:0]!
=>[]
Вот жеж сука. И чо делать?
new = lst[-3:-1]
new.append(lst[-1])
new
=>[3, 4, 5]
Питон классный язык!
Аноним 31/05/18 Чтв 07:48:43 #11 №1199831 
>>1199826
list = ['кек', 'петух', 'закукарекал', 'пойди', 'подмойся', 'маня']

print(list[:3]) # ['кек', 'петух', 'закукарекал']
print(list[-3:]) # ['пойди', 'подмойся', 'маня']
Аноним 31/05/18 Чтв 08:41:00 #12 №1199839 
36995586.jpg
Помниться я сильно удивился когда увидел как реализован namedtuple (строкой составляется код класса и exec'ается этот код):
https://github.com/python/cpython/blob/3.6/Lib/collections/__init__.py#L302

Так вот, в 3.7 (релиз которого уже скоро) добавят целый модуль работающий подобный образом. Такие дела.
https://docs.python.org/3.7/library/dataclasses.html
https://www.youtube.com/watch?v=T-TwcmT6Rcw

Наверное ничего плохого в этом и нет. Мне в последнее время кажется что метаклассы - это куда больший непрозрачный пиздец. А тут хотя бы всё довольно прозрачно работает.
Аноним 31/05/18 Чтв 09:36:08 #13 №1199857 
>>1199535
в доках фласка всё годно расписано, какие проблемы?
Аноним 31/05/18 Чтв 09:38:15 #14 №1199859 
>>1199786
Тоже интересует, анончики, что успешно на бэке разъясните пожалуйста?!
Аноним 31/05/18 Чтв 09:59:57 #15 №1199862 
VSSHIT.PNG
АААААСУКАБЛЯТЬ.
Я люблю VSCode, по-крайней мере больше других редакторов, но блять, постоянно натыкаюсь на неприятную недопиленную хуйню.
Вот я хотел изменить выделение синтаксиса аннотаций типов - сделать их курсивными.
Но хуй, определение грамматики Пиздона в VSCode не выделяет аннотации в отдельный scope.
inb4: перепиши грамматику сам
Аноним 31/05/18 Чтв 10:20:50 #16 №1199869 
>>1199535
> Нужна максимально простая и понятная по деплою flask'a под ubuntu 16.04, nginx+uwsgi.
Ты только что бутылку колы.

> сервера то у меня нет проверить.
Используй в качестве сервера виртуалбоксовую виртуалку с хостовым сетевым режимом. Всегда так делаю, зависимость есть, брат в Волгограде
Аноним 31/05/18 Чтв 10:22:51 #17 №1199870 
>>1199862
E M A C S
M
A
C
S

Серьёзно, за 42 года там всё вылизано до блеска.
Аноним 31/05/18 Чтв 10:59:33 #18 №1199882 
А есть ломанный pycharm на линукс ?
На чем вообще пишите под линуксом ?
Аноним 31/05/18 Чтв 11:03:54 #19 №1199885 
>>1199774
>Тут сидят
Уже лежат :3

>>1199731
Спасибки. Я и сам благодаря твоему вопросу по-лучше разобрался с этими всякими плейлистами, hls'ом и заголовком mp4, а то не до конца всё понимал.
>я сделал это не сам
"Не сам" это в смысле с моей помощью или вообще кто-то другой?
Аноним 31/05/18 Чтв 11:11:02 #20 №1199886 
>>1199882
>>1199870
Аноним 31/05/18 Чтв 11:24:28 #21 №1199892 
Сколько людей столько и питонов
Аноним 31/05/18 Чтв 13:03:24 #22 №1199924 
>>1199826
> хотел бы получить первые три элемента
А
# что означает - взять элементы с нулевого по третий, не включая третий
lst[0:3]
А
> Пытаюсь взять последние три
А
# что означает взять элементы с третьего с конца по последний, не включая последний
lst[-3, -1]
А
ною что питон гавно
Аноним 31/05/18 Чтв 13:07:04 #23 №1199925 
>>1199826
lst[:-4:-1][::-1]
sageАноним 31/05/18 Чтв 13:08:50 #24 №1199927 
Анон, требуется отсортировать текст по кол-ву уникальных слов в этом тексте.

То есть Мне нужно вывести сначало уникальные, затем повторяющиеся слова по возрастанию. Правильно ли я понимаю?
Аноним 31/05/18 Чтв 13:20:58 #25 №1199932 
>>1199927
сажа приклеилась
Аноним 31/05/18 Чтв 14:22:07 #26 №1199952 
>>1199885
Вообще что идея то у меня была, просто я зассал начинать т.к. не был до конца уверен, что такое возможно провернуть с приемлемым качеством. А ты не зассал. Как говорится, глаза боятся руки делают.
Аноним 31/05/18 Чтв 15:26:10 #27 №1199972 
Шутказашуткой.jpg
Репост из тонущего.

Так блять, что-то я запутался с __hash__ и мутабельностью.

Вот есть к меня мутабельный класс.
Внезапно, по-дефолту он является хешируемым, наследует object.__hash__, который насколько я понимаю что-то вроде return hash(id(self)).
Это нормально что мутабельный класс является хешируемым и может например в качестве ключей dict'а использоваться?
Аноним 31/05/18 Чтв 18:24:57 #28 №1200068 
какие плюсы у джанги перед пхп фреймворками?
Аноним 31/05/18 Чтв 18:48:21 #29 №1200091 
>>1200068
в первом случае ты пишешь на python, а во втором на пыхе - это главный и основной плюс, которого всегда достаточно.И не используй эту сраную джангу. Любят у нас чтобы две кнопки нажал и сразу все заработало. Тут тебе и админка встроенная и orm и шаблонизатор, а потом как нужно сделать что-то специфическое, чего нет искаропки, то сразу впадают в ступор. А во вторых она намного медленнее чем, какие-нибудь, flask или falcon
Аноним 31/05/18 Чтв 18:50:30 #30 №1200092 
>>1200091
те нахуй не нужен?
Аноним 31/05/18 Чтв 18:51:11 #31 №1200093 
>>1199885
Короче анон, почитал я твой код, и понял, что ты мне неделю времени сэкономил, это как минимум. Сам бы я не зная технологии до этого бы так просто не дошел. Читая твой код узнал больше, чем за последние пару месяцев. Короче я в восторге. Уверен, что решая эту задачу столкнусь ещё с кучей трудностей, но основная считай пройдена.

Если тебе интересно, решил разбивать все файлы на отрезки по 10 секунд, благо ffmpeg позволяет делать это на лету без затрат ресурсов, и выхлоп появляется по мере скачивания. Это позволит запускать стрим практически сразу. По расчетам буду составлять плейлист как делал ты, но естественно каждая позиция будет равняться десяти секундам. Да, будут неудобства с перемоткой, но это будет работать.
Сейчас проверял нарезанное кусками видео со стрима через vlc, сервер и заранее созданный m3u8. Aaand it works!
Аноним 31/05/18 Чтв 19:52:54 #32 №1200129 
>>1199972
Так если он хэширует айди, то какая разница что твой объект мутабелен?
Аноним 31/05/18 Чтв 20:04:40 #33 №1200140 
j1lcwoah0lwz.jpg
>>1199831
Надо же, сработало. И я сейчас не про print(list[-3:]).
Спасибо за участие.
Аноним 31/05/18 Чтв 21:31:30 #34 №1200251 
15263043338480.mp4
А вы знали что Python + PyQT + QML Это стак будущего?
Лучший язык, плюс лучший UI.
Веб, десктоп, андройд. Все двери открыты.
Кроссплатформенность.
Легкость разработки.
Если это не киллерстек технологий то не знаю что.
Напишите побольше документации плез
Аноним 31/05/18 Чтв 21:35:50 #35 №1200263 
>>1200251
Qt - для лохов, GTK - выбор мастеров
Аноним 31/05/18 Чтв 21:38:55 #36 №1200268 
15263116389192.mp4
>>1200263
Ты че волчара, ты че!
Аноним 31/05/18 Чтв 21:54:43 #37 №1200277 
>>1200251
Python - для лохов, C++ - выбор мастеров
Аноним 31/05/18 Чтв 22:13:12 #38 №1200291 
PointlessSimplisticAmericanquarterhorse-mobile.mp4
>>1199534 (OP)
Зацените, че принес.
Аноним 31/05/18 Чтв 22:14:31 #39 №1200293 
>>1200291
Кликер на коленке. Wow.
Аноним 31/05/18 Чтв 22:18:31 #40 №1200295 
>>1200293
А вдруг кого-нибудь смотивирует.
Аноним 31/05/18 Чтв 22:20:23 #41 №1200298 
>>1200295
На самом деле выглядит познавательно, но когда будет что-то более-менее существенное и оттадкиваться от координат курсора - это плохой вариант.
Аноним 31/05/18 Чтв 22:53:16 #42 №1200319 
Добрый вечер. Пытаюсь развернуть flask приложение на pythonanywhere, вроде бы все получилось, но при нажатии на кнопку, которая получает данные из формы и записывает в базу данных(sqlite) строку, вылетает ошибка 502 backend. Логи сервера
https://hastebin.com/fetavemucu.pas
Аноним 31/05/18 Чтв 23:03:25 #43 №1200325 
>>1200319
Собственно вопрос: в чем может быть проблема и каким образом ее можно решить?
Аноним 01/06/18 Птн 05:46:24 #44 №1200390 
Что использовать в питоне вместо глобальных переменных? Вот НАДО мне из функции во внешний мир сохранить словарь, потому что по-другому нельзя. Не в файл же на жёстком диске мне сохранять его? А глобальные переменные везде говорят моветон, а чё делать та?
Аноним 01/06/18 Птн 06:49:35 #45 №1200392 
>>1200093
>Если тебе интересно
Разумеется. Можешь даже код потом скинуть.

>решил разбивать все файлы на отрезки по 10 секунд
Получается, ты временно на диске их хранишь? Так-то идея иметь маленькие куски для стриминга хорошая и правильная.
В своём варианте я видел плюс в том, что выхлоп ffmpeg'а можно напрямую отправлять клиенту (возможно с некоторыми трудностями с первым обрезанным куском). Но это дело вкуса, наверное, если нет проблем хранить временные файлы.

>будут неудобства с перемоткой
Какие? Вроде всё нормально должно работать, в зависимости от того, как ты плейлист создашь, конечно.
Аноним 01/06/18 Птн 08:38:36 #46 №1200407 
>>1200390
Класс со статическими переменными, но скорее всего ты делаешь какую-то хуйню.
Аноним 01/06/18 Птн 08:44:09 #47 №1200409 
>>1200263
Теорема Эскобара
Аноним 01/06/18 Птн 08:46:39 #48 №1200413 
>>1200390
Гугли оператор global. Но в твоём случае поди лучше возвращать словарь из функции.
Аноним 01/06/18 Птн 09:53:40 #49 №1200423 
>>1199972
хешируемость и мьютабельность вполне независимые вещи, твой объект может быть мьютабельным и хешируемым, например ты можешь реализовать свой вид dict'ов которые будут хешируемы и их можно будет использовать как ключи в стандартных dict, это просто в общем случае плохая практика, потому что у мьютабельных объектов при малейшем их изменении меняется хеш (если он вычисляется беря из объекта данные которые можно изменить), в следствии чего все гавно полагающееся на неизменяемость хеша сломается.

Твой объект может быть мьютабельным и хешируемым если хеш вычисляется из имьютабельных данных объекта, только в таком случае это уже какой-то ебнутый хеш, не представляющий все данные хешируемого объекта
Аноним 01/06/18 Птн 10:06:34 #50 №1200430 
>>1200390
Хорошая практика - писать чистые функции.
Чистые функции - это функции которые принимают какие-то данные и возвращают какой-то результат без сторонних эффектов. Под сторонними эффектами имеется в виду что твои функции, ни в коем случае, не должны изменять ничего что не было в них обьявлено или передано, то есть они не должны ни коим образом изменять что-то объявленное все них. Таким образом функции становятся самостоятельными и независимыми от кода вокруг и их можно будет использовать где угодно просто скопировав.

Так же следует придерживаться правила, что функция должна всегда возвращать один и тот же тип данных.

В твоём случае функция должна принимать какие-то входные данные и всегда возвышать что-то типа dict, если ты не упоролся и понимаешь что тебе нужно.
Аноним 01/06/18 Птн 10:39:26 #51 №1200440 
>>1200430
Так же функции следует делать идемпотентными, то есть при одних и тех же входных данных всегда должен быть один и тот же результат, если только вдруг у тебя не какой-то ебнутый кейс с генерацией чего-то рандомного
Аноним 01/06/18 Птн 11:16:37 #52 №1200466 
>>1200413
Ну гуглил же, в каждой дырке говорят, что global для лохов, классы для пацанов.
>>1200407
Да, это действительно выход. Странно, что напрямую нагуглить я это не смог.
>>1200430
Практика, конечно, хорошая, но это всё идеальные примеры в вакууме. В данном конкретном случае есть сервер, а код запускается благодаря переходу по ссылке на этот север, то есть возвращать данные в классическом понимании некуда, а добытые данные нужно где-то промежуточно хранить. А так все советы годные, специально перед началом проекта читал про хороший стиль, тестируемость, паттерны. И что замечу, отладка действительно стала весьма прозрачной и безболезненной.
Аноним 01/06/18 Птн 11:56:25 #53 №1200482 
15222582051720.jpg
Пацантре, возможно ли в пайтоне глобальный импорт на всю сессию, как в руби. Что я имею ввиду. Вот смотрите есть у меня папка tests в которых лежат тесты, и в каждом тесте я юзаю либу requests, можно как-то сделать так чтобы мне не пришлолсь каждый раз в каждом файле писать import requests ?

картинка для привлечения внимания
Аноним 01/06/18 Птн 11:59:54 #54 №1200485 
>>1200482
нет
Аноним 01/06/18 Птн 12:03:34 #55 №1200490 
>>1200482
Я даже не представляю как это могло бы работать. В любом случае ты можешь просто создать файл, в который ты импортируешь тесты и при этом там уже импортирован модуль. Но это бессмысленная еботня как и все любые другие способы. Объясни по-конкретнее чтоли.
Аноним 01/06/18 Птн 12:38:08 #56 №1200504 
>>1200251
и везде пролет
Аноним 01/06/18 Птн 12:57:09 #57 №1200516 
>>1200482
В Питоне принято, что явное лучше неявного. В Руби принято, что небольшие задачки красиво и сладко если вы понимаете, о чем я смотрятся, поэтому там Рельсы сами подгружают твое говно в свой контекст, делая из языка программирования какой-то странный DSL.

Короче говоря, выкинь эту мысль из головы, так сделать можно, но нельзя.
Аноним 01/06/18 Птн 12:58:10 #58 №1200517 
>>1200490
> Я даже не представляю как это могло бы работать.
Хотя бы eval.
Аноним 01/06/18 Птн 13:43:20 #59 №1200571 
>>1200517
Я говорю тебе я принципа не понимаю и зачем это вообще. Ты что, как-то собираешься из файла извлекать или что? Что тебе нужно?
Аноним 01/06/18 Птн 14:00:13 #60 №1200590 
>>1200466
Я думаю, ты не понимашь, почему глобальные "для лохов". Это не просто какой-то там подростково-пубертатный "зашквар". Суть в том, что тот, кто возьмет твой код и начнет там что-то допиливать-перепиливать, имеет неиллюзорный шанс случайно объявить уже существующую переменную. Поэтому на практике глобалы именуются словами, перед которымт стоит андерскор или два, создавая приватную варку.
Но если твой код находится сугубо в твоих руках и ты не намер его опубликовывать, то ты волен изгаляться с ним, как пожелаешь. Так что отбрасывай эти свои "пацанские панятия" и включай головушку.
Аноним 01/06/18 Птн 14:15:04 #61 №1200597 
>>1200466
определись что тебе нужно делать с данными, возможно тебе следует возвращать их как ответ от сервера, если не тот случай, тогда тебе нужна база и храни данные в ней, если данных СОВСЕМ немного и нужно хранить временно, то вместо базы можно использовать протухающие дикты
Аноним 01/06/18 Птн 14:24:05 #62 №1200606 
>>1200482
это, скорее всего, возможно сделать через импорт того что тебе нужно в файле __init__.py, но как уже было упомянуто так делать относительно плохо, либо тебе следует это делать в рамках всего проекта, подробно описывая этот кейс в документации проекта
Аноним 01/06/18 Птн 15:29:54 #63 №1200670 
нужен парсер, который не только парсит, но ещё и делает всё за меня. есть идеи?
Аноним 01/06/18 Птн 15:32:49 #64 №1200673 
>>1200670
Мммммаксимум плохо сформулированный вопрос. Как будто ты уже знаешь, как делать парсеры. Если знаешь, то и конечную логику тоже уже умеешь делать, для чего тогда нужно было писать парсер?
Аноним 01/06/18 Птн 15:35:01 #65 №1200675 
>>1200673
имеется в виду, что нужно сделать парсер для сайтов, который ещё и определенные вещи делает (например, юзает определенные функции на сайтах). делать парсеры не умею.
Аноним 01/06/18 Птн 15:36:11 #66 №1200676 
>>1200675
http://selenium-python.readthedocs.io/
дальше сам
Аноним 01/06/18 Птн 15:36:36 #67 №1200677 
>>1200675
> не умею
Селениум либо bs4
Аноним 01/06/18 Птн 16:10:02 #68 №1200698 
highwayofendlessdreamsbymirroredsea-dbdrkck.png
Как подхватить ввод/вывод через subprocess, чтобы можно было.. К примеру, запустить новую виртуальную консоль с bash на борту и вводить разные команды, выводя в консоль питона?
Запускаю, пытался через stdin=subprocess.PIPE и после subprocess.Popen.stdin.write, но не выходило.
Взываю к помощи.
Аноним 01/06/18 Птн 16:12:50 #69 №1200700 
>>1200698
https://gist.github.com/waylan/2353749
Аноним 01/06/18 Птн 20:08:08 #70 №1200863 
Я тебя услышал.webm
>>1200423>>1200129
Окай. Ещё вопрос о хеше.
А читал что если класс реализует свой __eq__, нужно ещё сделать __hash__ == None чтобы не использовался дефолтный object.__hash__.
Причина мне вроде понятна:
https://docs.python.org/3/reference/datamodel.html#object.__hash__
>The only required property is that objects which compare equal have the same hash value
Но что взорвётся если этого не сделать?

>>1200423
>Твой объект может быть мьютабельным и хешируемым если хеш вычисляется из имьютабельных данных объекта, только в таком случае это уже какой-то ебнутый хеш, не представляющий все данные хешируемого объекта
Ты уверен что это плохая практика? Просто вот тут
https://www.youtube.com/watch?v=T-TwcmT6Rcw&t=2224 (37:04)
пример как раз с таким хешем, который зависит от части аттрибутов.
Только класс не полностью руками пишеться, а генерируется новым модулем Питона 3.7.
Алсо, дефолтный __hash__ тоже таким "ебанутым" является - зависит только адреса в памяти.
Аноним 01/06/18 Птн 21:09:47 #71 №1200915 
>>1200863
> нужно делать hash None
A class that overrides __eq__() and does not define __hash__() will have its __hash__() implicitly set to None. When the __hash__() method of a class is None, instances of the class will raise an appropriate TypeError when a program attempts to retrieve their hash value, and will also be correctly identified as unhashable when checking isinstance(obj, collections.Hashable).
Вкратце - если ты переопределил только __eq__, то оно само сделает hash None, это дефолтное поведение.
Аноним 02/06/18 Суб 01:19:51 #72 №1201146 
>>1200390
В одном проекте на джанге видел такое:

import threading
globals = threading.local()

Но за это могут и отпиздить.
Аноним 02/06/18 Суб 13:53:27 #73 №1201369 
Чому не робiт?

https://repl.it/repls/SuddenAnotherOrder
Аноним 02/06/18 Суб 14:28:30 #74 №1201408 
>>1201369
отбой
Аноним 02/06/18 Суб 15:05:40 #75 №1201447 
Аноны, как я могу ускорить брут форс пароля и логина к http серверу?
Аноним 02/06/18 Суб 15:20:11 #76 №1201463 
>>1201447
https://docs.python.org/3/library/threading.html
Аноним 02/06/18 Суб 15:23:03 #77 №1201468 
>>1201463
>https://docs.python.org/3/library/threading.html
У меня пароли и логины хранятся в txt файле, а file.readline(-1) тогда будет для всех n потоков. Так что это не вариант
Аноним 02/06/18 Суб 16:11:52 #78 №1201482 

>>1201468
если тебе нужно что-то ускорить ответ всегда один - asyncio, threading, multiprocessing
Аноним 02/06/18 Суб 16:27:31 #79 №1201486 
Можно как-нибудь в релтайме через subprocess получить "слепок" текущего состояния выхлопа stdout?
Аноним 02/06/18 Суб 17:35:00 #80 №1201519 
>>1201468
Дроби свое говно на файлы
Аноним 02/06/18 Суб 18:45:29 #81 №1201565 
>>1201482
Кто может вообще пояснить за эти штуки?
1) Threading, да пошел он нахуй. Ведь есть GIL, который не любит, когда работают несколько тредов. Но его можно как-то поднять, но это вообще какая-то морока ненужная. Если я захочу быстро и параллельно, я пойду и выучу Си, и перенесу эту нагруженную часть на него. реально думаю вторым языком после Пистона начать учить Си, он прикольненький, и в универе уже потрогал его за жопу, мне понравилось
Так что для ускорения моих охуенно важных скриптов threading не подходит, так что его можно делать только для асинхронного кода. Т.е. запускать треды, и пусть планировщик задач ОСи сам ебеться, когда там что запускать. Но запускать треды все равно затратно, и намного лучшего результата можно добиться с помощью asyncio. Так зачем вообще нужен этот threading?
2) mutliprocessing/subprocess. Ну это вообще пушка. Если и получится ускорить, то только если задачу можно быстро разделить на куски, и передать в процессы для долгой обработки. Иначе с теми же замками потеряешь больше скорости, чем получишь. Но зато GIL вроде не мешает если только запихнуть вызовы threading объекты\вызовы в код для mutliprocessing, и ОСь распределит все на столько ядер, сколько есть, да? Но все равно как-то кажется больше, что multiprocessing/subprocess это именно для вызова сторонних скриптов и какой-то административной работы. В плане, сделать скрипт, который будет через эти модули вызывать другие скрипты.

Есть какие-то статьи\книги успешного применения этих штук? Когда пытался решить с помощью них получал всегда худший результат, чем с помощью обычного синхронного кода. не считая написания собственного сервера, там да, threading пригодился. но опять же, в роли асинхронного дрочилы, а не ускорителя йоб
Аноним 02/06/18 Суб 21:20:36 #82 №1201698 
>>1199826
lst[-1]
lst[-2]
lst[-3]
lst[-4]
Аноним 03/06/18 Вск 00:07:19 #83 №1201761 
15255261398103.jpg
Сап программач, есть один сервер на nginx и gunicorn. Nginx слушает 80 порт, gunicorn 8000, все как у людей. Так вот, что надо написать в конфиге gunicorn, чтоб он принимал запросы только от nginx, т.е. чтоб с браузера нельзя было обратиться напрямую к gunicorn?
Аноним 03/06/18 Вск 00:30:33 #84 №1201777 
>>1201761
Netfilter (iptables, ufw, firewalls, etc.)
Аноним 03/06/18 Вск 04:28:55 #85 №1201808 
T.F.W.O.webm
>>1200915
>Вкратце - если ты переопределил только __eq__, то оно само сделает hash None, это дефолтное поведение.
Тогда я нихуя не понял вот это:
https://www.youtube.com/watch?v=T-TwcmT6Rcw&t=1507 (25:07)
Почему тут он говорит что __hash__ == None нужен?
Аноним 03/06/18 Вск 07:43:43 #86 №1201828 
>>1200392
Да, конечно на диске. Иного варианта пока не предвидится. Можно белобрыс транслировать как ts по мере скачивания, проблемы бы действительно не стояло. Вот последние пару дней занимался вновь появившимися проблемами. Неправильно составленный плейлист плохо сказывается на воспроизведении. Думал что придётся отказаться от идеи с разбивкой на мелкие Файлы, ведь ffmpeg разбивает не идеально по 10 секунд, а в местах промахов остаются пробелы размером с длину куска.
Потом уже методом тыка удалось выяснить, что если длина куска в плейлисте меньше ее фактической то это не сказывается негативно на воспроизведении. Короче ещё ворох мелких проблем. Так что более менее рабочая версия наверное будет только через неделю. Да, я у мамы не самый умный.

Как закончу все скину.
Аноним 03/06/18 Вск 11:08:37 #87 №1201860 
можно ли к фласку прикрутить асинхронность?
Аноним 03/06/18 Вск 16:47:30 #88 №1202055 
Аноны, как я могу выключить потоки, если определенная инструкция была выполнена в одном из потоков
Аноним 03/06/18 Вск 20:02:07 #89 №1202111 
>>1200590
Я с запозданием, но в классах нашел спасение. Выглядит это как глобальные переменные, просто собранные в одном месте. И удобно, и наглядно. А про глобальные я читал, да, именно такие претензии к ним я и видел.
>>1200597
Да мне просто промежуточные вычисления надо хранить было. Например один словарь, или счётчик проходов или типа того.
В общем так или иначе уже решил, пока всё устраивает. Спасибо.
Аноним 03/06/18 Вск 20:47:05 #90 №1202137 
image.png
Привет, анон. Недавно постил сюда свой скрапер для сейфбору, спрашивал у анона совета. Сейчас попробовал запустить его на винде и прогресс бары сломались. Даже через баш ничего нормально не работает. Посоветуй что-то на замену tqdm, чтобы заменить эти самые прогрессбары и на винде тоже работали, спасибо.

https://github.com/rewindosc/safebooru-scraper
Аноним 03/06/18 Вск 20:59:06 #91 №1202142 
>>1202137
Учти, что в настройках вебсервера может быть ограничение на количество открытых соединений на одного клиента. Так что если не загружается больше ~5-10 одновременно - это нормально
Аноним 03/06/18 Вск 21:01:10 #92 №1202143 
>>1202142
Там качается только один файл за раз. Это баг с прогресс барами, вместо того, чтобы обновлять одну строку, на которой должен быть прогресс бар, он с каждым обновлением печатает новую.
Аноним 03/06/18 Вск 21:03:33 #93 №1202146 
>>1202142
Хотя переписать для параллельного скачивания надо конечно, это да. Мне тут анон советовал aiohttp и asyncio для этого, вроде, если я правильно понял, конечно.
Аноним 03/06/18 Вск 21:13:50 #94 №1202152 
что не умеет питон?
Аноним 03/06/18 Вск 21:55:20 #95 №1202172 
>>1202152
Быстро итерироваться по списку.
Аноним 03/06/18 Вск 22:01:58 #96 №1202176 
>>1202172
Он быстро итерируеться по списку. Просто нужно понимать, что список != массив, и что речь идет о интерпретируемом языке.
Массив (в некоторых языках программирования также таблица, ряд, матрица) — структура данных в виде набора компонентов (элементов массива), расположенных в памяти непосредственно друг за другом

>>1202152
В микроконтроллеры, в разумное потребление памяти, в ассинхронность-как-в-GOвне, в статическую типизацию.
Аноним 03/06/18 Вск 22:07:39 #97 №1202178 
>>1202176
>В микроконтроллеры
Подключить к си.
>ассинхронность-как-в-GOвне
Лул
>в статическую типизацию
Не нужна
>в разумное потребление памяти
Это да.
Аноним 03/06/18 Вск 22:18:04 #98 №1202180 
>>1202146
Все верно, дерзай их.
Мимототанон
Аноним 03/06/18 Вск 22:29:37 #99 №1202186 
>>1202180
P.s. Твой код преобразился с прошлого раза, молодец. Но все еще есть пара моментов:
1. continue уверен что нужно?
2. Ты применил создание папки, если не создана, без использования try/except, но не везде, подумай, может еще что заменишь?
3. Опять же про коменты - ты их можешь писать ЕЩЕ больше, не переживай, лучше к очевидным вещам писать коменты, чем скупиться на них.
P.p.s. У тебя не о всех действиях программы юзер оповещается(логгирование не полное), выводи больше данных уровня INFO.
Ну и как и в прошлый раз - это все имхо, можешь хуй класть, если не согласен.
Аноним 03/06/18 Вск 23:03:53 #100 №1202201 
>>1201761
Ебани всё в контейнеры и пробрось порты только для нжинкса, например.
Аноним 03/06/18 Вск 23:10:56 #101 №1202204 
Анон, хелп, учу питон уже полгода и решил написать простой mp3 плеер. Подскажи как искать mp3 файлы в заданной директории?
Аноним 04/06/18 Пнд 00:01:10 #102 №1202232 
>>1202204
if srt.endswith()
Аноним 04/06/18 Пнд 00:01:39 #103 №1202234 
>>1202232
> srt
str
Аноним 04/06/18 Пнд 00:10:31 #104 №1202240 
1327080531796.png
>>1202176
Лист питона внутри - массив указателей на объекты.
А массив указателей - тоже массив.
Правда слово "массив" тут можно заменить "vector" (в терминах C++/Rust), т.к. лист ещё и может менять размер.
Аноним 04/06/18 Пнд 05:51:29 #105 №1202335 
Киньте плз туториал на русском или английском как деплоить приложение на чистом питоне (один файл, без фреймворков) на впс убунту+нджинкс. Везде только для джанго и фласков.

нюфаг
Аноним 04/06/18 Пнд 06:04:38 #106 №1202340 
>>1202335
>приложение
WSGI? Готовый HTTP сервер? Что за приложение?
Аноним 04/06/18 Пнд 06:05:36 #107 №1202341 
>>1202240
>массив
>vector
Это навывается https://en.wikipedia.org/wiki/Dynamic_array
Аноним 04/06/18 Пнд 06:09:47 #108 №1202342 
>>1202204
import glob
glob.glob('✱✱/✱.mp3', recursive=True)
['2.txt', 'sub/3.txt']
Аноним 04/06/18 Пнд 06:10:47 #109 №1202343 
>>1202342
Ну там выведет не .txt конечно, но код корректен. Соответственно чтобы искал в нужном каталоге нужно перед звёздочками путь прописать.
Аноним 04/06/18 Пнд 06:27:29 #110 №1202351 
>>1202152
В критичные по скорости части кода, хотя их можно переписать на си.
В многопоточность на уровне выполнения питонячего кода, хотя под это дело есть много затычек.
В многострочные лямбды, хотя можно создавать многострочную именованную функцию и возвращать её как лямбду.
В статическую типизацию и тонкий рантайм, для вебассембли не подойдёт.
В спавн множества интерпретаторов как отдельных объектов в одном процессе.
В простое встраивание как в луа.
Аноним 04/06/18 Пнд 07:51:16 #111 №1202368 
Аноны, посоветуйте код по питоновскому ооп.
Такая ситуация, сейчас работаю с бывшим джавистом, есть проект на джанге, необходимо забрать данные из базы и отдать пользователю в двух вьюхах. Функцию с отдачей данных можно реализовать либо через класс с одним методом без полей, который наследуется вьюхой или отдельной функцией. Коллега говорит, что необходимо идти первым путем, т.к. в джаве так и нельзя создать функцию без класса и лучше не мешать ооп и функциональщину, но мне кажется, что лучше пойти вторым путем, т.к. суперклассы сущности и не стоит делать их только для того, что бы создать один метод, который связан с получением данных их базы. Как быть?
Аноним 04/06/18 Пнд 07:56:13 #112 №1202374 
>>1202368
посоветуйте книги\статьи по питоновскому ооп
фикс
Аноним 04/06/18 Пнд 07:59:03 #113 №1202375 
>>1202368
суперклассы больше про сущности уровня животное-насекомое-пчелка
второй фикс
Аноним 04/06/18 Пнд 08:09:15 #114 №1202382 
>>1202368
>функциональщину
Использование функций != Функциональное программирование.
Если тебе просто последовательность отдать надо, не еби мозги напишу функцию вместо класса.
Аноним 04/06/18 Пнд 08:27:48 #115 №1202385 
>>1202172
>>1202351
тогда ГДЕ и в каких практических задачах его лучше не использовать?
Аноним 04/06/18 Пнд 08:46:00 #116 №1202394 
>>1202385
Во всех. Питон говно. Озвучь свою задачу сначала, вопрос какой-то уровня ГДЕ И В КАКИХ ЗАДАЧАХ МНЕ ЛУЧШЕ НЕ ИСПОЛЬЗОВАТЬ ОТВЁРТКУ
Аноним 04/06/18 Пнд 09:28:17 #117 №1202405 
>>1201565
Преимущество threading'а над asyncio в том, что тебе не нужно весь код переделывать под асинкио, можно просто добавить костылик с тредом в нужном месте.

>Если и получится ускорить, то только если задачу можно быстро разделить на куски
Если задача занимает значительно время, её скорее всего можно разделить.
Аноним 04/06/18 Пнд 09:37:12 #118 №1202406 
>>1202394
бэкенд под нагрузкой и асинхроность
Аноним 04/06/18 Пнд 09:50:12 #119 №1202411 
>>1202406
А тебе точно нужна асинхронность?
Какая будет нагрузка? Чем занимается приложение? Как планируешь масштабировать под эту нагрузку? Там понимаешь, чаще всего часть с питоном масштабируется легче всего. Зирокост. В отличие от БД например. Переходить с питона на что-то другое нет смысла даже если ты инстаграм. Применяй язык который просто лучше всего знаешь.
Аноним 04/06/18 Пнд 09:52:58 #120 №1202412 
>>1202411
будет казуальная игра онлайн игра
Аноним 04/06/18 Пнд 09:54:53 #121 №1202415 
>>1202412
А есть уже какие-то сомнения что питон не подойдёт? Почему собственно спрашиваешь?
Аноним 04/06/18 Пнд 10:06:11 #122 №1202421 
>>1202415
потому что для меня это новый уровень,до этого клепал сайтики и бложики.
сначала думал пхп,но там костыли
потом ява-но это монстр
остался питон и C#
Аноним 04/06/18 Пнд 10:08:07 #123 №1202423 
>>1202201
двачую, дк18ый делай все в докерах или любом другом контейнерном говне
Аноним 04/06/18 Пнд 10:09:37 #124 №1202425 
>>1201808
потому что он долбаеб, видимо. я тебе цитату из доков джанги скинул, просто почитай ее, там все ответы на твои вопросы
Аноним 04/06/18 Пнд 10:11:47 #125 №1202428 
>>1202178
> статическая типизация
> не нужна
да вы, сир, погляжу говноед
Аноним 04/06/18 Пнд 10:25:02 #126 №1202439 
Screenshot1.png
Как, блять?
Аноним 04/06/18 Пнд 10:26:08 #127 №1202440 
>>1202439
Строки сравниваются лексикографически, а ты сравниваешь именно их, а не числа
Аноним 04/06/18 Пнд 10:40:10 #128 №1202449 
>>1202440
Гм, ясно, спасибо.
Аноним 04/06/18 Пнд 10:41:28 #129 №1202451 
>>1202421
С пхп будет трудно, к примеру если захочешь вебсокеты.
Ява-C# сложнее как языки, питон проще. Нормально всё будет. Если конечно исходить из позиции что все перечисленные языки для тебя новые.
Аноним 04/06/18 Пнд 10:44:49 #130 №1202453 
>>1202451
яву и шарп знаю поверхностно,могу наклепать простые приложухи,с питоном получше,клепал сайт на джанге(не защел он мне по душе)
Аноним 04/06/18 Пнд 11:04:57 #131 №1202460 
>>1202428
А вы, я погляжу, байтоёб.
Аноним 04/06/18 Пнд 13:21:39 #132 №1202531 
>>1202460
?
Сложно, не понял.

Типизация наше все - ты же, в общем случае, не пишешь функции которые принимают рандомные типы и возвращают рандомные типы
Аноним 04/06/18 Пнд 13:29:58 #133 №1202537 
IMG0202400x400.jpg
>>1202425
Но это долбоёб который написал большую часть питоновских батареек, да и самого питона.
Аноним 04/06/18 Пнд 13:46:58 #134 №1202549 
>>1202425
доков питона*

я уже совсем ебнулся с вашей джангой
Аноним 04/06/18 Пнд 13:48:15 #135 №1202552 
>>1202537
>>1202549
хуй знает, либо он шарит больше чем доки питона, либо просто обознался или забыл, типичная ситуация
Аноним 04/06/18 Пнд 14:09:32 #136 №1202563 
>>1202552
Ну так это не только он - библиотека с кодогенерацией про которою он рассказывает - не его.
Аноним 04/06/18 Пнд 14:10:36 #137 №1202564 
Аноны, как я могу юзать random_useragent с ftp?
Аноним 04/06/18 Пнд 14:31:13 #138 №1202574 
>>1202531
>функции
Для всего серьёзного функционала есть методы.
Аноним 04/06/18 Пнд 16:54:58 #139 №1202642 
Реквестирую годных фреймворков для работы с роботехникой.
Аноним 04/06/18 Пнд 17:29:37 #140 №1202661 
в Б сказали,что ваш язык хуйня для малолетних дебилов
Аноним 04/06/18 Пнд 17:34:45 #141 №1202665 
>>1202661
Все так. А теперь уходи, малолетний дебил.
Аноним 04/06/18 Пнд 17:35:55 #142 №1202666 
>>1202665
я старый дебил
Аноним 04/06/18 Пнд 17:39:02 #143 №1202670 
>>1202666
Тогда оставайся. Таких тут много.
Аноним 04/06/18 Пнд 17:40:29 #144 №1202671 
>>1202670
я вообще из пхп треда,хотел услышать ваше мнение
Аноним 04/06/18 Пнд 19:58:15 #145 №1202804 
>>1202671
Ты пришел в тред питонистов, называя питон хуйней, а потом спрашиваешь наше мнение о нем?
Ты ожидал, что после твоего сообщение оно измениться?
Аноним 04/06/18 Пнд 20:05:10 #146 №1202809 
Двощ, помоги, нужно кое-что в 3дэ в Matplotlib отобразить, а времени вкуривать ваще нема. На выходе проги получаю около 3500 значащих точек в массиве numpy 30х30х30. Я могу отобразить их в mathplotlib? Или он меня нахуй с таким количеством пощлет? Если смогу, то как мне адекватно отображать массив rez[x,y,z]=n, где x,y,z, координаты точки, а n физ величина(в идеале ее разным цветом от величины отобразить, но пойдет и одним уже). Оси от 0 до 30.
Аноним 04/06/18 Пнд 20:05:45 #147 №1202811 
>>1202804
>в Б сказали
не я лично
Аноним 04/06/18 Пнд 20:25:23 #148 №1202831 
>>1202574
методы - функции сгруппированные в объекте, говоря функции я , очевидно, подразумеваю и методы. Так или иначе твой отклик никоим образом не контраргументирует мое высказывание - описываемые функции и методы, в общем случае, всегда работают с одними и теми же типами данных, в больших проектах без нотаций типов ты вообще сдохнешь разбираться с написанным, так что же тебе не нравится в типизации?
Аноним 04/06/18 Пнд 21:15:22 #149 №1202887 
>>1202831
То, что там, где она нужна, она есть, а в остальном она просто бессмысленна.
Аноним 04/06/18 Пнд 22:33:56 #150 №1202973 
>>1202340
Бот для телеги.
Аноним 04/06/18 Пнд 22:42:18 #151 №1202979 
>>1202973
git clone + python3 app.py
Аноним 04/06/18 Пнд 22:42:37 #152 №1202981 
Я бы еще докер прикрутил
Аноним 04/06/18 Пнд 22:43:45 #153 №1202982 
>Бот для телеги
И nginx, чтобы сертификат отдавать
Аноним 04/06/18 Пнд 22:58:42 #154 №1202995 
может быть ты уже начнёшь говорить что-то существенное?

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

А может тебе просто не нравится типизация? Может тебе просто нахуй нравится обмазываться нечитабельной жинерик хуйней и дрочить на ебливые 'NoneType object has no attr xx' каждый раз когда ты обсираешься с логикой в коде? Вместо того чтобы просто не иметь возможности обосраться НА УРОВНЕ ЯЗЫКА
Аноним 04/06/18 Пнд 23:01:28 #155 №1202997 
>>1202973
беги дружище, БЕГИ НАХУЙ ПОКА МОЖЕШЬ, ОНО СОЖРЕТ ТЕБЯ, СОЖРЕТ БЕЗ ОСТАТКА
Аноним 05/06/18 Втр 01:04:12 #156 №1203064 
>>1200390
Ебать. Вроде как словарь изменяемый тип. Просто передаешь в функцию ссылку на него и ебешь его как хочешь. Даже без return он измениться. Иди я что то не понимаю в этих ваших змеях?
Аноним 05/06/18 Втр 01:16:03 #157 №1203066 
>>1202137
ANSIсимволы не работают на <win10
На 10ке нужно задействовать эмуляцию vt100 через ctypes


Аноним 05/06/18 Втр 07:45:39 #158 №1203123 
>>1203066
ConEmu или cmder поставь
Аноним 05/06/18 Втр 08:26:22 #159 №1203129 
>>1200440
А как может быть иначе, если не юзается рандом внутри тела функции?
Аноним 05/06/18 Втр 08:28:20 #160 №1203130 
У меня вопрос риторического плана, почему я нигде не видел в контексте питоновского описания слова "метод", всегда это называется функциями, хотя существует тот же самый @staticmethod ?
Аноним 05/06/18 Втр 09:28:14 #161 №1203158 
144165988415388288.jpg
>>1203130
https://docs.python.org/3/search.html?q=method&check_keywords=yes&area=default
Аноним 05/06/18 Втр 14:23:02 #162 №1203309 
>>1201565
>Ведь есть GIL, который не любит, когда работают несколько тредов.

Если ты по-прежнему брутеш пароль веб-сервера, GIL не помешает. Ожидание ввода-вывода отпускает GIL.

Считай все логины-пароли (если их мало), сунь их в Queue и тредами оттуда потребляй.

Алсо для брутенка подойдет golang, там все искаропке.
Аноним 05/06/18 Втр 14:24:18 #163 №1203310 
>>1201761
>Так вот, что надо написать в конфиге gunicorn, чтоб он принимал запросы только от nginx, т.е. чтоб с браузера нельзя было обратиться напрямую к gunicorn?

Бинди гуникорн гогнокрон на 127.0.0.1,
Аноним 05/06/18 Втр 14:25:04 #164 №1203311 
>>1202537
Добро пожаловать в машину питон.
Аноним 05/06/18 Втр 14:27:51 #165 №1203317 
>>1202342
где таких звездочек надыбал? там еще есть?
Аноним 05/06/18 Втр 14:31:19 #166 №1203319 
>>1202661
>в Б сказали
подожди, сначала просей, что собираешь сказать, через три сита
Аноним 05/06/18 Втр 14:45:28 #167 №1203328 
.png
Поясните за пикрил плиз
Аноним 05/06/18 Втр 15:16:19 #168 №1203349 
>>1199882
Странный вопрос, какая разница под что пайчарм? Берёшь сервер активации и активируешь.
Аноним 05/06/18 Втр 15:46:44 #169 №1203367 
>>1203328
Не майся хуйней, чтобы понять что происходит тебе достаточно запринтить результаты выражений по отдельности. Инфа сотка - при делении дробная часть пускает по пизде всю эквиваленцию
Аноним 05/06/18 Втр 16:27:19 #170 №1203399 
1.png
2.png
Посоны, кто-нибудь знаком с пандой?
1. Как читать файл, в котором новый столбец начинается со строго определенной позиции? Пример на картиночке 1.
2. Как сделать то, что сделано на второй картинке? То есть разбить столбики по факторной переменной.
Аноним 05/06/18 Втр 17:01:28 #171 №1203417 
>>1203399
На первый вопрос я нашел ответ
Аноним 05/06/18 Втр 20:38:53 #172 №1203520 
>>1203367
>при делении дробная часть пускает по пизде всю эквиваленцию
Этот прав.
Дели двойным слэшом //, возвращая целую часть.
Аноним 05/06/18 Втр 20:55:25 #173 №1203527 
2018-06-05204836.jpg
У меня такое ощущение, что, чтобы выучить один PyQt5, нужно потратить столько же времени, что выучить весь Питон. Какой же он изъебистый.
Аноним 05/06/18 Втр 21:04:17 #174 №1203536 
>>1203527
Тебе весь пистон учить не нужно. Учишь основы типы, функции, а дальше думаешь чего хочешь. Если gui клепать, то тупо концентрируешься на qt. Со временем вкатываешься в нужные данные, все делай постепенно и не хватайся за все сразу. В момент опустятся руки и пропадет интерес.
Аноним 05/06/18 Втр 21:22:13 #175 №1203546 
>>1203536
Спасибо за совет. Вообще основная проблема с qt — это мало информации вне книг. В электронных книгах довольно тяжело искать нужные моменты, особенно когда хочется просто конкретный пример, подходящий под свою ситуацию.
Аноним 05/06/18 Втр 21:27:56 #176 №1203557 
>>1203546

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


Слишком толсто. Я вот помню 2003 год, как я вкатывался в веб-кодинг, верстку. Вот это правда, блядь, было не найти примеров. Сейчас открываешь доки, читаешь название функции и если данный пример не удовлетворяет тупо пишешь в гугле название функции и слово examples или, если что-то комплексное делаешь, а оно как правило имеет термин, пишешь в том же гугле название термина examples
Аноним 05/06/18 Втр 21:37:37 #177 №1203567 
>>1203129
Например если функция не чистая, то есть на результат влияют изменяемые объекты объявленные вне функции (и не передающиеся в неё). Пример - функция которая возвращала бы последний объект из глобальной базы данных проекта.
Аноним 05/06/18 Втр 21:44:03 #178 №1203573 
>>1203557
Ладно, все, все, туше.
Аноним 05/06/18 Втр 21:52:44 #179 №1203579 
>>1203129
на самом деле вот тебе даже простейший пример:

global_data = input('Enter data')

def non_idempotent_return_given_str(given_str):
if global_data == 'random text':
return 'WoPs'
return given_str

def idempotent_return_given_str(given_str):
return given_str
Аноним 05/06/18 Втр 21:53:29 #180 №1203580 
>>1203579
уух сука отступы
Аноним 06/06/18 Срд 00:32:27 #181 №1203665 
>>1203579
да пох на отступы. Я хоть понял что такое чистая/не чистая функция. Спасибо!
Аноним 06/06/18 Срд 05:43:27 #182 №1203746 
По тредингу вопрос.

Желание:
1. Пул тредов
2. Возможность удобного ожидания завершения всех запущенных задач
3. Выкидывание эксепшнов, случившихся внутри выполняемой в треде функции, а не молчаливое проглатывание и завершение работы
4. Пункт 2 без закрытия пула

Пробовал multiprocessing.dummy.Pool, но он не подходит под пункты 3 и 4
ThreadPoolExecutor не подходит под пункт 2, нет .join()'а, надо ебаться с Future'ами (мне оно не надо, у меня в тредах заполняются переданные туда списки, спасибо GIL'у). (Не знаю, что с п.3, не пробовал, но п.2 гораздо важнее.)

Что-то ещё есть? Свой, конечно, можно за 5 минут написать, но это как-то, лень.
Аноним 06/06/18 Срд 06:00:27 #183 №1203750 
>>1203328
Чтобы выполнилось используй fractions.
Аноним 06/06/18 Срд 06:04:06 #184 №1203751 
>>1203746
>мне оно не надо, у меня в тредах заполняются переданные туда списки, спасибо GIL'у
Я нихуя не понял. Тебе как раз оно и надо.
https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-example
Аноним 06/06/18 Срд 09:40:39 #185 №1203796 
>>1203746
возможно тебе подойдет asyncio, вроде под все пункты проходит
Аноним 06/06/18 Срд 11:47:05 #186 №1203876 
>>1203746
попробуй асинхронный пул тредов
Аноним 06/06/18 Срд 13:04:19 #187 №1203910 
>>1203746
попробуй асинхронный блокчейн на свёрточных сетях
Аноним 06/06/18 Срд 16:27:30 #188 №1204000 
>>1203567

>>1203579

Без учёта глобальных функций очевидно, лично я считаю, что global сродни goto в си, то бишь чморить за это надо
Аноним 06/06/18 Срд 16:28:38 #189 №1204002 
>>1204000
>глобальных переменных
фикс
Аноним 06/06/18 Срд 16:39:33 #190 №1204010 
>>1203158
Хорошо, возможно я просто заметил это в паре мест и мозг сгенерировал ошибочное суждение о том, что это тенденция
а все нормальные кейсы на автомате потреблялись
Аноним 06/06/18 Срд 20:23:49 #191 №1204216 
>>1204000
>что global сродни goto в си
Схуяли?
Аноним 06/06/18 Срд 21:25:31 #192 №1204247 
Требуется отсортировать текст по количеству уникальных слов в тексте.

Как правильно понять?
1. Вывести только уникальные
2. Вывести уникальные, затем потовторяющиеся по возрастанию
Аноним 06/06/18 Срд 21:41:42 #193 №1204253 
>>1200390
Добавлю, что лакмусовой бумажкой того, хорошая у тебя архитектура или хуевая, является вот такой тест: есть ли возможность запустить, остановить и запустить снова все твое приложение целиком в том же самом процессе?

Если да - ты молодец, контролируешь все свои данные, все делаешь правильно и у тебя скорее всего нигде нет утечек ресурсов.

Если нет - то тобi пизда, тiкай с городу.
Аноним 06/06/18 Срд 21:47:36 #194 №1204254 
>>1203751
>Я нихуя не понял.
https://repl.it/repls/BowedDeepskyblueMemory

>Тебе как раз оно и надо.
С future'ами мне придётся из воркера возвращать как данные, так и их "тип", чтобы в нужный контейнер запихнуть. С одной стороны, может быть удобнее и правильнее, а с другой — надо переделывать уже имеющийся код тогда, который, как обычно, плавно из синхронного разрастался и костылями обростал, перенося логику из одного места в другое.

>>1203876
?

>>1203796
Под асинкио слишком много менять
Аноним 07/06/18 Чтв 00:00:26 #195 №1204356 
>>1204247
Так легко же. Выведи все слова в список, в нижний регистр и проверяй на наличие в списке уникальных.
Аноним 07/06/18 Чтв 00:02:24 #196 №1204357 
>>1204253
Всмысле? Если процесс закроется, то всё, конец. Только если бэкап данных делать, как ворд или хром.
Аноним 07/06/18 Чтв 01:40:12 #197 №1204380 
>>1204254
>удобнее и правильнее
Таки да, возвращай значение и имя контейнера куда сложить.
Аноним 07/06/18 Чтв 03:08:43 #198 №1204399 
>>1202564
>random_useragent
Что это?
Аноним 07/06/18 Чтв 07:38:45 #199 №1204427 
>>1204356
А потом выводить все, или сначало уникальные, а потом повторяющиеся
Аноним 07/06/18 Чтв 07:41:36 #200 №1204429 
>>1204427
Точнее выводить только уникальные? или все вместе по возрастанию
Аноним 07/06/18 Чтв 07:55:13 #201 №1204434 
>>1204247
Counter
Аноним 07/06/18 Чтв 08:18:49 #202 №1204437 
>>1204434
То есть вывести сначало уникальные, потом повторяющиеся?
Аноним 07/06/18 Чтв 08:33:35 #203 №1204441 
>>1204437
from collections import Counter

text = 'AA A BB A AAA BB BB BB'
my_counter = Counter(text.split())
print(sorted(my_counter.items(), key=lambda x: x[1]))
Аноним 07/06/18 Чтв 08:44:15 #204 №1204448 
>>1204441
>from collections import Counter
>
>text = 'AA A BB A AAA BB BB BB'
>my_counter = Counter(text.split())
>print(sorted(my_counter.items(), key=lambda x: x[1]))
Спасибо. Мне было важно понять задание
Аноним 07/06/18 Чтв 09:54:31 #205 №1204466 
Короче анон! Такой вот вопрос!
Есть файл mp4 в интернете, на сервере который поддерживает partial download.
Как с помощью питонуса загрузить начать загрузку с конкретного момента видео по времени, как это делается в веб плеерах? Типа как тыкнул на таймлайн, он оттуда и начал грузить. Подскажи, а?
Аноним 07/06/18 Чтв 10:04:28 #206 №1204471 
>>1204466
Для partial download нужно знать байтовые смещения.
Байтовые смещения вероятно пишутся в самом контейнере.
Попробуй просто напрямую открыть файл прямо из веба плеером, скорее всего справится.
Аноним 07/06/18 Чтв 10:17:22 #207 №1204480 
>>1204466
https://stackoverflow.com/questions/18912368/how-to-find-byte-offset-in-mp4-file-from-timecode-or-framenumber

Но вообще, если нужно только посмотреть, то запускай из браузера. Если нужно скачать, то используй ffmpeg. Костыли в питоне нинужны, разве что для спортивного интереса.
Аноним 07/06/18 Чтв 10:39:34 #208 №1204496 
>>1204471
Да, мне не хватает знания матчасти, именно по медиа контенту и из-за этого я испытываю очень большие трудности. Если есть что подкинуть почитать, буду признателен.
Но вообще в том и проблема, что я делаю костыль. я тут уже неоднократно ныл о плагине kodi.
Очень кратко: на сервере серия разбита на 2-5 частей, но не в виде ts или mpeg2, а в виде mp4 со своей metadata, а плеер на сайте уже объединяет их сам.
Задача: Передать в kodi стрим\файл этой серии так, будто это один файл\стрим с единым таймлайном.
Решение: с помощью благородного анона здесь было решено поднять промежуточный сервер и с помощью ffmpeg на лету разбивать эти mp4 части на ещё меньшие сегменты .ts и стримить их по плейлисту m3u8.
Проблема в решении: Чтобы перемотать этот стрим, приходится ждать загрузки всего файла до того момента, куда хочешь перемотать.

Вот я и решил, что если я буду передавать ffmpeg только нужный кусок, загруженный через питон, а он "на лету" будет его переделывать в .ts и отправлять в kodi.

Но после твоего сообщения, мне подумалось, что это можно сделать прямиком из ffmpeg, типа загрузить кусок с определённым временем. И сейчас у меня аж ладошки вспотели от предвкушения твоего следующего ответа.
Так можно?
Странно, что раньше я не додумался загуглить об этом.
Аноним 07/06/18 Чтв 10:41:09 #209 №1204497 
>>1204496
Вот думаю какой же я конченный мудак, пиросто пиздец. Почему я не додумался, это же ебать просто банально, логично, и то, что должно прийти на ум в первый момент. Пиздоссссссссссс!
Аноним 07/06/18 Чтв 10:42:26 #210 №1204500 
>>1204497
Век живи - век учись
Все нормально
Аноним 07/06/18 Чтв 13:34:29 #211 №1204627 
Screenshot (175).png
Как же заебала эта ебаная мразь.
Аноним 07/06/18 Чтв 15:59:59 #212 №1204780 
Я инженер на scala, раньше работал на жабе. Друг планирует идти на курсы по питону, хочу ему помочь. Дайте плиз какой-то короткий, но максимум содержательный гуиде по питону, типа - "вот так объявляется ф-ция, вот так класс, вот дженерики, вот работа с конкарент средой и т п", не хочу смотреть по 30 минут, где поясняется, что такое переменная.
Язык лучше английский
Аноним 07/06/18 Чтв 16:23:23 #213 №1204805 
python.jpg
>>1204780
docs.python.org
Аноним 07/06/18 Чтв 16:23:58 #214 №1204806 
Котаны, привет. Я вкатывальщик в питон, вкатываюсь в JS.
Язык нравится, хотя конечно от js отличается.
Дополз до лямбд в "Изучаем питон" Лутца. И испытал некоторую фрустрацию - относительно JS как то ограниченно. Больше всего меня смутило что в питоне лямбда - может содержать онли одно выражение. Это прям так? Никаких ветвлений, циклов, объявлений в лямбде функций и их вызовов нельзя? В JS в анонимной функции хоть по потолку ходи.
Аноним 07/06/18 Чтв 16:24:50 #215 №1204807 
>>1204806
>>вкатываюсь в JS.
Вкатываюсь c JS
самофикс
Аноним 07/06/18 Чтв 16:25:31 #216 №1204808 
>>1204806
Да, это так. Indentation based syntax не позволяет сделать иначе. Делай обычный def с именем и возвращай его.
Аноним 07/06/18 Чтв 16:41:48 #217 №1204823 
>>1204808
Пиздец, какие же все языкодизайнеры из гугла недалекие уебки.

мимо
Аноним 07/06/18 Чтв 16:52:39 #218 №1204831 
>>1204823
Гвидо в местном универе делал питоны, не в гугле.
Аноним 07/06/18 Чтв 17:08:24 #219 №1204851 
>>1204831
Я имел в виду, что если языкодизайнера захайрил гугол, то он (с вероятностью 95%) недалекий уебок.
Аноним 07/06/18 Чтв 17:27:40 #220 №1204860 
>>1204823
Это больше в философию языка зашито
Явное лучше чем неявное, разряженное лучше, чем плотное и т.д.
Аноним 07/06/18 Чтв 18:50:46 #221 №1204891 
>>1204806
Представляю, какой ебанутый зоопарк городят уебки из этого.
Аноним 07/06/18 Чтв 19:52:22 #222 №1204972 
>>1204860
>Это больше в философию языка зашито
Что "это"?
Аноним 07/06/18 Чтв 20:07:14 #223 №1204981 
>>1204972
Лямбды без выебонов это.
Аноним 07/06/18 Чтв 20:52:04 #224 №1205015 
>>1200392
В общем я очень сильно наговнокодил с этим разбиванием, и оказалось это слишком сложно, но пока говнокодил пришли ещё пару идей.

Но сразу к самому важному:
Если в исходном файле что ты бросил удалить из хидеров размер файла, то в vlc и в kodi он будет воспроизводиться по мере загрузки, т.е. сразу :3. Т.е. мне можно было с минимальными правками уже пользоваться твоим кодом, который отрабатывает на все 100.
Аноним 07/06/18 Чтв 20:54:00 #225 №1205017 
>>1204806
Если в функции нужно больше пары действий, то лямбдой ей быть не нужно. Это в ЖСе из-за нативной асинхронности и вытекающих из этого коллбеков промисы-хуёмисы, суть одна есть постоянная необходимость в лямбдах при вызове, ведь иначе объявление функции было бы просто лишним кодом. В Питоне же это нужно очень редко. Для подавляющего большинства sort'ов и map'ов функционала лямбды хватает. Да и "стилистически" анонимная функция посреди кода не к месту была бы. Но однострочные if'ы так-то сущесвуют.
Ты бы, может, показал, для чего именно тебе не хватает лямбд в питоне, не пытаясь при этом писать в стиле ЖСа?

>>1204823
Недалёкий уёбок тут, всё же, скорее ты, который не может принять, что существуют разные подходы к решению задач.
Аноним 07/06/18 Чтв 20:59:41 #226 №1205021 
>>1205017
>НИНУЖНО
Аноним 07/06/18 Чтв 21:22:35 #227 №1205032 
>>1205017
>ненужно
>только выиграли
Ты не из го-треда сюда пришел случаем?

Гвидо просто обосрался с синтаксисом, потому что изначально задизайнил его нерасширяемым, а когда потом понадобилось добавить новую функциональность, оказалось, что ради этого придется городить адские костыли; в итоге он сказал, что это СЛОЖНА и забил. А ответ один - безблагодатность дилетантизм.

>But the complexity of any proposed solution for this puzzle is immense, to me: it requires the parser (or more precisely, the lexer) to be able to switch back and forth between indent-sensitive and indent-insensitive modes, keeping a stack of previous modes and indentation level.

Вложенные выражения в ast-дереве - это у них "puzzle", ну охуеть рокет сайенс.
Аноним 07/06/18 Чтв 23:20:26 #228 №1205122 
TeGU5TtXtMA.jpg
По какой программе лучше всего изучать питон? Полистал луца, прочитал Укус Питона, похеловордил, попытался в сокеты, но не смог разобраться уже на сложных примерах и взялся за "Думать на языке Python"...

прочитал первые 40 страниц, и вроде все тоже, все это знаю и тут выдаётся упражнение "постройте такую то такую то конструкцию диаграммы, необходимые знания у вас уже есть. Подумайте как" и вот я ломал голову и так и не сообразил как воплотить имеющийся рисунок в код. Потом у него пошли цикл Фебонначи, рекурсия с ходу с лёту и подобный матан.

Посоветуйте как дальше учить? Наиболее продуктивную программу, дабы дальнейший материал куда легче усваивался
Аноним 07/06/18 Чтв 23:32:06 #229 №1205133 
>>1205122
http://www-inst.eecs.berkeley.edu/~cs61a/sp12/
http://www-inst.eecs.berkeley.edu/~cs61a/sp12/book/
http://composingprograms.com/

Протип: тебе не пайтон надо учить, а программирование.
Аноним 07/06/18 Чтв 23:36:03 #230 №1205141 
>>1205133
>Протип: тебе не пайтон надо учить, а программирование.

sicp изучаю, Sheme нравится, но в продакшене не шеме, не CL не нужны. А жить на что-то надо. Приходится совмещать
Аноним 07/06/18 Чтв 23:39:57 #231 №1205143 
>>1205141
Ну хуево значит изучаешь, раз у тебя проблемы с рекурсией и числами Фибоначчи (это задачки для школьников как бы), изучай лучше. Если жить на что-то надо, то устройся курьером, заодно и мозг от физических нагрузок будет лучше работать.
Аноним 07/06/18 Чтв 23:43:33 #232 №1205150 
>>1205143
sicp только начал изучать используя то шеме, то питон

у меня проблемы не с самим матаном, а с нетривиальной реализации задач на нем. Как те же диаграммы с использованием чисел Фибоначи
Аноним 07/06/18 Чтв 23:46:25 #233 №1205153 
>>1205021
Как ни странно да. Это реально нинужно. Я готов разменять многострочные лямбды на отсутствие десятков end.
>>1205032
В том-то и дело, что выражения ты можешь городить хоть на сотню строк. А вот операторы нет.
>>1204851
Каждому своё: гуглу миллиарды долларов, тебе особенное мнение в дизайне языков. Тут понимаешь какая история, всё не потому что Гвидо от балды такскозал, никакой философии нет, много людей это хотели, предлагали разные варианты, но все эти варианты оказались плохими.
Аноним 07/06/18 Чтв 23:52:42 #234 №1205158 
Обычный Питон компилируясь в exe тащит с собой и интерпретатор

Cython - просо представляет из себя обычный Си фаил, т.е в сотню раз меньшего размера? Тащить туда интерпретатор не нужно?
Аноним 07/06/18 Чтв 23:52:42 #235 №1205159 
>>1205122
Поменьше застревай в разных апи. Уметь пользоваться апи и знать язык это ортогональные вещи. То есть чтобы начать писать на сокетах нужно знать сокеты, а не питон. Там ещё учти много всего ебанутого в этих сокетах, так как их проектировали ещё в засратом году под засратую сишечку, они не идиоматичны питону. Попробуй для начала файлы читать-писать, делать CLI приложения на argparse, всякие такие мелочёвочки пописать вроде конвертера из азбуки морзе и обратно.
Аноним 07/06/18 Чтв 23:54:06 #236 №1205161 
>>1205158
Там тоже интерпретатор тащится. Далеко не весь код типизируется и превращается в сишечный, только твой модуль.
Аноним 07/06/18 Чтв 23:56:14 #237 №1205162 
>>1205159
отыскиваю на гите учебные программы, но знание английского не позволяет использовать пособия и курсы(в данный момент усиленно изучаю англ)

Мне советовали "Приложения на Python3 и Qt5" хорошенько изучить и раздел "сокеты" у Луца


Аноним 07/06/18 Чтв 23:57:04 #238 №1205163 
>>1205161
бля... шо делать, с интерпретатором весит шо пиздец. И никаких решений нету? Почему за столько лет не сделали нормальный компилятор в ту же сишку?
Аноним 08/06/18 Птн 00:02:35 #239 №1205165 
>>1205163
Ты уже через всё скомпилировал и всё равно весит много?
Аноним 08/06/18 Птн 00:06:08 #240 №1205170 
>>1205162
Qt и сокеты это сложно. Я предупредил.
>>1205163
Ты вообще как себе это представляешь? Питон не компилируемый язык, в нём вообще не предусмотрено ничего такого что позволило бы собирать ассемблерный код. Начиная от типов данных, заканчивая порядком эвалюации, где сплошь и повсюду строковые лукапы по имени переменной. Откуда вы все такие приходите, что вам кровь из носа надо всё в экзешки воткнуть? Нахуя? Я уже давно как-то рассказывал как это делать идиоматично, но адепты pyinstaller'а меня тут хуями обложили. Тебе нужна отдельная dll с интерпретатором и тонкая экзешка в которой собственно только запуск интерпретатора и полезный байткод. Собственно задача тогда сделать import loader прямо из ресурсов экзешки и всё. Только так оно будет минимально весить.

Вообще ещё такой момент, что твой "вес" не учитывает предустановленных компонентов системы. Посмотри сколько образы в докере весят и как жёстко их обрезают чтобы достичь к примеру 10мб. Для работы программ тебе нужны всякие здоровенные libc, всякие рантаймы, и собственно интерпретатор питона который там далеко не самое большое. Если в твоей ОС питон предустановлен, "вес" будет считанные килобайты.
Аноним 08/06/18 Птн 00:06:52 #241 №1205171 
изображение.png
>>1205165
не, если с чем ни будь весомым сшивать, то незаметно

а так 7 мб довольно весомо выделяется
Аноним 08/06/18 Птн 00:17:20 #242 №1205177 
>>1205171
ой я от усталости уже косячу.

примерно 17 уже в запакованном виде

Аноним 08/06/18 Птн 07:02:29 #243 №1205229 
>>1205170
>Откуда вы все такие приходите, что вам кровь из носа надо всё в экзешки воткнуть? Нахуя?
Ну, вот я такой красивый прихожу в свой отдел тестирования и выкладываю на стол заебательскую прогу (скрипт), которая по щелчку мгновенно прокликивает все формы регистрации и прочую шелупонь. Все в восторге от меня и хотят так же. Гораздо проще это говно раскидать между коллегами в виде экзешника, а не заставлять всех ставить питон и накатывать каждому все требуемые сторонние модули.
Аноним 08/06/18 Птн 07:46:09 #244 №1205232 
>>1205229
почему бы не поставлять все в архиве вместе с самим питоном? Написал батник типа
python.exe govno.py
чтобы тетя срака из бугалтерии могла по двойному клику запускать
Аноним 08/06/18 Птн 08:02:15 #245 №1205235 
>>1205021
>>1205032
Так вы примерчики хоть сколько-то частого питоньего кода-то покажете, где прям так нужны сложные лямбды, а рядом стоящий def всё портит? Нет, я серьёзно. Разумеется, хорошо, когда язык поддерживает всё, но я уверен, будь такая возможность, куча кретином лепили бы этим лямбды направо и налево, лишь бы сэкономить одну строку отсутствием def'а, усложняя при этом восприятие кода.
Аноним 08/06/18 Птн 09:51:31 #246 №1205255 
>>1204806
> относительно js как-то ограничено
лол что
Ты ведь понимаешь что лямбды сами по себе подразумеваются как короткие выражения? Типа - это не в питоне лямбды хуевые, это ваш жс ебанутый на голову, в следствии чего вам приходится использовать лямбды как обычные функции.
Аноним 08/06/18 Птн 10:26:44 #247 №1205270 
>>1205235
Не улавливаю сути срача. Я дополз до лямбд, спросил, видимо ты мне ответил, все разъяснил - и я воспринял лямбды в питоне как данность. И в голове что круче JS или Python крутить не стал. Я и в JS то не профи.
Мне например понравилось как организованны типы данных и работа с ними в питоне. Замыкания - почти тоже самое, просто переменные требуют объявления в global и nonlocal.
Преобразование типов, я хз как сказать, в питоне не динамическое, что принимается вполне.
До ООП еще не дошел. Но надеюсь что он будет лаконичнее и проще чем в JS с прототипным наследованием и вечное еботой с this. Хотя конечно JS этой поебенью и красив. И с другой стороны сами обьекты в JS проще - в JS обьект это то что в питоне зовется словарь, с виду. Но по факту объект в питоне это что то иное. А словарь arr - просто ассоицированный массив. К нему в стиле arr.prop = 1 (как в JS) - ничего не добавить. Думаю глава про ООП мне все раскроет.
По итогу - доволен тем что изучаю питон - это возможность по другому взглянуть на привычные вопросы. Что полезно.
И конечно отступ-стиль - это ахуенно.
>>1204806 - кун

Аноним 08/06/18 Птн 10:29:29 #248 №1205271 
>>1205255
>это ваш жс ебанутый на голову, в следствии чего вам приходится
Он у нас "особенный". Как уже выше один анон написал - асинхронность. В коллбеке может быть заключена вообще вся логика какого либо события.
Аноним 08/06/18 Птн 11:04:52 #249 №1205304 
Объясните мне сакральный смысл конструкции try else, ведь блок else можно просто поставить после блока try, может я чего-то не знаю?
Аноним 08/06/18 Птн 11:07:06 #250 №1205305 
>>1205304
после блока try без еlse
фикс
Аноним 08/06/18 Птн 11:12:58 #251 №1205313 
В чём разница между ctypes.cdll.LoadLibrary() и ctypes.CDLL()?
Аноним 08/06/18 Птн 11:52:21 #252 №1205342 
>>1205229
.msi файл, который устанавливает и ярлычок на рабочий стол делает.
Аноним 08/06/18 Птн 11:54:38 #253 №1205345 
>>1205304
Ограничение области кода, где ты ожидаешь исключение. Из блока try нужно выйти максимально быстро, не задерживаться.
Аноним 08/06/18 Птн 12:01:16 #254 №1205350 
Анон, нужен асинхронный самый простой сервер.
Задача простая:
Если первый запрос - запускается процесс отправки файла
Если во время отправки файла второй запрос - убивается первый процесс, и отправляется другой файл.

Отправка файла блокирует simpleHTTP
Нужна совместимость с 2 и 3 питоном.
Аноним 08/06/18 Птн 12:10:37 #255 №1205356 
>>1205350
Окей, вопрос другой. Может ли фласк отправлять стримы не блокируясь при этом?
Аноним 08/06/18 Птн 12:10:45 #256 №1205357 
>>1205350
очевидный nginx очевиден
Аноним 08/06/18 Птн 12:18:15 #257 №1205363 
>>1205270
>Не улавливаю сути срача
Да к тебе-то претензий и нет. Я ghjcnj объяснил, почему в ЖСе нужны/полезны такие развёрнутые лямбды, а в питоне почти нет мест для их применения. Но тут набижали гринтекстеры с нинужно.

>>1205304
Потому что блок после try будет выполняться всегда (при условии, конечно, что экспешн не выпал или был обработан), а в else только если исключений не выпадало.
https://stackoverflow.com/questions/855759/python-try-else вот тут все 4 ветки описаны.
Аноним 08/06/18 Птн 12:21:28 #258 №1205367 
>>1205270
Объекты в пайтоне это тоже словари
Аноним 08/06/18 Птн 12:33:24 #259 №1205381 
>>1205367
Не всегда. С помощью slots внутреннее представление меняется на namedtuple.
Аноним 08/06/18 Птн 12:37:39 #260 №1205386 
>>1205313
>There are several ways to load shared libraries into the Python process. One way is to instantiate one of the following classes ... CDLL ...
>Shared libraries can also be loaded by using one of the prefabricated objects
>These prefabricated library loaders are available ... ctypes.cdll
Нет разницы.
Аноним 08/06/18 Птн 12:39:13 #261 №1205388 
>>1205350
Зачем так сложно? Почему клиент не может просто оборвать соединение при скачивании файла?
Аноним 08/06/18 Птн 16:02:30 #262 №1205541 
>>1205153
>Я готов разменять многострочные лямбды на отсутствие десятков end.
Потому что ты долбоеб, лол. Нормальные люди имеют и то, и другое.

>выражения ты можешь городить хоть на сотню строк. А вот операторы нет
Почитай в гугле, что такое "выражения" и "операторы", долбоеб. И не пиши мне больше.
Аноним 08/06/18 Птн 16:05:12 #263 №1205544 
>>1205388
Думаю, что с очень высокой вероятностью сделать это будет крайне геморройно. Ограничения окружения-с.
>>1205357
Я пробежал одним глазом что это, и для моей задачи в сотню строк это слишком лихо.
Аноним 08/06/18 Птн 16:15:44 #264 №1205554 
>>1205235
>нинужны
>а покажи пример
Гуманитарии от программирования, ну куда вы лезете? Речь идет о принципиальном логическом flaw в дизайне языка. Нормальный человек с рациональным мышлением сказал бы: "ну да, говно, облажались" и пошел бы дальше кодить свое опердени. Но гуманитарии продолжают пытаться оправдать принципиальную нерасширяемость системы тем, что НИНУЖНО ЖИ. Это пиздец как глупо, анон. Вот представь, что тебе говорят: "html - не регулярный язык, его принципиально нельзя распарсить регекспами", на что ты отвечаешь: "да не, я парсил, все норм, и вообще если твой чтмл регескпами не парсится, то он какой-то сложный, перепиши его". Та же история тут.

>лишь бы сэкономить одну строку отсутствием def'а
Банальнейший пример: тебе нужно быстренько вставить debug print, чтобы посчитать и посмотреть какую-то производную от передающихся в нее параметров. Вместо этого тебе надо перехерачивать это в def, а потом обратно.

Но опять же, речь не про частные случаи, а про объективный недостаток в дизайне языка, который проектировали хипсторы. Я не понимаю, зачем спорить с фактами.
Аноним 08/06/18 Птн 16:18:02 #265 №1205557 
>>1204981
7ue
Аноним 08/06/18 Птн 16:23:41 #266 №1205565 
>>1205544
> для моей задачи в сотню строк это слишком лихо.
В голосину.
Что тебя там не устроило? Бери и не выёбывайся.
Аноним 08/06/18 Птн 16:24:51 #267 №1205567 
>>1205554
>производную
маняматика ненужна
Аноним 08/06/18 Птн 16:25:04 #268 №1205568 
>>1205367
Словари в питоне тоже объекты тащемта.
Аноним 08/06/18 Птн 16:58:10 #269 №1205614 
>>1205554
>Я не понимаю, зачем спорить с фактами.
С какими фактами? Что в питоне "урезанные" лямбды? С этим не спорят. Спорят с тем, что это какой-то серьёзный недостаток.

>речь не про частные случаи
Ну как же не про частные, как раз про них. Если "большие" лямбды негде в питоне часто использовать, то есть их отстутствие не сказывается на эффективности кода, то они и правда не нужны. Разве это не логично?
>"ну да, говно, облажались"
В каждом языке чего-то да не хватает, и что ж, все вокруг облажались? Ну это бредовая какая-то точка зрения, мне кажется.

>посчитать и посмотреть какую-то производную от передающихся в нее параметров.
Нихуя не понял, кого "неё", какая производная? Чем debug_print(derivative(val)) не подходит? Или ты от руки функцию расчёта производной пишешь?
>а потом обратно.
Куда обратно?

Покажи лучше просто код в нормальном языке.
Аноним 08/06/18 Птн 16:59:33 #270 №1205615 
>>1205614
>val
expr или func, в смысле.
Аноним 08/06/18 Птн 17:02:44 #271 №1205621 
>>1205541
>Нормальные люди имеют и то, и другое.
Если не end, то скобочки, какая разница-то, суть одна.
Аноним 08/06/18 Птн 17:21:55 #272 №1205642 
1495643721001.png
>>1205568
Сколько будет 0.3 - 0.2 - 0.1 ? Быстра отвечай, в интерактивную строку не подглядывать!
Аноним 08/06/18 Птн 17:43:01 #273 №1205666 
Парни, есть ли алиас методы в шитоне?
Аноним 08/06/18 Птн 17:43:40 #274 №1205667 
>>1205642
0.0004563946 конечно же
Аноним 08/06/18 Птн 17:53:01 #275 №1205678 
>>1205614
>Что в питоне "урезанные" лямбды?
Скорее с тем, что создатель пайтона облажался и запилил нерасширяемый синтаксис, из-за которого теперь приходится городить костыли (см. предыдущий пост). Алсо, напомнить, что python3 обратно несовместим со вторым? Симптомы той же болезни.

>Разве это не логично?
Перечитай мой предыдущий пост, там я уже дал пояснения на этот счет.

>В каждом языке чего-то да не хватает
Речь не об отсутствии фичи, а о сломанности имеющейся фичи. Опять же, см. предыдущий пост.

>Или ты от руки функцию расчёта производной пишешь?
Я думал >>1205567 троллит тупостью, но походу нет, лол. Тебе надо посчитать какое-то производное значение (так понятнее?) от передающихся в лямбду параметров. Ты этого не можешь сделать, тебе нужно объявлять для этого отдельную функцию, как ты и написал. Блядь, ну представь, что тебе нужно вернуть из функции a+b и для дебага временно вывести на печать a×b.

>Куда обратно?
Не тупи.

>Покажи лучше просто код в нормальном языке.
Какой код тебе показать? autism.png
Аноним 08/06/18 Птн 17:54:54 #276 №1205684 
>>1205621
Ну в тех же хаскелях с окамлами и эфшарпами нет ни end, ни скобочек. Развивай кругозор, анон. Алсо, в х-ле как раз indentation based синтаксис.
Аноним 08/06/18 Птн 19:31:44 #277 №1205846 
>>1205678
>там я уже дал пояснения на этот счет.
Нет, этого ты не пояснил. С "нерасширяемостью", пожалуй, вынужден согласиться, перечитав ещё раз. А вот с необходимостью этого расширения-таки не совсем. Ты не согласен с утверждением, что если (почти) негде использовать, то нинужно? Как те же генераторы всюду впихнули, убрав xrange.


>>1205684
>с окамлами и эфшарпами, хаскелль
Ну функциональщину-то зачем сюда тянуть, там совсем всё по-другому же. Ну и я погуглил: всё равно скобки (которые "()") ставят, или какие-то странные ;; в окамле.


>Я думал >>1205567 троллит тупостью
Ты просто сформулировать предложение не можешь нормально, похоже. Какое ещё производное значение.
Типа, есть labmda x,y: x+y, а ты хочешь сделать lambda x,y: print(x*y), return x+y?
Из первого описания этого ну никак не понять, правда. Юзкейс оче странный, но ладно, и правда фигня выходит.

>Какой код тебе показать?
Ну, как это в языке с нормальными лямбдами было сделано. Но уже не надо, если выше я правильно понял тебя.
Аноним 08/06/18 Птн 20:11:07 #278 №1205868 
>>1205541
Это такая новая мода или я что-то пропустил? Говорить нарочно ахинею, но с выражением будто изрекаешь вечную всем известную истину. И обязательно сыпать названиями умственных отклонений. Раньше это называлось полемика, потом толстый троллинг, сейчас как?
Аноним 08/06/18 Птн 20:29:12 #279 №1205882 
>>1205846
>А вот с необходимостью этого расширения-таки не совсем.
Так фишка с расширяемостью как раз в том, что ты не знаешь, что и где тебе в будущем придется расширить - в противном случае ты бы просто сразу сделал так, как надо, и никакая расширяемость была бы не нужна. Но реальный мир так не работает, время течет в одном направлении, энтропия увеличивается и т.п.

>Ты не согласен с утверждением, что если (почти) негде использовать, то нинужно?
>почти
Отвечу встречным вопросом: ты согласен с утверждением, что если, например, в многопоточной системе иногда (то есть почти никогда) возникает баг с конкурентным доступом к расшаренной памяти, то можно считать, что никакого бага нет и чинить его нинужно? Ну вот и здесь то же самое.

>всё равно скобки (которые "()") ставят, или какие-то странные ;; в окамле.
Эм, в пайтоне как бы тоже скобки для вызова функций ставят, привет. Просто тут f(x) и f(g(x)), а там - f x и f (g x). Точки с запятой в окамле нужны по сути только для репла - обычно объявления функций верхнего уровня отделяются пустой строкой, странный ;; - это как раз ее синоним. Ни к лямбдам, ни к вложенным выражениям это отношения не имеет, разумеется.

>Какое ещё производное значение.
Мы есть учить русский языка: https://dic.academic.ru/dic.nsf/ushakov/982378/%D0%9F%D0%A0%D0%9E%D0%98%D0%97%D0%92%D0%9E%D0%94%D0%9D%D0%AB%D0%99

>Типа, есть
Да, именно.

>Ну, как это в языке с нормальными лямбдами было сделано.
Ну лямбды даже в джаве уже есть, а обсуждаемое ограничение существует только в сабже. Так что я все еще немного не понимаю вопроса, это в любом языке нормально сделано. Ну и проблема, еще раз подчеркну, не в лямбдах. Если же ты спрашивал конкретно про то, как сделать нормальный indentation based syntax, то да, выше я х-ль уже привел в пример (https://en.wikibooks.org/wiki/Haskell/Indentation).
Аноним 08/06/18 Птн 20:33:57 #280 №1205887 
>>1205868
Ты походу внутриутробное развитие пропустил, долбоеб. Иди матчасть учи и не пиши мне больше, слабоумный.
Аноним 08/06/18 Птн 20:43:41 #281 №1205894 
>>1205887
Ого какой самонадеянный идиот. С чего ты решил что я тебе пишу, олигофрен? Хотя смысл спрашивать долбоёба? Зачем ты мне пишешь вообще, имбецил?
Аноним 08/06/18 Птн 21:35:20 #282 №1205922 
>>1205882
>Мы есть учить русский языка
Ну и что ты скинул? Никто не называет a+b производным значением от аргументов функции f(a,b). Ну либо я чего-то не понимаю, но имено в таком значении, как ты применил, никогда не встречалось. Уж по крайней мере в программировании, императивном. Разве что это у вас, функциональщиков, такие термины.

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

>Эм, в пайтоне как бы тоже скобки для вызова функций ставят,
Не для вызова, а для объявления этой многострочной лямбды/анонимной функции. https://stackoverflow.com/questions/814278/how-to-do-multiline-lambda-expressions-in-f Либо эти скобки в примере были от вызова фукнции и лямбду присвоить "переменной" которые в ф-шарпе константы фактически нельзя?
Аноним 08/06/18 Птн 21:37:21 #283 №1205925 
image.png
Привет, анон. А можно как-нибудь нажимать кнопочки на страничке, через юрллиб?

Допустил, на странице есть кнопка, которая подгружает ещё одну страничку с данными, есть ли возможность нажать её через скрипт?
Аноним 08/06/18 Птн 21:39:33 #284 №1205929 
>>1205925
Она загружает и добавляет данные на эту же страничку.
Аноним 08/06/18 Птн 21:48:35 #285 №1205937 
1.jpg
2.jpg
Господа любители Qt и просто знатоки ООП, есть вопрос, который я не могу нагуглить. Понемногу осваиваюсь во всем этом безобразии, но некоторые моменты вводят в ступор.
Как связать две функции в пределах одного класса (а возможно, и между классами)?
На первом скриншоте вы можете видеть простенький код, который по идее должен по нажатию на кнопку менять текст лейбла.
На втором - вызов диалога "Да/Нет": жму на "Да" - и должен высветиться еще один диалог с текстом "Успех!"

Но, разумеется, ожидаемое не происходит. Проблемы, по всей видимости, в строках 24 и 29 (для скринов 1 и 2 соответственно). Программа ругается, что такая-то функция не определена. И я не понимаю, как сделать так, чтобы функция понималась.
Если я заменю строку 24 на print('Wow'), то в консоли все прекрасно выведется. То есть проблема не в том, что функции вынесены под разные def'ы и не видят друг друга, проблема в правильном написании строки, которая сидит во второй функции.
Аноним 08/06/18 Птн 21:58:00 #286 №1205942 
>>1205937
Хотя во втором случае я какую-то хуйню написал с ошибками, забейте на нее, там надо просто под else добавить этот новый MessageBox, не вынося в отдельную функцию.
Но с первым вопрос точно насущный.
Аноним 08/06/18 Птн 23:12:07 #287 №1206009 
>>1199534 (OP)
Делайте новый, только картинки нормальные прикрепите, не повторяйтесь
Аноним 08/06/18 Птн 23:17:44 #288 №1206012 
>>1206009
>Пропущено 283 постов
>Делайте новый
Ты в порядке?
Аноним 08/06/18 Птн 23:27:51 #289 №1206017 
>>1205922
>Разве что это у вас, функциональщиков, такие термины.
Анон, ты какой-то аутизм разводишь, лол. При чем тут функциональщики и программирование?
>образованный от другой, простейшей или основной величины
>Производная величина. Слово "паровой" - производное от "пар".
a+b (a-b, a×b, да что угодно) - производная величина от а и от б. Давай в треде русского языкá в /fl продолжим эту нить обсуждения.

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

>Либо эти скобки
Не, смотри. В ML-языках (а также в лиспах, в большинстве форматов описания данных типа json'а и даже в русском языке (пример - то предложение, которое ты сейчас читаешь)) скобки используются для группировки выражений. В си-стайл языках нужны отдельные скобки для вызова функции (круглые) и отдельные скобки для группировки (фигурные). А здесь вызов функции записывается просто через пробел: f x - а круглые скобки используются для группировки выражений. То есть без разницы, f (g x) там у тебя или f (x -> ...много-кода-здесь...), например - они просто группируют выражения вместе. Соответственно фигурные скобки освобождаются для dict\record литералов. Надеюсь, понятно объяснил.
Аноним 08/06/18 Птн 23:30:49 #290 №1206022 
>>1205937
https://docs.python.org/2/tutorial/classes.html#class-objects и далее
Аноним 09/06/18 Суб 08:00:51 #291 №1206113 
Могу поделится вопросами на собеседования на мидла, вчера успешно прошел первый собес, в понедельник будет второй

Про общее
1) Рассказать про протокол http, да и вообще по сетевому взаимодействию погоняли
2) Какие бывают способы межпроцессорное взаимодействия
3) Что такое ленивые квантификаторы в регулярках
4) Куки, для чего могут использоваться, какими свойствами обладают
5) Погоняли по особенностям постгреса

Про питон (я удивился, но это было достаточно просто, хотя требовали глубоких знаний)
1) Типы данных в питоне, типизиция, какие есть реализации (видимо, это что бы доказать, что я не верблюд)
2) Генераторы, корутины
3) Что такое словари, рассказать про реализацию (из этого плавно перетекли в хешируемость объектов)
4) aoihttp, async
Аноним 09/06/18 Суб 09:17:03 #292 №1206121 
>>1199882
Vim, emacs. Но если ты ебан, то что пичарм мешает поставить?
Аноним 09/06/18 Суб 11:43:58 #293 №1206180 
>>1206113
> ленивые квантификаторы в регулярках
нихуя себе

Кто-то ещё пользуется регулярными выражениями больше чем для определения простых паттернов? Это же пиздец не читаемо
Аноним 09/06/18 Суб 11:45:28 #294 №1206182 
>>1199882
micro наше все, единственный нормальный терминальный редактор, а не это ваше гавно из прошлого века уровня vim
Аноним 09/06/18 Суб 11:45:38 #295 №1206183 
>>1206180
Возможно это один из тех вопросов, которые задают только на собесах, а в жизни ими никогда не пользуются
Аноним 09/06/18 Суб 12:11:15 #296 №1206190 
Анон, у меня есть скрипт, и если этот скрипт запущен мне нужно запускать сервер вместе с этим скриптом, а если процесс завершается, естественно чтоб и сервер вырубался. Как это сделать. Ньюфаг, пока ещё не знаю, хотя задача кажется одной из базовых.
Сервер будет параллельной задачей, если что.
Аноним 09/06/18 Суб 12:18:40 #297 №1206198 
>>1206180
А что сейчас вместо регулярок юзается?
Аноним 09/06/18 Суб 12:57:15 #298 №1206215 
>>1206198
парсер-комбинаторы
Аноним 09/06/18 Суб 14:22:49 #299 №1206265 
>>1206022
Вообще не помогло. Ни одного примера, как у меня, а собственные попытки на основе того, что есть, ни к чему не приводят.
Аноним 09/06/18 Суб 16:58:22 #300 №1206406 
>>1206113
удачи в понедельник анончик!
Аноним 09/06/18 Суб 17:50:25 #301 №1206464 
>>1206190
Если линукс - гугли сигналы.
Аноним 09/06/18 Суб 18:23:02 #302 №1206516 
>>1206113
>3) Что такое ленивые квантификаторы в регулярках
Ты им хоть морду набил, этим собеседователям?
Аноним 09/06/18 Суб 19:05:11 #303 №1206563 
>>1206516
Я не ебу зачем ему это понадобилось, они билинговые системы пишут. Возможно это из-за того, что я про парсеры написал в резюме. Хотя странно, что он про dom-деревья в таком случае не спросил.
Аноним 09/06/18 Суб 19:07:48 #304 №1206568 
>>1206563
Или вилку сбить надо ему, так как я дохуя запросил
Но тут релокация из моей текущей дыры, хоть тушкой, хоть чучелом
Аноним 10/06/18 Вск 02:07:12 #305 №1206858 
>>1206113
1) Ну хуй знает. Это когда один компьютер говорит другому 'POST PIDOR' или 'GET YOBA PAGE'. В общем то, с помощью чего работают все сайты, и многие не сайты.
2) Сокеты, общие файлы и PIPE'ы.
3) Это квантификаторы, после которых стоит ?. Работают так: сначала ленивое хуйло игнорируется вообще, если нет матча, делается n шагов назад и пробуют использовать ленивого 1 раз, если снова нет матча, то снова n шагов назад, и уже 2 раза используют, и так пока не будет совпадение, или кто-то нахуй не пойдет.
4) Ну печеньки, которые лежат на стороне клиента. Приложение может попросить клиента оставить их у себя, или потребовать их от него. Используются для сохранения состояний между сессиями. Типа уже набранной покупательской корзины, уже залогиненного пользователя, уже набранного черновика письма и иди нахуй. Главное не сувать в них что-то важное т.к. они могут проебаться, или не быть созданными вообще, если они могут быть отключены у пользователя.
5) Его намного сложнее запустить чем тот же MySQL с его Notifier'ом. А ещё PgAdmin после 5 минут работы начинает так пидорасить, что лучше в консольке теребить.

Питон:
1) Что блять? Какая типизация? Динамическая, duck typing. В крутых и сложных проектах вроде сейчас используют typing который позволяет указать, какой тип ожидается-возвращается, чтобы не запутаться. Охуенная вещь.
2) Это функции, в которых есть yield, который является дыркой во внешний мир. Можно таким образом получать промежуточные значения, а потом с помощью .send() ещё отправлять что-то в функцию. Генераторами удобно делать __iter__(). А корутины я кроме упоминания в книге Саммерфильда не видел, кому они вообще нужны. Сейчас же все используют asyncio.
3)бля
4)бля

Ну че, как мне стать Джуном уже?
Аноним 10/06/18 Вск 02:30:54 #306 №1206866 
>>1206858
Мы вам перезвоним.
Аноним 10/06/18 Вск 10:46:26 #307 №1206924 
>>1206858
>А корутины я кроме упоминания в книге Саммерфильда не видел, кому они вообще нужны. Сейчас же все используют asyncio.
Учитывая, что async функции это корутины, а это основы асинхронного питона тебе бы действительно перезвонили

А по факту, если знаешь джангу, то можешь уже джуном вкатится
Аноним 10/06/18 Вск 12:16:48 #308 №1206946 
В регулярку можно значение переменной передать? Как на пистоне это реализовать?
Аноним 10/06/18 Вск 12:26:58 #309 №1206950 
>>1206946
Что ты хочешь получить в итоге?
Ты хочешь сделать динамический паттерн? Гугли String.format()
Аноним 10/06/18 Вск 14:15:23 #310 №1207028 
Написал парсер сайта и историями про говно и еблю
Посмотрите пожалуйста код, я сильно долбоеб?

https://pastebin.com/wpZryEEY
https://pastebin.com/wpZryEEY
https://pastebin.com/wpZryEEY
Аноним 10/06/18 Вск 14:30:38 #311 №1207046 
>>1206924
Где это в asyncio корутины? Ты пишешь обычные функции, а потом select над ними, даже нигде yield не используешь
Аноним 10/06/18 Вск 14:30:40 #312 №1207047 
image.png
Аноним 10/06/18 Вск 14:36:13 #313 №1207052 
>>1207046
Coroutines used with asyncio may be implemented using the async def statement, or by using generators. The async def type of coroutine was added in Python 3.5, and is recommended if there is no need to support older Python versions.
Аноним 10/06/18 Вск 14:42:27 #314 №1207057 
>>1207028
1. Подумай над 40 строкой кода.
2. Коменты/док-стринги где?
3. Выполнение функции `get_story_data` переделай в асинхронном режиме.
p.s. а так, вполне себе неплохо, и организация кода и переменные/функции(только вот `write`/`time` я бы заменил на что-то иное, к примеру `time`-`creating_datetime`, а ф-цию `write`-`save_in_file`)
Аноним 10/06/18 Вск 15:00:30 #315 №1207067 
Ананы, вот я выучил основы основ Питона, а что дальше? На предполагаемой работе от меня никто не потребует заниматься мини-играми уровня /преобразуйте строку в виде ЗаБоРчИкА или /напишите скрипт, чтобы такая-то папка распаковывалась и копировалась на рабочий стол.
Вот, например, что приходит в голову: создать интерфейс программы, чтобы в ней была кнопочка "Отправить отчет об ошибке", и такой отчет бы отправлялся на конкретную почту. То есть интерфейс я создать бы смог, но ведь нельзя просто так отправить кусок введенного текста на почту. Нужно придумать, что будет выступать в виде отправителя (в таких же штуках никто не просит указать почту пользователя, отчет автоматом уходит куда надо), возможно, какой-то мини-сервер, который бы собирал письма и скриншоты, приложенные к ним.
Вот вы пишете тут про парсеры. Выше там кто-то создавал видеотранслятор со встроенным кодеком.
Где можно обучиться таким вещам, как создание подобных систем и программ?
Аноним 10/06/18 Вск 16:41:08 #316 №1207150 
>>1207067
> Где можно обучиться таким вещам
Ебать как завернул-то.
Вот как делаю я(это ИМХО): разбиваю задачу на мелкие части, записываю всё на бумажку(при сложной схеме ещё и нарисовать могу) и начинаю думать над реализацией конкретных подзадач.
Вот давай возьму твой "Отправитель ошибок" и попробую показать.
Программа какая? Веб/десктоп? К чему эта программа привязывается (встроена в уже готовый интерфейс) или это отдельный модуль для сбора ошибок? Куда должны приходить отчёты? Точно ли они нам нужны на почте? Или может лучше запустить серверное приложение и на него отправлять отчёт, а затем складировать в БД?
Это вот первое что приходит на ум.
То же самое и с реализацией. Предположим что это отдельная прога на десктопе. Тогда я бы взял PyQt/Tkinter для GUI, передачу по сети сделал бы при помощи aiohttp. На серверной стороне накатил бы nginx c gunicorn/uwsgi и supervisor(но лучше всё же поебаться немного и в docker всё завернуть), потом на выбор flask/aiohttp(т.к. задача небольшая), в качестве БД заюзал бы postgresql.
Аноним 10/06/18 Вск 16:44:53 #317 №1207152 
>>1199534 (OP)
Нужно формировать запросы на SOAP-сервис. Запросы не очень простые. Какую библиотеку взять для этого? Zeep? Есть примеры?
Аноним 10/06/18 Вск 18:56:02 #318 №1207252 
>>1207150
Неплохо расписал, спасибо.
Аноним 10/06/18 Вск 20:09:38 #319 №1207311 
На работе приходится делать проект на Питоне, где-то 2-3 тысячи строк объемом.

Сука, насколько же дегенеративные эти интерпретируемые языки. Программирование превращается в отлов ошибок в коде во время выполнения. Какой же это пиздец когда твоя программма падает после часа работы из-за опечатки в коде.
Аноним 10/06/18 Вск 20:22:57 #320 №1207325 
>>1207311
Про линтеры, тесты, CI и вообще культуру разработки мсье, очевидно, не слышал.
Аноним 10/06/18 Вск 20:23:18 #321 №1207326 
>>1207311

Ю Н И Т Т Е С Т Ы
Н
И
Т
Т
Е
С
Т
Ы
Аноним 10/06/18 Вск 20:31:36 #322 №1207333 
>>1207311
> твоя программма падает после часа работы из-за опечатки в коде
> опечатки в коде
Пишешь код в nano?
Аноним 10/06/18 Вск 20:49:54 #323 №1207354 
>>1207252
Не за что, обращайся.
Можешь задавать свои вопросы, по архитектуре ПО в тред, анон тебе ответит.
Аноним 10/06/18 Вск 21:24:21 #324 №1207392 
image.png
Если я сейчас читаю книгу Лутца 4изд. Изучаем Питон.
Где он пишет на питоне 3.0, попутно вспоминая как было на питоне 2.6 . У меня есть шанс обосраться когда я приступлю к практике на новом питоне 3.6?
Ну всмысле, на новых версиях питона меняются коренным образом какие то основные команды и принципы?
Аноним 10/06/18 Вск 21:37:45 #325 №1207397 
>>1207392
Changelog почитаешь в разницах между версиями и все. Тебе главное концепцию и философию понять.
Аноним 10/06/18 Вск 21:38:48 #326 №1207399 
09piivf7g4u01.png
>>1207311
Могло быть и хуже.
Аноним 10/06/18 Вск 21:38:54 #327 №1207400 
>>1199534 (OP)
сап пистонисты, что я делаю не так ? покритикуйте код, может я его слишком усложняю ? Вот калькулятор с применением лямбд и функционального программирования
```
a = input()
ops = {
'+' : lambda x, y: x + y ,
'-' : lambda x, y: x - y ,
'/' : lambda x, y: x / y ,
'' : lambda x, y: x y ,
'^' : lambda x, y: x y ,
}

a = list(a)
print(ops[a[a.index(' ')+1]](float(''.join(a[:a.index(' ')])), float(''.join(a[a.index(' ')+3:]))))
```
норм ли писать вот такие длинные штуки как >print(ops[a[a.index(' ')+1]](float(''.join(a[:a.index(' ')])), float(''.join(a[a.index(' ')+3:]))))
или лучше упрощать ?
Аноним 10/06/18 Вск 21:39:51 #328 №1207404 
>>1207400
a = input()
ops = {
'+' : lambda x, y: x + y ,
'-' : lambda x, y: x - y ,
'/' : lambda x, y: x / y ,
'' : lambda x, y: x y ,
'^' : lambda x, y: x y ,
}

a = list(a)
print(ops[a[a.index(' ')+1]](float(''.join(a[:a.index(' ')])), float(''.join(a[a.index(' ')+3:]))))
чето хуево отобразилось, абу пидор
Аноним 10/06/18 Вск 21:40:09 #329 №1207405 
>>1207404
сука все равно хуево, ща
Аноним 10/06/18 Вск 21:40:20 #330 №1207406 
>>1207397
>философию понять
Че ее понимать-то?
import this
Аноним 10/06/18 Вск 21:42:28 #331 №1207410 
>>1207404
a = input()
ops = {
'+' : lambda x, y: x + y ,
'-' : lambda x, y: x - y ,
'/' : lambda x, y: x / y ,
'' : lambda x, y: x y ,
'^' : lambda x, y: x y ,
}
если ща не заработает, то я эбал эту маленькую обезянку
Аноним 10/06/18 Вск 21:45:53 #332 №1207416 
>>1207397
А такого не может быть, что бы например всю структуру поменяли у функций или массивов?
Например вызвать функцию будет print() а сделают его print-""- ?

Конечное философию знать хорошо, но многое же приходиться заучивать? Ты же должен например просто знать что функция вызывается такими символами, а не другими ?
Аноним 10/06/18 Вск 21:49:19 #333 №1207420 
>>1207400
>что я делаю не так ?
Пастишь код в тред, а не на пастебин.

>или лучше упрощать ?
Вообще какой-то адский нечитабельный говнокод с магическими цифрами.
Аноним 10/06/18 Вск 21:49:50 #334 №1207421 
Блин фигню несу походу :3

>>1207397
А где можно этот ченджлог почитать на счет изменений между 3.0 версией и 3.6?
Аноним 10/06/18 Вск 22:08:07 #335 №1207439 
>>1207406
Хах, если бы все так просто было.

>>1207416
Могут. И плавно перетекаем к следующим вопросам. Ответ на которые будет и дополненым ответым к первому. Когда начинаешь учить язык тебе не нужно на памчть заучивать функции. Тебе главное ознакомиться с тем, что есть функционал. Используй IDE и не забивай голову синтаксисом. В ином случае читай доки на сайте питона, там очень удобные changelogs.

>>1207421
https://docs.python.org/3/whatsnew/changelog.html
Аноним 10/06/18 Вск 22:19:28 #336 №1207445 
>>1207325
чего уж там, сразу напиши "нормальные разработчики пишут код без ошибок"

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

>>1207326
Суть в том, что в питоне ты тратишь время на отлов проблем, которые в нормальных языках детектятся при компиляции.

>>1207333
в PyCharm пишу. Что-то она отлавливает, но большинство проблем всплывает только в рантайме.
Аноним 10/06/18 Вск 22:20:48 #337 №1207446 
>>1207445
>нормальные разработчики пишут код без ошибок
Так и есть, согласен с тобой.
Аноним 10/06/18 Вск 22:28:50 #338 №1207457 
>>1207445
Нормальные разработчики не ищут час опечатку, лол.
Аноним 10/06/18 Вск 22:36:33 #339 №1207459 
>>1207457
Ты понял вообще, что я написал? Запускаешь процесс, он работает час, доходит до места с опечаткой, падает.
Аноним 10/06/18 Вск 22:37:30 #340 №1207460 
>>1207439
>Когда начинаешь учить язык тебе не нужно на памчть заучивать функции

А что нужно?
Можно на примере функий или классов обьяснить? Что нужно знать по этим темам
Аноним 10/06/18 Вск 22:57:36 #341 №1207477 
>>1207459
Ну? На поиск опечатки тебе понадобился час, а у нормальных людей нет опечаток тесты ловят подобную хрень сразу же.
Аноним 10/06/18 Вск 23:04:13 #342 №1207484 
>>1207460
Ты меня не понял. Я имел ввиду, что закчивать прям вот сразу с первого прочтения не самая лучшая идея. Прочитал, повторил написать в IDE, потом возвращаемся спустя какое-то время и уже стараешься выучить, но лично я полагаюсь на IDE и запоминаю только то, что есть некая функция, которая выполняет нечто нужное. Потом в поиске по документации ищу или в intellisense листаю подсказки.
Аноним 10/06/18 Вск 23:15:52 #343 №1207494 
>>1207484
Аааа все, понял. Спасибо.
>intellisense
А это где?
Аноним 10/06/18 Вск 23:31:26 #344 №1207500 
>>1207494
В pycharm вызывается ctrl+пробел
Аноним 11/06/18 Пнд 10:07:41 #345 №1207592 
>>1207500
Спасибо
Аноним 11/06/18 Пнд 10:47:59 #346 №1207600 
>>1207057
>Выполнение функции `get_story_data` переделай в асинхронном режиме
Асинхронный режим это многопоточность? Я искал в гугле весь вечер что это такое и так нихуя не понял
Аноним 11/06/18 Пнд 13:23:32 #347 №1207661 
>>1199534 (OP)
Написал например модуль с функциями. Делаю импорт в другом модуле. Пытаюсь вызвать функции, или обратится к объектам класса - и ide\редактор их не видит. Т.е мне приходится гадать или лезть в модуль чтобы узнать что передать в качестве аргументов.

Проблема и в пайчарме и в атоме.

ЧЯДНТ?
Аноним 11/06/18 Пнд 13:49:58 #348 №1207672 
Как в регулярках указать то, мол, "если этот кусок строки соответвует шаблону, то остальную часть строки захватывать"
Пример:
Test_1=449496767646
И, если есть "Тест_любоеЧисло", то все остальное захватывать с предыдущим.
Пример строк:
Тест_1=44984913425
Тест_2=4848675
Тест
Тест_3=4849
На выходе должно быть все, кроме строки "Тест".
Аноним 11/06/18 Пнд 15:26:59 #349 №1207711 
>>1207672
Lookahead/behind, захватываешь обычной группой.
Аноним 11/06/18 Пнд 15:31:21 #350 №1207713 
>>1207672
>>1207711
Хотя в твоем случае можно и без луков.
тест_\d=(.)/i
В коде забираешь первую группу из совпадений.
Аноним 11/06/18 Пнд 15:37:51 #351 №1207718 
>>1207711
>>1207713
Благодарю!
Аноним 11/06/18 Пнд 16:06:41 #352 №1207735 
>>1207713
Подскажи, почему
Test_\d*=\w:\\\\\s(.ЗЗ) пропускает
Test_4=G:\
?
ЗЗ - знак звездочки
Аноним 11/06/18 Пнд 16:09:31 #353 №1207737 
>>1207735
> Test_\d=\w:\\\\\s(.ЗЗ)
Все, я даун, исправил на
Test_\d=\w:\\\\\s(\S.ЗЗ)
Хотя все равно не догнал расстановку шаблонов в скобках
Пойду дальше листать доки
Аноним 11/06/18 Пнд 16:10:51 #354 №1207739 
>>1207737
Кляти двачи, всё поломали
Аноним 11/06/18 Пнд 16:58:10 #355 №1207762 
Суп анончек. Есть один сайт с видео, и видео эти каким-то хуем разбиты. То есть в ответе сервера пишет 206 Partial Content, но когда пытаюсь загрузить в питоне, то он скачивает только часть, даже wget'ом не могу полностью скачать. Соединение постоянно сбрасывается после очередного "куска". Хотя ссылка одна.
Вот например первая серия аниме Steins Gate
http://very.big-sword.ml/route/?m=3030778&r=6513f94b54bd4a687d1f412d984120510374825f255a81b3d38e08ac593175e4b543fad6a3b3e1f98e90415580b0d0d58148aefaa9c5b3a25b162703ba652a8b717940481dbe0cef50ae19389e5455b618f3cfee8f6d7789174ff92750b9ab0e
Если качать wget'ом то скачиваются только первые 10мб.
Аноним 11/06/18 Пнд 17:00:50 #356 №1207767 
>>1207762
Собственно вопрос в том, как это скачать через питон одним куском.
Аноним 11/06/18 Пнд 17:07:23 #357 №1207772 
>>1207762
Вот именно по этому на собеседованиях спрашивают, как устроен HTTP
Аноним 11/06/18 Пнд 17:14:23 #358 №1207779 
>>1207772
Да чё ты, я несколько месяцев назад только начал. Лучше подскажи что почитать и в чем проблема. Думаю если бы это не было проблемой то wget с этим справился бы.
Аноним 11/06/18 Пнд 17:24:12 #359 №1207790 
>>1207779
https://ru.wikipedia.org/wiki/HTTP#%D0%94%D0%BE%D0%BA%D0%B0%D1%87%D0%BA%D0%B0_%D0%B8_%D1%84%D1%80%D0%B0%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%BD%D0%BE%D0%B5_%D1%81%D0%BA%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

Поищи либы, которые всё за тебя делают. Ты же на питоне пишешь!
Аноним 11/06/18 Пнд 17:27:24 #360 №1207794 
>>1207790
SPASIBO
Аноним 11/06/18 Пнд 17:31:21 #361 №1207802 
>>1205937
Памахите, а. Ну пожалйста. Как переименовать лейбел по клику?
Аноним 11/06/18 Пнд 17:34:17 #362 №1207803 
>>1207794
Да не за что, я сам в этом дубовый. Не факт, что я что-то верно сказал.
Особенно, если wget не справляется, который, в отличии от курла, таки предназначен для загрузки больших файлов.
Скорее всего нужно читать про тот плеер, который используется на сайте
Аноним 11/06/18 Пнд 19:01:46 #363 №1207864 
>>1207600
> Асинхронный режим это многопоточность
Нет, асинхронность это асинхронность.
Я имел ввиду заменить вот твоё в цикле`for story in stories_links:` на создание списка с задачами и затем его асинхронно выполнять.
Что-то типа такого:
> http://qaru.site/questions/161504/asyncioensurefuture-vs-baseeventloopcreatetask-vs-simple-coroutine
Можешь конечно и по потокам/процесса развести, через `Pool` дело уже твоё.
Аноним 11/06/18 Пнд 19:03:35 #364 №1207865 
Аноны, есть идеи как запилить счётчик уникальных просмотров страницы? И для залогиненных юзеров и для анонимусов.
Django 2, python 3.6
Аноним 11/06/18 Пнд 19:04:03 #365 №1207867 
Ребятки, пишу лабу знакомому на ЗМЕЕ, и язык для меня новый.
Пока курил, в чём может быть ошибка, узнал, что если функция возвращает, более одного значения, то она возвращает кортеж, исходя из похожих ошибок на стаке, но у меня не функция, а оператор, и в чём ошибка, я не могу понять.
Прилагаю код:
https://pastebin.com/pqVcRmVh
Текст ошибки:
Traceback (most recent call last):
File "z4.py", line 12, in <module>
b_mult = b_mult ((b_value - 1,5) + b_value a_summ)
TypeError: can only concatenate tuple (not "int") to tuple
------------------
(program exited with code: 1)
Аноним 11/06/18 Пнд 19:11:47 #366 №1207880 
>>1207867
> 1,5
> ,
Аноним 11/06/18 Пнд 19:13:59 #367 №1207885 
>>1207880
>Пописал себе на лицо
Такой я мудак криворукий, пиздец. Добра тебе анон.
Аноним 11/06/18 Пнд 20:41:02 #368 №1207953 
1.png
2.png
Добрый анон, ищу твоей помощи.
В общем, мне нужно достать заголовок вакансии с сайта-Х, но я банально не понимаю, что мне нужно прописать, чтобы получить не 'title', а, положим 'Менеджер'.
(Нет, на стаке не нашел)
Аноним 11/06/18 Пнд 20:43:50 #369 №1207956 
>>1207953
titles[0].text
Аноним 11/06/18 Пнд 23:32:23 #370 №1208045 
Парни хелп. Как сделать общение между двух или трёх программах?
Короче один py у меня эмулирует работу котла(мощность и температура носителя) второй py у меня эмулирует температуру за окном и в доме. И третий py у меня это термостат для котла. Вот его отлаживать чтобы нужно чтобы эти 3 модели общались друг с другом. Термостат дает команды котлу. Котел меняет мощность и температуру носителя. Соответственно меняется температура в модели дома.
Не знаю может хуйню написал но в одну программу эту все пихать не буду. Годно именно разделение так как процессы которые идут внутри каждой одновременные.
Аноним 12/06/18 Втр 01:39:21 #371 №1208086 
>>1208045
>Как сделать общение между двух или трёх программах?
между двумя или тремя программами блять

>в одну программу эту все пихать не буду
пихай блять

А вообще выборы: общий файл, сокеты, пайпы.
Аноним 12/06/18 Втр 01:49:16 #372 №1208088 
>>1208086
> пихай блять
И как это выглядеть будет? Через что реализовывать?
мимодругойанон
Аноним 12/06/18 Втр 02:01:32 #373 №1208091 
Анончий, наверное часто спрашивали уже, но где искать вакансии на джуна? На ХХ унылая параша, в которой питон либо в «Хорошо бы знать еще и его», либо ебаные эйчары ставят «без опыта», а в тексте вакансии пишут «от 45 лет опыта».
Аноним 12/06/18 Втр 02:49:27 #374 №1208104 
>>1208091
Заведи профиль на Linkedin и там ищи, а, ну и на github`e, желательно, могут код глянуть перед собесом техническим.
Аноним 12/06/18 Втр 09:39:37 #375 №1208159 
>>1208088
>И как это выглядеть будет?
Файл с расширением py
>Через что реализовывать?
Через классы Это обман, чтобы набрать классы
Аноним 12/06/18 Втр 10:21:04 #376 №1208175 
>>1208159
Я серьезно. Как он реализует работу трех этих устройств?
Я себе это представляю лишь в виде 3 параллельно запущенных процессов и обмен инфой между ними через то, что написал выше.
Аноним 12/06/18 Втр 10:24:22 #377 №1208177 
>>1207661
Ап
Аноним 12/06/18 Втр 10:28:14 #378 №1208180 
>>1207661
Ничего, это норм. У меня раз через раз в пайчарме так работает. Иногда норм все видит, а иногда начинает тупить.
Аноним 12/06/18 Втр 10:40:29 #379 №1208192 
>>1208091
Апплайся на вакансии, в которых есть требования 1-2 года опыта, в сопроводительном письме пиши, что опыта у тебя нет вообще, но ты дома реализовал парочку пет-проектов. Прокатит в одном из двадцати случаев, да ещё и вилку зарплатную может снизить, но я именно так работу и нашёл.
Аноним 12/06/18 Втр 11:36:55 #380 №1208226 
>>1208180
>Ничего, это норм
Я просто долбаеб. У меня папка с модулями. Я их пытался импортить. Нужно было из них сделать пакет, добавив init.
Аноним 12/06/18 Втр 12:35:17 #381 №1208268 
>>1208175
Пусть напишет четвертый, который будет импортртировать эти три и запускать их
Аноним 12/06/18 Втр 15:07:36 #382 №1208345 
Как прекратить выполнение re.search() при первом совпадении, если оно сидит в цикле, в котором есть сторонние задачи?
Аноним 12/06/18 Втр 15:24:14 #383 №1208360 
Господа, поясните, почему это не работает?
a = [1,2,3]
for item in a:
item += 1
И как это сделать правильно?
Аноним 12/06/18 Втр 15:42:16 #384 №1208382 
>>1208345
Запилил настолько ужасный костыль, что становится плохо только от одного взгляда на него, хоть и работает.
Вопрос все еще актуален.
Аноним 12/06/18 Втр 15:58:06 #385 №1208400 
>>1208360
У тебя item - это отдельная область в памяти, созданная в момент исполнения "for ...". Можно обойти это либо копированием массива, либо так:

for i, _ in enumerate(a):
a += 1
Аноним 12/06/18 Втр 16:00:30 #386 №1208401 
>>1208400
фикс: a += 1
Аноним 12/06/18 Втр 16:01:03 #387 №1208403 
>>1208401
блядская макаба
a [] +=1
Аноним 12/06/18 Втр 16:01:30 #388 №1208404 
>>1208403
ДА СУКА! короче, там i в скобках
Аноним 12/06/18 Втр 17:11:52 #389 №1208443 
Почаны, чем можно нагенерировать 100500 статичных html-страничек по довольно объемному темплейту?
Аноним 12/06/18 Втр 17:32:59 #390 №1208453 
>>1208443
Питоном
Аноним 12/06/18 Втр 18:01:36 #391 №1208484 
>>1208453
Спасибо.
Аноним 12/06/18 Втр 18:16:52 #392 №1208497 
>>1208484
Лучше, чем Stack Overflow.
Аноним 12/06/18 Втр 18:42:42 #393 №1208515 
>>1208443
Не сталкивался, но слышал, что существует Jinja для этих целей.
Аноним 12/06/18 Втр 18:56:44 #394 №1208526 
Как же горит, что нет православного цикла for...
Аноним 12/06/18 Втр 18:58:42 #395 №1208528 
>>1199534 (OP)
Привет пайтончане, у меня к вам обращение просьбе о помощи, есть такой код суть в чем , библиотека pyFPDF и файл с текстом(много текста) и надо весь этот текст перевести в пдф , но я не понимаю как сделать так что бы новые страницы добавлялись по мере надобности , мб кто встречался с такой проблемой
https://pastebin.com/rM2xX9Fv
Аноним 12/06/18 Втр 19:00:08 #396 №1208530 
Есть тут знатоки mp4? Подскажи, анон!
Вот например есть видеофайл на сервере. Сервер выдаёт чанки по 10мб. Как устроены плееры на жабаскрипте и как они с этим работают, а также как работают в принципе веб плееры я не знаю но если анончик у тебя есть предложить что почитать на эту тему, буду благодарен.
В общем, например у меня есть доступ к хидерам mp4 файла с таймингами и прочим, и чанк из рандомного места в 10 мб.
Есть ли возможность сделать из этого чанка хоть что-то, чтобы смогло воспроизвестись средним плеером? (вообще, подразумеваю формат ts).
Хотя чувствую, что без чтения докуменации по mp4 и ts не обойтись никак.
Аноним 12/06/18 Втр 19:02:39 #397 №1208531 
>>1208530
ffmpeg не предлагать, потому что когда я указываю ссылку на этот файл, после первого чанка в 10мб он крашится, мол не найден следующий сегмент. Загрузку файла осуществил через requests и хидеры byte-range, но допустим если мне надо перемотать в режиме онлайн, я же не смогу просто скачать с рандомного места и воспроизвести(переслать плееру) это.
Аноним 12/06/18 Втр 19:09:57 #398 №1208537 
>>1208515
Да, жинжа вроде подходит, спасибо.
Аноним 12/06/18 Втр 19:32:56 #399 №1208548 
Как сделать обратный for?
Аноним 12/06/18 Втр 19:36:00 #400 №1208550 
15185218713680.jpg
>Stack Overflow is currently offline for maintenance

Аноним 12/06/18 Втр 19:40:19 #401 №1208552 
>>1208548
for i in a[::-1]
Аноним 12/06/18 Втр 19:41:20 #402 №1208553 
>>1208552
Вот питонисты TOOPEEJE.
Аноним 12/06/18 Втр 22:18:13 #403 №1208652 
1231231.png
Предположим, я осуществляю поиск mp3 в каталоге по ключевому слову. В случае совпадения путь к мр3 заносится в список.
Могу я запуск мр3 из этого списка сделать так?
--for mp3 in filelist:
----os.startfile(mp3)

Будет ли это корректно?
И у меня первый файл начинает проигрываться, но вылезает ошибка. Кто знает, что с ней делать или надо курить visual С?
Аноним 12/06/18 Втр 22:49:52 #404 №1208675 
>>1208530
Еще пара постов на эту тему от тебя и это станет платиной.
Аноним 12/06/18 Втр 22:54:04 #405 №1208678 
>>1208530
Скачивай все чанки полностью, а потом конвертируй через ffmpeg
Другого выхода нет
Аноним 13/06/18 Срд 01:35:18 #406 №1208758 
>>1208086
>сокеты, пайпы.
Шде это подробнее чекнуть?
Аноним 13/06/18 Срд 02:05:52 #407 №1208766 
>>1202351
>В многострочные лямбды, хотя можно создавать многострочную именованную функцию и возвращать её как лямбду.
Какой же ты мудак, пиздец просто. Сидит такой школьник ибаный и рассуждает как сделать пиздон лучше, думая, что понимает в этом больше Гвидо и наверняка думает, что был бы он на месте Гвидо, то непременно сделал бы питон лучше.
Аноним 13/06/18 Срд 02:33:52 #408 №1208770 
>>1208758
Попробуй гугл, Learning Python Саммерфильда или Лутца, в этих двух книгах вообще все о ванильном питоне. Ну или документацию: для сокетов это внезапно модуль socket, а пайпы есть в том же multiprocessing или subprocess.
Аноним 13/06/18 Срд 08:23:14 #409 №1208820 
Ребята, как вы дизайните свои программы? Я в последнее время писал в основном на С, там кроме функций нихера нет, все проще. А сейчас начинаю что-то писать на питоне и мне не нравится результат. Можно как-то переструктурировать, может закинуть что в классы, но я хз. Есть что почитать по этому поводу?
Аноним 13/06/18 Срд 10:45:51 #410 №1208871 
>>1208652
Бамп вопросу.
Аноним 13/06/18 Срд 10:47:33 #411 №1208874 
Смотрите, когда я в питоне делаю бд с sqlite, то можно ввести так и база test.sqlite создаться сама

with sqlite3.connect('test.sqlite') as connect:

А если с mysql, то если ввести так, а базы test нет, то ошибка, а базу test надо создать заранее где-то там еще.

with MySQLdb.connect(host='localhost',database='test',user='root',password='1234') as connect:

Можно ли создать базу test внутри самой программы?
Аноним 13/06/18 Срд 10:51:14 #412 №1208875 
>>1208874
CREATE IF NOT EXIST
Аноним 13/06/18 Срд 10:56:02 #413 №1208880 
>>1208875
Как я криэйт до коннекта-то сделаю, лол.
Аноним 13/06/18 Срд 11:15:46 #414 №1208891 
>>1208820
Зависит от того что разрабатываешь - если работаешь с фреймворками, или даже библиотеками, созданными для разработки конкретного чего-то, обычно, в них описывается подход к описанию кода принятый в данном фреймворке/библиотеке.

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

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

Если вкратце, важное осознание которое тебе нужно иметь о ооп, о котором слабо упоминают повсеместно, это то, что одна из многих главных задач классов - это фактическое (физическое) группирование сущностей, например, пишешь ты программу про людей, и тебе нужно описать человека, допустим в рамках твоей программы тебе важны только рост, вес и имя, ты можешь описать человека следующими строками:
human_1_weight = 60
human_1_name = 'example'
human_1_height = 100
В этих трёх строках кода описаны данные по одному человеку, в рамках кода это не фактическое описание, мы подразумеваем что это один ('первый') человек только по названию переменных, хотя по факту это три независимые переменные.
Тут же описывая тоже самое в классах мы фактически описываем что это один человек, потому что все три переменные программно находятся в одном объекте:
class Human:
def __init__(self, weight, name, height):
self.weight = weight
self.name = name
self.height = height

human_1 = Human(60, 'example', 100)

Чет я запизделся, в общем вперёд, классы.
Аноним 13/06/18 Срд 11:17:49 #415 №1208892 
>>1208874
>>1208880
В чем проблема не указывать базу во время коннекта, создать её, и потом коннектиться нормально?
Аноним 13/06/18 Срд 11:42:47 #416 №1208896 
Антоны, а что вообще на питоне пишут? Какой круг задач решают программы на питоне?
Аноним 13/06/18 Срд 11:54:02 #417 №1208900 
>>1208896
Всё Веб, машинное обучение, автоматические тесты, математические расчеты
Аноним 13/06/18 Срд 11:54:44 #418 №1208901 
>>1208900
>математические расчеты
)))))))))))
Аноним 13/06/18 Срд 11:55:38 #419 №1208902 
>>1208901
2 + 5 никогда в интерактивном режиме не делал?
Аноним 13/06/18 Срд 11:57:30 #420 №1208904 
>>1208901
Подключаешь сишную либу и производишь вычисления на питоне
Аноним 13/06/18 Срд 12:03:07 #421 №1208907 
>>1208900
Анализ биг даты, администрирование ( можно написать один скрипт, который будет работать и в винде, и в липупсах, и на маках, и на десктопе, и на сервере)
Аноним 13/06/18 Срд 12:04:00 #422 №1208909 
>>1208892
Шпашиба
Аноним 13/06/18 Срд 13:17:49 #423 №1208933 
Вкатываюсь стажером. Какие вопросы стоит ожидать? По Лутцу пробежался, но не уверен, уж слишком привык писать на плюсах.
Аноним 13/06/18 Срд 13:17:56 #424 №1208934 
>>1208404
Спасибо
Аноним 13/06/18 Срд 14:37:14 #425 №1209034 
>>1208766
> мудак пиздец ибаный пиздон
Полезай-ка обратно в клетку, бабуин.
> думая, что понимает в этом больше Гвидо
Мимо.
> наверняка думает, был бы он на месте Гвидо
Мимо.
Аноним 13/06/18 Срд 14:49:47 #426 №1209044 
Снимок экрана от 2018-06-13 14-40-18.png
установил на Ubuntu PyCharm, запускается, после чего находиться в свернутом режиме, как фиксить
Аноним 13/06/18 Срд 16:09:35 #427 №1209105 
>>1208766
Но ведь из вас двоих мудак без собственного мозга - это ты.
Аноним 13/06/18 Срд 18:59:08 #428 №1209225 
>>1209034
Хуимо, чмо высокомерное.
>>1209105
Ни разу не семён.
Аноним 13/06/18 Срд 19:46:48 #429 №1209265 
А в чем отличия платного PyCharm от бесплатной версии?
Аноним 13/06/18 Срд 19:47:50 #430 №1209267 
>>1209265
У них на сайте сравнение есть.
Аноним 13/06/18 Срд 19:52:47 #431 №1209277 
>>1209267
Я не знаю инглиша(
Аноним 13/06/18 Срд 21:13:30 #432 №1209335 
>>1209277
В плюшках в платном.
Учи инглиш или гуглом переводи. В пайчарме нет же русского
Аноним 13/06/18 Срд 21:44:46 #433 №1209357 
изображение.png
Актуальна?
Аноним 13/06/18 Срд 22:48:11 #434 №1209426 
>>1209357
> PyQT5
Почему бы и нет?
Аноним 13/06/18 Срд 23:29:32 #435 №1209457 
>>1209426
А ты её листал? В обще есть смысл по ней изучать питон?
Аноним 13/06/18 Срд 23:44:37 #436 №1209470 
>>1209335
Яж не могу за пару дней выучить инглишь
Аноним 14/06/18 Чтв 00:00:02 #437 №1209480 
>>1209457
> листал
Именно что.
Я в инете инфу нахожу по всем библиотекам и в их документации, так что даже не знаю, но я сомневаюсь, что чтение её тебе навредит.
>>1209470
И что делать?
Аноним 14/06/18 Чтв 00:48:59 #438 №1209504 
Я к вам пришел с дурацким вопросом по поводу собеседований.
Вот, допустим, человек весь такой замечательный приходит в контору N, он нравится HR-у, все хорошо. И ему дают задание: написать такой-то скрипт. Вот, его садят за компик и он начинает писать, да? И ему предоставляют возможность выбрать редактор или, например, открывают Vim или PyCharm?
Аноним 14/06/18 Чтв 01:30:45 #439 №1209512 
>>1209480
>И что делать?
Не можешь вкратце мне сказать какие различия?
Аноним 14/06/18 Чтв 02:32:19 #440 №1209518 
image.png
>>1209512
Всю разницу даже и не знаю, всегда юза "платную".
Но вот тебе простой пример. Слева - платная версия, справа бесплатная. Это окно создания нового проекта.
>>1209504
Ни разу не видел что бы человека заставляли в каком-то определённом редакторе/IDE писать тестовое. А вот на бумажке могут предложить написать мини-скрипт.
Аноним 14/06/18 Чтв 03:29:17 #441 №1209522 
>>1209518
Пример мини-скрипта можешь привести? Я пришел к тебе на собеседование, и ты даешь мне задание.
Аноним 14/06/18 Чтв 03:38:36 #442 №1209523 
>>1209522
Реализовать связный список и перевернуть.
Аноним 14/06/18 Чтв 03:40:37 #443 №1209524 
>>1209522
3:40 ночи, ну ебтвоюжмать
FizzBuzz. Рекурсивный обход бинарного дерева, к примеру. Ну или: чужая программа выдаёт тебе список из 8кк+ элементов, тебе нужно пройтись по списку, рандомно удаляя элементы, затем ещё раз пройтись по списку(из тех элементов что остались) и удалить каждый элемент с чётным порядковым номером(не, кажись я забыл как то задание звучало и вышел бред).
В любом случаи, на бумажке задание будет простым. Самое интересное тебя ожидает или на компе прямо у них или высланное по почте для самостоятельного решения.
Аноним 14/06/18 Чтв 04:05:36 #444 №1209526 
>>1209523
Я смогу на Си, но не смогу на питоне. и перевернуть Если я дам тебе псевдокод, я соснул?

>>1209524
Рекурсивный обход довольно простой. А итеративный -- уже нет. В принципе, приемлемо.
Аноним 14/06/18 Чтв 04:57:33 #445 №1209530 
Двач, что можно на питоне написать? Пока писал скрипт, мне он понравился, только идей как продолжить с ним практическое знакомство нет.
Аноним 14/06/18 Чтв 08:43:38 #446 №1209560 
>>1209530
Калькулятор, +-умножить\, скобки, степени, син, кос, пользовательские функции.
Аноним 14/06/18 Чтв 08:45:42 #447 №1209561 
>>1209530
Каждый уважающий себя змеелов-новичок должен написать свою борду.
Аноним 14/06/18 Чтв 08:45:42 #448 №1209562 
>>1209530
Ну в смысле я ввожу строку
(cos(20)-sqrt(13))(sin(5^2) -23/8+e^-5) и мне выводится ответ
9.59437026
Аноним 14/06/18 Чтв 09:50:13 #449 №1209573 
realnyj-bolshoj-chlen-negra-12.jpg
>>1209561
>змеелов
Аноним 14/06/18 Чтв 11:38:47 #450 №1209621 
>>1209518
>Но вот тебе простой пример. Слева - платная версия, справа бесплатная. Это окно создания нового проекта.
Окна одинаковые абсолютно. Просто слева ты забыл раскрыть меню, для чего нужно нажать на стрелочку.
А разница в основном в том, что в платной версии изкаропки есть поддержка всякого вебоговна типа джанго и фласков.
Аноним 14/06/18 Чтв 11:45:19 #451 №1209626 
>>1209621
Я ничего не забыл раскрыть.
Слева платная с поддержкой вебговна, а справа такого нет.
Аноним 14/06/18 Чтв 12:24:14 #452 №1209659 
>>1209626
Нет, ты как раз забыл раскрыть, но и я в глаза ебусь.
Аноним 14/06/18 Чтв 12:26:39 #453 №1209660 
Здорово питонЫ, я вышеотметившийся вкатывальщик в питон с JS. Вобщем осиливаю ООП.
Поясните четко и дерзко - "объект" в питоне это то что создано конструктором "class", это так называемый "экземпляр"? И "экземпляр" - жестко связан с классом?

Попробовал такую вещь - создал класс, у него сделал метод foo, в методе определил функцию subfoo, и уже в ней вызвал self.чтонибудь. И при реализации объекта вызвал foo - все отобразилось. Короче еботы как с контекстами this в JS не требуется.
Однако я за пределами класса определил функцию foo1, в которой через self я вызвал атрибут объекта. И foo1 я вызвал внутри метода foo - вот тут мне уже пришлось в вызов foo1 передать self явно.
Это так по итогу и работает?
Аноним 14/06/18 Чтв 12:36:51 #454 №1209668 
Хм, а вот другая херня не получилась.
Я создал классом обьект obj1, у которого есть метод foo вызывающий допустим self.name. Потом другим классом я создал obj2, у которого так же есть свойство name. И попробовал сделать так.
obj2.newfoo = obj.foo
И короче при вызове obj2.newfoo() выводятся свойства из obj1.
Как будто бы этот метод был привязан с помощью bind, как делают в JS.
JS в этом контексте получается гибче.

Аноним 14/06/18 Чтв 12:53:17 #455 №1209682 
>>1209526
Не, псевдокод нормально. А в чём сложность на питоне сделать?
Аноним 14/06/18 Чтв 13:06:45 #456 №1209695 
>>1209660
>>1209668
В питоне всё объект. Даже классы это экземпляры от type. В экземпляре есть атрибут --class--.
>еботы как с контекстами this
Да, всё явно, всё через обычные замыкания и частичные применения.
>вот тут мне уже пришлось в вызов foo1 передать self
Там всё работает через дескрипторы. Допустим есть у тебя класс A и метод method. Если ты берёшь A.method, то функция отдаётся как есть, self никуда не исчезает. Если же ты инстанцируешь o = A(), затем берёшь атрибут инстанса: o.method , то на деле вызывается A.method.__get__(o) (те самые дескрипторы) что отдаёт тебе частично применённую функцию уже без self.

Методы в питоне это read-only дескрипторы, есть ещё read-write (обычно не методы, а просто атрибуты), ты можешь сделать геттеры и сеттеры довольно таки красиво, без методов set_something/get_something как в джаве, а просто o.something = value, print(o.something) и этот кастомный код внутри отработает (см. декоратор property). В жаваскрипте такое делается с помощью Object.defineProperty.
Аноним 14/06/18 Чтв 13:09:28 #457 №1209699 
>>1209668
При этом как в джваскрипте нет связывания на уровне синтаксиса. Например нужно писать именно o.method чтобы this привязался. В питоне такой ерунды нет, можешь смело писать хоть getattr(o, 'method') и всё привяжется как надо.
Аноним 14/06/18 Чтв 14:32:47 #458 №1209762 
>>1209659
А господе, то что я забыл раскрыть не имеет отнощения к платности/бесплатности, там выбор интерпретатора или venv.
Аноним 14/06/18 Чтв 15:26:22 #459 №1209819 
Хуй знает где спросить. спрошу тут, т.к. делаю все на питоне.

Есть ли в природе бесплатные cdn, чтобы шустро раздавать видео? Суммарный объем не оче большой, в пределах 10G. Сейчас раздаю со своего впс, но на крупных файлах видеопоток тупит.
Аноним 14/06/18 Чтв 16:09:44 #460 №1209838 
>>1209819
Youtube.
Проблема с сервером Аноним 14/06/18 Чтв 16:39:06 #461 №1209854 
изображение.png
Сервер:
import socket

sock = socket.socket()
sock.bind(('127.0.0.1', 9090))
sock.listen(1)
conn, addr = sock.accept()

print('connected:', addr)

while True:
data = conn.recv(1024)
if not data:
break
conn.send(data.upper())

conn.close()

Клиент:
import socket

sock = socket.socket()
sock.connect(('127.0.0.1', 9090))
sock.sendto('hello, world!')

data = sock.recv(1024)
sock.close()

print(data)

Почему при подключении через клиент к серверу выдаёт ошибку, связанную с тем, что компьютер сервера не найден, а также ошибку sendto? Скрины обоих ошибок прилагаются. Сам файл сервера в другом cmd вполне нормально подключился, только с клиентом проблема.

P.S: я ньюфаг в теме сетевого программирования, не бейте.
Аноним 14/06/18 Чтв 16:53:15 #462 №1209860 
>>1209854
Твой сервер после обработки первого подключения сразу завершается.
Аноним 14/06/18 Чтв 18:27:34 #463 №1209896 
15225690179340.png
>>1206113
Поздравьте меня, выдали оффер. Получаю визу и сваливаю в Ригу
Аноним 14/06/18 Чтв 18:30:25 #464 №1209898 
1528184273122029525.jpg
>>1209896
>сваливаю в Ригу
Аноним 14/06/18 Чтв 18:33:05 #465 №1209901 
15046532896000.png
>>1209898
Там битбакет по желанию левой пятки не блокируют хотя бы
Аноним 14/06/18 Чтв 18:47:51 #466 №1209911 
>>1209854
попробуй на клиенте метод сокета send(), а не sendto()
Аноним 14/06/18 Чтв 18:50:57 #467 №1209914 
Котятки, скажите, пожалуйста, каков оптимальный способ отправки уведомлений на десктоп от демона на питоне?

Демон от рута не передает сообщения на десктоп, если использовать notify-send.

Вот этот костыть работает:
sudo -u user DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send

Есть ли лушие способы, более универсальные, не требующие указания конкретного юзера?

Кстати:
>>> import notify2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.6/site-packages/notify2.py", line 39, in <module>
import dbus
ModuleNotFoundError: No module named 'dbus'

Как быть?
Аноним 14/06/18 Чтв 19:04:54 #468 №1209925 
>>1209896
У меня такая же подушка с котятами дома
Аноним 14/06/18 Чтв 20:14:35 #469 №1209949 
>>1209914
В dbus есть системная шина, работающая под рутом, а есть пользовательская. Для каждой фишечки-рюшечки под системным дбасом с помощью всяких policykit/consolekit разруливаются права доступа. По идее твой демон может делать всякие глобальные notify-send на всех пользователей (если такое поддерживается в notification сервисах).
Аноним 14/06/18 Чтв 20:17:46 #470 №1209952 
>>1209911
До этого send() пробовал, на 3 питоне не робит вроде.
Аноним 14/06/18 Чтв 20:22:32 #471 №1209954 
8Nc3CAL5XW5HT-fXr-kTdVCbsHfB38etlzk54IcIA4.jpg
>>1209357
Раздумывал ее купить, всего 700 рублей, но почитав хорошенько, раздумал. Конкретно по PyQt5 книга сложна для восприятия, потому что текст выстроен довольно сухо и для очень большого количества моментов банально нет примеров. Уж не говоря о том, что почти каждый подраздел главы отсылает тебя на http://doc.qt.io ; ресурс, конечно, неплохой, но нахуя ты тогда, спрашивается, эту книгу писал?
А еще там не все охватывает. Например, там нет главы по классу QSettings, который просто незаменим для любого, кто хочет заебенить более-менее приличное десктопное приложение.
В общем, книга хороша забесплатно - это точно. Банально листаешь оглавление, видишь то, что интересует, а потом просто выхватываешь подходящий для нужной тебе задачи класс и гуглишь его.
Аноним 14/06/18 Чтв 20:39:33 #472 №1209964 
>>1209518
>от суперпользователя
Ты что же делаешь-то, содомит?
Аноним 14/06/18 Чтв 20:43:11 #473 №1209965 
>>1209964
Успокойся, вдруг он Админ? А как известно - админы - это сверхпользователи.
Аноним 14/06/18 Чтв 20:46:15 #474 №1209967 
>>1208652
Бамп вопросу.
Аноним 14/06/18 Чтв 21:11:21 #475 №1209973 
>>1209967
Не знаю почему ошибка, но ты в цикле запускаешь потенциально N инстансов плеера.
Аноним 14/06/18 Чтв 21:18:37 #476 №1209976 
>>1209965
Очевидно, тот анон смеялся над тем, что необучаемый запускает гуй из-под рута. А тебе, анон, не мешало бы с основами линукса ознакомится - все-таки в /pr сидишь.
Аноним 14/06/18 Чтв 21:18:51 #477 №1209978 
>>1208652
>startfile
Ты изначально делаешь это не правильно.
Правильнее, наверное, создать https://ru.wikipedia.org/wiki/M3U и уже его экзечить.
Аноним 14/06/18 Чтв 21:55:47 #478 №1210016 
изображение.png
лутц тяжеловатый и муторный. посоветуйте книгу вкатывальщику с нуля
Аноним 14/06/18 Чтв 21:56:12 #479 №1210017 
>>1210016
"укус" уже читал и решал
Аноним 14/06/18 Чтв 22:13:16 #480 №1210027 
>>1209896
Это ты в тг вопросами к hr'ке делился?
Аноним 14/06/18 Чтв 22:19:48 #481 №1210032 
>>1209976
И? Запускаю от суперюзера? Моя ж машина и я отдаю себе отчет в том, что я делаю.
С основами линукса я знаком, на достаточном, для работы, уровне, не переживай, няша.
Аноним 14/06/18 Чтв 22:20:50 #482 №1210034 
>>1210027
Нет
Аноним 14/06/18 Чтв 22:30:11 #483 №1210041 
изображение.png
>>1210016
>>1210017

так, я только что понял что крупно обосрался и вместо "Изучаем" открыл "Программируем на Питоне" Лутца.

Но вопрос примерно в том же тоне. Насколько в обще актуален ЛУТЦ? Его ЧЕТЫРЁХТОМНИК "Изучаем Питон 1 и 2 часть" и "Программируем на Питоне 1 и 2 часть".

Первый двухтомник очень, очень подробный и больше похож на переложение документации... Отсюда вытекает второй вопрос:

Насколько в обще продуктивно изучение по такому сухому и досканальному материалу? По этим тысячам и тысячам страниц?

Может есть что то более краткое, но куда более эффективное в изучении и вкатывании? Или продолжать грызть гранит?

Вы не думайте, я не такой лентяй, но когда книга состоит не из краткого комплекта в виде основных типов данных и работе с ними, а из разделов каждый из которых включая по 200+ страниц на каждый тип, и все это растягивается и не даёт без конспектирования и проработки комплексного запоминания... это очень муторно и сложно
Аноним 14/06/18 Чтв 22:33:36 #484 №1210044 
>>1210041
Если ты прочитал и прорешал укус, то шли нахуй книги на определённое время. Надо в первую очередь практиковаться, поэтому решай задачи на codewars, пиши как можно больше своих программ, которые делают что-то полезное. Главное, чтобы ты обязательно старался доводить свои проекты до конца.
Аноним 14/06/18 Чтв 22:36:03 #485 №1210047 
>>1210041
Да, ещё забыл: посмотри на codingbat, если кодварс покажется чересчур сложным и неподъемным. Там есть задачи по джаве и питону
Аноним 14/06/18 Чтв 23:40:12 #486 №1210107 
>>1210044
> то шли нахуй книги на определённое время

выше вычитал что как практику можно sicp на питоне решать.

Укус ведь небольшой, и не даёт полноценного представления о языке для написания сложных программ.
Задачи, задачами а какой теоретический материал то к ним в довесок взять?
Аноним 15/06/18 Птн 00:33:54 #487 №1210141 
>>1210107
>sicp на питоне

Да, питон охуенно годится для этого.
Один изящный синтаксис лямбд чего стоит лол.
Аноним 15/06/18 Птн 00:59:31 #488 №1210150 
>>1210041
Саммерфильд, саммерфильд блять. Сначала Programming in Python3 Саммерфильда, а потом уже Programming in Python3 лутца тот что ты открыл обосравшись с подливой.
От себя замечу, что я положил хуй на две последних главы в книге саммерфильда - ГУИ на ткинтере и сосбственные парсеры, потому что они нудные ну просто пиздец. Лутц намного лучше эти две темы объясняет в своей книге.
Аноним 15/06/18 Птн 07:45:40 #489 №1210188 
>>1210041
Начинал знакомство с Автоматизации Свейгарта, ни о чем не жалею: прекрасная книга. На лутцокультистов смотрю, как на говно.
Аноним 15/06/18 Птн 08:47:55 #490 №1210202 
>>1210041
Не могу понять почему люди так рьяно форсят Лутца. Какого хуя вы все цепляетесь к этому ебаному Лутцу?Когда начинал тоже пробовал и его и этого бездарного Саммерфилда, который оказался еще более нечитаемым говном.Однако как будто с небес ко мне спустился Девид Бизли со своей книгой "Python. Подробный справочник", и передо мной открылись все двери в занимательный мир этого яп. Мужик пишет настолько доходчиво на сколько это вообще возможно.Посмотрите что он на конференциях вытворяет, мужик реально знает о чем говорит и пишет.
Аноним 15/06/18 Птн 11:05:38 #491 №1210261 
изображение.png
>>1210044
>>1210150
>>1210188
>>1210202
>Не читай Лутца - делай курсы
>Не читай Лутца - читай Саммерфилда
>Не читай Лутца - читай Свейгарта
>Не читай Саммерфилда - читай Бизли

Плюрализм мнений однако. Все что пока выяснили, это то что Лутц = говно.

Аноним 15/06/18 Птн 11:35:51 #492 №1210268 
>>1210016
Нормальный Лутц, не пизди.
Но если ты совсем с нуля - то пожалуй он тяжеловат. Совсем нубу нужна другая подача - основы + много простеньких задачек.

мимо-вкатывальщик с JS.
Аноним 15/06/18 Птн 11:36:42 #493 №1210269 
>>1210107
>Укус ведь небольшой, и не даёт полноценного представления о языке для написания сложных программ
Ни одна книга не даст тебе полноценного представления для написания сложных программ. Тут нужна только практика, именно разработка своих проектов, а не чтение разных талмудов
Аноним 15/06/18 Птн 11:42:11 #494 №1210270 
>>1210261
Ты трап?
Аноним 15/06/18 Птн 12:02:31 #495 №1210277 
>>1210269
>Ни одна книга не даст тебе полноценного представления для написания сложных программ. Тут нужна только практика, именно разработка своих проектов, а не чтение разных талмудов
А потом такие люди велосипеды свои кривые пишут и с реализацией протоколов ломаются
Да, талмуды не учат писать сложные программы, но сильно облегчают их написание
Лутц конечно зануда, но объясняет все очень подробно и это позволяет не вставать на грабли в неочевидных моментах
Аноним 15/06/18 Птн 12:06:15 #496 №1210280 
>>1210277
>но сильно облегчают их написание
Я читал лутца и саммерфилда, но кроме синтаксиса я ничего не выучил
Аноним 15/06/18 Птн 12:15:06 #497 №1210286 
>>1210280
>я ничего не выучил
Просто ты тупой.
Как и 90% местных, тащемто.
Аноним 15/06/18 Птн 12:21:12 #498 №1210288 
>>1210286
Кстати, очень показательная ситуация с питоном, вкатывальщики думают, что раз синтаксис легкий, то и дальше все просто будет, а потом им начинает рвать жопу
Аноним 15/06/18 Птн 12:49:04 #499 №1210310 
https://2ch.pm/pr/res/1210308.html
https://2ch.pm/pr/res/1210308.html
https://2ch.pm/pr/res/1210308.html
https://2ch.pm/pr/res/1210308.html
https://2ch.pm/pr/res/1210308.html
https://2ch.pm/pr/res/1210308.html

ПЕРЕКАТ
Аноним 15/06/18 Птн 12:58:56 #500 №1210313 
>>1210310
>https://2ch.pm
Опять выходишь на связь, мудило?
Аноним 15/06/18 Птн 13:05:47 #501 №1210318 
Аноны, есть нормальные попенсорс проекты CRM/ERP на джанге/другом пайтон-фреймворке(а вдруг)?
Глянул на гит(хабе/лабе) и приуныл. Одна система от индусов, кривая и ущербная. Вторая вроде и нормальная, но выглядит как админка джанговская и т.д.
Аноним 15/06/18 Птн 15:39:10 #502 №1210429 
>>1210310
>.pm
Пили заного
Аноним 15/06/18 Птн 15:40:21 #503 №1210430 
>>1210413
А обычно за сколько люди могут научиться, кодить на пайтоне ,ну там как мидл хотя бы?
Аноним 15/06/18 Птн 19:02:19 #504 №1210568 
>>1208548
for item in reversed(iterable):
____#do the stuff
Аноним 15/06/18 Птн 19:08:22 #505 №1210571 
>>1209896
поздравляю анончик, успехов
Пиздить пикчи с гугла Аноним 17/06/18 Вск 02:19:53 #506 №1211531 
Юзернейм, нужна твоя помощь! смотри, практикуюсь сейчас со всей этой темой urllib bsoup итд. пишу программу, в которой вводишь запрос типо "сладкие французские булочки" и он тебе присылает пикчу по этому запросу, как это можно реализовать? У меня была идея формировать ссылку, включающую этот запрос, а потом тупо брать первую, но чёт не идёт, хотелось бы узнать твоё мнение
Аноним 20/06/18 Срд 08:23:41 #507 №1213535 
>>1211531
У гугла есть (или было) апи для получения пикч по определённым запросам. Погугли.
Аноним 21/06/18 Чтв 19:38:15 #508 №1214707 
что за нотация? рекурсия? метод std не определен

std = (ys[xs < 3] - base).std()
Аноним 22/06/18 Птн 23:30:48 #509 №1215511 
Аноны, как часто вы используете в своем коде декораторы?
Аноним 28/06/18 Чтв 18:32:29 #510 №1219016 
>>1215511
Декораторы обычно используют в больших кодах, где очень много функций, в частности тех, которые надо передавать другим функциям. А сам пишу чаще всего небольшие программы и они мне не требуются.
Аноним 13/07/18 Птн 15:12:09 #511 №1227246 
Аноны, как в одну строчку преобразовать строку в массив? Там цифры вперемежку с табуляцией и символами перевода строки. Делаю arr = text.split('\t'), но остаются во-первых символы переноса строки, а во-вторых это массив строк, не чисел. В несколько действий понятно как делать, но наверняка можно по красоте.
comments powered by Disqus

Отзывы и предложения