Тред, посвящённый языку программирования Питон, #72.Предыдущий >>1502633 (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Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги. - МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? - очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4А как учить джангу? Нахожу только книги по джанге 1.х - У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой, из официальной документации.В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать - Вот, пожалуйста, та же самая программа, но переработанная под язык Python http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
здоровы почаны. хто какую асинхронную ОРМ юзает? я тут решил на асинхронных питонах начать писать и всё было норм, до того как я приступил к работе с БД. попробоваил GINO - хуже этой хуйни в жизни ничего не видал, легче на чистом sql писать. неужеле с асинхронный питоном всё настолько плохо, что до сих пор блять нет нормальной ОРМ, скажите что это не так пожалуйста. потому что чем больше я изучаю эту тему, тем больше во мне уверенности, что асинхронный питон всё ещё годен лишь для пет-прожектов, а в проде для этих целей лучше юзать какой-нибудь ГО, даже там всё лучше в этом плане
>>1512862Что сплит делает? С обоими текстами выведи что получается после сплита и подумай, правильно ли он это делает.
Как напрямую получить доступ к счетчику ссылок на объект в пределах модуля?.. Есть счетчик слабых ссылок на объект (не понял правда нахера он нужен), а где счетчик обычных?..
>>1512892Говно ебаное. Не, так-то неплохо, но там же хуй проссышь местами как чего использовать, а в доках нихуя нет. Половина фич из алхимии работает, а половина вроде как не работает либо совсем, либо их дергать надо хуй пойми как. И да, манятуманя там вообще нет - мне пришлось много костылей напихать, чтобы m2m можно было по-человечески использовать и не писать руками кучу одинакового говна для каждого отношения.Но я так понял, из альтернатив ничего лучше нет, так что придется gino хавать и надеяться, что китаец когда-нибудь допилит. Хорошо хоть на гытхабе отвечает довольно бодро и многие вопросы там можно найти.>>1512797Я сначала тоже думал, что sql чистый будет проще. Потом посмотрел на это все и понял, что нихера не проще. С gino можно использовать alembic для миграций, а так все придется руками писать. Так-то асинхронные инструменты в питоне есть крутые: aiohttp, fastapi те же, но с орм пока что беда, хотя gino у нас в проде крутится и нормалды. Ждём django 3 с асинхронщиной, лол.
>>1512976> Ждём django 3 с асинхронщинойХахЕщё есть Peewee, кстати, но он мне не понравился своей структурой.
Подскажите, пожалуйста, как лучше всего сделать следующее на Питоне:необходимо слушать скриптом порт 8080 и ожидать текстовые файлы, которые будут приходить по HTTP пост запросами,далее необходимо после неких преобразований сохранить каждый полученный файл в другом формате,причем необходимо обрабатывать до 3х таких параллельных запросовкороче непонятно, какие вообще библиотеки для такого использовать и как такую цепочку организовать,я пока сделал так:с помощью socket сделал сервер, который слушает на порту 8080, принимает ровно 1го "клиента", принимает от этого клиента ровно 1024 байттекстовый файл передаю через curl командой типа:curl -i -X POST http://localhost:8080 -H "Content-Type: text/xml" --data-binary "@path_to_text_file"в результате получаю строчки на стороне сервера строчки по типу :b'ip=1.3 device=/\xd0\x92\xd1\x81\xd0\xb5 \xd0\x97\x ...короче, это не то что мне нужноподскажите, пожалуйста, как организовать эту цепочку
> HTTP пост запросам> с помощью socket сделал серверВсё у тебя хорошо?Возьми фласк/aiohttp и замути всё что тебе надо.
Ребята, хлопци, пацаны, мне нужно сгенерировать несколько пикч, 3д рендеров с парой-тройкой простых фигур в каждой по заданным вершинам, подскажите пожалуйста библиотеку с которой это будет проще всего сделать
>>1513012Ты хочешь сам реализовывать HTTP протокол? Хочешь сам реализовывать асинхронность и параллельность?Что тебе надо на самом деле:1) хоть немного разобраться, как работает асинхронность и/или многопоточность вообще и питоне в частности.2) использовать соответствующие либы. Ты можешь как джедай использовать либы h2/h11, которые парсят HTTP, либо фреймворки. Я бы асинхронные использовал, aiohttp / sanic, про фласк ничего не знаю.Если это тестовое задание, то я тебе сразу и честно говорю, ты для этой работы пока не готов. Разберись с асинхронностью. Мозг сломать надо, на это время надо, но как сломаешь, так потом несложно будет.
>>1513021Это с viz или шо? Ну как-то не выглядит слишком просто. Уже посмотрел несколько библиотек и везде практически тот же уровень ебли что с голым opengl
>>1513032С 3д там хуже, только чтобы настроить камеру нужно поиграться. Нет, я не боюсь первого семестра линейной алгебры, но мне нужно будет немало повозиться с этими рендерами, так что я хотел нацти что-то максимально примитивное и простое (пусть и в ущерб функциональности, хуле)
>>1513015окей, спс>>1513025>Если это тестовое задание, то я тебе сразу и честно говорю, ты для этой работы пока не готовда, ты угадал, но всё-таки я хочу попытаться сделать хоть какое-то работающее решение хотя бы сделать задел на будущееспасибо за советы
>>1513045Я Лютза 4е издание использую. Очень хорошая база. Так же использую этот https://www.youtube.com/watch?v=ZgSx3yH7sJI&list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0&index=2плейлист, ну и для практики задания от МФТИ. Хотя пока сложновато с ними
>>1512892Выше человек >>1512976всё верно расписаи. Я только начал вкатываться в GINO уже охуел от отсутствия документации, и это я ещё ничего сложнее аггрегирующих функций не использовл, что будет дальше даже подумать страшно.Если у вас есть продовый опыт может поясните за структуру проекта в aiohttp. Как например db-коннекшн передаете? Объявляете глобально один раз или прокидываете через из app.config. Буду рад нормальным материалам по этой теме
>>1513059А вот тут уже не знаю. Я вообще 4е взял, потому что его все рекомендуют из-за плюсов, мной перечисленных. Быть может, пятое урезано в некотором плане? Надо спрашивать у местных знатоков
>>1513065Можешь просто посмотреть что он пишет в разделе "about this edition", никто явно версии не сравнивал
>>1513012Тебе достаточно принимать файл с помощью какого-нибудь микрофреймворка (выше уже сказали) и плодить процесс на каждую обработку, для асинхроннщины есть даже специальный run_in_executor
>>1513099Имеешь ввиду по чистым пропускам? По идее тогд надо пробел, запятую и другие знаки в разделители внести. Но как быть со знаками, которых он не досчитался? слов больше оказалось лол
>>1513123Спасибо. Блин, ткинтер простой слишком, а кьютэ тяжеловесная махина. Хотелось бы что-то по серединке. Но по ходу буду с кьютэ ебаться
такс анонасы. нужны ваши советы. не хочу спрашивать в мывамперезвоним треде т.к. там одни неадекваты сидят поэтому спрошу тут. хочу вот вкатываться на позицию джуна в вебе. по вашим же советам написал блог и свою аиб на джанге и запихнул в свое портфолио на гитхабе. так вот: в моем зажопье 20 вакансий на джангу, но везде нужны мидлы или сеньоры. что мне делать? слать им резюме и в сопроводительном письме писать возьмите плиз на стажировочку за мрот?
Анончики, которые помогали мне в прошлом треде с заданием. Вы его похоже не правильно решили. Вы сказали что не нужны входные данные. А теперь препод скинул еще инфы. И оказывается что входные данные есть. И снова прошу вас помощь, ибо я не могу понять что и как
>>1513195Тыжпрограммист, вот и прикинь сам: если джуны им не нужны, то они:1. проигнорируют тебя (вероятнее всего)2. позвонят и злым голосом скажут, чтобы ты больше им не писал (вряд ли)3. внесут тебя в чорный список по всей стране и вообще будут тебе под дверь срать (я такого не встречал)Если же джун не помешает, то тебе позвонят и позовут поговорить.То есть лучше слать, чем нет.
>>1513214>Анончики, которые помогали мне в прошлом треде с заданием. Вы его похоже не правильно решили.Хуя ты наглый чорт.
>>1513221>Если же джун не помешает, то тебе позвонят и позовут поговорить.это ведь можно узнать только если я им отошлю свое резюме с письмом?
>>1513229В смысле "код не заработает"?Ты хочешь сделать copy -> paste и получить волшебную пилюлю? Препод найдет где доебаться, если не шаришь. Я не вчитывался, что за код они тебе дали, но блэт уверен что они мыслили в нужном направлении. Просто рефакторни его для себя блин
>>1513236Можешь ходить с таинственным видом вокруг их офиса, рано или поздно они не выдержат и спросят, не хочешь ли у них поработать.
>>1513214в чем сложность то? Сгенерируй список иксов, например, с помощью np.arange(-2,2,0.3) и пройдись по ним в цикле как-то такdef func(x): return (x+1)/x2otvet = [ func(i) for i in np.arange(-2,2,0.3)]
Сука, как вообще можно прогать на этом говне? Без инкапсуляции, без адекватной параллельности, с производительностью полудохлой лошади?..
>>1513315> Без инкапсуляцииЕщё один неправильно понял смысл инкапсуляции.> без адекватной параллельностиЭто если думать, что ничего, кроме CPython, не существует.> с производительностью полудохлой лошадиА не пиши числодробилки на питоне, и не будешь страдать.
>>1513409Дай угадаю, ты из тех людей, которые считают, что если в языке нет ключевых слов private и public, то значит и нет инкапсуляции. Так вот, открою тебе секрет, если разработчику понадобиться достать приватный класс или поле, то он его достанет с помощью рефлексии и никакой private ему не сможет в этом помешать. Так что в итоге всё сводится к конвенциям, а если так, то зачем нагружать язык дополнительными конструкциями.Вот серьёзно отсутствие private и public в Python - самый наименьший недостаток
>>1513451Кстати, тут приводили пример, как через замыкания сделать сокрытие функций. Я ботал потом на эту тему, реально работает, то есть никаким адекватным образом ты до переменных внутри не доберёшься.Правда на самом деле это не нужно, ни для каких реальных задач. Пионерство да и только.
>>1513111WxPythonPyGamePySimpleGUITogafbs (build-system.fman.io)Gooeyflexxcefpythonglooeypygletpyformspygobjectpysidefltk
Сап, питоноводы. Как лучше всего реализовать работу с несколькими пользователями в боте впараше? Тхреадинг или асинкио?
>>1512752 (OP)Уже второй тред пишу, чтобы в шапку добавили соус под размещение листингов - https://dumpz.org
>>1513107Скорее всего в тексте знак применения был обрамлён пробелами, соотвественно это получилось отдельным словом, либо было где-то 2 пробела и в списке появилась пустая строка, посмотри все слова с одной буквой и меньше.print([word for word in your_words of len(word]) < 2)
>>1512892Когда я вижу слово, которое похоже на говно, оно у меня сразу вызывает опасение. GVINO хороший пример такого слова.
>>1512894Через сборщик мусора можешь получить список все ссылок на объекты, соотвественно count адреса твоего объекта должно дать количества объектов, но лучше такой херней не заниматься, как мне кажется.
Вкотился, всем привет. Я тут ковыряю комсоль гедита. А там GtkTextBuffer.Ясно, что можно исходники комсоли отредактировать, но мне почему-то кажется, что должен быть способ в уже готовом TextView заменить буфер на более продвинутый, скажем, на GtkSourceBuffer. Я ошибаюсь? Мне казалось, что я где-то видел что-то подобное.И ещё вопрос, как в GtkTextBuffer поменять цвет выделенного текста? В GtkSourceBuffer, ясное дело, просто схему сменить, а тут чё-то я не догоняю. Пробую, например, так:textstyle=view.get_buffer().get_style_scheme().get_style('text')selectionstyle=view.get_buffer().get_style_scheme().get_style('selection')textstyle.get_property('background') # #001b33textstyle.set_property('background','#440000')textstyle.get_property('background') # И всё равно #001b33, то есть вообще ноль изменений. А как тогда?
Приветики, питонщики!Помогите, пожалуйста!Необходимо на джанге отдавать одну статическую папку со всем содержимым исключительно для авторизованных пользователей.В этой папочке хранится клиентское single-page приложение, которое писалось не мной и в нём отсутствует работа с сервером
>>1513214Ну епта, я ведь тебе уже писал решение:>>1512120x0, xn, xi = -20, 20, 3 # числа в 10 раз больше, чтобы юзать стандартный rangeЗамени их на нужные или вынеси переменными над генератором списка.
>>1513237Ему дали start, stop, step для range константами, а ему нудно переменными, а человек даже не понимает, как это изменить в коде.
>>1513409Ну вообще модно сделать класс недоступным для экспорта через __init__.py файлик. Твой проблема явно высосана из пальца.
>>1513409Ну вообще модно сделать класс недоступным для экспорта через __init__.py файлик. Твоя проблема явно высосана из пальца.
>>1513519Асинк, забудь вообще про треды, если если только их не юзают либо, это уже пережиток прошлого.
>>1513595Хорошо. А как логически реализовать это через асинк? Просто я 5iq мусор и никогда до этого ботов не писал
всем hi. Собственно проблема: Нужно разобраться с базами данных в питоне. Думаю что sqlite подходит, так как приложение будет локальным, но не знаю с чего начать.Я в бд 0, поэтмоу прошу совета у знающих: Что читать и кого смотреть? ТЗ в двух словах: Расчитывать топливо для автобусов. БД нужна для того чтобы вести учёт заправок
>>1513645Почитай сначала основы sql, всякие create table / select / insert / update / delete. Затем поищи туториал по sqlite а Python с примерами. Этого хватит.
>>1513661Я ничего не выбирал, почитал что sqlite сразу импортирован в питон, подумал что с ним проще. Я открыт для всего что связано с бд, только скажите что мне делать ибо в видосах нихуя не понимаю потому-что они ничё не разжевывают, да и нормальных не нашел пока что
>>1513674И теперь вместо простенького файлика скулайта он будет ебаться с сервером монго, отлично ты посоветовал. Дома дырки в стенах тоже кувалдой сверлишь?
Блять че за конченные. Я уже запутался какие функции и методы в этой асинкио параше щас используются. Читаю статейку/смотрю видео по асинку - используется одно, читаю доку - сори это уже deprecated, надо по-другому. И так уже дохера раз. Можно уже как-то определиться со своей хуйней и не ебать мозг вкатывальщику лишний раз.
>>1512752 (OP)Аноны, можете пояснить.Почему тут сначала выполняется верхний и нижний блоки, а после уже выводятся все простые(True) числа через print, который вообще посередине стоит?По идее же должен идти по порядку кода, т.е сначала выводить всё, а потом уже фильтровать
>>1513751Оно и выводит по порядку. Вложенный цикл никак не затрагивает то, что уже выведено, так как не затрагивает элементы с индексом меньше квадрата i. При этом на каждом этапе внешнего цикла число выводится только если оно не делится на все числа от 2 до i-1, а значит простое.
>>1513769Наркоман? Мы шестой тред разбираемся, как функция print работает, какие консоли, о чем ты вообще.
>>1513765>При этом на каждом этапе внешнего цикла число выводится только если оно не делится на все числа от 2 до i-1, а значит простое. Я понимаю, что вложенный цикл заполняет False те ячейки чисел, которые не простые.Но почему сначала выполняется вложенный цикл, а после выводится print? Если бы сначала выводило принт, а после выполнялся цикл, то тогда бы выводило все числа(т.к. все True)
>>1513803>Но почему сначала выполняется вложенный цикл, а после выводится print? Ps. когда принт стоит на строку выше
>>1513633Это зависит от задачи и интерпретатора питона, которым ты пользуешься.Если в CPython на большом количестве задач, то asyncio будет быстрее. Переключение тредов ведь хаотично и затратно, плюс есть GIL, из-за которого реальной многопоточности нет.Но есть Stackless Python, альтернативный интерпретатор, он заточен именно под потоки, там легковесные потоки с быстрым переключением, там нет проблемы GIL, ещё какой-то свой дополнительный функционал для потоков.В CPython для асинкио ты можешь использовать uvloop, плюс в том, что прозрачно абсолютно, иногда сильно ускорить может, но иногда даже хуже работает, чем event loop по умолчанию. В некоторых случаях можно смотреть на инструменты вроде PyPy, это ещё один интерпретатор питона, с JIT, может дать радикальное ускорение обычного питон-кода.Пути в хайлоаде запутаны и тернисты. Если тебе хочется именно потоков, то смотри Stackless или что-нибудь в этом роде. Я в питоне потоками не пользовался, не могу ничего сказать.
>>1513803У тебя проблема с самим алгоритмом? Вот смотри на гифку, обводится число i, потом это число выводится справа(у тебя подаётся в print), а затем уже все i*n, (n>=i) числа вычеркиваются
>>1513813>Если в CPython на большом количестве задач, то asyncio будет быстрее.Запихиваешь такой cpu bound задачу в корутину и думаешь, хули у тебя все висит
>>1513799А у вас там с css никто не работает?В gtk у всех экранов может быть свой «провайдер css». И в этих провайдерах может быть что-то типа#MyWindow{ background-color: #300a24;}GeditWindow{ background-color: #300a24;}GtkButton:focused { background-image: url("/home/user/1.png");}Ну то есть селекторы по классу, по идентификатору и по состоянию. А может быть и не только.И в TextSourceView можно теги вставлять, ну совсем как в html, чтобы разные фрагменты текста разными цветами и шрифтами отображать. И во всякие тултипы тоже.Идея-то вроде норм. Я вот и подумал, что и под всякими там вендами всё делается похоже. А что, нет?>>1513783Могу сказать, что работает в точности, как в баше.
>>1513803Ты точно понимаешь, как работает цикл? Вложенный цикл выполняется не один раз. А каждый раз при выполнении внешнего цикла. Сначала выводится индекс второй ячейки и вычёркиваются все чётные числа, начиная с четырёх. Потом выводится число три и вычёркиваются все делящиеся на три, начиная с девяти. И так далее.>>1513852Не все, а только те, которые кратны i. И когда наименьшее из чисел, кратных i, простое — там будет True и оно будет выведено.Тебе бы почитать про инварианты и доказательство правильности программ. Оно тут как раз просвечивает. Так сказать, взаимосвязь между программированием и математикой.А вот ещё интересно, есть ли под петон нормальные отладчики. Я-то просто в текстовом редакторе пишу, там даже автодополнения нет. И если есть, то просто понажимай step into и посмотри watches.
>>1513911Нет. Уже в самой второй строке ошибка> дано действительное число x != 0> x= int(input("Введите x"))И дальше ты считаешь что-то не то. Почему-то 1/summ, хотя в числителе ведь не единица.Короче переписывай.
>>1513940int - это целое число, а не действительное. Тебе надо делать float.Цикл неправильный у тебя. Почему-то ты вычитаешь 2, а не делишь на 2, как надо. Почему-то ты не используешь i при вычислении суммы, а ведь должен.
>>1513941>int - это целое число, а не действительное. Тебе надо делать float.>>Цикл неправильный у тебя. Почему-то ты вычитаешь 2, а не делишь на 2, как надо. Почему-то ты не используешь i при вычислении суммы, а ведь должен.>в числителе всегда целое числопо этому используюется Intчто б не было лишних нулей после точек
>>1513941>int - это целое число, а не действительное. Тебе надо делать float.float даже не все рациональные числа представить может, не то что действительные
>>1513897Спасибо, я понял. Туплю.С матаном неоч тоже, не знаю где и поднатаскать, но не знаю, где. В частности, теорвер или дискретку какую-нибудь неоч хочется залезать в геометрию и всякие школьные херульки> инварианты и доказательство правильности программГляну
>>1513957>инварианты и доказательство правильности программНе слушай, это шизоид баззвордов нахватался.
Правильно ли я понимаю, что len() считает кол-во байтов в строке, и поэтому может ошибиться в подсчете "символов". Есть же, наверно, символы, которые больше байта, допустим, занимают
Полный нуб итт. Почему не работает вот такое дерьмо? Я ввожу 1, и срабатывает elsehttps://pastebin.com/ad1AiDq7
>>1514012Ты сравниваешь функцию input с единицей. Конечно, это False. Перепиши так:a = int(input('> '))if a == 1:...
>>1514023Не больше тех, кто придумывал поведение ==:"" == 1"" == False"" == []"" == {}"" == input1 == ""1 == False1 == []1 == {}1 == inputFalse == ""False == 1False == []False == {}False == input[] == ""[] == 1[] == False[] == {}[] == input{} == ""{} == 1{} == False{} == []{} == inputinput == ""input == 1input == Falseinput == []input == {}И хоть одно сравнение бы кинуло TypeError. Хуй, молча False. Как в джаваскрипте каком-то.
>>1514032А где-то шла речь про хвалёную строгую типизацию? Ты в питоне можешь умножить строку на число, алло, мань
>>1514034Да, шла. Якобы Python > JS, потому что в нём не выполняется "1" + 1 = 11.Умножение хотя бы не преобразует строку в число втихую. И на том спасибо.
Так аноны нужно на джанге реализовать вот такой опросник, как это лучше сделать? Еще нужно чтобы человек мог голосовать только 1 раз.А да и можете объяснить как мне реализовать эти полоски, чтобы они динамически заполнялись, я так понимаю нужен жс, но не знаю в какую сторону дальше копать.
>>1514049Про джангу не подскажу, но полоски можно сделать через указывание ширины div. По мере заполнения подсчитываешь ширину заполненной и незаполненной части и добавляешь два дива с соответствующими ширинами.
>>1514042Зачем вообще сравнивать эти языки, если они под разные задачи. Это ведь из разряда РЯЯЯЯ МАЯ ИГРУШКА ЛУЧШЕЕЕ А ВАША ГАВНОО
>>1514042>>1514042Ну да, питоновская сильная типизация мне, например, больше нравится, чем то, что в js. Я несколько раз там проебывался так, как в питоне проебаться невозможно. Но в выборе языка строгость типизации это не особо важный момент, иначе я бы сейчас так и учил дальше питон, а не js.
Ребят, всем привет, такой вопрос:В общем, есть функция, в которой выдается рандомный возраст (ну то есть случайное число от 18 до 30) и на этот возраст нужно ввести инпут, на который тоже придется два условия (ну то есть будет выбор и потом комментарии выбора верный он или нет)Собственно суть вопроса в том, что количество случайных возрастов тоже случайно. Есть ли способ вызывать эту функцию N раз одну за одной?
>>1514449N - рандомное число, которое меня мало интересует. Главное, чтоб он вызвал ее эти N раз.Объясню, что вообще придумал.Это текстовая игра, где баба выбирает себе мужиков. Приходят к ней мужики от 10 до 80 лет. Она принимает только от 18 до 30 лет. И N - это то, сколько мужиков придёт.Ну и в случае неверного выбора мужика - break.
>>1514482Охуеть верх геймдизайнерской мысли, всё, пошёл основывать Python Entertainment ©®™, будем пилить десятистрочные игры на питоне и пилить миллиарды, идеи будем брать с двача
Анончик-питончик. Подскажи, какая самая лучшая IDE (субъективно, само-собой) для пайтона.Я хеллоуворлдщик-фибоначчист.Пробовал АЙДЛ, сейчас пердолюсь в ВИЖУАЛ СТУИДО.
>>1514452Мне похуй на твою дальнейшую логику, вот я тебе привел пример программы, которая генерит Н раз число.
Я задаю Z=numpy.random.normal()Затем при прогоне диапазоновfor i in range(M): S[i + 1] =S+ S np.random.normal()for i in range(M): S[i + 1] = S+S ZВыдают сильно разные результаты усредненно за много прогонов. Приравнивание Z=numpy.random.normal() меняет как-то вывод numpy.random.normal()?Надеюсь понятно. Весь код громоздкий.
>>1514641Слышу нотки сарказма в твоем сообщении, но таки да, после легкой обработки напильником вим становится иде.
Есть на примете читшит по flask/django типо как организовывать структуру проекта, типо диаграммы связей?
>>1514699Скорее про файлы/директории, читал где-то шо под каждый проект индивидуальный подход, но схемы полюбому где-то можно посмотреть, как это делают люди с опытом
Аноны спасите, вот модель моя в джанге, она сделана для опросника в котором участвует модель employee, нужно сделать чтобы голосовать сотрудник мог только 1 раз как это сделать?
>>1512752 (OP)Сапхочу переименовать картинки в папке сохраняя тот же порядок (т.е первая картинка будет картинка1, вторая картинка2 и тд)нашел os.rename, но он переименовывает в хз каком порядкето есть не по алфавиту, а видимо рандом, например начинает с середины папкикак можно переименовать картинки не меняя их порядок?
>>1514722Ну логично что тебе нужна промежуточная таблица в которой будут храниться пары: сотрудник-вопрос. Если запись есть - запрещаешь голосовать. Изи.
>>1514750Порядок действий.1 Определиться в каком порядке тебе нужны файлы: не бывает "того же" порядка. Есть сортировка по имени, размеру, дате создания, дате изменения.2 Получить список файлов.3 Получить ключ для сортировки (на основе выбора из п.1)4 Сортировать по использованному ключу.5 Переименовывать файлы.
>>1514816Можешь на примере показать как должна модель выглядеть для такой таблицы и как мне записывать туда данные? Типо после того как пользователь кликнет на ответ и проголосует, тогда добавится запись?
Посоветуйте годных курсов на Coursera по сабжу. Желательно из числа тех, которые вы сами прошли и твёрдо можете рекомендовать.
>>1514950А зачем книга то. Ставишь себе задачу - гуглишь свойства элементов - ???? - вы восхитительны.
Ну и как на этом писать? Обмазался ml, скачал проект на c# все понятно, с интерфейсом, чтобы обучить написано скачать скрипт на питоне, ну и хули тут блядь 100 каких-то файлов какие-то папки, баши, никаких интерфейсов какие-то ебанутые инструкции как запускать на 20 страниц, где блядь приделать формочку чтобы подцепить данные было бы быстрее.
Есть вариант распараллелить выполнение кода в 2 строчки? Или вообще на видюху повесить? Обычный цикл for i in range уже час считается в нем конечно еще несколько таких циклов, но ничего сложного.Видос из шапки не особо полезен, т.к. я нуб.
>>1514960Дааа, так уже и начал делать. Затем, когда накатал програмку (только что, после создания поста начал писать), встал неочевидный вопрос:Аноны, а какого черта после компиляции с ткинтером, я запускаю программку свою (выдает почему-то консоль сначала), и прежде, чем выдать интерфейс основной, он думает секунды 3? Мне это вообще не нравится. Не понимаю, почему так медленно. Там кода всего на 40 строк примерно.
>>1515045> выдает почему-то консоль сначалаЕсли pyinstaller, то собирай с флагом -windowed, или как там его> и прежде, чем выдать интерфейс основной, он думает секунды 3?> Short answer, a complete environment for your program needs to be extracted and written to a temporary folder.
>>1515064>Short answer, a complete environment for your program needs to be extracted and written to a temporary folder.Это как?
>>1515065Это учись читать доки блядьhttps://pyinstaller.readthedocs.io/en/stable/operating-mode.html#how-the-one-file-program-works
>>1515036Если код короткий, попробуй PyPy использовать, он в чисто питоновский код в циклах может в десятки раз иногда разогнать.Надо смотреть на твой код. Наверняка можно оптимизировать.
>>1514821cпс, звучит трудненько)я написал к тому, что os.rename переименовывает не по алфовитному порядкурешение я придумал проще - написал регулярку
Всем кулити, есть ли в pycharm возможность отладки по останове как в Visual studio? единственное, что смущает перехода
>>1515036numba ставь https://weeraman.com/put-that-gpu-to-good-use-with-python-e5a437168c01 , оно и видюху может, и так на процессоре вывести типы и скомпильнуть твой говнокод в быструю какашечку
>>1515113Придется за ней всю анаконду тащить. Как она в плане опенсорсных дров для видюхи на линуксе?
>>1515115Не думаю что cuda может работать на попенсорце, но numba и cpu поддерживает. И, в плане cpu, pip install numba сработает. Насчет cuda не пробовал
>>1515036Код показывай, если у тебя число-дробилка то можно улучшать код и улучшать.У того же scipy есть куча методов и параметров.Кроме того что предложили аноны, можно попробовать ещё и на сишном пистоне написать часть логики.
>>1512752 (OP)Аноны, знает кто что про Практикум от яндекса? Это такая же платная шляпа как и курсы от гикбраинс и скиллбокс?
Сап,петоначьГде можно найти человека сделать простую работу?ТЗ примерно такое: спарсить всех сидящих на этом канале,кроме админа,и разослать им в пм нужное сообщение.Все это в IRCвроде как текстовый протокол и все должно быть просто,но я не кодер,а нужно скрипта для такого я не нашелМожет кто тут сделает?Кину немного беткойнов
Не знаю куда писать, попробую тут.Есть серв с зоопарком скриптов на питоне. Они рождаются, плодятся, умирают. Живут своей жизнью, короче.Нужен кто-то типа супервайзера, который по REST апи будет возвращать список живых процессов, порождать и убивать процессы.Какой-нибудь фреймфорк или готовый сервис.
Пс, а на питоне есть что-нибудь для рисования? Нужно сделать координатную сетку для листа А4, с двумя осями, а на ней, с отсчетом от центра поставить заданные точки и сохранть это все дело в формате жпг или пнг, чтобы потом распечататьНу грубо говоря график нарисовать
>>1515371Кто плодит эти скрипты? Я бы подключался к этой хуйне и вытгивал данные оттуда.Для рест апи подойдёт любой пистоновский небольшой фреймворк типа flask/bottle/pyramid
аноны. нужна аша помощь. щас прохожу курс по питону и там такая задача.Жуки не любят находиться рядом друг с другом и каждый прячется под отдельным камнем и старается выбирать камни, максимально удаленные от соседей. Так же жуки любят находится максимально далеко от края. Как только жук сел за камень, он более не перемещается. Всего в линии лежат X камней. И туда последовательно бежит прятаться Y жуков. Найти сколько свободных камней будет слева и справа от последнего жука.X может быть до 4 млрд.ПримерыX=8, Y=1 – ответ 3,4 X=8, Y=2 – ответ 1,2 X=8, Y=3 – ответ 1,1сразу говорю - в гугле какая то хуета подзалупная. в каком направлении копать то ?
Ахуенно устроился на работку, со вторника работаю, вроде нормально было, только меня сразу посадили за проект и дали боевую задачу, которую я всю неделю делаю и не знаю когда доделаю, вот сегодня сказали, что 2 программиста, наш сеньор и миддл увольняются, в итоге в конторе останусь я и еще один миддл, у меня спросили 'тебя такие перспективы не пугают?' я подумал про себя КОНЕЧНО БЛЯТЬ ПУГАЮТ, сказал что да немного, но это полный пиздец сказали что теперь я должен там поддерживать проект, но я в душе не ебу че там и как делать, мне конечно будут из головного офиса который в дс помогать сам я из региона но я видел этот проект он пиздец огромный и я даже 20% не понимаю че там происходит вообще, хотя сказали мне что если у меня получиться влиться то 'будет очень быстрый карьерный рост', но уверен что обосрусь, видимо вылечу оттуда уже на след неделе, надеюсь хоть за эти дни какие-нибудь копейки заплатят, пиздос.
>>1515412Посмотрел матлиб, он сложный пиздец, есть что-нибудь попроще? Я не погромист, питон использую чисто автоматизировать некоторую хуйню по учебе
>>1515752Он не сложный, просто начни с простого, тебе этого и хватит в принципе.Нарисовать то что у тебя можно в строк 10 кода, где 2 строки на импорт и 2 на финальное отображение.
>>1515752Он несложный, просто мощный. Если тебе нужны простые вещи, они делаются просто. Для начала запоминаешь две команды: from matplolib import pyplot as plt и plt.plot(x, y)Проще только матлаб из которого этот pyplot слизан
>>1515756А можно наводки хоть какие-набудь? Типо ок, везде написано, что все просто, но все туторы которые я нахожу они про обычные графики функций, а по запросу в гугл "crosshair" экей перекрестие выдает хуйню, где куча строк кода
>>1515781Если ты в интерпретаторе, делаешь plt.ion(), чтобы графики показывались моментальноВ скрипте не делаешь plt.ion(), а вместо этого когда закончишь делаешь plt.show()from matplotlib import pyplot as pltplt.plot([1,2,3],[4,5,6],'+')#красный крестик будет r+# или plt.scatter([1,2,3],[4,5,6]), вообще это называется scatter plot по-английскиplt.show()plt.savefig('yoba.png')
>>1515808Вот наводка, примеров там многоhttps://matplotlib.org/3.1.1/gallery/axisartist/demo_axisline_style.html#sphx-glr-gallery-axisartist-demo-axisline-style-py
аноны, поясните что это такое? гуглил и в англ нете и в нашем ничего не понял кроме того что это популярный шифр среди школоты и дотеров.
>>1515900популярное коверканье слов кулхацкеров, родом минимум из 90х, частично используется например в мессенджерах
>>1515913>>1515907да читал я. даже охуел когда эти статьи читал и немог поверить что авторы учебника такую хуету могли в задание засунуть.
>>1514083Это все ебаные пути виндовские, где один обратный слеш экранирует другой, ты попробуй выпринтить свой путь. Юзай либо нормальный юниксовый прямой слэш, либо делай строку сырой- r”raw_str”, либо os.path.join(“C:”, ”ebal”, “ya”, “vashego”, “abu”, “v”, “rot”)
>>1514821Вот ты и спалился разбiник, дата создания есть только в винде, в юникс подобных, только дата изменения.
>>1515913>>1515907поясните, ещё, пожалуйста. а что там в задании требуют? что за словарь? никакого словаря у меня там не было, они имеют в виду {} вот этот словарь чтоли? и что он возвращать должен? любое слово? или по буквам конвертировать. нихуя блдяь не понимаю, нужно же блядь этот быдлошифр туда впиздошить было.
>>1515100А в чем собственно проблема отсортировать список с именами файлов, которые получены через os.listdir(path), если тебе нужна сортировка именно по именам?
>>1514960это пиздец будет долго и заёбно, с книгой проще ибо там сперва дают все свойства потому же задания по теме. очевидно что процесс обучения ускоряется с книгой в разы
>>1515685Была похожая хуйняНедели 2 ходил и думал о том, чтобы написать заявление раньше, чем меня пнут лолТеперь уже 1.5 года на поддержки этого говна.Начинает даже нравится
>>1515942задачи такие же. там ничего интересного. книга какая-то странанная уж не первые раз такие задания попадаются непонятные то они всунут задания из раздела который впереди и который я ещё не проходил
>>1515932еще была проблема в том, что при переименовании через os.rename часть файлов загадочным образом исчезаетв общем знатно я поебался с этой казалось бы простой хуйней
>>1515962Ну тогда просто скипай. В книгах бывают неточности, но если их многовато, то лучше уж взять другую.
>>1515976ну я просто взял за словарь что-то похожее на него из другой главны и буду программу писать щас. ну это лучше чем в прошлый раз когда они затолкали в один раздел задачи из другого который впереди я всё это гуглил вручную охуевая
>>1515976меня просто возмущает тот факт что теперь нужно разбираться как это говношифор устроен. ELITE блядь, так и повеяло 15 летними выблядками-хакирами из онлайн игр.
>>1515980Изначально-то это было частью хакерской культуры, это уж потом школота всё опошлила.Можно взять задачу поинтереснее, например, шифр Цезаря. Пользы будет больше.
>>1515973пытался выводить названия файлов, понять почему и куда они пропадают, потом махнул рукой и переписал на перле.
аноны, оцените говнокод. можно ли что-то здесь оптимизировать и покороче написать.>>1515900 вот это задание сделал.
>>1515956Ну ты наверно еще что-то умел, а у меня большие проблемы даже закрыть вроде простой таск, а теперь весь проект вешают на меня.
>>1516009Нахуя тебе короче? Сейчас это прекрасно читаемый код с понятнейшей логикой. А вот эти примеры (>>1516022) (>>1516015) - уебанство.
>>1516032использовать вложенные циклы с посимвольным сравнением>прекрасно читаемый код с понятнейшей логикойиспользовать функционал стандартной библиотеки на полную>уебанство/_0
>>1516034Ну давай через аналогии, раз ты сам не чувствуешь - если твой код походит на перлохудожества, то он плохо читается. Можешь ещё попытаться словами объяснить что на каждой из картинок происходит. А потом подумать почему те две картинки вообще нужно кому-то объяснять.
>>1516034if ... new_line += t[letter] заменить на t.get(letter, letter), так будет в 2 раза меньше поиска в словаре.Внутренний цикл можно заменить на списочное выражение без ущерба читаемости.readlines не требует '\n' . Получитсяfor line in r.readlines(): new_line += [t.get(letter, letter) for letter in line]Как-то так
Не хочу писать в МВП, поэтому здесь спрошу. Если меня позвали на тестовый рабочий день, это значит, я там полный день сидеть буду или нет? Знаю, что был как минимум один анон, который через это проходил. Тапки не кидайте, ранее нигде не работал, потому и спрашиваю.
>>1514052Спасибо за ответ, с версткой я полностью разобрался, но вот как простроить модели, чтобы голосовать юзер мог только один раз я никак не могу, вот бы мне кто-нибудь разжевал это.
>>15160091) когда ты открываешь файл на чтение с with и получаешь указатель, тебе не нужно делать readline, итерация по файлу и так даёт строки.2) Чтобы получить список в строке ты можешь примереть лист на строчку, при этом применив к ней strip перед этим, чтобы обрамить строку с двух сторон, убрав всякое говно типа переноса строк.3) нет смысла делать проверку на вхождение в твоём случаем, достаточно сделать get с дефолтным ‘’.
>>1516032Тоже не вполне понимаю целесообразность, снижать количество строк любой ценой очевидно неверный путь. Да ты сэкономил пару строчек, но получилось какое-то забодробительно ненаглядное предложение, и пока оно одно другое ещё ничего, а если их сотни то всё туши свет, код будет напоминать талмуд.
>>1515685ну хоть работаешь, анон. я за 4 месяца поиска работки так ниче и не нашел кроме 5 тестовых. в результате чего теперь вообще ссусь слать свое резюме тк думаю что отправят тестовое на которое я проебу дохуя времени а мне ответят извините тестовое выполнено конечно хорошо но на недостаточном уровне. такие дела. да и вообще думаю яп менять тк в моем зажопье нет вакансий на джунов-питонщиков. везде мидлы и сеньоры только со знанием 2.7 обязательно
>>1516032спасибо, анон, но я вообще-то имел ввиду как избавиться от for in for то есть цикла в цикле, т.к. я знаю что это плохо, но ничего иного придумать не могу, поэтому и решил посмотреть на решения других анонов.>>15161161. да я так и думал, вот только недавно с другим погромистом общался он сказал, нет ставь readline.спасибо, за советы, понял.>>1516015>>1516022спасибо, а куда вы словарь дели с алфитом как у меня?
>>1515726Пока нашёл курс про питон более обстоятельный у линуксоидов, а так же гайды по работе с гуями и объектно ориентированное программирование.Планирую пока написать пару калькуляторов статов для игр и ещё что-нибудь не большое. В принципе бота написать было бы неплохо тоже, полезная штука. Всё правильно делаю?
Может кто пояснить за удаленку в которой не требуют опыт? Вот вижу кучу вакансий верстальщиков пхп и питон джунов на удаленку с хорошей зп, ни образования, ни опыта не надо, я вот думаю попробовать, но выглядит это все как чистой воды наеб, возьмут они меня такого новичка, дадут таск я его закрою, мне скажут молодец иди нахуй и все.
>>1516363В целом примерно так и есть, причём далеко не только в программировании. Ищут лоха он делает работу, потом его посылают.
Есть бинарный файл, нужно преобразовать его в С-подобный массив вида 0x01,0x42 и т. д. и записать в другой файл
>>1516416with open("file.bin", mode="rb") as fin:__bs = fin.read() # массив с байтамиwith open("file2.bin", mode="wb") as fout:__fout.write(bs)
>>1516032Как же си-бляди заебали, когда же вы поймёте, что пайтоник стайл - коротко и просто, если ты не понимаешь и не можешь прочитать то, на что сослался, то пиздуй уже в свой си или яву, где нужно зерова туча строк для простейших операций вроде составления списка строк из файла.
>>1516242single_line = “”.join([your_dict.get(ch, ch) for ch in list(inp_line.strip()])В твое случае вторым аргументом должна быть пуста строка, но это очевидно ошибка, поскольку это уничтожит все пробелы.
>>1516481Чувак, да будет тебе известно, даже использование map уже не Pythonic-way, ты Zen of Python вообще видел?Вариант с maketrans нормальный, его бы ещё немного доработать и хорошо будет. Хотя использование readlines в этом случае уже многое о вашем уровне
>>1516481Безотносительно примеров выше. Питон хорош тем, что читается почти как текст на английском, а всякие скрипт киддисы пишут в стиле "мам смотри, я умею в генераторы" и запихивают все в одну строку просто потому что могут. Питон не про производительность, здесь можно делать упор на читабельность. МакКонел как раз про это писал, что можно программировать на языке, а можно с использованием языка, и второе лучше. Ньюфаги возводят удобные фишки питона в абсолют.
>>1516481Вот такие однострочники >>1516015 это нихуя не просто. Если нужно выбирать между понятностью кода и маленьким объемом, то лучше выбрать многострочник, который сразу понятен.Олсо, в каком-нибудь лиспе тоже можно писать все в одну строку, но никто так не делает, потому что читать такой код невозможно. То, что уменьшение количества строк дает какое-то преимущество -- это иллюзия. Если уж несколько строчек вместо одной тебе так мозолят глаза, сделай ебаный фолд.
>>> L = type('L',(list,),{'reverse': lambda self: super(list,self).reverse()[:2]})>>> l = L((1,2,3,4))>>> l.reverse()Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 1, in <lambda>AttributeError: 'super' object has no attribute 'reverse'WHY NOT?
>>1512752 (OP)Сап питонач, подумал я недавно, что было бы годно закинуть функцию print в другой поток, т.к. операции вывода на экран или записи на диск отнимают прилично ресурсов у ЦПВот у нас есть функция, которая постоянно проводит вычислительные операции, нагружающие ЦП и периодически должна выводить какую-то информацию в стандартный поток sys.stdout, либо во внешний файл. Зачем постоянно прерывать вычисления, чтоб функция print что-то вывела? Не легче ли заставить ее выполняться параллельно?Но тут возникают проблемы. Все ж мы знаем что "параллельность" в Питоне не так уж проста из-за GIL. Я пробовал создавать еще один thread, который вытаскивает из очереди Queue данные, закинутые туда основной функцией и выводит их - производительность только упала. Из вариантов: запилить асинхронную функцию print на основе asyncio, но я не шарю в асинхронках. Второй вариант - запилить второй процесс с помощью multiprocessing, но это "дорогое" удовольствие и не хотелось бы скатываться до этого
>>1516900Уверен, что засунуть print в асинхронку не так уж сложно (и кроме этого и охуительного совета про смену языка еще какие-то идеи есть?)
>>1516907>еще какие-то идеи1. Не страдать хуйней (числодробилка на питоне, вообще охуеть).2. Ну или поискать готовый асинхронный логгер, или написать свой.
Вкатываюсь в скрапинг BeautifulSoup + lxml + Selenium+phantomjs Связка актуальна?lxml сильно быстрее BS? Когда эту библиотеку имеет смысл использовать?Какие еще технологии, материалы добавить к изучению?Заранее спасибо
Может кто-нибудь объяснить почему в функции ничего не происходит и как вернуть в этом случае пустую строку?https://pastebin.com/G9KT3rKx
>>1516481>коротко и просто, если ты не понимаешь и не можешь прочитать то, на что сослался, то пиздуйУ кого-то логипа плывёт. Иди хоть PEP-сов почитай на досуге, там уже не первые десять лет как объяснили почему ты хуй сосёшь. Проблема тех примеров не в сахаре для создания списка, а в том что он набор операций весьма нестадартный и хуй вдуплишь чего именно ты хотел добиться. Оригинальный же пост сразу даёт понять что к чему и, как можешь видеть, анон смог и обоснование дать что там менять чтобы было лучше. Многовложенная эвалюация со скобочками в принте это вообще прекрасный случай нечитаемости - ты там сходу даже не скажешь к чему вообще '\n'.join() применяться будет. И приходится эту хуйню вычитывать и лишь потом догадываться нахуя ты это вообще сделал и почему именно так.
>>1516819Раз уж развлекаешься, то не проще ли службу отдельно запустить, которая будет тот же ip-трафик читать и в stdout выводить? И просто на неё закидывать нужные данные без всяких подтверждений.
>>1516954Лолбля, у меня даже уши покраснели.>>1516962Возвращает список в котором содержатся только четные элементы из начального списка деленные на два.
>>1516971Ну изменяет список. Без вас аноны я бы навряд ли смог додумать сам, а сейчас допер, тонны нефти вам.
Объясните мне, как в питоне по нормальному копировать списки? Особенно списки списков. Я в ахуе. Кем надо быть, чтобы придумать .что просто копия, сделанная без дополнительных каких-то изощрений связана с оригиналом и изменение одного списка изменяет связанный с ним? НАХУЯ?Вот у меня есть матрица. Мне надо последнюю строку вставить сверху, то есть сделать ее первой, первую изначальную первую, а не вставленную поставить последней строкой.И то же самое со столбцами.Делаю сначала строки, всякие инсерты и аппенды. Нормально. Потом столбцы. И тут начинается эта ебанина. В скопированной строке элемент добавляется дважды. Один раз в оригинале, и в торой раз в копии, которая за каким-то хуем последовала за оригиналом и уже заимела добавленный элемент.И главное, где про питон не почитаешь- ах какой элегантный язык. Пиздец.
>>1517008Ты дурачок, ты не делаешь копии, ты в две переменные вкладываешь ссылку на один объект. Просто загугли "как скопировать список, питон". срезы изучи
>>1517018Я знаю что происходит. Я не понимаю нахуя это надо.>в две переменные вкладываешь ссылку на один объект
>>1517021Потому что это mutable объект ёптаИ ты копируешь ссылки на один и тот же объект, а не сами объекты
>>1517027Да я понял, что копируются ссылки. Я не понял, зачем это надо? Зачем мне два объекта, которые на самом деле один?
>>1517021>>1517021Чтобы ты мог спокойно перекмдывать ссылку на объект между кусками твоей программы, например подавать в функции
>>1517028Потому что все переменные в Питоне это на самом деле ссылки на объекты. В этом суть структуры языка и всё тут. Можешь обмазаться С - там вручную ссылки создаешь и имеешь доступ непосредственно к ячейкам памяти и их адресам
>>1517043А хотя не, бля, оно же при каждом вычислении создаётся, другой пример:a = 0b = aСколько объектов
>>1517043Создастся 500 таких структурtypedef struct { PyObject_VAR_HEAD PyObject ob_item; Py_ssize_t allocated;} PyListObject;ob_item каждой будет ссылаться на объект с одним и тем же id.
>>1517049>>1517050Ну и ты точно так же копируешь ссылки на один объект, новый объект только при вычислении каком-то создаётся.
>>1512752 (OP)У меня есть несколько функций, как их запускать параллельно по секундомеру?.. Каждая из функций должна запуститься в параллельном thread или process через определенное кол-во секунд после старта Main thread, как это запилить?..
Пиздец взяли джуном, не могу закрыть это ебанный таск, уже 4 дня делаю на джанге этот опросник, нашел на гитхабе довольно похожее решение но там несколько редиректов, ты сначала голосуешь потом тебя кидает на страницу с голосами, а мне надо чтоб все на одной было, типо вот проголосовал, страница перезагрузилась, в бд добавилась запись что этот человек проголосовал, теперь голосовать не может и количество голосов увеличилось.
>>1517122Например, можно создать и запустить треды сразу после запуска скрипта, но в начале каждой функции написать time.sleep(определенное_колво_секунд)from threading import Threadfrom time import sleepdef f1():__sleep(определённое_колво_секунд)__# my functiondef f2():__sleep(определённое_колво_секунд)__# my functionif __name__ == "__main__":__th1 = Thread(target=f1)__th2 = Thread(target=f2)__th1.start()__th2.start()...__th1.join()__th2.join()Имей в виду, что прироста скорости не будет из-за GIL. Единственная польза от тредов в питоне - например, отделить ввод-вывод от фоновых вычислений.
>>1517133А в чем проблема? Ну сохраняй в куках статус проголосовавшего, или если есть регистрация, то список проголосовавших. Ну и рендери темплейт (хуй знает как это ваще в джанге выглядит) в зависимости от статусамимо хэллоу-вордщик
>>1517404> сохраняй в куках статус проголосовавшегоО, может, ещё и пароль проверять на стороне клиента?
>>1517404На фронте подобное не делается, максимум от фронта - асинхронный запрос на бэк с проверкой, всё.>>1517407А если не подошёл то выдавать список схожих паролей и предлагать выбрать нужный.Звучит как идея для стартапа
Анон, я понял, что у меня все ужасно в плане алгоритмов на фундаментальном уровне. Какие свойства есть у массива? Как его ворочать? Как работать с кортежами, списками, строками и т.д. Подскажите какую-нибудь годную книгу или видеолекции с пояснением темы, задачами и решением. В идеале - что-то по типу задач на https://codingbat.com/python, их там правда очень мало, и они без пояснения материала, синтаксиса, но решать из мне очень понравилось.
>>1517432enumerate() бежит по коллекции, возвращая пары вида (порядковый номер, значение). Если бежит по списку, порядковый номер совпадает с индексом в списке. enumerated() в питоне нет.
>>1517415Лекции хирьянова на ютубе. В комментах к роликам есть ссылка на практику, делай всё, контесты тоже
Аноны, нужно создать поле ввода в GUI на tkinter, но чтобы оно только принимало int значения (ну или чтобы в дальнейшем можно было изменить тип вводимого значения на int). Как такое можно устроить? Или может есть какие-нибудь аналоги без мозгоебли?
>>1517396С проверкой разобрался, но теперь без редиректа ничего сделать не получается, а мне обязательно, чтобы это было в виде виджета на 1 странице и она никуда меня не отправляла, а на месте выдавала результаты, например я выбрал ответ, нажал кнопку проголосовать, страница перезагрузилась, обновилась бд и добавились новые значения к результатам, как это сделать?
>>1517589> я выбрал ответ, нажал кнопку проголосовать, страница перезагрузилась, обновилась бд и добавились новые значения к результатамНу вот как ты описал так и сделай, в чём проблема?После получения ебучего ПОСТ реквеста делай либо же редирект на этот же урл но на ГЕТ либо же перед отрисовкой страницы после ПОСТ реквеста делай не только запросы в БД на запись данных, но и на чтение новых, актуальных.
Вот линк на таск кодварсhttps://www.codewars.com/kata/permutations/train/pythonМое решение работает в PyCharm, но не работает в кодварсВот кодhttps://ideone.com/JFP7t3В чем проблема?
>>1517790Раз уж там разрешены итертулз, то непонятно нахуй ты своего нагородил.Ты должен возвращать результат, а не печатать.При тестах вызывается permutations, то есть твоя функция вообще игнорируется.https://ideone.com/NSZL0j
>>1512752 (OP)Как скопировать двумерный массив? По срезу списки из которых состоит массив изменяются и в копии и в оригинале.
>>1517589Зачем тебе редиректы? Делай пост на эту же страницу, в начале добавь небольшой кусок мол "если в запросе есть воут, то пишем в базу", а дальше обычный код вывода голосовалки.
Аноны помогите решить задачуНапишите программу, которая принимает данные от пользователя с помощью функции input и печатает результат в консоль.Ввод данныхПользователь последовательно вводит данные об учениках в формате класс фамилия. Например: 9 Иванов или 12Б ПетровЗа один раз вводится один ученикМежду символами, обозначающим класс и фамилией, ровно один пробелКоличество учеников и классов не ограниченоКонцом ввода является передача пустого значения
Сделал автокомплит в питоноконсоли. Сделал так: определяется часть команды до точки и часть команды после точки. По первой части делается eval и dir, а по второй части делаю фильтрацию результатов, которые всплывают в стандартном окне с вариантами. В остальном всё как в стандартном текстовом редакторе, меня смущает то, что каждый раз для подбора вариантов вызывается eval. Ведь мало ли что там может таким образом случайно вызваться.Вопрос: насколько это через жопу?
>>1517122Так нахуй, Папка в тред зашел бля>как их запускать параллельно по секундомеруthreading.TimerВсё, ёпта
>>1518011>Цепи маркова очень торт автокомплите простомЧто-то я не догнал, при чём тут цепи Маркова. Что ты имеешь в виду?
>>1518049> По первой части делается eval и dirЗвучит не торт> при чём тут цепи МарковаПогугли что это и как можно применить.
Помогите плиз найти какой-нибудь более менее пример загрузки пост запросом текстового файла на сервер, написанный вот это:https://docs.aiohttp.org/en/latest/web_quickstart.html#file-uploadsне то, тут они показывают , как загрузить файл из инпут поля, я попытался адаптировать это под обычную загрузку текстового файла POST запросом, например с помощью curlcurl -i -X POST http://localhost:8080 -H "Content-Type: text/xml" --data-binary "@ПУТЬ_К_ФАЙЛУ"передаю туда файл со следующим содержанием:123abcно при этом я не могу никак получить доступ к самому содержимому этого текстового файла,
> какой-нибудь более менее пример загрузки пост запросом текстового файла на сервер> но при этом я не могу никак получить доступ к самому содержимому этого текстового файла,Тебе что из этого надо?Загрузить файл пост запросом на серв? Бери реквестс и поле file.Прочитать файл на сервере? Сохраняй файл в директорию а затем открывай его обычным open('/path/dir/file', 'rt').
>>1518134такое ощущение, что data = await request.post()вообще пустойно запрос проходит нормально,как получить текстовое содержимое файла, что бы его потом обрабатывать и на его основе делать респонс и хедеры?
>>1518137хочу получить содержимое текстового файла, полученное POST запросом от клиента (curl -i -X POST http://localhost:8080 -H "Content-Type: text/xml" --data-binary "@ПУТЬ_К_ФАЙЛУ")обработать его и сохранить в файл другого формата (сделать из него словарь и сохранить в джейсоне)вот что у меня пока есть:>>1518139
>>1518143Да, но этот пример сделан для конкретно этого html темплейта,а я просто делаю POST запрос с текстовым файлом с помощью утилиты curl
genome = input().lower()print(f"{(((genome.count('c') + genome.count('g'))/len(genome)) * 100:.1f}")Мудрые аноны, подскажите что с функцией не так?
>>1518149Потому что ты хуйню творишь.Если не умеешь курл юзать как надо - юзай реквестс или постмана.Ты должен передать файл как ФАЙЛ.И тогда всё работает.Твоя хтмл форма делает вполне себе обычный завпрос только верно выставляет хэдеры и параметры для передачи.
>>1518155с синтаксисом какая-то мешанинаhttps://stackoverflow.com/questions/20457038/how-to-round-to-2-decimals-with-pythongenome = input().lower()print(round(((genome.count('c') + genome.count('g'))/len(genome)), 1)100 )#ИЛИres = ((genome.count('c') + genome.count('g'))/len(genome)) 100print(f'{res:0.1f}')советую как-то разделять код, что б не было мешанины
>>1518189Прилепил немного не то: genome = input().upper()print(float(f"{((((genome.count('C') + genome.count('G')) / len(genome)) * 100)):.1f}"))Твой вариант тот же тест проваливает.
>>1518158спасибо за помощь, походу я пытался файл передавать, как data-binary и нужных заголовков не было
>>1516485Открываю секрет мироздания: все плевать на пайтон дзен, что не бракуется линтером, то разрешено, а бракует он многое.
>>1516486А по твоему вложенные циклы читаются лучшем, чем генераторы? Есть конечно вещи, которые ухудшают читабельность, но все примеры выше явно не тот пример.
>>1516512Тебе не кажется, что читаемость - вещь субъективная, все зависит от того сколько ты строк кода подобного переварил. Как по мне пример, на который ты сослался, очень даже читабельный.
>>1516819Почему все так боятся мультипроцессинга? Причём причины всегда разные называют, иногда дорого, иногда сложно, иногда просто не стоит. Родина вам звезды дала - носи - не хочу, хочу жрать говно.
>>1516965Укажи мне в пепах пункты, которые запрещают уже 10 лет хоть что-то из примеров выше, будь добр.
>>1516965У тебя походу какие-то проблемы с пониманием синтаксиса, очевидно, что метод join в качестве аргументов принимает иттерируемый объект. Чтобы понять, что он принимает, достаточно просто посмотреть что сука находится в скобочках, мне кажется, это даже дети в 5 класса умеют делать, когда их обучают всяким паскалям. То что вы не знаете синтаксис и пишете в си-стайл - это чисто ваша проблема.
>>1516972Обоссан? Ты блядь серьезно? Приводишь скрин с сишным однострочником и думаешь что это является хоть каким-то аргументом? Тв либо сосем конченый, либо айсикью у тебя как у хлебушка. Впрочем из-за си-уебков типа тебя люди и пишут вложенные циклы, а вместо итераторов используют for i in range(len(itter_object)). Ты просто не способен понять, что в разных языках разные подходы к понятию читабельности. Если в си принято писать 10 строчек для простенькой операции, то использование сокращение до одностроника уже выбивается из общей картины, но хули ты лезешь то в питон со своим сишным уставом?
>>1516972Лол, как же ньюфаги бугуртят от олдфажного сокрещенного синтаксиса. На моей текущей работе тоже любят сокращенные схемы как в старые времена и проблем это не приносит. Пишем на джаве. То чувство, когда в 2000-х джава была языком для даунов, а сейчас джависты - последние из вымирающей элиты.
>>1518484Чел в питон треде пытается доказать,что однострочники - зло, и приводит огрызок переписки без контекста, но в нем явно сишный код. Мне кажется тут все вопросы должны отпасть сами собой.
>>1518482Но при этом си работает на голых железках, и пидон без огромного рантайма и кучи еблиотек не взлетит. А если уж хочется писать софт для бизнеса, то для этого есть другие языки: go, swift, kotlin. Пидон это параша для школьников-МЛщиков, чьи модели потом переписывают на C++
>>1517560В pyqt делается через валидаторы на текстедит, но есть какое-то специальное роле для интов со стрелочками, не помню как оно называется, по идее эти стрелочки можно убрать, не уверен, что в ткинтере это можно сделать правда.
>>1518487Бля, просто иди нахуй, ты обосрался, но даже это не хочешь признавать. Скажи фейсбуку с их инстаграмом, что питона - параша для школьников.
>>1518494Ебал твой пейсбук. Я в айти себе копеечку зарабатываю, чтобы жить более интересно благодаря более-менее интересной работе, а не собираюсь снискать славу среди цифрового плебса разработкой очередного хипсторского говна.
Анусы, есть ли у вас на примете какой-нибудь сервис, позволяющий сделать маленькую бд, которая будет доступна из любой жопы мира по какому-то лог-пассу или токену?
>>1518469>Тебе не кажется, что читаемость - вещь субъективнаяСогласен. Посыл был в том, что качество кода не зависит от количества строк кода, ибо с уменьшением количества строчек кода порой ухудшается читаемость. Это не всегда так, например, map() и filter() очевидно лучше чем for(int i = 0; ... , но баланс между читаемостью и компактностью кода нужно соблюдать.>Как по мне пример, на который ты сослался, очень даже читабельный.ИМХО, он менее читабельный по сравнению с аналогичным многострочником. Не по методам, которые там используются, а просто потому, что такое выражение тяжелее на ходу декомпозировать на более простые шаги.
аноны, уже три месяца изучаю питон, из которых полтора это джанга. соответсвенно опыта коммерческого и реального никакого нет. вкатиться в местные галеры не получается и вот вопрос: стоит ли идти на фриланс чтобы на всякой мелкой хуйне набить тот самый заветный опыт или все же это хуевая затея и лучше дальше сидеть в поисках ?
>>15186601. Может надо было вообще сразу за джангу взяться без этого питона ненужного?2. Изучать неасинхронный веб-фреймворк в 2019
>>1518475>>1518476>>1518466Из-за подобных вам долбоебов Гвидо чуть не выпилил всю функциональщину из языка (https://www.artima.com/weblogs/viewpost.jsp?thread=98196). Однострочник с join'ом выше просто отвратителен: одна вложенность скобок чего стоит. Уебан ещё специально дал всем переменным однобуквенные названия, чтобы длина строки не превысила ограничение, если разбить эту конструкцию на две строки, то она будет выглядеть максимально убого.Видимо подход языка Go - дать прогеру как можно меньше синтаксического сахара, в нынешнее время самый адекватный, потому что иначе рискуешь нарваться на людей, которые предпочитают количсество строк читабельности.
>>1515962>изи задачиПроблема в том, что книги пишут уебаны.Знания конечно с их помощью приобретаешь, но из-за подачи материала происходит это в разы медленнее, если вообще происходит.
Насколько нужно это знать на уровне джуна? А то чет с этой темой и блокировками туплю и ничего не понимаю, хотя мб нужно больше источников почитать
>>1518817И к чему ты дал ссылку, там речь идёт в основном про reduce, который вообще ни один адекватный человек не стал бы использовать. Я двумя руками против анонимных функций и также считаю, что они ухудшают читабельность. Но как бы статья не парирует абсолютно ничего из того, что пытаешься мне предьявить.‘’.join(....[...])Эту будет 3 строчки, но они лучше читаются, yapf как правило это и делает с длинными однострочниками.
Помогите кто-нибудь, плиз, я сделал всё, как здесь указаноhttps://packaging.python.org/tutorials/packaging-projects/создал такую файловую структуру packaging_tutorial/ example_pkg/ __init__.py setup.py test1.py test2.py LICENSE README.md в файлах test1.py и test2.py сделал по одной простой функции типа такой:def print_two(): print('2')заимпортировал эти функции в __init__.py,ну и дальше загрузил этот package python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/, всё по инструкциисоздал виртуальную среду и туда через pip установил этот пакет , он отобразился среди установленных, но проблема в том, что я не могу теперь его импортировать в самом коде еще я не понимаю эту цитату из документации:"Note that the import package is example_pkg regardless of what name you gave your distribution package in setup.py (in this case, example-pkg-YOUR-USERNAME-HERE)."почему так ?и смысол тогда было прописывать своё название в setup.pyи еще, я же верно понимаю, что если я в своём package использую какие-то другие package, то они автоматически заархивируются в эти .tar.gz и их функционал можно будет использовать, даже если они сами не установлены на целевом питоне, на котором всё запускается?сори за простыню, но всё это действительно необходимо понимать
>>1518817append(a[:i], a[i+1:]...)вот так в офф доке рекомендуют удалять элементa = append(a[:i], append(make([]T, j), a[i:]...)...)а вот так расширяется слайс. Заебись читабельно, правда?
>>1518742Ну для того что бы "предсказывать" следующую команду юзера, к примеру.Но до этого в любом случае тебе надо будет взять датасет, его проанализировать и на основе этого уже предлагать.Есть даже редактор кода, с подобной логикой, сам Гвидо рекламировал, название только забыл.Если для тебя это перебор, то хватит и того что ты уже сделал, как по мне.
>>1518854Итого мы получаем 3 строчки вместо 4 в исходном варианте, но при этом в твой "однострочник" гораздо сложнее внести изменения и также мы теряем в читаемости.Типичный код долбоеба любителя экономить строчки
>>1518784Код?Ну, например, набираем "__builtins__", ставим точку, набираем "c" и жмём ctrl-space, тем самым вызываем автодополнение. При этом вызывается eval, который возвращает объект __builtins__, потом вызывается dir(__builtins__) и фильтруется используя начало названия поля "c". Так как в dir(__builtins__) всего два поля, начинающиеся таким образом, возвращаются только clear и copy.>>1518864>Ну для того что бы "предсказывать" следующую команду юзера, к примеру.Ну а если я только что написалdef myfunc(): return '2ch'то "myfunc().__f" по идее должно автодополняться __format__, а если сразу же после этого я сделаюdef myfunc(): return '2ch'то та же самая строка должна дополниться уже четырьмя вариантами.А где взять такой датасет, который содержал бы все эти варианты, если определения функций только что написаны и они до этого ни разу никак не вызывались?Единственной возможностью дать соответствующие варианты не вызывая функцию мне тут видится анализ её исходного текста. Но это как-то совсем уж нетривиально.
>>1518886Все, иди нахуй. Ты просто добоеб, которому видимо в целом сложно читать, писать и связывать слова. Несешь какую-то просто несусветную ахинею, от которой у меня только испанский стыд.
Анон нид хелп. Есть потный кейс и жесткий дедлайн. Есть компьютер, на котором будет запущен скрипт на питоне (только стандартная библиотека) с пользователя не имеющего прав администратора, но имеющего доступ как минимум на чтение к корпоративным сетевым дискам. Нужно с помощью этого скрипта собрать определенный минимум информации о владельце и передать её средствами Интернет. С помощью модуля os, я думаю, что могу собрать достаточно, но я пока не отстреливаю как передать эту информацию себе без всяких писечек типа requestsАлсо, инфраструктура, в которой будет запущен скрипт будет хорошо защищена, поэтому, скажем, со стандартного outlook письмо на внешний для компании адрес скорее всего отправить не получится, но скрипту, при этом, гарантированно дадут запуститься.Скрывать работу скрипта нет необходимости, т.к. закон в данном случае нарушаю не я, но информация должна быть передана.Сердечно прошу советов
>>1519008Если админ в твоей конторе не лыком шит, то хуй что у тебя выйдет. Нормальный фаерволл блокирует вход-выход любой неизвестной хуйни
>>1519008> без всяких писечек типа requestsСокеты.> закон в данном случае нарушаю не яСобрался воевать каким-то скриптом против целой компании? Ну-ну. Ваши юристы улыбаются и машут тебе.
>>1519011не я пролил первую кровьони пытаются получить доступ туда, куда им нельзя, так что это скорее к нашим юристам, но пока не ясно куда воевать
>>1519009Если я гипотетически захожу на сайт какого-нибудь маил.ру пост-реквестом и таким же макаром отправляю письмо, такое сможет распознать и заблочить?
>>1519012> не я пролил первую кровьЭто не значит, что тебе тоже можно. По итогу накажут обе стороны, но компания утрётся, а тебе будет пиздец. Так что трижды подумай.
>>1518918> А где взять такой датасетПарсинг гитхабовских свежих реп с пистоном, например.> они до этого ни разу никак не вызывалисьДля этого тебе изначально надо собрать данные по всем возможным вариантам(из доков питона или так же как ты делаешь сейчас - из локального интерпретатора), затем на него наложить данные с гита(по частоте юзания) и только после этого применять на практике.Это твой пет прожект? Как-то планируешь развивать это в конечный попенсорс продукт?
>>1519023Мне случалось запускать веб-парсеры на разных рабочих местах с неплохой защитой, не все так однозначно
>>1519008Ох, стандартными либами много не навоюешь.Собрать данные соберёшь, но вывести не сможешь.Всё настолько огорожено что даже меил отправить не сможешь?
Можете, пожалуйста оценить адекватность решения?Требуется разбить регуляркой строчку вида:'metadata=1.2 name=ston\\=e:su pershare UUID=eff4e7bc:47aea5cf:0f0560f0:2de38475'на словарьв value могут быть экранированные 2мя слешами знаки равно \\=и value может быть составлено из 2х словя ничего лучше не придумал, чем отдельно регуляркой взять ключи и отдельно взять значения это вообще норм подход?Я просто делаю сейчас по принципу "лишь бы работало", а как делать правильно я понятия не имеюна всякий случай код и регуляркаhttps://regex101.com/r/uB4sI9/159https://pastebin.com/cCkgRRXP
Попытка скомпилировать питоновский код в исполняемый файл и библиотеки - пздц, нахуй. Столько подводных камней я давно не видел.
>>1519042Судя по твоим вопросам/ответами ты не очень компетентен в оценке уровня защиты чего бы то ни было. Так что не нарывайся почём зря.
Посоветуйте материал или книжку по стандартным и самым популярным библиотекам python. Желательно на русском.
Аноны, каким образом это сравнивается объясните, пожалуйста. Как они True или Int сравнивают с None? При том что по отдельности ни True, ни Int не сравниваются с None.
>>1519137Приоритет операций:first_time or value > Noneравносильноfirst_time or (value > None)or не вычисляет выражение справа от себя, если левая часть TrueВообще да, хуевый какой-то код.
>>1519137у вас информатику в школе проходят? у тебя никогда не будет сравнения с None потому что при первом проходе first_time будет True, а при последующих largest будет int которое будет присвоено в самом первом проходе и т.д , после чего first_time станет False.
>>1519141пересмотри код ещё раз прежде чем кукарекать. где изменяется переменная largest которая с none, перед первым выполнением сравнения? Первое сравнение True или Какой-то интеджер.
>>1519140я всё равно ничего не понял. попробуйте в интерпретаторе это вбить оно сравнивается. но вопрос один, как?
>>1519140>>1519144спасибо, анон. я всё понял. спасибо тебе огромное, ещё раз. извини что так долго понимал.
Питонисты, читаю тред с яблочного клиента, провайдер - мегафон, айпи этой ебаной срани полностью засраны спамерами, то бишь при попытке бампануть я постоянно вижу сообщение о том, что постинг запрещён. Как мы все прекрасно знаем, публичные впны запрещены макакой, вернее с ними только ридонли можно сидеть. Поскольку ios слишком ахуенная и слишком для людей, то там хер натянешь прокси на весь трафик. IOS 12.4.1, есть джейл брейк - права супер пользователя и доступ к терминалу. Возможно могу поставить homebrew, не проверял, из коробки никаких пакетных менеджеров нет, как и на макосе вроде. Есть полноценный питон 3 с урезанным пипом и практически полноценная ide - Pythonista. Лирикам часть на этом заканчивается. Вопрос - могу ли я как-то питоном изменять свой динамический айпи, возможно путём перезагрузки сети или что-то типа того, у меня даже особо и мыслей нет, как это можно делать, не приходилось работать с сокетами и в целом с сетевым уровнем ниже прикладного. Скорее всего тут подойдёт решение, которое применимо к Linux или другим Unix-like системам. Буду рад ответам. Заранее спасибо. Твика для моих задач не нашёл. Простое выключение-включение интернета не помогает, но зато переход в авиарежим с последующим ожиданием ~10 секунд меняет ip.
>>1519179тебе что делать нехуй? зачем вообще сидеть в интернете с мобильного это же боль и неудобства. маленькое сенсорное дерьмо на котором ничего не видно, многие сайты неадаптированы да ещё и нормально ничего не напечатать.
Ку, питоначКак этот ваш пайтон подходит для сетевого программирования вперемешку с задачами для решения инфосек залуп (network hardening) ну и написания утилит для сетевой безопасности?
Помогите я тупой, первый пик моя модель в которой раньше было: from django.contrib.auth.models import User и модель Poll ссылалсь на User, все работало, но это было сделано локально, теперь надо загрузить на проект, сказали что эта модель должна ссылаться на Employee что на скрине видно и теперь функция user_can_vote которая раньше принимала юзера и request.user работала отлично, теперь надо заменить так чтобы она брала email от employee и делала проверку по нем, скинули код с пика 3, сказали там все что нужно чтоб я понял как сделать, а я пиздец туплю.
анчоусы, я конечно извиняюсь за такой идиотский вопрос. но я блять уже изучаю погромирование пол гда. и до сих пор не знаю как написать программу которая будет просто открыть одно окно и выводить хеллоуворлд. расскажи, как программе из питона пидать наконец графическую оболочку. чтобы кнопочки были то сё хуё-моё.
>>1519258я на окнах сижу. спасибо большое за совет. ну так хочу на c++ вообще писать там всякие драйвера и прочее. но т.к. ньюфаня ёбаная и порог входа на ++ высокий изучаю питон после него на ++ пойду.
>>1519260Ты в обратном порядке делаешь. Нужно начать с плюсов и охуеть от безблагодатности, а потом перекатиться на питон и наслаждаться горами синтаксического сахара.
>>1519277Загуглил за тебя, не благодариhttps://www.quora.com/Can-Python-be-used-in-device-driver-development
>>1512752 (OP) Двач, решил поставить ide для Python. Выбор пал на komodo 11, т.к. ток вкатываюсь и pycharm и eclipse пока не нужны. Ставлю на свою ubuntu. Зашёл в гайд по установке, а там пикрил. Нужно ли это делать? Что такое activepython и для чего он? >>1512752 (OP)
>>1519441Нахуй ты ебешь себе мозги неюзабельным говном? Если хочешь упороться, ну максимум паука себе поставь, а вообще вскод\саблайм тоже покатят, хоть и последний не ide
>>1519441Активпайтон это просто готовый набор для работы. Там стандартный набор либ плюс куча дополнительных типа джанги, реквестс и т.д на все случаи жизни.Можно обойтись обычным питоном и батарейки самому ставить.
>>1519040>> они до этого ни разу никак не вызывались>Для этого тебе изначально надо собрать данные по всем возможным вариантам(из доков питона или так же как ты делаешь сейчас - из локального интерпретатора), затем на него наложить данные с гита(по частоте юзания) и только после этого применять на практике.То есть всё равно без синтаксического анализа кода не обойтись. Но возникает следующая проблема: версии библиотек. Если анализировать на гитхабе всё подряд, там могут попасться исходники и для второго питона, и для неактуальных версий библиотек. В итоге собранные данные окажутся ошибочными и такое автодополнение будет вести пользователя по ложному пути.>Это твой пет прожект?Типа того. Изначально мне просто надоело постоянно набирать dir(...) в голой консоли.>Как-то планируешь развивать это в конечный попенсорс продукт?Да я не знаю, нужны ли людям такие велосипеды.
>>1519698> такое автодополнение будет вести пользователя по ложному пути.Верно мыслишь, видимо вначале надо будет спарсить для каждой версии пистона данные и в зависимости от версии юзера выдавать посказки.А вот с либами уже интересней, надо думоть.> Да я не знаю, нужны ли людям такие велосипеды.Почему бы и нет? Ссылочка на гит есть? Или фейкопочта.
аноны, посмотрите, пожалуйста, я правильно решил это? там была готовая программа которая рисовала фрактал второго порядка(пик 3 и 4). нужно было сделать так чтобы она рисовала снежинку коха. ломал голову и решил просто выполнение функции поместить в for с тройным поворотом угла. снежинка у меня получилась, но что-то мне подсказывает что нужно было сделать это в рамках рекурсии. аноны, я правильно усовершенствовал программу или нет?
Как в юпитер ноутбуке запретить вывод типа/home/username/lib/python3.6/site-packages/ipykernel_launcher.py:34: RuntimeWarning: divide by zero encountered in logЭто не ошибка, а какбы предупреждение. Просто чтобы оно не отображалось. Из-за паранойи не хочу юзернейм палить.
>>1519866>how to disable python warningshttps://stackoverflow.com/questions/14463277/how-to-disable-python-warnings
Знаю что это оффтоп, но есть форма в которой нельзя изменять данные и копировать их тоже, так вот как сделать так чтобы я мог копировать, но сохранить то что изменять ее нельзя.
>>1519850Правильно ты сделал, единственное, надо было самому писать прогу для кривой коха, а не пиздить где-то. В мфтишном курсе 8 практика на рекурсию, там целая куча заданий на фракталы и есть гифки, по которым легко понять, как примерно двигается черепашка, прорешай эту практику смотря только на их страничку и страницы этих кривых в википедии
>>1519698У второго питона есть специфические черты в синтаксисе, по которым его модно отличить. Мне кажется лучше парусить исходники с pypi, там указывается с какими версиями совместима либа. Да и вообще, я бы на твоём месте дропал бы второго пистона, это доисторическое говно динозавров нахрен никому не упало, только дополнительные ресы на него потратишь, а актуальность будет мизерной.
Возможно вопрос не по теме, хотя pyqt скорее всего и gtk умеет работать с svg. Возможно ли в векторной графике сделать что-то типа tabwidget или combobox, не рисую это вручную и не определяя зоны клика?
Предположим, есть django-приложение над которым работает множество разработчиков. И всего одна база с тестовыми данными в локалке, которую используют все.Вот работаю я в своей ветке. Создаю файл с миграциями, применяю миграции. В это время в кто-то тоже в своей ветке создал файл миграций с таким же номером как и мой и применил их. Не будет ли конфликтов в самой базе?С кодом то всё точно будет нормально. Просто перед мерджем с мастером меняешь зависимость миграции и её номер.После мерджа в мастер всегда делаю migrate --fake, но сейчас почему-то засомневался что ничего не ломаю
Изучаю теорию уже пару месяцев, многое знаю из базового. Но как только сажусь писать код, незнаю что и как делать. Буквально вчера казалось что сделал шаг вперед в обучении, а сейчас словил демотиватор конкретный. Как бороться с депрессией от собственной тупости и желанием все бросить?Мне кажется я не могу спроектировать программу, представить ее архитектуру. Из за этого даже не начинаю писать код.
>>1519960Я мог забрасывать программирование "для себя" на срок от месяца-два до пол года+. И ничего, возвращался со свежей головой и идеями.
>>1519478Ты просто тупой.Ну конечно не все работает в текстовом-то редакторе. Сделать ИДЕ можно, но с ограничениями и еблей.
>>1519907Спасибо большое, анон. Понял. Последую твоему совету.Ну я её заимствовал т.к. условие в задании позволяло. Ну так я знаю алгоритм по которому фракталы делаются, поэтому я бы её скорее всего написал бы
>>1519967Мне на галеру нужно пахать, в ближайшие полгода устроиться было бы неплохо.Не понимаю почему мозг не запоминает примеры кода. Должен ведь анализировать и предлагать мне варианты применения, сука, горит ппц.
>>1519978Просто почаще сталкивайся с реальными задачами. Я, к примеру, в голове держу только полезные мне модули, которые недавно использовал.Все остальные полезные куски кода и примеры применения лежат на приватном битбакете, куда скидываю абсолютно все, что работало.
>>1519985Да в том то и дело, что в реальных задачах ступор. Ну по книжечке возможно я могу найти подходящее решение, даже немного подправить под себя. Оно так и должно быть? Без книг вообще ступор, на уровне абсолютного примитива только пишу.
>>1519987Важен результат, всем похуй на то, как ты пишешь, особенно, если этот код после тебя никто больше трогать не будет. Придрочишься, не переживай.
>>1519956Ясен хуй будет проблема с миграциями.Либо перед каждым тестом делай и накатывай дамп бд либо же напиши скрипт, который будет поднимать тебе бд локально и заполнять ее данными.
Есть у кого код для бота вк самого простого? Ну, пишешь сообществу пинг, тебе в ответ понг, как пример.
>>1519884То что изменить нельзя, но, в принципе, можно сделать так что после копирования не сохраняется
>>1520053Будь добр, ответь на волнующий вопрос. Я эту хуету смогу для теста запустить на домашнем компе, чтобы она отвечала написавшему?
>>1520066Понял, спасибо. Если лонгпол то пропердится сам, если не лонгполл то нужно помочь пропердеться.
>>1520118https://realpython.com/python-async-features/https://realpython.com/async-io-python/Ещ] аноны видое с ютуба советовали, но линк проебан
Смотрю уроки на ютубе, у чела работает, а у меня нет (ошибка синтаксиса). Че не так то, я в точности пишу как он https://pastebin.com/z6M92ZHu
>>1520136так у тебя запятой нет. people = {'girl1' : 'Анна', 'girl2' : 'Наташа'}вот это попробуй, после анны запятая должная быть
>>1520146ну ты написал что у тебя ошибка синтаксиса, я тебе сказал чтот запятой нет. у тебя там просто кусок кода без назначенных перменных у тебя и people будет ненайден. хули ты хочешь, кинул блядь кусок кода. пошёл нахуй отсюда
>>1520124>>1520127Спасибо, ананасы. Еще вопрос по асинкам:https://aiohttp.readthedocs.io/en/stable/Вот здесь в документации пример лупа такой, я по-моему на дваче читал что в последних версиях питона это неправильно?
>>1520150он тебе щас выдвинет сообщение о том что переменная не найдена. этот еблан написал что у него синтасическая ошибка и нужно фиксить, ему сказали как. он пофиксил и теперь этот дебил предъявляет хули в его вырванном куске кода перменные не находятся. не отвечайте этому клоуну. пиздец просто откуда такие маньки лезут, очередной вайтишник в треде
>>1520147Только что понял и хотел написать, что girl1 я не занес в апострофы, но спасибо за ответ. У меня башка уже дымит просто, я с 10 утра сижу дрочусь, надо передохнуть
>>1520151Нет, это к версиям питона отношения не имеет.Я про конструкцию ИФ и т.д.А насч]т создания лупа и т.д. то почти да, просто начиная с 3,7 можно писать асинкио.ран(мэин()), но можно и как на пике делать. Особенно это полезно если хочешь новый ивентлуп создать и т.п.
>>1519960Смотри как подобные задачи решают другие. Конечно, лучше всего будет, если ты сначала сам попытаешься решить задачу хоть как-нибудь и только потом посмотришь чужие решения. В этом нет ничего плохого, 90% программирования заключается в поиске готовых решений и адаптировании их для своей задачи
>>1519772>Почему бы и нет? Ссылочка на гит есть?Пока нет. Если хочешь могу тебе отписаться, если выложу.Но у меня реализован только самый примитив, eval и dir, и всё, и вряд ли будет что-то большее.>>1519924Да я на него и не ориентируюсь.
Почему лутц такая унылая параша с кучей воды?В некоторых главах глаза кровоточат от обилия непонятной хуиты. Есть тут осилившие этот талмуд? Помогло в итоге?
>>1520587Тупо взял и начал писать на питоне, не знаю зачем вам талмуды эти. Язык простой как хуй знает что.
>>1520591Если есть опыт погромирования то понятно все с тобой. А еслм нафаня совсем? Даже без математической базы.Язык то простой, а вот как это говно комбинировать хз.
Тупейший вопрос от нафани:Вот у функции есть аргументы def func1 (a, b)Как в a и b передать результат выполнения другой функции, например input()?
>>1520624Почему шутка? Во всех видеоуроках говорят как прописать аргумент при вызове функции вручную. А если мне надо не вручную?
Нагуглил вроде как ответТоесть я должен оьязательно обьявить переменные a, b в самой программе? И область видимости с моей def функцией будет одна и та же? ( a и b будут теже самые) Туповато както, без переменных нельзя сразу в скобки засунуть?
>>1520593От малого к большому, работает не только в программировании. Буквально от 10 строчных задачек до 20-50-100 строчных.Где-то тут сайт был с задачками, тупо все прорешай прочитав раздел в котором они.https://pythontutor.ru/
Задача: вывести первые n элементов,которые раскладываются (2^i)(3^j)(5^k)https://ideone.com/a8DHrbНе понимаю,что не так?
>>1520949По-моему, там всё не так.Это какая-то бессмыслица.Остатки там у тебя везде от деления на 2.В последнем else чего-то не хватает.Вложенный цикл for лишний.len(arr) <= 5000 лишнее.Да и условие while a >= 1 прямо перед if a == 1 лишнее.i += 1 не на месте. Тут я не могу доказать, ибо это работе не мешает, просто не здесь оно должно быть, и всё.Ну и, наконец, если процедура работает правильно, то добавление первого элемента arr вручную совершенно излишне.[1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32, 36, 40, 45, 48, 50, 54, 60, 64, 72, 75, 80, 81]А ты сам всего этого не видишь?
>>1520949Я бы просто в множество набил сперва n двоек, затем тройки вплость до n * 2, затем пятёрки так же. Преобразовал в список и вывел первые n чисел.
Аноны, пишу небольшой сервис, который будет конектится к рэбиту, читать сообщение и делать рассылку этого сообщения по другим сервисам(левым, не моим). Как/что лучше выбрать для моего сервиса что бы потом удобно было тестить. Замокать отправку этих сообщений и т.п., есть какие варианты?
>>1521015Насчет того,что там остаток от деления на 2,да я просто не ту версию кода скопировал. Вот что получилось после твоих советовhttps://ideone.com/2xT1Md не хочет i+=1 делать
>>1521094типо 2,4,8,16.... ну и потом что ты написалтак число может быть комбинацией из любого количества 2 3 и 5
>>1520949>>1521097Не понимаю, что ты делаешь вообще, у тебя там два в степени i, а не 2 умножить на i
Как вообще принято покрывать юнит-тестами функции?Вот, например,если у меня есть функция, которая разбивает строку по запятым на спиок слов,я точно знаю, что этих слов должно быть 3какие тесты я должен для неё прописать ? Допустим:Проверка на правильный тип данных возвращаемого значенияПроверка на правильную работу функции (забить выходной список вручную для небольшого примера) Проверка на правильное количество возвращаемых элементов в спискеЯ немного упростил свою реальную функцию, у меня еще добавятся тесты для разных специфичных случаев,но есть ли еще какие-то основные тесты, которые я упустил?
>>1521295И еще, если,допустим, делаешь собственный парсер и оформляешь его , как питоновский пакет, нужно ли там прописывать собственные исключения, например для случая, когда на вход подана строка неправильного формата?Или достаточно выбрасывать в коде уже существующий тип исключения, например ValueError, написав лишь там своё сообщение ?
Возможно ли сделать аргументом функции переменную, зависящую по дефолту от других аргументов, но чтоб можно было и своё значение вводить?Примерно что должно быть.def test(a, b, c=a+b): return abcНо мой пример не работает
>>1512752 (OP)Сколько сейчас пайтон джун (без опыта) может получать в мск? Хотя бы 50-55 реально выбить?
>>1517993>Вопрос: насколько это через жопу?Да вообщем то не через жопу, а нормальное вполне решение, подтверждающее что твой интеллект работает.В таких случаях почти всегда есть решения лучше.Но назвать это "через жопу" не получается, т.к. это очевидно разумный путь, который и должен был вначале в башне сформироваться.
>>1517008>Объясните мне, как в питоне по нормальному копировать списки?Чёрт, че развонялся? copy() и всё.сам же пишешь:>И главное, где про питон не почитаешь- ах какой элегантный язык.
>>1520628Можно все передать и через аргументы, если не позиционные, хотя мне кажется, что и через них можно, то через именные так уж точно
Щас работаю на галере, сначала посадили на проект, дали сложную задачу я ее делал неделю, недоделал мне сверху дали еще 4 задачи, я ахуеваю пилил их 2 сделал и сегодня еще кидают задачу и мне постоянно говорят чтобы я быстро все делал, я ахуеваю просто это вообще нормально?
Как разобраться в ООП, я нихуя не могу понять.Атрибуты, аргументы, методы, как иерархию выстроить в голове? Где курица а где яйцо? Как понять этот ебанутый язык, читаешь простенькую книгу там вроде все складно. Начинаешь читать лутца я глаза вытекают, хуй пойми о чем он вообще.
>>1524287Да ООП это просто же. Между курицей и яйцом нет иерархии. Курица это домашняя птица. Домашняя птица это птица. У курицы есть глаза, перья и клюв. И у любой птицы есть. Но у всех разные.А куриное яйцо - это не отдельный вид птиц, это состояние курицы. При этом любая птица может быть яйцом, даже пингвин. И крокодил может быть яйцом, но он не птица.Нужен ли твоей программе отдельный класс для яиц? Весьма вероятно, что нет. Но это не точно.Кроме того, в Питоне возможно множественное наследование. То есть иерархия это как бы не совсем иерархия. Пример: https://lazka.github.io/pgi-docs/GtkSource-3.0/classes/View.htmlА если тебе какая-то книга непонятна, то тут одно из двух, либо книга фуфло, либо тебе ещё пока рано её читать. Почитай ещё книжек с картинками.
>>1525563Это я в депре написал от непонимания, иногда вроде все понял, а потом читаешь другое обьяснение и путаешься.Я нашел курс на степике продвинутый, там толстяк годно обьясняет про связи между обьектами. Прям фундаментально поясняет за все вплоть до класса objectВводит понятие стек вызова и namespace. Вот только после этого видео вроде все сложилось в голове.
Мне кажется первым делом надо пояснять за имена и ссылки на обьекты. Книжки для новичков так глубоко не копают и остается чувство недосказанности. Курсы от всяких хауди хо и прочих недопрогеров лучше сразу забыть, хорошие курсы Хирьянова на ютубе и на степике.
>>1525634>Мне кажется первым делом надо пояснять за имена и ссылки на обьекты.Ну, дружище... За это тебе должны были в школе пояснять. Только не говори мне, что у вас в школе не было информатики.Я тебе даже так скажу, третьеклассники уже программировать учатся. Доказать?http://nio.robostem.ru/wp-content/uploads/2014/09/STEM_Koposov_maket.pdfКстати, рекомендую почитать. КАЖДОМУ.
>>1525736Зайди на Stepik, там курс python, 1 видео.Там 2 курса, один совсем основы, а второй тот что нужен тебе. Называется "Программирование на Python">>1525763Про другое, к ООП плавно подводят через понятие неймспейсов и стека. Складывается полная картина. Я сам до конца не запомнил, буду пересматривать. Но мне понравилось.>>1525768У меня не было информатики, я школу давно закончил. Ты я так понимаю третеклассник и пришел похвастаться?
>>1525768Я вообще имел ввиду несколько другоеА именно концепцию, что в Python все является обьектом. А переменные лишь ссылки на них. На сколько я знаю в других языках это не совсем так.
Здравствуйте, недавно начал обучать python и хочу написать простую программу, суть программы в том, что пользователь вводит "?" и ему выводится одно сообщение, вводит "Hello" и ему выводится другое сообщение
>>1525939>Про другое, к ООП плавно подводят через понятие неймспейсов и стека.Ну хрен знает. Мне сложно представить, в чём здесь взаимосвязь.>У меня не было информатики, я школу давно закончил. Ты я так понимаю третеклассник и пришел похвастаться?Понимает он... И когда же (и где) ты закончил школу, где не было информатики?