Это копия, сохраненная 15 июля 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Для кода https://repl.it/languages/python3 Не скидывайте сложные исходники в тред, у двоща ебанутое форматирование
Книги https://yadi.sk/d/tArKKuQu3Kejuq
В предыдущей серии >>1176187 (OP)
Напоминаю для вскодо-петуха, все возможности pycharm, которыми можно пользоваться сразу, без ебли с плагинами
1)полная инспекция любой либы
2)тонко настраиваемая подсветка на любой случай, включая проверку совместимости кода для разных версий питона
2)удобный дебагер и профайлер
3)вызов докстрингов по клику на любой функции
4)интеграция со всеми возможными системами контроля версий с удобным разрешением конфликтов
5)диаграммы для асинхронного кода
6)подключение к базе данных
7)Подсветка и автокомплит для шаблонизаторов фреймворков, да и вообще интеграция с фреймворками
8)Настройка конфигов для тестов c сохранением истории и вызовом прогона отдельного теста одним кликом
9)Плагины на любой вкус Ну ладно, это и в вскоде есть
10)Деплой на удаленный сервер
11)Интеграция с докером
Это то, чем я пользовался в последнее время, все из коробки
Что под "Brainfuck" на 4-ом пикрелейтеде нарисовано?
Так и сделано тащемто, для джанги < 2.0 разная обработка для разных питонов. Но никто уже не хочет поддерживать говно мамонта, которому в 2020 обрубят поддержку.
А еще можешь через #! /usr/bin/python2|3 указывать, лол
Для проверки версии можешь использовать sys.version_info[0]
>можешь через #! /usr/bin/python2|3
Это не деректива интерпретатора, а деректива шелла ОС, при чем не кроссплатформенная.
Директива это что-то вроде "use strict" из жс, когда интерпретатор переходит в режим несвоместимости с предыдущей версией. Или сам догадывается на основе нового синтаксиса. Но в конечном счете, интерпретатор в системе один единственный исполняющий и те и другие скрипты.
Утащил в forth-тред.
В этом и вопрос, возможно ли одним html + css в целом сделать красивый сайт со свистоперделками? Я просто ориентируюсь на то что во всяких готовых вещах, на тутсе+, коддропе или кодканьоне к красивым шуткам идет js.
>я могу на django (wagtail, flask, e.t.c.) запилить сайт, со всякими свистоперделками, красивые мега меню, всякие слайдеры с тенями и зумами
Перевожу:
>могу ли я на бекенде запилить сайт с красивыми перделками фронтенда
При том, что джанго и питон вообще - это бэкенд. А свистоперделки - это фронтенд.
>возможно ли одним html + css в целом сделать красивый сайт со свистоперделками?
Ясен хуй, можно.
С щепоткой JS можно делать вот такую красоту:
https://runcloud.io
http://keithalva.com
Вот наконец дошел в книге Лутца до cgi и сразу подумал: зачем тратить ресурсы на пробуждение\смерть одних и тех же cgi скриптов, да ещё и ебаться с сохранением состояний, когда можно сделать сам cgi сервером, ждущим запросы от клиента-веб_сервера. Оказалось, умные люди до меня изобрели FastCGI, который этим самым и является. Вопрос: зачем использовать cgi, когда можно делать fast cgi? В чем преимущества первого перед вторым, что их ещё пишут?
Flask и Django это штуки, которые помогают писать cgi скрипты, а именно: содержат кастомизируемые шаблоны-решения частых задач, и к созданию\настройке самого сервера никак не относятся?
Что такое Zope и PyJamas? Лутц о них говорил, я погуглил, но не понял вообще ничего.
А как же cms на django и шаблонизатор? Он же тоже может во фронт, разве нет? Тогда такой момент, мне индус пилит фронт вместе с js перделками, как мне его подрубить к моему бэкенду на django заранее извиняюсь за тупые вопросы.
В питоне нет ни CGI, ни FastCGI. Есть WSGI который представляет из себя банальную функцию request → response, интерфейс которой расписан в соответствующем PEP. То есть питон как бы огораживается от проблемы менеджмента процессов и соединений, предоставляя это всяким uwsgi/gunicorn/mod_python/etc. Фреймворки собственно реализуют именно такой WSGI и формально не умеют сервить http из коробки. Есть там конечно всякие devservers, которые суть примитивнейшие реализации http протокола для wsgi со встроенной перезапускалкой, именно по этой причине их нельзя выпускать в продакшен. Особый разговор касается всяких aiohttp, которые в общем-то уже не WSGI (так как например вебсокеты несовместимы с WSGI), но это уже другая история.
Нет, не пробовал. Это надо что-то ну очень популярное чтобы туда соваться. И желательно быть тяночкой. В целом это считается достаточно неэкологичной практикой, так как в твой репозиторий, если он уже достаточно популярен, коммитило уже много народу, а бабло забираешь единолично ты.
А, ну ещё добавлю, просто открыть донатилку на пивас (прям так и написать), это не страшно. Но и рассчитывать на что-то особенное соответственно нельзя.
Зачем в 2к18 менять разрешение? Учитывая что нередки сетапы из нескольких мониторов и лучше там вообще ничего не шатать, не трогать, не дышать. Но на будущее используй finally блок с restore default.
Ну ты бы хоть отличительную фишечку расписал, а то совсем хуйня какая-то бесполезная, сделанная ради самой себя.
> This is implemented by calling the Standard C function system(), and has the same limitations.
Питон как бы говорит нам, что он тут не причём, это всё сишная стдлиба.
Там у тебя stdout открыт с кодировкой ASCII. Возможные решения это запускать питон с переменной окружения для замены этой кодировки, либо обновиться до 3.6 где по умолчанию юникод https://docs.python.org/3/whatsnew/3.6.html#pep-528-change-windows-console-encoding-to-utf-8
Это плохой вопрос для собеседования. Всё сильно зависит от устройства итератора. Лучше просто спрашивать какие могут возникнуть проблемы с таким кодом, не более.
Ну и как бы a = a x 2
Там неплохая вики есть и там написано что к чему.
P.s. Надеюсь никто не думает, что это мой репозиторий
pyInstaller
И это блядь не конпелятор, а создатель exe-песочниц которые содержат в себе интерпретатор пистона, в который в свою очередь сразу хуярится твой скрипт.
Пистон - не компилируемый язык.
А если самому делать такой SFX архив, то туда надо ложить?
Пробовал на пивас через гитхаб собирать, бетховенами и paypal'ом, но чот как-то не очень вышло, а потом вообще этот зашквар убрал(просьбу, а не репу).
С учетом того, что он вполне себе посещаемый был, за неделю, в среднем, около 250 человек уникальных заходило.
P.s. Хотя может я просил неправильно, или еще что. За все время лишь однажды нашелся интересный персонаж, который мне в телегу стучался с требованием дать ему я.кошелек для перечисления благодарности.
Первая папка находится сразу на диске С.
Вторая папка находится на рабочем столе, который принадлежит диску С.
В каждой из папок лежат скрипт со строкой
labelTest.setPixmap(QtGui.QPixmap('favicon.png'))
и файл favicon.png
Внимание, вопрос:
Какого хуя скрипт из первой папки мне ПНГшку после выполнения скрипта, а скрипт из второй папки - нет?
Во втором случае показывает, но только если прописать полный путь до ПНГшки.
Это вообще как? Это законно?
Рабочую директорию чекай, при выполнени
>Всё сильно зависит от устройства итератора
Но там всё однозначно ведь. И это как раз вопрос на знание этих самых итераторов и генераторов.
А, лол, телегу же заблокировали почти все провайдеры. Поэтому он закономерно выдает ошибки ERROR - TeleBot: "ConnectTimeout occurred, args=(MaxRetryError("HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: .
Может анон подскажет, как это дело проксировать? Не хочу трогать свой vps
Это не удобно для отладки
Ты тупой? Если во фреймворке, который ты используешь есть поддержка прокси, то впишу туда прокси. Если нет, то соси/переходи на другой фреймворк. Всё! Нахуя ты здесь об этом спрашиваешь?!
Как распараллелить на GPU и векторизовать все условия и циклы в этом алгоритме:
https://gist.github.com/bnlucas/5857478
Это алгоритм Миллера-Рабина для проверки чисел на простоту.
Нужно чтобы на GPU всё это работало или хотя-бы через multiprocessing на нескольких ядрах,
а то на одном ядре долго считает последовательные простые числа.
Могу также скомпилировать код на С/С++ через gcc, в итоге получаются exe-файл.
Как его подключить через питон - тоже не пойму.
Есть также компилятор для .cu-файлов, под названием nvcc, но он требует cl.exe,
а этот работает только с msvc, а его у меня нет.
Я думаю, что средствами самого Python можно как-то распараллелить py-файл,
а вот как - не знаю...
Нет, не однозначно. Модификация контейнера во время итерации по нему это чистой воды undefined behaviour.
1280x720, 1:06
Бамп вопросу!
>>182407
>В питоне нет ни CGI, ни FastCGI
Но Лутц говорит, что он там есть и посвящает этому больше 300 страниц. И загуглив 'cgi in python', я получу кучу ответов о том, как использовать его. Так что я не понимаю, о чем ты.
Так же не понимаю, что мешает мне сделать свой HTTP handler, который, наследуясь от http.server.BaseHTTPRequestHandler, будет иметь методы, имплементирующие обращения к FastCGI серверам.
>Есть WSGI
Погуглил. Ну так как я понял, это стандарт, который можно использовать. А можно и не использовать. Тот же Апач, насколько я понял, имеет mod_wsgi для этого стандарта, и mod_python для использования cgi скриптов.
>Фреймворки собственно реализуют именно такой WSGI и формально не умеют сервить http из коробки
То есть под первой фразой ты имел в виду, что в фреймоврках нет CGI? Или что? И что значит сервить http? Как я понял сервер в моем случае пока http.server.HTTPServer, в других Апач и прочие сам разбирает http запрос и решает, какой скрипт ему вызвать, и какие переменные туда передать.
>undefined behaviour
И где он неопределен? Вопрос был про конкретные конкретные списки с конкретным методом и не зависит от реализации
Никак не могу разобраться с тестовым (т.к. с вебом и им подобным дела не имел). Задача: создать некое подобие твиттера, с фолловерами, опцией фоллоу анфоллоу и таймлайном "интересных" конкретному пользователю постов по запросу. По идее ничего сложного, и уже разобрался как собраться простенький чатик на сокетах и сделать логин, юзер айди и подобное. Но конкретно с этими опциями беда. И никак не могу нагуглить ни гайд, ни решение, ни подходящий фреймворк. Гугл выдает либо примеры совсем простых чатиков, либо всяких ботов, либо приложухи для взаимодействия с твиттер апи.
Нуждаюсь в помощи.
Помогут и советы, и линки на подобное, и даже советы как и где гуглить.
Пошел нахуй. Если сам в тестовое не можешь, то эта работа просто не для тебя. А то и профессия вообще, кстати, - повод задуматься.
> гайд
Орнул, блять.
Какая зп? Где именно? Уже опыт работы был?
Вообще ебош на фласке, у него куча модулей под это, или на aiohttp, что бы блокировки не было. Но из твоего условия непонятно, что конкретно тебе нужно, чатик (но ты вроде его нашел, судя по посту)? Выбор интересных новостей (это или просто выдавать самые лайкнутые посты за пару дней из фидленты или через интересы указанные в профиле)? Френды друзей (делается или примитивно через мени ту мени или умно, в виде графовой бд)?
print("Fuck man, you have the problem!: " Exception)
raise SystemExit
в try дохуя всего, и это все зависит от юзера. Много же долбоебов есть, которые инструкции не юзают.
Слушай, а ты случаем не знаешь как делают фишки как в линуксе? Типо /input: -h/ и выводится помощь.
Но в тоже время я сделал отдельную функцию, которая кое как проверяет вводимые данные
тот же анон
Если ты про вывод во время вызова скрипта, то сюда
https://docs.python.org/3/library/argparse.html
>>1Если ты про интерактивный ввод, то только через перехват ошибки, но я рекомендую 182763
Если у тебя в одном модуле уже есть проверка корректности аргументов, то проверять данные второй раз бессмысленно, блок с ошибкой не будет вызван никогда
>чатик
Что то вроде того, мессенджер с функционалом твиттера. Там все примитивно, все что то пишут. К каждому юзеру приделана кнопочка фоллоу/анфоллоу, и должна быть возможность вывести посты кого он зафолловил. В совсем идеальном мире можно еще лайки и графы, но тут хотя бы базовые условия соблюсти. Френдов нет, только айди самих юзеров и их фолловеров. Все бы легко, но из всего тестового только эта задача про это и по сути с вакансией общего она имеет только язык. Опыта до этого не было.
>>182758
Если я напишу тутор или кукбук тебе проще будет? Профессия веба да, определенно не для меня.
> Френдов нет, только айди самих юзеров и их фолловеров
Какая разница между френдом и фалафелем?
>и уже разобрался как собраться простенький чатик на сокетах
Зачем этот человек трогает сокеты?
>создать некое подобие твиттера
Нужно создать логику всего это дерьма с кнопочками, или дизайн тоже на тебе весь?
Спасибо огромное!
Логику, я выбираю логику
Хуяси тестовое, а не пойти ли им нахуй?
Кидай сюда оригинал тестового, ибо из твоих пояснений нихуя не ясно
Оч хуево, нужно несколько эксептов, на разные виды ошибок.
Если так не можешь сделать - проебал логику
Что бы и мозг не ломало и посильно было, и была возможность принести пользу.
А то чёт какой не открою, везде куча самописных и дешманских библиотек без знаниях коих хрен разберешь код.
Посоветовали как действенный способ изучения питона
С меня спасибо
В том, что это задание на мидла, как минимум, да и то на пару недель кропотливой работы, если все грамотно делать
1) Чат на сокетах (из этого вытекает выбор грамотного хранилища для текста, как у того же тентакля)
2) Разработка графовой бд для фоловеров
3) Построение рекомендаций по интересам
И это минимум, который надо реализовать
За такое тестовое деньги брать надо
Я в прошлом треде кидал пример попенсорса, веб-фреймворка.
Никто тебе конкретной ссылки не даст, ибо их сотни и одновременно ни одного. Я б тебе посоветовал свой прожект писать, чем вникать в чужой говно-код
да, я ведь сглупил и не уточнил.
клиент-серверное приложение было бы идеально.
Своё... я думаю свой клиент аки месседжер или точнее интерфейс для взаимодействия с протоколом наклепать на Python + Tkinter. Но опыта маловато, а что то попроще в голову не приходит
Я тебе расписал положняк в экосистеме. Конечно ты можешь использовать CGI, FastCGI, ещё десяток всего разного. Но зачем, если есть родной заточенный именно под питон WSGI?
>что значит сервить http?
Ещё раз, WSGI handler это только обычная питонячая функция. Она ни сокеты не открывает, ни процесспулы не менеджит, ни даже http не парсит. Берёт готовый, распарсенный, скачанный полностью запрос, и выдаёт ответ. То есть это как бы такой интерфейс по разные стороны которого твоё веб-приложение с фреймворком и собственно менеджер этих процессов-сокетов-соединений-балансировщик.
Вот эти хреновины из стдлибы http.server, их всё равно никто не использует толком.
Я не знаю зачем там 300 страниц у Лутца посвящено этой ерунде.
Отличная идея, только не tkinter бери, а qt5.
Ничего сверхсложного нет, распиши сам себе весь функционал, что хочешь, определи его фишку(отличие от других), разбей на подзадачи и приступай. Доки читай, угли,тут спрашивай(именно такая последовательность) и сделаешь + опыта наберешься.
Загляни в "идей анона тред", там недавно был реквест чатика, который можно было б поднимать на собственной ВПСке, создавая свой, независимый сервер + иметь возможность общаться с людьми на других серверах - отличная идея, как по мне, думаю была бы полезна и на практике.
Надо будет на текущей работе сказать, что от меня одни убытки, а то держат зачем-то
Бложики не являются истиной в последней инстанции. У того анона суть вопроса была именно в объяснении ошибки
Ну и да, автор не знает о том, что такое неожиданное поведение
In computer programming, undefined behavior (UB) is the result of executing computer code whose behavior is not prescribed by the language specification to which the code adheres, for the current state of the program. This happens when the translator of the source code makes certain assumptions, but these assumptions are not satisfied during execution.
Так и скажи: «я — бестолковый демагог, разваливаю команду неконструктивными спорами, отсеиваю годных людей на собеседованиях идиотскими вопросами, считаю заведомо плохой код стандартным конкретным и не зависящим от реализации».
Я не говорил, что тот код хороший, это проверка на знание языка, что бы не творить хуйню во время кодинга, понимание различия генераторов и итераторов, а так же реализацию протокола итерации нужно нужно знать. Неправильный ответ на тот вопрос показывает, что человек не знает язык
Дело не в бложиках. Там понимаешь, в зависимости от реализации итератора списков код может сработать одинаково, а может по-разному. Такое лучше показывать сразу с результатом выполнения, а не просить выполнить в уме. Хуй его знает как оно сработает в pypy/jython/ironpython/etc.
>Так и скажи: «я — бестолковый демагог, разваливаю команду неконструктивными спорами, отсеиваю годных людей на собеседованиях идиотскими вопросами, считаю заведомо плохой код стандартным конкретным и не зависящим от реализации».
Ты просто ньюфаг и не понимаешь, что демагогия это весело, срачи и обоссывания - наша стихия. Иди греби.
По дефолту используется cpython, если не сказано иначе. Это уже ты начинаешь маневрировать со всякими джайтонами, которые не используются в коммерческой разработке совсем. Так можно вообще половину вопросов по синтаксису завернуть, потому что в очередной устаревшей реализации оно не поддерживается. Итераторы описаны в pep, на который и опирается мой вопрос, все что сделано в васяноподелках не учитывпется
Ога, и совместимость нахуй поломают, я понимаю там смена мажорных версий, как с третьим питоном произошло, но с минорной хуй так прокатит
Минорные версии тоже не очень-то совместимы друг с другом. Как пример https://docs.python.org/3/whatsnew/3.5.html#whatsnew-pep-479
Да нифига он не прав. Проверять знание о том что такое генератор компрехеншен нужно иначе. Конкретно поведение итераторов даже стандартных контейнеров ну очень мало кто знает наверняка, их реализация зачастую выбрана в угоду скорости, а не корректности, и полагаться на это в коде ну совсем нехорошая идея, он даже сам это признал.
>знание о "протоколах" итерации
Это совсем не о протоколах. Протокол везде один. Это именно реализация. Одна реализация в недрах cpython, другая вот >>182856, и она полностью совместима по протоколу со стандартной.
Посоветуйте библиотеку для графена, а еще лучше набросайте как с ней будет выглядеть интерфес состоящий из таблицы картинок (или одной картинки после выбора) справа и поля для ввода поиска\добавления тегов вместе со списком всех (для конкретной картинки) тегов - слева. Как реализовать все остальное я знаю, мне нужна какая-то основа, от чего отталкиваться в мире за cli.
>знанием наизусть всего сишного кода в интерпретаторе.
А что же, лучше его не знать и этим гордиться? Я чуть опоздал на бал, но сразу хотел тыкнуть в сорцы. Иногда полезно читать.
А именно вот это:
1. extend просто в лупе вызывает iternext, пока не нарвётся на NULL https://github.com/python/cpython/blob/master/Objects/listobject.c#L897
2. iternext листа вытаскивает элемент по индексу it_index, проверяет его входимость в sequence (каждый раз новая проверка!), а затем инкрементирует этот индекс.
https://github.com/python/cpython/blob/master/Objects/listobject.c#L3071
Делать как-то иначе смысла мало, потому что это будет лишь надстройкой над вот этим базовым поведением.
>Я считаю что это принципиально нужно не знать, так как <код>
>>182920
>Одна реализация в недрах cpython, другая вот >>182856,
Ну вообще-то он не изменял реализацию итератора как такового, просто в его коде итерация идёт уже по другому объекту, в данном случае по range'у, а не самому списку, который увеличивается.
Кстати, именно это же и происходит в первоначальном вопросе, где незацикленный вариант итерируется по новому, созданному в list comprehension'е списке, а не изначальному a, чем занимается генератор.
Дело не в range, я могу так же итерировать в сишном коде: взять сначала длину и вслепую перебирать. То есть не сравнивать в каждой итерации текущий индекс с текущей длиной. Задача этого кода с итерацией только перебрать контейнер при условии что его никто не будет изменять, а если и будет, то чтобы сам интерпретатор не крешнулся. Больше гарантий особенно не даётся. К примеру dict при итерации выбрасывает исключение если его размер изменился. Можно например удалить и вставить, как бы оставляя размер словаря тем же, итератор не заметит, но результат итерации будет непредсказуем.
Так или иначе, такие приёмы можно заменить на что-то более понятное и предсказуемое, и лично я всегда палкой по пальцам буду бить за такое говно. Всё что требует разматывания кодовой лапши, прокручивания в голове, работает неинтуитивно, опирается на какие-то недокументированные особенности кода поддерживаемого не нами — это плохо и рано или поздно либо сломается, либо будет очень дорого переписать нормально чтобы к примеру перейти на новый питон.
>такие приёмы можно заменить на что-то
Так об использовании подобного кода речи и не шло ведь, только о понимании, как он сработает.
Все кричат "не меняй список при обходе по нему!", но почему? Слепо слушать программистишек никогда не стоит, особенно с такими резкими заявлениями (уровня "goto is evil"). А тут вон наглядный пример, что может случиться. Как по мне, так очень даже полезно такое джуну давать (те, кто старше, и так в курсе). Разумеется, не как какой-то решающий вопрос на собеседовании и т.д. Очень частно же встречаются умники, которые норовят удалять элементы при обходе.
>взять сначала длину и вслепую перебирать
А с чего бы интерпретатору делать предполагать, что объект не будет изменён? Идейно у итераторов как раз правильнее каждый раз проверять, мне кажется, потому что всё, что от него требуется, это выдавать "следующий" элемент, пока они не закончатся, а не пока не будет достигнут какой-то установленный ранее конечный пункт.
Ведь если тебе надо переложить яблоки из тазика в коробку, а брат подкладывает яблоки в тазик, ты же не остановишься, когда переложишь N яблок, находившихся так в первую секунд. Ну может быть ещё в морду брату дашь, чтобы кончились яблоки наконец.
>о понимании, как он сработает
Опять возвращаемся к тому что я говорил:
>Такое лучше показывать сразу с результатом выполнения, а не просить выполнить в уме
>Всё сильно зависит от устройства итератора
>Лучше просто спрашивать какие могут возникнуть проблемы с таким кодом, не более
>но почему
Потому что не предназначено оно для такого. Это реально уровня goto практика и даже хуже. Не проведя эксперимент наверняка не скажешь как оно поведёт себя. Да и опять же, завтра поменять могут.
>>182961
Ты какую-то недоочередь изобрёл. Я минут десять сейчас гуглил идеологию итераторов, так вот нигде вообще ничего идеологически не сказано насчёт случая модификации структуры во время итерации. Везде говорится про iterator invalidation, undefined behaviour, never do this!1
https://docs.python.org/3.6/tutorial/datastructures.html
>It is sometimes tempting to change a list while you are looping over it; however, it is often simpler and safer to create a new list instead.
Даже вот в официальной документации скупое never do this и ничего больше не сказано.
Взять даже какой-нибудь простой связный список, даже в нём можно сломать итератор удалив ноду на которой этот итератор сейчас находится. И ведь никто принципиально не делает registry итераторов созданных для структуры, неоптимально, затратно, предполагается что программист сам себе злобный буратино в таком случае.
>All in all, this is always a trade-off between security (iterators remain always valid) and efficiency. Most of the time, the added security is not worth the efficiency price to pay for it.
То есть в общем случае итераторы реализованы хоть как-нибудь. И только если в доках явно написано что можно например append/extend/rotate/etc, то это можно применять, иначе лучше избегать всеми возможными способами, либо имплементить свои структуры данных со своими особенными итераторами.
tl;dr: В общем, я считаю, что (у)знать это полезно, но как раз именно для того, чтобы почти не использовать в своём коде, но получив при этом порцию урины понимания внутренностей работы как питона, так и, эм, языков программирования в целом.
>показывать сразу с результатом выполнения
Не так эффективно, я считаю. Сначала всегда надо предоставлять возможность самому додуматься, а уж потом подсказаньки давать.
>Это реально уровня goto
Питонистам не привыкать, код cpython'а битком набит goto'шками.
>Везде говорится про iterator invalidation, undefined behaviour, never do this!1
>только если в доках явно написано
А разве где-то в доках питона такие тонкости пишут? Да и тут три с половиной типа мутабельных коллекций всего.
В плюсах вот, например, у std::list'а в append'е push_back пишут:
>No iterators or references are invalidated.
соответственно и работает как и питоний лист, тогда как у std::vector'а могут быть потрачены итераторы, если память перевыделять надо.
>не предназначено оно для такого
А что в твоём понимании "не предназначено"? Ведь работает, нигде запретов не было. Про запрет изменения словаря же, например, в PEP'е сказано ( https://www.python.org/dev/peps/pep-0234/ ).
Выходит, в плюсах можно, раз в доках есть? А в питоне в принципе ни про запрет, на про разрешение нет, относительно списков. Значит, можно? Ну там по дзену с прошением прощения, а не разрешения и всё такое.
>ничего идеологически не сказано насчёт случая модификации
А я не говорил конкретно про модификацию, я в принципе о назначении итераторов, отсутствие прямого упоминания модификаций в описании которых, на мой взгляд, как раз делает более логичным возможность добавлять элементы после начала итерации и дойти до них по ранее созданному итератору.
https://wiki.python.org/moin/Iterator
>An iterator is an object that implements next, which is expected to return the next element of the iterable object that returned it, and raise a StopIteration exception when no more elements are available.
Есть следующий элемент — выдаём его.
Другое дело, что могут быть иные ограничения, вроде способа хранения объекта в памяти, вроде тех же словарей или vector'ов, которые не дадут получить этот "интуитивный" исход. И количество вопросов в интернете поддерживают моё мнение, что люди хотят добавлять элементы во время итерации и удивляются, что итератор ломается, то есть работает не так, как им казалось (подсказывала интуиция, ведь доки никто не читает).
>often simpler
>скупое never do this
?
tl;dr: В общем, я считаю, что (у)знать это полезно, но как раз именно для того, чтобы почти не использовать в своём коде, но получив при этом порцию урины понимания внутренностей работы как питона, так и, эм, языков программирования в целом.
>показывать сразу с результатом выполнения
Не так эффективно, я считаю. Сначала всегда надо предоставлять возможность самому додуматься, а уж потом подсказаньки давать.
>Это реально уровня goto
Питонистам не привыкать, код cpython'а битком набит goto'шками.
>Везде говорится про iterator invalidation, undefined behaviour, never do this!1
>только если в доках явно написано
А разве где-то в доках питона такие тонкости пишут? Да и тут три с половиной типа мутабельных коллекций всего.
В плюсах вот, например, у std::list'а в append'е push_back пишут:
>No iterators or references are invalidated.
соответственно и работает как и питоний лист, тогда как у std::vector'а могут быть потрачены итераторы, если память перевыделять надо.
>не предназначено оно для такого
А что в твоём понимании "не предназначено"? Ведь работает, нигде запретов не было. Про запрет изменения словаря же, например, в PEP'е сказано ( https://www.python.org/dev/peps/pep-0234/ ).
Выходит, в плюсах можно, раз в доках есть? А в питоне в принципе ни про запрет, на про разрешение нет, относительно списков. Значит, можно? Ну там по дзену с прошением прощения, а не разрешения и всё такое.
>ничего идеологически не сказано насчёт случая модификации
А я не говорил конкретно про модификацию, я в принципе о назначении итераторов, отсутствие прямого упоминания модификаций в описании которых, на мой взгляд, как раз делает более логичным возможность добавлять элементы после начала итерации и дойти до них по ранее созданному итератору.
https://wiki.python.org/moin/Iterator
>An iterator is an object that implements next, which is expected to return the next element of the iterable object that returned it, and raise a StopIteration exception when no more elements are available.
Есть следующий элемент — выдаём его.
Другое дело, что могут быть иные ограничения, вроде способа хранения объекта в памяти, вроде тех же словарей или vector'ов, которые не дадут получить этот "интуитивный" исход. И количество вопросов в интернете поддерживают моё мнение, что люди хотят добавлять элементы во время итерации и удивляются, что итератор ломается, то есть работает не так, как им казалось (подсказывала интуиция, ведь доки никто не читает).
>often simpler
>скупое never do this
?
> Нет, это не я
Жаль, а то я хотел предложить сотрудничество.
> А разве QT-тян не слишком толстенькая?
Что ты имеешь против пухленьких тян?
Не имеет большого смысла ебаться с tkinter`ом, QT получше да и это будет отличным опытом и заделом на будущие pet- и не только проекты. Но конечно, хозяин - барин, бери что захочешь.
https://www.reddit.com/r/Python/comments/8geobo/copying_user_actions_from_one_selenium_driver_to/
Кстати, кто-нибудь делал ботов для игр и пытался на них заработать?
Если сайт полон жс'а может случиться так, что реквестами не обойдешься. Сам с таким сталкивался, когда парсер писал
Такой себе вопрос, по-моему. Человек хочет из кода нажать на кнопочку, потом в коде перехватить это нажатие, и снова из кода нажать ещё раз для других драйверов? Почему сразу третий шаг-то ему не нравится? Или он там вручную нажимает в одном окне и хочет это всё в другие перенести?
>>183032
Потому что в браузерной игре будет дохуя всего происходить, включая кучу ЖСа и возможно websocket'ы? Твои парсилки тут вообще никак не помогут.
Пытался куки подключать, но и они не помогли.
Думаю вот как-нибудь через консоль браузерную затестить, чтобы убедиться в правильности или неправильности ключей и переменных, но в голову пока ничег оне приходит.
Открой вкладку сети в консоли браузера, скопируй запрос и отправь его curl'ом. Вполне возможно, что какой-нибудь referer имеется или ещё что такое.
Если спроецировать на этот двачхк, то:
url = 'https://2ch.hk/pr/res/1182179.html' (М)
log = {'comment':'пост', 'name':'нейм''}
r = requests.put(url, data=log)
print(r.text)
Только тут, вместо /post.php, стоит /makaba/posting.fcgi
На выхлопе: {redirect: "/test/res/2058.html#12563", noko: true, id: "12563"}
Сейчас попробую вырубить обработку перенаправлений, но чую, это не поможет.
> Человек хочет из кода нажать на кнопочку
Ну там уже его маня-желания. Мне понроавился сам факт наличия самописного бота, задумываюсь над этим.
>>183032
Кхем-кхем, потому что не всё можно сделать реквестами и супом, в частности с JS ты проебёшься + у браузера функционал всё же шире и отладка проще. Гораздо проще к браузеру подрубить суп, при надобности, чем наоборот.
Как понял, при поступлении запроса из треда, его перенаправляют на бордалинк/post.php, но посты не идут, а я не знаю, что с этим дерьмом делать.
Что ты принёс? Вот пикрелейтед, потом постишь это в терминал и смотришь, что происходит.
>>183126
Ну ты либо даёшь ссылку на борду, либо решаешь всё сам, не засирая тред.
>>183109
>Мне понроавился сам факт наличия самописного бота
Да тут каждый второй бота в телеграм пишет. element.click() через селениум не сильно лучше. Смотря что там за бот, конечно, может там АИ нагибающий всех.
написал небольшой скрипт на питоне 3.5 под win7 x64 (с использованием openpyxl, tkinter, os). Работает норм на семерке. На win8.1 скрипт работает, но неверно. В чем может быть проблема? Самому проверить, что происходит на 8ке нет возможности? Мб на 8-ке (проверял другой чел удаленно). Как я понял, на 8-ке не правильно срабатывает именно логика программы. Мб сталкивался кто с такой же проблемой ? Мб os на 8-ке по-другому работает ?
>Ну ты либо даёшь ссылку на борду, либо решаешь всё сам, не засирая тред.
Тут https://loli_fox.org/b/res/119792.html аналогично, как и на многих других бордах.
>пикретейтед
curl: (61) Unrecognized content encoding type. libcurl understands deflate, gzip content encodings.
Попробуй поебстись с фризом скрипта. Pyinstaller - way to go.
Я могу предположить что в первом случае можно использовать pycuda, но я с ним не работал.
Просто есть примеры с обыкновенными def Window(): и там все ясно, а потом внезапно переходят на мозговыносящие классы с self'ами в каждой второй строке.
Без них вообще никак? Зачем они вообще по факту нужны?
Чтобы можно было класс красивая хуйня с двумя окошками наследовать, указывая, что в классе мемосики в первом окошке будет будет информация о мемасике, а в правом - сам мем, а в классе список Пынь левое окошко будет отвечать за срок и имя Пыни, а в правом будет анимированный виджет с динамикой экономики при этом пыни. При этом и мемосики и список Пынь будут иметь красивые статус бары сверху и снизу, и общие кнопки, так как наследуются от красивой хуйни с двумя окошками, которая эти статус бары и кнопки определяет. А может и нет, я хуй знает вообще.
Для телеги написать не проблема, там отличные доки, к библиотекам.
А тут вот для браузерной дрочильни. Сомневаюсь, что там нагиб какой-то, скорее гринд, но тем не менее.
>Я совершенный ноль в ООП
>PyQt5
КУДА ВЫ БЛЯДЬ ВСЕ ЛЕЗЕТЕ НАХУЙ, ТО СОКЕТЫ, ТО КЛАССЫ, ТО ПУТЬ ФАЙЛА, НИХУЯ НЕ ЗНАЮТ БЛЯЛЯЯЯ
Это основы, их нужно учить гораздо раньше, а не лезть в qt, не зная, что такое селфы и методы класса. 90%
тупейших вопросов в треде не задавалось бы, если хотя бы одну книжку по питоны ньюфаги осилили
Я осилил "Автоматизацию" Свейгарта, и там не было классов. Я также нашел сайт с переводом Dive into Python, там сжато рассказывается, что такое классы, но я нихуя не понимаю. И в основном, нахуя они все-таки нужны.
И все-таки оригинальный вопрос был, можно ли обойтись без классов, работая с PyQt5. Если нет, буду пытаться дрочить их тогда хардово.
Ща попробовал тоже самое в PyCharm, и там тоже сорцов нет, открывается файл builtins.py, где в теле функций написано pass и всё.
Хотя щас появилась мысль, что эти стандартные функции реализованы в интерпретаторе, а он соответственно на каком-нибудь сишке написан?
Чё-то в джаве с этим всё просто и понятно, а тут хуй разберёшься
Всё, чё-то я жёстко тупанул, смотри выше сообщение
Идея в том, что на экран выводится таблица, которая фильтруется по выбранному из списка параметрам, нужно перебрать все варианты выбора фильтров. Есть список из 10 переменных. Каждой присваивается значение, выбранное из дроп-листа.
Как определить, был ли уже элемент в списке, и если был, то не учитывать его?
Там нехуй дрочить, но для начала выучи основыс 'укусом питона'.
ООП это хороший способ организации кода, и не просто так его юзают в КьюТэ и много где еще, в качестве стандарта.
Проиграл с ответа про потоки
Дано:
a='приветпривет сосиписосы'
c=a.split(' ')
glasn=['а','ы','е','о','и','ю','я','э','у']
glasn_res={}
count_glasn=0
Результат:{'приветпривет': [4], 'сосиписосы': [5]}
{
Не нашел что-то
Еще блинов с лопаты поешь
Можно, конечно, элементарно проверять вхождение элементов строки в список гласных (for letter in string: ...), но интересно посмотреть, что скажут знающие аноны, наверняка есть a python way, через collections.Counter, например.
юзаю aiogram библиотеку.
Вот кусок хендлера, планировщик внизу
И как так странно, вроде уже есть, но импортироваться не хочет.
Блять, верно, проебался с дубликатом папки.
Список гласных должен быть множеством, так проверка вхождения будет выполнятся за константное время
А дальше просто итерируешь слово и инкрементируешь счетчик
Ах да, можешь еще сделать ебануто и вместо инкрементируемого счетчика сделать функцию с yield'ом и itertools.count, ну что бы объект счетчика каждый раз не создавался
Или через counter, как предложил анон выше тоже можно
from collections import Counter
glasn={'а','ы','е','о','и','ю','я','э','у'}
my_string = input()
counter = Counter(my_string)
print(sum(counter for i in glasn))
Блядь, двощ съедает квадратные скобки и i
Но пока тихо.
Никогда не понимал этого холивара, как почитаешь их срачу, так ебануться можно, по всем топ-галеры плачут и ждут этих хероев.
Бля эта пикча из треда про доминатора маршрутки. Как много воды утекло.
а для все остальных кому вкус говна нерпиятен, я сообщаю - у нас охуевшая обновка граждане
:3
Такая, что если аргумент указан со звёздочкой, то и передавать туда список тоже придётся со звёздочкой, распаковав его таким образом на отдельные аргументы. Вдобавок, ты не можешь иметь позиционные аргументы после звёздочки.
>>184067
Вам только завезли выделение колонк?! Или только выделение колёсиком новое и это типа так круто?
Выделение колонок давно было
>Вам только завезли выделение колонк?!
щас вимоеб мне пояснит что и них это было уже 50 лет назад, или пчармист скажет что было 20 лет назад, ну а то что все остальное было неюзабельным говном, они конечно же упускюат из виду
>выделение колёсиком
для пидоров, у всех нормальных людей думаю о здоровье и комфорте на мыши три кнопки
>Но Лутц говорит
Ты бы еще в мануал по Fortran 69 посмотрел. Лутц устарел и без капитального обновления для туториала по Питону в f`{datetime.now()}` не годится
> что мешает мне сделать свой HTTP handler
Ничего не мешает. А можно еще на ассемблере побайтно строки парсить, тоже ничего не мешает.
> ты имел в виду, что в фреймоврках нет CGI?
Фреймворки, питон и CGI - вещи практически не взаимосвязанные. CGI - это стандарт такой, договоренность, что сервер будет вызывать любой исполняемый файл, которому на стандартный вход будет подаваться окружение оболочки в определенном формате, а все, что придет по стандартному выводу - будет отдано клиенту (то есть в браузер). Это все, весь хуй до копейки. Что конкретно будет исполняться - сервер это не волнует. Хоть баш, хоть питон. Технология старая, с массой проблем и на сегодня имеет только дидактическую ценность.
Ты бы лучше написал, что тебе надо добиться.
>джайтонами, которые не используются в коммерческой разработке совсем
Надо рассказать коммерческим разработчикам, а то они не в курсе. В 2005-2007 75% онлайн рекламы тебе показывал код на jython
Нету. Они вообще охуевшие в последнее время, в прошлом бандле половина книг тупо опенсорсная и лежит бесплатно на гитхабах авторов. Скажи нет капитализму и посылай нахуй жадных пидарасов.
Ты думаешь, кто-то переписал проект с доходностью в четверть лярда чисто потому, что немодно стало? Если тебе не приходится с ним работать на твоем апворке - это не значит, что никому не приходится, так что поаккуратнее с заявлениями.
Какой год? Какая контора? Я допускаю, что в конце нулевых-самом начале десятых его юзали, но 8 лет прошло уже, и джайтон умер, к тому же
Могу только сказать, что сейчас это часть DoubleClick Bid Manager. Больше по части названий и дат сказать ничего не могу, т.к. подписывал кипы nda, а на двачах гуглеры тусуются 100%. Могу рассказать общие детали реализации. Проект был активен еще буквально 2-3 года назад.
Умер джайтон или нет будет понятно если по релизу для 3.7. Если не будет, тогда да, скорее всего сдох. А так последний релиз был для 2.7.1, щас там только багфиксы выходят, достаточно регулярно.
Ничоси, я посмотрел историю коммитов, выглядит живее многих. Хотя меня все таки смущает, что там только второй питон. Джайтон как легаси я понимаю, но новый проект и вопросы на собеседование по нему в 2018 это слишком. Хотя, если тройка выйдет, то может он снова популярность приобретет
"Упиздить" у тебя тред - правильное решение. Сам же украл тред и испоганил шапку, а он вернул нормальный тред и шапку, жаль только нумерацию проебали.
Иди нахуй, болезненный, со своим ВСкодом и не устраивай срач.
> жаль только нумерацию проебали
Треды никуда не сохраняются ведь, смысл в нумерации? Только если на цифру подрочить. Но она и так столько раз терялась, что это уже и не важно
Скрин честно взят с БД треда
>Фреймворки, питон и CGI - вещи практически
Я понял, что CGI это стандарт, но просто тот анон так написал, что я подумал, что всякие Джанги например помогают писать приложения по стандарту wsgi, а не cgi.
>Ты бы лучше написал, что тебе надо добиться.
Вкатиться в бекенд для начала. Раз Лутц устарел да я и закончил его читать почти, то может посоветуйте, что дальше читать.
Я сначала думал, что надо первую прочитать, про Джанго, но я так понимаю, она именно про написание тех самых скриптов-обработчиков-запросов по стандарту wsgi, cgi, я хз уже, а хотелось бы ещё что-то по разработке в общем: как развернуть apache\nginx да и что из двух стульев выбрать, как туда свой Пистон вставить, какую из сотен бд туда пристроить, как для той же MySQL есть ее mysql.connection и SQLAlchemy, и я не вижу между ними разницы. Я думаю вторая и третья книги про это, но они помечены как middle, а я даже не junior ещё, так что хз.
>>184190
Мне анон в позапрошлом треде вот это в лицо кинул: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
лол, мой скрин
Да блять, ну что за хуйня. Зачем можно передвигать картинки в предпросмотре, если Двач все равно их расставит как захочет. Ещё и ctrl-c опять блять сука не прожался, который раз уже. Я вот эту ссылку хотел дать:
https://github.com/gregbanks/python-tabulate
Стоит ли учить вашу хуйню? Знаю c#, c++, так что сомневаюсь, что проекты на питоне получатся более охренеными, но а вдруг работодатель хз,конечно, я же накуй им не нужен ищет бого-питонов.
стоит. овердохуя инструментов написано на питоне
порог входа не высок особенно с сишными скилами. Достаточно базового ООП и будешь мочь искать и применять и даже крафтить питонячие инструменты
Мне надо обойти защиту от ддос на одном аниме сайте, вот пытаюсь подобрать инструменты. Не подскажешь, анон, с помощью этих модулей я смогу совершить задуманное?
А что даст переход на котлин и шарп? Что насчёт Qt, Gtk? Вообще что ты хочешь от тулкита кроме набора кнопочек с окошками?
Не более чем браузер который можно заскриптовать. Так-то ддос можно и в браузере сделать же.
ну вот и я о чём, я хз что есть в кт, но в киви ткинтере крове кнопочек и окошем мало чего есть, но ладно даже пусть так, я целый день ебался с ним чтобы подключить СУКА ФУНКЦИЮ которая так и не сработала. блять!
Стоит. Работать скрипт будет медленно, но человекочасов на его разработку уйдёт несравнимо меньше.
Везде будет так же. Что-то нестандартное нужно рисовать уже самому, компоненты кастомные делать, вот это всё.
типо нахуй мне тратить время на еблю со всем этим если можно как нормальные люди запилить проект в андроид студии
есть такое, и я не против дальше с ним работать, но устроено там всё как-то через жопу, документация вроде красивая и аккуратная, но какая-то неполная, непонятно как идёт наследование итд
Технически ты можешь сделать cgi на основе wsgi. wsgi он как бы глубже в питоне сидит и не декларирует никакого межпроцессного взаимодействия, в отличие от cgi/fastcgi.
тот анон
Бери что-нибудь популярнее. Tk/киви очень нишевые, ими пользуется три с половиной питониста на весь мир, поэтому и документацию некому писать. Это как раз тот случай когда github-stars-driven-development прям самое оно.
>github-stars-driven-development
случай не единственный
>>184300
Думаем что питон и гуи это разного поля ягоды. Пушто графон рисуют хардверные инструменты которые жрут много кпу поэтому их надо компилировать. Рекомендую не елозить елдой об салому то есть не терять время на эту еботню в питоне а вкатываться в яву. это самый адекватный совет пушто ява из компилируемых языков ближе всего к питону
...ну или котлин да... стильно модно молодежно
Да нормальные гуи на питоне. Рисовать графон-то всё равно будет сишный код, который в этом тулките. Правда байндинги без знания сишечки понимать будет тяжеловато, далеко не ко всему они идиоматично питонизированы. Возможно ты и прав в общем-то..
Со splash не работал,но вот селениум здесь большинство юзало.
Все делается просто и быстро, доки хорошие, примеров много, тут тебе тоже подскажут - дерзай
Java близка к питону?Это ты тролишь так?Если хочется компиляции и при этом писать быстро и без ебли, то нужно юзать D, что я и делаю
Для мелкопроектов, почему бы и нет? Когда джанги много, а с другими фреймворками ебаться нет желания.
Ну и как по мне - с него хорошо начинать, там нет такого избытка батареек и настроек, в которых можно потеряться, в отличии от джанги. Но это имхо.
>>184512
Можно и киви, выбор за тобой. Мне просто показалась документация киви какой-то странной и неполной. Я вот Toga решил обмазаться. Выбор инструментов широк - дерзай.
И зайдет ли она (судя по описанию ее, да) если у меня опыт уровня школьного программирования на Pascal?
Если хочется прям поковырять все и вся- да.
Но для такого я б выбрал джангу, там готовые модули и даже движок вроде на гите есть.
короче не серьезный фреймворк,чисто для ковыряния,эх
Подскажите как написать генератор кароче вот шоб было вот вот так
['a' , 'A' , 'b' , 'B', ... ,'y' , 'Y' , 'z' , 'Z']
сложна сука непанимаю как
тагда пошел на хуй на турал
[letter for pair in zip(string.ascii_lowercase, string.ascii_uppercase) for letter in pair]
Что делать, если не устанавливается фича, которая устанавливает другие фичи? P.S. Я совсем-совсем зеленый
а тупанул немножк
Есть текстовый файл file.txt.
Его содержимое:
>Попробуй еще
>этих
>французских
>булок.
Два вопроса:
1) Можно ли средствами Питона удалить строку
>этих
?
2) Заменить строку
>французских
на
>британских
?
да я понял что там надо было range() и это конструкция мапинг листа, но все равно не понятно, но я пока забил на такой сложный мап у меня мозг сломался
list comprehension это, гугли, очень часто используется.
На фласке все ручками нужно будет делать, на джанге есть готовый движок.
Хочешь - пробуй, вникай, и на том и на том.
Мне больше нечего добавить, это уже разговор ниочем.
Забавно
>>> import pymorphy2
>>> morph = pymorphy2.MorphAnalyzer()
>>> p = morph.parse('стали')[0]
>>> p.tag
OpencorporaTag('VERB,perf,intr plur,past,indc')
Спасибо огромное. Преодолел еще пару ошибок -- и все заработало
type() и print()
Какая книга вам больше всего помогла(понравилась) при изучении питона?
Ты trall что-ли? Прямо на сайте либы всё расписано.
>Метод MorphAnalyzer.parse() возвращает один или несколько объектов типа Parse с информацией о том, как слово может быть разобрано. В приведенном примере слово “стали” может быть разобрано и как глагол (“они стали лучше справляться”), и как существительное (“кислородно-конверторный способ получения стали”). На основе одной лишь информации о том, как слово пишется, понять, какой разбор правильный, нельзя, поэтому анализатор может возвращать несколько вариантов разбора.
>Тег - это набор граммем, характеризующих данное слово. Например, тег 'VERB,perf,intr plur,past,indc' означает, что слово - глагол (VERB) совершенного вида (perf), непереходный (intr), множественного числа (plur), прошедшего времени (past), изъявительного наклонения (indc).
Гугл, электронный вариант.
Р. Лафоре+Саммерфилд+укус питона
Ну случай если ты совсем нихуя не знаешь (а уже в pymorphy какой-то полез), то
>p = morph.parse('стали')[0]
делает то же самое, что и
>x = morph.parse('стали')
>p = x[0]
Вполне рационально, что не так? Хороший выдержанный фреймворк, прошедший испытание временем. Про мелкоподелия не слушай, то что он называется микрофреймворк ещё не значит что его можно использовать только для микросайтов. Микро он потому что в нём нет к примеру встроенной ORM, и простейший работающий проект это один файл и пять строк кода.
Вот доки на этот виджет, но сам уже ничего не понимаю. https://kivy.org/docs/api-kivy.uix.image.html
Зачем?
Домашнее задание? Тогда нужно читать всякое разное и думать самому.
Читаешь в цикле каждую строку и сравниваешь с тем что нужно. Читай доки работы с файлами.
Дам пару подсказок:
1. Нельзя просто заменить что-то в середине текстового файла. Нужно его весь прочитать, а потом весь записать на диск.
2. "Удаления" подстроки можно добиться заменой её на пустую строку (т.е. "")
Функции замены подстрок легко нагуглишь.
>>184953
Спасибо за наводку, я посмотрю, что можно сделать.
Просто я где-то читал, что нельзя заменить строку, не заменив ее тем же количеством символов. Это и отпугнуло.
Мне приходилось вручную вставлять в скрипт все строки файла для полной перезаписи. Что-то уровня:
with open(file.config, 'w') as doc:
doc.write('Я\n'
'ебу\n'
'собак.')
>Просто я где-то читал, что нельзя заменить строку, не заменив ее тем же количеством символов.
Так и есть. Именно поэтому я и сказал, что ты перезаписываешь весь файл. Ты ведь не можешь замазать слово из двух букв в тетрадке и вписать туда "трактор", верно? Тот же принцип и в памяти на диске. Есть много нюансов, плюс файлы на диске не одним цельным куском часто идут и т.д., так что я про самый простой случай.
При замене подстрок в питоне, в принципе, происходит то же самое: он берёт твою изначальную строку и создаёт новую, заменив какое-то слово на другое. Фактически, ты не заменяешь слово, а создаёшь строку из "слова до заменяемого" + "новое слово" + "слова после заменяемого".
Спасибо за разъяснение. Получается, работа у меня идет не с содержимым файла, а с временной его копией, которая потом перезаписывается в этот файл.
Ну и зачем ссылку на доки дал?
1. Неси свой код, ибо в нем проблема и только в нем.
2. Юзай kv, это гораздо лучше чем километры питоновского кода и потом поддерживать/дополнять проще. Представь себе веб приложение, где ядро - питон, а KV - хтмл.
Знакомый бросил, 27 лвл, но так дурачком и остался с ПХП вместо мозга, сейчас по модным языкам скачет и не может выбрать ничего
Алхимию/пони/пиви/чтоугодно бери на выбор. Что значит чистый питон?
Хм.. Сейчас попробовал без всего и сработало, хотя раньше что-то не так было, требовал аргументы.
Хочу вставить в проект просмотр картинок или отображение их на одном из layout'ов или всплывающее окно, то есть:
def image(self, instance):
убирает оба textinput'а, а на место их лепит картинку
deg build(self):
bt = Button(text='Image', on_press=image)
Стыдно, что не могу нормально объяснить, но могу куски своего кода прислать. Хотя надеюсь, и так будет понятно.
И ещё, после этого хотел заняться размещением этих картинок в кеше. Сейчас уже есть функция, которая скачивает, сохраняет в отдельной директории и показывает с помощью PIL.Image.show, но это слишком корявый костыль и работает не совсем так, как надо.
а если без этого?
я про апач и энжин икс
Всё юзаю, джангу в том числе.
У Лутца две книги. Learnign и Programming in Python 3. Вот вторая после книги с таким же названием, но Саммерфильда, нормально зашла.
Ну тут дело такое, мне вот она в начале лучше зашла, а потом укусом питона шлифонул и всё.
a = []
a = list()
Что по этому поводу говорит PEP8?
А ты хорош, анон. Спасибо.
>но новый проект и вопросы на собеседование по нему в 2018 это слишком
А разве началось с вопросов на собеседования? Анон вроде интересовался, есть ли смысл его постигать, а постигать-то там и нехуй вообще: одна особенность насчет классов, определенных в жаве, как вызывать жава-код и как вызывать житоновский код из жавы. Это буквально один-два вечера, остальное - 100% питон, вплоть до побажного копирования стандартной библиотеки.
Новый проект - ну тут дело не в житоне совсем. Во всех проектах на статике наступает момент, когда четко вырисовывается часть проекта, где нужна гибкость и производительность (человеческая) динамики. В С\С++ это традиционно lua, в жаве житон очень хороший выбор. Бывает еще так, что проект на питоне упирается в производительность, когда уже горизонтально масштабироваться вроде некуда и пора думать, как выжимать больше попугаев из каждого инстанса. Переход на жвм очень хороший вариант.
Ты вообще с питоном насколько хорошо знаком? Складывается впечатление, что тебе стоит получше освоить сам язык и основы предметки, а то у тебя даже понимание направления очень смутное. Твои пикрелейтеды: сетевая байтоебля, шаблоноебля уровня приложений, запросоебля и ее маршрутизация. Это все очень разные аспекты и каждый из них по отдельности достоин карьеры на всю жизнь. Может ты сначала поточнее определишься, что тебе надо?
Просто тебе надо было читать документацию по tcl. В питоне просто привязки, считается, что ты уже знаешь tcl\tkinter.
>После прочтения Bite of Python, мои навыки можно оценивать будет как "Базовые знания Python"?
Базовые - нет. Для базовых навыков надо пару лет практического использования.
itertools.chain.from_iterable(zip(strings.ascii_lowercase, strings.ascii_uppercase))
забавно у нас flatMap называется
>забавно у нас flatMap называется
У нас предводитель забавный. В какой-то момент работал unpacking в компрехеншнах, но выпилили, гады. Было б вообще красивенько:
>[*pair for pair in zip(ascii_uppercase, ascii_lowercase)].
До сих пор не въезжаешь? Почитай что-нибудь базовое про операционные системы. Процессы, треды, сокеты, пайпы, сигналы, вот это всё.
Разбери, очень интересно.
Ящитаю, надо было просто отность к pair, а если хочется ко всему for — надо в скобки брать. Ну вот как генератор обязывают в скобки, если он не единственный аргумент
>(x for x in x, y)
>((x for x in x), y)
Могли бы и тут костылик вставить.
Самое элементарное - реплейсом снести и просто дописать в конец.
560x420, 4:52
Вот есть родительский класс:
class A:
....list_attr = ['b']
И я хочу унаследовать от него примерно так (но этот код не работает):
class B(A):
....list_attr = ['b'] + super().list_attr
Можно конечно например @property использовать:
....@property
....def list_attr(self):
........return ['b'] + super().list_attr
Но тогда list_attr будет доступен только у инстансов класса B, а не у самого класса.
Давно не писал на змее, но вроде чтобы дочернему классу обратиться к родительскому ему нужен super(), а без создания экземпляра это никак не сделать.
re.sub(r'a', 'b', "aaaaa", "aaaaa".count("a")-1)
>>185567
A.list_attr?
Можешь попробовать как-то накостылять через классовые методы и устанавливать значение в __init__ или __new__, но это фигня какая-то, лучше задачу свою опиши и найди другое решение.
Насколько я понимаю, на момент обработки питоном строки list_attr в классе B динамически ты никак к A обратиться не сможешь, потому что B ещё не является его сабклассом даже, потому как даже не существует (легко проверить: https://repl.it/repls/IndigoVioletZettabyte ). Ну а раз нет никакого рефернса к B, то и к его родителю, разумеется, можно только напрямую по имени класса.
>>> last_index = text.rfind('d')
>>> print(''.join(['a' if char == 'd' and count !=last_index else char for count, char in enumerate(text)]))
Это через фаербейс нужно на телефон слать нотификации на каждый добавленный комент, или как ?
скрипт по таймеру запрашиваетgj http новую информацию и рассовывает её на место на странице
то есть клиенты шлют запросы на сервер раз в какое-то время?
Но на фейсбуке же например видно, если кто-то печатает, как это реализовывается?
В Ruby on Rails это называется websockets, возможно, в других фреймворках так же.
вебсокеты, скорее всего.
Можешь ещё про это почитать — https://en.wikipedia.org/wiki/Comet_(programming)
это называется long-pooling http requests. С приходом стандарта http 2.0 это стало возможным. Клиент устанавливает http соединение с сервером и сидит ждёт, как только кто-то начинает тайпать, сервер отдаёт клиенту ответ, что кто-то тайпает. КОнект обрывается. Клиент опять устанавливает соединение с сервером и сидит ждёт.
Знаком по двум книгам, вот и спрашиваю, что читать следующим.
>сетевая байтоебля
А мне говорили байтики передвигать туда-сюда - это Си.
>и каждый из них по отдельности достоин карьеры на всю жизнь
Это же все части веба, которые надо знать, чтобы вкатиться, не?
>А мне говорили байтики передвигать туда-сюда - это Си.
ты путаешь байтики и битики. В особо запущенных случаях на питоне люди считают байты и складывают их в куски а потом сериализуют, правда я не знаю кто в 18-ом году этим еще занимается когда вокруг сплошное веб макакство.
560x420, 6:30
>A.list_attr?
Угу, так и сделал.
Не придумав никаких кейсов где могло бы понадобиться обращение к базовому классу через super().list_attr, когда можно тупо написать имя этого класса.
Кейс в данном случае в принципе может быть только один: ты переименовываешь класс A, но не хочешь вручную потом менять все отсылки на него в дочернем. (Ну или меняешь класс, от которого наследуется B, что, в принципе, почти то же самое.)
Почитал ещё немного, зря сразу сюда написал. Сейчас попробую использовать юзер-агент.
Как соскочить на конкретную практику, а не только теорию и решение тривиальных задач по учебнику?
Придумай себе задачу.
В общем, я в тупике, выручайте. Неважно что я пишу - пишарм возвращает постоянно один и тот же результат с самой первой попробованной мною строчкой, даже если я её вообще удаляю! ВТФ, где логика, что происходит? Это я что-то упускаю, или просто глюк и пришло время переустанавливать шиндошс?
Ну вон же он тебе пишет что запускает: config/scratches/scratch.py
Хули вы вообще лезете в этот пайчарм? Берите блокнот, cmd и по-честному делайте как вам рассказывают во всяких длинных интродакшенах. Это блеать как взять станок с циркулярной пилой чтобы отрезать себе хлебушка.
Вот дерьмо, спасибо! Понятия не имею почему он именно его запускал когда у меня единственный проект открыт был.
>Хули вы вообще лезете в этот пайчарм
Ну как же, советуют профессионалы ведь! Сразу осваиваться в профессиональной среде смолоду.
я до классов дошёл, это пиздец если честно
Я прочитал все но нихуя не понял, говорить про классы и никаких классов не показывать бред сука
Подскажите как можно выучить путина не по лулзу, пожалуйста
Это не генератор вроде как, я имелл ввиду вот эта -
alphabet, uphabet = [chr(x) for x in range(97,122+1)], [chr(x) for x in range(65, 90)]
print([letter for pair in zip(alphabet, uphabet) for letter in pair])
Для всего этого в emacs есть команда.
1 монитоинг памяти, особенно инновационные параметры zram
2 функционал earlyoom, c инновационной фичей: реакцией на реальную долю zram в оперативе
ах да, еще он умеет жрать память с регулируемыми скорость, объемом, энтропией для иссследования реакции линукса на дефицит памяти
Сам пользуюсь и тебе советую. Что тут непонятного?
Swap в zRam: тонкости работы
Это статья о нехватки памяти в линуксах, о поведении линуксов при нехватке памяти, о средствах борьбы с нехваткой, о средствах сохранения работоспособности системы при дефиците доступной.
Я разрабатываю memdler, обработчик нехватки памяти. Это набор скриптов на Python 3, включающий в себя:
- oom-trigger, скрипт для уменьшения количества доступной памяти, для изучения поведения системы в условиях OOM.
- monitor, прога для мониторинга размеров доступной памяти, особенно параметров zram.
Уникальна тем, что мониторит реальную степень сжатия, выдает реальный профит и реальную долю зрам в памяти.
- killer, аналог программы earlyoom. Отличие киллера в том, что сначала killer пытается корректо завершить процесс с высшим oom_score с помощью SIGTERM, и только при безуспешности последнего посылает SIGKILL. Также отличие киллера в том, что он реагирует на реальную долю zram в памяти.
- zram, скпипт монтирования свопов.
- clener, очиститель tmpfs от крупных файлов.
Киллер-фича мемдлера, на мой взгляд - это возможности работы со zram.
Только мемдлер мониторит реальную долю зрам, и только мемдлер реагирует на критическое увеличение этой доли.
Скорее всего вам не нужен мемдлер, если вам не нужен zram.
В чем, собственно, проблема? Зачем мне зрам и мемдлер?
Проблемы две:
1. памяти много не бывает, и zram - отличное решение для храниения свопа в сжатом виде, щажения диска.
Плюсы зрам: сжатие tmpfs (zswap этого не делает), полное отсутствие напряга диска для хранения свопа.
Минусы - ограниченность размера при высокой энтропии хранимых в нем данных. Однако средняя степень сжатия данных при забитии памяти профилями браузеров равна 3:1, что весьма нелохо и позволяет фактически удваивать полезный разммер памяти за счет незначительной нагрузки на процессор.
2. Поведение системы при критическом снижении доступной памяти и невозможности выделить память для приложений. Может запуститься OOM killer, но это происходит не всегда. Запросто может произойти так, что система просто зависнет на много минут. В отсутствие zram с этим легко справляется earlyoom - демон на Си, превентивно убивающй процесс с наибольшим oom_score. Но при использовании zram всплывает одна проблема - данные, хранимые в zram, могут иметь разную энтропию, и при наполнении zram данными с высокой энтропией возможна ситуация, когда устройство zram заполняет критическую долю памяти (до 94% MemTotal). Earlyoom же реагирует только на значения MemAvailable и SwapFree, и не реагирует на долю зрам в памяти, что может привести к зависаниям и запуску ядерного OOM killer. Memdler способен решить эти проблемы и может реагировать также (помимо MemAvailable и SwapFree) на долю зрам в памяти.
Swap в zRam: тонкости работы
Это статья о нехватки памяти в линуксах, о поведении линуксов при нехватке памяти, о средствах борьбы с нехваткой, о средствах сохранения работоспособности системы при дефиците доступной.
Я разрабатываю memdler, обработчик нехватки памяти. Это набор скриптов на Python 3, включающий в себя:
- oom-trigger, скрипт для уменьшения количества доступной памяти, для изучения поведения системы в условиях OOM.
- monitor, прога для мониторинга размеров доступной памяти, особенно параметров zram.
Уникальна тем, что мониторит реальную степень сжатия, выдает реальный профит и реальную долю зрам в памяти.
- killer, аналог программы earlyoom. Отличие киллера в том, что сначала killer пытается корректо завершить процесс с высшим oom_score с помощью SIGTERM, и только при безуспешности последнего посылает SIGKILL. Также отличие киллера в том, что он реагирует на реальную долю zram в памяти.
- zram, скпипт монтирования свопов.
- clener, очиститель tmpfs от крупных файлов.
Киллер-фича мемдлера, на мой взгляд - это возможности работы со zram.
Только мемдлер мониторит реальную долю зрам, и только мемдлер реагирует на критическое увеличение этой доли.
Скорее всего вам не нужен мемдлер, если вам не нужен zram.
В чем, собственно, проблема? Зачем мне зрам и мемдлер?
Проблемы две:
1. памяти много не бывает, и zram - отличное решение для храниения свопа в сжатом виде, щажения диска.
Плюсы зрам: сжатие tmpfs (zswap этого не делает), полное отсутствие напряга диска для хранения свопа.
Минусы - ограниченность размера при высокой энтропии хранимых в нем данных. Однако средняя степень сжатия данных при забитии памяти профилями браузеров равна 3:1, что весьма нелохо и позволяет фактически удваивать полезный разммер памяти за счет незначительной нагрузки на процессор.
2. Поведение системы при критическом снижении доступной памяти и невозможности выделить память для приложений. Может запуститься OOM killer, но это происходит не всегда. Запросто может произойти так, что система просто зависнет на много минут. В отсутствие zram с этим легко справляется earlyoom - демон на Си, превентивно убивающй процесс с наибольшим oom_score. Но при использовании zram всплывает одна проблема - данные, хранимые в zram, могут иметь разную энтропию, и при наполнении zram данными с высокой энтропией возможна ситуация, когда устройство zram заполняет критическую долю памяти (до 94% MemTotal). Earlyoom же реагирует только на значения MemAvailable и SwapFree, и не реагирует на долю зрам в памяти, что может привести к зависаниям и запуску ядерного OOM killer. Memdler способен решить эти проблемы и может реагировать также (помимо MemAvailable и SwapFree) на долю зрам в памяти.
Ты можешь выпустить его без лицензии и всё будет окей ровно до момента принятия первого пулреквеста. А так попсовый выбор это MIT либо (L)GPL. Но есть ещё сотня всяких особенно изъёбистых лицензий наподобие Apache, которые по сути те же MIT/GPL только с какими-то дополнительными, более правильными™ условиями. Лично я везде MIT леплю где это возможно.
Спасибо.
>Хули вы вообще лезете в этот пайчарм? Берите блокнот, cmd
Хули вы вообще лезите во все эти ножи? Берите камень поострее и режьте им хлеб.
>>185974
Может тебе пока рано ещё. Я так в 8 классе решил в С++ вкатиться после прочтения 1 книги по Паскалю лол., и на объяснении классов выкатился нахуй.
>Берите камень поострее и режьте им хлеб.
Таки да. Чтобы потом не задавать вопросов почему палец отрезало.
Сейчас остановился на второй части 120 страниц из 1200, ебануться. Пока читал первую, который я во многом знал с ютубчика, все ок было, начали читать вторую часть. Сука, я не могу, какая-то вода вперемешку с какими-то профессиональными жаргонизмами. Он точно норм? Такое ощущение, что тип тупо ради бабок это говно написал, типа "Глядите чего накатал! Покупайте.". Помоги анон, может я конченный. Я типа двигаюсь, но пиздец медленно. Прокрастинация заебала
перекатывайся в официальный доки Питона. Тот же вводный туториал. Луц не для тебя. Что ты их него вообще хочешь узнать? Нахуй вы его читаете воще?
В шапке ньюфаг треда в помощи по питону его советуют. Так доки на ингрише, я на ингрише не осилю. Может сначала "Укус питона" навернуть?
Бля вот серъёзно; половиной что есть в книге ты пользоваться не будешь. У питона переизбыток всякой полезной хуйни. Как правило знанием 10 процентов любого современного языка ты уже сможешь работать джуном. Главное хватка. Потом по пути сам решишь в какую сторону надо копать. И копать надо по официальным докам. Я бы на твоём месте лучше сосредоточился для на чала на операционно системе и учился уже на практических задачах.
>операционно системе
О какой операционной системе, поясни пожалуйста.
За совет спасибо, воодушевил. Прям человеческое тебе, братишка.
Я плох в ингрише, думаю мере изучения программирования сам мне поддастся.
Я тебе советую поставить Убунту очень приятная хуебень и начать разбираться в файловой системе, директориях, как работают интрпретаторы, возможно капнуть немного C. Вот для этого книга на русском может помочь. А книги и туториалы по програмированию надо читать только на инглише.
Я уже на Линуксе, тут вроде все понятно.
>А книги и туториалы по програмированию надо читать только на инглише.
лол, напомнило элитистов из фотача: "Кто смнимает не на лейку, или как минимум на фуллфрейм - все холопы и говно!", или даже бояр из анимеча: "кто смотрит не в оригинальной озвучке - чернь и гниль! И сабы отключите тоже, или не труЪ!" Вот так же и ты тут прямо сейчас.
Если поставленной цели проще достичь читая литературу на родном языке и в привычной ОС - нет необходимости изъёбываться и ломать себя полностью. Конечно, то, что в 2018 не знать английского - это себя не уважать, это не отменяет, но для конкретной цели: научиться кодить на пытоне это не является условием. Как и линупсы.
Не, с линуксом рили дельный совет, здесь намного проще и удобнее + понятнее о чем пишут + пригодится 100%. Энивэй я перекатился заранее. Он же не говорит отказаться от старой оси.
В том то и дело, что до ребута.
Ситуация такая, есть поле гендер у модели пост, значение у него условно для всех, для мужчин и для женщин ('all', 'male', 'female')
Есть текущий юзер с полом, нужно написать такой filter чтобы в случае с 'all' все пользователи могли видеть, но в случае если там 'male' 'female' только пользователи определенного пола
Циклом for долго перебирать
Q-object
Допустим, у меня есть продакшн опыт с джангой, пет-проекты на рест-фреймворке. Знаю модный фичи пистона - декораторы-йелды, функтулсы, коллекшнс. Пишу тесты с mock. ABC не знаю, руки не дошли. Могу написать какой-нибудь микро-проект типа телеграм-бот+постгрес+рестфреймворк и все в докерах. Селери-реббит знаю на уровне хелловордолв.
За сколько бы вы взяли такого кодера? (допустим, в СПБ)
Допустим, я еще научюсь писать тесты с фиктсурами для постгреса на pytest и освою сам pytest (до этого писал всегда на unittest) - это в ближайших планах. Сколько тогда я буду столить?
Не слушай эту зелень >>186291
То что ты перечислил интепесно, а как у тебя со знанием стандарта языка? Pep-8, который. Что с алгоритмизацией? Как с фронт-эндом дела? Знание библиотек плюс, но маленький.
Имел опыт работы уже? Плюсом будет, если проходил стажировки+участие в митапах. Огромным плбсом будет работа в команде и работа над аналогичными проектами по профилю конторы, куда придешь устраиваться.
Если никакого опыта нет, окромя как дома проект на гитхабе по туториалам из инета - на работу можешь не рассчитывать.
Ищ твоего багажа не совсем понятно, что ты за кодер откровенно говоря. Имхо, даже на минимум не тянешь.
Что-то ты мне сам зелененьким кажешься, братишка.
>Pep-8
Я не представляю себе человека, которому нужно знать
пеп8 в 2к18, когда есть линтеры и автоформатеры. Впоть до того, что дженкинс может пулреквест нахуй послать.
>Как с фронт-эндом дела
Зачем он нужен бекендщику если в 2к18 у нас буквально десятки вариантов фронтенд-стеков? И вероятность того, что 2 наугад взятые питониста знают одинаковый фронтенд равна нулю? Я даже не гворю о том, что во-первых Rest API, во вторых экономически эффективнее иметь отдельную команду dedicated фронтендеров.
>на работу можешь не рассчитывать
Ты не поверишь, я нашел работу в бекенде прислав в резюме лабы по алгоритмам из универа.
Добавь деталей. Ты хочешь получить все пикчи и сразу же отправлять себе в лс или как?
Кстати, анон, можешь мне объяснить чому пик 1 работает, а пик 2 - нет?
Копай в сторону Django Channels
> Я не представляю себе человека, которому нужно знать пеп8 в 2к18, когда есть линтеры и автоформатеры. Впоть до того, что дженкинс может пулреквест нахуй послать.
Спрашивают до сих пор.
> >Как с фронт-эндом дела
> Зачем он нужен бекендщику если в 2к18 у нас буквально десятки вариантов фронтенд-стеков? И вероятность того, что 2 наугад взятые питониста знают одинаковый фронтенд равна нулю? Я даже не гворю о том, что во-первых Rest API, во вторых экономически эффективнее иметь отдельную команду dedicated фронтендеров.
Пистон кодер чистый бекэнд? ))
> >на работу можешь не рассчитывать
> Ты не поверишь, я нашел работу в бекенде прислав в резюме лабы по алгоритмам из универа.
тот спрашивал со своим веб-макак стартер пак как ему вкатится, по себе не суди остальных
Ты конечно же имел ввиде laravel. Этот фреймворк на рнр, если что. Ты пишешь в пистон треде. Это как будучи водителем теслы спрашивать у чухана на запорожце про преимущества его дьявольской повозки на теслой.
Стаж - 1 год
Знаю пистон, django, flask, aiohttp, postgresql, redis, rabbitmq, docker, ansible и немного chef и nginx
Со всем этим непосредственно работал, в конторе каждый немного девопс был ибо настраивать и деплоить сервер некому, кроме как самим программистам. JS пока в процессе изучения, фронтовику требовались только экшены, а она уже сама ними ангуляром игралась, так что с фронтом пока особо не работал.
Битая, крашеная, с пробегом по России.
Турбо Паскаль.
>Strong Junior
Деревянный джун
Бронзовый джун
Серебренный джун
Золотой джун
Платиновый джун
Алмазный джун
Легендарный Золотой Огненный Джун Высокого качества +5
Опыт. Работа в команде. По маленьку вкатываться в архитектуру. Помогать джунам. Руководство оценит и станишь миддлом.
Юзай VK API, получай ссылку/etc на фотку и через апи посылаешь себе сообщение в лс, не?
Это я скорее раньше подвинусь, лол
Сейчас в миллионнике-мухосранске сижу, зп 30к, через пол года в дс'ы собираюсь
>Какие ошибки выдает?
Сервер вк не видит загружаемую пикчу.
>С чего ты взял, работает или нет?
вк или видит пикчу или не видит.
Открою тайну, но в ДС з/п будет не на много больше. Это все пидеж про 300кк/нс, если ты еще не понял. Даже в ДС джун получает 35-40.
Нет конечно. Ренпай для петухов же, для девочек ебаных и гей-шлюх, какое ООП ещё.
>Программисты, которые не говорят на английском языке, пожалуйста, пишите комментарии на английском, если только вы не уверены на 120%, что ваш код никогда не будут читать люди, не знающие вашего родного языка.
https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po-napisaniyu-koda-na-python.html
Я нихуя не понял, на каком языке комментировать, если мой en level A2, а код читать потенциально люди из разных стран?
Если твой код потенциально будет читать хоть один нерусский, то пишешь на английском. А так как хочешь пиши. И вообще всем до пизды, от проекта зависит язык комментариев. Там уже в гайдлайнах устанавливают.
Ну не сказал бы, открыл hh, там питонисты от 1 года получают в среднем от 70к, это как минимум в два раза выше, чем сейчас + переезд из моего скучного задымленного мухосранска в нормальный город
Эта провинциальная наивность)) мальчик, тебе со старта никто не даст таких денег в ДС. ХХ сайт наёбка. Даже если и пригласят на вью нет, не принласят, инфа 100, реально озвученной з/п ты будешь весьма не рад. Поверь мне коренному жителю ДС. Рынок порешал, вкатывальщиков много - работы мало, демпингуют все.
Какой то пиздец. Разве нельзя сделать закрытое файловое хранилище? Мол, что бы оно маунтилось как диск.
Блять, ребята, ну помогите, ну ебаные ваши рты! Работа стоит блять, ничего не могу сделать.
Вангую такие аргументы
1) Скорость - хотя часть библиотек написана на с\с++, да и в вебе бутылочное горлышко далеко не скорость языка
2) Простота изучения - бомбаж яп-нердов, который дрочили плюсы всю жизнь и не могут принять, что можно просто начать взять и кодить. Хотя для более глубокого понимания того, как работает язык и написания библиотек нужно знать сишку, если доживаешь до уровня гуру, то непременно приходишь к этому
Обычно такие причины ненависти именно к пистону, тут я не беру то, что он интрепретируемый и прочие вечные срачи
Ну это альтернатива виртуалбокса по линуксами и у нее есть апи.
Распиши подробней для чего тебе это и как будешь юзать, может подскажем что.
В том, что я не могу миновать этап сохранения на диск. Хочу что бы из временной памяти сразу загружалось обратно на сервер.
потому что маня язык
>Ренпай для петухов же, для девочек ебаных и гей-шлюх, какое ООП ещё.
Но ведь ООП тоже для петухов, девочек ебаных и гей-шлюх. Выходит что можно.
Очень смелое заявление. Назови какой-нибудь проект с бекэндом на питоне. Везде джанга/фласк и вообще фуллстэк. Чистый бекэнд кодер на пистоне миф.
Простое, закрытое хранилище файлов, как флешка. Подключается к компьютеру, как диск, и работать с файлами только на нем. Который, под конец, можно "извлечь".
Создай виртуальную машину, добавь в нее виртуальный , на физическом диске она будет как набор файлов или 1 файл зависит от типа. В виртуальной коробке vdi/vmdk файл. В вм создай шару на этом виртуальном диске и подключись к диску из хостовой системы.
Короче, в виртуалку установи сперму, проще всего потому что, добавь нужного объёма виртуальный диск и расшарь диск. Из своей рабочей системы (хостовой) подключайся к шаре и работай.
>Везде джанга/фласк
>чистый бекэнд кодер на пистоне миф
Что значит ЧИСТЫЙ БЕКЕНД? Нельзя что ли библиотеками\фрейморками пользоваться? Если ты на фронт только жсоны через рест шлешь, то это уже не чистый бекенд? Бред какой-то
а здесь только почитатели?
Я же русским языком написал, что кругом требуются фуллстэк. Нахуй ты перевираешь мною сказанное? Я нигде не говорил, что фреймворки/библиотеки отправляющие запросы фронту не есть бекэнд. Это бекэнд, но это такой бекэнд, что такого кодера никто держать не будет, ибо очень уж мало у него работы будет откровенно говоря. Отсюда и требуют фуллстэк.
Лолбля, ну я сейчас на чистом беке сижу, с фронтом только такое взаимодействие
>а фронт только жсоны через рест шлешь
>то бекэнд, но это такой бекэнд, что такого кодера никто держать не будет, ибо очень уж мало у него работы будет откровенно говоря
И да, это значит, что контора говно и делает только хуйню фентифлюшками на жс, с минимальной полезной нагрузкой, ну или ты диван
Ну вот расскажи как твой день проходит. Пожтапно, ты целый день хочешь сказать что-то пишешь? Ты больше времени на курение доков читаешь к очередному методу твоего фреймворка. Либо ты целыми днями только и создаешь проекты для заказчика и поэтому у тебя мног ораьоты на бекэнде. Иначе ты просто зелень. Я не понимаю, что целыми днями можно делакють на бекэнде.
Ничем не подтвержденный пиздеж. Что целыми днями в 1 проекте построенном на фреймворках и шаблонизаторах можно пилить?!
Там работы на несколько недель максимум при самом нагруженном варианте.
И кто будет держать штат и фронтэндов и бекэндов? На фронте как правило веб макаки/дизайнеры, на бекэнде фуллстек кодеры.
А с чего ты взял, что сайт на джанге это вообще вся логика? Как будто чего-то другого не может быть
Вот у нас продукт с микросервисной архитектуру решили запилить и приложение для обработки контента (в подробности особо вдаваться не буду, ибо nda). Джанга нужна только для обработки\показа данных клиенту. Поскольку архитектура микросервисная нужно написать универсальные декораторы для них, что бы они бы валидировали и передавали данные друг другу через rabbitmq, а так же проверяли каждую задачу на успешность выполнения и срали всем этим в логи и базу. Нужен граббер, что бы обрабатывать контент, который получается по фтп. Вытаскивает мету, проверяет корректность, двигает по папкам, заносит их в бд. Агрегатор статистики по работе с этим контентом, который хитрым образом собирает ее из редиса и выдает пользователю, согласно указанным параметрам. А еще там есть парсеры, которые юзают расширенные requests, selenium и bs4 в связи со спецификой проекта, ансибл для возможности деплоя этих сервисов на разные сервера, ебучая монга. Да и сама джанга содержит +10 приложений, которые тоже нужно дорабатывать и поддерживать, т.к. данные разные и отдавать их нужно много, да еще и бизнес логика.
В команде 5 человек на беке и 2 на фронте, да пачка тестеров, так что иди ты нахуй со своим онли фулстеком.
>>186913
>Ничем не подтвержденный пиздеж.
Твой пиздеж на счет онли фулстека тоже ничем не подтвержден, ты или диван или макака ебучая, которая магазины\визитки делает
Ты не в состоянии набрать в гугле virtualbox python? https://download.virtualbox.org/virtualbox/SDKRef.pdf
бля да дохуя всего, вы чё ебанулись? Вы наверно не работали на продукте, когда постоянно чё-то надо делать. Из-за этого очень ценятся грамотные бекендеры, которые могут делать масштабируемую архитектуру. Плюс тесты
> со спецификой проекта
Ну вот с этого и стоило начинать. Это единичные случаи. Это как срм под себя писать. Это конечно тебе огромный плюс, что с таким проектом связан, приличный стек технологий. Интересная работа, но это исключение.
По второму, у меня и веб-проекты аггрегаторы были, и визитки, и срм в очень крупной компании писал для внутреннего использования. Была пара проектов, когда писали на бекэнде связку с ffmpeg, чтобы можно было из браузера контент нарезать, тогда то и окунулся с головой в фуллстек технологий. Будучи уже 5 лет как вкатившимся в питон. И как то дальше пошло поехало, что тесно связан со связкой js(asm/angular/vue)/python(jango/flask) ну ищипотка bootstrap.
Бекэнд и тест. Збс. Ты программист-QA, лiл
>Ну вот расскажи как твой день проходит. Пожтапно, ты целый день хочешь сказать что-то пишешь?
Пришел на работу.
Получил задание на рефакторинг модуля для работы с неким АПИ (например контакта), написанного полтора года назад человеком ушедшим в яндекс.
Половину дня просто читаю код.
Вторую полоовину дня допокрываю тестами то что начну переписывать завтра, чтобы исключить возможность обосраться.
Перед уходом смотрю вместе с коллегой на мой старый SQL код, который выдает данные за 15 секунд а хочется чтобы за 10 и обсуждаем как его соптимизировать.
Доволен?
Ну это же совсем жир. Нахуй ты такое постишь? С тобой же только прокрастинаторы будут разговаривать которым совсем делать нехуй.
>Назови какой-нибудь проект с бекэндом на питоне.
https://github.com/mistio/mist-ce
Регулярно присылают вакансии по каким-то saas, клаудам сам таким сейчас занимаюсь, мессенжерам, блокчейнам, разработке апи, в некоторых предложениях на бек даже сами уточняют что без фронтенда. Но когда ищешь вакансии на каком-нибудь хх, то да, печально все.
Есть только пустая страничка на линкедине, туда и приходит большинство предложений. Некоторые пишут на рабочую почту которая светится в гитхабе.
ке Python и внешними файлами на компьютере. Файлы являются одним из
базовых типов, но они представляют собой нечто необычное, поскольку для
файлов отсутствует возможность создания объектов в виде литералов. Вместо
этого, чтобы создать объект файла, необходимо вызвать встроенную функцию
open, передав ей имя внешнего файла и строку режима доступа к файлу. На-
пример, чтобы создать файл для вывода данных, вместе с именем файла функ-
ции необходимо передать строку режима ‘w’:
Ребят, читаю Луца, охуеваю, расшифровываю не код его информацией, а его информацию, кодом и комментариями к нему. Это какой-то пиздец. Посоветуйте какой-нибудь интерактивный вариант изучения, но чтобы не проебать важную инфу. Может забить на эту книгу и тупа по кругу пару раз прогнать пару ютуберов с пайтоном, мне как нюфане приглянулись Хауди Хо и Гоша Дударь. Ну или какую-нибудь другую книгу, только не на ингрише, я в нем плох low intermediate. Помогите, короче, как вы вкатывались в первый язык?
Антош, а что у тебя такого на гите и как профиль оформлен, что к тебе с гита пишут?
Мне за все время лиль дважды писали именно с гита.
Профиль у меня вроде как полный комитов, есть 3 джанго-прожекта, с оформленным описанием и реально работающие + пара небольших оберток-библиотек с парочкой звезд. Но хуй там.
я так подозреваю, что это вот этот хуй
https://github.com/orsinium/rutimeparser
https://github.com/orsinium/textdistance
https://github.com/orsinium/awesome-generator
И разве там можно будет обойтись без установки ОС, что бы была просто директория с файлами?
Создай vmdk диск. Дрисятка умеет его мапить, как и прыщи. Как создать диск гугли, ничего сложного в этом нет.
Если не хочешь кидаться линками, то подскажи:
- Этот диск - единичный файл, так?
- Маппинг возможен на семерке?
- При аварийном выключении компьютера диск самостоятельно отключается?
Пошёл на хуй, сразь ёбаная, заебал уже. Изи сам инфу, я ебал тебя и всех твоих близких в рот, хуесос ты тупорылый. Сам найдешь в гугле инфу.
Да это очень грамотно. Видно как чувак стратегически развил свой гитхаб в два захода всего за год. Нашёл дырку и заполнил её своей либкой.
А ну собственно вот блять. лол
https://github.com/orsinium/notes/blob/master/ru/notes/github_trends.md
Объясните, с чего вы рофлите, что не так? И что это за штука такая вообще? Что за 'дистанция между последовательностями'?
Вот как, чот ну его нахуй, это нужно на фриланс/работу забить и сидеть гит в порядок приводить, оооох. Ещё и эмблемки рисовать.
Ну собственно да. Хуярь в творческий отпуск. Я сейчас в таком нахожусь. И могу сказать что это довольно охуенное время. Можно двачевать целый день а можно с утра встать выпить кофейку, похуячить часик. Потом 8 часов подвачевать :]
> Хуярь в творческий отпуск
Ох хуй знает когда такой получится, пока завал по полной и даже на работе хз когда смогу вырваться и отложить всё.
Но как только, так сразу начну приводить всё в порядок, авось какая годная идея для библы появится как раз.
Пока голова полна лишь идеями для мобильных приложений/сервисов, которые нужно хуярить долго и хз как рекламировать/раскручивать.
Во-первых, здесь нет правой части, так что это не уравнение.
Во-вторых, что значит "решить". В предположении, что правая часть равна нулю, а x_i \in \mathbb{R}, решением будет \mathbb{R}^{n-1}-мерное многообразие в \mathbb{R}^{n}.
В общем, сформулируй точнее, что тебе надо.
Блджад, это называется написать функцию, а не "решить уравнение".
Заметь, что сумма индексов каждого слагаемого одинакова, и попробуй написать однострочную функцию.
Спасибо.
!!JUNIOR!!
Хочу написать собственный торрент клиент, но так как зелен не могу обозначить необходимые задачи для реализации. Знающие сеньоры, подскажите пожалуйста какое-нибудь чтиво, либо как правильно сегментировать задачу. Какие библиотеки с работой с bittorrent протоколом есть. Заранее благодарю.
stringIO, все будет через оперативку пропускаться, но я так и не понял, чем тебе сохранение на диск через темп папки\файлы не нравится
>>187641
Самое главное, что требуется в работе программиста, это умение гуглить
https://google.gik-team.com/?q=python+torrent+client
Сразу же по ссылке несколько торрент-клиентов, несколько вопросов на стак оверфлоу, со всеми ответами, которые тебе нужны
Потому что ты не можешь сказать контакту "скачай-ка мне оттуда пикчу сам", не работает так интернет.
Я, если честно, так и не понял, что именно тебе нужно сделать (говоришь про парсинг, но при этом почему-то загружаешь в вк картинки), но теоретически ты можешь сделать так:
>image_resp = urllib.request.urlopen(image_url)
>requests.post("upload_url, files={"photo": (filename, image_resp)})
И тогда при отправке данных post'ом они пойдут прямиком из источника через твой компьютер.
>>186399
Проблема в тебе, оба варианта должны работать одинаково. Ищи опечатки или ещё что.
Алсо, под "в каком-то виде" имелось в виду в принципе иметь у себя на компьютере эту информацию. Будь то на диске, в оперативке или же где-то в буферах. Наверное, я не он.
Записать эти байты последовательно на диск и радоваться? Что значит "восстановить"?
Извлечь файл из контейнера
>Проблема в тебе, оба варианта должны работать одинаково. Ищи опечатки или ещё что.
Мне тоже кажется что должно работать. Но какого-то хуя нет. Сам попробуй.
упд
Короче во втором случае надо было дополнительно сковерить открытое в строку, с помошью станадарного str(). Кто бы мог подумать, да?
>Сам попробуй.
Я не отвечаю на посты не протестировав. Всё, кроме boundary, в обоих запросах идентично. Разумеется, не в вк, а на локальном сервере проверял, но исходящие запросы те же, так что нет разницы, что за сервер.
Вангую, ты просто пытаешься один и тот же файл дескриптор два раза прочитать:
>f = open(...)
>print(f.read())
>request.post(files=(f)
(Второй раз f.read() — внутри post'а — выдаст 0 байт.
Что значит произвольный? Файл разбросан по всему контейнеру?
Энивей, отвечая на вопрос: существует.
Достаточно набросать парсер стандарта BMP и всё то, что не описывается стандартом записать на диск. Результатом и будет этот самый загадочный произвольный файл.
>Короче во втором случае
Ещё раз говорю: оба случая идентичны. В одном ты записал в локальную переменную значение этого файлового объекта, а в другом сразу в функци передал. Больше разницы нет и не может быть, уж тем более какие-то str. Ты что в str-то взял, file, что ли?
>Что значит произвольный?
видимо не очень понятно выразился, имел ввиду что программа должна уметь записывать в контейнер любой файл, независимо от формата
проблема вот в чем - я знаю, как перевести файл в массив байт, но не знаю, как сделать обратное
Конечно.
Но, блять, оно правда работает я тебе мамой клянусь.
Все что я тут показываю со своими картиночками - чистая правда.
Сладких конечно, но я надеюсь ты вернешься еще. Ты тут единственный адекваша. :3 остальных я мамину маму рот ебал
Сайт с азадачками кодворс.
1) не сортируешь
2) Не понимаешь как работают list\generator comprehension. Твой if будет выполнятся всегда.
>generator
Я понял что не сортирую, а как правильно то?
Где почитать про этот синтаксический сахарок?
Все нашел решение.
Начал курить Django, там что-то убер много всего, у меня совсем простой юзкейс: есть парсер, он пишет в бд, пользователь делает запрос, получает результат, сюда прицеплять полновесный MVC фреймворк не комильфо.
Бери врот.
Там можно делать так?
$conn = mysqli_connect($servername, $username, $password, $dbname);
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
echo $result;
mysqli_close($conn);
Можно.
https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-select.html
Это можно даже без фласка.
Можно, но зачем? Бери ОРМ, sqlalchemy например.
А у меня hk не работает, например, так что я благодарен ему. А при ссылке на ОП-пост в строке адреса остётся #123123123, что меня бесит и приходится всё равно вручную редактировать потом адрес и перезагружать.
Автоматизация рутинных задач Свейгарта, базарю.
Основы основ, и все предельно понятно для полного нуля в погроммировании.
import facebook
access_token = ""
fb = facebook.GraphAPI(access_token)
fb.put_wall_post("This s")
Как сделать тоже самое, но на страницу группы?
Спроси себя, что есть 0.2 и 0.1, юный падаван.
Это копия, сохраненная 15 июля 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.