Вы видите копию треда, сохраненную 1 августа 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>2037483 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
#######################################
ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года
Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Исходник: https://dumpz.org/bASGKD8cCFDf
Какие плюсы, минусы и подводные камни у них?
Вижу невооруженным глазом, что PIL шакалит картинки. Но и без него не могу обойтись, потому что большим картинкам я хочу делать resize.
Заранее благодарен за ответы.
В первом случае ты сохраняешь оригинальную картинку, во втором пережимаешь с потерями.
В чем вопрос я не понял. Если надо обрабатывать, то придется пережимать, хули делать. Можешь сохранять в пнг, но проебешься по размеру.
Вопрос, почему PIL пережимает? Можно его как-нибудь попросить не пережимать, а сохранять как есть? Не нашел в гугле, искал.
>Вижу невооруженным глазом, что PIL шакалит картинки.
Ты можешь выставить свой параметр компрессии, чтобы качество оставалось высоким. На память не помню каким ключом, смотри доку.
Потому что он загружает картинку и создает свой объект, потом этот объект надо сохранить в каком-то формате == пережать в случае лосси форматов.
В принципе, ты можешь загружать в pil и смотреть размеры, если большой, то ресайзить и пережимать, если нет, то сохранять файлом, а не через сам pil.
>Не нашел в гугле, искал.
Как это возможно?
google> pil image save quality
первая ссылка даёт тебе ответ
>The image quality, on a scale from 1 (worst) to 95 (best). The default is 75.
img.save('test.jpg', quality=95)
Даже при quality 100 проебывается качество у жпега.
У него нет плюсов, это главный минус.
Тебе ещё стоит глянуть на то, как выбирать разные алгоритмы для ресайза, от них очень сильно зависит итоговое качество, как разные мелкие детали будут ресайзиться. А так же посмотреть на решарпинг после того, как размер уменьшаешь.
Вот эти две вещи критически сказываются на том, какая у тебя картинка будет в итоге.
Это тоже всё есть в PIL. Алгоритмы смотри по ключевым словам BICUBIC и LANCZOS.
Нужен джангист, чтобы актуализировать этот пункт:
> — А как учить джангу? Нахожу только книги по джанге 1.х
> У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
Я сам давно джангу не трогал, 3-ю версию вообще не трогал, надо актуализировать с учётом, что сейчас 3-я версия.
>>55527
>Нужны питонисты для указания современных книг и курсов
Я частично питонист и уже очень давно. Проблема в том, что за курсами не слежу, не актуально. Можно было бы составить FAQ, но это же надо на какой-то площадке делать, там аккаунт для этого заводить. Я бы составил что-то от себя по тем частям, которые знаю. Другие аноны может что-то ещё составили.
Надо гугл-док составить с доступом по ссылке. Чтобы каждый мог добавить что-то свое.
Вопрос только кто возьмет к себе это на Гитхаб?
Почему ты не черный русский?
Вопрос в том, что этот Гитхаб должен держать кто-то ответственный и активный. А я тут 2 тред сижу, сорре.
Давай сделаем pull request с readme.md к предыдущему ЧаВо https://github.com/TheKnightsWhoSayNi/info
Ящик на рамблере, вроде не требует телефона даже для регистрации, гитхаб тоже только почту просит. Всё в традициях анонизма.
Можно расшарить доступ на несколько аккаунтов.
>Давай сделаем pull request с readme.md к предыдущему ЧаВо https://github.com/TheKnightsWhoSayNi/info
На аккаунте последняя активность 2015 года. Мёртвый акк, автор что-то сделал и забил.
Нужен аккаунт, чтобы к нему доступ у нескольких человек был.
Вопрос 1) Как правильно привязать y и n что бы при вводе строчной и прописной значений был одинаковый результат? 2) Как убрать изображения тех же y и n после ввода?
Можете гавном кидаться, совсем недавно начал изучать питон
Отлично, помогло, запомню на будущее. Теперь буду разбираться как написать код так, что бы эти значение не были видны после ввода.
Короче вот такое создал
https://github.com/python-2ch/faq
там пока абсолютно ничего нет
Кто готов этим заниматься, можно в коллоборацию вступить, я открою доступ на влив.
Я может сегодня-завтра займусь тем, чтобы хотя бы самую базу составить.
Тот FAQ, что есть, на мой взгляд совсем протух, чтобы его за основу использовать.
Я думаю, что как-минимум нужен FAQ, и ещё можно репозиторий с демо-примерами сделать разных фишек.
Спасибо
Может быть вот это поможет - https://stackoverflow.com/questions/29196868/how-to-hide-something-that-you-have-already-printed-in-python
Сууука!
> Because we can’t remove items from a list or group within a for loop, we have toloopovera copy of the group.
Почему?
Это специальные ограничения, чтобы избежать многих проблем и сделать возможными какие-то оптимизации.
Слишком много граблей может быть, вот и решили просто заблокировать такую возможность.
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
Потому что итератор не в курсе, что что-то меняется и ты получишь ебанутый результат. В некоторых случаях прокатит, а в некоторых нет, поэтому принято не рисковать, а явно работать с копиями или индексами.
https://ideone.com/vRgAXc
>>55800
Норкоман.
Каждое значение само по себе пара.
Отключает бэкслеш, на котором висят всякие последовательности вроде \r \n и некоторые другие штуки. В случае шиндовс путей без этого надо эскейпить через \\.
Получается если тебе нужно к примеру залупиться через лист и удалить какие-то объекты, то ты будешь это делать через копию, а внутри цикла пропишешь условие для удаления объекта из настоящего листа? Он получается на каждом проходе будет новую копию создавать?
И вообще не дает ли это лишней нагрузки, нужно же ведь копию создавать, хранить где-то?
Ты просто проходишь по списку и создаёшь новый список, без удалённых значений из старого.
>И вообще не дает ли это лишней нагрузки, нужно же ведь копию создавать, хранить где-то?
Всё это работает быстро, если списки небольшие. При этом само по себе удаление операция дорогая, это O(N) в среднем, точнее чем ближе к началу, тем дольше. Если тебе надо несколько элементов удалить, то быстрее будет пересоздать список.
Копия создается один раз на старте, а не на каждом проходе.
Оверхед есть по копии, да. Если у тебя реально большой список то есть другие способы. Можно итерироваться задом наперед, можно завернуть в компрехеншен или генераторное выражение.
python3 -m build
выдаёт ошибку
AttributeError: 'builtin_function_or_method' object has no attribute 'split'
Нихуя не понятно, Traceback возвращает залупу в рот ничего интересного, там вообще нет инфы о каких либо ошибках в конкретно моих исходниках, только длинющая проповедь с немоими файлами, типо _in_process.py или dist.py
Сама прога вроде пашет нормально.
UPD2 помогла замена в файле setup.py
with open("REAMDE.md", "r", encoding="utf-8") as f:
_____description = f.read()
setuptools.setup(
______ ...
______ long_description =description
______ ...
)
на
setuptools.setup(
_____...
_____long_description=open("README.md").read(),
_____...
)
Не знаю с чем это связано, буду рад услышать предположения
Так и лови.
except hui.pizda.HuiException
или
from hui.pizda import HuiException
except HuiException
if как правило на порядки быстрее файловых операций, так что никак не ударит
впрочем если ты прямо в выражении проверки условия в if будешь выполнять файловые операции...
Везде так
Все вкатыши пошли на курсы с гарантией трудоустройства и трудоустроились, очевидно же.
Так джунов никто и не ищет, смотри миддлов
Я запускаю питон через termux , но там еще нужно всякие библиотеки устанавливать и комадную строчку писать.
Как просто реализовать апкашку что бы был интерфейс для запуска + оно все библиотеки устанавливало?
Он в любом случае что то да будет принимать, если есть соединение.
Джун по ХХ это "опыт работы 1-3 года". Таких вакансий много. Мало вакансий стажёров без опыта.
На ХХ надо выставлять опыт работы один из "без опыта", "1-3 года", "3-6 лет", "свыше 6 лет". "без опыта" никто не ставит, потому что заспамят совсем неадекваты, а нормальные люди как раз испугаются.
Когда хотят миддлов, ставят минимум 3 года.
Есть вариант делать это через select'ы. Но в 2021 надо работать с asyncio, вот как раз для этого и предназначен в первую очередь, в кишках там те же select/epoll.
так мне асинхронность не нужна, сервер по идее должен работать как-то так:
дельта1
дельта2
бесконечный цикл
____создание сокета первого клиента
____отправка дельт первому клиенту
____ожидание данных
____изменение дельта2
____закрытие сокета первого клиента
____создание сокета второго клиента
____отправка дельт второму клиенту
____ожидание данных
____изменение дельта1
____закрытие сокета второго клиента
Если последовательно, то в чём проблема? Пример из документации питона просто один-в один то, что тебе нужно
Нахера ебать себе мозги низкоуровневой хуйней которую ты в любом случае - инфа 100% - не сделаешь как следует когда есть готовые варианты с fastapi, aiohttp или flask на худой конец
Ты же в курсе что можно послать HTTP запрос на другой сокет локалхоста вообще как нехуй? И это в целом норма для приложения которое разбито на сервисы
Да, понимаю, в Java, там создается ПРИВАТНАЯ переменная класса, и её задать/прочитать напрямую нельзя, только через геттер/сеттер. И это, чиорт возьми, понятно, мейкс сенс.
А в Питоне? Ок, создали в классе приватную переменную (self.__x) И что же, дальше объявляем через декоратор сеттер/геттер и получается, что можем обратиться к этой переменной, как если бы она была просто публичной. Типа: object.x = 5 (присвоили значение). В чем тогда смысл? Ведь можно просто сделать открытый self.x и точно так же обращаться к нему?
А в чем смысл set и get в ЖС?
чтоб создать интерфейс для чтения/записи данных определенным образом
Сокеты это протоколы низкого уровня. HTTP это относительно сложный высокоуровневый протокол с какими-то возможностями и большими ограничениями.
Если тебе нужен именно сокет, чтобы обменяться данными, то какое отношение к этому имеет http? Зачем нужны вот эти здоровенные обвязки, чтобы потом поверх них пытаться изобрести функционал обычного сокета?
Вот у анона задача >>57933 . К нему коннектится клиент, он клиенту посылает данные, потом клиент что-то делает и посылает ответ. Для этого HTTP не подходит, потому что в HTTP клиент посылает данные, и потом уже от сервера ждёт ответ, при этом после получения данных с сервера клиент уже ничего не может послать, нужно новое соединение устанавливать.
В то время как на базе обычных сокетов и tcp это реализовать очень легко.
>Ведь можно просто сделать открытый self.x
Поведение свойства x может быть достаточно сложным. Например, это может быть количество элементов с каким-то свойством в объекте, размер буфера и т.п.
Геттеры-сеттеры это не синтаксический сахар над
object.x
Это синтаксический сахар над
object.get_x()
object.set_x(value)
Они нужны, например, для того, чтобы можно было валидацию данных добавлять, чтобы ты не мог некорректное значение в переменную записать. Либо когда запись требует дополнительных действий, перестройки индексов, внутренних структур данных и т.п. При этом, чтобы для пользователя сохранился простой вид object.x, вместо object.set_x()
проблема в том, что во всех примерах создают сервер для одного клиента, я не понимаю как нормально реализовать переключение между клиентами
Отрываешь сокеты и пихаешь в лист, потом итерируешься по нему.
В примере из доки клиенты подключаются последовательно. Сначала один, затем другой.
Если тебе нужно работать с несколькими сокетами, причём ты не знаешь, какой клиент подключится первым, или/и требуется работа с несколькими клиентами одновременно, то тут только вариант делать многопоточность или асинхронность. Или переизобретать кривым способом асинхронность.
На самом деле тебе нужно выделить время, изучить, как работать с многопоточностью и/или асинхронность, и написать уже так. Потому что в любом случае понадобится.
Я бы советовал глянуть на asyncio подход, раз ты с сетями работаешь.
>Для этого HTTP не подходит, потому что в HTTP клиент посылает данные, и потом уже от сервера ждёт ответ
...
Вообще-то нормальная практика это передача callback-url
Спасибо добрый анон. Теперь вроде ясно.
Переменная
Так ее пишут как правило чтобы намекнуть что это хуйня и по факту она не используется:
for _ in range(10): print("hui sosi")
Переменная, которая никак не используется. Это больше из традиций Go, где ты обязан использовать переменную, иначе не скомпилируется, и только для _ предусмотрено специальное исключение. В питоне как-то особо с этим и не сталкивался.
https://www.kaggle.com/sandorkonya/ct-lung-heart-trachea-segmentation [1]
https://www.kaggle.com/polomarco/chest-ct-segmentation [2]
Понадобился, значит, мне датасет [1] с разметкой лёгких. Открыла файлы в Jupyter через pynrrd, но нашла только маски. Самих ct-снимков обнаружено не было. Погуляла по окрестным ссылкам, нашла датасет [2] из слоёв-пронумерованных жипегов, и со снимками, и с масками.
В описании сказано, что датасет [2] был получен из [1], но, чёрт, откуда снимки?
Кто работал с .nrrd, помогите разобраться, прошу. D :
А что ты умеешь? Пролистай этот тред и прошлый. Были рекомендации с обоснованием.
Какие пет проекты на питоне написать, чтобы вырости до junior'a на ту же самую удаленку?
Чтобы зацепить postgresql,celery, etc и в целом получить какой-то опыт
А не тупо писать всякие CRUD бложики
Спасибо
Нихуя, это уже квест масштаба не только работы но и жизни.
Буду рад любой инфе за пет проджект
Мимо опыт веб макакой/верстальщиком
volumes:
- ./img:/img
- ./img/products:/img/products
volumes:
- ./img:/img
- ./img/products:/img/products
>Тип файлы с хоста отображаются в контейнере, но не наоборот.
Не очень понятно, что значит "наоборот".
По идее, если ты запускаешь контейнер с такими настройками, и после запуска пишешь в эти каталоги данные, то они должны сохраняться на хосте.
Если ты хочешь, чтобы уже существующие данные скопировались на хост, то это не сработает, конечно. Потому что поверх существующих данных ты монтируешь что-то.
Попробуй подключиться к работающему контейнеру и посмотреть, как изнутри каталог выглядит.
ты тянка? что за котёнок на пике?
Вот смотрите у меня есть база паспортов, мне нужно их отпарсить и определить валидные. Пришло время сделать класс,
но тут возникает вопрос, с каким обьектом будет работать класс?
Вариант 1: Экземпляр класса - база. В класс отдаём весь массив паспортов.
Вариант 2: Экземпляр класса - парсер. Создаётся экземляр класса, и где-нибудь в цыкле вызывается метод класса для каждого паспорта.
Вариант 3: Экземпляр класса - паспорт. Для каждого паспорт из базы создаём свой экзепляр.
Первый вариант выглядит самым простым для реализации, но с точки зрения логики кажется не правильным, т.к. в конечном итоге
класс работает с каждым паспортом в отдельности. Второй вариант более логичен, но парсер же не материален, т.е. не представляет реальную сущность, он не описывает свойства объекта, он описывает свойства работы с объектом.
Ну и третий варинат с точки зрения оптимизация и кода выглядит как говно, создать кучу обьектов, которые тут же будут уничтожены, но за то с точки зрения модели данных верный.
Что думаете аноны?
Точно! Спасибо.
Да хоть по частушкам.
Пиздец вы безинициативные. Раньше босые десять километров через лес ходили в -40, чтобы почитать в сельской библиотеке лутца, а у вас мильйон курсов, книг, статей и презентаций, учи не хочу.
Если ты няшний можешь найти сеньёра в годах
Выбираешь конкретную задачу = > Идешь по курсам = > Полируешь 1000-страничными книгами и документацией
> Единственный способ - это учить по книгам?
Какие же вкатыши ебланоиды, я просто охуеваю от вас. Раньше не было вообще нихуя. НИ ХУ Я не было, сука. У тебя есть возможность не поднимая жопы написать: "как мне, ебаному дауну, выучить питон?" в любом поисковике интернета. И тебе выдадут гайды, курсы, бесплатные видосы, бесплатные сканы книг. СУКА ТЫ ЛЕНИВЫЙ ХУИЛА ПИЗДУЙ УЧИ УЧИ СУКА УЧИ
Вот этого двачую. Сейчас Войтивайти может буквально даже умственно отсталый ребенок который не умеет говорить, а вкатыши на харкаче ноют, что им, сука, КНИЖКИ НУЖНО ЧИТАТЬ.
>Это зед шоу?
Да.
>Вроде же говорят, что хуйня
Ну, я предпочитаю заценить сам. Скачал уже основную книгу, пока не заценил, но издание "ещё глубже" хотелось бы иметь просто на пк на случай если какая-то хуйня из разряда чебурнета случится, лол.
>ещё и переводное
В каком плане переводное?
> Напишите свой собственный генератор псевдослучайных чисел, если число выходит чётным, выведите "NUM", в остальном случае выведите число
Я не понимаю нахуя нужно такое решать в моей ебучей шараге + у меня ничего не получается. Что делать, анон?
https://ebanoe.it/2020/08/26/junior-for-500-dollars/
> обходить блок РКН
Потом ещё придётся мотоциклы на картинках выискивать, чтобы ПРОЧИТАТЬ это нытьё. Не написать что-то, а тупо прочитать. Совсем ебанулись они.
С первого взгляда смотрится как нормальная бизнес-модель. В тебя вроде как инвестируют, заинтересованы в твоём успехе, а получают процент только в том случае, если ты устроишься. Вроде как очень честно и адекватно.
На самом деле это наебательство. Потому что какой-то заинтересованности, чтобы реально тебя учить, нет. Ставка на то, что ты мотивирован и очень хочешь вкатиться, и поэтому шансы есть.
Ты тупо читаешь книжки, которые тебе рекомендуют. Их затраты невелики. Пролетишь - ну и хуй с тобой. Если же устроишься после их курсов, или после того, как после их обучения будешь год учиться сам, или пройдёшь платные курсы - ты будешь им платить деньги.
В общем реально для них самая выгодная модель не в том, чтобы тебя учить, а в том, чтобы набрать много лохов, и не вкладывая толком ничего в них, стричь тех, кто всё-таки сможет сам устроиться.
Хотя нет, там наебательство ещё проще и такое более кондовое. В общем богата Россия на разводилово.
ВРЕТИИИИ
Кто-то встречал библиотеку нормальную для работы с инстограмом? Раньше был instabot но он вроде загнулся...
Или вы такими детскими хуйнями не занимаетесь и все тут большие дяди с интернет комерцией?
Понятно, спасибо тогда и на этом :)
pypi.org. Вообще, pip сам ищет пакет подходящий для твоей версии питона по тегам(вот таким https://www.python.org/dev/peps/pep-0425/#details ), и если создатель пакета все указал правильно, то проблем быть не должно.
По разрешению конфликтов, значит, команда pip check должна находить конфликты, но разгребать самому придется. Автоматически разрешать конфликты должен уметь Pipenv, вроде еще Poetry, и что-то еще было, не помню. При том каждый из этих пакетных менеджеров (или как они там называются) использует свой файл зависимостей по типу requirments.txt, только другой. Я лично ничего из этого не использую, ничего конкретнее не подскажу.
Write a function named x that takes a string as its only parameter. The function should cast its input parameter to an integer and add 3 to it. Don't forget to return the result.
For example, calling x("0") should return 3 and calling x("123") should return 126.
Hint: Use the int function to cast a string to an integer. For example:
int("123") == 123
You can store the result of the function call into a variable if you prefer:
result = int(string)
Then add 3 to the result before returning it.
Что там решать, они уже сами решили.
Ребенок - это я. Долгое время справлялся, но тут уперся в стену. И решений готовых нет, потому что сайт не очень популярный.
Спасибо. Посмотрю потом что там за задачки. Эта уж слишком простая.
Спасибо, хоть один нормальный человек.
пик_рандом
Если я правильно понял, то просто заводишь одну переменную и по открытии каждого файла в нее добавляешь контент, в чем проблема?
Какая такая? Что бы интерфейсы клепать?
По смыслу всё ок, это ты где-то обосрался.
Судя по тому, что это ipython и отдельный файл, скорее всего ты импортировал много раз, но это не работает, надо делать importlib.reload.
Беру webm, конвертирую через ffmpeg в mp4, сохраняю во временный файл, отправляю этот файл в телегу, удаляю файл.
Есть ощущение, что как-то через жопу все. Вынужден создавать файл с параметром delete=False, потому что иначе будет ошибка при попытке открыть его в строке bot.send_... А так как delete=False, мне приходится после этих процедур удалять файл вручную через os.remove.
Можно как-нибудь красивее? В идеале вообще не создавать файл явно, но вроде как ffmpeg так не может делать.
В папке с тестами в тесте test_cl_arguments пишу
from rss_reader.reader import main
Мне пишет NoModuleNamed rss_reader.reader
Сижу, не панятна, хули надо. Так же многие модули подключал и всё норм было. Подозреваю это потому что я ничего не прописывал в __init__.py
upd pycharm сам всё предложил
я пишу from rss_reader он сам отлично видит все нужные мне варианты. Но когда тест запускаю залупа вылазит
При запуске модули ищутся в sys.path, текущая директория тоже там. В случае запуска из tests оно его не найдет, очевидно.
Молодец!
Короче говоря, учусь на 3ем курсе физмата на программёра с уклоном в матан, дали курсач, по незнанке сказал "дайте что-нибудь посчитать" (с надеждой на то, что дадут какую-то задачку, а не программирование), В ИТОГЕ
Тема "Аппроксимация кривых монотонными и выпуклыми кубическими сплайнами". Более-менее разобрался с темой, но реализовать кодом не могу. С монотонными кубическими сплайнами всё элементарно, это есть в scipy, тоси-боси и интерполянт найден, но с ВЫПУКЛЫМИ КУБИЧЕСКИМИ сплайнами дела обстоят более категорично...
В инете по теме ничего не нашёл, в библиотеке alglib даже намёков нет на эти выпуклости, помогите кто чем может
На вход: Координаты (в любом количестве, можно просто сразу массив прописать, чтобы ручками не вводить)
На выходе: Интерполянт (т.е. функция)
> Аппроксимация кривых монотонными и выпуклыми кубическими сплайнами
Сука лол. Ты рофл за чистую монету принял имхо.
В плане?
Студенческие работы лучше без всяких scipy хуярить. А на голом языке самопис хуячить. Я так считаю!
Че еще спизданешь?
У тебя на самом деле там в каждой строчке шедевр.
Но для начала сделай
def show(self)
и
show1 = ShowWorker().show()
По моему, никаких private переменных в Питоне нет, а carA.__model прекрасно доступен как carA._Car__model. Хуйня на экране - синтаксический сахар, благодаря которому можно красивенько атрибут model изменять не через вызов метода carA.setCarModel(model), а через присваивание значения свойству model напрямую, да поправят меня знающие люди.
Что ты называешь приватной переменной и зачем они, по-твоему, нужны?
По определению приватная переменная не должна быть доступна со стороны, в том числе на чтение. В скрине у тебя "свойства", а не приватные переменные. Приватная переменная это __model.
Она именно приватная, ты не можешь снаружи достучаться к ней как к __model, равно как и в классе-наследнике ты её не перепишешь.
Плохой учебник, неграмотный. Архитектура неграмотная.
Там уничтожение данных, ты перезаписываешь год. Более грамотный подход в том, чтобы хранить оригинальный год внутри, но для пользователя сделать геттер, который будет лимитировать показаный год в соответствии с линией партии.
Даже если сделать настоящие приватные атрибуты, то никто не отменял setattr и прочие патчи благодаря чему в питоне легко замокать сетевые вызовы для тестов например. Главное правильно настроить линтеры в репозитории чтобы запретить откровенно говнокодить и нарушать принятые на проекте правила.
Алсо где/как это все хостить?
напиши без библиотек.
есть формула как это говно находить?
ну так подставь ее в питон и пидорни.
по сути тебе дали легкую тему, тебе не нужно же пилить это например в виде сайта или программы с графической оболочкой?
>Алсо где/как это все хостить?
А как это написано и работает сейчас, в версии на noje.js? Питон в этом плане не отличается от ноды. Как хостишь ноду, примерно так можешь хостить и питон.
Я про чатботы конкретно ничего сказать не могу, не понимаю в них совсем.
>А как это написано и работает сейчас, в версии на noje.js?
Как полный пиздец, за который я оторвал руки предыдущему горе-разработчику. Бот буквально хостится на домашнем компе для аудитории в лям пользователей,
Блин, я тупой, в том же посте на stackoverflow написано, что нужно добавить ffmpeg флаг "-movflags empty_moov" и все будет хорошо. Еще раз спасибо, работает.
Писать ботов - это одна тема, хостинг - это другая тема.
Можно хостить на сервере примерно так же, как ты хостишь на компе. Просто запускаешь задание в фоне с перенаправлением вывода куда-нибудь и забываешь. Это колхоз, но я сам так иногда делаю. Аптайм сервера может быть месяцы и годы легко. Что нода, что питон работают надёжно.
Более правильно поднимать process manager'ы, к которым будет веб-интерфейс управления, которые смогут авторестарт делать и т.п.
Или, альтернативно можно поднимать через докер и использовать опцию --restart=always
Через докер в целом более правильно разрабатывать.
А с ботом, надо на логику самого бота смотреть, боюсь что переписать скорее всего означает "написать заново". Разве что внятное ТЗ есть, понятно, как этот бот должен работать. Но в ботов я не умею.
filenames=['file1.txt','file2.txt']
text=''
for filename in filenames:
__with open(filename) as f:
____text+=f.read()
parsing_all(text)
vim
Упражняшки ебош с утра до вечера. И сделай какой-нибудь проект. Полностью.
>Вот знаю я кое что на базовом-среднем уровнем про питон
Скорее всего это на предбазовом или начально-базовом.
Язык программирования это лишь часть программирования. Попробуй что-нибудь сделать практичное. Это смотря какое направление ты смотрел. Там что-нибудь вроде сайта, скраппера данных из сайтов, игрушки, распознавалки картинок (если ты в CV/AI полез), и т.п.
Если просто учишь язык-программирование, то решай задачи на литкоде.
>почему обсуждение других иде вообще нет
Потому что мужики код пишут, а не на свистоперделки дрочат.
Notepad++
Wing для новичков.
Там внутри ipython, его достаточно. Но это репл, у него совсем другие задачи.
?
Где там дебагер?
Как на модули код разбивать?
нахуй это говно трогать вообще, только bad practises прививает
Я же про новичков. Охуенная тема наглядно решать задачи.
А что он делает?
Заебень интернет магаз.
1. Почему работаешь с винды?
2. Почему ты бля работаешь из диры TEMP?
3. Гугли код ошибки. Чисто виндосовская херня какая-то
В винде пип как-то сильно проще ставится. Нет вот таких вот проблем.
Виндовый комп сейчас неохота включать.
У тебя какая версия питона?
набери python --version
и потом
python -m pip
А, у тебя 3.9
По идее, там pip идёт в комплекте.
Ты можешь просто с ним работать как python -m pip. Так грамотнее всего работать.
Уже перетыкал. Сейчас переткнул ещё раз в другую папку.
>>63884
Версия последняя. Вот прямо сейчас качнул https://www.python.org/ftp/python/3.9.5/python-3.9.5-amd64.exe
>>63885
...
не понимаю, что у тебя за проблемы. Включил комп с виндой. Снёс питон, перезапустил, скачал последний, ставлю
Выбираю custom install, хотя это не обязательно. Выбираю для всех пользователей и выбираю добавить в PATH, по-умолчанию этого нет. pip включён по-умолчанию, tcl/tk тоже включены по умолчанию, но проверь. Сколько-то времени ставится, предкомпиляция стандартных библиотек и всё такое, это лучше сделать.
Запускаю консоль, проверяю, есть и питон, и пип, и виртуальные окружения без дополнительных действий.
Короче заново поставь вот как я описал.
твои многопоточные ассинхронные проги связаны с инстой? Если да, то какие хэдеры и к каким ЕП обращаются? Если нет, то спасибо за то что уделили нам время :)
Там и петровичи сидят ваще то...
Так или иначе что то что другое отличная клиентская аудитория
Ты из 2010 вылупился что ли?
Не могу воспроизвести
Ты тупой.
Вкатываться мне и не нужно. Я хотел некоторый софт потрогать. Похоже придётся на сервере, но рабочие файлы туда-сюда гонять я рехнусь...
Ну попробуй какую-то анаконду тогда, хули.
Кокой хитрый халявщик
>Deprecated since version 3.3, will be removed in version 3.10: Moved Collections Abstract Base Classes to the collections.abc module. For backwards compatibility, they continue to be visible in this module through Python 3.9.
Ты так и не объяснил, нахера тебе списки
Единственное годное применение для них это двусторонние очереди, все остальное скорее всего байтоебство и нинужно
>Как в вашем питухоне
Рано тебе ещё в питон. Вот как ты в Си двумерный массивов создаёшь, точнее не двумерный массив, а массив указателей на массивы?
Вот и в питоне примерно так же создавай.
>Ты так и не объяснил, нахера тебе списки
Мне показалось, что ему нужно создание двумерных массивов, то есть двумерных матриц.
Что тривиально, но реально если в матрицы лезть, то надо сразу разбираться с numpy. Ну или/и в какие-нибудь специфичные модули вроде array.
Почему никто не делает так, как делаю я, а все делают через numpy?
Так быстрее: https://pastebin.com/hQXiDBRi
Можно добавить дежурную фразу о том, что внутренний движок numpy, написанный на C, оптимизирован под векторизованные операции. pandas.Series.map в данном случае, видимо, сводится к вызову обычного map для numpy.ndarray.
https://github.com/pandas-dev/pandas/blob/05552d354a430f17a45b5fda8a1fd417f4c60c2e/pandas/core/base.py#L848
Спасибо за ответ, ты очень крут!
Ну игрульки какие-то, чтобы заинтересовать жеребенка и научить каким-то базовым вещам. Вряд ли там чего толкового научат, чего нет в любой нубской книге или курсе.
Тоже верно. Но если ты не привык учиться по книгам, то пожалуй игрушка более подходящий вариант.
бля не тот тред
Блендер?
Не изучай.
Кстати, частенько вижу как хаят использование на сайтах джаваскрипта, особенно на других бордах. Что в нем плохого? Думал свой сайт пилить, но теперь вот думаю стоит ли пытаться избежать использование джаваскрипта или всё это какие-то надуманные бредни анонов с мелкоборд?
да похуй что ты используешь, главное чтобы это хорошо работало
Я вот решил потестировать списки в Python и нашёл забавную вещь, объяснение для которой я пока что не нахожу
Я знаю, что в питоне нет переменных, как таковых, у них у всех ссылки на объекты.
Но вот этот прикол меня убил
В Python есть разница между
A += D and A = A + D
Самое забавное, что с кортежами всё ок.
Аноны, поясните
В первом случае ты изменяешь список, во втором создаешь новый и присваиваешь его A.
Тупли иммутабельны, поэтому в случае += тоже неявно создается новая, хотя это не слишком очевидно, да.
Если iadd для += не определен, то он использует просто add.
Так что для иммутабельных структур a += b превращается в a = a + b.
z+=all([n in m for m in s])
Не пойму как это работает. Нельзя сделать z+=True, а в вышеописанном варианте плюсует. Может кто-нибудь объяснить, почему так?
>По идее, если ты запускаешь контейнер с такими настройками, и после запуска пишешь в эти каталоги данные, то они должны сохраняться на хосте.
в том то и дело, что ничего не сохраняется. В моем случае скрипт скачивает картинки и сохраняет их в папку, но в папке на хосте они не появляются
Попробовал этот сайт вчера и сегодня.
Почти прошёл второй остров на этом сайте и поделюсь впечатлениями: играть довольно интересно, но большинство квестов тебе комментариями прямо говорят, что делать. По сути дают не только готовый алгоритм программы - половина программы зачастую уже сделана.
Для детей и желающих попинать программинг чтобы понять каков процесс программирования вообще - сойдёт.
В целом, я думаю, что это меня подтолкнуло к полноценному изучению в целом. Сам до этого кроме Hello world ничего не писал.
Обязательно допройду её до конца и если будет что-то добавить к этому посту - напишу.
>z+=True
Можно, потому что True это реально просто 1, но очень грязно.
И ещё, если используется all, то не нужно сначала получать список. Вместо all([...]) лучше написать просто all(...)
p.s. говорю о бесплатной версии, подписка стоит 4 бакса, открывает дополнительные уровни и снарягу(как я понимаю нужную для этих уровней).
Где-то половина уровней только по подписке. Вероятно, там и есть нормальная практика где за тебя не строят алгоритмы и прочее.
Мне из игровых хуиток понравилось только это https://vim-adventures.com/
Можно реально задрочить миллион этих моушенов и прочих действий. Когда-то прикуплю и возьмусь за это дело, лол.
>Мне из игровых хуиток понравилось только это https://vim-adventures.com/
Открыл сайт, запустил уровень и так и не понял что от меня там требуется. Какую клавишу не нажму - ничего не происходит.
Алсо, разве есть другие более-менее приемлимые игровые хуитки?
Не работает. Вероятно у меня браузер устаревший, как-нибудь попробую в свежей версии попозже.
Спасибо за рекомендацию.
Сяпочки.
Сап шипящие, помогите пожалуйста.
Суть проблемы такова, дана система уравнений с кучей переменных вся хуйня это не так важно, по условиям одна из переменных дана в виде
z = tan(b*x)
b и x естественно уже введены и вот при выполнении функции он ругается что я должен ввести число а не строку а как это исправить я хуй знает, может вы подскажете если что, знаний питона у меня, 15 лекций тимофея хирьянова
Я вижу что написано прямым текстом, я не понимаю как исправить и поэтому пишу сюда в поисках помощи, типа как заставить еще высчитывать тангенс когда ему уже даны переменные
ладно я сделяль, мог бы и не ругаться так
Да и под каждый пет надо, тем более, IDE за тебя все это сделает и будет менеджить
Смысл в незасирании системного питона и отслеживании зависимостей, так что надо исходить из этого.
Просто до этого в уроке всегда __init__ использовали, а тут вдруг написали сразу после двоеточия
Она автоматически всё это будет делать при создании проекта и ничего самому делать не надо? Просто я через консоль создавал сейчас отдельную среду
Подождите, я затупил кажется. Тут стр вместо инит получается, да? А вообще первая функция всегда будет выполнять роль __init__ и неважно какое имя дать?
Да, можешь даже выбирать какую именно, virtualenv, pipenv, poetry (с плагином в пайчарме) и т.д.
>for i,n in b,b2:
Что если массивы разной длины? Обработает ли всё, нужно ли проверять if n is None?
вот как я сейчас эту возможность обрабатываю
try:
# тут мержим два массива если надо
except IndexError:
try: ret.append(i)
except IndexError: ret.append(n)
я вот и не понял, что ты хотел.
вообще смотри на zip и на модуль itertools. Ты найдёшь много чего полезного на разные случаи жизни
"'Consider using enumerate instead of iterating with range and len'"
В этом коде:
n = input()
sum_of_digits = 0
for i in range(0, len(n)):
sum_of_digits += int(n)
print(sum_of_digits)
На 3 строке. Что оно от меня хочет?
Понять бы, чего хочешь ты. То есть очевидно, что ты хочешь посчитать сумму цифр в введённом числе. Интуитивно очевидно. Твой код, однако, считает значение числа умноженное на количество цифр в нём.
А enumerate так работает
for index, symbol in enumerate(n):
____print(index, n)
Но тебе это не нужно. Тебе нужно
for symbol in n:
____sum_of_digest += int(symbol)
Нет, я просто не часто сюда пишу и сразу не понял что первое уже отправилось.
Если ты о том что я задал глупый вопрос то я его задал потому что больше не знаю куда обратиться
На стаковерфлоу почитай, это имелось в виду. Типа если гипотетически(нет) ты устроишься на работу связанную с питоном и возникнет такая же ситуация, то что ты начальнику скажешь? "Щас у посонов с двача спрошу, погоди пару дней" ?
Если у тебя код 1в1 с примера, ты перепробовал все вариации со стак оверфлоу и у тебя не работает то что работает у большого количества людей - тогда неси проблему, возможно ты где-то настроил что-то не так, или версия питона у тебя какая-то всратая поставилась, или банально ты list через хохлятскую i написал и тупишь, я хз.
И почему ты просто не задал вопрос сразу?
Ого ты объясняешь, уже и пробил меня походу. Спасибо, за такую конкретику но я вот только начал учить и вопрос обстоит очень просто и банально: есть видеоурок на ютуб где я не понял о чем идет речь в определенном временном промежутке и в теории я хочу кинуть тебе ссылку на видос (куда удобно) с таймкодом, после чего ты глянешь этот отрезок и ответишь мне на мой вопрос, если захочешь, разумеется
Действия происходят с 32:44 по 36:05 как у него получилось сделать так что прога ему ответила "Привет, Тимофей Федорович"?
https://www.youtube.com/watch?v=us7y0UhTq0s&ab_channel=ХаудиХо™-ПростоомиреIT!ХаудиХо™-ПростоомиреIT!Подтверждено
Чувак, ты точно уверен что это твое вообще?
Ну ладно
1)Он делает x(как на уроке математики, икс, типа икс равно 2, буква чтобы в нее записать что-то) = input('Как тебя зовут? '). Только его икс называется name, но я дальше буду писать x.
Инпут это такая хуитка в которую вводятся данные с клавиатуры, можно не писать в кавычки ничего, тогда просто будет моргать курсор, но он ввел Как тебя зовут? чтобы "понять" что программа спрашивает. В больших программах может быть много вопросов, поэтому он туда написал вопрос Как тебя зовут.
2)Потом он пишет print(f"Привет, {х} !")
Принт печатает что-то на экран. В данном случае используется так называемая F-строка(от английского Fuck you, leather man), если перед кавычками поставить f букву, то потом ты можешь в {} такие скобочки засовывать свой икс или любые другие буковки к которым привязаны какие-нибудь слова или циферки.
3)Он запускает это как скрипт, программа спрашивает у него тот самый input, на экране вопрос из кавычек Как тебя зовут? Он пишет Тимовей Баранович, в икс записывается строчечка текста "Тимофей Баранович" и теперь х == "Тимофей Баранович"(два равно это такая магия означающая охуенно сильно равно которое показывает что это намного равнее чем просто равно, либо равно либо ты идешь нахуй)
Следующая строчка программы это print, она печатает то что там в кавычках, Привет, ... вместо этих трех точечек она подставляет х, потому что он был в {} скобочках и находился в Fстроке, а икс у нас как мы уже запомнили равно тому что он ввел с клавиатуры, а именно "Тимофей Баранович", в итоге получается "Привет, Тимофей Баранович!"
Ну как-то так, удачного тебе путешествия в мир программирования чтоли.
покормил
Чтобы это понимать, нужно математику уровня 2-3 (для моих лет 3-5) класса пройти, тут даже как такокого программирования нет (ну под самим капотом есть, но за тебя уже всё реализовано). Если чел сидит на двоще, но не понимает этого, то я не представляю, как он смог на сам двощ, и тем более в /pt/ зайти. Это же надо на кнопочки набивать что-то с клавиатуры, а браузер это как-то магически понимает и тебя в тред телепортирует.
Я попробовал, сири на запрос "Двач программирование питон тред" выдает ссылку почему-то на 99й тред кек. Так что да, это загадка, может он догадался как в конце нажимать на перекат? Работают ли вообще перекаты в архиваче?
Читаешь построчно, пишешь построчно. Заводишь сет для строчек и добавляешь в него прочитанное, а если уже есть, то пропускаешь запись.
Они же у тебя не соседние?
Берешь форлупом первую и сравниваешь ее со всеми, стрипуешь если совпадает, добавляешь i+1 и дальше погнал вторую и т.д. Все это с with open('zaloopa.huy') as file:
Неплохое решение, хотя с rstrip обосрались, он все вайтспейсы сожрет.
Смотри, просто = это присвоение, т.е. если сделаешь
х = 5
то он будет равен 5
Но если ты потом в программе сделаешь
х = 10
То икс теперь будет равен 10, ты перепишешь значение
Если же тебе надо спросить у программы РАВЕН ЛИ ИКС 10, то делаешь
x == 10
И комп тебе ответит TRUE, т.е. да, а если ты не делал х=10, и икс у тебя равен 5, то комп ответит FALSE. Таким образом ты можешь делать так
if name == "Вася":
print("Привет, Вася!")
else:
print("Я знаю только Васю, пиздуй отседова, незнакомец")
Т.е. если name == "Вася" выдает True, то условие первое выполняется и программа здоровается с Васей, но если name не равно "Вася", т.е. False, то программа посылает не-Васю к хуям. Так же ты можешь использовать != это тоже самое только НЕ РАВНО, ну там еще больше, меньше, больше и равно, меньше и равно и еще ряд сравнений.
Для варианта с хешированием это не особо критично.
Спасибо, все предельно ясно)
Задание такое было:
"На вход программе подается одна строка состоящая из цифр. Напишите программу, которая считает сумму цифр данной строки".
Задание выполнено. Мне просто интересно на что у меня линтер ругается.
Потому что это не питоник цикл, а кривое подобие фор из си.
Вместо for n in range(len(lst))
val = lst[n]
делается for val in lst
или for n, val in enumerate(lst), если нужны индексы.
Consider using enumerate instead of iterating with range and len
Это как раз про это? Разница между enumerate и iterating?
Ок, спасибо.
Да я вроде читал про классы и подобное, но тут что-то понять не могу этот момент
О, этого чувака знаю, он в мфти вроде преподает
Как вообще этот ваш питон работает? Из него можно сделать exe'шник?
В функции ты просто переназначаешь arr в локальном скоупе.
Присваивание с таким же именем создает новую переменную внутри функции, старая не используется, что бы она изменялась нужно юзать global
Как в блядском списке от 0 до 700 , выести нечетные сотни, я блять не могу ебучее условие проверки придумать, пиздец блять отупел
просто надо вывести на экран 100 300 500 700.
Я могу сделать как в списке от 0 до 7 вывести 1 3 5 7 , а как это сделать для 700 я хуй знает сука, помогите пожалуйста
пример взят из интернетов
Тебе можно в range прописать шаг в сотню, чтобы у тебя список был не 0,1,2,3,......,699,700, а просто 0,100,200...,600,700?
Или тебе нужен именно полный список в котором 700 элементов?
Потому что если так можно это будет самым не фимозным решением
Я не сделал нечетность, ну ты понял о чем я
Я блин спросил можно ли ему использовать step в range в принципе взяв его код и добавив степ
>>67671
Зависит от того, что ты подразумеваешь под кинотеатром. В том, что я понимаю под кинотеатром - реально.
Ну я джун на удаленке, чего хотел?
Очевидно же
Работает, просто съезди за границу и попробуй оттуда зайти. Ну ты понял.
Да, несколько вариантов с двумя проверками и ни одного очевидного. Вот это и называется "вышка нинужна". Потому что если такие понятия, как "кольца вычетов" знакомы, просто слишком очевидно решение с одной проверкой, что не понятно, как можно придумать вариант с двумя.
Ну вот зато тебе вышка пригодилась вместе с кольцами вычетов.
Можешь теперь на вопросы анонов в /зк/аче отвечать.
Вообще я попросил бы не осуждать, я так тешу свое самолюбие в аниму тредах когда речь заходит за споры по квантовой физике
сыендук разлогинься
Хотя несколько секций есть интересных.
Ну и тупой вопрос: а что на питоне-то делают и какие перспективы для меня? Ну я понял, что бэкэнд джанго и всё остальное, короче типа делают сайты. Если ещё и фронтенд учить, то смогу делать сайты и зарабатывать как бы. Что-то слышал про нейросети, но нихуя не понял. И вроде всё, больше никто не заикается. Вроде есть какие-то фреймворки для игр, вроде есть для приложений, но даже в шапке написано, что лучше не надо. Можно каких-нибудь примеров того, что питон не только бэкенд? Я полюбому буду учить питон, потому что для новичков и я хочу вкатиться в программирование, но хочется понять что я учу ёпт
Тебе реально не стоит учить питон(да и вообще кодинг)
>нужно читать книжки и только книжки.
Зачем? Тебе надо на 50 страниц описание что такое цикл?
>нихуя как он работает с терминалами.
У тебя IDE в видео вызывает тупняки?
>Хотя мб на ангельском есть что-то годное?
Нет, хуйня идея, вообще за пределами рашки о Питоне не слышали, там куцые какие-то недогайды по еще второму питону, нерекомендую
>а что на питоне-то делают и какие перспективы для меня?
Все делают, но в других языках это делать лучше
>Если ещё и фронтенд учить, то смогу делать сайты и зарабатывать как бы
Не сможешь
>Что-то слышал про нейросети, но нихуя не понял.
Вот тут никакого подъеба, все верно
>Можно каких-нибудь примеров того, что питон не только бэкенд?
Ну это еще графики и таблички.
>полюбому буду учить питон, потому что для новичков
Пизда
А вообще представь если бы ты заинтересовался, например, свифтом, у тебя бы ни одного вопроса не возникло, ни про книжки, ни про применение, ни про деньги во фронте, ни даже про игры. Он такой же "простой", я тебе больше скажу - там даже двоеточие не надо ставить, вообще легкота, рикамендую. И гайдов много на английском, эпол же популярная фирма.
аскаль?
>Тебе реально не стоит учить питон(да и вообще кодинг)
Да ладно, будет на говнокодера больше. И не такие долбоёбы вкатывались.
>Зачем? Тебе надо на 50 страниц описание что такое цикл?
Чтоб мне как дауну объясняли на пальцах. У меня информатика была на уровне "напишите текст в word".
>У тебя IDE в видео вызывает тупняки?
Тупняки - нет, непонимание того что он делает - да. Ну типа он говорит, что нужно установить джанго, лезет на сайт, копирует какую-то непонятную строчку, запускает и говорит, что джанго установился. А мне нихуя не понятно как он его установил, если в скопированной ссылке нет никакого адреса, а какие-то команды. Откуда он ёпт установил его? Для меня сейчас установить что-то, это скачать и запустить инсталлятор. Это мелочи которые мне вообще непонятны, а тупо повторять путь в никуда.
>Все делают, но в других языках это делать лучше
Это все говорят, что делают. Только чёт инфы нихуя нет толком кто и что делают.
>И гайдов много на английском, эпол же популярная фирма.
Толку-то со свифта, если у меня из техники яблочных только древний айпод?
Учись работать с консолью, лучше в линукс. Если сидишь на винде-10, то там можно виртуальный линукс запистить, если только у тебя не home edition. Версии pro, edu, entertrise умеют. Можно и лучше даже сразу докер поставить.
В консоли разберись с файловыми операциями всякими.
Дальше научить запускать питон из консоли, запускать питон-консоль, создавать витруальные окружения и ставить что-то через pip. На самом деле это очень просто, если консоль не пугает.
Можно быстро разобраться, что происходит при установке пакетов и т.п.
после этого уже намного лучше будешь понимать эти инфраструктурные вещи.
Если хочешь в бэкенд, то без этого делать там нечего, подразумевается просто. Даже в вакансиях обычно прописывают, что надо уметь с линуксом работать.
Сап програмач, есть вот такой код на пикриле, вроде все нормально, но преподша заеба тредует чтобы я ввел z как переменную
>переменная z меняется также, как и переменные a и b, т.е. должна быть переменной вашей функции var14
ее слова, но как это сделать если z от варианта к варианту меняется и его надо каждый раз расчитывать? Типа сделать какое то обращение, но звучит бредово как то, типа брать в переменную то что уже посчитано , мб вы подскажете
Твой код вообще не должен работать.
У тебя функция просит 6 аргументов. При этом когда ты вызываешь, ты передаёшь только три. Уже исключение будет.
При этом ты эти агрументы не используешь, а перезаписываешь.
С математической точки зрения и в плане внутренних переменных тоже не всё понятно.
Оно все работает, могу скрин предоставить, да и в принципе мне больше надо сделать что просит это пизданутая чтобы отъебаться
Она еще одно более ебанутое задание дала которое вообще составлено так что ты должен сам понять что она имела ввиду.
Помоги пожалуйста если знаешь как осуществить задуманное ею
Вот оно как по нормальному выглядит
Дай скрин кода, который ты хотел бы сдать. Либо срин кода в том состоянии, когда твоя преподша претензии выкатила.
выше дал
а который хотел бы сдать
>>переменная z меняется также, как и переменные a и b, т.е. должна быть переменной вашей функции var14
А пикрил само задание как выглядит
Задание смотрится так, что у тебя z это функция, которую ты должен передать в твою функцию в качестве аргумента, наравне с a и b
То есть ты z должен не вычислять внутри, а получать снаружи.
Ты должен или сначала определить как функцию, и передать
def z(a, x):
____return math.exp(a∗x)
или через лямбда-функции
def var14(a, b, z, x):
......
вызов:
var14(0.5, 4.5, lambda a, x: math.exp(a∗x), x=c)
Кстати, у тебя баг, твоя функция не обрабатывает вариант
x = 5∗a
И ещё, вместо math.e ∗∗ (something) лучше делай
math.exp(something)
Очевидно нужны конкретные фреймворки, django/flask/aiohttp/fastapi
Наверное это у тебя есть, иначе не понятно, как на питоне что-то делать для веб, но ты не написал.
>вызов:
>var14(0.5, 4.5, lambda a, x: math.exp(a∗x), x=c)
Вот этот способ мне больше нравится, но теперь он вызывает
TypeError: unsupported operand type(s) for *: 'float' and 'function'
типа он z распознает как функцию и не хочет работать
Поменяй на обычную звезду
Я использовал левую юникод-звезду, потому что обычные двач проглатывает.
Я не говорил про веб. Я в целом и общем знаю питон и SQL (условно). С таким багажом разве только в веб дорога? я без прретензии, просто интересно.
>django/flask/aiohttp/fastapi
Все 4 сразу или имеется ввиду по отдельности что то одно?
Джангу ковырял, суть и цели джанги понял, надо, я так понимаю основные классы выучить, подразумевается это? или пройти пройти один пиздатый курс по настройке джанги достаточно?
Что подразумевается под знанием фрэймворка? Понятно, что всякие мелкие пакостные хитрости я и питоновские все никогда не выучу, но парсер например написать могу или бота для телеги поднять.
>С таким багажом разве только в веб дорога?
Нет, тебе очень пригодится хтмл в байтоебстве с робо-руками на заводе.
Обычно идет что-то одно, но ты никогда не угадаешь, они все применяются на разных сервисах и по своему уровню "крепкости жопы" и по желанию юзать то или иное у главного. И будут сайты-визитки на джанге и кинотеатры с базами данных и мл моделями на фласке. Энивей они примерно одинаковые, это все REST, графен, и дроч sql, отличаются только названия команд для этого всего.
Обычный где можно смотреть кино. Такое можно сделать на заказ, там еще замутить видобалансер и прочее. Я подумал, что можно на джанге сделать. Можно ли?) Делают на wp потом юзают видеобалансеры и статьи к фильмам.
>Все 4 сразу или имеется ввиду по отдельности что то одно?
Зачем нужны веб-технологии вроде html/css/js, если ты не можешь их применить?
С фреймворками уметь работать надо. Тем более, что ты назвал только те технологии, которые близки к web.
Но в любом случае очень полезно. Вот с какими именно, зависит от направления.
Если основательно, я бы советовал начать с джанго, так ты изучишь все основные технологии и подходы, которые в фреймворках используются.
flask/aiohttp хороши для прикручивания веб-морд к каким-то сервисам.
Как представляю, от джанги тут будет самый минимум, основная работа это бэкенд по хранению видео и балансировке нагрузки, фронтенд для реализации плеера и т.п.
Тебе надо расписать задачу, функционал, а уже потом думать, какую часть фунционала можно на каком-то фреймворке сделать.
Да готовых решений куча, включая сделать кинотеатр под ключ, на питоне такого не видел. Знаю только его, подумал, что бесплатно сделал бы такое сам. А там, все как обычно, трафик.
Делать или многопоточное приложение, или асинхронное. Есть несколько способов, как это делается.
Что за вебсокет, через какую библиотеку?
websokets Первый раз с таким работаю.
То есть получается нужно будет взять asyncio:
Добавить в луп функцию, которая обрабатывает получение данных по вэбсокету, указать в ней, чтобы записала данные к примеру в файл или глобальную переменную,
Добавить в в луп еще одну функцию, для обработки уже самих данных
И гонять это все в цикле?
Ты оформляешь фунцию чтения данных из вебсокета в отдельную задачу. Тут надо оговаривать, у тебя один вебсокет или много, что происходит в случае обрыва соединения и прочие моменты.
Создаёшь очередь asyncio.Queue()
передаёшь ещё в задачу, что работает с вебсокетом, и в задачу, где функции крутятся, которым надо с данными работать.
Как только данные пришли, пихаешь их в очередь. И если этим функциям хочется отправить данные, тоже пихаешь в очередь.
Это самый общий подход, очереди сообщений, каналы передачи данных и т.п.
Ок, буду копать в этом направлении, спасибо.
Просто через полгода идешь искать новую работу и смотришь на то, что тебе предлагают
Я только начал, что такое лямбда функции и зачем они могут быть нужны? Попробуй мне объяснить.
Что там понимать?
Функции это объекты в питоне, их можно передавать, возвращать и хранить в структурах.
И если тебе нужна такая передаваемая функция на один раз, то вместо определения с def ты можешь захуярить лямбду прямо на месте.
Это ещё один способ объявления функций, как def, только их ещё можно использовать сразу по необходимости. Нужны они когда сама функция настолько незначительна, что создавать через def ее не имеет особого смысла, например, когда в сортировке указываешь функцию, которая преобразовывает элемент прежде чем приступать к сравнению.
Я так понимаю, что лямбда-функция - это укороченный вариант обычной функции, который используется когда нужно быстро въебать какую-то функцию посреди кода, и которая будет использована однажды и не будет занимать память. Еще помню, что ее иначе называют анонимной, т.к. ее не надо объявлять.
Хз, с этим трудности, я понимаю только на словах.
Я помню, когда-то давно писал простой гуй на pyQt, и там нажатие на кнопку делалось через лямбды в этом треде так подсказали - я так и не понял, почему. И в общем-то это единственный пример, который я помню.
>Мне ж все равно эту операцию один раз провернуть.
Но есть же случаи, когда операцию проворачиваешь несколько раз, просто делаешь одно и то же. Когда передаёшь фнкцию другой функции, например, как для map() или filter().
Или в пайплайн встроить, например, хочешь обработать строчку
''.join().strip().(тут делаешь какую-нибудь необычную операцию, например, тЕкСт ЗаБоРчИкОм)()
>''.join().strip().(тут делаешь какую-нибудь необычную операцию, например, тЕкСт ЗаБоРчИкОм)().(и тут можно продолжать обрабатывать, сделать текст жирным, к примеру)()
>операцию проворачиваешь несколько раз, просто делаешь одно и то же
Так это обычная функция, а не лямбда.
Нужно отсортировать массив кортежей по второму элементу
a = [(1, 2), (2,0)]
a.sort(key=lambda x: x[1])
Можно сделать обычной функцией, но тогда её нужно будет придумать название, объявить её где-то в другом месте, потом привести в скоп, передать её все нужные параметры, и потом применить. А нужна она только здесь. Не лучше ли её прямо здесь и объявить?
Не знаю, может, мы друг друга не понимаем.
Если я делаю что-то один раз, то это лямбда в моем понимании.
Если я делаю что-то несколько раз
>операцию проворачиваешь несколько раз
То это обычная функция, которую надо объявлять.
Но когда ты используешь map() эта функция применяется к каждому элементу, поэтому
>несколько раз
Надо понять, что такое функции первого класса и как они применяются.
Лямбды это просто частный их случай, когда имя такой функции просто не требуется, т.к. используется в одном выражении.
>Вы неправильно обьясняете.
Если бы существовал правильный способ объяснять, то его бы уже всем объяснили, и все бы его знали.
вот допустима фрагмент кода, я обьясню, а вы скажите прав или нет.
Я вроде прошел весь основной синтаксис питона немного ООП затронул, но бывает берешься за что-то новое связанное с алгоритмами или куда-то углубляешься в какой-то фреймворк, то абсолютно ничего не понимаешь.
Вот тут мы создаем экземпляр класса связного списка, где при инициализации мы привязываем голову к Node, то есть каждый экземпляр будет иметь в себе голову(или же узел), но как оно ходит по этим узлам? Next это ссылка же на следующей элемент, в каждом узле ее в начале нет, но как только мы добавлям новый узел Node, то мы с прошлого узла переходим на этот новый, где ссылки тоже нет, и так мы идем сколько нам надо
1 - Есть узел, в нем нет ссылки, создаем новый в старом узле, указываем в старом узле ссылку на новый узел, переходим, а в следующем узле не будет ссылки пока не проделаем такую-же операцию, верно?
# class Node:
# def __init__(self,data=None):
# self.data = data
# self.next = None
#
# class LinkedList:
# def __init__(self):
# self.head = Node()
#
# def append(self,data):
# new_node = Node(data)
# cur = self.head
# while cur.next != None:
# cur = cur.next
# cur.next = new_node
Поэтому первым языком надо учить С.
Я бы не пытался реализовать линкед лист на языке, где нет явных указателей, это смотрится крайне потешно.
Голова это первый элемент, она известна, потом хуяришь по некстам, пока не будет None, это хвост.
В целом, этого достаточно для итерации и добавления элементов как в конце, так и в любой другой позиции, просто манипулируя этими некстами, в этом и суть линкед листа.
Да я знаю что есть вроде deque в collections и он может использоваться в таких-же целях, просто разбираюсь в алгоритмах и хотелось бы понять как это все работает, тяжеловато дается.
Лучше на сишке ебош или на ГОвне, значительная часть классических структур требует адресных полей
В питоне каждая переменная по сути хранит в себе указатель на значение, кроме самых примитивных вроде чисел
Да, ещё и строки, но ты указателями явно не можешь распоряжаться и к классическим структурам приходится ебошить костыли. Если бы хотя бы по Id() можно было объект получить, то можно было бы потренироваться в этом.
Вот вы говорите пет-прожекты.
А хуй написал кривую лапшу, вся суть которой сводится к портянке из пост запросов и убогой обвязочки и набрал дохуя звезд на гитхабе и ореол кулхацкера. Учитесь.
https://github.com/FSystem88/spymer/blob/master/spammer.py
Количество звёзд вообще нихуя не значит, самые большое количество у списков и шуток
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
> указателями явно не можешь распоряжаться
Например считать разницу или прибавлять к указателю целое число? Так для классических структур такое и не надо особо.
>Я не понимаю, почему мне может хотеться использовать лямбда-функции. Почему я не могу обойтись например list comprehension или циклом каким-нибудь?
Потому что тебе может потребоваться передать функцию куда-то в качестве аргумента. Вот для таких целей и нужны лямбда-функции, чтобы код был компактным.
На самом деле можешь сильно не заморачиваться, главное примерно понимать, что это такое. Когда будешь сталкиваться с передачей функций на практике, будешь и лямбда-функциями пользоваться.
Например, у тебя есть список сложных объектов и ты хочешь отсортировать их как-то. Ты используешь для этого функцию sort, один из аргументов которой это "ключевая функция", которая преобразует твой объект во что-то сортируемое стандартным образом, так определяя "отношение порядка".
Куча других примеров есть.
Получается что нужно:
1. Достать логи с кибаны или Амазона
2. Обработать их в одну базу.
3. Запилить фронт с таблицей и уложить туда базу.
4. Разместить где-то на хосте.
Что упустил?
Спасибо за внимание.
Спасибо. Но питон я знаю уже. Мне именно по кибаны.
Список это массив ссылок на объекты, а массив это массив, но он может только в примитивные типы.
Я вот такое нашел
"Во 1 массивы хранят данные лишь 1 типа данных, во 2 хранят если не ошибаюсь только простые типы данных, в 3 хранятся в разных частях памяти, в 4 все элементы массива расположены в ячейках памяти, которые идут друг за другом, а со списками история в точности противоположная.
В общем различия есть и их море".
https://www.cyberforum.ru/python-beginners/thread1618708.html
Думал может где-то статья есть на эту тему.
Я так понимаю, что на практике оно в основном применяется для взаимодействия с компилированным кодом, в самом питоне их молотить смысла мало, т.к. при извлечении придется создавать объекты.
То есть до уровня байтоебства списки == массивы, а как дойдешь до уровня байтоебства, то сам все поймешь.
В питоне просто тип данных list назван не очень корректно, на самом деле это аналог массивов-"векторов" в других языках.
Модуль array позволяет создавать массивы, где данные будут храниться компактно. Наверное это иногда актуально, если очень большие данные. Но при этом работать с этой структурой дольше, каких-то внутренних оптимизаций нет.
Вот для теста создаю список из 10 миллионов целых чисел и array аналогичный, со значениями от 0 до 9999999. Делаю поиск, это работает как полный перебор. Штатный list работает в два раза быстрее.
То есть оптимизаций нет. Гипотетически подобные операции можно было бы вынести в бинарный код библиотеки и там проводить очень быстро, но этого нет.
Поэтому мне кажется, что очень ограниченная область применения.
Поток это подпрограмма в программе, мы их можем запустить N количество, это как 2 синхронные программы, они выполняются одновременно, верно?
А асинхронность это когда мы говорим программе пока ты ждешь, сделай эту или эту функцию, верно?
Я сам на практике пока не использовал их, в теорию вьезжаю
Штатные структуры для питона это list, dict, set. В меньшей степени bytes/bytearray
Модули array и struct нужны в первую очередь для двоичных API, чтобы ты мог пересылать данные между приложениями, в том числе написанными не на питоне. Вот для этих задач они необходимы. Но это всё-таки очень редкие задачи, особенно для array, struct более частая вещь для парсинга бинарных пакетов каких-нибудь.
При этом мне кажется, что array и для бытовых задач может быть востребован, если тебе надо хранить в памяти очень большие объёмы данных, на десятки и сотни миллионов элементов. С обычным списком на 100+ миллионов элементов уже будут проблемы из-за расхода памяти. Но всё-таки это какие-то очень редкие задачи.
Надо просто помнить, что такая возможность в принципе есть.
Оке, спасибо. Вот такого в шапке не хватает. В шапке в смысле на Гитхабе.
>Поток это подпрограмма в программе, мы их можем запустить N количество, это как 2 синхронные программы, они выполняются одновременно, верно?
Нет, особенно в случае питона с его GIL. Потоки придумывали не для этого, они появились ещё тогда, когда процессоры были одноядерные. Возможность одновременной работы это побочный эффект, но на питон он не распространяется.
Поток это логическая единица. У каждого потока есть свой набор данных, точка, где текущее исполнение находится. В программе несколько потоков и система периодически переключает с одного на другой.
Это нужно для того, чтобы твоя программа могла делать одновременно несколько действий. Например ждать, когда пользователь что-то нажмёт, при этом обрабатывать персонажа игры, скачивать-отправлять данные и др. В общем это многозадачность.
Разница между многопоточностью и асинхронностью в том, как происходит механизм переключения потоков. В первом случае независимо от кода подпрограммы, во втором случае в коде подпрограммы только на операторах await. Но более оптимально, если у тебя код ждёт данные, то ты в этот поток не вернёшься, пока данные не получишь, ресурсы оптимальнее используются.
s = {'1', '2', '3'}
''.join(s)
Почему у меня при перебирании этого множества значения выходят именно в такомпорядке: 2 1 3
Всегда именно так. Пачему?
Порядок не гарантируется, хранится как удобнее вм.
Раньше такое было и для словарей, потом с какой-то версии к ним прикрутили порядок вставки.
Давно к джанге не притрагивался
Но у тебя хуйня какое-то на первый взгляд, нахера ты choices внутри класса определил?
В init изначально было, это уже от бессилия делал, все варианты возможные перепробовал.
540x960, 0:09
1. Web development (API, автоматизация, highload, микросервисы)
2. BigData (распределенные хранилища данных,spark, data engineering)
Что скажите?
В точку. Но, вроде, интересно звучит.
Тащемта никаких секретов тут и нет, в течении трёх месяцев задрачивал питон и всё к нему прилагающееся по 5-10 часов в день + 4 года в пту ещё, но там дальше хело ворлда на джаве я не продвинулся. Так и вкатился. Только единственное, что когда я на проект пришёл, первые пару месяцев было очень тяжело. А потом вроде привык.
Просто я нашел место где происходит исключение, отследил из-за чего происходит в ChoiceField в to_python() приводят мой список к строке. Вот и спрашиваю, правильный ли класс выбрал.
UPD. 1 пик не тот. Вот нужный.
1280x720, 0:38
UPD. Нашел ошибку, есть специальное поле для чекбокса. О, индус, ответ которого на so я посмотрел...
а работу где искал? я прогаю на питоне около года, максимум тока на фрилансе заказы делал
Иди нахуй, сын собаки.
накатай скриптик, чтобы все скачать.
и тебя взяли работать после того как ты сказал что три месяца изучал питон???
А сеньоры это разве не главы отделов по старому? Ты хочешь руководить другими людьми и нести за них ответственность?
Нет, серьёры это старшие/ведущие программисты, а руководят тимлиды.
У тимлина не обязательно очень высокий уровень в программировании, то есть нормально, что под ним будет человек, который намного круче него.
Сами понятия мидл-сеньёр очень условны, у нас особенно, в норме под сеньёром понимается совсем другой уровень.
Если не можешь решать уровень изи литкода, то пилить проекты рано.
Сначала надо, чтобы уровень изи стал более-менее изи, а потом браться за проекты.
Параллельно можно изучать смежные технологии, вёрстку, сети, работу с консолью, гит и другое. Без их понимания тоже ничего не сделаешь.
Вот это с одной стороны правда, но я с другой стороны видел своими глазами как 1 человек придумал и написал успешную (популярность и донаты) порно-игру с механикой Sim brothel (нанимаешь-обучаешь-продаешь рабынь, мотаешь по городу, покупаешь предметы, прокачиваешь характеристики, пошаговые бои и прочее), а только уже потом нанял несколько программистов, которые уже шарили в ООП и прочем. То есть он писал без ООП - хорошо если с функциями.
Так что все же пет-прожекты важнее.
>Если не можешь решать уровень изи литкода, то пилить проекты рано.
Разве литкод это не дроч алгоритмов? В свое время всякие олимпиады дрочил и мог прорешивать задачи оттуда. Но вот грамотно организовать структуру проекта, сделать красивые абстракции и декомпозировать логику между ними для меня было большой проблемой. На работе же обычно приходится писать такие сущности, а не изобретать очередной способ обхода графа.
>Разве литкод это не дроч алгоритмов?
На уровне хард - да. На уровне медиум когда как. На уровне изи алгоритмов нет, самый примитив и просто структуры данных, исключительно практика кодирования.
Без уровня изи нельзя подпускать к кодированию. Ты просто не можешь кодировать.
>>71015
>То есть он писал без ООП
ООП это технология промышленного программирования. А литкод про то, чтобы придумать идею решения и реализовать её в коде.
Ты как раз описываешь типичного олимпиадника, у которого очень хорошо работают мозги, кто может придумывать и реализовывать сложные и интересные вещи, но не умеет писать промышленный код.
И как раз показываешь, что мозги важнее. Лучше переизобрести велосипед, когда есть уже готовые и бесплатно, чем не иметь возможности переизобрести велосипед, а быть способным только готовые решения использовать. А грамотное кодирование и технологии уже потом подтянутся.
Или там только можно написать только что-то через print?
ну вот допустим:
def devide_smth(a1, a2):
--try:
----b=a1/a2
----return b
--except:
----print('error')
Если a2 = 0, будет ошибка от деления на ноль. Можно эту ошибку как-то поймать и передать в except блок?
Можно, это описано в ЛЮБОМ учебном материале, которых как говна за баней, иди кури.
```Given the head of a singly linked list, return true if it is a palindrome```
Runtime: 1096 ms, faster than 11.41% of Python3 online submissions for Palindrome Linked List.
Memory Usage: 48 MB, less than 6.56% of Python3 online submissions for Palindrome Linked List.
Вот код ```class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def isPalindrome(self, head: ListNode) -> bool:
self.head = head
cur = self.head
lst = []
while cur.next != None:
print(cur.val)
lst.append(cur.val)
cur = cur.next
if cur.next == None:
lst.append(cur.val)
if lst[::-1] == lst:
return True
return False```
У них эта задача записана как easy
https://leetcode.com/problems/palindrome-linked-list/
Если делать через создание дополнительного массива, как делаешь ты, то это easy. Но этот какое-то неправильное неспортивное решение.
У них там есть оговорка
> Follow up: Could you do it in O(n) time and O(1) space?
Я так слёту не знаю, как, надо думать, но это будет будет ни разу не easy.
>>71271
>print(cur.val)
Ты вот это прямо так им и послал? Не удивительно, что у тебя такие маленькие показатели. Удали печать и посмотри, насколько быстрее твоё решение будет работать.
>Follow up: Could you do it in O(n) time and O(1) space?
Кстати есть очевидное решение, как это сделать, разве что оно будет грязновытым (тупые хаки) и не thread safe.
Да, оказалось намного быстрее + я через строку все сделал, я чет об этом не подумал)
>>71316
Думал закодировать это решение, но не хочется.
На практике оно работать будет дольше. Для количества элементов в 100000 экономия памяти смысла не имеет.
А в плане кодирования это грязные олимпиадные хаки.
Идея в том, что ты сначала проходишь и считаешь, сколько у тебя элементов. После чего знаешь, какие элементы к правому и левому хвосту относятся. Центральный для нечётный длины ни к чему не относится, он симметричен по определению.
Запоминаешь последний элемент.
Дальше второй проход, до середины игнорируешь, после середины меняешь узлы так, что не N указывает на N+1, а узел N+1 указывает на N.
Третьим проходом идёшь от головы и хвоста, до середины, и просто сравниваешь два связанных списка.
При желании можно сделать четвёртый проход и восстановить список к исходному состоянию.
Кодировать и отсылать на литкод лень, потому что это чисто хаки, которые проиграют по скорости наивному easy решению.
Какая же ненужная хуйня просто. Солюшионизм ин итс файнест форм.
Те кто именно кодингом занимается часто вынуждены башку ломать над подобным, типа как что-то реализовать? Это же пиздец как уныло, сам я быстро перекатился в пандас/нимфи/ТФ, там ничего такого просто нет, самое жуткое что я юзаю это лист компрехеншн и то редко и скорее для выебонов. Функции пишу исключительно для графиков, классы? Идите нахуй со своими селфами просто.
Лучше вообще из кодинга уходи, раз тебе сложно. Чего сюда полез?
ну пандас/ нумпи и т.п. это просто набор методов
Как в этом вашем питоне считают, если инты иммутабл?
Нужке атрибут-счетчик, который бы считал количество вызовов определенного метода. Как это сделать без особых костылей?
мимо-ньюфаг
Твой счётчик - это указатель на объект. Можешь посмотреть его id, он же адрес в обычном интерпретаторе.
print(id(counter))
Как только ты делаешь
counter += 1
создаётся новый объект и в counter записывается его адрес, поэтому если ты сделаешь
print(id(counter))
после этого, то ты там другое значение увидишь.
Это два унарных плюса, а не то что ты думаешь.
Почему код не работает дальше красной линии? Бот застревает на первом defe
Зачем тебе отдельно объявленая функция send? Пиши через готовую, говноед. Лень досконально копаться, но там 100% в этом косяк.
Легитимна через И, кстати.
Или в reply_markup, не знаю что это, не пользовался, это со смыслом или просто скопипастил откуда? Попробуй убрать.
Возможно я слепой, но сейчас я скопировал другой код, точь-в-точь такой же, и всё работает
Хорошо. Не пали на дваче токен от бота и почитай про PEP8.
Кем рекомендованный, покажи.
Это не со злостью сказано, просто первый раз за свою недолгую карьеру в питоне такое вижу, интересно.
Это тоже самое, в модуле operator содержатся функции, которые вызывают магические методы, то же самое, что делают операторы + - [1] и т.д.
Там несколько таких заготовок с некоторыми дополнительными возможностями.
Можно делать и через лямбду, но так нагляднее.
Примерно как lambda x: len(x) и просто len.
Мне вот этот кирпич понравился. Хоть и заявлен как справочник, в качестве учебника тоже сгодится. На русском, и есть на либгене
Как раз мой случай. Прочитал книгу для начинающих, вроде основы уловил, но делать все равно ничего не могу. А тут я так понял будут именно проекты всякие разбираться
Можешь ещё этой полирнуть, буквально на днях спиздили.
http://libgen.rs/book/index.php?md5=56F83FF3007762D0A0ECE1D754C6344B
> Прочитал книгу
> делать все равно ничего не могу
Ха-ха, зачем же вы изучаете программирование по книгам?
До этого брал знания сразу из астрала, но стало скучно, решил почитать что-нибудь.
Спасибо, ее тоже почитаю
>Ха-ха, зачем же вы изучаете программирование по книгам?
Это неплохо, если там примеры кода с задачами идут. Я вот прочитал в свое время лутца, потом пошел на кодварс и задрочил его использование
Спасибо
Не шутил. Бутстрап это на ЖС? В общем если можно слелать проще, то можно и то. Главное не готовые сайты.
Это вот это
https://getbootstrap.com/
Под твою задачу нужен только html, css и буквально капелька js. Зачем тебе Питон - не ясно. Разве что только ты хочешь изучить Питон и у тебя этот сайт что-то вроде практики будет.
Да, именно для опыта. Хочу для начала сделать Максимально простым с одной страницей буквально. Собираюсь дергать статусы определённых страничек с ссылками к ним. Потом прикручу ещё что-то. Может графики какие биткоина и прочих паркетов.
Думаю делать на Джанго. Или советуете Фласк? У меня ещё обязательное условие чтобы я мог разместить на Амазоне. Вот хочу ссылку найти от начала до самого деплоя. Может есть такие гайды.
Ааа, тогда жди знающих. Но для простого и симпатичного фронта Бутстрап тебе точно подойдет.
Хотя, можно и не воксельные, лишь бы были булевые операции и рендеринг.
you = {'remote worker': 'senior'}
def взамное обучение(me, you):
if me == ["OOP", "alogoritms and data structures", " some grasp of Python", "a framework or two"]:
you = ['бесплатная комната в Нячанге', 'обучение английскому от профессионального учителя с десятью годами опыта в трех странах', ' собутыльник', 'немножечко травы и грибочков']
return me, you
borders = "closed"
if borders == "open":
взаимное обучение
Дорогие анончики, есть ли среди вас те, для которых бы данный код имел смысл (не в плане написания, а в плане того, что я попытался им передать), я гуманитарий, в математике был тугодумом, сейчас при самостоятельном изучении программирования на Питоне случаются как и затупы, так и просветления. Имхо, отличный вариант для тех, кто хотел бы перекатиться в тропики, сильно не привередлив в жилищных условиях (многие живут с руммейтами) По началу много времени отнимать не буду, просто тихо выполнять задания, а потом потребуется чуток Вашего времени. В плане обучения Вас английскому готов уделять пару в день
я предлагаю жилье (комнату в хате) в Нячанге тому, кто вызовется меня учить на Питоне. С комнатой в комплекте идут уроки английского, пара в день, собутыльник и пара грамм бошек в месяц, если ты любитель этого дела. Обещаю по началу не делать мозг и изредка доебывать с тупыми вопросами. Бесплатное жилье и английский от опытного учителя в обмен на обучение программированию, есть ли вообще смысл такое предлагать кому-либо? Просто спрашиваю, ибо планирую съеб, когда границы откроют
почему? ну вот к примеру ты удаленщик и захотел свалить в теплую страну с морем и фруктами, а тут предлагают бюджетный вариант, жилье в шаге от пляжа за час-полтора ненапряжной работы в день, да еще английскому научат, планом угостят, рома нальют, город покажут. Это не просто взаимовыгодное сотрудничество, это своего рода дружеские отношения. Плюс хата большую часть дня будет свободна, так как я буду работать. В чем конкретно проблема, почему это никому не может быть интересно?
Аутист с двача никогда не поедет хуй знает куда к рандом-хую. Может ты питониста в жопу выебешь, а потом расчленишь.
лол, тут серьезно только так все и думают? Причем все те же самые прогеры без проблем живут с кучей людей во всяких коливингах, деревнях удаленщиков на Бали/Гоа, как то же ищут соседей, знакомятся, общаются, заводят друзей, никогда еще не слышал, что кого то в жопу выебали и расчленили
Лучше бы предложил денежку или что-то вкусное-полезное прислать по почте за код ревью и уроки через инет. Ну реально - ехать куда-то хз куда перед новой волной ковидлы... Это вряд ли.
Не, ну серьёзно, странно выглядит предложение. Мол езжай со мной, обеспечу тебя жильём, буду учить английскому, всякие снадобья для увеселения, с тебя лишь консультации по питону.
то есть ты еще не уехал?
я думал ты уже там тусишь! откуда инфа что у тебя например букдут бошки и алко? и бабос?
кем там планируешь работать?
планирую работать в продажах, так как говорю на английском и путунхуа. Сначала я приеду, поработаю месяц-два, и когда все норм будет, буду искать себе ментора. На крайний случай - тичером за 1500к долларов пойду(как и работал несколько лет, в принципе), но это будет не Нячанг, а жопа мира, хоть и у моря. Откуда инфа? жил там пол года до пандемии, ром дешевле водки в этой стране, бошки тоже на каждом шагу. вангую вопрос - накуй мне вкатывание в ойти? А вот для того, чтобы вкатиться в Канаду. Попробовал сварку - то еще удовольствие раком пол дня стоять. Попробовал учить - те места, где я не туплю, а нахожу сам решения (щас я на задачках на синтаксис и лупы) - вызывают эйфорию. Но на следующий день я могу сесть и затупить на следующей теме. Почему не предлагаю деньги? потому что ты хер их вышлешь из страны, не указав в налоговой декларации сколько ты реально получаешь, и не отдав половину зарплаты налогами. Все кэшем. пэйпалом мне высылали вьеты через решалу, этот нехороший человек взял 60 баксов комиссии). Вроде даже на ангельском документацию и лекции всякие воспринимаю нормально, на степике курс тоже на нем, но не хватает слов типа "ты че, долбаеб? тут вот по этому у тебя код не работает" Боже. как мне хочется кодера, разве я много прошу?
что такое путунхуа и как его выучил?
что такое нячянг?
и как там жить без прописки и пастопрта, поясни.
алсо там что, бошки законны?
Как запустить процесс чтобы питон ждал окончания работы процесса, с тайм-аутом обрубал его?
Пик - мое, при запуске хоть ран, хоть колл, хоть что - питон сразу говорит что весь скрипт успешно исполнен, и процесс поднимается как бы сам по себе, ну и на таймаут ему похуям.
Если ты именно про запуск 1С то там проблема не в python, а в запускающем файле 1С
Он запускает другой процесс, независимый, с заданными параметрами, а сам завершается
python (и любой другой запускатель скриптов/сценариев) отслеживает только процесс стартера 1С'ки, который не пиередает им информацию что он там запустил еще и не ждет окончания своих сабпроцессов
Появилась необходимость работать со спарком. А как вобще код то проверять, писать и тестировать? Ну вот есть сервис спарка, я ж ёбана не буду в текстовом редакторе никсов код бахать. А удалённо вроде нельзя запустить, спарк разворачивать локально тоже чот сложно. По идее библиотека sparkа должна сама уметь на локальном запускать? Чото я нихуя непонял короче
Привет.
Вот смотри у тебя есть сервер и твой локальный комп, в иделе нужно сделать так чтобы ты писал на своем компе, а запускал на удалённой машине(сервер) тебе нужно заняться вопросом ci/cd своего проекта. Удачи анон.
Вы видите копию треда, сохраненную 1 августа 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.