Питон тред, номер как у предыдущего >>1451619 (OP) , но на единицу большеЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat актуальность примерно 2015 годаКнижки: https://yadi.sk/d/HQhhsBsq3TVRUqТоже книжки: https://yadi.sk/d/tArKKuQu3KejuqБольше книжек: https://yadi.sk/d/H-00n-UG3RSQemОчень много книжек: https://drive.google.com/drive/folders/13YaFijvuH4dtv-PjUKVWLQ7ZIqXIfCLKАнон, вместо того, чтобы без разметки постить код, лучше шарь код через специальные ресурсы:https://ideone.com/https://pastebin.com/https://pyfiddle.io/https://www.codepile.net/#######################################Вопросы-ответы:А стоит ли читать Лутца, том номер N? - Мнения в треде разделены. Кто-то за(очень неплохая база даётся), кто-то против(слишком много воды и объём книг убивает всё рвение). В общем - решать тебе, книга вредна не будет, то ты можешь её просто не дочитать и забросить.А стоит ли читать %книга_нейм%, если там питон версии 2.х? - Нет, не стоит. 100% есть более актуальная книга, для пистона 3.хА что ещё можно читать? - Питон сам по себе очень хорошо задокументирован, и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html А как учить джангу? Нахожу только книги по джанге 1.х - У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой, из официальной документации.
Традиционно посрал в говно тред жидкой лямбдой и задебажил через самую обосранную иде - Вижуал Студио Код
Есть адреса почты вида [email protected]как мне regex вырезать всё что между + и @ и сам плюс тоже вырезать, чтобы оставались адреса [email protected]
>>1459402Это полный пиздец, я конечно понимаю что питон это динамический язык и перегрузку функций в питоне сделать нельзя, но дрочево с __init__ и __new__ это пиздец.
Долбаёб в треде, можете оценить мою пасфайндинговую хуебень?https://github.com/criminalscum/psimplepathfind
>>1459406А что не так с __init__ и __new__?В большинстве случаев тебе достаточно __init__, чем он отличается от конструкторов в других языках?С помощью __new__ ты можешь какие-то дополнительные возможности реализовать, обычно не нужные.
>>1459575С сайта ты скачиваешь просто питон. Анаконда это целая платформа, которая содержит в себе питон, то есть, устанавливая анаконду, ты получаешь не просто интерпретатор питона и стандартную библиотеку питона, но и еще 100500 пакетов, плюс свой пакетный менеджер conda, а не только стандартный питонвский pip, плюс gui для управления всем этим anaconda-navigator, хотя, конечно все можно делать только с помощью conda через консоль, даже виртуальные окружения создавать, да conda еще и виртуальные окружения создает, да и вообще широкого профиля штука, работает не только с питоновским кодом, для любой программы можно создать conda пакет. А сам пайтон он и есть пайтон, ничем не отличается
>>1459008Про корутины с yield:https://medium.com/velotio-perspectives/an-introduction-to-asynchronous-programming-in-python-af0189a88bbb
Винда или линуха - вопрос века. Почти все кого спрашивал выбирали линуху, лишь некоторые не воздерживались от принятия сторон, за винду никто не говорил. Большинство живёт стереотипами или я что-то упускаю?
>>1459662> Винда или линуха - вопрос векаАбсолютно похуй, используй то, что тебе удобно, хоть макось. Весь софт, которым ты будешь пользоваться - более-менее кроссплатформенный. Всю жизнь кодил на винде, брат жив, зависимость есть, но в линуксы/под линуксы тоже могу.
>>1459662Я, к примеру, бэкэндер, мне винда не всралась.Хотя недавно звали на проект, которому лет так 20, там всё на винде и пистоне 2.
>>1459665Если я правильно понял, то это пиратская мак ось (поправь если не прав). Вопрос остаётся тот же: зачем менять привычную среду, + на хакинтоше могут появиться проблемы с драйверами, а конкретно - с их отсутствием
>>1459668Понятно, что всё в основном зависит от проекта, но по сути питон и там и там одинаковый. В плане процесса разработки какие ты видешь плюсы относительно винды, или ты сразу с линухи начинал?
>>1459664Так и делаю, но ведь если многие топят за линуху может там действительно есть что-то, тем более спрашивал не отбитых кодерков
>>1459676Начинал с винды, но затем пересел на линупс. Т.к. не всегда и есть нужные программы под винду, а если есть, то не всегда корректно и без пердолинга работают.Так же, когда пишешь ПО которое затем будет запускаться на линупсах, то тут как бы логично писать сразу на них.
>>1459675В 2019 хакинтош делается легко и просто.Будет несколько дороже, чем рандомный пк.Читай http://www.osx86project.org/Если возьмёшь правильное железо - проблем с драйверами не будет.
>>1459675>Винда или линуха - вопрос века>зачем менять привычную средуА зачем ты тогда задаёшь тут такие вопросы?Работай в привычной среде, не еби мозг ни себе, ни людям.
>>1459679> не всегда и есть нужные программы под виндуТут можешь поподробней?> когда пишешь ПО которое затем будет запускаться на линупсахЯ на вэб дэве, сервера крутятся на различных осях.
>>1459683> Тут можешь поподробней?> Я на вэб дэвеОчень скоро столкнёшься, значит.Просто иногда читаешь доки и обращаешь внимание на сноски уровня "протестировано на линупсе/не совместимо с виндой/под винду билдите сами" и т.п.> сервера крутятся на различных осях.Большинство на линупсе. На винде довольно специфические области сидят.
>>1459685> Очень скоро столкнёшься, значит.Опять пошли абстрактные ответы> Просто иногда читаешь доки и обращаешь внимание на сноски уровня "протестировано на линупсе/не совместимо с виндой/под винду билдите сами" и т.п.Никто не отменяет тесты на других системах, тут я опять же вижу плюс использования мной винды, т.к. в тиме всегда есть чувак, а то и несколько, с линуксом.
>>1459685>>1459687Это не аргументы.Для серверов есть виртуальные машины.Ещё есть докер.Разработка - это инструментарий - иде и прочее.Дескотоп на винде лучше, чем на линуксе.Десктоп на маке - ещё лучше.
>>1459687> Опять пошли абстрактные ответыОк. Я тебе приведу в качестве примера gunicorn, дальше что?> Никто не отменяет тесты на других системахЧто? Ты понимаешь, что ты несёшь?1. Если в ТЗ есть пункт про кросс-платформенность то на твоей винде никто ничего тестить не будет, для этого есть тестовые стенды.2. Я ни разу не видел что бы при написании серверного ПО был пункт про совместимость сразу с виндой и линупсом.Ты можешь видеть и фантазировать себе всё что угодно, реальная практика и задачи всё расставят по местам.>>1459693> Это не аргументы.Что именно?> Для серверов есть виртуальные машины.Причём тут это?> Разработка - это инструментарий - иде и прочее.Кроме IDE есть ещё ОС, от которой так же много зависит.Мне похуй на чём автор поста будет сидеть/писать, и лишь говорю очевидные вещи, что под винду пишут на винде, под линуксы на линуксе, и такая формула работает в 90% случаев, остальные 10 это исключения и узконаправленная специфика.
>>1459370 (OP)Ля, сделайте вы уже номер треду чего выебываетесь . Хоть с 1 считать начните, уже что-то
>>1459694А почему же тогда все, кто может себе позволить, сидят на маках?И крутят линуксы в докере или на вм, когдаа нужно?Не задумывался над этим?Да, для системного программирования - такой подход вполне оправдан.Но, опять же - есть виртуализация и докер.И опять приходим к тому же - делай, как удобно.
>>1459694> gunicornТы еще скажи, что wsgi для винды не существует.> очевидные вещи, что под винду пишут на виндеА под андроид на андроиде, да. На самом деле абсолютно похуй, под какой ОС запущен текстовый редактор, где ты нажимаешь кнопочки. Похуй, на какой ОС ты запустишь HTTP/wsgi. До тех пор, пока ты не начнешь парсить какой-нибудь procfs, скрипту будет абсолютно похуй, откуда ты его запустил.
>>1459696>А почему же тогда все, кто может себе позволить, сидят на маках?>И крутят линуксы в докере или на вм, когдаа нужно?>Не задумывался над этим?Статистику сюда
>>1459694> Я ни разу не видел что бы при написании серверного ПО был пункт про совместимость сразу с виндой и линупсом.Про джаву слышал когда-нибудь?Да и питон тоже вполне себе кроссплатформенный, хотя и не в такой степени, конечно.Джанга и прочее - работает на всех трёх платформах.
>>1459704>Иномарки популярнее жигулей, хотя и дороже.>Статистику сюда.>Выгляни в окно, лол.>Значит, статистики нет. Ясно.
>>1459662На линуксе питон и куча полезных штук стоят из коробки. На линуксе есть культура использования пакетных менеджеров, что радует.
>>1459710Это касается только быстродействия.Т.к. на винде и на маке добавляется (тонкий) слой виртуализации.>>1459709Тут надо понимать ещё одну вещь.Когда человек в состоянии воспользоваться преимуществами линукса (или юникса - мака) в качестве девелоперской машины, он обычно не задаёт таких вопросов, как >>1459662
>>1459697> Ты еще скажи, что wsgi для винды не существует.Сравни процесс пердолинга по установке wsgi на винде и установку его на линупсе.> А почему же тогда все, кто может себе позволить, сидят на маках?Тот же линупс. Да и кто все то? Я видел очень мало бэкэндеров на маках, зато куча их на линупсах.> А под андроид на андроидеМаняврировать не надо.>>1459701> Про джаву слышал когда-нибудь?> питонотредУёбывай.
>>1459693Удачи с докером на винде, кста. Помимо оверхеда, нужно будет ещё прилично поебаться с его установкой и настройкой.Кроме того, одно из основных преимуществ линукса - это его терминал и bash-lang.Да и вообще 99% серваков, на которые ты будешь деплоить свой сайт будут работать именно из под линукса, поэтому нужно уметь с ним работать
Подключился к малинке по SSH. Написал код. gtts в списке модулей интерпретатора имеется, на стороне малинки код работает, в редакторе модуль gtts видит - а в удалённом интерпретаторе пишет что модуль gtts не найден. Почему?
>>1459370 (OP)В сраном вузике сраный питон будет.А я писал только немного на Scheme в школе. Подскажите книжки по функциональному программированию на питоне, я знаю, что там есть лямбды и замыкания, не хочу задравчиать ООП по методичке.
>>1459662С линуксом вечный пердолинг, просто извечный пердолинг, потому если хочешь просто прогать - винда. На ней всё работает почти сразу, а если что-то и требует допилов - всё просто и понятно.А с линуксом - вот я с малинкой ебусь последнюю неделю - мне всего-то надо было говорилку запилить. Виндовых tts там естественно нет, есть свои - еспик например, который в распбиане отвалился после обновления ядра - в итоге я день ебался чтобы частично поднять его функционал, и он оказался говном. RHVoice - готовых дистрибутивов нет - надо собирать из исходников - ещё пол дня с этим ебался, получил половину функционала, потмоу что для полного функционирования под расбиан не хватает готовых дистрибутивов, которые тоже надо бы собрать из исходников. Линукс - это всегда ебля через ебля, и если нет конкретной задачи запустить что-то на линуксе - нахуй, не связывайся, базарю>>1459665С этим говном тоже не связывайся нахуй. Я конечно макось полноценную непользовал, но пообщался с мобильной на айпхоне - так там костыль через костыль костылём погоняет, я того маму рот ебал. Спасибо бил гейтс за твой мастдай, очень рад что приходится с опенсорс и прочей проприетарной парашей связываться крайне редко.
>>1459662Если ты разрабатываешь какие-то сервисы, сетевой софт и т.п., то тут линукс без вариантов лучше. Он лучше как ОС, там на больше инструментов, возможностей по настройке, мониторингу и т.п. Весь такой софт делается под никсы, что-то криво переносится под винду. Под виндой всегда будет ограничено и через жопу.Если делать медийку, что-то, что работает с видео, звуком и т.п., то тут уже винда впереди, под линукс всё ограничено и через жопу. Маки вроде как совмещают плюсы никсов и винды. Внутри это кодновые никсы, вроде БСД, но графику делали люди, которые в этом что-то понимают и это любят, много софта. Хотя я сам на маках не работал, но их любят. Я работаю на линуксах, но постоянно плююсь от убогости интерфейсов линуксового софта, работающего с графикой и видео. Нихрена не потрировано, портируют на винду и мак, даже то, что бесплатное. Линуксовое обычно всё вырви глаз. С библиотеками тоже засада.
Выучил синтаксис питона более-менее (на уровне лоха). Дальше планирую решать дохуя задачек, как только заебет сразу начать учить алгоритмы. А потом уже лезть в джангу, обмазываться фронтом и т.д.Годный план или я где-то проебался при его составлении?
>>1460113>Если ты разрабатываешь какие-то сервисы, сетевой софт и т.п., то тут линукс без вариантов лучше. Он лучше как ОС, там на больше инструментов, возможностей по настройке, мониторингу и т.п. Весь такой софт делается под никсы, что-то криво переносится под винду. Под виндой всегда будет ограничено и через жопу.WSL
>>1460122Не, серьезно сам придумал. Подумал, что так лучше всего закреплю теорию программирования в вакууме, а дальше уже на продакшен усы точить буду.
Нужно получить все возможные комбинации элементов двух массивов, что то вродеc = []for i in {'a', 'b'}:____for j in {'1', '2'}:________c.extend([[i,j],[j,i]])Но более изящно
>>1460125Врёшь, жопой чую. Ну пройдись по пайтону, порешай задачки, а потом лучше сразу в хтмл/css и жангу. А потом уже и алгоритмами можно шлейфануть, т.к. после пайтона алгоритмы ничего толком не дают - непонятно как и где применять, а без применения всё забывается. Ну моё ИМХО такое
>>1460138Какое тут враньё, лол? Подобная последовательность каждому второму начинающему питонисту наверняка в голову приходит.мимо
>>1460137import itertoolsitertools.product({'a', 'b'}, {'1', '2'})или в этом случае тоже самоеitertools.product('ab', '12')это чтобы получить комбинации вида a1, a2, b1, b2чтобы ещё и 1a, 2a и т.п.вот совсем красиво слёту не предложу, надо думать. Как вариант, две такие строчки, но вторая product('12', 'ab')Надо подумать, можно можно в одну записать.
Объясните, пожалуйста. Понятно, что имена должны быть со смыслом, но что насчёт нижнего регистра и подчеркивания? Это какое-то общепринятое правило или что? Я вот, люблю называть все в таком стиле makePizza, теперь мне придется функции называть так make_pizza?
>>1460459Я никогда не писал на яваскрипте. Максимум в универе на плюсах, и то лабы. Просто показалось необычным и стильным, поэтому решил таким образом задавать имена. >>1460464Спасибо, но можно конкретней. В моей пикче говорят про обязательный общепринятый стандарт определения функций, или просто рекомендация.>>1460497А как не убивают? Спасибо за ответы, друзья, но пока не разобрался.
Аноны, очень хочу на питоне писать, и возможность есть, но есть один неприятный момент. Я до этого долго писал на Java и NodeJS, и вот после них просто не могу никак перейти на питон, все не так, все неудобно, уже месяц пытаюсь.Может быть мне не суждено?
>>1460464Ага, это на бумаге все красиво, а потом мы идем смотреть на либы вроде BeautifulSoup, и оказывается, что на практике всем похуй, какие у тебя там буковки. У некоторых вон даже оба стиля сразу.
>>1460440Это просто стандарт оформления для питона, но ты не обязан ему следовать и не все следуют.В PEP8 много анахронизма, этому стантарту 20 лет.Переучиться с одного на другой не проблема, к этому быстро привыкаешь. В целом вариант с подчёркиваниями более читаем, может быть он разумнее, чем альтернативные варианты.
>>1459654Ок я вроде корутины и ассинхронщину понял.Или - нет. Но как их приделать к джанге в контексте нескольких пользователей я все еще не представляю. Вот у меня логика для одного пользователя дохуя затратная по времени. Я сэкономлю время для одного пользователя, того которым сейчас занят веб-сервер, допустим с помощью ассинхронщины или даже потоков, но он же все-равно блочит сервер? Это моя изначальная проблема и криво поставленный вопрос. Мне маня-сервер с уберхайлоадом представляется в следующем виде: на каждого клиента свой поток/ассинхронное выполнение. Тут да, тонкости: потоки ОСь выпилить может, их нужно разумное количество и т.д.Попробую сформулировать новый вопрос. Правильно ли я понял, что мне в качестве профессиональной бекэнд-макаки нужно оптимизировать код на параллельное выполнение для одного пользователя (типа тут await для бд, тут для другого сервера и т.д.), а число коннектов это - к Apache или на чем там сервер?
Стажируюсь в Яндексе, пишу асинхронный питон бэк, как прокачаться до уровня джуна-мидла? Стоит ли учить машинку и матстат если не очень вкатывает?
>>1460720Держиhttp://onreader.mdl.ru/UsingAsyncioPython3/content/index.html#ToCПосле прочтения можешь глянуть доку aiohttp и заставить лида яндекса сосать твой болт как писатель Лимонов
>>1460081>>1459370 (OP)В ПРОШЛОМ ТРЕДЕ ВСЕ РАСПИСАЛ, ЕБАНЫЕ ПЕРЕКАТЕРЫ, ДОБАВЛЯЙТЕ FAQ ИЗ ПРОШЛЫХ ТРЕДОВ В ШАПКУ, МЫ ДЛЯ КОГО СУКА ПИШЕМ?Тут адаптация SICP под Python на ангельском, если чуть-чуть запаришься, то найдешь все, что тебе нужно http://composingprograms.com/ОП-пидарас
Анон, я понял, что я нихуя не понял темы про стандартные объекты питона - списки, сеты, кортежи. Хуй знает, когда они используются и почему именно они, какие методы к ним применяются. Что можно почитать/посмотреть/послушать на эту тему?Английским владею.
>>1460797это понимание приходит с практикой. листы - универсальный инструмент, в них что-то накапливать, изменяя количество. тупли - легковесный контейнер с данными, этакий мини-дата-класс, сеты содержат только уникальные элменты, легко узнавать содержится ли всё что есть в сете А в сете Б и наоборот, убирать дубликаты (или автоматически их обрабатывать), находить пересечения. есть ещё дикты. дикты в сочетании с листами это мощный инструмент организации и хранения данных, см jsonчитать можно тупо доки, причем читать их ты будешь тысячи разhttps://docs.python.org/3/tutorial/datastructures.htmlhttps://docs.python.org/3/library/stdtypes.html#typesseqмимо говнокодер
Ебать джангисты хэлп ! Короче такая хуйня, когда я отправляю форму сохранения пользователя, сохраняет все поля (пароль, почта, юзернейм). НО эта хуйня не сохраняет картинки, в media нихуя нет просто. Можно изменить только через админ-панель. В pycharm ещё такая хуйня (пик-1) может с этим связано.
>>1460797Списки, по смыслу, это массивы в других языках. Задача в том, чтобы хранить данные, иметь возможность адресации по индексу, плюс куча операций по обработке таких массивов. Сам термин "список"/list немного вводит в заблуждение, а теории алгоритмов за другими структурами это понятие обычно используется.Кортежи (tuple) фактически те же списки, то только immutable. Ты один раз его создаёшь и уже потом не можешь изменить значения элементов. В целом больше сахар, чем что-то, что реально необходимо и полезно, наверное везде при желании можно списки использовать вместо кортежей. Но кортежи при этом очень активно используются.множества, set. Принципиально другая структура, смысл которой в том, чтобы хранить уникальные значения. Нужны, например, тогда, когда тебе нужно хранить список элементов где-то встречающихся и быстро делать проверки. Плюс возможность строить пересечение, сумму, разницу, что реально может быть полезным. Советую в первую очередь разобраться со списками, слайсами (срезами) списковm2 = m1[2:5]m2 = m1[::-1]вот с такими вот штукамиПотом со словарями. Это самые базовые структуры, всегда нужные.Потом уже с кортеражами и словарями. Литературу не подскажу, на самом деле в доках всё расписано прилично.
>>1460877>>1460887Спасибо за пояснения, анончики. Я, видимо, какой-то специальный в том плане, что теорию я понимаю, а вот с тем, как применить ее на практике - беда, еще с универа так. Учусь по лекциям Хосе Портилла на юдеми (до этого закончил Automate the boring stuff там же). После лекций у него обычно бывают контроши. Не знаю, рассчитывает ли он, что я должен решить все сам, или можно погуглить, но некоторые решения я нахожу только с гуглом, некоторые - вообще приходится смотреть ответы. Аналогично с задачками на codingbat.com - warm-up 1 и все первые части я более-менее делаю при помощи гугла, а вот со вторыми частями каждого топика - просто караул. Я понимаю, как работает срез в стрингах или списках, для чего нужна len(), но руки моментально заворачиваются в жопу, как только я пытаюсь применить это знание на практике.Итерации над списками - совсем пиздец. Порой не понимаю, как подступиться к заданию. Когда надо использовать for i in list, for i in range, for i in range(0,pen(list)-1) - я не понимаю различия этих действий. Вот что мне с этим делать?При этом дальше там в курсе пошло ООП. Я понимаю, что там самые азы, но зашло оно гораздо проще, чем вся вот эта функциональщина.Я тупой, или просто нужно больше практики? Если можно, порекомендуйте какие-нибудь ресурсы, где как в школе - прошёл урок с подробным изучением топика, потом делаешь домашку.
>>1460887> Но кортежи при этом очень активно используются.Тоже использовал, пока не посмотрел байткод. Накладные расходы на namedtuple съедают все преимущества tuple, без namedtuple пердолиться в индексы неудобно, а во всяких там for i in [3, 15, 10] вообще разницы нет. Фактически там, где tuple по-настоящему нужны, они и так используются всегда и неявно.
>>1460900Когда надо использовать for i in list, for i in range, for i in range(0,pen(list)-1) - я не понимаю различия этих действий.Посмотри видио на ютубе по генераторам списков. Или просто по циклам и как они работают.Я вообще хуй знает нахуя идти учить питон, если до него ты не имел дело с более низкоуровневыми языками
>>1460903Краем уха слышал про генераторы в питоне - это они и есть?Насчет спойлера - ну хз, я общался с разработчиками на работе, в принципе они говорят, что идти сверху вниз проще, чем снизу вверх. Чем выше уровень абстракции, тем проще.
>>1460906В общем это просто циклы, и использовать их можно как угодно, например как генераторы последовательностей. [x for x in range(10)] - вот тебе и сгенерированный список>Чем выше уровень абстракции, тем проще.Согласен. Но имел ввиду не сложность, а про само понимание процессов. Например Си и плюсы дали мне большой буст в начале.
>>1460908>[x for x] Хм, в моем курсе это было, называлось list comprehensions.А насчет буста - какая, по большому счету, разница, где я изучаю логику и алгоритмизацию действий? На этом уровне, по сути, различается только синтаксис ведь?
>>1460909Так то для изучения логики и алгоритмизации можно вообще не использовать ЯП. Я говорил про то, что например Си, научит пониманию и управлению памятью, указателей и тд. Тем более ты должен понимать разницу между низким уровнем и высоким, понимать как работает питон и чем он отличается от компилируемых языков.
>>1460902Кортеж это обычный tuple, так переводят.tuple несколько быстрее, чем списки, и чуть меньше ресурсов жрут. Основная область применения для упаковки небольших данных, когда две-три-пять переменных надо в одно передаваемое или возвращаемое значение упаковать. С этим начинающему надо сразу разобраться, используется постоянно. (x, y) = get_position()print(x)print(y)Для больших данных смысла, наверное, не имеют, разве что если использовать их как константный список, то есть когда надо гарантировать, что список не будет испорчен. Но как-то я не очень видел, чтобы ими так пользовались.
>>1460913У питона сильно выше уровень и ты как раз можешь думать о логике и алгоритмах, не отвлекаясь на технические детали. Я сам начинал с C и это было очень-очень давно. Слишком много магии, совершенно непонятной, пока ты толком не умеешь программировать. Мне кажется, и без C можно понимания достичь, как всё работает на низком уровне, скорее надо читать что-то про устройство компьютеров, операционных систем, ассемблер и т.п.
В шкалке я писал всякие нубские программы в консоли, а теперь мне нужна простая гуи прога, по сути калькулятор, чтобы не занимала много места и не требовала прав администратора (поставить на работе от пользователя). Что посоветуете, что покурить, чтобы написать такую? Tkinter или че там?
Хочу вкатиться в питон. В питоне есть аналог my пёрла? Чтобы, например не было ситуатций когда объявляешь перед циклом переменную tvoyu_mamku_ebal, в цикле собираешь данные в tvoyu_mamku_ibal и потом полчаса думаешь, какого хуя.
Прошу помощи нюфагу у здешних ананасов. Начал вкатываться через курсы на степик . орг и вот там задание есть простецкое на написание своего калькулятора. Все вроде спокойно и нормально работает, но когда я его там тупо отсылаю то прилетает Failed test #14. Wrong answer. Что означает о том, что на 14 попытке мой калькулятор где то проебался. Сам я вручную штук 20 перелопатил всякой хуйни и все работает как часы. В чем загвоздка?https://www.codepile.net/pile/j0K9Xa6L
>>1460992и до этого со временем дойдет, не переживай, анон. на одних тестиках я дальше таких простецких программ не уеду
Привет!>>1461003Пришел к вам из бэ, надеюсь на вашу помощь, 300кк/нсек богиЯ пытаюсь создать уведомление в Windows, используя библиотеку Plyer. Все отлично работает, когда запущен скрипт Python (.py). Но когда я пытаюсь создать исполняемый файл с помощью pyinstallerpyinstaller -F -i C:\<путь>\ico.ico C:\<путь>\name.py и запускаю исполняемый файл, я получаю эту ошибку: https://pastebin.com/taJaZVeyфрагмент кода: https://pastebin.com/zvMGughhБуду рад любой помощи, в том числе как решение этого можно нагуглить, сам искал, нашел пару схожих вопросов, но без решения>>1461003>Модуль не найден, спрашивай в Питухонском треде где должны раз ещатьсяСпрашиваю
Здравствуйте. Поступил на Математику в этом году, будем учить ваш Python на первом курсе. Какую IDE лучше взять? Боюсь взять не ту, что будет на компах в универе. Вдруг появятся какие-то проблемы при открытии кода в другой IDE. Я просто не особо в этом понимаю, если написал хуйню - не бейте. Мне бы лёгкую IDE-шечку, а не pycharm (который, я слышал, грузит комп).
>>1461037sublime хороший, в универе скорее всего будет пучарм, никаких технических проблем в теории[/быть не должно, единственное, мне например, было бы сложно днем работать в одной иде, вечером в другой
>>1461037Сублиме текст заебись, но с ним попердолиться надо - ставь пучарм или IDLE в у нивере будет IDLE, скринь
>>1461041>>1461050>>1461065Спасибо за ответы. А в spyder кто-то пробовал? Я там смотрю, пишут про визуализации в виде функций, всякие математические библиотеки.
>>1461088Здесь в основном вкатывальщики разного уровня уёбищности сидят.Попробуй переустановить винамп использовать гугл.
>>1461011>pyinstallerpyinstallerhttps://stackoverflow.com/questions/48875894/pipenv-and-pyinstaller-not-packaging-dependenciesКонечно немного не то, но что-то мне кажется что зависимости не видит при упаковке, возможно ты юзаешь virtualenv?
>>1461093https://stackoverflow.com/questions/48757977/how-to-include-dependencies-from-venv-directory-when-running-pyinstaller-for-proСобсно последний ответ должен помочь
>>1461103Ну обычно хорошая практика в пайтоне для каждого "проекта" создать своё виртуальное окружение и все зависимости ставить в него
>>1461111 File "site-packages\plyer\utils.py", line 96, in _ensure_objModuleNotFoundError: No module named 'plyer.platforms.win'No usable implementation found! =)
>>1461121недавно в питонепо моей логике import plyer должен импортить всю библитеку, со всеми вложенными, в том числе platforms>win>.., разве нет?
>>1461124>>1461125plyer это единственна библиотека(из тех что я применял) которая не импортнулась(?), я не понимаю почему, может слишком большая, если импортировать только ту функцию которая мне нужна, то все работает. Спасибо всем анонам в треде
>>1461207Юзай любой из вариантов, это не принципиально. Если в строке есть ' юзаешь " " (" ' "), если " соответственно юзаешь ' ' (' " '). В остальных случаях юзай что хочешь.
>>1461091>>1461088Ну попробуй другой конвертор в ехе, нютку попробуйnuitka --standalone --windows-disable-console --plugin-enable=qt-plugins --windows-icon="c:\convertor\icon.ico" --remove-output "c:\convertor\convertor.py"
Скиньте, пожалуйста, статью как развернуть Django. Пытался развернуть на heroku, упёрся в ошибку с модулями, неделю искал решение. Помогите
>>1460887>В целом больше сахар, чем что-то, что реально необходимо и полезно, наверное везде при желании можно списки использовать вместо кортежей. Но кортежи при этом очень активно используются.Кортежи обрабатываются эффектней списков.Если нужно последовательности поместить в множество или сделать ключом словаря, то нужно чтобы последовательность была неизменяемой, чтобы у нее был один и тот же хэш. Тут помогают кортежи.Кроме того бывает, что хочется, чтобы последовательность была неизменяемая, хотя бы для логической выразительности, например, бывают последовательности-константы.А еще надо учитывать разные подводные камни питона, например, если в качестве инициализатора для параметра по умолчанию указать конструктор объекта, это приведёт к созданию статического объекта, ссылка на который и будет передаваться по умолчанию в каждый вызов. Это может повлечь трудно уловимые ошибки, поэтому лучше для значений аргумента по умолчанию использовать неизменяемые типы.Вообще полезная штука.
Пишу (1 картинка), pytchrm ругается и предлагает вот такой вот вариант(2 картинка), въехать не могу чём прикол. Антон, помоги
Сап двач, какую книгу читать по структурам данных на питухоне?А то мне не вставляет смотреть 20 часов видео от хирьяноваЕБАЛ В РОТ ВИДЕВА БЛЯ
>>1461455>optional[Any]В кратце, это значит что это может быть любой тип или None.Dict[str, Optional[Any]] значит, что это словарь, с ключом типа строка и значением любого типа, при этом допускается, что значение будет просто None.Аннотация типов - это указание типа для переменных и функций. Это относительно недавняя и совершенно не обязательная для работоспособности фишка питона, более того, интерпретатор не следит, что там действительно именно те типы, что ты написал, но это могут делать специальные программы и среды разработки, это помогает находить ошибки делать программы более качественными и читаемыми для людей. В целом, полезно, рекомендую использовать. https://docs.python.org/3/library/typing.html#typing.Optionalhttps://www.python.org/dev/peps/pep-0483/https://www.python.org/dev/peps/pep-0484/https://www.python.org/dev/peps/pep-0526/
>>1461390> Если нужно последовательности поместить в множество> Тут помогают кортежи.from collections import namedtuples = set()Eek = namedtuple('Eek', '')Ook = namedtuple('Ook', '')s.add(Eek())s.add(Ook())# счастливой отладки
>>1461462А зачем мне namedtuple, когда мне нужны кортежи? Просто In [17]: s = {(1,2), (3,4)} In [18]: s Out[18]: {(1, 2), (3, 4)}И нет проблем
>>1461462Если надо засовывать туплы во множество, наверно, ожидается что у них будет разное содержимое, если хочется разные классы с одинаковыми полями засовывать в сет, так чтобы они там оба остались, надо просто создать нормальные классы и определить для них методы __hash__ и __eq__В данный момент более православно определять namedtuple примерно так:from typing import NamedTupleclass Employee(NamedTuple): name: str id: intВообще, можно побаловатьсяIn [46]: class Eek(NamedTuple): ...: def __hash__(self): return hash("Eek") ...: ...: class Ook(NamedTuple): ...: def __hash__(self): return hash("Ook") ...: ...: {Eek(), Ook(), "Eek", "Ook"} Out[46]: {'Eek', Eek(), 'Ook', Ook()}
>>1461458Честно? Не нравится немного. Слишком громоздко, попытка превратить лаконочный питон в энтерпрайз джаву или в плюсы, причём с тяжёлым синтаксисом и при этом плохой производительностью и надёжностью в плане реальной защиты от ошибок.
>>1461514Ну, смотри, бывает, видишь в новой незнакомой библиотеке функцию с кучей аргументов, и, даже после ознакомления с доками, не всегда сразу удается сообразить, а чем эти аргументы могут быть, а чем не могут, и какой должен быть результат выполнения функции, а аннотации реально ускоряет освоение нового материала, кроме того IDE может оперативно подсказать, если, вдруг, начинаешь случайно творить хуйню, это всплывает сразу и без падений при запуске и без отладки с дебегером. Уверен, со временем и интерпретатор научиться использовать эту информацию для генерации более оптимизированного кода, как и проекты вроде Nuitka, Cython, Numba, PyOxidizer и прочих, которые позволяют генерировать из питона исполняемые файлы, для ускорения и возможности удобного распространения
>>1461531> функцию с кучей аргументовЛучше бы документацию писали нормально.> аннотации реально ускоряет освоение нового материалаНи разу не пригодилось.> IDE может оперативно подсказатьТормозящее говно не нужно.
> В некоторых областях (например, обработке строк с использованием регулярных выражений) у Python существуют эффективные реализации, не уступающие по скорости любым программам C, а то и превосходящие их. Почему так (как это работает? регулярки вынесены в отдельный модуль и работают нативно на С или еще как?) и в каких еще областях?
Аноны, есть какие то гайды по Django AJAX? Сколько уже не смотрел юутуб, ни как не пойму эту джаваскриптовую парашу.
>>1461642Ну там же нужно делать специальные вьюхи, которые будут возвращать json. И уже ajax с этим работает. Или как там ? Я так и не понял. Просто я делаю сайт магазин, и меня жутко бесит, что нужно каждый раз обновлять страницу чтобы например добавить предмет в корзину.
Скачал pycharm, везде эти подчеркивания, как я понял проблема в пробелахВообще это первый мой проект и я в notepad++ делал отступы через tab, а оно похоже на это жалуется? Что с этим делать?
Анон, помогите плес распарсить жсон. Нагуглил простейший метод решения:import json# some JSON:x = '{ "name":"John", "age":30, "city":"New York"}'# parse x:y = json.loads(x)# the result is a Python dictionary:print(y["age"])Но проблема в том, что у меня жсон несколько сложнее и выглядит вот так:https://pastebin.com/e9TKhRq0Мне нужно запулить переводчик, чтобы odno_naimenovanie, odin tip: 1 парсилось в "наименование такое-то, тип такой-то, кол-во 1".Как это сделать?
>>1461719на лампочку жми - там будет предложение исправить.Или есть какая-то комбинация, если не ошибаюсь - ctrl+alt+L - жмёшь - и она тебе весь код к ПЕП8 подтянет.
Анон, привет. Не знаю, принято или нет тут подобные вопросы задавать, но мне интересно. Вот если с полного нуля начать сейчас учить питон, через сколько время я смогу куда-нибудь джуниором устроиться, ну либо первые заказы на фрилансе брать? Программировать хочу и для души, ну и чтобы профит тоже был, потому что денег сейчас вообще нет. Недавно уволили с работы, поэтому ещё немного, и жрать нечего будет. Заранее спасибо за ответ.
>>1461747>Вот если с полного нуля начать сейчас учить питон, через сколько время я смогу куда-нибудь джуниором устроитьсяЗависит от тебя, кто-то за пол года вкатывается, кто-то за несколько лет осовить не может>ну либо первые заказы на фрилансе братьКогда настакаешь 2-3 года опыта
>>1461749> Зависит от тебя, кто-то за пол года вкатывается, кто-то за несколько лет осовить не можетХорошо, спасибо. Мотивация, в принципе, есть. Голодным сидеть не хочется. Да и живу в миллионнике, может и повезёт.> Когда настакаешь 2-3 года опытаНихера себе. Да ну нахуй, лучше джуниором куда-нибудь, чем жопу себе за каждого заказчика рвать.
Пытаюсь написать волшебный [/sговно-]ОРМ, но волшебство обламывается на запросе в БД: хочу, чтобы запрос был один, при этом хочу цепочкой методов навешивать условия типаquery = User.select('user', 'id', 'password').order('id').limit(100)Там со вложенными where и всей красотой.Надо как-бы научить цепочку методов понимать, что за ней ничего дальше нет, но она-то выполняется слева-направо. Че посоветуете, кроме как сделать бочку?
>>1461827Ты не поверишь, но, это называется "билдер".И в конце должен быть специальный метод, типа .build() или .end() или .exec() и т.п., в зависимости от того, что именно ты делаешь.Внутри вызовы накапливаются, и заключительный метод их все вызывает так, как нужно.В твоём случае, это может выглядеть так:query = Query(User).select('user', 'id', 'password').order('id').limit(100).end()Query - это билдер.
>>1461843Блин, а правда тупо билдер-паттерн. Я о финальном методе тоже думал, но хотел без него обойтись.Спасибо
А как сразу несколько методов применить к одной переменной?Например вместоstr0=l[0].strip()l0=str0.split(' ')писать что-нибудь вродеstr0=l[0].strip().split(' ')
>>1461926Это не "несколько методов к одной переменной", это цепочка преобразований значения.Вот так, в цепочку и пиши, если можно, для данных методов.И погугли композицию функций.
Аноны, меня аш трисёт, почему в литературе пишут, что множество, set - неупорядоченный тип данных, а кортежи и списки - упорядоченный, а по факту - наоборот, только в set данные автоматически упорядочиваются?
>>1462086Потому что в каком порядке ты положил в list или tuple в том оно и будет храниться, set же хранит со своей расстановкой и т.д.
>>1462086> данные автоматически упорядочиваются>>> set(['a', 'c', 'b']){'b', 'a', 'c'}И каким же образом они упорядочиваются?
>>1462106А теперь повтори с {3, 2, 10}. А еще оно вообще может при каждом запуске в новом порядке хранить (раньше точно могло, деталей не помню).
>>1462086Пушто ты по индексу не можешь к ним обращаться. Пушто порядок их хранения в этом типе вообще не важен. Важен факт принадлежности к конкретному множеству
Анончики, решил немного ускорить асинхронный for с помощью создания таска на загрузку следующего значения итератора.Есть у такого способа какие-то подводные камни?https://repl.it/repls/DualMustySpreadsheet
>>1461854Да, разобрался со вложенностью, спасибо!А как мне теперь это перевести в удобоваримый формат, т.е. назвать человеческим именем?Грубо говоря, жсон отдает {"instrument": {"drel": "10"}}А мне нужно, чтобы питон это распаршивал как "Инструмент дрель: 10".Я так понимаю, надо воспользоваться словарем? Ключ - закодированное имя в жсоне, значение - декодированное имя на человеческом языке. Но как это изложить в виде кода - вообще хуй знает.Не программист, не унижайте
>>1462146Хотя даже нет, тут сложнее выходит. Дело в том, что в приведенном ниже примере 'drel' может быть вложена в разные "ключи", и от этого парсинг будет отличаться. Грубо говоря:"instrument": {"drel": "10"} ---- инструмент дрель: 10"parts": {"drel": "12"} ---- запчасти: 12
>>1462148>drelНу ёбаный стыд же.Эта задача не столько про питон, сколько про данные.Решение зависит от твоей конкретной модели данных.Нужно переводить с учётом иерархии (контекста).Строй пути через точку - "instrument.drel", и используй, как ключи.Как-то так.Но, для данного примера было бы естественнее так:Инструменты:-- Дрель: 10-- Лобзик: 50Т.е. для каждого уровня иерархии - свой словарь.
>>1462128В чём твоё ускорение заключается? Я пока не очень понимаю логику написанного, но фактически суть в том, что в одном случае ты выполняешь цикл видаfor i in range(20):await asyncio.sleep(0.1)await asyncio.sleep(0.1)Во втором случае ты одну из этих операций оформляешь в задачу, то есть фактически запускаешь параллельно внутри тела циклаСоответственно, в одном случае у тебя 4 секунды ((0.1+0.1)20), в другом 2 секунды(max(0.1, 0.1)20)Но мне скорее не понятно что ты делаешь и зачем.
>>1459370 (OP)Почему у tkinter на убунте так хреново отображается кириллица, причем шрифт мало влияет на это? Можно ли что-то с этим сделать, может шрифты какие специальные установить или что? У меня Ubuntu 18.04, python 3, у Tcl в tkinter версия 8.6
>>1462191Дефолтный async for начинает запрашивать следующие значение только после завершения блока кода в теле цикла, если в цикле происходит другой await, то по идее можно начать запрашивать следующее значение заранее, если оформить его в виде таска.
>>1462192Прямо пахнуло 90-ми, лол.Тут недавно было про выбор ос для разработки (>>1459662 etc)Эта картинка - отличный аргумент в пользу винды/мака.По теме:https://python-scripts.com/question/16952Вообще, думаю, дело в том, что эта часть в tcl как раз с 90-х и не менялась.
>>1462195Это очень разумное поведение. Ты сначала обрабатываешь один запрос, потом следующий. Вот представь, что ты читаешь что-то из сокета и туда же ответ высылаешь.Ты опираешься на какие-то допущения, что можно смело считать следующую итерацию цикла, не окончив предыдущую.Мне вообще не понятно, зачем тебе асинхронные циклы. Всё как-то тяжеловесно. Используй, например, очереди задач. Ты можешь сделать очередь из 1-2-много элементов. Эту очередь заполнять одной асинхронной задачей по мере того, как она освобождается. Смотри asyncio.Queueв другой задаче ты вытягиваешь элементы из этой очереди и их обрабатываешь.Это совершенно типовой подход, он намного более гибкий и понятный.
>>1462195>>1462206Ещё дополню.Цикл по своей природе синхронная конструкция, их вообще дурной тон использовать. Но иногда надо, когда надо именно последовательно в один поток что-то обрабатывать. Сейчас общий тренд использовать очереди сообщений. И в асинхронных программах, и в многопоточных, и при для связи нескольких приложений используют специальные очереди сообщений.У тебя так реально больше возможностей. Например, ты можешь легко целым пулом задач обрабатывать свою очередь. Цикл это частный случай очереди упрощённого вида:for x in my_gen():queue.put(x)z = queue.get(x)process(z)
>>1462181Анон, спасибо большое за идею. Все получилось сделать через итерацию через for, вложенный в for.
А схерали ошибка-то?Я разделил сплитом каждую строку на два куска, разделителем служит ' - 'Значит у меня должно получиться два элемента списка - 0 и 1.Вывожу 0 и 1, оба элемента выводятся, но вываливается ошибка.
>>1461953>Это не "несколько методов к одной переменной", это цепочка преобразований значения.Вообще-то strip и split это именно методы."Цепочка преобразований значения" - неведомая хуйня, которую ты только что выдумал, такого термина в python нет.
>>1462525Засплить и запиши в отдельную переменную, а потом уже используй обращение к массиву по индексу. Мозга не еби уж.
>>1462525Для отладки сделай или печать строки перед этим, или в tray-catch посмотри.Мне кажется, что у тебя или пустая строка попадает в обработчик, или строка вне этого шаблона. Вот на этой строке у тебя программа и валится, поскольку после split там список только из одного элемента.
Почему картинка превращается в говно? Как победить? Как клеить полупрозрачные картинки на прозрачные? alpha_composite() работает нормально, но у неё нет смещения. А надо клеить со смещением.
Штош, сегодня будет собес на мидла, на ЛЕГАСИ прожект.Запилить анонам отчёт небольшой?Да, на питоне уже есть легаси, даже не на джанге/odoo. Со слов собеседующего, прожекту 20лет, сейчас только планируют переезжать на пистон3. Проект занимается обработкой и вытягиванием данных из всяких документов(чеки и т.п.).
>>1462564Пили. Всегда интересно, как у всех проходят собеседования, потому что у меня одно и то же и всегда нахуй.
>>1462568> всегда нахуй.Зачастую так же.Раньше перед собесами повторял что-то, сейчас же иду как есть и похуй.
>>1462574Много уже куда ходил? Я вот всего-ничего, но видя как мои знакомые, которые со мной на одном уровне знания находятся, проходят с первого раза, совсем теряю мотивацию чо-т. В общем, пили прохладную потом. Если что, порадуюсь вместе с тобой; а нет, так поддержу.
>>1462581Да я уже третий год работаю, за это время много куда походил, много собесов прошёл, пару тестовых на хуйю повертел.В прошлых тредах от меня был большой пост со списком вопросов с ласт успешного собеса.
Анончики, а может кто давать реальные задачи несложного уровня? Прочитал с выполнением книгу из шапки Head First, понравилась подача, но там как-то всё через веб показано. Ещё четверть лутца прошел, дальше не осилил.Зарегился на codewars, но там тоже через чур все задания абстрактные. Вроде несложно, но подумать приходится.Почта [email protected]
Подскажите, где можно задачки найти? Я вот прошел темы операторов if, while, for, break и continueДля закрепления хотелось бы задачи с ответами
Подскажите, почему string является неизменяемым типом данных, но при этом допускает метод .replace?>>1462655проект эйлера, ответы в интернетах.
>>1462656>Подскажите, почему string является неизменяемым типом данных, но при этом допускает метод .replace?Потому что тебе возвращается новый объект строки
>>1462656> Подскажите, почему string является неизменяемым типом данных, но при этом допускает метод .replace? ответы в интернетах.
>>1462564Ну что ж, собес всьо.Т.к. прожект написан на чистом питоне, соответственно и вопросы были по чистому питону:Генераторы и примеры юзания. Контекстный менеджер и примеры + как в классе/функции. Инкапсуляция в питоне, как работает _ и __. Property. Мета-классы(соснул хуйца без вариантов, никогда не читал даже про них, идиот). Множественное наследование в питоне2/3. Как вызвать метод конкретного родителя. Как идёт поиск метода в родителях. Super. Init/new/call. Slots/dict. Правила импорта, что делает __all__=[]. Как запилить синглтон(не знал что это, а тут узнал и охуел). Вроде по питону всё.Вопросы по докеру были, но банально "как юзал, почему, какие проблемы были". И по линупсу, так же "юзал или нет", но они на винде сидят.Собес был коротким, минут 40 по факту, именно технической части, ещё 15 беседы до и после с hr.Возможно ещё что-то вспомню.
Как разобраться в асимптотике?Может есть какая-нибудь хуета в стиле codewars где я бы такой смарел на код и в ответ мне надо было бы определить всю эту О(1) хуйню, а если бы я ошибся меня разобрали по частям так сказать.
>>1462626Напиши мне скрепт, который на вход принимает ник твитч-стримера и ищёт трансляцию, на которой данный стример присутствует в чате. Ну то есть на выходе тоже должен быть ник стримера, либо сообщение, о том что в данный момент стример не смотрит никакой трансляции
>>1459662Мне например недавно чле который написал и поддерживает софт на с# в госшаражке сказал что ему больше нравится виндовс потому что она более гибкая. там в кроне 8 параметров заместо 6 в линюхе.
аноны поясните нюфане почему в таблицу в отдельную не выводит? во внешнем цикле хочу вывести первый столбец с переменными, во второй хочу вывести второй столбец с переменными, но он выводит тупа подряд все в один столбец
>>1462775потому что ты сделал какую-то неведомую хуиту. Зачем цикл на один оборот? Зачем цикл в цикле? Что тебе надо, я не понел?Сделай просто принт с пробелом:print('a'+' '+'b')
>>1462775Смотри доки по функции printhttps://docs.python.org/3/library/functions.html#printпосмотри на параметры sep и endпо-умолчанию end это перевод строкиВообще надо это несколько иначе реализовывать.
>>1462775дополнюможно писать так:print(a, b, c, d, sep='\t', end='\n'), хотя end тогда не нуженесли у тебя переменные в массивеm = [a, b, c, d],то можноprint(*m, sep='\t')
>>1462778надо сделать простую таблицу умножения типа с чисел которые я подаю на ввод. от сижу думаю как это реализовывать>>1462779>>1462783спасибо анон, надеюсь поможет
Пилю прохладную ночную твою, может что посоветуете. Две недели назад, психанул и уволился, как говорят, в никуда, с должности дата онолитека в геймдеве. Уволился отчасти потому-что рутина задавила, все вопросы которые решаются "на характере", я тупо игнорил. Да и менеджерить у меня никогда не получалось, а обязанности всё больше уходили в сторону от технических. По-этому решил отдохнуть и перейти куда-то в более техническое направление. Друг посоветовал вакансию того-же аналитика но по описанию и требованиям всё больше походило на какого-то инженера (знание и умение пайтон, API, SOAP, архитектура БД немного, сетевые протоколы немного, процедуры и пользовательские функции в БД), от аналитики только требовали АБ тесты. Обязанности - пилить аутсорс аналитическую\CRM платформу и в дальнейшем ее же обслуживать иногда внедряя фантазии клиента. Ну я прям загорелся, даже сделал тестовое на питоне (реализация сортировочной функции). Тестовое по аналитике сделал - не заметил (подключения в табло, настройка дешборда и пара скриптов запросов в БД, немного расчётов). Когда была встреча с технарём и аналитиками - меня тупо размазали как суку. Нихуя не знал я о PEP8, о наследовании, о __init__. Кароч завалился по полной по части теории Пайтона. После встречи сидел дома и учил то что вспомнил из вопросов, но это уже лирика.Кароч, у кого был опыт вкатывания перекатывания в похожую область и как искать похожие вакансии конторы, т.к. должность и не аналитик полноценный и не дев и не инженер.Только, блять, не спрашивайте почему я в ебучий МЛ за 300к\сек. не укатился
>>1462900он же написал >подключения в табло, настройка дешборда и пара скриптов запросов в БД, немного расчётов
>>1462907>>1462900Любят родину и радуются солнцу. В зависимости от проекта. Лично я и похожие мне искали проебы гейм девов в создании фич(аб тесты) оценивали их в далларах, с умным лицом сидел на встречах присекая попытки запилить что-то, что в теории может вытянуть проект из жопына самом деле - нет, вспоминая оторванные от реальности показатели прошлых реализаций таких фантазий. Ну и конечно рисовал забавные графики с натянутыми эстимейтами.
>>1462922Зоебал, не манагер, но похуй. 1.5k у моих-же коллег - 2.5 из-за того что манагеры они. Где надо там попиздят, где не надо - на меня скинут. По тех. части они были 0, ели могли запустить запустить выгрузку с БД или рассчитать что либо не в экселе. Опыт 1.5 года в гейдеве, 2 года в айти маркетинге (гейм траффик) ну и куча мелких подработок ранее. Со всем стаком скиллов синьора. Умею немного в администрирование БД.
>>1462927> ЗоебалИзвени> 1.5kДа ну ебана в рот блять. Я хуею.Может тоже в аналитики пойти, всё равно на встречах с заказчиками сижу и поясняю за техническую часть. Недавно суперсет освоил для своих целей.Ладно, хуй с тобой, блять.Как по мне - ебош через линкедин, там хрюши пасутся, найдётся и для тебя вакансия. Пиши что аналитик, что опыт есть, сеть расширяй и найдёшь себе лакомый кусочек.
>>1462929>1.5к>Да ну ебана в рот блять. Я хуею.>Может тоже в аналитики пойти,Ты совсем э-бо-бо или тролишь тупостью?>ебош через линкедин, там хрюши пасутся, Спасибо, Кеп. Я уже депресуху ловлю от того что не попал куда хотел. А отступать назад в гейдейв - унизительно. Получается я сорвался в никуда, походил поунижался по собеседованиям и вернулся туда-же.
>>1462937Держиhttps://pastebin.com/sTeKcWU1>>1462932Я шучу конечно, работа звучит адско, но 1,5к по меркам неДС - охуенно, не так ли?Я получаю сейчас 1,4к, а ебут на собесах не слабо, да и во время работы иногда пригорает.> Спасибо, КепЗря ты так, для многих это новость, даже +/- опытных, что линкедин решает.> не попал куда хотелВсякое бывает, не ссы.> Получается я сорвался в никудаThis. Хуйово, надо иметь запасной план всегда.Тогда я не понял кем конкретно ты хочешь быть.Как искать - я тебе КЭПанул, а что искать - думаю сам для себя знаешь.Литература для изучения есть в шапке.Задавай конкретные вопросы и анон поможет.
Аноны, подскажите по архитектуре приложения и либам.Есть задача запускать на 40 linux клиентах параллельно одно и то же приложение suricata.Нужно следить и за статусом этой хрени онлайн и централизованно собирать логи и объединять их.Не понятно как лучше сделать, с сервера лазить по SSH из Python скрипта или с клиентов лезть на сервер статус сообщать и логи выгружать по мере накопления.Не могу понять на чем и как это лучше реализовать. Пока смотрю в сторону Netmiko\Paramiko\TextFSM или Ansimble.
>>1462944>но 1,5к по меркам неДС - охуенно, не так ли?Если сравнивать с зарплатой кассира супермаркета - то охуенно. Но есть реалии, где эта сумма, если отбросить софт скиллы и няшность - немного маловата. Даже не в ДСах. >Задавай конкретные вопросы и анон поможет.И так, снова вопрос: как называется та должность на которую я пробовал устроится? Потому-что у нее был заголовок - Дата аналитик, но это, как вы поняли по описанию - нихуя не он. Какой-то недоинженер-прогер. Стак скиллов который требовался и задачи - очень понравились и я даже бы хотел целенаправленно развиваться так.
>>1462952> Если сравнивать с зарплатой кассира супермаркета - то охуенно. Но есть реалии, где эта сумма, если отбросить софт скиллы и няшность - немного маловата. Даже не в ДСах.Страшно далек ты от народа.Ну да ладно.> И так, снова вопросВозможно, это всё тот же дата аналитик, с бэком питона. Соответственно это их локальные заморочки и ничего схожего ты не найдёшь. Ради интереса можно ещё раз попытаться на ту же вакансию, хуле нет?P.s. Если ничего тут не подскажут дельного - сходи в "мы вам перезвоним" тред и там поинтересуйся, всё-таки круг там пошире будет.
>>1462958>Страшно далек ты от народа.Страшно далёк ты от жизни.> Ради интереса можно ещё раз попытаться на ту же вакансию, хуле нет?Никогда в жизни этого не делай, как и никогда не отправляй резюме без вакансии в контору где хочешь работать, типа чтобы тебе перезвонили. На прошлом месте ходил на кофе иногда с рекрутёршей которая меня захантила. Она рассказывала что среди непорядочных ейчаров есть практика пробивать по своим о кандидате. И если ты или придёшь на собес во второй раз не раньше полугода или отправишь своё сиви с просьбой "Рассмотреть" - автозашквар. > "мы вам перезвоним" Даже забыл о нём, уношу туда.
>>1462965Бля, мнение какой-то овчарки воспринимать как экспертное. Большинство носится с своими каким-то шизофреническими методиками, у каждой своя. Единственное что их объединяет - чувство собственной невъебенности, правоты и глубокого понимания вот этих вот забитых кодеров. Штурм конкретной конторы надо начинать с чашки кофе с работающим там сотрудником. С опросом на предмет состава отдела кадров, ебанутости и численности HR, кадровой политики и возможности прямого контакта с лидами, дирекцией и менеджерами.И до рассылки левых предложений офисной мебели и попытки разместить там проект от лица левого заказчика с целью зондирования финансового состояния и кадрового голода на те или иные вакансии по отделам.ИБ иногда совмещающий с PM мимопробегал
>>1463127Чувак, если ты привык работать рядовым гребцом, то тебе оно в принципе не надо.А в целом, чел все правильно говорит. Если ты идёшь в контору хотя бы лидом, то все надо пробить.
>>1463149Семён не семёнь. Таким говном занимаются или секретарши или президенты корпораций. А другие когда такое проворачивают - со стороны как шизоиды.
>>1463157Это абсолютно нормально.Компании пробивают специалиста, специалист пробивает компанию.Особенно когда у тебя есть выбор куда идти
>>1463157Ну вот, потому что среднему кодеру неловко быть шизоидом и поболтать за чашкой кофе лишний раз, на таких даже сраные овчарки с интеллектом и подготовкой как у табуретки ездят.Все сходится.И вот это >>1463149 не я написал. Хотя удивлен, что в этом треде явных джунов и студентов кто-то одобрит.тот же ИБ мимопробегал
>>1463166Контур.Фокус вам в руки например. А то некоторые любят устроиться в контору которой история мойки-помойки и дебиторка в внешний долг США. А потом ебушки-воробушки, зряплату не платят 2 месяца, чтож это такое творится.
>>1463168Видать ты вообще не понимаешь ничего в рынке и продуктовой разработке. Ты когда видишь вакансию от компании и читаешь ее название - у тебя должен выстраиваться ассоциативный ряд о продукте, сегменте, последних новостях. И тебе не нужно ходить где-то подлизывать чтобы узнать очевидные вещи. Ты же не пойдешь в трезвом уме устраиваться например ПМ в крипто контору, понимая что на тебя все висяки лягут. Никто никого не пробивает, сука, такое чувство будто ты какой-то сбшник или менеджер по логистике нахуй. >>1463167Я уже пригораю от тебя, как могут овчарки на ком-то ездить кроме самих же овчарок. Она тебя заставит ее сраный ексель заполнять или коробки офисным говном таскать. Как показывает опыт, если у тебя нет скиллов и мозгов, то ты пробуешь устроится через знакомых и подлизывая ейчарам. Таких сразу нахуй обычно посылают.
Анон, подскажи, с какими задачами вообще сталкивается работник (желательно, конкретные примеры)? Учу понемногу питон, но не очень понимаю, что вообще меня может ожидать при вкате на работу.Прошёл базовый курс в яндекс.практикум, но всё равно не очень понимаю реальные задачи, которые могут встретитьсяПонимаю, что всё сильно зависит от сферы деятельности компании и от проекта, но тем не менее, наверняка у начинающих задачи плюс-минус схожие
>>1463199>должен выстраиваться ассоциативный ряд о продукте, сегменте, последних новостяхМил человек, ты дурак или тебя маркетолог покусал? Ты еще предложи на пресс-релиз для клиентов с тонной говна и лапши ориентироваться. Или мы уже о покупке акций фирмы на волне хайпа обсуждаем?Для вменяемого человека больше о реальном финсостоянии фирмы скажет, куда с любовницей нач отдела летал последний раз. Но ты ведь у нас наверняка самый-умный-у-мамки-погромист и ЧСВ с отсутствием соц навыков тебе не позволит это узнать.
>>1459370 (OP)Сап, двощ, вообще не могу въехать в концепцию итерируемый объект-итератор-генератор.Прохожу курс на степике, и вообще не понимаю тамошнюю задачку.Может подскажешь чего про это почитать-порешать
>>1463213Ну ты такой подходишь к объекту и говоришь, ща тебя итерировать будем, маня, готовь итератор и вызываешь у него __iter__, который возвращает тебе итерируемый объект.Гришь ему, показывай, что в карманах, сука, вызывая __next__, смотришь чо там у него лежит. Делаешь так пока все не заберешь, а когда завизжит StopIteration, можешь не ссать, он не наебывает и правда все отдал.
>>14632331,4к$ вилкаНа бэкэндера, в команду к 2 МЛ-товарищам.Локация - Минск.>>1463238Скорее ближе к мидлу, как по мне. Но лычек мне никаких не давали.>>1463241Yep.
>>1463242На 100 рублей потоки, процессы, архитектурные особенности Redis с намеком на HighLoad, паттерны. Хорошо еще лучшие практики рефакторинга не спрашивают. Они у вас там совсем охуели в край?
>>1463242>вилкаЧто тут значит вилка? Сори за тупой вопрос, я новичок>>1462604>Да я уже третий год работаюИ это ты получается писал, что у тебя 3 года опыта? А сколько до первой работы учил язык?
>>1463238> джун> собственное API> многопоточность> асинхронная обработка Хуюн. Еще одна ебанутая жертва совкового стиля собеседования.
>>1463243Ну вот так.Да и нужен им был человек-оркестр, они его получили.>>1463244> И это ты получается писал, что у тебя 3 года опыта?Да, ну у меня только месяц как третий год начался. Когда устраивался к ним, было ещё 2,5.> А сколько до первой работы учил язык?Пол года примерно, но не очень активно, т.к. работал на днище-работе параллельно.
>>1463246>Пол года примерно, но не очень активно, т.к. работал на днище-работе параллельно.Я просто планирую полгода активно учить пайтон + английский дотянуть до B2, сейчас у меня +-B1 и потом поехать куда-нибудь работать, например в Минск, Мск, или даже Питер. В общем без разницы особо, главное что бы норм джуном взяли и развиваться дальше.Получается у меня может получиться? А то в гугле прочитал, что устроиться без опыта работы на самую первую довольно сложно
>>1463233Это паста от того самого легендарного армянина, которую от по 90 долларов всем продаёт?Там слишком много всего понамешано, от простых вещей до сложных технологий, которые серьёзного опыта и понимания требуют, чтобы с ними нормально работать.Джун vs сеньёр больше про опыт работы, понимание, как решать реальные проблемы, опыт решения больших задач и т.п.
>>1463249> Я просто планирую полгода активно учить пайтон + английскийНорм план. В Минске роаботы для ждунов не очень много(ищут ждунов с опытом, дегенераты блять). В ДСах думаю Ок всё будет.> устроиться без опыта работы на самую первую довольно сложноТаки да, я же не сказал что моя первая работа была в офисе. Я начал с фрилунса(мне повезло), затем вертел жопой и активно двигвал тазом в поисках других работ(начиная с групп в вк и продолжая телегой). Хаполнял гит, читал статьи.В результате, после увольнения с дно-работы 4 месяца искал новую и взяли в рога и копыта. Но не похуй ли? Ведь появился "реальный" опыт работы. Вот и всё.>>1463251> Это паста от того самого легендарного армянина, которую от по 90 долларов всем продаёт?Чтоблять?> от простых вещей до сложных технологийВсё так. Но никто не говорит тебе идеально знать принцип работы и подкапотность Redisa, к примеру, достаточно работать с ним немного и знать что и как в нём сделать.
>>1463256>В ДСах думаю Ок всё будет.>искал новую и взяли в рога и копытаА ты в каком городе это делал? Если в дс, то сколько платили на первой работе?Просто даже если джуном устроиться там < чем за 50к, то просто по деньгам сложно выжить будет, если конечно не жить в хостеле или комнате
>>1463273> А ты в каком городе это делал?Минск жи, но я сам отсюда, так что с жильём проблем не было.Первая зп была - 400$, но я ещё фрилансил.Были коллеги из других городов, они снимали или квартиру со знакомыми, или комнату.Я про ДС-цены мало что знаю так что ничего не смогу подсказать.
>>1463273А до того, как устроился работать, как выживал? Почему ты думаешь, что вот столько времени жил, ничего толком не зарабатывая, а потом бац, и сразу средний класс?И ещё, на многих невайти работах 50к не начальная ставка, а уже для тех, кто много и прилично работает. Но живут же люди.Всё-таки нельзя сразу рассчитывать на крутой уровень. Только при торговле своими отверстиями малый опыт в плюс. Объективно, ты просто ещё мало чего можешь и умеешь.
>>1463293>бац, и сразу средний класс?>И ещё, на многих невайти работах 50к не начальная ставка, а уже для тех, кто много и прилично работает. Но живут же люди.Да я понимаю, это такой провал конечно, даже в центре такой страны такие настолько маленькие зп.Просто например:30к снять квартиру, далеко от центра, 5к на проезды и мелочи, 10к хотя бы на еду. Остается 5к всего от 50. >>1463293>Всё-таки нельзя сразу рассчитывать на крутой уровень.Я это прекрасно понимаю, просто нужны деньги что бы хотя бы выживать первый год, ладно забить на то, что бы откладывать на что-то, путешествовать, но хотя бы жить где-то и есть надо
>>1463346Ты относишься так, что или всё, или ничего. То есть ты живёшь или за чужой счёт, или сразу снимаешь отдельную квартиру, откладываешь и путешествуешь.Для многих зарплата в 50 это то, к чему надо долго стремиться. И они при этом тоже как-то живут. С тем же жильём, есть опции съёма комнаты, съёма квартиры на пару и т.п., помимо жития у родных/родственников.Я как бы понимаю, что ты хочешь сказать. Но не всё так просто в жизни. Да и в Москве всё-таки больше 50 платят даже джунам. Это сейчас ещё хорошо, сейчас тот же съём куда доступнее, чем 10 лет назад.
>>1463245Совершенно нормальный набор знаний для выпускника. Конечно, без реального коммерческого опыта, но всё-таки с пониманием, как это работает и с опытом "немного потрогать".
Схуяли у меня тест валится?self.assertRaises(AttributeError, self.model(not_existing_field=True))if field not in cls._FIELDS: raise AttributeErrorВ трейсбеке теста вылетает AttributeError. Собственно он и должен вылетать.Мне его перехватит надо или что?
>>1462196>Эта картинка - отличный аргумент в пользу винды/мака.>Так-то в убунте все хорошо с кириллицей, это у tkl какие-то трудности.>По теме:>https://python-scripts.com/question/16952Но там только вопрос с такой же проблемой, а решений нет. Это шутка юмора такая?
>>1463381Обьясни пожалуйста в двух словах, зачем оно нужно? Я прохожу на курсере курс про питон и математику в нём, там всё делается в айпайтон. До этого я всё делал просто в файле и запускал в ide, пока не могу понять, зачем айпайтон вообще понадобился, это типо просто попытка сделать консоль удобнее?
>>1463355Дай угадаю, ты дурачок-аспирант, который тоже дрочит на собесах джунов такой кашей?У выпускника нет таких знаний, в принципе. Две лабы по потокам и процессам, это не знания, а говно. Я уж молчу про декораторы и прочие шаблонизаторы и паттерны.Потому что применить это вдумчиво, не то что построить нормально архитектуру вокруг этого, он сможет самостоятельно не через год или два даже.А заявки на знание внутренней архитектуры NoSQL баз вообще наглость в том плане, что опытный соискатель подумает что от него в процессе работы захотят все, сразу и подешевле. И будут ебать за двоих и за мелкий прайс. Я бы по опыту бы подумал.В целом дрочить соискателя всем что знаешь сам и с чем немного сталкивался он или ты, вместо проверки соответствия позиции и потребностям фирмы под выделенный бюджет - колхоз и дебилизм, а часто еще и наглость.37 лвл PM
>>1463382>это типо просто попытка сделать консоль удобнее? Не просто попытка, они этого уже добились. Понимаешь, иногда практически всегда хочется поиграться с кодом в интерактивном режиме, а в Ipython это намного удобнее, чем в стандартном консольном интерфейсе питона, потому что там есть качественное автодополнение, есть подсветка синтаксиса, есть мэйджики, это такие специальные команды, с помощью которых можно делать много полезных вещей, например, измерить время выполнения кода или открыть исходный код функции, вообще много удобных мелочей, можно просто вопрос ставить в конце строки, чтобы получить справку по объекту, вместо "help(object)" просто "object?", история ввода сохраняется между сессиями и по ней удобно искать. Не обязательно использовать Ipython через консоль, многие IDE могут с ним взаимодействовать. Хорошая в общем штука.
>>1463382Удобно, что можно команды выполнять поблочно. В дата саенсе это гигантский плюс, т.к. приходиться работать с достаточно большим количеством данных, и если ты каждый раз будешь писать код в файле, а потом запускать в IDE, то при каждом запуске будут выполняться чтение и предобработка данных, а эти процессы занимают достаточно времени. В IPython или Jupyter ты можешь в одном блоке считать данные (один раз), и дальше уже работать с ними в других блоках, плюс в Jupyer можно помимо кода выводить различные медиаданные.Да и в обычной разработке IPython тоже часто пригождается: для отладки (выполнение построчно) и для пробы новых инструментов и фич языка. Так как код выполняется поблочно, то ты в любой момент можешь посмотреть состояние всех переменных, заглянуть внутрь объекта (благо Python позволяет).
>>1463385Нет, ты не угадал. У выпускника есть знания, у него или должны были быть какие-то курсы, и/или он сам должен быть как-то разбираться с технологиями.Я уже очень давно закончил. Но курсы по алгоритмам, по параллельному программированию (треды, процессы, кеши, конвееры, MPI), по базам данным (SQL), и ещё разная хрень, в основном это по выбору курсы.Это НОРМА. Реально это знания "на потрогать". Если ты интересуешься технологиями, то тоже с чем-нибудь будешь играться.>>1463385>он сможет самостоятельно не через год или два дажеА кто-то говорил, что вот с нуля можно стать программистом за год-два? Это серьёзная работа, предполагает хорошее понимание.>>1463385>А заявки на знание внутренней архитектуры NoSQL баз вообще наглость в том планеВряд ли можно знать всё обо всём. Знание внутренней архитектуры свидетельствует, что ты серьёзно погружаешься в предмет, с которым хочешь работать. Это хороший плюс. У тебя реально может даже опыта работы не быть, но устройство ты понимаешь. Если ты разобрался с какими-то одними технологиями, то скорее всего разберёшься и с другими. Если ни с чем не разобрался, то велик шанс, что ты просто макака, которой это и не интересно.
>>1463392Все таки чувствую в тебе я тон заносчивый вчерашнего выпускника задрота с опытом года в 3-4, юный падаван.Вот эти вот должен-должен-должен. Ты явно даже близко до лида не доработал, когда становится уже поебать на то кому кто и что должен и просто сдаешь очередной проект.
>>1463238Начало и середина джунские, конец мидловский, будь я ждуном я бы охуел, будь я мидлом, то обиделся бы из-за первых вопросов, хуйня вообщем
>>1463484Джун vs серьёр не о наборе слов, а о реально опыте.Можно пилить какие-нибудь сложные проекты на питоне, но никогда не иметь дела с потоками и асинхронностью, с брокерами сообщений и т.п. Твоя компетенция будет в другом. А можно довольно примитивные вещи делать с тем же Redis, более-менее уметь процессы и асинхронность, вот просто самому всё это освоить не имея опыта коммерческого, но от этого ты мидлом не становишься.Паста просто о специфичном направлении, по разработке сервисов и работе с сетями. Но полноценная работа с MQ, (No)SQL обычно уже предусматривает коммерческий опыт в области, где требования выше среднего, всё-таки не совсем джун это.
>>1463509И ты будешь у не совсем джуна спрашивать про создание собственного итератора, list comprehension, декораторы и т.д.? Он бы подумал, что его за дурака держат или собеседующий не понимает на какую вакансию ты пришел.
>>1459370 (OP)На первых шагах в Байте питона, обосрался на этапе запуска в терминале.Всё делаю по инструкции, может быть проблема в том, что всё расписано только по XP, висте и 7, а у меня 10?
>>1463541ну так прямой запуск py файла работает же? А так забей хуй - накати сразу pycharm, там пилишь проект, в папке проекта создаёшь py файл, и потом ctrl+shift+f10 первый запуск файла с которым работаешь,shift+f10 последующие
>>1463541Привыкай читать ошибки. No such file or directory, говорит о том, что файла 111.py нет в директории c:\py. Значит у тебя есть следующие варианты решения этой проблемы:1. переместиться в директорию с файлом 111.py и запустить его оттуда2. прописать полный путь до файла (например: python c:\<путь>\11.py3. скопировать файл в папку c:\py (наимеенее предпочтитеьный, т.к. не следует замусоривать папку интерпретатора)
Посоветуйте, как ещё можно закастомить редактор, подсветку синтаксиса. Чёт на картинках все так приятно, а как поставишь, то не особо цепляет глаз.
>>1460878https://docs.djangoproject.com/en/2.2/topics/http/file-uploads/Подозреваю что у тебя:А) пропущен аргумент request.FILES при создании экземпляра формыБ) отсутствует атрибут enctype (<form method="POST" enctype="multipart/form-data">)
Бля, так лениво джангу начинать осваивать - хочется уже наговнокодить то, что можно пощупать, потыкать, кнопочки порисовать.Стоит ли перед тем как приступать к изучению фреймворков говнячкать свои сайтики, это хоть как то поможет в изучеии погромирования, или такой путь ялвляется пустой тратой времени?
def fact(x): x = int(x) operands=[] for i in range(1,x+1): operands.append(i) result = 1 for z in operands: result = result * z return result
>>1463545>прописать полный путь до файлаТак это и есть полный путь, я специально создал пустую папку /py на диске С, там всего один файл 111.py, всё по учебнику.Сам Питон у меня в другой папке.
>>1463757https://pep8.ru/doc/dive-into-python-3/3.htmlЗдесь в разделе "путь поиска оператора import" все доступно объясняют, но если кратко, то есть специальные каталоги в которых питон ищет имена (например, django.db в твоем случае - это каталог db в каталоге django, в самом каталоге db ты запрашиваешь каталог models в котором есть файл __init__.py в котором прописанно что тебе нужно передать, чтобы ты мог наклепать свою ебанную очередную говноформу на джанге)Про наследование по аналогии, в файле который тебе подключит пистон, есть класс, который ты в итоге и наследуешь
Что почитать по Питону, если я сначала начал писать код, а теперь решил его изучить и научиться нормально кодить?А то я думаю что от моего кода у любого питониста кровь из глаз потечет.
>>1463774У меня то глаза уже давно вытекли, а вот как ты с тремя цветами: белым, серым и говнооранжевым сидишь, я не понимаю.
>>1463779Я уже загрустил, пока всё переписывал/переустанавливал. не работает.Интересная штука этот питон, но такой тупняк на ровном месте сильно дизморалит.Может это какой-то троллинг ньюфагов или я староват?
>>1463802Не отрицаю. >>1463810Вот же мои скрины тоже >>1463761 >>1463541В общем, всё заработало. Возможно, из-за переустановки питона на 64 вместо 32, которые офф сайт мне дефолтно выдавал. Всем спасибо.
>>1463921А смысл в винде вабще терминалом пользоваться? Это же не линукс, чтоб пердолиться и 24/7 в терминал глядеть. я терминал запускаю в лучшем случае раз в месяц. А для желающих попердолиться - есть как бы и альтернативы, только нахуя?
>>1463928>чем мышкой кликать.Это только в том случае, если интерфейс пилили из говна через жопу, или если интерфейса для нужных вещей как в линупсе просто нету а его там нету, т.к. пердолить в линупсе надо абсолютно всё. В целом конечно глупо отрицать, что интерфейсом работать в 10 раз быстрее. Например нажать shift+f10 в окне pycharm - в разы быстрее чем корябать в терминале 'python c:\py\123.py'.
Вопрос по многопроцессорности.Сдедал функцию, которая считает от 0 до N.Засек время необходимо для ее работы.И засек сколько времени уходит при использовании M процессов, запускаемых через фор, при подсчете от 0 до N/M. В противоречие ожиданиям времени ушло чуть больше чем при варианте без использования процессов.Так же, использовал Pool, результат примерно такой же.Вроде бы, при увеличении N, в какой-то момент процессы немного обгоняют линейный подсчет. Наверное, при гигантских N разница будет ощутима. Однако, результат при необходимом мне N печалит.Что я делаю не так? Или это норма?
>>1463925Я на линуксе сижу и редко пользуюсь терминалом.Ну как редко, есть куча самописных скриптов, которые предствлены для линукса, венды и мака. Запускаю их соответственно через терминал и когда это делаю, получаю эстетическое удовольствие. Можно и вкладки открыть в терминале и много чего. Твои оправдания, виндовс-девочка?
>>1463952ну тут персонаж из лайнус-треда пожаловал видимо, который без терминала жить не может. Спорить не буду, и на линупсе можно без этого обойтись но таки сложно
>>1463962Сам код(в комментариях вариант запуска процессов через for, а не Pool):import timeimport osfrom multiprocessing import Process, Pooldef t(nmax=25): t1 = time.time() n_end = 0 for n in range(nmax+1): print(n) n_end = n t2 = time.time() print('time', (t2-t1), 'id_proc', os.getpid(), 'n_end', n_end, '\n')if __name__ == '__main__': procs = [] numbers = [] for i in range(5): numbers.append(10000) t1 = time.time() pool = Pool(processes=5) print(pool.map(t, numbers)) """ for i in range(5): # proc = Process(target=t, args=(4000,)) proc = Process(target=t, args=(10000,)) procs.append(proc) proc.start() for proc in procs: proc.join() """ t2 = time.time() print('end_time', t2-t1)
Хей, ктонить шарит в киви? Такая проблема: dragLabel работает в такой конструкции: FloatLayout: DragLabel, но если layout поместить на что-нить, например так: Screen: FloatLayout: DragLabel то уже драгать нельзя. Чем решать? Спрашиваю тут потому как ленюсь регаться на stackexchange
>>1464016Ну в том, что ты выводишь храниться не HTML код страницы, а ответ с кодом 200 ОКЭто как минимум говорит о том, что ты запрашиваешь неверный методРазбираться лень, на секунду глянул в доку по либе, попробуй .data()
Вывести на экран все элементы множества A, которых нет в множестве B.A = set('bqlpzlkwehrlulsdhfliuywemrlkjhsdlfjhlzxcovt')B = set('zmxcvnboaiyerjhbziuxdytvasenbriutsdvinjhgik')for x in A:__if x not in B:____print(x)Сделал так, вроде верно все выводит, но меня почему-то не покидает ощущение, что я сделал что-то не так. Правильно решил задачу или нет, пацаны?
>>1464046> set.difference(other, ...) или set - other - ... - множество из всех элементов set, не принадлежащие ни одному из other.А тебе только через цикл допускается или методы множеств тоже можно юзать?А так вроде правильно.
>>1464050Задача так выглядит пикрелейтедМне твою функцию в цикл пихать? Походу я все правильно сделал, шиза накрывает бля
>>1464056если обязательно использовать итератор, то все верно, если можно без него, то встроенный метод
>>1464048>если тебе нужно стянуть HTML со страницы, то могу подсказать решение через bs4Я разные методы изучаю, и просто так и не могу понять почему он не хочет выдавать теги. Уже крутился с методами и так и сяк
>>1463931Shift + f10 может и быстрее, но если ты захочешь прописать какие-то дополнительные параметры к запуску, добавить переменные окружения, перенаправить вывод скрипта на вход другой утилите (грепнуть например), то в графическом интерфейсе это займет гораздо больше времени. Более того, часто графический интерфейс не предоставляет всех возможностей, (подумай, например, почему люди пользуются консольным клиентом гита, а не графическим, который используется только для визуализации).Для части прогерского софта в принципе нет графического интерфейса - докер отличный тому пример.Да и вообще, если ты изучаешь питон для бэкенд-разработки, то пора начинать учиться пользоваться терминалом, т.к. 99% процентов машин, на которых будут вертеться твои сайты, будут работать именно на линуксе, а единственным способом взаимодействия с ними будет ssh
>>1463944Скинь код там ясно будет. Но вообще результат довольно ожидаемый: на создание процесса тратится довольно много времени (в питоне 3.8 обещают сделать быстрее), т.к. процесс - это запущенная программа, со своим адрессным пространством, стеком, набором файловых дескрипторов, со своими регистрами и т.д. То есть при создании нового процесса создается полная копия процесса родителя (там, конечно, всё немного хитрее, но суть от этого не меняется). Плюс есть ещё большие накладные расходы из-за того, что приходится делать системный вызов. Поэтому процессы будут выигрывать только на долгих дистанциях (то есть, когда выполнение задачи занимает много времени). Также бесполезно создавать процессов больше, чем число потоков твоего процессора (по крайней мере для cpu-bound задач, а для других процессы и не используют обычно)
>>1464147Я умею и не брезгую пользоваться терминалом, но я же не дурак лишний раз использовать текстовое говно вместо няшного гуи-интерфейса, и кукарекать о том что окно терминала слишком чёрное.
>>1463966Ну да у тебя функция слишком быстро выполняется, создание процесса займет больше времени. Во-первых убери вывод в консоль из функции t, во-вторых увеличь аргумент раз в 10 и тогда уже прирост производительности будет очевиден
Пацаны, в чём суть декораторов, нахуй они нужны? Никак не врублюсь в какой ситуации это можно применить в коде и нахуя
>>1464167Я просто чёто не могу понять - нахуя мне городить конструкцию на пик.1, вместо конструкции на пик.2? Чтобы применить декоратор - его надо в виде '@декоратор' перед объявлением функции заюзать? Тоесть в коде динамически это селать невозможно?
>>1464167>>1464171О бля, понял что можно использовать так, что бы целиком не модифицировать функцию, но всё-равно выглядит как юзелес хуета - проще и красивее имхо условия внутри функции прописать, если что-то поменять надо. А конструкция с @декоратор перед объявлением функции - мне до сих пор непонятна и кажется максимум юзелесс хуетой. Поправьте, если не прав.
>>1464173Свой декоратор полезен, когда появляется много функций, одинаковых в начале и/или в конце (с одинаковым инфраструктурным кодом). Например, как-то вынес в декоратор логику, чтобы функция запускалась не в основном потоке.
>>1464183ну я правильно понял, что юзабельная для использования конструкция: декоратор(функция)(значения), а не @декоратор \ def функция?
>>1464173И ты будешь каждый раз при вызове функции юзать функцию обертку вместо того, что бы один указать ее в объявлении
>>1464184Когда у тебя будет 20 функций, одинаковым кодом вначале строк на 20. Юзабельнее проще и красивее будет вынести этот код в декоратор. А отдекорированные им функции использовать по просто их именам.В простых скриптах свои декораторы не нужны, конечно.
>>1464190Вот это нормально объяснил. Хотя даже тут не совсем понятно, что мешает просто из самой функции вызвать другую функцию с нужным кодом, получить от неё вводные данные и работать дальше, зачем именно декорировать
>>1464198Накидай пожалуйста простенький пример, чтобы две функции например использовали один и тот же декоратор для замены одинакового куска кода
>>1464202да я понял, мне интересно эта конструкция должна выглядеть в сложном скрипте - а то в учебниках объясняется для простых скриптов.
Столкнулся с проблемой, пишу консольную утилиту и дошел до написания документации.На данный момент это 3 вызова print() в самом коде, при вызове утилиты с опцией --helpКак грамотнее реализовать доку? Вынести текст в отдельный файл и вызывать его засовывая в print построчно? Или есть какие-то техники, о которых я не знаю?Не столь важно, но есть примеры хорошего стиле обработки опций? У меня это сравнение входных данных с определенной строкой, что мне кажется довольно уебанским
>>1464167Чтобы модифицировать поведение функций, не изменяя саму эту функцию. Может, эту функцию даже и не ты писал.В модуле functools есть декаратор с lru_cache, он позволяет кешировать результаты выполнения функций, то есть, если будешь вызывать декорированную функцию несколько раз с одними и теми же параметрами, то вычисляться функция будет только в первый раз, а все остальное время будет извлекаться кэшированное значение, это повышает производительность.Для классов есть декораторы property, staticmethod, classmethod которые позволяют создавать свойства, статические методы.В библиотеках и фреймворках любят декораторы, вот, например, во Flask декораторами связывают url адреса страниц и функции, которые эти страницы генерируют, или в Numba декораторами помечают функции, которые надо ускорить.Декораторы - это здорово, потому что ты одной строчкой добавляешь полезную функциональность.
>>1464203Если ты только читаешь учебник, то декораторы тебе ещё не скоро понадобятся. Просто знай, что они есть. Это способ делать сложный код проще. В чем-то аналог макросов в C/C++.Потом ты столкнёшься с декораторами при использовании сторонних либ (тот же фласк, например).Потом ты будешь читать исходники этих либ, чтоб понять, как же работают. Потом ты будешь рефакторить свой разросшийся код, и поймёшь, что тебе тут нужны свои декораторы.
>>1464204Для консольных утилиток почти всегда лучше держать доки в коде.Для обработки опций есть либы, начни например со штатной optparse.
>>1464173Конструкция с декоратором@decodef func(par): passполностью эквивалентнаdef func(par): passfunc = deco(func)Просто чуть более и компактная запись. С декораторами просто немного нагляднее.
>>1464255но ведь вторую конструкцию можно использовать в любой момент - тоесть с ней можно пользовать как оригинальную функцию, так и отдекорированую. А если использовать конструкцию с @deco - то функция будет отдекарирована безвозвратно, не?
>>1464167Декораторы - это в первую очередь принцип оборачивания исходной функции в обёрткуfunc = deco(func)Никто не принуждает пользоваться именно этим оператором, можно явно вызывать функцию и иногда даже разумно. Но намного удобнее читать сверху вниз.Сама по себе идея обёрток полезна и интересна, но всё-таки бездумно использовать не надо, как минимум это оверхед и вообще несколько кривая архитектура.Но в каких-то случаях могут быть очень полезны. Кеши, логгеры, контроль возвращаемых и передаваемых значений, вынос какого-то общъего обёрточного функционала в декоратор. Причём в таких случаях именно в таком синтаксисе обычно очень наглядно становится.
>>1464257Да, всё верно. Поэтому декораторы не нужно использовать для всего подряд. Но где-то они реально удобны.
>>1464180Декораторы позволяют следующее:1. добавить к функции свою логику, которая будет выполняться при импорте этой функции (импорте модуля с функцией) - полезно для добавления функции в какой-нибудь реестр, например декоратор app.route во фласке2. добавить к функции свою логику, которая будет выполняться перед исполнением самой функции (при этом в этой логике будут доступны аргументы, переданные на вход функции)3. добавить к функции свою логику, которая будет выполняться после исполнения самой функции (при этом в этой логике будут достпны и аргументы функции и её возвращаемое значение)4. можно вообще подменить функцию с помощью декоратораКак видишь, область применения декораторов безграничная. Например, ты можешь написать декоратор, который будет засекать время выполнения самой функции или декоратор, который будет логировать входные и выходные значения или даже кэшировать (такой декоратор уже есть - functools.lru_cache).Можно написать декоратор, который будет перед выполнением функции объявлять транзакцию, а в конце коммитить её (такой декоратор есть в джанго)При этом декоратор может быть как универсальным, подходящим любой функции (с помощью args и *kwargs), так и специализированным, который учитывает входные данные.Можешь ещё глянуть декоратор functools.singledispatch, благодоря которому можно заставить питон изображать перегрузку функции по типу входного аргумента.Более того, декорировать можно не только функции, но и классы. При сам декоратор также может являться классом. Благодоря этому открываются ещё более широкие возможности.
>>1464180Да, кстати, вот очень годная лекция про метапрограммированиеЯ скинул с тайм-кодом на начало объяснения декораторов, но советую посмотреть полностью очень хорошие подача и материал.https://youtu.be/bt6kU1kuHWA?t=2340
>>1464308>Благодоря этому открываются ещё более широкие возможности. Тут легко свалиться в типичное юниорское "прочитал про технику, полезную для каких-то задач, и начал искать места, куда бы её ещё можно приткнуть". При том, что реальной необходимости в этом нет.Реально же смысл такой.Пусть есть функции вида def g1().... some code 1f1()some code 2def g2():.... some code 1f2()some code 2при этом код some code 1 и some code 2 дублируются. Можно просто вынести этот дублирующийся код в deco, и реализовывать только уникальный функционал в функциях f1, f2и в итоге год будетg1 = deco(f1)g2 = deco(f2)таким образом мы уходим от дублирующегося кода и получаем большую гибкость. Я могу другие примеры привести. Пусть нам на выходе нужен json в каком-то формате. Реализуемые функции могут возвращать просто объект, а уже во внешний будет перепаковка в json. При этом одновременно мы можем контролировать, что возвращается именно объект, а не строка или не исключение. Можем корректно обрабатывать те же исключения, и нам не нужно городить сложные негибкие обвязки внутри функций.Подчёркиваю, что это идея функции-оболочки, сами декораторы лишь синтаксический сахар.
>>1464204а что мешает циклом сделать? for i in range(3): print("")print("help")а case самое простое опять же через импут и циклы
>>1464389аа вьебал че ты хочешь - чтобы с новой строки писать просто в строку добавляешь \n, так одним принтом все будет
Кто что скажет на счет платных онлайн курсов, есть ли смысл или тоже самое из книг можно узнать и в интернете найти?
Кто в tkinter шарит? Мне надо разместить в сетке 5х14 70 виджетов Entry, чтобы по событию выхода курсора из текстового поля все эти Entry разом посылали свое содержимое в двумерный список типаlist [ [ent01, ent02, ent03, ent04, ent05],[ent11, ent12, ent13, ent14, ent15], ...]Причем пустые поля должны посылать нули. Подскажите плз, как это реализовать.
Когда пользователь наследуется от класса надо звать метод класса-потомка (очевидно полиморфная логика - в родителе). Как это сделать? С декоратором класса? Но декоратор класса жи нихуя не вызовет тупо при наследовании.
>>1464518У классов есть __new__, который вызывается перед __init__ и ответственен за создание объекта, есть __init_subclass__, который вызывается всякий раз при создании класса-наследника, а еще для сложных и необычных случаев есть темная магия метаклассов. Честно говоря, я нихера не понял, что тебе нужно, но, похоже, ты хочешь вмешаться в стандартные механизмы создания и наследования классов.
>>1459370 (OP)Как в одну строку реализовать такое: возвращаем значение по ключу в словаре если такой ключ есть в словаре иначе возвращаем сам ключ.
>>1464334> Можно просто вынести этот дублирующийся код в deco, и реализовывать только уникальный функционал в функциях f1, f2Да блять, больше всего напрягает в данной ситуации, что это можно сделать и без изобретания всяких конструкция аля декораторов - вынести общий код можно просто в отдельную функцию, и вызывать эту функцию так же в одну строчку, пикрелейтед - просто отдельная функция с общим кодом для двух других функций, и зачем для этого декоратор?>>1464330Видео сейчас глянул, поясняет всё хорошо, стало понятнее как всё работает. Но область применения по-прежнему под вопросом - из адекватного для меня сейчас видится декорирование чужих функций из модулей например...
Всем привет!Есть пару вопросов по telegram bot api.1) Как грамотно обойти блокировку? Тк у меня на компе стоит vpn, то проблем как таковых не возникает. До тех пор пока я не захочу запустить его бота без vpn. Документацию чекал - не вышло. Мб что не так делал?2) Я реально не понимаю заморочек с chat_id и message_id!! Когда нужно отправить сообщение пользователю бота, или в канал, где бот участник - окей. Но что если я хочу, допустим, сделать бота-поисковика по рэндомному каналу?? Как я могу получить id этого канала или id сообщений? Есть что почитать по этому поводу?Заранее спасибо за адекватные ответы!
аноны поясните почему он блять выводит числа с 0 а не с 7 блять че за хуйня нюфаня не понимает.>>1462775 - кун
>>1464719Потому что ты его просишь распечатать числа от 0 до 10.Ты какой-то неадекватный, сколько тебе лет?
>>1464737Мне кажется пограмирование - не твоёa = input('введите А')b = input('введите Б')for i in range(a, b+1): #для i в диапазоне(от a до b+1) print(i)
>>1464709>из адекватного для меня сейчас видится декорирование чужих функций из модулей например... А, ну да, кеширование забыл - тут вабще без вопросов - тоесть если надо иметь доступ и к вводу и к выводу функции - декоратор незаменим
>>1464738>программирование не твоес паскалем у меня в for никаких траблов не было>>1464737 - этот анон не я>>1462775 - кун
>>1464753Ну получается что с декоратором можно присрать кеширование в одну строку, а без него придётся расписывать if else конструкцию внутри функции, и если функций много - придётся делать это много раз... С другой стороны для разных функций должен быть разный кеш, т.к. операции разные, и одним декоратором обойтись сложна... В общем хз, сложна, нипанятна
>>1464758> одним декоратором обойтись сложнаЗначит тебе рано еще об этом думать. Поиграй в замыкания, во вложенные функции, тогда все поймешь.
>>1464761Не, ну если одна функция делает умножение, а вторая функция делает деления - один декоратор-кеш к ним не присрёшь. Тоесть тут должны быть разные функции делающие одно и то же просто под разным углом, чтобы их можно было отдекорировать одним хеширующим декоратором, или расписывать кучу условий в декораторе - что так же не айс. Ну мне пока так понимается
>>1464758Карина пися богиня жамкать чепубель! Андрюха это ее дядя они не ебутсяСекретчики долбоебы, особенно эмпати и черкашменя из конфы кикнули, суки, но я молчуном был
>>1464750Да у тебя и не должно быть проблем, просто запомни, как работает rangerange(начальный элемент(по дефолту 0), конечный элемент(не включительно), шаг(по дефолту 1)
>>1459748Яблоко это строковая переменная, следовательно должна быть помещена в кавычки. В противном случае python воспринимает это как переменную и сообщает тебе что переменная not defined.
>>1464764> один декоратор-кеш к ним не присрёшь> или расписывать кучу условий в декоратореКакие условия? Где? http://ideone.com/q6rhHN
> Мне кажется пограмирование - не твоёРейндж понятно, будет равен б, пусть б равно 100. Теперь я пишу а = 50б = 101for a in range(б):print(a) Бля, сейчас проверил, действительно начинается с нуля. А если я с 50 хочу, как сделать? В паскале и плюсах работало иначе.
>>1464790Слушай, давай так, расскажи мне в ответ на этот пост, что делают параметры sep и end, и какие у них значения по умолчанию. Только погугли немного, чтобы никакую хуйню не написать.
>>1464790Как то так ты можешь запилить столбцы сам. Скачай книжку AByteofPython 2.0 на русском и сиди читай, выполняй все задания. Она тебе даст базу по пайтону. Ты сейчас занимаешься какой-то хуитой непонятно откуда высратой, да ещё и не слушаешь никого. Тебе уже говорили что конструкция хуйня, тебе уже говорили что 'end' по дефолту равен '\n' и указывать этого вручную не надо, зачем ты это делаешь?
>>1464813Пиздос ты жёсткий конечно, а если три столбца то три списка лишних надо? Сейчас он погуглит и изменит аргументы print'ов так, что всё будет работать
>>1464710Отвечу по первой части. Вариант хостить вне РФ, как поступил я. Другой вариант использовать зарубежные прокси. По второму вопросу могу ошибаться, но вроде как он (бот и апи) не умеет в принципе.
Так. У меня ОГРОМНАЯ проблема с пониманием ООП. Делаю задачи, но не вкуриваю, как обращаться к методам класса. Да и как их вообще писать. В книгах сложно написано. Можете погуглить за меня дать како-нибудь внятной инфы?
Прохожу курс pyneng (python для сетевых инженеров) и чёт не могу вкурить задание 4.4. Нужно из двух строк получить список вланов, которые есть и в первой строке и во второй, затем вывести список этих вланов. command1 = 'switchport trunk allowed vlan 1,3,10,20,30,100'command2 = 'switchport trunk allowed vlan 1,3,100,200,300'Засплитил я строки, в отдельном индексе у меня строка с вланами. Далее я опять засплитил эту строку и теперь у меня список с вланами в виде строки. В условии говорится, что нужно вывести в виде [1,3,100], т.е. чтобы элементы были не строкой, а числом. Проблема в том, что нужно использовать минимальное количество средств, а точнее те, что были в курсе (строковые методы, .join, .append, .extend, .pop, . remove, .index, .insert, .sort, .add, .discard, .clear, .union) Решил я задачу доступными способами, но проблема в том, что мои элементы в итоге как были строковыми, таковыми и остались. Следовательно и сортировка не работает. https://pastebin.com/aCQ4cPVmСпасибо.
>>1464900Нужно целое число, сделай его целым числом. Есть функция int, она пытается превратить свой аргумент в целое число, есть map, она применяет функцию к каждому элементу коллекции, есть функция sorted, она принимает коллекцию и возвращает отсортированный список.просто используйvlans = sorted(map(int, set(vlan1) & set(vlan2)))вместо vlans = list(set(vlan1) & set(vlan2))
>>1464822Не, ну я косякнул конечно запилив списки слишком громоздким циклом, можно более просто - перегнав range в list или запилить генератором списка. Но в остальном, поясни, что ты имеешь ввиду? Как тут можно это сделать обыграв только аргументы принтов? Мне на ум приходит только способ с итератором range, чтобы потом можно было элементы одного диапазона перебирать поочерёдно в цикле перебирающим элементы другого диапазона - вариант 3 на пикрил - но это сложновато для ньюфага его уровня - на его уровне он сможет понять максимум варианты с перебором элементов двух других списков в цикле for или while, и тут уже аргументы принта мало роляют, только формат строки вывода.В общем если есть более простой вариант - предложиМимо-так-же-ньюфаг
>>1464909Спасибо большое за ответ, map действительно выручает. Дело в том, что в условиях задачи указано использовать только пройденные в курсе инструменты. Можно было бы map заменить на цикл for, но даже его ещё не прошли. Есть ещё способ как это реализовать? Или это опечатка в задаче?
>>1464937https://pyneng.readthedocs.io/ru/latest/book/04_data_structures/index.htmlВсе, начиная от чисел и кончая множествами. Там ещё в каждом пункте есть подпункт, например, методы. Почти завершил смотреть лекцию по множествам, но тут загвоздка не в них скорее всего...
>>1464939Но у тебя вышла полная хуита, посмотри на вывод результата - это не два диапазона в две колонки нихуя
>>1464943Я его >>1464790 код исправил, какие тебе два диапазона нужны? Ты можешь что угодно так вывести, не заделывая это в два списка. Хотя и списки можно, корочк, объясни, чего тебе надо,
>>1464953ideone.com/Xm9YLoНекрасиво, зато без всякой памяти лишней и очень по простомуideone.com/f0qbljС памятью, но красивее. Оба варианта, в отличие от твоих, не зависят от длины последовательностей. Мб какой-то библиотекой делается в одну строчку, хз.
>>1464955Хотя я вот сейчас отредачил и убрал флаги из первого, которые там лишние были и получилось красиво
>>1464955А чем тебе мои конструкции не нравятся?>>1464911range занимает минимум памяти (вариант 3, без списков), и код супер-простой. Можно добавить небольшое условие уравнивающее длину списков пробелами, просто цели такой не стояло
>>1464941Ну так там в дополнительных материалах циклами пользуются, лол. В любом случае без цикла не выйдет перебрать элементы ИМХО.Тоесть можно так:vlans = set(vlan1) & set(vlan2)vlansint = []for i in vlans: vlansint.append(int(i))print(vlansint)или так:vlans = set(vlan1) & set(vlan2)vlansint = [int(i) for i in vlans]print(vlansint)
>>1464967Ну там из-за for не уравнишь, а так способ нормальный, нужно просто два итера вести в while. Это по сути там внутри мой первый вариант, только не велосипедный.
>>1464976Да не, там можно всего пару условий добавить, и скомпенсировать уменьшение ширины столбца при переходе от однозначных чисел к двухзначным, и разную длинну списков, лол
>>14649811. Оно не будет, как я вижу, работать, если второй промежуток намного больше первого, там цикл нужен, а не условие, во втором цикле тоже будет трай экцепт, иначе словишь ошибку пиздец ты даже не можешь разные диапазоны погонять, прежде чем постить2. Подравниваешь ты хуево, только на один знак, дай питону табуляцию и он сам подравняет знака на три3. Выглядит у тебя как-то хуево. Вот как можно ideone.com/7APYXIНо просто с циферками тут, конечно, немного проще и удобнее
>>1464981Ребят, пользуйтесь стандартными инструментами из itertools и форматированием.https://ideone.com/ymSo38
>>1464993Да с итертулс всё понятно - это был своеобразный трайхард на тему вывести в 2 столбца без списков, лол.>>1465017В дополнительные материалы перейди - more on sets, more on dicts - везде используют циклы
>>1464900Ты невнимательно прочитал условие. Точнее, ты смешал задачу 4.3 и 4.4.В задаче 4.4 не требуется получать список vlan из строки, там тебе уже дан список, и подразумевается, что это числа, а не строки. Всё проще, не придумывай себе задачи, которые нельзя решить.
>>1465159Модуль itertools реализован на C и продумано.zip_longest работает с итератерами и не создаёт в памяти лишних промежуточных массивов, перерасхода памяти нет.
>>1465331Он хотел сказать - что сами списки, с которыми работает инетртулс - занимают место в памяти.
>>1465344А зачем там вообще преобразование в списки, если itertools нормально с итераторами работает?
>>1465358Для наглядности. Можно подставить просто итераторы, но это смотрится чаще как непонятный синтетический пример. Обычно такие вещи нужны, когда ты работаешь с готовыми списками.
Постов сегодня совсем мало, питонисты решили устроить выходной сегодня? Я вот посмотрел "Красное солнце" и очень доволен.
>>1465458Ты вроде бы взрослый мужик, детей в школу отправляешь, а всё равно распиздяй. Это ответственный софт можно кодить в ночь перед дедлайном, а вот тетрадки детям надо заранее покупать. А не в воскресенье 1 сентября. Тьфу на тебя. Уходи в тред к жавасктиптерам.
>>1465440Отмечали сегодня с семьёй поступление младшего брата, мне стало грустно и я занимался весь вечер тем, чем и вместо учёбы в его возрасте играл в линейку на первом попавшемся серваке с интерлюдом
>>1465499Анон, ну это классический боевичёк, без навязанных штампов, тупорылых шуток, сложного сюжета. Киану просто берёт и делает - в этом прикол этого фильма.
Хай, подскажите ньюфагу как поменять в джанге отдаваемый статус с 500 на кастомный, прописанный в экспешенах. https://repl.it/repls/PutridDarkblueVolume
>>1463234Отличное описание, все понятно и хорошо запоминается, вот бы официальная дока была такой же.
Есть серьезный вопрос, очень люблю математику, а именно дифференциальное и интегральное исчисления. Есть ли какие то углубленные применение этих мат знаний в python, а именно тесное взаимодействие. Просто часто слышу что типа в программировании математику нужно знать на минималках
>>1465705Я ньюфаг, но слышал, что именно пайтон использют в математических целях. И слышал, что анаконда для этого подходит
>>1465720>>1465729И почему оно пишет ошибку на второй линии, в то время как во второй линии никакого url не было импортировано - оно в третьей, и по факту выводит ошибку на третьей же
>>1465700>>1465729>>1465732>>1465758А забейте, я походу по мурзилке которая строится на версии до 1.9 пытаюсь вкатиться.
Всего то 2 часа пердолинья по могаческим рунам джанги, блядь, и готово, нахуй. Три туплес ис нот суппортед используй джва туплес, блядь, охуеть нахуй.Используйте гугл, не пытайтесь разбираться в джанге на начальной стадии изучения, особенно если учите эту поебень по устаревшим мурзилкам.>Начиная с Django 1.9, старый способ включения URL-адресов администратора устарел. Вы должны передать admin.site.urls непосредственно в url(), без вызова include():
>>1465883Никогда не понимал людей, которые учат что-то по несоответствующей документации, тратят на попытки понять, что не работает огромные количество нервов, причем винят не себя, а сложнойсть фреймворка. Пиздец. Хорошо, что таких долбоебов максимум на стажера возьмут, а потом нахуй выкинут.
>>1465892Ну что непонятного? Кто не может в англ мануалы, тот обречен подъедать объедки из мусорки переводчиков
Hi 2ch, такой трабл, я когда сохраняю в Atom (ctrl+S) выскакивает окно консоли, и когда запускаю (f6) тоже выскакивает пустое окно консоли, а потом консоль с выполняемой программой. Что за дичь пацаны?
Анончики, это правда, что в пайтоне для передачи аргумента по ссылке надо заворачивать переменную в мьютабл тип вроде списка? Что за костыль обоссаный, есть более вменяемый способ?
>>1481644Во-первых, в питоне все - ссылки, в том числе и аргументы, но сама ссылка передается по значению. Во-вторых, глупо хотеть передавать по ссылке что-то иммутабельное, когда ты можешь просто вернуть новое значение. Т.е. вместо res = do_smth(var) ты можешь res, var = do_smth(var).