Это копия, сохраненная 3 апреля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>2582246 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4[РАСКРЫТЬ]
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущий исходник: https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9
Поехал.
Доезжаю до 4 этажа и нажимаю кнопки 1,2,6,7
Теперь у меня в массиве [5,1,2,6, 7]
Как известно, лифт едет до конца в одном направлении и только потом разворачивается. То есть он должен сначала поехать на 5,6,7 этажи и только потом на 2 и 1.
Как это лучше всего реализовать? Как отсортировать, чтоб получилось [5,6,7,2,1]? Чтоб было коротко и элегантно.
>Как это лучше всего реализовать? Как отсортировать, чтоб получилось [5,6,7,2,1]? Чтоб было коротко и элегантно.
придумай что-то стандартное с
иф массив > этаж
массив2.аппенд
lift = [5,1,2,6, 7]
lift = sorted(lift, key=lambda f: f-lift[0] if f>=lift[0] else abs(f-lift[0]*2))
Сделай две кучи, для состояния лифта вверх и вниз
Для езды вверх minheap, для езды вниз maxheap
Допустим ты едешь вверх, все что ниже текущего этажа, добавляешь в maxheap, все что выше в minheap, при следующем шаге достаешь следующий этаж из minheap, пушишь новые значения в соответствующие кучи и так пока minheap не закончится. Дальше едешь вниз и т д.
Ну кучи. Кучу сделай. Данные берешь и кидаешь в кучу, они сами за O(n) сваливаются в двоичное дерево в порядке возрастания.
https://docs.python.org/3/library/heapq.html
heapify(my_list) делает из списка minheap, из которой можно делать heappop(my_list), всегда возвращающее минимальное значение, а все что ты в нее закидываешь, вставляется не нарушая порядок.
Чтобы сделать maxheap, можно просто в кучу кидать числа, помноженные на -1, они как раз встанут в нужный порядок
Лучше так, а то если наш лифт в нутри ХМАРОЧЕСА высотой 50 и 100 этажей то прежнаяя сортировка будет выдавать ошибку
lift = sorted(lift, key=lambda f: f-lift[0] if f>=lift[0] else abs(f-max(lift)))
>они сами за O(n) сваливаются в двоичное дерево
Т.е. куча это просто массив элементы которого упорядываючеючеюваючеются при добавлении?
Я пока ещё кучи не особо касался. знаю что они есть но т.к. применения для себя я в них не видел то и не вникал особо.
Можешь считать это массивом, который всегда упорядочен, но у тебя есть доступ только к минимальному элементу, который сверху. Удобно, когда нужно работать с пополняющейся очередью из данных, обрабатывая в приоритете текущий минимальный элемент. Как раз твой случай с лифтом.
Ещё abs() надо убрать.
Это база. Во многих алгоритмах используется.
Подскажите регулярку, чтобы я мог во всех своих файлах в нотепаде++ заменять табы в начале строк на 4 пробела. В регулярках позитивный просмотр назад не поддерживает квантификатор, так что я не знаю как мне заменить четыре таба на 16 пробелов. А 2 таба на 8 пробелов одной регуляркой.
Может вы знаете?
В нотепаде есть замена табов на пробелы, но она там для ВСЕХ табов а не только для тех что в начале строки.
создаёшь список для открывающихся скобок и добавляешь их туда все проходя по строке, если попадается закрывающейся, то сравниваешь её с последней в списке. Если всё нормально, то удаляешь её из списка и идёшь дальше по строке, если нет, то сразу же False.
cчитаешь скобки, их должно быть одинаково. Смотришь первую и последнюю - должны быть правильными
Ну и хватит
Не средствами питона, мне просто строка регулярки нужна которая бы это делала за один проход. Вот просто чистая регулярка без всего и без переменных питона, чтобы можно было эту строку везде использовать и в нотепаде++
Я так и не придумал как это сделать за 1 проход. Максимум за 2.
Регулярка не заменяет ничего сама по себе, она просто находит совпадения и отмечает их.
Что бы найти таб регулярку и писать не нужно, это просто /t
А уж заменить их пробелами или другими знаками это уже нужны дополнительные средства. Вроде можно это в notepad++
Через re.sub всё за один проход можно сделать.
Хотя если тебе в начале строки нужно, то нужно \B\t
Глянул, всё там легко меняется.
Вместо пробелом только П, что бы было проще читать
Чел ты.
Вот смотри, у меня в начале одной строки три таба, в начале другой стоки один таб, в начале десятой строки десять табов
Если я их заменю с помощью ^\t заменится только самый первый таб в начале строки. Если я их заменю с квантификатором ^\t+ у меня и 10 табов превратятся в 4 пробела и 2 таба превратятся в 4 пробела
А надо чтобы каждый таб по отдельности стал 4 пробелами. Я вроде бы всё четко описал.
А, ну через notepad тогда хз как.
Через питон можно было бы найти сколько там табов в начале строки, удалить их и вставить в начале проблеы*колличество табов.
через notepad вряд ли можно.
Регулярные выражения это не волшебная палочка.
Так через питон то я бы и не спрашивал. Там что угодно можно сделать, даже прямо внутри регулярки функцию поместить.
а зачем тебе лукбехайнд?
просто замени табы на пробелы
где в питоне у тебя будет таб в середине строки? нигде
Да я уже скрипя зубами через макросы сделал в два шага
1) (?<=^)\t|(?<=<flag>)\t
2) <flag> -> 4 пробела
А вот это вот "где в середине будет нигде." я так не могу, надо чтобы было всё надежно и проверяемо. У меня сотни наверное уже сотни скриптов с табами, теперь дуду потихоньку перекатываться в пробелы и хочу быть уверен что где-нибудь в середине не ебнет.
Интересно. Может и накачу. Ну так-то важные дела я через пйчарм делаю, там пеп8 инспектор и так есть, а нотепад это для души - всё скриптики для дома, для повседневных нужд, для быстрого запуска отдельных py файликов.
>А вот это вот "где в середине будет нигде." я так не могу, надо чтобы было всё надежно и проверяемо.
так и где в питоне в середине строки табы?
и как насчет мультилайн строк? что если там табы в начале строки и ты всё сламаишь?
Да, спасибо за замечание, теперь буду иметь это в виду. Хорошо что мультилайн легко чекнуть, это всегдазаметный кусок текста, иначе смысла его делать мультилайном нет.
Как уж этого избежать в простой регулярке я даже представить не могу.
да, способ есть
Не скажу точно, но скорее всего нет. Файлсистемы стараются изменять минимум метаданных на каждое изменение. И чтобы проверить что точно ничего в целом поддереве не изменилось, нужно сканировать всё поддерево.
В линупсе есть системный inotify, гугли аналоги в шиндовс, может и есть.
Этот метод делает срез или просто с индекса стартует?
Что лучше str.find() или re если надо по строке пройтись один раз собирая индексы?
Какой вопрос, такой ОТВЕТ МЕЙЛ РУ.
Это проверяется экспериментально за пять сек, какой смысл спрашивать?
Там все поисковые методы на слайсах, можешь посмотреть где используется https://github.com/python/cpython/blob/main/Objects/unicodeobject.c#L8728
С разморозкой.
Причем тут лямпда, если хватит и обычного /?
)))))))))))))))))))))))))🤡
Не понял, че опрадываться то? Вроде пчел все правильно зделол.
tmp='(('
a=0
for q in tmp:
if q == ')':
a = a-1
else:
a = a+1
if a < 0:
break
if a:
print('wrong')
Ну чё, байтоёбик, всё никак не допишешь свой самый быстрый оптимизированный первый хелловорлд?
Хуя ты крут!
А просто, вне приложения, keyboard.add_hotkey в хелловорлде работает? В треде если тупо print делать тоже работает?
На работе - логистика морского товарооборота. Дома - как и всякий уважающий себя МЛ-джентльмен создаю сильный ИИ, новую ступень эволюции человечества.
Есть модуль "Игроки" и модуль "Предметы". В модуле "Игроки" есть функция, показывающая все возможные действия в текущий момент. Если у игрока есть с собой предмет, то появляется действие "Прочитать описание предмета". Описание предмета хранится в модуле "Предметы" соответственно. В модуле же "Предметов" есть функция использования предмета, которая влияет на игрока, вызывая методы класса "Игрок".
Так и получается цикличный импорт. А если его убрать, то непонятно как вызвать функции/методы из другого модуля.
Как быть?
Если перевести на двачевский, то есть два стула: пики точеные вызывает методы хуев дроченых, а те ссылаются на класс пик. Как перекрестье убрать и как код написать?
The use of global variable in python is considered bad practice and should generally be avoided
Ты рофлишь чтоли или правда такой нуфаг?
Это ты так каминг аут сделать решил?
Скриптовый язык запрещает писать скрипты, лол.
>>592487
import это тоже команда, и она тоже выполняется в рантайме, там нет никакого волшебства. Изначально модуль это пустой объект, который по мере выполнения наполняется местными глобалами, включая def и class (которые кстати тоже команды и тоже выполняются по порядку).
Ты можешь сделать цикличный импорт так, что всё будет работать. Главное импортить сам модуль, не пытаться резольвить отдельные имена в нём (пока они ещё не просрались), откладывать это до последнего.
from hui import a, b, c
from piki import x, y, z
Вот эта херня скорее всего упадёт, так как все def далеко после импортов идут.
import hui
import piki
def ...:
..hui.a()
Вот так скорее всего сработает.
Но вообще рекомендуется делать граф импортов без циклов. Оставить в модуле про игроков только то что касается игроков, в модуле про предметы только то что касается предметов. И сделать третий модуль, который реализует кросс-функции и импортирует два предыдущих.
Хуй знает как такому животному, как ты, объяснить что-то про трейдоффы иначе.
Опять нейронка обезумела.
Нет такой проблемы в петухоне.
Импортируй перекрестно, все магическим образом будет работать.
Карасик
Ну напиши private-joker
pid0ra55
По кругу ищешь и удаляешь из строки подстроку "()".
Если длина строки равна 0 - возвращаешь True
Если подстрока отсутствует - возвращаешь False
Попробуй Σ-male.
Ты ебанутый?
Ну давай, объясни мне
>не могу придумать имя для гитхаба
придумал тебе имя для гитхаба:
https://github.com/name-for-github
RussianCrimea
sh1t_and_st1cks
pd.cut
>history = model.fit(train_generator, epochs=50)
>module 'tensorflow' has no attribute 'to_int32'
Очевидно с датасетом что то не так. Но что.
Для мониторов понятно лучше темная тема. А для глаз?
Теоретически для глаз наоборот светлая тема лучше т.к. тебе в рыло направлен более яркий пучок фотонов.
С другой стороны контраст символов с фоном в обоих случаях одинаковый. Хотя в темных темах обычно контраст символов поменьше чем в светлых, чтобы вся тема в целом смотрелась более стильной и монотонной.
К чему себя приучивать чтобы потом не переучивать?
Я тёмные темы терпеть не могу. Но думаю для глаз тут всё одинаково плохо, потому что всё равно пыришь в экран долго и упорно, так что близорукости не избежать, да и париться тут смысла мало. Близорукость в современной цивилизации проще фиксить, чем птаться избегать
У меня и так близорукость с сосничества ещё задолго до того как я просто за кудахтером сидеть начал.
Интересует всё-таки теоретический аспект вопроса. Гуглинг выдает всякую сомнительную хуиту, вроде противоречивых мнений нонеймов, видимо настоящих исследований на эту тему не было.
Синий цвет главное резать, лучше ночной свет на постоянке использовать
Да главное резать синий цвет. Ночной фон тем лучше, что там синего цвета меньше в глаза бьёт, а устают они от него, но можно просто включить ночной режим на винде 10 или программками разными, если другие ОС, плюс чисто на монике скрутить в настройках можно.
Это обязательно, остальные настройки это хз, но синий цвет точно резать надо.
И для меня такой вариант намного лучше, ибо тёмные темы я просто не переношу. Но кому-то может и тёмный фон просто лучше
Ну и с яркостью ещё можно поработать, снизив её, но это уже такие настройки которые от самого монитора зависят. Ибо некоторые, особенно недорогие, могут просто вместо фар использоваться
прив ребятки и девчатки.
Вопрос такой - как быть если удобно иметь в словаре какой-то not serializable объект, если периодически нужно дампать весь словарь в json?
Пока что приходится временно вынимать объект из словаря, дампать а потом вставлять обратно, но это пиздец костыли, хотелось бы чтобы json сам понимал что это не текст и что его можно просто пропустить.
понимаешь какая штука.
они просто собрали кучу признаков.
потом взяли спамеров, про которых спустя несколько недель стало известно что они спамеры и натравили алгоритм. Например, логистическую регрессию.
Таким образом, совершенно невозможно предугадать как именно тебя детектят. Это не человеческий способ мышления.
Ой, какой там ОЛГОРИТМ, он просто не триггерит какой-то эвент, который валидирует форму.
А можно сделать такую невидимую область на всю страницу, которая пропускает через себя вообще всё, но регает клики? Чтобы вот таким образом, если ты просто отправил клик по кнопке, но не отправил клика по этой невидимой области то тебя считают ботом.
А если такую невидимую кнопку прикрутить к каждой кнопке?
Разве не поебать? Какая нравится такую и ставь. Остальное докручивается ночным режимом / яркостью экрана. В темноте делай поменьше яркости, в освещённом побольше.
Бля, а я постоянно класс наследовал.
Поэтому надо клин клином вышибать. Прикручивать к селениуму клик через апи ОC. Но для этого нужно определять настоящие координаты элемента на экране. Для этого нужно распознавание изображения.
>Как это лучше всего реализовать? Как отсортировать, чтоб получилось [5,6,7,2,1]? Чтоб было коротко и элегантно.
Вот тебе вариант, который наверняка используется в реальных лифтах, поскольку вычислительных мощностей там не ахти. У тебя есть состояния, "лифт едет вверх", "лифт едет вниз", "лифт стоит", "лифт приостановлен" (хранится отдельно, чтобы не затереть направление движения) ну и что-то с дверями опционально, ещё есть список запланированных остановок и текущий этаж. Переходя на следующий этаж ты проверяешь, есть ли этаж в списке на остановку, надо ли тебе продолжать движение и не достиг ли ты крыши/дна. Потом, когда стоишь и начинаешь движение проверяешь, есть ли в списке элементы дальше по ходу движения, если нет, разворачиваешься.
Возможно, списков остановок будет два: один для вызова изнутри, другой - для вызова снаружи (учитывается, если лифт стоит, когда внутренний список остановок пуст и при движении вниз).
База.
Идёшь по строке. Находишь '(' - увеличиваешь каунтер, находишь ')' - уменьшаешь каунтер.
Если каунтер вывалился в минус - False. Если дошёл до конца и в каунтере не ноль - False. В остальных случаях - True.
(И радуйся, что это просто скобки одинакового вида, а не теги или миксы скобок, где нужно иметь в виду, в каком порядке они должны закрываться, хотя это не намного сложнее).
Среди алгоритмов, которые тебе предложили, кстати, есть те, которые работают для микса скобок, но они сложнее.
Хех. Не туда воюешь. В дом апи всё равно дом эвенты приходят, можешь их качественнее подделывать. Но вообще хорошо, что почтоспамеры соснулей
Понадобилось написать код небольшой программки для расчета
считаю saidi по заданным критериям. Я не прогер, на питоне умею только хелло ворлд делать. Поэтому я сижу в chatgpt и пытаюсь вытащить код из нейросети. Сначала я прошу его сгенерировать только окно для ввода данных и расчет формулы, он это делает, все работает, модули подключаются, gui генерится с PyQT. Потом я каждый раз прошу редактить отдельный кусок кода чтобы добавить функционал типа больше коэффициентов, расчет по итерациям, рисование графика - это говно не укладывается в одно сообщение, что логично, и генерирует код кусками, причем всегда следующая часть кода уже с другими именами атрибутов и переменных. Это я еще понимаю, имена поправить могу, но остальная часть тоже вообще другая. Типа в первом методе он придумал выводить окно через QWidget и запрашивать каждый раз ввод, в следующем методе он совершенно другой принцип использует. Запросы чтобы он опирался на свой предыдущий аутпут проходят мимо, просто доебало уже. Короче я подумал, что нужно задавать условия строже и генерировать маленькими кусками. Как мне тогда лучше строить запросы, какие модули использовать? Могу я для вывода окна сделать один модуль, для расчета формулы второй, для построения графика третий? Для интерфейся PyQT, формулу с numpy, а график через какой модуль задавать, тоже numpy? Нихуя не понятно, даже не понимаю, где это спрашивать.
Ну и вдогонку вопрос, какие еще вменяемые генераторы кода на питоне есть? Бесплатные
>Аноны, что для глаз лучше, темная тема (темный фон, светлые символы) или светлая тема (светлый фон, темные символы)?
Человек эволюционирует уже хуй знает сколько и только-только в последние десятилетия подолгу смотрит на яркий источник света (тем более, если вокруг относительно темно), глаз к этому не готов.
Грубо, яркость должна кореллировать с окружением и тут намного лучше тёмные темы, которые не ебошат тебе в щи люменами. Включаю их всегда, когда можно, начал - задолго до того, как эппл сделал это мейнстримом.
В качестве альтернативы можешь выкрутить яркость экрана и переключиться в какой-нибудь режим типа чтения, но я лично вертел ползание по меню моника каждый раз, когда меняю контекст, а смотреть кинцо и играть в игры с левым мочефильтром - хуёвая идея.
Ну и да, тот анон прав, нужен приличный монитор, тут лучше переплатить. >>593071
Чёт мне подсказывает что надо отдельно хранить направление. Ну и реальный лифт наверное по массиву этажей линейно проходит по мере движения, храня только min max.
Какая дичь. Во-первых, зачем тебе аж целый qt, почему не текстом в консольке? Делаешь тупо input/print, а формулы уж как-нибудь сам напишешь.
Какой только хуйней нынче люди не страдают вместо того чтобы просто запрограммировать то что нужно...
Я думаю это уже очень скоро станет мэйнстримом. Сотни приложух и профессиональных программистов которые в душе не ебут что им нейросеть насрала.
Это на каком сайте такая задача
Никогда не слышал чтобы студентов заставляли UI делать. Чаще всего у студентоты погромирование это проходной предмет для общего развития, на таком уровне UI не проходят и он и в принципе там никому на хуй не нужон.
разные по разному, у старшего брата еще в 2011м было задание на гуи калькулятор (на плюсах если я не ошибаюсь, ну офк там тупо списать с тетрадки и нажать пкм)
>Никогда не слышал чтобы студентов заставляли UI делать
Лол. Только это и заставляют делать на непрофильных направлениях. Сам вспомни, ты в школе на информатеше алгоритмы сортировки тестировал? Нет, рисовал кружечек в делфи и по формочке его двигал.
Лол. По длине так же вышло, только ещё кортеж надо спавнить, функцию any вызывать. Пик стронгли рилейтед.
капец. пишу как этот темнокожий мексиканотаджикский кодер внизу картинки.
мимо вкатун ньюфажик
Удачи
заполнять строку случайными буквами из английского алфавита, пока в этой строке не найдется определенное слово
Можно ебово оптимизировать и искать через find с оффсетом в конец-длина слова. Это тебе домашнее задание
Зачем тебе find, если можно просто сравнить конец генерируемой строки с искомой?
Если ебово оптимизировать, то строка вообще не нужна и тем более делать в ней слайсы, ебануться оптимизация лол. Строки это самое тормознуте место питона. Вообще проблема в самой постановке задачи, её явно довольно тупенький человек формулировал.
Если даже такой простейший код прочитать не можешь - не лезь.
Хз, я вот вышмат в идеале знаю, а ебучий питон даётся с трудом, и хз как это побороть. Прошёл курс для начинающих на степике, вроде изи, две задачи хардовые, сейчас начал слушать курс для продвинутых от какого-то жиробаса (этот курс советуют сразу после вышеупомянутого проходить) и теперь плывут мозги, даже первую задачу не смог осилить и забил хуй уже на недели две, такой тильт бля.
>>>pairs.sort(key=lambda pair: pair[1])
>>>pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
Помогите понять пожалуйтса, почему там как аргумент передаётся какой-то pair, а не pairs? По моему, обязательно должно быть так:
>>>pairs.sort(key=lambda pairs: pairs[1])
Эта штука тоже работает и выводит то же. Я догадываюсь что питон как-то сам собой обозначил элементы pairs как pair, но какое-то упоминание о таких штуках как pair я в документации не нашёл
A зачем складывать числа в уме? Способность к математике - это умение вбить числа в калькулятор и не обосраться при этом.
Действительно загадка. Казалось бы погромирование и матан из одного теста. И то и другое - максимально абстрактная логика. А вот как мы видим быть погромистом можно и без матана.
бля, это многое объясняет, спасибо
Способности к математике не определяются каким-то кокретным умением или заучиванием неких таблиц. У нас в школе многие троечники по математике прекрасно решали олимпиады по ней же и всякие конкурсы вроде "кенгуру" (хз, есть ли он ещё). Лично я таблицу умножения 2 месяца учил в своё время и всё равно периодически путался. Однако, закончил физмат на отлично.
Вывод: в математике, как и везде, важно понимание, а не заучивание алгоритмов.
Двачую. Когда изучал матан, вникал в доказательства теорем, а не тупо зубрил, плюс старался это связывать с каким-то объектом (конкретная функция или последовательность), чтобы наглядно понимать суть происходящего. Так и с другими разделами математики, главное понимать, что ты делаешь, а не зубрить (возможно зубрёжка помогает, когда ты набиваешь руку на интегралах каких-нибудь или диффурах).
>курс для продвинутых от какого-то жиробаса
Глянул первые видосики из этого курса, кайфанул от того, как этот жиробас четко и без воды рассказывает теорию, такой курс можно и посмотреть до конца.
>учить таблицу умножения
лол блядь всегда в голове считал
алсо по матеше все контрольные, самостоятельные на 5 писал, но средний балл был 3-4 т.к. хуй клал на домашнее задание всегда, меня дома вовис ждал
на егэ сдал с6 попустив училку, она аж меня дернула в атестате оценки на 5 исправлять
Ну вот я раньше знал алгебру вот эту всю, особенно когда к выпускным экзаменам готовился надрочился на высший балл. А сейчас смотрю на "у-рав-не-ни-я" как на японские иероглифы. Всё забыл напрочь.
Вывод: матан как набор логических схем и алгоритмов можно надрочить (запомнить).
Науке известны люди которые огромные числа в уме калькулируют
Вывод: калькулирующие свойства мозга могут быть врожденным.
И я даже рад что мой "чердак" освободился от знаний которые мне не нужны. В современном мире всё это говно в уме держать не нужно.
А нахуй вы лезете в погромисты со своими ебаными курсами если это вам СЛОЖНО? Пиздец охуеваю в тематических чатах с вкатунов у которых ООП и декораторы это чото пиздец сложна
Если вам это не дается это не значит что вы безнадежны, просто попробуйте приложить себя в другом направлении, туда где вам будет интересно
...например кладменство или веб-кам, еще на СВО вроде неплохо платят даже джунам
>А нахуй вы лезете в погромисты
Как нахуя? Чтобы триста миллиардов в наносекунду зарабатывать и ничего не делать для этого.
Так мне для DS нахуй не уперлось ООП, можно тупо зазубрить Numpy с Pandas, и все. Я чисто для себя хотел, но походу не судьба.
Все это и совместить можно
>пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html
Есть какой-нибудь список тренировочных заданий от анона? Вроде бы там всё и так известное и понятное, но хочется чтобы основательно в голове отложилось
>Если вам это не дается это не значит что вы безнадежны, просто не лезьте туда никогда больше
Обычно такое начинается, когда пытаются слишком много за раз сожрать. Думают "ну я умный, сейчас курсики врублю по 8 часов в день и быстро освою". По итогу передоз информации, идут вперёд не усвоив нормально прошлый материал, что более менее усвоили уже из головы начали вылетать и в итоге пройдя весь курс по фасту в голове ничего не отложилось
Все это очень много времени забирает.
Я на днях чтобы решить 3 задачки 7 кю на кодворс. Потратил аж несколько часов. Аж настроение поднялось но потом поняв сколько впереди и сколько времени надо настроение упало
мимо вкатун заводчанин
И абсолютно зря. Аж несколько часов это немного. А чем дальше, тем меньше стоит стремится решить задачу как можно быстрее и больше подумать об оптимизацию и недопускать костылей.
На 3кю я сидел по 3 дня над одной задачей. И это отлично потраченное время.
По началу понять алгоритм необходимый после прописать, а после искать баги, попутно занимаясь оптимизацией. А то по началу при каждом новом ходе в алгоритме он добавлял значение в массив и после проходил по нему целиком, проверяя его каждый раз с нуля в поисках нужной комбинации. Но стало быстро понятно, что это тупо и надо бы проверять только тот участок, куда добавилось значение.
И я не только сидел над задачкой, но и попутно просматривал и разный материал, который, конечно, ни к какого отношения к решению не имел, а по работе с массивами, например. И что самое главное этот опыт по итогу в голове очень хорошо отложился.
Поэтому аж несколько часов это просто ни о чём. Хотя при этом прям в задачи уходить полностью тоже не стоит. Ибо пытаться решать сразу же всё, сидя месяцами только над решениями задач тоже крайне плохой вариант. Типа 1 час теории - 2-4 часа практики. Это условно, конечно, и сильно разнится от тяжести теории. Ибо под некоторую и 20-40 часов может потребуется, но как-то так, хотя бы в голове стоит держать то, что на практику должно уходить куда больше времени, чем на теорию.
Это да. Материал на понятой осмысленной задаче реально закрепляется лучше
Пришлось только с костылить и возвращать puzzle а не arr, потому что с массивом задание не принималось.
Меня прямо в этом ИТТ зис треде сиьоры тимлиды учили, что область видимости функции это инстанс, который пропадает после выполнения блока кода этой функции. Но если дефольтная арг функции будет изменяемым типом, то эту функцию вообще можно юзать как обьект, перекидывая с данными туда сюда, а данные в нутри её дефольтного аргумента будут сохраняться.
Никакой веры анону нет, пиздец.
>Переходя на следующий этаж ты проверяешь, есть ли этаж в списке на остановку
Точно нет. Лифт должен заранее знать, на каком этаже останавливаться, чтоб снизить скорость и сделать плавную остановку.
Тут мамкины проггеры просто соревнуются как весь код в одну строку уместить. Создании алгоритма с лифтом так-то нулевая сложность, даже кот сделает если по клаве пройдет.
На это не надо много времени. Даже находясь на уровне 6 этажа, лифт может обработать прерывание и остановиться на 4м.
>>594368
>Создании алгоритма с лифтом так-то нулевая сложность
Вот ты и спалился, джунище...
Elevator challenge - это целый мем в кодерских кругах, как одна из задач, которая на первый взгляд кажется легкой, а на деле нет.
https://github.com/mshang/python-elevator-challenge/blob/master/README.md
Ебля в жопу тоже кажется легкой, если не пытаться засунуть туда велосипед. Сложность реальной задачи <> сложности манязадачи с маняусловиями.
А сейчас сабесы все онлайн проходят?
Если да, то ты по видеосвязи собесился?
Белую простыню на фон повесил?
Собесился на фоне холодильника в съёмной квартире.
Может ещё уроки за тебя сделать на слабо?
ну и в чем они не правы?
Сап анончики.
Есть один класс, у которого куча атрибутов, я не хочу писать всю эту кучу в __init__ руками, как-нибудь можно просунуть ему всю пачку словарём например?
Сейчас вот так:
Class Govno(Mocha):
one = Property()
two = Property()
.....
billion = Property()
g=Govno()
g.one('hui')
g.two('pizda')
Можно же это всё не init сделать, передав словарь?
foo = 'bar'
foo = 'bar1'
Переменная foo = 'bar1' это совершенно новый объект с новым id и областью в памяти. Т.е. если я рекурсивно или в цикле буду миллиарды раз её вот так переназначать, то в итоге память закончится. Я слышал,но особо не вникал, что есть некий механизм, который сам убирает весь такой мусор, но меня интересует как мне это делать самому в программе, как удалить старую переменную из памяти, а лучше чтобы она сама сразу удалялась если ей переопределяем значение, например.
ага, вроде получилось, вот так
def __init__(self, kwargs):
for k, v in kwargs.items():
setattr(self, k, v)
уъу сука чо так сложно
а вот так не получилось, ест словарь без ошибок, но на выходе все атрибуты пустые
Я не это спрашивал. Дел просто открепляет имя от области памяти, очищать же память будет сборщик мусора. Т.е. это то же самое что просто назначить для foo другое значение.
gc.collect(
def __init__(self, kwargs):
self.__dict__.update(kwargs)
def __repr__(self,):
return f'{type(self).__name__}(' + ', '.join([f'{i}={v!r}' for i,v in self.__dict__.items()]) + ')'
a = Govno(hui='12sm',pisda=10, zalupa=set())
a.hui
ну вставь в функцию, будет и там
Вот есть у меня строка весом 8 гб, например. Если я сделаю маленький генератор, внутри него сделаю цикл, который будет прочитывать по 100 символов, что-то в них искать и выплевывать результат yield-ом. Чем это будет отличаться от того же самого алгоритма сделанного в обычной функции с помощью того же цикла?
Кажется понял. Имеется в виду противопоставление итерации "обычному" способу хранения данных. Ни в одном уроке и статье это не объясняется. Пишут типа "вот генераторы хороши если у вас дохуя данных, а саму суть, что они под этим миеют в виду просто итерацию - не объясняют. Хорошо что у меня IQ 271 и до всего сам дохожу.
https://www.codewars.com/kata/54521e9ec8e60bc4de000d6c/train/python
Конкретно мой код https://pastebin.com/F20mYYXS суммирует куски листа по 2, 3, 4...n элементов, заносит их в отдельный лист, а потом возвращает наибольший элемент листа. Код работает для листов короче ста элементов, а длиннее ста выдаёт таймаут еррор.
открой солюшены да посмотри
> Переходя на следующий этаж ты проверяешь
А если я отжал кнопку на пол пути и выбрал другой этаж? Ирл он остановится и поедет на новый.
Классическая задача на динамическое программирование, а твоё решение - говно.
Утечка это когда ты в очень сложном объекте, где-то глубоко, копишь данные, которые уже не нужны. Или забыл использовать weakref вместо обычного ref.
Сборщик мусора с таким примитивным случаем хорошо справляется, там переполняется активная арена, она подчищается и наполняется заново, в итоге процесс всегда ест фиксированное количество памяти.
По-настоящему переполнить память можно вот так:
i = 0
lst = []
while True:
..lst.append(i)
..i += 1
Это так принято. Можешь называть его хоть Сьюзан. Функция, определённая внутри класса — это абсолютно такая же функция, как и все остальные, но ООП-механизмы делают ей частичное применение на первый аргумент, причём не обязательно он должен называться self.
Генератор чисел Фибоначчи. Ему не нужно помнить 8Гб прошлого, нужно только два последних числа хранить.
Я бы схлопнул все соседние позитивные/негативные, отцепил негативные с краёв, получится что-то вроде [+a, -b, +c, -d, +e], тут уже можно подумать над эффективной стратегией, например пытаться наращивать от каждого позитивного числа.
>>595051
Там надо просто идти по списку, начиная с первого положительного числа и всё складывать не позволяя опускаться результату ниже нуля. Всё.
Я по началу так и хотел сделать, но почему-то моча в голову ударила и решил что так не сработает и надо обязательно брать срезы. Это ошибка. Вернее код-то этот работает как надо и всё выполняет, но на больших массивах не укладывается по времени.
У тебя ещё логические ошибки. Например ты берешь срезы любой длинны одинаковое количество раз. Сам подумай, разве нужно срез длиной 9 элементов в массиве размером 10 элементов брать 10 раз. Нет, его надо 2 раза взять чтобы всё покрыть. ну и синтаксис у тебя полностью проебан, без негатива.
arr[e:e+n]
так делать нельзя, если пытаешься хоть в маленькие намёки на оптимизацию.
просто добавляй значения в отдельный список и потом уже если сумма нового списка будет выше, то заменяй его новым, если нет, то всё дальше.
про срезы забудь навсегда при выполнение заданий. Максимум первым или последний элемент можно брать.
таблетки
По-моему срезы списков довольно шустрые, это строки пиздецово тормозят. Но я согласен что для задачек скорее всего так делать нельзя.
рассказывай какие вопросы задавали
Вряд ли
Но с головой явно проблемы. Просто посмотри на эти безумные глаза на эту самодовольную ухмылочку. Загляни в застывшее в одной эмоции лицо и поймёшь что он сумасшедший
Сумму ещё можно считать отдельно, а не брать сумму списка, я думаю. А то если там список на 1000 элементов и у тебя образовался список на 100 элементов, то считать его сумму каждый раз тоже слишком затратно. Но тут уже не так критично, но из-за срезов точно по времени не уложишься.
Призывается анон с навыками python, чтобы запилить важный пулл реквест: highres fix в запросах на генерацию. Это поможет развитию как Horde-комьюнити, так и технологий синтеза изображений в целом.
https://github.com/db0/AI-Horde-Worker
Stable Horde - децентрализованная, добровольческая на принципах краудсорсинга peer-to-peer сеть, призванная предоставлять облачные мощности для создания ИИ-искусства, заменяя собой менее гибкие аналоги типа колаба. Она позволяет множеству пользователей со всего мира творить годноту и порождать идеи, даже имея лишь телефон или дешевый нетбук. Она поддерживает уйму разных моделей (список постоянно обновляется) и позволяет генерировать NSFW, с гибкой настройкой во фронтэнде и в различных сторонних клиентах.
Так в чем же проблема? Нет поддержки "highres fix".
Это опенсорсный проект, и ведущие разработчики уже заняты другими вопросами. По словам участников в дискорде, "воркер"-скрипт не рассчитан на увеличение пикчи перед ее отправкой в img2img, и к ней просто добавляются белые поля. Поэтому для полноценного апскейла потребуются пулл реквесты. Для изменения принципа обработки пикч в worker, и собственно для отправки двойных запросов через API (ну то есть опция во фронтенде artbot, такая же как в automatic1111 webui). Первое это необходимый минимум, второе прикрутят разработчики клиентов. Код лежит в репозитории horde-worker.
Полагаю, все знают, что для получения годной пикчи нужно прогонять ее через модель дважды, чтобы она была 1024x1024, чтобы на ней хотя бы было на что смотреть. Это называется highres fix, что-то похожее внезапно есть в Dall-e 2 и Imagen.
Не понимаю, поясните.
Дока фреймворка:
https://pytba.readthedocs.io/en/latest/sync_version/index.html
Ну всё рабоатет?
Значит проблема в твоём ide. Наверное он думает, что функции должны быть в начале, что правильно и назад не смотрит.
Ну ещё надо посмотреть, что находится в декораторе. Может какие-нибудь конфликты появляются
В пейчарме можно просто кликнуть с зажатым контролом на функцию и откроется место где она находиться, а там и код можно глянуть её.
Ну и не стоит делать так
import telebot
При таком импортировании всегда появляются ошибки.
Надо импортировать from telebot import "нужная функция-класс", ну или * если всё нужно, такой вариант всё равно куда лучше.
А просто с импортом без from часто ошибки возникают странные, не скажу из-за чего даже точно.
Скорее всего optCount улетала в декоратор и он эту переменную не видит. Поменять способ импортирования в теории может тут помочь, если нет, то надо смотреть код в модуле
>Ну и не стоит делать так
>import telebot
>При таком импортировании всегда появляются ошибки.
>Надо импортировать from telebot import "нужная функция-класс", ну или * если всё нужно, такой вариант всё равно куда лучше.
>А просто с импортом без from часто ошибки возникают странные, не скажу из-за чего даже точно.
рубрика вредные советы
Кое-что нарыл.
Опткаунт в отладке показывает 0, как и должно.
А с импортом ниче не понял, это как это, через звезду? Зачем? Там всего одна библиотека, никаких коллизий быть не должно же
А еще ГЛОБАЛЬНЫЕ переменные не создаются, пока не выполню условия декоратора и не выведу #предложение в чат.
чзх
Зашёл впервые на ваш гейворс и получил экстаз от изящности решений других участников
Но там всегда есть мемные решения, которые тоже крайне прикольные.
Суть их в том, что бы вместо 20 строк написать 200 и больше, а это надо уметь тоже, особенно что бы это выглядело действительно впечатляюще, а не как говнокод.
Задача на пик 1, а вот мое решение:
import numpy as np
lst = []
n = int(input())
t = int(input())
for i in range(1, n+1):
ele = int(input())
lst.append(ele)
elemax = np.max(lst)
elemin = np.amin(lst)
a = int(input())
print(elemax, elemin, lst)
if (elemax - a) < t or (a - elemin) < t:
print(elemax - elemin)
elif elemax - a < a - elemin:
print(elemax - a + elemax - elemin)
else:
print(a - elemin + elemax)
Пик 2 пример данных.
У меня во втором тесте выводит 29 и я не пойму почему там 31.
То есть она поднимается на 5-ый на лфите, потом спускается на 1-ый и далее на 25-ый.
Не пойму где пробел в логике, я совсем пень похоже.
Сама задача одна из прошлых, которые давали на курсах тинькоффа1
Говно без задач.
Зачем людям с видеокартами раздавать свои мощности кому-то, если они могут генерить через удаленного админа с телефона, например. Что они в замен-то получают? Нихуя?
Такая инициатива возможна, если сам AUTOMATIC11111 эту фишку всё вебуи сам добавит, а такие вот нонейм инициативы обречены на провал. Кстати не первый раз такое вижу. Чем больше таких инициатив тем меньше людей в каждой из них.
Есть набор таблиц, с привязочной сущностью по середине
[A]--[C]
Мне нужна прямая связь [A]-. Как я это вижу - я создаю три объекта, указывая связи для них, и потом по желанию могу получить прямую связь из А в Б и наоборот. Какими инструментами это можно реализовать?
В примере 2 обьекта, но на практике офк больше. Задача соединить их на прямую, миную промежуточные шаги.
но некоторые модули всё же нужно импортировать через *, а иначе не будут нормально работать, но в большинстве случаев так делать не стоит, да
Вспомнил, что в одном из модулей у меня импорт нормально не работал, погуглил и решение было импортировать через * и почему-то в голове после этого мысль эта засела.
Хотя чисто логически это очевидно не очень решение, особенно, если несколько импортов.
Что такое ПРИВЯЗОЧНАЯ СУЩНОСТЬ блядь. Это термин что значить должен нахуй.
А может быть корова, а может быть собака
>провязочную таблицу
К питону это отношение не имеет, скорее к бухучету какому-нибудь или вообще с потолка.
Какая-то "привязочная таблица", какая-то "прямая связь". А что такое "НЕ прямая связь", а чем привязочная таблица отличается от обычной таблицы. Зачем ты какие-то рандомные термины используешь, тебе же надо чтобы тебя поняли или что?
Пройдись по каждому объекту и создай словарь. Всё.
Хз, стандартные термины реляционных БД.
Ну это будет хардкод, тот же спринг умеет строить связи между 2 обьектами минуя третий.
Может сделать из A-B-C
A-C.
Я хз
Всем привет!
Не могу понять что делаю не так. Я, короче, написал кое-какое говно, чтобы оно мне бекапило всю хуйню и кидала зашифрованной в s3. Для этого я взял pgzip, gnupg, boto3. Чтобы каждый раз не устанавливать всю эту хуйню на каждом хосте через pip, я закачал всё через pip3 install --target ./deps/ -r requirements.txt --upgrade. Соответственно, я поменял импорты, чтобы они были как надо, а именно import deps.boto3 as boto3. Но при попытке запустить говно я получаю ошибку с пикрила. Если посмотреть в директорию, то модуль на месте. Почему эта хуета не может его найти?
Слепой штоле?
В самом пакете инит импортирует свои же модули без твоего костыля, а там уже не находит их в site-packages.
Там есть какой-то path для поиска модулей, вот туда надо добавить твой deps и импортировать нормально. Гугли кароч.
>если я отжал кнопку на пол пути
В реальных лифтах я видел такое только по вызову метода STOP(). Но этот метод сбрасывает всю очередь вообще.
Кстати, как раз отжатие кнопки интересно, если вспомнить лифты, в которых кнопка остаётся нажатой и работает как реле для инициации остановки.
>>594317
>Лифт должен заранее знать
Насколько заранее? Он может остановиться за пол-этажа примерно, значит если он, проезжая механическую/электрическую/фото метку этажа, нанесённую на стену считывает её и принимает решение об остановке, если в этот момент есть условия, необходимые для этого.
У лифта должен быть пульт который только принимает команды человека и рассматривает их исключительно в качеств добрых рекомендаций. Мешкам с костями нельзя ничего доверять. а то они начнут прыгать на пульте визжать закатив глаза и самоубиваться об арматуру.
Вот нажали кнопку движения. -> Всё, до свиданья мартыхан. Сиди ровно в кабине, жуй бананы и не рыпайся.
Лифт смотрит следующий этаж выше или ниже - если выше получаем первую переменную - движение вверх. Далее получаем статус от датчиков на каком этаже находимся. И т.д и т.п. и тд и тп.
Так же и во время движения - вонючая макака нажала стоп во время движения - приняли команду и смотрим что мы с этим суетливым визгом можем сделать, все решения только на основе наших собственных, блестящих великолепных датчиков.
Логика лифта она проста и прекрасна. не надо её возводить в какую-то странную запутанную хуйню. Это не так.
98% того, с чем ты более-менее сталкиваешься за компом делается вообще без матана. На оставшиеся 2% приходятся в основном нейросети в телефончиках, сортирующие фоточки, при чём те, кто писал матан и те, кто писал нейросети это совершенно разные люди.
Я видел разработку только одного продукта, где был какой-то прям матан и это была ГИС-система, в которой надо иметь в виду, то на плоский экран выводятся плоские квадратики вообще-то кропнутые шаровые сегменты со всеми их особенностями (типа прямая на карте это совершенно не то же самое, что прямая на глобусе и вот это вот всё). При чём и там не было чего-то сильно большего, чем школьный курс стереометрии и тригонометрии.
Сайтики, формочки, базы и прочее это почти весь софт в 2023. Не это нужно, чтобы считаться сеньором и иметь 300кк.
Да, правильно. Слава ChatGPT
Интуитивно кажется, что check3 это просто развёрнутая запись check2 и они равнозначны.
А check1 это так, для разминки.
Давай теперь самый простой и самый сложный способ покакоть.
Все эти event-хуюпы, хуехронные контекстные менеджеры и прочее.
Как, а главное нахуя это всё вообще нужно? У кого-нибудь был проект где нужно было что-то большее чем функцию в async await с двух сторон обкладывать чтоб заработало?
А что для тебя неочевидно? Любые запросы блокирующие io ждут без какого либо полезного действия. Асинхронные вызовы призваны оптимизировать утилизацию ресурсов, что бы избежать простоя процессора.
Бля жаль, а то так аккуратно получалось условие в одну строку, ладно пойду на лесенки исправлять.
Ну я тоже скучаю за теми же перловыми фичами вроде
$hui = 1 if $pizda; и с сотней других четких хуиток и шорткатов.
Но в бидоне надо мириться с некоторой тяжеловесностью в этом плане.
Чтобы в одном треде обслуживать много (особенно долгоживущих) сокетов или рулить множеством субпроцессов. Можно конечно это делать без async await, вызывать вручную epoll и дёргать херову гору колбэков на все случаи жизни, а можно писать как обычный код и добавлять async await. Самый простой пример — сделать чатик на (веб-)сокетах.
Например пишешь вопрос и пользователю не ясно обрабатывается он или нет, нужна какая-то строка типа "думаем", не понимаю куда её добавить.
import telebot
import openai
bot = telebot.TeleBot("")
openai.api_key = ""
@bot.message_handler(content_types=["text"])
def handle_text(message) :
response = openai.Completion.create(
engine="text-davinci-003",
prompt=f"{message.text}",
max_tokens=1024,
n=1,
stop=None,
temperature=0.5,
)
bot.send_message(message.chat.id, response.choices[0].text)
bot.polling()
Нейронка это просто кривое зеркало, думать она не умеет, просто генерирует фигню по паттёрнам на которых обучалась. Чем больше параметров и сложнее обучение, тем меньше искажений будет видно, но стоит увеличить область запроса, как искажения снова начнут лезть из всех щелей.
Её можно использовать как некоторую замену гуглу при некоторых вопросах, но код ей лучше даже не пихать. Она может на ванильный питон более менее нормально отвечать, но какие там могут быть проблемы с ванильным питоном.
Перед запросом к нейронке отправляешь сообщение, что происходит думание
После получения респонза удаляешь сообщение о думании и шлёшь ответ
Сап питонач, есть такой вопрос. У меня есть 2 зависимости: X(t) и Y(X). Они представлены в виде 2 numpy массивов n на 2. Есть ли какая-то команда, которая позволит мне получить зависимость Y(t)? Я понимаю алгоритм как это можно сделат руками, но наверняка же есть какая-то команда в numpy или другой библиотеке специально для этого.
Я немного не понял тебя. Задача какая-то размытая, дохуя условий опущено. В чём проблема применить дважды линейную регрессию и МНК?
Можно ли сделать последовательное поочередное присваивание значений элементам списка?
Типа что-то у меня есть допустим какой-нибудь десятиугольник, и мне надо передать в функцию которая посчитает характеристики этого десятиугольника 10 значений: a, b, c, d.....
Можно ли создать список содержащий переменные [a, b, c, d...] и через цикл for вводить для них с клавиатуры значения?
Ну или что-то типа того, чтобы не писать каждый раз а = инт инпут, б = инт инпут и еще сто раз?
Как мне сделать все это кратко и понятно для глаза?
а как ввести b потом c? Мне нужно сохранить все десять значений в 10 переменных
>def handle_text(message) :
сразу после этого идёт реакция на отправленный текст пользователем. Можно сразу после неё написать что-то типа:
bot.send_message(message.chat.id, 'сча сгенерим тебе хуйню')
В чем проблема запустить цикл, в котором ты будешь вводить нужные тебе величины и добавлять их в список, а затем обращаться к ним через индексы?
Я слов-то таких не знаю, где про это почитать? Задача заключается в том, что есть 2 массива данных, один вроде эталонного, например, излучение от температуры. А второй экспериментальный - излучение от времени. Надо получить зависимость температуры от времени.
>>596683
Значения не факт что в точности совпадающие, этплонный, как мне известно, это вообще аппроксимированная кривая.
>Значения не факт что в точности совпадающие, этплонный, как мне известно, это вообще аппроксимированная кривая.
тогда тебе нужна некая модель, а не сведение точек.
Напиши похожую функцию в общем виде и примени scipy.optimize.curve_fit.
Если вообще нет никаких идей на что похожа эта функция, придется натягивать модели типа GLM или GAM
Что-то вроде
bot.delete_message(message.chat.id, sent_message.message_id)
Айди поста надо сохранять ещё при отправке:
sent_message = bot.send_message(message.chat.id, 'сча сгенерим тебе хуйню')
>>596822
Спасибо.
Вот так вполне себе работает:
@bot.message_handler(content_types=["text"])
def handle_text(message) :
sent_message = bot.send_message(message.chat.id, 'сча сгенерим тебе хуйню')
response = openai.Completion.create(
engine="text-davinci-003",
prompt=f"{message.text}",
max_tokens=1024,
n=1,
stop=None,
temperature=0.5,
)
bot.delete_message(message.chat.id, sent_message.message_id)
bot.send_message(message.chat.id, response.choices[0].text)
bot.polling()
Аноны как более правильно по PEP8 ? И если всё хуйня как надо?
ага я еще когда посмотрю решения как умники делают в 1 строчку используя суперочевидные вещи либо какие-то тайные тибетские знания и тогда ты вообще себя тупым считаю, у тебя так же?
Главное, что решил, ну и запомни решение, которое увидел в ответах, считай, что это твоя награда за труд
Да, некоторые считают, что если ты не пихаешь везде генераторы, то ты не питонист, а лох. Хотя тебя всё равно за лоха будут держать, если ты питонист, так что какая разница
Я сейчас, наоборот, парюсь об лишней оптимизоне, поэтому сначала пытался через словари решать, но быстро понял, что у меня в словаре те же списки и это тупо значит.
Потому подумал, что можно через добавление и вычитание из списка делать, но в итоге стало быстро понятно, что проверки, если ли в списке нужное значение и его удаление займёт кучу лишних операций.
Поэтому пришлось решать так. Единственное, что bool в конце абсолютно лишний.
https://www.codewars.com/kata/5a3f61bab6cfd7acbc000001/train/python
ну тут ошибка из-за i как я понял, но исправлять уже не буду
и думаю должны быть куда более простые способы
Переделал программу под текстовый файл - теперь уже никаких переменных, а значит, и никакого говна по типу вы не присваивали значения перед использованием.
Но столкнулся с другой проблемой - теперь выход воспринимается как одна строка. Я посылаю список на выход, а он, сука, не посылается.
Все через жопу, в лучших традициях.
optCount = open("optCount.txt", "w+")
optCount.write("Привет, файл!")
optCount.close()
@bot.message_handler(regexp='#предложение')
def start(message):
optCount = open("optCount.txt", "a+")
optCount.write(message.text.replace('#предложение', '') + '\n')
bot.send_message(message.chat.id, 'предложение принято')
optCount.close()
@bot.message_handler(regexp='#старт')
def start(message):
optCount = open("optCount.txt", "w+")
s = []
for line in optCount:
s.append(line)
bot.send_poll(message.chat.id, "Что читаем?", s)
s.clear
optCount.close()
f = open('optCount.txt', 'w')
f.close()
bot.send_message(message.chat.id, 'Голосование!')
bot.polling(none_stop=True)
Переделал программу под текстовый файл - теперь уже никаких переменных, а значит, и никакого говна по типу вы не присваивали значения перед использованием.
Но столкнулся с другой проблемой - теперь выход воспринимается как одна строка. Я посылаю список на выход, а он, сука, не посылается.
Все через жопу, в лучших традициях.
optCount = open("optCount.txt", "w+")
optCount.write("Привет, файл!")
optCount.close()
@bot.message_handler(regexp='#предложение')
def start(message):
optCount = open("optCount.txt", "a+")
optCount.write(message.text.replace('#предложение', '') + '\n')
bot.send_message(message.chat.id, 'предложение принято')
optCount.close()
@bot.message_handler(regexp='#старт')
def start(message):
optCount = open("optCount.txt", "w+")
s = []
for line in optCount:
s.append(line)
bot.send_poll(message.chat.id, "Что читаем?", s)
s.clear
optCount.close()
f = open('optCount.txt', 'w')
f.close()
bot.send_message(message.chat.id, 'Голосование!')
bot.polling(none_stop=True)
Мультипроцессинг не ускоряет терминал, а одновременные write в один пайп наверное ещё и замедляют. Хуйню сделал короч.
В общем, психанул и решил.
Интересно даже какие там решения в ответах будут. Хотя у задачки ещё мало ответов
В принципе тут можно ещё написать выход из цикла, когда max_c >= len(arr). Нет смысла дальше считать и тратить время
Так и думал, что проблема в терминале. Попробовал записывать в разные файлы и все работает, надо было сразу так сделать
Во-первых, учи программирование. Прям вот основы. Потом переходи к изучению основ питона. Хотя бы банально научись гуглить и читать доки.
Во-вторых, учи английский. Понадобится как в чтении доков, так и в чтении ошибок, которые прямо тебе говорят, в чем ошибка.
Надеюсь "памог".
Есть прогресс, уже не такой и плохой ковнокодер. Такой прогресс радует.
Мой результат внизу, а вверху самое залайканное решение.
Проверял на рандомном списке в 500, хотел 50000, но мой выполняет такой размер, а этот хрен дождёшься
Во-первых, кодинг я знаю лучше тебя. Во-вторых, пошел нахуй. В-третьих, у меня несоответствие по api, т.е. строка одна вместо двух, пшел нахуй тупой уеба.
Да мне лень в бд и с ней ебаться, когда всего-то нужно пару строк.
А переменные без сохранения в памяти - шиза, я так все данные потеряю. Просто с ними тестировать удобнее.
Разбираюсь теперь с переносом - \n не всегда работает, и я не могу понять, почему.
Спасибо, но переменные уже - прошлый век!
Я теперь другим занимаюсь, смотри.
Откуда берется злоебучий пробел в начале следующей строки?
Вижуал студио от мелкомягких.
бля какая же ёбка с этими бд пока не натренируешь 1000 штук, особенно с постгрессом каким-нибудь, реально легче в файл
Поставил CUDA, встала без ошибок, проверил:
C:\Windows\System32>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.1, V10.1.243
Когда выполняю код с EasyOCR в (PyCharm), он пишет следующее:
CUDA not available - defaulting to CPU. Note: This module is much faster with a GPU.
Подскажите, как решить проблему?
Это печатает x=value, а мне нужно только вывод x.
Лучшее решение, которое нашел:
def var_name(var):
for name, value in globals().items():
if value is var:
return name
print(var_name(x))
Но мне кажется это должно делаться гораздо проще. Задачу свою выполнил и без вывода переменной
Если у тебя вообще есть такая необходимость (кроме вот такого дебажного вывода), то ты сделал какую-то хуйню, переделывай.
(venv) PS D:\!IMG&Proj\PycharmProjects\pythonProject> nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.1, V10.1.243
Последнюю накатил:
(venv) PS D:\!IMG&Proj\PycharmProjects\pythonProject> nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Jan__6_19:04:39_Pacific_Standard_Time_2023
Cuda compilation tools, release 12.0, V12.0.140
Build cuda_12.0.r12.0/compiler.32267302_0
Резйльтат тот же: CUDA not available - defaulting to CPU. Note: This module is much faster with a GPU.
Python 3.10
Вы сеньер?
GT 1030
А зачем самые последние? У меня вот tensorflow 2.11.0 требует питон 3.7-3.10, куда 11.2 (это какое-то старье двухгодичной давности, новыми версиями не работает и тоже не видит гпу)
В питоне можно вызвать функцию "vars()", которая вернёт тебе все переменные и их значения в виде dict'а. Можешь обратиться к ней. Их список легко вывести:
> print(vars())
Можно попробовать обойти:
> for k, v in vars().items(): print(f"{ k } = { v }")
Но при первом проходе поймаешь эксцепшн
> RuntimeError: dictionary changed size during iteration
Очевидно, из-за создания новых переменных k и v при старте цикла.
Может, поможет...
Делают тот же самый запрос 1 в 1 со всеми хедерами и параметрами через requests - ошибка 503.
Why?
Дело не в куках, я могу вообще на другом устройстве эту ссылку открыть в браузере, но не через requests.
Нет. Не понятнее. Конструкцию в квадратных скобках нужно прочитать много раз, прежде, чем поймёшь, что там происходит из-за смешения в одном месте цикла, условия и ещё ХЗ, чего. Она же, развёрнутая в две строки, оказывается намного понятнее.
Бонус: я обхожу список один раз и сравнение делаю тоже один разправда, положив хуй на валидацию.
Сравни подробный обмен с тем, что должно происходить. Какой-нибудь хендшейк валится или ещё чего...
https://goonlinetools.com/snapshot/code/#836etqjdmcsuqbnow2gysm
Сколько надо заниматься чтоб дойти до такого уровня?
Мне тоже сорт не понравился, я просто показал, что в несколько строк проще прочитать, что там делается и я повторил алгоритм в лоб.
Интересный класс. Не подозревал о нём, но была мысль куда-то в том же направлении, чтобы не делать сортировку.
бред полный, у одного адреса может быть сколько угодно имён. ты или знаешь, и можешь напечатать в строку, или не знаешь, и получаешь такой код:
>>> a = 123
>>> b = 123
>>> var_name(b)
'a'
Попробовал. Потребовалось добавить флаг для сохранения: "-o capt", иначе получал бинарный выхлоп.
Получил файл с капчей (с теми же цифрами, но нарисованными иначе, lol)
https://goonlinetools.com/snapshot/code/#io5cj90fz8h41djd5r2jvd
Но если делал это повторно после небольшой паузы, ловил 500.
нечитаемо
Ну хуй знает, может там ещё какие настройки по локации есть или что-то вроде того.
Та же рекапча тоже начинает иногда задачками срать, если поймаешь зашкваренный айпи динамический.
Пейнт нет
imagemagick умеет
А так ресайзишь до 1 пикселя в высоту - проходишь по одномерному массиву смотришь цвет. Ресайзишь до 1 пикселя в ширину - повторяешь. Кропаешь по найденым точкам.
Есть пограничные ситуации, возможны коллизии, но если картинки предсказуемые как у тебя, то отработает как часы.
Нейросеточку натрави
startswith()
Типа работает цикл и фоном продолжает работать программа?
Ну там есть есть в time и datetime всяких функций с помощью который такой таймер можно реализовывать
Не, ты не понял. Без цикла нельзя? Тип как прерывание на ардуинке от кнопки, только от времени. Да, по дэйттайм. Но без таймеров и циклов.
А, да можно, конечно. break самый банальный вариант, если просто выйти из цикла и дальше продолжить что-нить ещё довыполнять, может сообщение отправит или типа того, или quit(), если тупо программу закрыть как через ctrl+c
Можно и иначе реализиовать.
Ну и в таком вечном цикле sleep() думаю всё равно пригодится, что бы он не работал 100%, а условно в каждом такте прерывался на 5-10 секунд в зависимости от нужны.
В datetime можно выбрать нужный тебе вариант текущей даты, без годов и дней, если нужно, ну и сравнивать текущую дату и условный будильник через datetime.timedelta, ну и других вариантов можно кучу реализовать.
Ну и хз что тебе точно нужно, поэтому дальше сам думай, всё можно, на питоне всё можно, где не нужно лезть в память
То что хочешь называется планировщик, aka scheduler.
https://github.com/vinta/awesome-python#job-scheduler
По жизни, правда, проще обернуть боковую задачу в отдельный скрипт/вызов апи и дёргать его планировщиком ОС.
Но я не совсем понял где тут взаимосвязи. Можете обвести кружками или схематично показать где тут, а то по логике этой схемы вторым пиком мои действия просто копируют 2 элемента из списка. Объясните пожалуйста
ну у тебя два for в генераторе. Напиши это через два for и будет понятнее.
Но заниматься подобным раскрытием вложенных списков в один надо через рекурсию, а лучше всего просто через numpy, если у тебя в списке данные одинакового типа
Это если там неизвестна глубина вложенности, а такой двухмерный схуяли рекурсией?
да ну нафиг
На ютубе смотрел собеседования на джуна. Да я там даже почти на все вопросы смог ответить.
или это постановочные собесы?
1. Им нужны коммуникабельные современные люди, а не гики-задроты как я.
2. Мало вакансий БЕЗ ОПЫТА. А "джунов" именно с опытом набирают, 1-3 года. Не буду же я туда слать.
3. У меня широкопрофильность идет впереди знаний, т.е. знаю из каждой сферы понемногу, но не знаю какую-либо на все сто.
Ну и инглеш - моя беда, ну не выходит у меня на нем говорить. Читаю и пишу на B 1-2, понимаю на A1
А потому, все собеседования проваливаю и числюсь РНН-господином.
В целом мог бы напрячься и найти роботаф, но мне хотелось продолжить учебу в универе. В этом году не получилось. Пытался напрячься, но перегорел. Бота пишу для добавления в портфолио в т.ч.
НАДО НАЙТИ ИНГЛШ ТИЧРА
Мимо красный диплом, тру стори
Искать работу это как искать тянку в тиндоре. Если ты будешь каждый профиль изучать и читать её интересы и вкусы, постоянно оценивая насколько ты им соответствуешь, то, конечно, хуй ты там кого подцепишь.
Просто свайпишь всех, а дальше уже смотришь.
Так же и по работе. Откликаешься на всё, пофиг, что они там требуют.
Если тебе надо чтобы функция хранила состояние - оборачивай функцию в объект.
Другое дело, что это супернечитаемо и возможно в таких нетривиальных случаях лучше написать свою сортировку.
Даже если требуют опыт, если ты в целом понимаешь, что с работой справишься. Всегда можешь припездеть. Но пошлют тебя, всё равно это тоже опыт какой-никакой, дальше будешь лучше понимать, что не хватает в навыках или пиздеже. Ну поймают на пиздеже и что, пиздеть законом не запрещено.
И это ещё не считая того, что куча вакансий может быть просто фейками или по ним в реале, в принципе, не набирают и вывешивают для сбора личных данных.
кложурой
def sorter(n):
....def key(x):
........return n > x
....return key
sorted(pook, key=sorter(123))
>А как я пойму, если не работал? Не справлюсь знач.
Готов идеально ты не будешь никогда. Пока учишь новое старое забывается.
Откликаешься, если зовут на собеседование, то тогда уже смотришь, что у них там в требованиях и готовишься по ним, повторяя и может подучивая что-то. Если понимаешь, что да, тут ты совсем дурак, то просто игноришь их собеседование и всё.
>А это зачем?
Зачем-то нужно. Наберут и продадут кого-нибудь потом
l = ' 1 \n 2\n3\n 4 \n 5 \n \n\n 6\n'
Как из неё получить список ['1','2','3','4','5','6']
Самым эргономичным способом за минимальное количество проходов и в одну строку?
Мое решение
l = [l for l in map(str.strip, l.split()) if l]
.ifdigit()
l.split()
Во я дебил бля пиздец. Почему-то ВНЕЗАПНО решил что новую строку сплит отдельно от пробела считает.
Работает как и должна работать.
Попробуй что-нибудь делать по событиям в сети и получению сетевых сообщений от других устройств и сразу поймешь.
Но эта инфа все равно в свободном доступе же
Нужно написать приложение для Джанго проекта, которое позволяло бы добавлять на страницы теги для продвижения в социальных сетях и поисковых системах.
как я понял речь про метатеги, блядь как реализовать чтобы не нужно было каждый раз передавать теги во вьюху?? чтобы один раз в базовый шаблон прописать а он сам их подсасывал из бд такое реально?
one-to-many с промежуточной табличкой. Ну или какая-то зумерская хуйня с жсоном в базе. Я ебу, что там сейчас надо.
Посоветуйте, имеет ли смысл читать Лутца мидлу или я оттуда ничего не нового не почерпну?
Вводные: пишу на питоне 3 года, шарю за всю базу. Стандартная библиотека, сахар, ооп, подкапотка.
Шарю за фундаментальные принципы и паттерны.
добавлю, анончик.
Если планируется итерироваться по списку, лучше взять chain
from itertools import chain
chained = chain(arr)
он возрвщает итератор, если нужен список, то используй list(chain(arr))
Где arr - последовательность списков
Разве что для навыка преподавателя, как разжевать нюфагу то что ты уже знаешь.
используй утилиту black, она за тебя все форматнет по правилам PEP-8 но все же стоит проверить правильно ли
list= [
('T1', ['T1-2','...',], ['T1-3','...',]),
('T2', ['T2-2','...',], ['T2-3','...',])
]
с помощью zip(list) его можно развернуть в три листа
['T1', 'T2']
(['T1-2', '...',], ['T2-2', '...',])
(['T1-3', '...',], ['T2-3', '...',])
А как сделать так же три листа, но только полностью скипая второй элемент, чтобы получилось только
['T1', 'T2']
(['T1-3', '...',], ['T2-3', '...',])
Вот например есди я сделаю это в цикле
for i, n in enumerate(zip(list))
и в такой конструкции скипну второй элемент if i == 1: continue
В этом случае вторые элементы вообще обрабатываться не будут или они в генераторе итераторе zip всё равно все посчитаются просто в обертку for не попадут? Такой вот вопрос к знающим что там под капотом.
Или как лучше сделать чтобы второй элемент вообще не обрабатывался?
В идеале его получить как-то так driver.find_element(By.XPATH, '//*[@id="mail"]'). Но значения емейла вообще нигде нет в коде, кнопка делает data-clipboard-target="#mail", но откуда она берет значение емейла и на экране-то сгенерированный емейл есть, ну и как его получить в переменную в питоне?
Чекните на картинку там всё показал.
Передается в пост запросе, нюфань.
я не знаю, почему хтмл не обновляется, но значение инпута лежит просто в input.value
А как его в переменную в питон получить оттуда?
Пробовал:
driver.find_element(By.XPATH, '//*[@id="mail"]')).value
И так тоже By.ID, 'mail'
'WebElement' object has no attribute 'value'
Может селениум его не видит?
а сам элемент находит?
инпут не сразу на сайте заполняется, там задержка.
попробуй слип сделать секунд на 10
может, ты там долбишь селектором, когда страница ещё не загрузилась, или инпут не заполнился
Пиздец ты беспомощный, там посылается один пост реквест и приходит адрес и какой-то токен, видимо для последующей проверки.
Выкидываешь нахуй все селениумы и делаешь один запрос через реквестс.
Только апи платное.
>один запрос через реквестс
И хуй тебя пустить через реквестс клаудфлара, сначала посмотри как там всё устроенно а потом кукаретизируй.
Ну и продолжим если бы у меня был не начальный уровень в питоне, я бы наверное нубских вопросов не задавал.
Ну проходишь клаудфлару селениумом, экстрактишь куки и дальше реквестами.
Алсо, есть либы для решения клаудфлары, хотя они регулярно ломаются, но можно поискать актуальные.
Кст, потому я тянку и не могу найти на сз наверн. ПОХУЮ, мне все равно тяны из ИРЛ нравятся В РАЗЫ больше.
Только они внимания на меня не обращают, но это уже совсем другой вопрос.
Ну искать тянок на СЗ это ещё тяжелее, чем работу, лол.
Там на 1 тян 9 кунов и многие тян просто ради внимания сидят.
>Ну искать тянок на СЗ это ещё тяжелее, чем работу, лол.
>Там на 1 тян 9 кунов и многие тян просто ради внимания сидят.
Да вот знакомый говорит, что находит, как раз из того места, для которого этого бота пытаюсь написать а вместо этого капчую. Так-с, надо собраться.
Да я тоже находил. Можно, конечно. Но лучше без тян и без работы, чем с тян и с работой жить.
До фаерболлов 4.5 года, не хочу быть магом.
Подскажите где можно про регулярки подробно почитать
Пробовал доки осилить, но ахуел от сложности повествования а регулярки и без этого трудно даются.
И заодно подскажите стоит ли их полностью изучать или же только актуальный минимум для работы?
https://stepik.org/course/107335/syllabus
>И заодно подскажите стоит ли их полностью изучать или же только актуальный минимум для работы?
Они не настолько сложный и учить там не так уж и много, но по началу череп плавиться от них.
дай Бог тебе здоровья
https://www.packtpub.com/product/not-set/9781801076944
Теория.
Практика и ещё теория есть у фриддла и ещё есть кукбук от орайлей. Там половину можно не читать, потому что для всяких велосипедных дотнетовских движков. Тебе будет достаточно православного pcre, который почти везде.
Алсо, рекомендую другие курсы чела из ссылки выше, у него много всего интересного про парсинг и т.п.
самое то для вката, с практическими заданиями
>пятая часть от базовых фич, самые основы
это ложь
Ну сравни https://www.regular-expressions.info/refflavors.html
Это тоже не идеал, но намного лучше покрытие.
Изучать можно разными способами, еблан же тут только ты.
Тот курс отличный для регулярок с практикой и отличным объяснением принципов. https://regex101.com/ Ещё стоит добавить этот сайт, который визуализирует результат и попутно описывает, что регулярка делает
В твоей хуйне даже базовейшего баундари нет, о чем говорить?
Вообше, питонья re весьма каличная, есть более продвинутая regex.
> В твоей хуйне даже базовейшего баундари нет, о чем говорить?
есть там о баундари. говорится ровно столько, сколько нужно о нём говорить
А модификаторы есть, \A \z есть, лукэраунды есть?
Хули ты упираешься? Это заметка уровня вкатуну нагуглить, набрутфорсить простейшее решение перебором комбинаций закорючек и забыть об этой хуйне.
4/5 нужного для работы там есть, и сразу с полем для практики. самое то для вката и решения своей первой задачи
всё остальное приложится чтением доки, когда потребуется сделать что-то нетипичное
> заметка уровня вкатуну нагуглить, научиться решать 90% задач за 1 час
поправил. и да, так и надо
а ты что скиданул? глобальный регексп референс, где описываются особенности имплементации ворд баундари в языке программирования Tcl. нахуй эта информация вообще кому-то всралась? из-за таких как ты люди боятся регулярок и думают что это ебать заморочки
То что я скинул, это глобальный референс что вообще есть, с божественным перлом наверху пирамиды.
Выискивать какие-то вайтспейсы или не вайтспейсы можно и средствами языка, регулярка это суть кодогенерация для автоматизации такой рутины. Чем более наворочен движок, тем больше он может автоматизировать.
всем похуй на пэрл, челик
регулярки в 99% случаев нужны, чтобы спарсить нужные тебе данные из кучи мусора
> Выискивать какие-то вайтспейсы или не вайтспейсы можно и средствами языка
средства языка полезны, чтобы подготовить мусор на удобоваримые куски, не загоняя трехэтажные костыли в регулярку
Ты ещё мал и глуп и не видал больших залуп, как говорится.
Копайся в своем мусоре, пока задачки поинтереснее не вылезут, где ты нахуевертишь велосипед, который одной строчкой решается.
>ты нахуевертишь велосипед, который одной строчкой решается
жестко ты ща регулярщиков приложил
Привожу тебя опять же в пример перл, с которым в 1987 смешной усатый челик сделал си без мозгоебли, где можно было однострочником (даже не скриптом) заменить убогую простыню на си. И туда же он вхуярил все тогда популярные грепы, седы, авк, баши и прочее.
Оттуда же растут все теперешние удобства. Хотя бидон демонстрирует желание всё сделать чтобы не как в перле, это очень забавно.
Наоборот - это как тебя заставляют писать в косую линейку, а потом пиши как хочешь. Перл взлетел слишком рано, чтобы его поняли. Потом усач запилил новый язык, который интересный, но к оригиналу имеет минимум отношения, а кор группа основного слилась по мере его депопуляции.
Но он всё равно остается в базовых пакетах большинства дистров, даже гит там как-то завязан. Такие дела.
Пиздец, ну ты и тупень, я ебал!
Берешь и взыодишь таймер на сутки по событию с привязкой к юзер айди.
В чем проблема вообще?
ну наверное в том, что я вкатываюсь в питон со вчерашнего дня
Гугли python schedule task. Что-нибудь найдешь подходящее
Т.е. Перл это мертвый язык без задач не прошедший проверку временем? Ну ясно, это и так все знают.
Поясните чего я не так понял?
class Babushka:
....hui = True
....def dedushka_verification(self):
........if self.hui:
............print('this is Dedushka')
И проебать строки только для того чтобы перекладывать переменные из пустого в порожнее? Как это слишком тупо. Тогда уж проще сделать словарь с с коротким именем и из него переменные брать _['hui']
Неужели так и задумано и иначе никак?
Если у тебя какие-то там вычисления то обьяви их как статикметод и передавай все туда параметрами, а если у тебя будет 15 параметров то пошел нахуй.
>если у тебя
Чел. Я не знаю что у меня будет через неделю или год, просто учусь и прикидываю варианты, может и 15 переменных понадобится и мне эта хуйня кажется очень неудобной. Чому бы не сделать видимость как в остальном пространстве?
Ладно, наверное так сделали из за вариантов наследования или я не знаю зачем, нет других вариантов и ладно. Буду знать.
>>601824
Хорошо.
Куда жать чтобы сделать в нем КЛАССИЧЕСКОЕ поведение - нажали Crtl+S сохраняемся, до тех пор файл старый лежит на диске без изменений.
Хочу создать резюме с фейковым ФИО, чтобы публично выкладывать и рассылать, а на собесе представляться реальным. Нормально или плохо воспримут?
Зачем?
Этот джедай прав кстати.
Ты совсем тупой чтоле? Пошуруди в настройках.
Найдешь где сюда доложи. Все, давай выполняй задание, время пошло!
Для меня автосейв наоборот был таким облегчением. Вообще не понимаю, нахрена мы мудохались с этим сейвом? Файлы регулярно просирались. Что это за массовый идиотизм был.
Это настолько базовая хрень, которая объясняется вообще везде, что лучше послать тебя в гугл.
>Заметьте, что перегрузка методов(method overloading) — создание методов с одним и тем же именем, но с разными типами аргументов не поддерживается в питоне.
Меня вот это предложение смутило. То что в наследуемом классе можно перезаписать метод с таким же именем это как бы понятно, но что имелось в ввиду в гринтексте?
Это в шарпе такая хуйня есть и может ещё где - можно делать методы с одинаковыми именами, но с разным набором параметров. И будет вызван тот, где набор параметров подходит по типам.
В питоне такая хуйня делается ручками, проверяя, что там пришло
Кажется начинаю понимать. Пиздец конечно УЧИТЕЛЯ в интернете так обьясняют что только силльнее непонимаешь, наверное специально сабботируют вкатунов, чтобы они не вкатывались в умирающий айти рынок.
Большинство учителей это и ест те же самые вкатуны, которые после курсов сами пошли их продавать.
Зачем учителю или вообще помидору сидеть и в интернете бесплатно делать то, за что он деньги получает работаю по 8–10 часов в день? Ну вот отхуярил ты весь день, объясняя долбоёбам джунам, в чём они не правы в кодревью, потом вечером пришёл домой и вместо пивка/кота/секса с женой или проверки уроков у детей ты садишься за комп и начинаешь отвечать бесплатным долбоёбам где-то в интернете, которых даже не знаешь. Просто из альтруизма ёбаного??
Я чё-то логики не вижу.
У Питонистов есть такой кадр — Тишка. Грустное чмо без личной жизни, 20 часов в сутки сидит в своём чате и отвечает на одни и те же вопросы. Но не все ж такие святые и продвинутые. Большинству похуй. И учат в интернете тебя такие же как ты — запомни. Когда учишь кого-то, то ллучше учишься сам. А потом ты это дело бросаешь и начинаешь работать за деньги.
>ты садишься за комп и начинаешь отвечать бесплатным долбоёбам где-то в интернете, которых даже не знаешь
Я понимаю ещё если это какой-то интерсный нетривиальный вопрос. Но блять, 90% по питончику - элементарное говно от вкатунов, которые не могут написать запрос в ёбаный гугл.
Я вообще не понимаю какие могут быть вопросы по питону, кроме как каких-то дебрей cpython или либ. Он ж блять прозрачный.
Это когда ты понимаешь приблизительно, как всё работает.
А так это просто кейворды ебучие, которые надо заучивать.
Ну так и изучи как работает, лол. Посмотри сишку, посмотри лекции по cpython и питоньим структурам и база будет.
Это я с точки зрения вкатуна. Им и плюшевый бидон страшен, а тут сишки-хуишки.
Это в тебе спесь говорит, гордыня и тщеславие, а ещё самовлюбленность и вот это всё. Со времен древнего мира так работает обучение - вот есть микрочелик который ничего не знает и есть учитель, который ему объясняет ЭЛЕМЕНТАРНЫЕ вещи. Потому что они элементарные только для тех кто их понял.
Можно пиздить личинуса за то что он алгебру понять не может, а можно метнуть в него учебник и сказать изучай там всё написано, но специально для этого есть учителя.
Чтобы понять рекурсию нужно понять рекурсию.
И как мне скочать версию 3.9 например? Там исходники только на сайте выложены, мне их откомпелировать чтоле придется?
на сайте питона ты можешьс качать любую версию и использовать их одновременно.
Суть такова, что есть такой плоский массив
[name1,
id1,
id999,
id2,
name2,
id3,
id999,
id4]
И этих id буквально миллионы и главное они могут повторяться под разными name. А задача такая: вот тебе куча id тысяч 5 и надо в этих миллионах быстро найти все name к которым эти id принадлежат.
У меня до этого как-то был bisect на эту задачу напрограммирован, но там пиздец, делал давно когда только питон осваивал. А сейчас база разрослась ещё больше и вот думаю что скоро переделывать придется.
У меня такой вариант есть отсортировать все id с сохранением их изначального индекса и потом просто делать бинарный поиск -> что-то находится смотрим его изначальный индекс т.е. под каким name это id стояло - всё задача выполнена.
Второй вариант это словарь.
id5
Вопрос. Разве импортирование материнского каталога дейттайм не включает дельту (дочерний), и почему приходится отдельно подключать?
Я пытаюсь понять всю эту билиберду с match-case...
Но застрял, не вижу подходящих примеров.
Вот, смотрите. Разрабы говорят, что это мол не просто case, сравнивающий переменную с заданными шаблонами, а ни хухры-мухры pattern matching!
Заебись, мне нравится. Но как применять эти сраные паттерны?
Вот, например, пик 1. У меня есть паттерн isalnum, но я не понимаю, как его применить к вводимой строке, что написать вместо звёздочек?..
В случае if-elif-else это получается не так красиво (и таки там есть, где ошибиться), но в целом фичасто и понятно, но я не нашёл ни одного примера с подобным паттерном.
И всякие другие проверки... Например,
> from ipaddress import ip_address
Даёт нам возможность проверить, является ли строка IP-адресом. Правда. его нужно обернуть в функцию (пик 2) для того, чтобы получать bool. но это детали.
Но я не вижу, как проверять строку на соответствие такому паттерну.
Поясните, пожалуйста.
>import datetime
Импортирует весь модуль.
>from datetime import timedelta
Импортирует конкретную функцию.
В первом случае в коде. для вызова timedelta тебе нужно написать
> datetime.timedelta()
Во втором:
> timedelta()
Ещё в первом случае всё остальное из модуля, кроме перечисленных функций (в данном случае одной функции) окажется недоступно тебе.
Бонус: если написать
> from datetime import timedelta as td
То вызов в коде можно сделать так:
> td()
Ааа, спасибо
Тут бд вроде sqlite просится, на самом деле.
>У меня такой вариант есть отсортировать все id с сохранением их изначального индекса и потом просто делать бинарный поиск
В питоне будет медленее, чем хэшмапа. Плюс, тебе будет сложнее добавлять новые элементы. В целом, проблем с со стандартной мапой не должно быть, просто нужен эксперимент. Если будет не устраивать -- можно сделать модуль на C/C++.
Мне с дивана сложно сказать характер нагрузок и будет ли, допустим, количество элементов расти со врменем.
Но вообще, если у тебя нет цели сделать архиоптимизированное решение, то просто пили мапу. Просто сделай сначала прототип. Питон конечно жручий до памяти, но 10 млн элементов - это не так много.
в твоем случае матч бесполезен, ты проверешь содержимое строки, а не матчишь тип, значение или структуру
В самом PEP как правило есть примеры использования нормальные из реального кода или даже из самого питона.
Иди оленю в жопу, черт лысый. Переведи чо они хотят от меня? По какому принципу у них отбирается последовательность?
Они хотят чтобы моя последовательность не опустилась ниже нуля?
Задача о максимальной сумме подмассива заключается в нахождении максимальной суммы непрерывной подпоследовательности в массиве или списке целых чисел
Легкий случай - когда список состоит только из положительных чисел и максимальная сумма равна сумме всего массива. Если список состоит только из отрицательных чисел, вместо этого возвращается 0.
Считается, что пустой список имеет нулевую наибольшую сумму. Обратите внимание, что пустой список или массив также является допустимым подсписком/подмассивом.
Крч , тебе надо найти подмассив сумма элементов которого будет максимальной по отношению ко всем остальным возможным подмассивам
юзай норм переводчик
Почему бы тебе не сделать просто словарь, где ключами являются id, а значениями множества имён?
Не знал что будет быстрее, словарь или бинарный, но уже остановился на словаре.
Говорят что программирующим нейросетям будущего будет нужен оператор, который будет истолковывать им задачу. Папавси, скайнет.
а сколько времени нейросетям нужно что бы закосплеить фильм терминатор
да не обижайся ты
Это скорее всего тим-лид сеньор. Они на подсознании вкатунов чувствуют и душат , дабы избавиться от будущей конкуренции
Есть датафрейм, с которым надо поработать в pandas. В нем, как видите на картинке year и quarter. Нужно добавить колонку с нормальной датой в формате год-месяц-день (день пусть будет 1 число, допустим). Как это сделать?
Сначала я мудился с pd.to_datetime , потом понял, что наверное надо бы сначала создать колонку с месяцами, через лямбда функцию, например, преобразовать quarter в month, но голова уже ничего не соображает и выходят ошибки.
А может и другой способ есть.
Подскажите, пожалуйста.
>потом понял, что наверное надо бы сначала создать колонку с месяцами, через лямбда функцию, например, преобразовать quarter в month, но голова уже ничего не соображает
ты че даун? это встроенная в пандасе функция, и ты правильно изначально мыслил
раньше тож на codewarse сидел , 5 кю , но потом открыл leetcode и теперь охуеваю от своей крутости
имхо - да
1 - сложность задач выше (easy на leetcode - 6-5кю на codewars)
2 - графики скорости выполнения кода и памяти и сравнение с другими
3 - более удобный тестер (можно свои тесты делать , более подробный feedback на ошибках)
4 - есть раздел с задачами которые задают на собесах
5 - большой онлайн , ответ на вопрос не заставит себя ждать
Чекну. Хотя пока прекратил задачки решать. Столько документации ещё надо прочитать и пару книжек, а на их решение уходит слишком много времени.
Без звания майора минимум сюда в модераторы не берут, ну майров и хменов ещё.
По идеи тут твои паспортные данные видны
Ты думаешь ты пошутил, но двач на серверах мейла, и вк на серверах мейла, у них весь твой цифровой след, сложить 2 и 2 и найти твою страницу не составит труда.
>откуда она знает больше гугла?
Интерполяция/экстраполяция. По узкой теме у гугла будет 5 ответов, а сеточка способна, опираясь на них, размазать бесконечное поле ответов. Не все, конечно, правильные, но тебе повезло.
Какая отвратительная рожа блевотное выражение ещё и зуб типа торчит и на животное похоже. Фу мерзко
import tkinter
import random
import pyautogui as pag
import time
from tkinter import *
class Programm():
kick = ["q","w","e"]
turn = 0
done = False
heal = ["1","2","3","4"]
def __init__(self,Title):
self.Window = Tk()
self.Window.title(Title)
self.Window.config(width=360,height=160)
self.Display = Label(self.Window, text="Начало программы")
self.Display.place(x=50, y=20, width=240, height=30)
self.Button1 = Button(self.Window,text="Начать",command=self.Button1Click)
self.Button2 = Button(self.Window,text="Закончить",command=self.Button2Click)
self.Button3 = Button(self.Window,text="Карман",command=self.Button3Click)
self.Button1.place(x=20,y=70,width=100,height=30)
self.Button2.place(x=240,y=70,width=100,height=30)
self.Button3.place(x=120,y=120,width=100,height=30)
self.Window.mainloop()
def Clicker(self, done,kick):
self.kick= kick
while not done:
time.sleep(1)
pag.hotkey(random.randrange(kick))
time.sleep(random.randrange(1,2))
def Button1Click(self):
self.Display.config(text="Программа работает")
self.Clicker(done=False)
def Button2Click(self):
self.Display.config(text="Программа остановлена")
self.Clicker(done=True)
def Button3Click(self):
self.Display.config(text="Хил используется")
Window = Programm("Заголовок")
import tkinter
import random
import pyautogui as pag
import time
from tkinter import *
class Programm():
kick = ["q","w","e"]
turn = 0
done = False
heal = ["1","2","3","4"]
def __init__(self,Title):
self.Window = Tk()
self.Window.title(Title)
self.Window.config(width=360,height=160)
self.Display = Label(self.Window, text="Начало программы")
self.Display.place(x=50, y=20, width=240, height=30)
self.Button1 = Button(self.Window,text="Начать",command=self.Button1Click)
self.Button2 = Button(self.Window,text="Закончить",command=self.Button2Click)
self.Button3 = Button(self.Window,text="Карман",command=self.Button3Click)
self.Button1.place(x=20,y=70,width=100,height=30)
self.Button2.place(x=240,y=70,width=100,height=30)
self.Button3.place(x=120,y=120,width=100,height=30)
self.Window.mainloop()
def Clicker(self, done,kick):
self.kick= kick
while not done:
time.sleep(1)
pag.hotkey(random.randrange(kick))
time.sleep(random.randrange(1,2))
def Button1Click(self):
self.Display.config(text="Программа работает")
self.Clicker(done=False)
def Button2Click(self):
self.Display.config(text="Программа остановлена")
self.Clicker(done=True)
def Button3Click(self):
self.Display.config(text="Хил используется")
Window = Programm("Заголовок")
К слову, в функциях после self тоже прописывал, в коде их нет ,ибо не работали. Бля, я вот хуй знает как это делать
Ладно, смог в другой папке сделать. Возможно и этот в какой другой папки появляется. А тот путь который пишется реальным не является
И не надо было просто давать имена файлам.
В таком случае они создаются в папке с репизотория.
>> Если каунтер вывалился в минус - False.
Читай внимательнее.
Капча с требя даблами подтверждает.
Однострочники эти ваши
import functools
functools.reduce(lambda p, c: p + [c[0]] звездочка c[1], {"aaa":2, "bbb":6, "ccc":3}.items(), [])
Это копия, сохраненная 3 апреля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.