Вы видите копию треда, сохраненную 15 января 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Коммуна: https://sites.google.com/view/pypry/
Книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Ещё книжек? https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек Богу книжек! https://yadi.sk/d/H-00n-UG3RSQem йей.рф/книги
#python #питон #пайтон
Прошлый: >>1367495 (OP)
Сап, питонисты.
У меня к вам вопрос. Является ли Питон элегантным и релевантным выбором для челика, который хочет изучить Питон + Скратч и на софт скиллах потом толкать кодинг детям в частных кружках/школах-кодинга?
Вроде Питон самый лучший выбор для изучения принципов программирования вообще (насколько я понял из парочки статей на Хабре).
>принципы программирования
>скрипт
>Нельзя ебать байты
>не статика
Думаю намек понят тебе в джава/сипп треды
Детей байтами только напугаешь.
я считаю, питон идеален для этих целей
особенно если учить на основе создания игр
сначала создаем консольные игры типа "угадай кто в классе главный петух"
потом делаем понг
потом какой-нибудь арканоид
в конце можно перелезть на какой-нибудь godot
бойлерплейт и обёртка страхоёбищных либ простым пеп8-стайл апи - на тебе, естественно
Начинал как и многие с плюсов, имхо там можно гораздт большему научиться чем на питоне в плане ньюансов (например то у что массивы двигать не так уж и легко для компьютера) для новичка сложно до жути, но те кто хоть что то поймет, сможет потом нс любой ЯП перейти с легкостью пониманием как многие автоматизированные за него алгоритмы работают на самом деле
>мам, язык идеален, а необходимое для написания на нём страхоебищное говно это не язык и не считается
:((ОО
это ты тут пукаешь какую-то хуйню невпопад. вроде че-то по теме сказать пытался, но пока получается толстый бессмысленный шитпостинг
На носу диплом с темой статистического анализа активности пользователей веб-сайта
Какие можно математические методы изи реализовать на питоне для такой темы?
Поискал немного, нашел пока только один, метод k-средних. Отлично по сути подойдет для группировки пользователей
Данные якобы смоделирую
Ну понимаешь сейчас в платных кодинг-школах идет такая штука что с любого возраста примерно до 10-11 идет скратч, а дальше или питон или js или еще что. В школах до сих пор паскаль.
11-12 летнему ребенку давать с ходу кресты это конечно тема - но для 1 из 10.
А у джавы синтаксис перегруженный. Да и на хуй она нужна в наш век. Особенно для учебы.
Че за дичь на 3м пике?
C js вопросов нет, но там такой пердолинг с фреймворками и сборщиками шо пиздец.
А я про джаву.
Coluber javanicus.
Js === java? окай.
Питонщики настолько тупые, что в шапке у них Java-код
Стоит ли порешать и почитать или лучше чем-то другим заменить?
Если другим, то чем?
Плюс на телефоне читаю Лутца и тыкаюсь в SoloLearn
Акселерациониста к акселератам. Идеально же.
Что за херня?
Не ебу что такое LA, но скорее всего тебе нужно вот это
https://stackoverflow.com/questions/4661557/pil-rotate-image-colors-bgr-rgb
Пиздос щас как еблан себя чувствовал, пропустил одну ебаную скобочку, весь код нахуй покрылся красным кроме того участка где пропущена скобочка и я как папуас искал в чем блять проблема, пока уже не начал пальцем считать эти ебаные скобочки, пиздос нахуй как сложна то
Зачем нужен новый тред, если тут спрашивают вопросы уровня "1+1", а потом пишут "сам разобрался"?
мимо вкотится в питон джва года назад
Vs code
За тем
Делаю очередь, с максимальным размером 20, к примеру.
Имею основной процесс с функций и дополнительный поток/процесс(не важно что, в обеих проблемы) тоже с функцией.
В дополнительный поток/процесс передаю очередь и периодически там кладу(.put()) в неё очередь жирные изображения(фрэймы из стрима).
В основном процессе из этой очереди успешно все извлекаю(.get()).
Чекаю память при помощи resource(вроде так) в дополнительном потоке/процессе и она, потребляемая, растет(логично, ведь изображения кладу в очередь). Когда очередь заполняется, память перестает расти, всё ок.
Но тут начинается пизда:
Как только в главном потоке из очереди читаю(все успешно идёт) - потребляемая дополнительным потоком/процессом память продолжает расти(ну а чо, в очередь то пишет) ....и не уменьшается при удалении элемента из очереди, никак. В результате память выжирается и течет как сука.
Что я делаю не так?
Если нужен сорс код - напишу по-быстрому.
Cpython
А причем тут это к описанной проблеме?
Я просто заюзал deque как очередь и потоки, всё ок стало.
Но меня интересует сам факт такого поведения. Это ж получается память течет как ебанутая, при этом это ведь стандартные средства и либы, шозанахуй.
>А причем тут это к описанной проблеме?
Петухам новых базвордов завезли, все никак не накукарекаются.
360x360, 0:20
Снимаю вопрос, функцию надо было вызвать myfunc(). Мне очень стыдно.
1. Функцию вызвал, не?
Ага, сейчас как раз на это напоролся. Сейчас немного изменил задачку и хочу, чтобы пользователь сам вводил слово. Если он вводит python или Python - то программа завершается, а если что-то иное - то ему предлагается ввести слово еще раз.
Так вот, если он вводит правильно - то всё ок, а если неправильно, то мне начинает бесконечно выдаваться
try againtry again
Не дописал. Ну, короче, я думаю, ты понял. Подозреваю, где-то налоханил с позиционированием инпута. Подскажешь?
Ты один раз спрашиваешь инпут и затем бесконечно проверяешь его ифом. Что ты вообще ожидал от такого?
Тебе написали "Хуй!", а ты всё ждёшь, пока оно в "Пизда" не превратится.
Если не понимаешь, как оно вообще работает, попробуй хоть блок-схему на бумажке нарисовать, или словами расписать, как и что должно работать, перед тем как реализовывать в япе.
Ну блок-схема у меня вышла такая. Она верная, или я что-то упускаю? Если всё ок, то как реализовать это на ЯП?
Спасибо, переписал руками, получилось. Где можно надрочиться на вот это восприятие, которое отсутствует у меня и присутствует у тебя?
Алсо, можешь вместо того, чтобы два раза писать str1.startswith(...) с разницой лишь в регистре букв, написать str1.lower().startswith("python")
lower() преобразует все буквы строки в буквы нижнего регистра, а дальше - сам понимаешь.
Т.е. теперь даже если напишут PyThOn - программа поймёт
Прикольно, записал себе, спасибо. Я еще меж тем впендюрил себе проверку на количество неправильных вводов, типа как когда пароль подбираешь, но что-то мне подсказывает, что это можно реализовать более изящно, чем куча блоков elif. Может быть ситуация, где нужно 50 раз проверить правильность, я же не буду 100 строчек вписывать. Или все-таки придется, если мне нужен разный текст принта?
Иди от противного: в i запиши число возможных попыток и при каждой неправильной попытке пиши i -= 1 (то же, что и i = i - 1). Затем сделай проверку, что если i == 0, то всё, running = False.
Вывести кол-во оставшихся попыток можно с помощью print("You have {} tries left".format(i)). Это вставит вместо {} переменную, которую указал в .format()
Ещё лучшим вариантом было бы переписать цикл while в цикл for - лучше конкретно в этом случае, когда переменную на единицу увеличиваешь/уменьшаешь.
Щупал кто-нибудь OpenAI Neural mmo? По всем законам итт — тот ещё говнокод, однако ахуенно
b=[2,5,7,123,1001,2,2,2,1,5]
def ex1(sp,n):
...
print(ex1(b,5)) #Эта срочка должна вывести 2
print(ex1(b,2)) #Эта срочка должна вывести 4
print(ex1(b,1234314)) #Эта срочка должна вывести 0
Долбоеб? Не решить задачу о числе вхождений элемента в массив?.. Блять, просто иди нахуй
А че там объяснять? Очевидно, что функция жрёт массив с числом, считает сколько раз в массиве встречается число и возвращает количество совпадений.
>Но я только начал
Гугл тебе в помощь. Мощная вещь, говорят
>Покажи это в виде кода
Могу только писюн тебе на пикриле показать. Сойдет?
Да пошел ты, это тред программирования, если ты не собираешься помогать и будешь только оскорблять и срать картинками, иди нахуй. Нахуй ты вообще ответил, шизофреник.
> это тред программирования
Ну так программируй. Тебе дали куда больше информации, чем требовалось. Тебе буквально 2-3 строчки написать надо.
1. Даун не способен внятно сформулировать проблему
2. Требует немедленного и подробнейшего решения
3. Не способен загуглить типовую задачу
4. Удивляется, почему был послан нах
>не способен внятно сформулировать проблему
>типовую задачу
Очевидно, что моя проблема это решение типовой задачи.
> Требует
Это была просьба, а не требование, если ты не хотел помогать, мог просто проигнорировать. Вместо того чтобы высрать это говно, мог помочь и объяснить, но дегенерат(ты) решил потратить время на оскорбления. Иди нахуй.
return sp[n]
ВСЁ, БЛЯДЬ, МОЙ ОПЯТ КОДИНГА ДВЕ НЕДЕЛИ.
М?
Очевидно же, что это объявление функции, а sp и n это названия передаваемых внутрь аргументов
Господи
480x480, 0:06
SPEASOQUE
такой вопрос к проекту на django 2.2 нужно подключить фиас. все что нашел готовое какая та старая лажа. есть те кто подключал? какие тулсы / подводные камни
Да можно и его, но мне самому задачки больше нравится решать на codewars и checkio.
4(ЧЕТЫРЕ) пробела(самая большая кнопка на клавиатуре)/или нажать "TAB"(кнопочка под тильдой или через одну от esc(эскейп)), а далее пишешь return sp.count(n)<-------ответ ТУТ!
поставь python anaconda и не эби мозги
У тебя версия питона больше, чем требует нум пай, сам ебался пока другую версию не накатил и никакой билдутлс нахой стал не нужен
Спасибо.
Spasibo - chuvstvuete kak mnogo russkie vkladivaut v eto slovo? Skolko dobroti i duhevnoi energii v etix semi bukvax.
ни у кого, кроме пыхи производная знака не меняла, ты, скорее всего, про знак второй производной говорил
Чё ты именно не понимаешь? Рест везде одинаковый.
И есть библиотеки уже собранные для дискорд апи
Очевидный голэнг
С английским не дружу
так перефразирую, кто нить напрямую(через бд ) подлючал фиас или все через кладр и другие стороние js библиотеки?
Просто ты не умеешь, проходи мимо.
анон, за що. зашел блять тред чекнуть. я ж полдня проебу. а, не, как всегда на стаке всё есть. гугли python numbers spiral. фух пронесло. больше так не делай
https://stackoverflow.com/questions/398299/looping-in-a-spiral
Анон, зацени адекватность кода, pls.
Вкатывальщик пытается накропать пятнашки
Да иди нахуй со своим Степиком.
докстрингипо по канону обрамляются тремя двойными кавычками
"""'Возвращение решаемой комбинации'"""
А есть такое же для питона, кроме PyQt?
kivy
Предположим что есть 3 словаря.
X1 = {target:dict}
X2={'giUserInfo': [{'xdrInfoTime': {'endTimeSecs': 1552867200}}], 'row_number': 1}
X3= {'giUserInfo': [{'xdrInfoTime': {'startTimeSecs': 1555545600}}], 'row_number': 1}
Если сделать так,
X1.upgrade(x2)
X1.upgrade(x3)
То выдаст = {target: {'giUserInfo': [{'xdrInfoTime': {'startTimeSecs': 1555545600}}], 'row_number': 1}} т.к. 'giUserInfo' общий ключ и переопределится значение.
Необходимый результат {target: {'giUserInfo': [{'xdrInfoTime': {'startTimeSecs': 1555545600, 'endTimeSecs': 1552867200}}], 'row_number': 1}} т.е. должно записать разницу. Данные это только пример, таких полей может приди много, с разными уровнями вложенности, но если у них общий путь, то не должно переопределяться.
Не нравится и не хочу разбираться в UI и фронтенде, можно ли найти работу где не нужно ебаться с этими вещами, и что нужно знать?
Мне похуй чем заниматься, в общем-то, но полагаю делать бекенды это сейчас самая популярная ниша?
Из опыта петушение на рнр пару лет, алсо люблю лиспы
1. Все делается через for
2. Массив numpy хорошо подойдет
3. Все что нужно это при движении в определенном направлении проверять, существует ли следующая клетка и не заполнена ли она уже. В противном случае менять направление
А ты думал, за тебя-малолетку курс решу? Лол. Сам код пиши
Если ты эту фигню не осилил, то ты просто ленивый и дебил.
Согласно PEP-8 отступы между функциями должны быть двойными, ещё будет лучше если ты засунешь print(generate) в условие if __name__ == '__main__'
Cами записи выглядят так:
https://vk.com/video-149889774_456240049
Каким образом это можно сделать, есть идеи? Python + openCV? как вообще с такими большими файлами ему работается? это каждые 3 секунды надо будет брать кадр и отдельно его анализировать, что, как мне видиться, нихуёво времени займёт. Да и сам принцип анализа пикчи не могу нормально придумать, сначала думал что можно будет по доминирующему цвету детектить ( паркета), но у многих команд разрисованная площадка, да и крупные планы всё по пизде пустят
может тогда искать на изображении какую-нибудь часть из табло со счетом?
Допустим лого TNT из видео сверху. пикрелейтед
Юзать для анализа тогда можно будет часть, где это табло расположено (задавать в ручную перед стартом), так быстрее будет
но всё равно это какие-то костыли напоминает.
У каждой команды эти табло разные, да и поиск по картинки в картинке по моему опыту тоже работает не лучшим образом.
Может есть какие-то идеи как мне это всё провернуть?
Ну или вообще какие-то другие способы, о которых я не знаю
>Моя задача - вырезать все левые моменты, оставив только чистое время игры.
Посадить домохозяйку, нарисовать ей интерфейс и платить по 50 рублей за видео.
>>382364
примерно так: https://pastebin.com/QdZpAE34
> [{'xdrInfoTime': ...}]
если это засунуто в лист, значит ты не должен хотеть мерджить дикты в нём, а хотел бы объединить этот лист
в противном случае твое решение должно быть только под твою уёбищную структуру данных
> тулзы
> подводные
А - подрубал копируя и изменяя модель из какой-то старой фиас либы. Скорее всего той на которую ты наткнулся.
Подрубается за раз, если тебя интересуют только адреса, так как адреса там, в фиасе, представлены как одна сущность "адресный объект", соответственно и в той либе это одна модель AddressObject. Правда помимо них там есть ещё куча какой-то хуеты, например какая-то модель house, в душе уже не ебу зачем она, забыл, на всякий следует посмотреть в доки фиас.
Собственно все что я сделал чтобы подрубить фиас - это скопипиздил модель и сделал импорт.
Подводные зависят от того что ты хочешь. В моем случае поиск адреса производится по реляционной модели с psql как dbbackend. То есть чтобы все находилось быстро пользователь должен поэтапно указывать регион, город, улицу сужая выборку, и на фронте форма поиска адреса, соответственно состоит из трёх полей регион, город, улица.
Если же тебе нужно чтобы поиск производился в одном text инпуте, то тут нужен полнотекстовый поиск, что значит что придется ещё немного с этим поебаться, возможно как-то донормализовать модель. В Django для psql, кстати, он, вроде бы, есть.
django.db.utils.ProgrammingError: column "product_id" does not exist
Это конечно, понятно. А так чтобы на питоне?
Читал недавно про подобный сервис.
Они таки начинали с ручной нарезки. Сидело у них 50 человек операторов, отсматривало новости, резала, тэгировала и складывала.
У тебя таки два стула:
1. Ручное
2. Машинное обучение. Вначале разметишь N видео, обучишь нейроночку, поиграешься с параметрами, а затем уже к реальным видео применишь. Но ты для начала погугли, вдруг такое уже есть.
Я б тебе даже помог, с реализацией, но ты ж забешь скоро, а одному не интересно.
>Я б тебе даже помог, с реализацией, но ты ж забешь скоро, а одному не интересно.
Почему ты так решил? Мне интересен данный вопрос сразу в трёх плоскостях:
1) В плане кодинга (прогером я не работаю, ставлю задачи для себя и их решаю, что доставляет)
2) Я реально смотрю нба, и все эти паузы меня пиздец как бесят.
3) На это есть спрос и знаю как это продвинуть и монетизировать.
В общем, стучи в телегу,если надумаешь - @Kapkup
> Почему ты так решил?
Потому как таким образом заканчивается 99% проектов.
> 1) В плане кодинга (прогером я не работаю, ставлю задачи для себя и их решаю, что доставляет)
Это и хорошо и плохо.
> 2) Я реально смотрю нба, и все эти паузы меня пиздец как бесят.
В записи смотришь все? Вряд ли ведь. А с онлайн-трансляцией тебе эта тулза не поможет.
> 3) На это есть спрос и знаю как это продвинуть и монетизировать.
И как же? Хотя бы общий план, где и как ты собрался это продвигать?
P.s. Может и видеокарта есть мощная, а то и две? Что б было где нейроночку обучать.
P.p.s. Как ты себе представляешь полный цикл работы приложения, архитектуру его?
а, ещё база весит гигов 60 или 120, не помню, соответственно стартовый импорт, если делать синхронно, долгий что пиздец, часов 12 грузит, а асинхронность нужно делать продумано - так как нельзя просто в тупую залить в память все таски на импорт за раз - память кончится.
>Потому как таким образом заканчивается 99% проектов.
Лол, зачем ты тогда написал >Я б тебе даже помог, с реализацией, но ты ж забешь скоро, а одному не интересно.
Если это будет актуально всегда?
>Это и хорошо и плохо
Ага, скиллов не хватает, но много времени и желания обучаться.
>В записи смотришь все? Вряд ли ведь. А с онлайн-трансляцией тебе эта тулза не поможет.
)) я вроде не идиот Пол года жил в Азии и смотрел онлайн, сейчас вернулся - сложно смотреть лайв, если игры начинают от трёх до 5ти утра, хотя сейчас плей-офф и охуенно интересно, но приходиться пересматривать по утрам.
>И как же? Хотя бы общий план, где и как ты собрался это продвигать?
Писать в паблик это не буду, но, поверь, трафика на такой контент достаточно много и достать его очень легко, рекламодатели тоже тематические.
>P.s. Может и видеокарта есть мощная, а то и две? Что б было где нейроночку обучать
Одна 1050 TI.
Вроде же есть сервисы, где можно взять в аренду мощности под это дело.
Вот на это не ответил ещё:
> P.p.s. Как ты себе представляешь полный цикл работы приложения, архитектуру его?
>Одна 1050 TI
4 гига? Вангую что мало будет.
> Вроде же есть сервисы, где можно взять в аренду мощности под это дело.
Есть, но это стоит денег, не малых, готов вкладыватсья?
Ты, похоже, больше про попиздеть на дваче. Пиши в телегу, если действительно имеешь интерес.
Так а що писать, если в результате идея может быть уровня "ну хочу шоб короче оно хуякхуяк и прям стрим мне вез рекламы сделоло".
у тебя ответ в вопросе, нет колонки product_id
да точно эта шляпа с ебучим хаусом и тд. ну я подправил в кратцах его код. но на данном этапе решили отказаться от нее в пользу dadata.
Спасиб за ответ
телега/denissexy/1119
Нашел клевый алгоритм, который может быть интересен тем, кто делает видео для ютуба или учится чему-то по видео-лекциям – вы скармливаете скрипту видео (там нет нейронок), скрипт определяет где именно в видео «тишина», и в зависимости от настроек, он может удалить тишину в видео вместе с кадрами, или просто ускорить в несколько раз моменты где есть тишина, или наоборот, оставить только тишину – на ваш вкус в общем.
https://youtu.be/DQ8orIurGxw?t=142
https://github.com/carykh/jumpcutter
Задача типа вот:
Реализуйте класс Rectangle для описания прямоугольника, стороны которого параллельны осям координат.
При инициализации экземпляра передаются координаты левой нижней точки прямоугольника x и y, а также его ширина и высота w и h. Таким образом, координаты верхнего правого угла — (x + w) и (y + h).
При вызове метода intersection (например, rect1.intersection(rect2)) должен возвращаться прямоугольник, который возникает как пересечение rect1 и rect2. Если прямоугольники не пересекаются, должен возвращаться объект None.
Не понимаю, как реализовать. В примерах дан такой код:
rect1 = Rectangle(0, 0, 10, 10)
rect2 = Rectangle(5, 5, 10, 10)
rect3 = rect1.intersection(rect2)
Но я не понимаю, как мне в метод intersection поместить этот rect2, если он является классом, а не каким-то списком из значений.
Как это можно инициализировать? Спасибо за ответы.
> тьютор
Если вопрос ещё актуален,то.
Годная тема. В тьюторе основы дают, и задачек куча, которые идут по нарастающей по сложности, так и учишься
> не понимаю, как мне в метод intersection поместить этот rect2, если он является классом
rect2 - не класс, а объект, он уже инициализирован. Rectangle - класс. Если этот момент тебе не понятен то лучше побольше почитай насчёт ООП.
да я хз, как вот эти данные вытащить, чтоб с ними работать.
Пример бы какой-нибудь, чтобы этот intersection возвращал данные из rect1 и rect2, тогда бы я понял.
Ты вопрос задай, а там видно будет.
раздвинуть булки и принять ее
я могу сделать server.run(), этого достаточно?
Знаю, что это тупо на таком вот застревать, но я просто не понимаю, что я не так делаю. Одна и та же ошибка выходит, просто с разными номерами.
ПЕРЕКАТ
Вкратце, не мешай "//" и "mod", условие задачи читай внимательнее
Спасибо, анонче.
Почему сам степик не может объяснить, что значит каждая ошибка, и чем отличается
Failed test #5. Cannot check answer. Perhaps output format is wrong.
От
Failed test #9. Cannot check answer. Perhaps output format is wrong, к примеру?
Ничем не отличается. Одна и та же ошибка с выводом. Просто нумерация тестов разная, я вообще 50-ый видел, там же куча стадий тестирования твоего кода.
Ну и еще потому что это там херово реализовано, да. По-человечески бы сделать нормальные питоновские трейсбеки
Гуглеть не пробовал? Осенью бета 3 джанго, где то ближе к концу горда релиз. Суть - полная асинхронность фремворка.
Тебе в шапку
Я правда не знаком с этим и думал что для пайтона есть что-то свое по типу js (как бы тупо со стороны это не звучало). Ну, буду смотреть.
все красивости, которые не требуют перезагрузки страницы, отрисовывает браузер твоей жертвы, встроенного интерпретатора питона в нем нет
а почему ты думаешь джс такой популярный
бумп вопросу
разница в том, что это разные физические и математические характеристики и от их изменения отображение графика будет иным
>>383584
Тот же анон. Теперь не понимаю, как сделать rect3 экземпляром класса.
https://pastebin.com/PuFxSaZe
Типа через return объект rect3 является tuple, а мне нужно, чтоб он был связан с классом Rectangle.
Спасибо за помощь.
во-вторых:
>class zipfile.ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=True, compresslevel=None)
> compression=ZIP_STORED - не работает, говорит что не знает такого параметра ZIP_STORED и других соответственно. Почему?
И ещё, поясните плиз, если не использовать вот эту структуру "with zipfile", а просто создать зипфайл, а потом добавлять файлы следующим образом:
zipfile.ZipFile.write(file)
(где file по моему коду - переменная с полным патём к файлу, аля C:\My Documets\1.txt)
Питон пишет: TypeError: write() missing 1 required positional argument: 'filename'
Ну и в общем если не сложно, чекните пожалуйста код пикрилейтед, всё ли правильно сделал, или были более простые и изящные способы достичь результата?
Спасибо
Да, тебе нужно создать объект, в твоем случае это будет:
return Rectangle(5, 5, 10, 10)
И чувак, всё-таки почитай/посмотри что-нибудь по этой теме, это совсем основы, если ты их проебешь, то дальше будет совсем тяжко.
Да я читаю эти методички, которые в Яндекс Лицее дают, а там просто нихуя из этого нет.
А задачи надо до 30 апреля решить, вот я и пытаюсь в количество, а не в качество. Офк, разберусь.
Спасибо еще раз.
Школьник в треде, все в смузишоп
> html.BUTTON()
> html.TABLE()
> ev.preventDefault()
> ev.stopPropagation()
найс кодинг стайл, фагготс
>Brython's goal is to replace Javascript with Python, as the scripting language for web browsers.
>A simple example :
><html>
><head>
><script src="/brython.js"></script>
проиграл и дальше не читал
Спасибо, я его где-то встречал на каком то из сайтов, пока читал описание и способы реализации, но не сразу понял что значат эти переменные к os.walk, сейчас почитал описание, и примерно понял. Ну твой вариант, как по мне, сложнее к пониманию, но в целом да, проще.
бамп нахуй
Если у тебя для решении задачи есть несколько функций, которым нужно передавать несколько одинаковых параметров, то проще сделать класс, где эти параметры существуют как свойства класса.
Ну и если нужно хранить данные между вызовами функций, то тут либо глобальные переменные, что плохо, либо класс.
Ставлю вопрос ребром: зачем нужны функции, если концептуально можно обойтись без них?
можно записать шебмку и переслать по электронной почте
Надмозг увидел ещё одну обёртку для работы с domом и усмехнулся.
Добро пожаловать в 2к17, все крутые ребята уже давно пишут на clojure script + reagent
Очевидно что мертво. Это просто поиграться и всё. Но если бы тема была нормально развита, то почему бы и нет? Синтаксис питона мне больше импонирует, чем жсовский.
Глупый вопрос - такой же ответ.
реализацию этой задачи. Допишите скрипт так, чтобы рыба сообщала, какое давление она ощущает, когда плавает, как на рисунке ниже.
Не хилые такие задачки в Скратче в середине книги. И это книга для детей?
Что радует что в Скратче реализованы функции, в том числе функции внутри функций и модульная система кода за счет этого.
Извините что не по теме Питоно-треда, но это типа у меня обучалка перед Питоном.
не могу-это моя работа
У меня есть:
soup = <h1><br/></h1>
Нужно:
soup = <h1>TEXT</h1>
Спасибо
на любой твой вкус,можно извратиться C++
За всю свою питонию историю никогда не использовал IDE на постоянке. Долгое время сидел на sublime, теперь сижу на vscode.
Подумал, что прикольно было бы освоить vim. Использую я unix оси, на серверах тоже unix. Можно будет быстро и уверенно что-то менять прямо на серваке. Да и вообще, как я понял, у этого редактора невероятно много возможностей для работы с текстом.
Слепой печатью владею. Основами vim тоже. Еще с универа
Вот мы пишем обработчики(вьюхи, если хотите) для каждого URI. Каждый обработчик - асинхронная функция, вызов которой возвращает корутину. aiohttp сам делает из этих корутин легковесные потоки(tasks) или же я должен самостоятельно об этом позаботиться?
Вообще, когда писал вопрос еще раз запутался, поэтому прикреплю пик со смущающими меня вещами.
Когда начинал пытаться врубиться в асинхронность - смотрел доклад Бизли по асинхронности в python с нуля. Он там реализовывал tcp сервер на чистых yield. И вот эти yield выкидывали статус выполняющейся задачи в event loop. А тут получается нужно создавать таски, чтобы всё работало параллельно. А в aiohttp в документации вообще нигде этого нет. Просто async await
Я пишу в виме и на вин, и на сервере. Привык с других языков. Прелесть Иде только в сборке, но когда есть докер и утилиты для баша, они нахуй не нужны
Находить расстояние между векторами попарно? Может быть, это и не самый быстрый метод, но зато и памяти не сожрет.
Да, это правильный подход. Но проблема в том, что из этого не получить график распределения расстояний
Расстояния между векторами будут принимать значения от 0 до 2. Создадим массив из нулей длиной, к примеру, 200. Ели очередное попарное расстояние будет равно k, то мы прибавим единицу к элементу массива с номером int(k*100). Проходим по всем парам векторов и строим график.
Плохая идея объяснять программирование через компилируемые языки программирования. ИМХО: У ребенка должно сложиться понимание о том как хранятся данные в компьютере.
Если ты объясняешь детям алгоритмизацию, то скретча хватит.
А как в питоне с GUI? Ткинтер пробовал, ну, такое. Есть у кого-нибудь опыт работы с разными гишными фрэймворками для питона?
Тебе нужно знать расстояние для каждой пары векторов? Это, тогда у тебя будет 3d график в виде поверхности?
Можешь сначала с помощью алгоритмов кластеризации их разбить на группы, потом выбрать в каждой группе по одному вектору, который будет находиться приблизительно в центре совоего кластера, и посчитать расстояние между ними, а потом с помощью аппроксимации и интерполяции получить искомый график с хорошей точностью.
А как это распространять на другие компьютеры, вместе с интерпретатором питона статически собранный QT распространять или как? Вообще, как это делается, похоже, любые гуи для питона это привязки к гуи на си.
>Не для этого язык создавался.
Важно не то, для чего он создавался, а важно то, для чего его можно использовать. Питон можно успешно использовать для гуи.
пожалуйста
Не могу понять как получить переменную из функции импортируемого файла, жду помощи анона
Почему ты решил мне задать такой вопрос? С чего ты решил, что они мне мешают.
Как обычно манямирки лезут из всех сторон.
Да не, у меня всё норм. Скоро курсы закончу, получу сертификат и пойду устраиваться.
Только что-то у всех манямирок, смотрят на эти красивые графики и забывают, что необходимо иметь охуенный математический бекграунд)))))скобачка))0))нуль)скобка))))ыыыы
Счетоводная задняя земля.
Что такое, дурачок, против фактов не попрешь? ))) манямирок пошатнулся??
b не интересно подобное
Они "траллят" друг друга и меряются виртуальными хуями
Вкатывание в погромач, даже надуманное, для них - нонсенс
> b не интересно подобное
Так там треды про Вайти вАйти по популярности сразу за армейко-дебилами идут.
Народу внушили, что работник макдака или грузчик может научиться тыкать в клавиатуру и зашибать 300к в секунду находясь в деревне.
>треды про Вайти вАйти по популярности
Ты походу даже близко не представляешь, что такое /b
Они будут многие часы пиздеть о чем угодно. Но собственно поднять жопу и сделать шаг - ни за что
> работник макдака или грузчик может научиться тыкать в клавиатуру и зашибать 300к в секунду находясь в деревне.
Но ведь так и есть
Нагуглил только sanic-wtf. Но мне sanic нахуй не упал
Посаны, а подскажите сообщество ребят знающих Keras, есть предложение.
> нахуя детям учить программирование?
Раньше учили шахматы, чтобы ездить заграницу на соревнования ну такой был план поих предков, потому что знакомая девочка с родителями ездила на международные соревнования
Как обычно, завалится куча людей, половина отвалится на следующий день, другая половина через неделю, вкатится 1 человек
И то, этот один будет не из /b
нет ты
Есть текстовый файл, нужно удалить часть текста заключенную между символами TYAN и KUN. Как ето сделать?
Btw, в visual studio code мне подсветка кода нраистя.
Pyzda
IDE с нескучной подсветкой сук
Ищи питоночат и там может кто будет знать/работать с этим.
Анон предложил регулярочки, но есть ещё вариант:
Разбить текст на слова, находить первое слово ТЯН, запоминать индекс и дальше искать первое КУН и удалять все между ними и т.д.
Это же один из родителей и super должен позволять напрямую обращаться к его методам, если передать туда нужный класс.
https://pastebin.com/5zWUKHuY
укус питухона
Уже разобрался, спасибо.
Неправильно распарсил слова препода на курсере и думал, что `super(Shit).eat()` позволяет вызывать метод eat класса Shit, а на самом деле - его родителя
А тебя не смутило, что в super указывается класс First, а вызывается метод, который указан в Second?
капитанская дочка
>но когда есть докер и утилиты для баша
Какие утили для баша юзаешь, а главное зачем?
Что такое докер, сервачка который?
Теперь доступ к сайту только с указанием порта. На установку с указанием 80порта выдает ошибку, что нет root доступа. Это не выделенный отдельный сервер, поэтому, насколько я понимаю, получить рут я не смогу. Так вот, как сделать так, чтобы на сайт можно было зайти по адресу blabla.ru, а не blabla.ru: номер порта?
Нет, все, видимо, проще. Нагуглил модуль schedule, попробуй через него
Сам пытаюсь вкатиться, начал с языков, которые просто попались первыми. Сие был пхп и жс. К пхп я давно не возвращался, немного подзабыл.
Стоит ли сразу на несколько направлений распыляться или это неэффективно? Каши в голове не будет?
(Nginx+uwsgi/gunicorn+django)+docker/supervisor
Если судо нет, то как ты все остальное ставил?
Celery
Объясните кто-нибудь, будьте добры.
Ну я молодец. Этого достаточно?
Я думаю не стоит, но прежде всего нужно определиться, Гвидо ты, нравится ли тебе ООП. Нужен ли тебе статическкая типизация или динамическая? Как ты собираешься массивы, в руку? А вообще, советую начать с html, он вроде и не ассемблер и не кобол, но вкупе с css, а особенно scss и css grid можно еще js, но там как бы кофескрипт можно, а еще если надо строгая типизация на ебучаем уродливом жс, то тайпсрипт. Попробуй сделать калькулятор на питоне, а позже можно джанго или фейсбук сделать свой, но не перестарайся, можно машоб, а хотя нейронки лучше виртуальную реальность, тоже неплохо. Вообще если умеешь в композицию, лучше дизайном займись, прооективровать uxui для vr
Html и css я знаю, даже какие-то шаблоны из интернета пилил, в js могу на базовом уровне. Ну и пхп немного.
> Столкнулся с тем, что он брезгует удалять текст если в нем присутствуют переносы
Да, дело в том, что точка в выражении обозначает любой символ кроме новой строки. Попробуй так:
re.sub(r'(?<=tyan)(.|\n)*(?=kun)', '', text)
Смутило, но я решил забить. Там что-то с MRO связано, т.к они оба родители класса Test.
Если кто-то пояснит доходчиво, то буду благодарен
> Я так полагаю, твой вариант решит эту проблему?
Да.
Но если уж взялся за регулярки, то перед началом работы выгрузи весь текст в память и сделай текст.replace('\n', '').
Тогда символов окончания строки не будет. Так же можешь поступить с другими элементами, если будут мешать.
>>389218
Спасибо ребят, но яя слишком тупой для регулярок.
> re.sub(r'(?<=tyan)(.|\n)*(?=kun)', '', text)
этот вариант оставлял тянку с последним куном, т.е. весь текст съедался)
text = open("love.txt",encoding='utf8').read()
a1 = text.index("TYAN")
a2 = text.index("KUN")-1
b= text[:a1]
b=b+text[a2:]
print(b)
Решил так
только вкатываюсь в первый язык, хз что как
самый быстрый метод - переустановить, выбрав добавление в PATH, а не что там по дефолту стоит при установке
Через ssh доступ
Анончики объясните почему при одном бэкслэше как на первом пике вс коде выдает ошибку а при двух как на втором пике не выдает ошибку но при этом пишет "anomalous backslash in string" это че надо перед каждой папкой в пути ставить два бэкслеша или как ?
фикс первого пика
потому что escape sequences
чтобы использовать символ бэкслеш тебе надо 2 бэкслеша подряд написать
кроме того, в путях форвард слеши прекрасно работают, необязательно бэкслеши плодить
заменил index на find, а то обычная проблема из /б возникала, при неимении TYAN все переставало работать.
Похоже что у тебя все символы пиксель в пиксель одинаковые.
Если это так, то у меня напрашивается предположение, что лучше бы решать задачу обычными детерминированными способами, без всех этих ваших нейронок (tesseract)
1. Убрать хуйню белую. (я для более масштабных объектов убирал как то так )
2. Разделить на символы - пока по вертикали есть хоть одна точка светлее порога, то это идет все тот же символ. Ну и горизонтали.
3. Получить алфавит распознанных как угодно символов (вручную например): образ (картинка/массив) - символ.
4. Для каждого изображения_символа сграбленого с распознаваемого изображения: выполнять последовательно вычитание (np.array могет) всех образов из твоего алфавита 3 обрезая по размерам образа. Там где результат будет массив с нулями - то этот символ и есть.
Но это в идеале, не факт что нет какого-то субпиксельного сглаживания и границы символов будут определяться всегда ровно. Но тогда поидеи можно сдвигать туда сюда на единицы пикселей изображение_символа от прообраза, сравнивать с разных точек привязки, и искать где результат самый маленькийю Имхо это не сильно просадит производительность. Уж точно меньше чем жрет запуск сабпроцесса tesseract на небольшие слова. (на моем фуфиксе если не ошибаюсь распознание сколь угодно малого текста это секунды, пиздец).
Ну и можно наверное ускорить это костыльное сравнение раз в 5-20. Если добавить каких нибудь просто вычисляемых начальных условий откуда начинать сравнивать.
Типо посчитать статистику в каждой позиции исходной картинки - типо в первом слове на первом месте чаще всего "Т" с него и начинать.
Или посчитать сумму всех пикселей образов и изображения_символа, и начинать откуда где оно наиболее близкое.
К твоему варианту, надеюсь ты знаешь, тессеракт не любит, когда текст упирается в края изображения. Добавь со всех сторон поля цвета фона размером пикселей 5-10.
1. Есть ли возможность устроиться fullstack на Django
2. Что должен уметь делать джуниор Django по состоянию на 2к19?
3. До какого уровня разрабы на Django учат HTML, CSS, JS и учат ли?
1, Полегче, ибо ты хуйню написал и анон соответственно отреагировал.
2. JS твой будет на фронте всё красиво рисовать и выводить, а на джангу/фласк(любой другой фреймворк на бэке) будет только запросы слать с данными и за данными. Как-то так.
За мат извини ;) спасибо анончик, добра тебе ::3
Я правильно понимаю, что маршрутизация будет на js framework"e?
> html и не ассемблер и не кобол
Что за хуйня здесь происходит, что не зайду время от времени вижу похожие предложения. Это какой-то локальный мем треда?
Это паста, не общайся с пастой
Какая маршрутизация?
JS будет рисовать твои формочки и данные по ним раскидывать и из них извлекать. Всё.
Это и было прочитано самым первым, но дело в том что в стандартном питоне для винды, который я скачал с питон.орг, нет такого модуля.
Если вопрос тупой, то я извиняюсь, конечно, но я только недавно начал въезжать в питон. Весь интернет облазил, и только потом обратился сюда.
В общем, мне просто нужно сделать выход через нажатие 'escape'. Везде пишут что нужно сперва импортировать модуль msvcrt, но хоть расшибись, не могу нигде его найти. Все остальные модули из любых мест импортируются нормально, просто потому что они существуют.
А, не, для тройки тоже есть https://docs.python.org/3/library/msvcrt.html. Ну тогда хуй знает что у тебя импортировать там не получается, завтра гляну
не могу писать в пайчарме на русском через раз, фиксится перезапуском пайчарма. наверняка тут каждый сталкивался с такой дичью, нагуглил, но этого не нашел, плагин не установлен
У меня такая же херня с просто идеей. Проблема старая, и всем похуй:
https://youtrack.jetbrains.com/issue/IDEABKL-6290
Попробуй PuntoSwitcher, гы-гы.
И вообще, не пиши в PyCharm на русском, блеать! У тебя не зависнет переключение раскладки, если ты не будешь переключать раскладку.
А как сделать комбинации сумм трех чисел из списка пяти-шести-итд чисел? Возможно ли это вообще?
Всё, нашел itertools.combinations.
Теперь вопрос у меня запущено несколько инстансов сервиса, который создаёт эти таски. Если процесс упадет посередине выполнения, то как обновить статус таски на зафейленный, при условии, что инстансы перезапускаются после падения?
Я бы месседж кью сделал, кидаешь месседж что надо сделать таск, если процесс падает то месседж ретраится, в базу статус в таком случае писать не надо.
То есть вручную ack отправлять после обработки? А есть сервис упадет сразу после завершения основной логики, не успев сообщение подтверждение отправить?
Сейчас у меня апдейт статуса таска и создание данных в бд полученных после обработки происходит в рамках одной транзакции и поэтому не боюсь повторного создания, если что-то отвалится.
Ну и еще нужно пользователя уведомлять о статусе, так это нужно где-то хранить.
Это нужно для реализации одной фичи, тянуть celery ради этого не вариант. Да и вся логика этих недотасков заняла 2-3 часа примерно
Почему у Питона какая-то ебля при импорте классов из файлов в той же папке? Почему какие-то альтернативные синтаксисы? Почему эту залупу гуглить приходится и наблюдать какие-то удивительные флаги запуска и прочее-прочее? Вы ебанутые там? Таких намеренных сложностей даже в крестах нет.
С точкой, без точки, с большой буквы, с фромом и без - охуеть вообще
Ебать, если это реально вызвало у тебя затруднения, то не ошибся ли ты загоном, петущок? Ты еще джаву не видел, или жс лет 5 назад (впрочем все те приемы еще актуальны, просто сахарку добавили)
Django fsm
1. Ага, только по самому этому вопросу ясно что ты вообще нихуя не понимаешь как можно организовывать приложения и тебя это ебать не должно, само придет с опытом
2. Всё
3. html и css везде всегда подразумевается как освоенный всеми навык, никто даже в расчет не берет что ты можешь не знать их, жс как повезет, обычно не требуют и учат на практике по мере работы. По нормальному ты должен писать на нем не хуже чем на дефолтном яп, но мы оба знаем что ты даже в дефолт нихуя не умеешь
Тебе сильно повезло, что смог устроиться джуном. В РФ кроме ДС и ДС-2 Питон/Джанго - бесперспективная хуйня.
Учу питон в группеЯндекс лицей,вчера было последнее занятие,на котором разбирали декораторы,на самом занятии я думал,что понял данную тему,но оказывается НЕТ, НИХУЯ
Можете пояснить за декораторы и нахуя они нужны?
Спасибо
как же вы заебали с вопросами уровня "как объявить функцию"
Серьезно, это, буквально, то что ты спрашиваешь. Декоратор - это функция, принимающая на вход функцию, и возвращающая результатом выполнения функцию, все блять. А что уж ему делать решать уже разработчику
Following:
def sum(a, b):
----"""Сложить два числа."""
----return a + b
def sum_and_inc(a, b):
----result = sum(a, b)
----return result + 1
sum_and_inc(1, 2)
-> 4
Can be resolved as:
def sum(a, b):
----"""Сложить два числа."""
----return a + b
def inc_decorator(func):
----"""Принимает любую функцию с сигнатурой из двух параметров, возвращает ее результат выполнения '+ 1'."""
----def wrapper(a, b):
--------result = func(a, b)
--------return result + 1
----return wrapper
# Сохраняем в переменную функцию возвращенную декоратором
# Ровно это делает '@' над объявлением функции.
sum_and_inc = inc_decorator(sum)
# Пользуемся.
sum_and_inc(1, 2)
-> 4
Решение с декоратором более общее, так как, очевидно, декоратор можно навесить на что угодно, а в первом случае у нас хардкод логики.
Following:
def sum(a, b):
----"""Сложить два числа."""
----return a + b
def sum_and_inc(a, b):
----result = sum(a, b)
----return result + 1
sum_and_inc(1, 2)
-> 4
Can be resolved as:
def sum(a, b):
----"""Сложить два числа."""
----return a + b
def inc_decorator(func):
----"""Принимает любую функцию с сигнатурой из двух параметров, возвращает ее результат выполнения '+ 1'."""
----def wrapper(a, b):
--------result = func(a, b)
--------return result + 1
----return wrapper
# Сохраняем в переменную функцию возвращенную декоратором
# Ровно это делает '@' над объявлением функции.
sum_and_inc = inc_decorator(sum)
# Пользуемся.
sum_and_inc(1, 2)
-> 4
Решение с декоратором более общее, так как, очевидно, декоратор можно навесить на что угодно, а в первом случае у нас хардкод логики.
Я только начинаю изучать, ясен пень что я ничего не знаю. Нашел перед кем тут умничать, лол.
"умничать" блять. Недожуну лень загуглить то, что все уже спрашивали миллион раз, а я тут умничаю, ну ахуенно, чё.
чувак я блять анон с поста выше который нихуя не изучает и спрашивает про матан
даже я понял что он нужен что бы сократить выражение
Всё я видел, оттого и охуел.
У Джавы, ладно согласен, но хотя если общую систему освоил, то справишься уже. И там всё же есть откуда сложности браться.
А с JS вообще никаких проблем с импортами не было хоть в Ноде, хоть на странице.
Опять же, вызвало это затруднения не только у меня. Это постоянные вопросы к репозиториям тем же.
Вот какого хуя я беру код из официального репо не самого мелкого проекта, а там нужно с этими точками ебаться? При этом у кого-то другого оно просто работает и без них.
Это же бред какой-то, после этого даже потешные прайват-поля так дико не выглядят.
Если не будешь трогать numpy and etc то все ок, если же будешь, то подтяни свои знания немного и всё.
Я вот думал не пригодится, а сейчас матрицы кручу-верчу-как-хочу сидя фулом на бэкэнде. Никогда не знаешь чем заниматься надо будет.
> 2-3 часа за велосипед
Ну вот хуй знает.
А мог бы накатить сельдерей/анологи и рэбит/рэдис, а потом заниматься лишь разбивания своего большого таска на меньшие и мониторингом.
Есть массив: [[unix_time, value], ...] Это данные с системы мониторинга prometheus.
Система специфична тем, что некоторые семплы могут быть пропущены, если во время их снятия что-то тормозило (например интернет).
Я эти данные фильтрую, делаю над ними всякие арифметические преобразования. Поэтому нужно сделать так, чтобы каждый семпл был определен для каждой выборки (ну особо упоротые таки надо отбросить).
В scipy.signal есть только метод для ресемплирования выборок без пропуска семплов. (на входе всегда одномерный массив без времени).
Что же делать? Писать свою писечку. Не охота.
я уёбок и делаю для CI верицикацию состояний стадий релизов по prometheus метркам
Дополнительные сервисы со скрипом в проект можно тимлидам протолкнуть
Получается что так. Фантазии о "учи то, что нравится" приведут разве что к безработице. Sad but true
Это проблема вообще всех вкатывальщиков, а не только тех, кто хотят в питон. Зато вакансий на мидлов и выше полно
Ну так вакансию миддла ты не получишь от одного самостоятельного обучения. Это уже получается херня как в остальных профессиях: мы не берем без опыта работы, но чтобы получить работу нужен опыт.
>Это уже получается херня как в остальных профессиях: мы не берем без опыта работы, но чтобы получить работу нужен опыт.
Так это проблема уже всех профессий, а не только погромированния и не только питона, так что та статья мягко говоря не очень
Всё ты получишь, были бы пруфы.
Если ты прикатишься в офис с пачкой действительно отличных проектов с прекрасно оформленным и хорошо спроектированным кодом, над которым ты работал сам либо вместе с другими аутистами из инета - возьмут тебя с радостью.
Но ты ведь хочешь только мануал открыть, а уже чтобы на миддла брали. А ещё лучше сразу директором компании посадили.
У типа вполне нерлохой опыт за плечами для начинающего, 2 года вката (хотя это не столь важно, но он явно не проебывал время). Если того, что он там научил и напрактиковал недостаточно, то какой должен быть уровень и умения у начинающего?
Не. На JS можно меньше чем за год вкатиться, может даже за полгода если повезет.
Если ты со старта можешь в хороший годный проект в команде аутистов, то почему бы просто не организовать стартап?
Ну и учитывая то, что коммерческого опыта нет ты должен максимально пруфануть все свои знания на собесе/тестовом, т.к. спиздить чужой готовый проект и отредактировать коммиты как нехуй делать
>>391652
>У типа вполне нерлохой опыт за плечами для начинающего
Какой у него коммерческий опыт? Джва года чтения учебников и сборки сайтов на вордпресе.
Он же даже не показал, что это за нормальный проект у него. Да еще и плюсы для веб-макаки зачем-то приплел, причем опять же на уровне учебников.
>Какой у него коммерческий опыт?
Откуда у него будет коммерческий опыт, если его на работу не берут?
есть дешифратор строк(https://paste.dlab.im/?05f345a4da355a98#EPbdFZWSz836qI6TiKEIRZuWmL9Xt7N8UVloUPHJ8XU=)
как сделать шифратор под этот же дешифратор?
пробую сделать просто тоже самое в обратном порядке - выводит хрень
В статье написано все джуниор вакансии в мск, я хз зачем погромисту оставаться в жопе мира.
Выучил язык - меняй уровень своего окружения.
С удовольствием бы умчал в МСК будь у меня готовый стек и портфолио под джуна, посидел бы пол года в хостеле.
Затем, что нечего делать в городе, в котором ты жилье не сможешь приобрести. Да и нечего тебе тут околачиваться. Москва для москвичей.
Ты же в курсе, что коренных москвичей в 3-4 поколении гораздо меньше половины, а все остальные это понаехи и их дети
>А с JS вообще никаких проблем
(твой код)(); <- вот так в жс выглядит экспорт без сахарка, с добрым утром
>с этими точками
Ты там из под винды пытаешься кодить? Велкам ту c# тред, в юниксах точка всегда обоазначала текущую категорию, все импорты в питоне относительные
>>389760
На самом деле сегодня я был исключительно токсичным, прошу прощения.
Что отписал простом выше - по сути так и есть:
1. "Фулстек на джанго" бессмысленная фраза, джанго - инструмент решающий задачу, все равно что говорить "фулстек на html". Если вопрос про наличие рабочих мест как таковых - полно, порог вхождения наименьший из всех что знаю, кроме пхп
2. Чем больше знаешь - тем лучше. Лучший джун - который умеет все. Если про минимальные требования - списки минималочек рознятся, в шапке, вроде, был какой-то, да и тут вкидывают часто, и в интернетах есть
3. html/css подразумеваются как само собой разумеющемся, обычно даже не спрашивают. Stdlib js знать как дефолтный яп. При вкатывании не обязательно, обычно обучается на живом опыте, кажется это типичная практика.
При вкатывании важнее всего освоить побольше навыков, которые потом улягутся в сознании как само собой разумеющемся и по накатной начнут копится.
Чем больше знаешь, тем больше шансов попасть на кого угодно, вопросы могу позадовать
>3. html/css подразумеваются как само собой разумеющемся, обычно даже не спрашивают. Stdlib js знать как дефолтный яп. При вкатывании не обязательно, обычно обучается на живом опыте, кажется это типичная практика.
Это годится только для вката, фуллстак это вообще наебка с двойной нагрузкой по обучению, при небольшой прибавке к зп
Какая разница? Как это отменяет тот факт, что ты будешь всю жизнь жить на съемных квартирах? Это пока ты живешь с мамкой и думаешь, что куда угодно бы съебался и сколько угодно там бы жил. Но потом ты будешь задумываться о своем жилье и осознавать что у тебя его никогда не будет, ибо сумма неподъемная.
>фуллстак это вообще наебка с двойной нагрузкой по обучению, при небольшой прибавке к зп
как писать фронт не зная в общих чертах бэка и наоборот
>Чем больше знаешь - тем лучше. Лучший джун - который умеет все. Если про минимальные требования - списки минималочек рознятся, в шапке, вроде, был какой-то, да и тут вкидывают часто, и в интернетах есть
Ну вот у меня горит жопа уже неделю от того, что я не могу выбрать фронт или бэк. И то и то интересно, но понимаю что распыляться нельзя, иначе вообще хрен что выучу. Единственное что пока приходит в голову, это на самое первое время изучать все подряд, а потом уже смотреть куда внимания и интереса больше уходит и на том решать.
>Чем больше знаешь, тем больше шансов попасть на кого угодно, вопросы могу позадовать
А что сейчас считается неплохими проектами для начинающего? Что нужно уметь делать, что бы на удаленку взяли (сам я с миллионника, тут с вакансиями не то чтобы очень).
Там это настолько общие черты, что можно знать 2.5 термина и уверенно писать код
{% Profile.objects.get(name__exact=request.user.get_username).get_absolute_url %}
Немного погуглив, я пришел к выводу, что лучше это делать отдельно в views.py. Но этот кусочек нужно вставить в самый базовый шаблон. Итак, второй вопрос: как использовать views для базовых шаблонов?
Вкатываться и в бек и в фронт одновременно джуном смысла нет - первый год работы ты учишься правильно мыслить, а именно анализировать проблемы и искать к ним решения. Без нормального тимлида и внешней помощи, между прочим, это может быть тяжело - не видя нормального человека-примера-как-нужно-мыслить, и вообще командного взаимодействия и обсуждений, джуном тяжело заметить где ты ошибаешься.
По сути как только набираешся в этом опыта можешь начинать заниматься чем угодно, а до этого без разницы через что вкатываться.
Проект пили любой, все смотрят только на то насколько логично он написан, по каким стандартам и есть ли тесты. Лучше всего какой-нибудь бложик, так как эти ближе к наиболее частым веб задачам.
У них там свой мирок со своими хранилищами, можно graphql с валидацией данных поднять на беке и необходимые эндпоинты. Нужно именно знать основы работы веба, аутентефикацию, авторизацию, http, вебсокеты и прочие штуки для взаимодействия, что конкретно происходит на фронте можно забить, это уже их проблемы
Двачую этого.
Приходят унтеры после курсов/универов, с пустым или, ещё хуже, обоссаным гитом, а потом кричат что вакансий для них, умниц, нету. Ага.
>Не изучай синтаксис
В смысле? Нет, блядь, то что вместо скобочек отступы это конечно круто и здорово, но говорить об отсутствии необходимости изучать синтаксис преждевременно.
Вопрос № 1:
Изучаю питончик, дошел до сетевых протоколов, библиотек реквест и бьютифулсоап, джейсона и смежных приблуд.
Вопрос: какие можно придумать учебные задачи, на которых можно отработать хорошо умение собирать информацию с веб-страниц?
Или, еще круче, не могли бы вы рассказать о реальных задачах, которые решаете/решали на работе/в пет-проекте, связанные с парсингом?
Алсо, может быть даже покажете код, что бы я мог сразу поучиться писать нормально.
Я бы даже предложил попрсить что-то за бесплатно или за доширак, если бесплатно напрягает, но, думаю, моих знаний еще очень и очень мало.
Вопрос № 2:
Он теоретического характера. Обязательно ли везде применять ООП как парадигму. Например, я написал простой скриптик, который ворует дату регистрации на codewars.com и возвращает мне, или чуть-чуть более сложный скриптик, который ворует пути по которым лежат вебмки на дваче (это мне для маленького пет-проекта нужно).
Но поскольку сами по себе скрипты очень маленькие (50-100 строк), я их пишу как отдельную функцию, но не замарачиваюсь с более сложной структурой:
def still_some_info(url):
'''some code'''
pass
Ну и вызываю такую функцию в main().
Есть ли смысл пытаться сделать ООП класс Parser c методами разными и всякой такой чушью? Как вообще определить, стоит ли использовать ООП или хватит просто вот функции?
Вопрос № 1:
Изучаю питончик, дошел до сетевых протоколов, библиотек реквест и бьютифулсоап, джейсона и смежных приблуд.
Вопрос: какие можно придумать учебные задачи, на которых можно отработать хорошо умение собирать информацию с веб-страниц?
Или, еще круче, не могли бы вы рассказать о реальных задачах, которые решаете/решали на работе/в пет-проекте, связанные с парсингом?
Алсо, может быть даже покажете код, что бы я мог сразу поучиться писать нормально.
Я бы даже предложил попрсить что-то за бесплатно или за доширак, если бесплатно напрягает, но, думаю, моих знаний еще очень и очень мало.
Вопрос № 2:
Он теоретического характера. Обязательно ли везде применять ООП как парадигму. Например, я написал простой скриптик, который ворует дату регистрации на codewars.com и возвращает мне, или чуть-чуть более сложный скриптик, который ворует пути по которым лежат вебмки на дваче (это мне для маленького пет-проекта нужно).
Но поскольку сами по себе скрипты очень маленькие (50-100 строк), я их пишу как отдельную функцию, но не замарачиваюсь с более сложной структурой:
def still_some_info(url):
'''some code'''
pass
Ну и вызываю такую функцию в main().
Есть ли смысл пытаться сделать ООП класс Parser c методами разными и всякой такой чушью? Как вообще определить, стоит ли использовать ООП или хватит просто вот функции?
>Приходят унтеры после курсов/универов, с пустым или, ещё хуже, обоссаным гитом
Ну тащемта несколько ле назад все так и было, и таких брали. Сейчас же программирование (во всяком случае веб, бэкенд) далеко не для новичков. Обучать никому не упало.
1) Писал парселку для аккаунтов фотостоков, мерзкое и неблагодарное занятие, с постоянно изменяющимися страницами, юзали bs и селениум, т.к. большинство сайтов просто не отдавало информацию без js/имело ебанутые проверки на парсилки, которые надо обходить
Больше я этим говном заниматься не хочу
Можешь парсить родной двачик, или ему подобные сайты. Пикрелейтед - телеграм-бот, подписывающий на треды.
Спасибо, Анон, я как раз параллельно разбираюсь с тем, что такое API, как он работает и всякими такими штуками.
Я думаю, что если решаешь между фронтендом и бэкендом, то лучше выбирай фронтенд. На него спрос в целом больше, он универсален. Все, кто колеблется чаще выбирают его. Фуллстеки чаще упираются на фронтенд. Бэк больше для тех, кто особо не выбирал, а сразу понял что им это гораздо ближе.
> что такое обоссаный гит?
Есть пара репозиториев, ссылки на них есть в твоём резюме.
К репам ридми написан в ТХТ.
И даже в таком ридми нет никакого пояснения по ЗАПУСКУ твоего кода, а только жидкое описание того, какой этот проект крутой.
Половина кода в репах закоменчена, вторая половина повторяет первую с небольшими изменениями.
PEP%номер%? В смысле? Что это?
Сделал себе сайт визитку. Ссылка в профиле. Сайт лежит/сверстан убер криво/вместо информации о себе там базовый шаблон который спиздил у кого-то - нужное подчеркнуть, можно выбрать сразу несколько вариантов.
Жиза. 35-летний еблан, после курсов от ОЙТИ-академии пытался вкатиться. Может он и с головой и руками, но после такого гита - даже на собес не позвали. Лучше бы вообще ссылку не давал.
Я думаю ты уловил суть хуйового гита.
Питон с нуля первым языком это нормально или я ебанулся?
если ты рассказываешь реальный случай, то, если у него сайт висел, как вы могли узнать, что он плохо сверстан и там базовый шаблон
Часть внутренних ссылок не работала, у конкретного человека, у которого и был шаблон стандартный и пустой.
Очень часто в принципе видел ссылки в профиле которые ведут в никуда.
норм.не паскаль же
ссыль
сейчас у много у чего есть api и документация, пусть учится парсить
django бамп
че у нас все питонисты в дата сайнс блять работают? какой нахуй математический бэкграунд
мимо политолог 300к/наносек
Мне нужно разбить его на разные массивы, в каждом из которых будут значение, которые идут только по порядку. Т.е должно получится:
[1,2,3]
[9,10,11,12]
[54,55]
[78,79,80,81,82,83]
Как можно так сделать? Особенно в случае когда кол-во выходящих массивов не известно.
Создаёшь один массив в который будешь записывать свои мелкие массивы с идущими подряд цифрами.
Вне цикла создаёшь этот один пустой массив и второй создаёшь уже в цикле. В цикле проходишь по всем цифрам и аппендишь их ко второму массиву, если они идут подряд, а если не идут - аппендишь второй массив к первому и очищаешь второй, начина заносить туда дальше цифры по циклу.
А какие подводные?
То тебе не нужен словарь.
Тебе нужна структура вида: (('типа ключи', "типа значение"), ('типа ключи', "типа значение"))
И потом ищешь в нём нужное.
Спасибо, сделал, но где-то ошибка в цикле и первое значение не записывается, не могу понять почему.
Изначальный массив:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101]
А на выходе у меня:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81]
[101]
]
Т.е 61 и 100 куда-то деваются.
Мой код:
def get_minutes(array):
ar = []
a = []
for x in array:
if (not a):
a.append(x)
elif(a[-1] == x-1):
a.append(x)
elif(a[-1] != x-1):
ar.append(a)
a = []
return (ar)
Что не так?
Засунь свой код в дебагер и смотри что за хуйню ты написал
Бля, только отправил пост- сразу дошло. Пофиксил.
Как отличить эти функции от своих, родных? Может добавить им атрибут как-то автоматически?
Ну, импортируй не отдельные функции, а весь модуль, типа, import module_name, а потом вызвай moduke_ name.foo() и module_name.bar()
Я так понял что при импорте отдельной функции из модуля ты функцию с таким же именем в своем модуле перезаписываешь. Нужно импортировать весь модуль, тогда пространства имен не будут пересекаться и у тебя будет функцияродная и пространство.функцияимпорт.
Сильно не пинайте если я хуйню сказал, изучаю всего сутки. Просто интересно насколько я разобрался.
Всё верно, но чаще всего тебе нужны только несколько функций, а не все из модуля, в таком случае можно использовать следующую конструкцию "from module import func", можно ещё импортировать сразу несколько функций "from module import func1, func2", если у тебя название имортируемой функции совпадает с названием какой-нибудь функции в твоем модуле, то можно изменить имя импортируемой функции при импорте: "from module import func as new_func_name"
Мое детище (викторина) не воспринимает правильные ответы
from tkinter import *
from tkinter import messagebox, Entry
import random
import pickle
window = Tk()
window.geometry('400x900')
window.title('Викторина')
def main():
global num,sec
sec = random.randrange(1, 10)
text = Label(text = 'Введите число')
num = Entry()
but = Button(text = 'Ответить',command = lambda:check())
text.pack()
num.pack()
but.pack()
print(sec)
def check():
ent = num.get()
if ent == sec:
messagebox.showinfo('Отлично','Вы победили!')
elif :
messagebox.showerror('Ты','Проиграл')
main()
window.mainloop()
Мое детище (викторина) не воспринимает правильные ответы
from tkinter import *
from tkinter import messagebox, Entry
import random
import pickle
window = Tk()
window.geometry('400x900')
window.title('Викторина')
def main():
global num,sec
sec = random.randrange(1, 10)
text = Label(text = 'Введите число')
num = Entry()
but = Button(text = 'Ответить',command = lambda:check())
text.pack()
num.pack()
but.pack()
print(sec)
def check():
ent = num.get()
if ent == sec:
messagebox.showinfo('Отлично','Вы победили!')
elif :
messagebox.showerror('Ты','Проиграл')
main()
window.mainloop()
>sec = random.randrange(1, 10)
Не понял, он у тебя за верный ответ рандомное число выбирает? Где привязка числа к правильному ответу, не подскажешь?
Ээ,берется рандомное число и сравнивается с введенным , в случае совпадения - win , иначе скатертью дорожка
Встроенной функцией dir, dir(mymodule) и получишь список аттрибутов объекта mymodule
По-моему в ткинтере надо у виджитов указывать родительский виджет, лучше при создании объекта-виджета, вот у тебя должен быть объект window родителским для всех этих кнопок и лейблов.
И вот тут
command = lambda:check()
Лучше так
command = check
Типа,
text = Label(window,text = 'Введите число')
num = Entry(window)
but = Button(window,text = 'Ответить')
?
И вот тут
command = lambda:check()
Лучше так
command = check
Таким образом оно сразу выполняет функцию, не дожидаясь нажатия кнопки
>Таким образом оно сразу выполняет функцию, не дожидаясь нажатия кнопки
Нихуя. Ты же передаешь имя функции, которую надо лергать при нажатии, вот если ты напишешь command=check(), то тогда она вызовется, но я же тебе предлагаю передать саму функцию command=check
А нахуя импортить через ебаную звёздочку, что уже по даунски, а потом импортировать отдельные модули, хотя ты уже импортировал всю библиотеку, что ты такое бля??
копировал фрагменты,не заметил
DjangoBIGData
Но на деле нихуя не меняется чтобы я не сувал в этот ебаный size_hint.
Более того:
- если width объекта в Block менять на self.parent.width, оно нихуя не делает
- если width объекта в Block поставить `width: self.parent.width / 10`, оно начинает нормально скейлить размер блока относительно родителя при смене размера окна
- если width объекта в Block менять на вызов функции которая внутри делает self.parent.width / 10, например `width: self.get_relative_width(10)`, то значение хардкодится и размер становится статичным, и не меняется при смене размера окна
Какого хуя блять происходит? Прочитал что ебаливые widget.size/pos - это проперти которые реализуют Observer pattern, но пока еще нихуя не допер почему оно так себя ведет.
По умолчанию, как понимаю, size_hint энаблед, это не однозначно говорится в документации, а так же для MainWindow прокает
>Не нравится и не хочу разбираться в UI и фронтенде, можно ли найти работу где не нужно ебаться с этими вещами
Нет.
Сап. Сейчас заканчиваю курс на pythontutor, вроде интересно, понятно,но хочется прояснить несколько моментов.
1. Некоторые задачи вводят в ступор. Бывает, что сижу над ними по 2-3 часа, и еле как высираю максимально неудобное решение(получается огромный код,когда в решении он достаточно лаконичен).
2. Далее планируюсь вкатываться в Django,но только для того, чтобы через некоторое время(год-2) дроча выносить минимальные деньги с этого. Насколько реалистичен данный план? Сам я выбрал питон для нейросетей(интересна эта тема), но так как я школьник без лишней копейки в кармане,то ищу все возможные пути заработка.
>нахуя импортить через ебаную звёздочку
Потому что, дитё ты ебаное, в случае tkinter'a это самый кошерный вариант
+ Да. Онли питон-бэк.
Иногда bs4 нужен какой, для парсинга.
UI на ангуляре хуярит отдельная команда, которая занимается этим профессионально. От меня им нужен лишь апи и доки под это апи.
Я просто сразу на собесе говорю что не фуллстэк и мне это не интересно.
> Смотришь в исходники говна
> Only the :class:`~kivy.uix.layout.Layout` and
:class:`~kivy.core.window.Window` classes make use of the hint.
> Layout наследуется от Widget, а не Widget от Layout
> В документации показывают пример использования в Widget, в котором эта ебанина нихуя блять не делает.
Просто ахуенно.
Твоя мать умрёт через два дня, если ты не объяснишь как работает эта хуйня.
Помоги себе прочитать книжку-другую, или зарыться в гугл.
ох, мама, а у меня всего год опыта.
Спасибо, действительно самый простой сопособ.
Но, всё же мне нужно как-то добавлять свойства функциям, т.к. они являются пользовательским вводом.
Т.е. мне хочется назначать my_attrib в теле функции, так чтобы он был доступен после импорта модуля с этой функцией. Примерно так же, как это происходит с __doc__:
def foo():
--'''моя функция'''
--print('fooooo')
foo.my_attrib = 'lalala'
Если ввести 2000, то на выходе должно быть "9 20", а выходит "33 20". Типо на циферблате нет 33 часов. Как мне сделать чтобы эти лишние часы отсекались и выдавался только промежуток между 0 и 23?
как сделать лучше?
Лол, у меня в универе был предмет ООП программная инженерия, преподавательница наотрез отказывалась принимать лабы написанные на каком-либо яп, кроме Java, аргументируя, что это лучший язык для ООП. Когда мы спросили про Python, она сказала, что эту парашу учат только максимум в 5ом классе, и вообще язык для дебилов. Сдается мне, что она сидит где-то на двачах.
Двачую. Не осилил кресты - нахуй из профессии, верстальщик.
Ну, так пиши все что нужно в док-строку, модешь еще какой-нибудь sphinx использовать для генерации документации, вообще сопровождай документацией свои модули.
Честно говоря, я так и не понял, что тебе нужно.
Нет. Только Java \ .NET \ Go
>преподавательница наотрез отказывалась принимать лабы написанные на каком-либо яп, кроме Java, аргументируя, что это лучший язык для ООП
Ну, так то она права. Лучше Java \ C# для изучения ООП ничего нет. ООП в пайтоне - это кусок говна, ни инкапсуляции нормальной, ни интерфейсов из коробки, ни-ху-я, вы бы еще Си взяли, дебилы. Единственное что может быть интересно - MRO, но для этого есть C++.
Когда речь заходит о каких-то более серьезных вещах - масштабируемых и поддерживаемых системах, то скритодристней там и не пахнет, хотя я не думаю что у вас в ПТУ вообще тему хайлодов затрагивали.
>>393112
>и вообще язык для дебилов
Ну, учитывая что ты высрал эту хуйню - ты как был дебилом, так им и остался.
Пиздец, с кем на борду посадили.
Там же все описано в шапке к каждой группе задач, как у тебя вообще с этим возникли проблемы?
да вот так работает, но я тупой гуманитарий и мне не оч понятно почему там должно быть деление с остатком и почему именно в такой форме
Не вижу в упор, где отваливаются последние элементы массива.
Задача состоит в том, чтобы группу подряд идущих элементов заменить их диапазоном (5, 7, 8, 9, 11, 12 станет 5, 7-9, 11-12). Ну и шаг произвольный, что уже сделано.
Мне надо с функциями из этого модуля работать как с объектами, т.е. делать выборку по наличию какого-либо свойства. В докстринг вообще не вариант впихнуть.
>с функциями из этого модуля работать как с объектами
В Питоне с любыми функциями работаешь как с объектами
ВНЕЗАПНО ебошь классы и работай с ними, не занимайся дрочем с голыми функциями
>>393240
Посмотри документацию апишную.
>В Питоне с любыми функциями работаешь как с объектами
Спасибо, кэп.
В принципе нужное можно напердолить с помощью подфункции (пикрил), но слишком большая обвязка получается, которую для каждой функции прописывать надо.
Про класс думал, но как-то особой экономии быть не должно.
Ее убрали из вк, еще году так в 17
Читать, долбаеб, научись. Я где-то сказал про то, что считаю Python языком дебилов? Тебе передали, что говорит преподавательница.
впервые за год - тяжело оторваться от процесса
только блять портфолио себе мутить - это нихуя не 2-3 часа в день посидел чёт поделал по примерам.
это дохуища задач.
делаю простой вроде проект но кол-во задач в рамках него уже за три сотни перевалило. из них сделана четверть за плотную неделю - и задач будет больше чтобы до финального результата довести. это сильно дохуя больше чем я лол ожидал в рамках вонаби-джуна проекта.
Ты когда на этот собес ходил? Сейчас питонист/джангист должен все уметь, иначе нахуй он вообще нужен.
Посмотри на гитхабе работу с апи на питоне. В одном из проектов есть работа с аудио через тупой парсинг страницы мобильной версии, он там без проблем выдаёт ссылки, по которым скачать можно.
4 месяца назад. До сих пор там работаю.
До этого 10 месяцев назад ходил, поработал пол года, тоже фулл бэк.
Подработка была - мобайл-бэк. Знакомый ушел на подобную должность в стартап. Так что ты не прав, к счастью.
Хотя, возможно, на галерах только фулл стэк и нужен, не знаю.
Код показывай который картинки читает и пережимает.
Видимо где-то memory leak или ещё что.
Профилировать кто будет блеать?
https://vk-api.readthedocs.io/en/latest/audio.html
https://github.com/python273/vk_api
Последний раз несколько месяцев назад кто-то то же самое спрашивал в этом итт треде, я специально проверил, что эта реализация возвращает рабочую ссылку -- по ней можно скачать файл с помощью какого-нибудь wget.
Местный ДС Минск.
Но вакансий для ждуна у нас очень мало, тем не менее нашел, а потом и мидла сама меня нашла вакансия.
У нас галер не очень много, но среди них можно найти не фулл стэк, а можно вообще в продуктовую податься.
+ Какое-то время фрилансил и тоже не фулл стэком был.
С классами это делается на раз-два. И смотрится естественней (блять, боюсь представить что будет когда ты будешь свой же код обозревать спустя месяца 3) и расширяемость есть
Так как мы имеем и атрибуты класса, и атрибуты объекта
>С классами это делается на раз-два
Что так 7 строчек на одно нужное действие (print), что так.
>боюсь представить что будет когда ты будешь свой же код обозревать спустя месяца 3
кек, так будет вне зависимости от выбранного решения.
Спасибо анончек, все получилось)
Код с классами читается мгновенно. Ебень с вложенными функциями и изменяемыми пользователем атрибутами у функций (!) - отнюдь
Ты можешь помещать функции нутрь множеств, списков и словарей, можешь строить объекты, в которые завернут соответствующий функционал.
Тебе что-то такое надо?
def get_check(module):
____attrs = (getattr(module, attr) for attr in dir(module))
____funcs = {attr for attr in attrs if callable(attr)}
____def check(attr):
________return attr in funcs
____return check
import math
check = get_check(math)
print(check(math.pow))
Под ляхой всё свистит и пенится.
win7,python3.7,cmd
>>> import my_module
>>>a=my_module.func()
#my_module возвращает инициализированный объект
>>> a.func()
NameError: name 'a' is not defined
Any ideas?
Ну ты же не руками наверно качать это всё будешь, а какой-то скрипт пилишь?
>>393490
Я забил на винду как на ось для разработки после двух вещей: танцев с бубном для использования arm-none-eabi, и когда у меня ни с того, ни с сего при запуске интерпретатора какие-то импорты фейлились и я так и не смог это починить.
не, пилю гуишку на pyqt, возможно, что еще сделаю на киви по андрюшу
Почему столько ебли с ним под виндой, на нем пишется серверная часть для юникс-систем в основном?
vs code лучший
что обещают?
Нужно повторяющиеся элементы заменить нулями, оставив только первый из них.
Я сделал это так как пикриле, но скорость работы меня не радует, думаю есть решение лучше
Помогите, пожалуйста.
Пик1 - задача
Пик2 - типовое решение от разрабов
Вопрос: как блять так они привели формулу стандартного отклонения к разнице суммы квадратов и квадрата суммы?
Ну так Москва, Киев, Минск, Питер и может быть Новосиб есть шансы устроиться на джуна. Остальные пролетают.
Сервер
Создаёшь объект tcp/ip сокета. AF_INET = ip4, SOCK_STREAM = tcp.
Привязываешь этот объект к сокету на твоей машине. Конкретно к сокету 127.0.0.1:777.
В listen указываешь максимальное кол-во клиентов в очереди на соединение. Т.е максимум 1 клиент.
В цикле вызываешь метод accept. На этом моменте программа остановится, пока в сокет не придет входящее tcp соединение.
Как только оно придёт - accept вернёт кортеж из двух элементов: объект сокета клиента(conn) и адрес клиента(ip:port).
conn.recv(1024) возвращает 1024 байта, которые пришли от клиента. Если ничего не пришло - закрываем соединение с клиентом и выходим из цикла. После этого сервер перестанет работать.
Если что-то пришло, то отправляем байты клиенту в ответ. Тут отправляется ASCII строка. Считай utf-8. Клиент не выведет никаких кракозябр, но это всё равно будут сырые байты.
На стороне клиента сообщение выведется так:
b''Hello from server!'
Клиент
Создаём сокет, как и в сервере.
Подключаемся к серверу зная ip и port.
Т.к данные вводятся с клавы, то кодируем их в utf-8(кодировка по умолчанию). В этом случае мы не можем гарантировать, что все символы будут из кодировки ASCII.
Непонятно нахуя ты расшифровываешь данные, которые только что отправилю.
Получаешь данные от сервера, выводишь их и закрываешь соединение.
Советую этот цикл лекций, чтобы врубится в базис:
https://www.youtube.com/watch?v=Ys2CB4C2NWA
Курс замечательный для начала, хоть и от mail. Там и сокетами разберешься и прикладными протоколами. Дерзай
Сервер
Создаёшь объект tcp/ip сокета. AF_INET = ip4, SOCK_STREAM = tcp.
Привязываешь этот объект к сокету на твоей машине. Конкретно к сокету 127.0.0.1:777.
В listen указываешь максимальное кол-во клиентов в очереди на соединение. Т.е максимум 1 клиент.
В цикле вызываешь метод accept. На этом моменте программа остановится, пока в сокет не придет входящее tcp соединение.
Как только оно придёт - accept вернёт кортеж из двух элементов: объект сокета клиента(conn) и адрес клиента(ip:port).
conn.recv(1024) возвращает 1024 байта, которые пришли от клиента. Если ничего не пришло - закрываем соединение с клиентом и выходим из цикла. После этого сервер перестанет работать.
Если что-то пришло, то отправляем байты клиенту в ответ. Тут отправляется ASCII строка. Считай utf-8. Клиент не выведет никаких кракозябр, но это всё равно будут сырые байты.
На стороне клиента сообщение выведется так:
b''Hello from server!'
Клиент
Создаём сокет, как и в сервере.
Подключаемся к серверу зная ip и port.
Т.к данные вводятся с клавы, то кодируем их в utf-8(кодировка по умолчанию). В этом случае мы не можем гарантировать, что все символы будут из кодировки ASCII.
Непонятно нахуя ты расшифровываешь данные, которые только что отправилю.
Получаешь данные от сервера, выводишь их и закрываешь соединение.
Советую этот цикл лекций, чтобы врубится в базис:
https://www.youtube.com/watch?v=Ys2CB4C2NWA
Курс замечательный для начала, хоть и от mail. Там и сокетами разберешься и прикладными протоколами. Дерзай
Спасибо, стало намного понятнее. А можно еще попросить раскидать чем тсп от удп отличается? Везде пишут, что удп не требует установленного соединения, но я чет не понимаю что это значит. Кстати, код из гугла, а не мой. Спасибо кстати за видос, мне друг посоветовал Таненбаума почитать, но там много общих рассуждений на 900 страниц. Я как бы и не против, но хочется прикрутить сеть прямо сейчас лол
А все я даун, в видосе про это есть
Таненбаума можно почитать, когда с основами разберёшься
Что тебе именно не понятно? Создаёшь корутину, закидываешь в луп, она выполняется до await и начинается выполнение следующей корутины, пока на предыдущие не придет сигнал о завершении ожидания и продолжения работы, все уже сделано за тебя, тебе просто нужно писать код, который на долгое время не блокирует эвент луп
Таски это просто корутины выполняемые в эвент лупе, который менеджит пистон, для эффективного использования тебе нужно писать легковесные корутины, в которых юзается минимальное количество процессорного времени
Пащему?
Т.е, чтобы закинуть корутину в эвентлуп, как ты написал в своем прошлом сообщении, нужно сначала их оборачивать в таски? Так?
Да, тот вариант с yield, который ты смотрел скорее всего является устаревшей версией, которую выпилят
Ну, собственно, вопрос в том, оборачивает ли aiohttp хендлеры в таски сам?
Там было не про yield from, и старый asyncio, а реально про асихронность с нуля только на yield и select.
https://www.youtube.com/watch?v=MCs5OvhV9S4
Я понимаю многое об асинхронности, но не понимаю asyncio...
Ещё есть всякие штуки типа asyncio.run или gather, который берет пачку корутин, закидывает в луп и возвращает результат, читай документацию, асинхронность это единственное, что компенсирует слоупочность питона
О, я так и собирался, только не могу выбрать: говно или пидораст. У обоих есть особенности, которые мне понравились очень, и наоборот которые кажутся какой-то хуйней.
>>393645
А как эвент луп узнаёт о том чего ждёт таск, и что событие наступило? Ну вот допустим тот же aiohttp я использую, дёргаю у себя в корутине (которая в лупе выполняется) гет-запрос и жду ответ. Там где-то внутри это всё доходит до неблокирующего системного вызова, так ведь? Данных нет, управление возвращается в эвент луп. Ну и что, он так по очереди, условно, все имеющиеся в нём корутины будет, по сути, поллингом проверять на предмет появившихся данных? Или там есть какой-то механизм типа колбэка, который дёргается, когда операция ввода-вывода выполнена, говорит эвентлупу, что пришло событие для вот этой корутины, ей снова можно передать управление?
Читал fluent python, там просто сначала объясняются корутины и луп на примере без ввода-вывода. Там, как я понял, автор показал всю суть в эвентах, которые передаются корутинам из лупа, и типа асинхронный ввода-вывод работает по тем же принципам, но как там это организовано он не описал, я тоже ничего не нашел внятного, а без этого не понятно особо.
Сорян, с этим помочь не могу.
>Раскрой скобки и приведи подобные.
Пытался, но привести к такой формуле не получается, распиши подробнее, пожалуйста, всю голову сломал.
Я должен решить эту задачу теми способами, которые выучил, а там все тривиальное, циклы да и все
Короче смотри, давай откинем корень на время и деление на (n-1), так как они в преобразованиях не участвуют, а мешать будут.
Что мы имеем
(x1 - s)^2 + (x2 - s)^2 + ... + (xn - s)^2
Раскроем скобки, ну это из 7 класса формула на всякий напомню (x - y)^2 = x^2 - 2xy + y^2
(x1^2 - 2x1s + s^2) + (x2^2 - 2x2s + s^2) + ... + (xn^2 - 2xns + s^2)
Все иксы с индексами, которые возведены в квадрат определим в отдельную скобку
(x1^2 + x2^2 + ... + xn^2) + (- 2x1s + s^2) + (- 2x2s + s^2) + ... + ( - 2xns + s^2)
Как мы видим, скобка с суммой квадратов найдена. мы ее уберем, чтобы не мешалась и дальше будем рассматривать только оставшиеся скобки
(- 2x1s + s^2) + (- 2x2s + s^2) + ... + ( - 2xns + s^2)
Теперь заметим, что у нас в каждой скобке есть s^2, так как их очевидно ровно n штук, то запишем их в виде ns^2
ns^2 + (- 2x1s) + (- 2x2s) + ... + (- 2xns)
Теперь заметим что у нас в каждой скобке есть умножение на -2s. Вынесем общий множитель
ns^2 + (-2s) (x1 + x2 + ... + xn)
Ну тут в общем-то с преобразованиями все, теперь остается только вспомнить, что s = (x1 + x2 + ... + xn)/n. А значит (x1 + x2 + ... + xn) = sn. Ну и подставляем вместо (x1 + x2 + ... + xn) во втором слагаемом sn
ns^2 + (-2s)sn
Теперь немного упростим запись и перемножим все, что можем
ns^2 - 2ns^2
Очевидно, получаем
-ns^2
Опять же вспоминаем нашу формулу (x1 + x2 + ... + xn) = s*n и делаем обратную замену
-(x1 + x2 + ... + xn)^2
Теперь возвращаем сумма квадратов, которую мы убрали ранее
(x1^2 + x2^2 + ... + xn^2) - (x1 + x2 + ... + xn)^2
Ну и заносим под корень и делим на (n - 1)
Бля бля бля, я накосячил. Последние 2 преобразования другие, мелочь, но может запутать
Очевидно, получаем
-ns^2
Опять же вспоминаем нашу формулу (x1 + x2 + ... + xn) = s*n и делаем обратную замену, но n не в квадрате, а значит, нам надо поделить на n, чтобы получить необходимую n^2
(-(x1 + x2 + ... + xn)^2)/n
Теперь возвращаем сумма квадратов, которую мы убрали ранее
(x1^2 + x2^2 + ... + xn^2) - ((x1 + x2 + ... + xn)^2)/n
Ну и заносим под корень и делим на (n - 1)
Да похуй всем на пистон. Пистоновские фреймворки - вот что решает. Когда джангу начнут раком ставить, тогда и приходи.
Создай множество(set), где будешь хранить элементы, которые уже встречались. Потом просто пройдись в цикле по массиву, если текущий элемент есть в множестве, то замени его на ноль, если нет, то оставь этот элемент на месте и добавь его в множество.
cx freeze так делает вроде.
Почему бы просто не использовать два словаря? В первый инсертишь key:value, во второй value: key. Для поиска по ним соединяешь их в ChainMap.
a, b, c, d, e, f = (int (n) for n in input() )
Как переменные принимают значения через input? Вижу, что имеет место быть цикл "for", но не понимаю, как в данном случае присваивание работает.
print( ('Обычный', 'Счастливый')[a + b + c == d + e + f] )
Каким образом print понимает, какое слово печатать? Я правильно понимаю, что ('Обычный', 'Счастливый') - это кортеж, а [a + b + c == d + e + f] - список?
> пук
Как ты ещё сделаешь быстрый поиск неизвестного кея по извесному валуе без использования обратного словаря?
А как мне эти урлы в список засунуть, чтобы, когда я делал так print(p[1]) вваодился первый урл песни? Я пробовал, но вышла хуета, выводится буква t, типа https и далее. Непонятно, что выводит этот get_iter, в тайпе итерратор, а как ? Я тупой?
Если поместить функцию в специальное множество, атрибуты уже не нужны, вместо проверки галичия аттрибута можно проверять принадлежность к специальному множеству.
А вообще, зачем это все делать?
>поместить функцию в специальное множество
а куда по-твоему она попадает со всеми своими свойствами?
>зачем это все делать?
Эти функции - пользовательский ввод, нужно сократить необходимые конструкции.
import vk_api
from vk_api.audio import VkAudio
vk_session = vk_api.VkApi(credentials)
vk_session.auth()
vk_audio = VkAudio(vk_session)
audios = vk_audio.get(owner_id=vk_id)
mp3_links = [a['url'] for a in audios if 'url' in a]
Наверно как-то так получишь список ссылок, ты совсем с питоном не знаком? Читани про генераторные выражения всякие, list/dict comprehension -- охуенно удобная вещь, как привыкнешь, так другими языками пользоваться не захочется, потому что там такого нет.
Абсолютно то же самое с vk_audio.get_iter().
>Эти функции - пользовательский ввод
В смысле, пользователи функции набивают? Ты свой собственный repl делаешь?
>В смысле, пользователи
Что за пользователи? Я здесь один нахуй ))000
Запускалку всякой херни в общем пилю.
Спасибо) прочел Лутца, просто, когда не используешь на практике, то вот такие вопросы и рождаются
from selenium import webdriver
driver=webdriver.Firefox()
driver.get(page)
element = driver.find_element_by_class_name(class_name)
data=element.some_attribute
И тут я периодически получаю StaleElementReferenceException
Коротенький в две строчки WebDriverWait до
presence_of_element_located или
visibility_of_element_located
Никак не спасае... Почему, я не знаю.
Соответсвенно, наверное:
driver.implicitly_wait(timeout)
цикл с try except, и увеличением таймаута до победного...
И тут затык.
def get_element_wrapper(driver,функция find_element_by_, аттрибут элемента без обращения к которому эксепшн не словить)
Как одну функцию собрать для разных find_element_by_ и разных аттрибутов?
В школе, если правильно помню, в cpp это можно было при помощи темплейтов сделать.
...звёздочка...
укатились..
спроси на борде@тут же разберись сам
любой элемент можно по xpath найти,
а проверить на предмет stale можно,
дёрнув element.id
А всё таки, что-то вроде темплейтов есть в python?
Мы написали код, преобразующий количество носителей русского языка в млн (переменная russian_native_millions) в количество носителей русского языка в чел. (переменная russian_native). Вторая переменная преобразована к типу int, так как в ней лежит количество человек. Вызов функции int() организован неудачно: теряется 900 тыс. человек. Измените код так, чтобы в переменной russian_native оказалось значение типа int, и никто не потерялся
Пример кода
russian_native_millions = 153.9
russian_native = int(russian_native_millions) * 1000000
print(russian_native)
Вопрос
Как решить?
Например так:
russian_native_millions = 153.9
russian_native = russian_native_millions * 1000000
print(int(russian_native))
Невнимательно прочитал условие задачи. Просто перенеси скобку в конец выражения.
int(russian_native_millions * 1000000)
Буквально только позавчера скачал Лутца и он мне ебет мозги уже на первых страницах.
Не могу понять, почему выдает invalid syntax error при выполнении команды.почему то не может распознать % Я пишу ее на обеих раскладках и нихуя. все равно ошибка
% python script1.py
При чём тут раскладки? В какой среде ты пытаешься выполнить скрипт? Какая версия питона?
Напиши или заскриншоть полный текст ошибки, вместе с участком который идёт до SyntaxError.
Я от фейспалма чуть сотрясение остатков мозга не заработал.
В питоновской консоли нужно писать
В питоновской консоли нужно писать команды, а скрипт, который ты хочешь выполнить запускается из консоли ОС.
>Каким образом print понимает
('Обычный', 'Счастливый') - тупла с 2 элементами, [0] и [1]
(..)[x] - обращение к x-элементу туплы
[a + b + c == d + e + f] - если выражение истина, то равно 1, если ложь, то 0
То окошко где ты пытался выполнить % python script1.py - это и есть консоль питона. В неё нужно вводить последовательно команды в соответствии с синтаксисом языка и целью программы. Для выполнения же "готовых" скриптов нужно открыть консоль или PowerShell в винде, перейти в каталог со скриптом при помощи команды cd <путь_к_скрипту> и уже выполнять скрипт командой python <имя_скрипта>.
Если ты не знаешь таких азов, то может тебе сначала не программировать учиться, а вообще научиться пользоваться компьютером и ОС в которой ты пытаешься работать?
пиздос. но я подучу все
Как сделать из моего питоновского скрипта службу, которая будет автоматом запускаться при входе в винду и при том будет оповещение в случае, если служба по каким-то причинам упала?
(например - юзер случайно сделал "taskkill /IM python.exe")
Интересует решение без установки модулей типа pywin32 и тп, лучше если на чистом ctypes или через командную строку винды.
Вы видите копию треда, сохраненную 15 января 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.