https://github.com/TheKnightsWhoSayNi/info/wiki/HatПрошлый: >>861328 (OP)
питухон еще жив?
>>867617http://pypl.github.io/PYPL.html
>>867624это же запросы гугля? писят хипстеров со смузи могут загнать питухон в топ.
Перепостил вопрос из прошлого тхреадаАнанасы, кто-нибудь пилил работу с nmea координатами? Спарсиваю поток координат от маяка через pynmea2, расстояние N между определенными координатами вызывает условную функцию def f(). Но иногда вылетает какая-то левая координата с погрешностью >N и это вызывает ложное срабатывание def f().Может кто уже изобрел велосипед от таких погрешностей или знает толковую питонячью либу - буду премного благодарен
Как читать книги?Чтение книг, журналов, брошюр, статей на сайтах — прекрасный способ усвоения информации, но только если читать правильно. Что должно остаться после того, как перевернулась последняя страница? Определённо, новые знания. Но кроме того — ясное понимание «что и зачем», связи между отдельными фактами и целостная картина изученного материала. Как получить такой результат, рассказывает брошюра «Как читать книги?» Сергея Поварнина, русского логика и философа первой половины ХХ века. Может ли чтение быть опасным?Чтение всегда воспринимается как путь к знаниям. И это ошибочно. Существуют откровенно плохие книги, которые коверкают и опошляют душу. Их следует избегать, закрывать на первой странице, вычислять на полках и не прикасаться даже к обложкам. С таким книжным мусором можно относительно легко бороться, тщательно отбирая литературу к прочтению и используя списки лучших книг и рекомендации. Но есть куда более страшный враг познания — поверхностное чтение. Поварнин называет людей с таким недугом «фразёрами» и «людьми с кашей в голове». > Есть очень много людей, которые читают только для того, чтобы не думать. > — Георг Кристоф Лихтенберг, немецкий учёный и публицистВспомните какого–нибудь знакомого, сыплющего цитаты на все случаи жизни и своими действиями противоречащего им, или человека–кроссворда, что знает миллион фактов на свете и при этом не понимает ни единой связи между ними. Вот это именно они — люди, знающие многое и не понимающие ничего. Появление таких типов — результат неумения читать правильно, а также отсутствия связи теории и практики. Непонятое и не закреплённое действием, знание так и остаётся в качестве сухих заученных фраз. > Отрядом книг уставил полку, > Читал, читал, а всё без толку… > — Александр Пушкин, русский поэт А чего вы хотите от книги?Книгу можно читать, чтобы, к примеру, изучить новый раздел науки или найти ответ на вопрос. От этой цели, с которой мы обращаемся к книге, зависит и способ чтения. Чтобы разыскать информацию по вопросу, необязательно читать всё от начала до конца, а понять материал тяжело, если читать по диагонали. Поэтому, приступая к книге, необходимо сразу определить цель чтения и выбрать подходящий способ. Поварнин различает 4 таких варианта: Беглый просмотр — прочитать содержание, полистать книгу, обратить внимание на заголовки и некоторые выделенные отрывки. Неполное чтение — просмотреть содержание, найти интересующий раздел, внимательно его изучить. Полное чтение — прочитать книгу последовательно от начала и до конца без пропусков. С проработкой содержания — тщательно изучить книгу, «проработать», понять материал и сделать его «своим».Третий вариант — это самый частый вариант чтения. Мы открываем книгу и начинаем читать со слов «Посвящается моим детям», пока не наткнёмся на лист с типографской информацией. Это прекрасный вариант для чтения художественной литературы. Страница переворачивается за страницей, открываются характеры героев, стремительно развивается сюжет, и мы проживаем его вместе, впитываем в себя характеры и поражаемся удивительно яркой и точной мысли автора.Но этот вариант совершенно не подходит для чтения научной литературы. Такой способ не позволяет увидеть общую картину, он последовательно открывает нам всё более сложные разделы, но при этом не даёт никакой связи между знаниями. Поэтому для изучения сложного материала Поварнин предлагает другой способ, помогающий и понять, и навсегда запомнить.Способ чтения и цель можно связать так: беглый просмотр — ознакомление с книгой, стоит ли её читать; неполное чтение — поиск ответов на вопросы; полное чтение — для художественной и вдохновляющей литературы; с проработкой содержания — для изучения книг для самообразования, по работе и учёбе. Здесь важно понять и запомнить новый материал.Постоянно держать цель в голове и помнить о выбранном способе — вот путь избежать траты времени на изучение ненужной информации или, наоборот, на слишком поверхностное неэффективное чтение. > Самообразование требует самодеятельности. Но самодеятельность эта должна выражаться не в самонабивании головы плохо понятыми сведениями, а в усвоении их и в саморазвитии.Самый малораспространенный способ чтения — с проработкой содержания, а ведь именно он позволяет максимально качественно изучить материал. Особенно это важно при чтении книг для самообразования.
Как «прорабатывать» книгу?Факт, который нужно принять перед изучением научной литературы — её нельзя читать «в лоб», последовательно от корки до корки.Шаг, который отделяет чтение «фразёра» от настоящего понимания прочитанного — осознание связей между фактами и ясное видение общей картины. Важно четко понимать, как связано только что прочитанное с уже известным материалом, а также представлять его место в книге в целом.Основное правило понимания формулируется так: «От общего к частному. От частного к общему».Сначала необходимо «охватить книгу», поймать её главный смысл и определить составляющие части. Затем углубляться в каждую часть отдельно, последовательно дробя книгу на более мелкие отрывки — продвигаться от общего к частному. Это поможет видеть структуру нового материала и понимать, что откуда следует. При этом одновременно надо осознавать положение отдельного отрывка в масштабе всей книги. Это позволяет точно определять связи, находить соответствия и понимать «а зачем это вообще придумали?» — двигаться от частного к общему. Но и это ещё не всё. Нужно находить точки соприкосновения прочитанного материала с уже известным, обдумывать и смаковать каждую мысль, осматривать её со всех сторон и проверять на прочность. Чем больше работы над текстом, тем прочнее знания. > То, что мы вычитали в книге, должно как–то связаться с имевшимися уже у нас мыслями, сведениями, эмоциями и т.п., войти в систему их, или изменить их. В этом и состоит его работа; это и есть «отработка» содержания книги. И чем глубже устанавливается связь между прочитанным и имевшимся раньше у нас, чем больше и глубже дополнения и изменения, вносимые прочитанным, тем лучше и глубже обработка. Так как читать?Чтобы проработать книгу, стоит изучать её в таком порядке: Предисловие. Здесь обычно «автор выясняет задачи, которые ставит книге». Прочитав его, можно понять суть и смысл написания книги. Введение. В этой части автор рассказывает о том, что нужно для понимания книги, приводит уточнения, подробности изложения. Введение уточняет главную цель книги. Оглавление. «Обыкновенно с его помощью мы можем, ещё не читая книги, узнать общий план её, основные рубрики, общее содержание, основные темы, в ней затронутые». Именно оглавление помогает постепенно переходить от общего к частному и раскрывает структуру книги. Заключение. Чрезвычайно важный пункт. Здесь чаще всего подводится итог выполненной работы, снова указывается смысл и план книги, и формулируется главная мысль книги. Основная часть. Чтение книги целиком, с тщательной проработкой материала.Первые четыре пункта являются основой для изучения любой книги. В зависимости от впечатления уже можно выбрать подходящий способ чтения.Иногда приходится всю работу ограничить именно этими четырьмя шагами, так как они позволяют кратко просмотреть и составить определенное мнение о книге.Совет: после прочтения книги восстановите в памяти её содержание и смысл. Это помогает заметить недостаток понимания, почувствовать, какие места в книге пропущены и недостаточно разобраны.Чтение с проработкой — трудоёмкий и непростой процесс. Редко получается его освоить с первого раза, зато даже небольшие первые шаги дают существенный скачок в понимании.Сергей Поварнин перечисляет навыки, которые придётся развить для того, чтобы читать правильно: Сосредотачиваться на том, что читаешь. Выжимать самую сущность читаемого, отбрасывая мелочи. Охватывать мысль автора вполне ясно и отчётливо: это помогает выработке ясности и отчетливости собственных мыслей. Мыслить последовательно и осторожно — целое богатство, ничем не заменимое; кто обладает им, тот обладает самой основой настоящей образованности и не может не обладать знаниями; он обладает ключом к глубокому чтению, а вместе с тем и к более глубокому пониманию жизни. Наконец, воображать ярко и отчётливо, как бы переживая то, что читаешь, — дар, о важности которого многие и не подозревают. Что же мешает нам читать максимально продуктивно?Казалось бы, раз читаешь книгу, нашёл на неё время, отказавшись от альтернатив, так читай и забирай из неё важное, медленно и обстоятельно, делай открытия автора своим достоянием. Но раз за разом книги пролетают мимо, задевая лишь поверхностно наши мысли и оставляя в памяти одно название. Причина — лень мышления. Без тщательной проработки материала, без проверки на истинность мнения автора, без обдумывания предложенных вопросов упускается возможность понять и запомнить материал. То самое пропущенное доказательство есть самое сложное место и причина непонимания. > Автор доказывает что–нибудь. Надо проанализировать его доказательство. Но для этого требуется некоторое напряжение мышления: и вот мы скользим далее, скорее, туда, где этого усилия не требуется. Читать с наименьшим усилием, с наименьшим напряжением мысли и воображения — вот нередкая склонность. И она — величайшая помеха при чтении.При проработке текста включаются так называемые мнемотехнические законы памяти. Например, закон осмысления — чем глубже осознать запоминаемую информацию, тем лучше она запомнится. Или закон контекста — при связывании информации с уже знакомыми понятиями новое усваивается лучше. Поэтому один из ключевых моментов для понимания книги — не лениться, каждый раз проверять прочитанное, ставить под сомнение мысли и утверждения автора. Не жалеть на это времени и сил, ведь чем глубже работа с текстом, тем прочнее впитываются полученные знания.
Аноны, попробовал запустить скрипт из этого поста https://tproger.ru/translations/mosaic-from-random-images/ чтоб сделать фото-мозаику. Но как только я его запускаю, у меня ноут резко начинает виснуть и даже вырубить скрипт получается с трудом.Посмотрите плиз, это я запускаю как обсосок, или скрип хуевый и должен долго обрабатывать.
Как начать учить питон, если мне лень?
>>867668Не начинай.
Подскажите луше есть ли годные онлайн-курсы по питону, пусть и платные, с нуля или не с нуля, и что б сертификатом их не подтираться.
>>867631>>867632Зачем ты принёс сюда это говно?
>>867678>курсы>что б сертификатом их не подтиратьсяraise DoesNotExist
>>867684Чтобы люди знали, как правильно работать с книжками, а не просто читали их в надежде на автоматические знания, как часто отписываются ИТТ.
>>867678курс фенобарбитала пройди
>>867678>сертификатом их не подтиратьсяЭто как? Где-то смотрят на сертификаты с онлайн-курсов?
Пишу для дипломной работы реализацию одного алгоритма с NLTK. Нужно прикрутить гуй. Есть ли смысл пилить на питоне десктопное приложение, и если да, то в какой гуи фреймворк лучше вкатиться?
>>867709А какие виджеты тебе нужны?
>>867710Чтобы отображался текст, кнопки и картинки.
>>867713Tkinter за глаза
>>867716Спасибо!
Кто вчера это писал? http://ideone.com/FVf8Vu Можешь пояснить за первый способ. У меня никак не получается заставить его работать. Пишу вот так. http://pastebin.com/qdXaAGhF Он запускается и зависает после того как выведет 50. Не понимаю что в этот момент происходит.
>>867781Что за хуйня? Даже этот вариант не хочет работать.http://pastebin.com/NjtXxYvu
>>867611 (OP)Она не на питоне кодит, а хуй сосёт.
>>867840Блять! Как теперь развидеть?
>>867846Но зачем?
>>867840Но это же одно и то же.
Хочу работать с Api питона, посоветуйте по нему книжек.
>>867863ах ты маленький пидрило! проецируешь свои любимые писюны во все стороны
>>867781>>867825Бамп
Антуаны, я тут новенький, питон только с курса на Codecademy и кат на Codewars немного подчерпнул. Вот набросал скрипт для парсинга сосача (сугубо для личных целей, не успеваю во все фаптреды заглянуть), посмотрите мой говнокод? Нужна критика.
>>867896Где код-то, конь? Сука, ты уже накосячил. __орёт__
>>867909https://github.com/TheUnravelGhoul/Py2chParser
>>867915Говно, но нормально. Как-то так выглядит 99,9 % кода, написанного на питоне. На всякий случай ещё раз прочитай PEP8 и сделай import this.Иф длиной 249 символов насмешил. Геттеры, сеттеры и кемелкейс обычно во всяких уродских биндингах с крестов только присутствуют, в питоньем коде всё это нинужно. Странные манеры андерскорить все переменные в скоупе не нужны тоже. Если уж кровь из носу нужно использовать имя с кейвордом или стандартной функцией, то по конвенции андерскор ставят после: class_
И напомню, что двойные кавычки ставят только опущенцы. Правильными кавычками являются одинарные.
>>867926Да, иф самого немного напрягает, но так как нужно искать вхождения и в заголовках (для тематики) и в оп-посте, пришлось писать. Геттеры-сеттеры - привычка с жабы, буду знать.>>867930Чому?
>>867915Про апи двача слышал?
>>867935Дыа. Для слабаков. Суть в том, что хочется чему-то попутно научиться, вот первый раз с супом поколупался.
Бороздя просторы интернета в поисках практики на моех любимом питоне наткнулся на весьма интересную статью на хабре. https://m.habrahabr.ru/company/mailru/blog/215487/Предлагаю добавить её в фак для вкатывающихся ньюфагов.
>>867931А не стоит всё в одну строку паковать.https://gist.github.com/anonymous/7ee2bfcd16b1fbf026186e77817df270Файнд олл всегда используется, чтобы взять первый элемент. Разве в супчике не было файнд некст или как-то так? Лучше уж сразу вытащить оппост и работать с ним, а не с первым постом в треде, с первым заголовком в треде, с первым рефлинком в оппосте и т. п. Сам понимаешь, ненадёжно это.
>>867781А вот этот код работает http://pastebin.com/Qn5eCRb3 Но после communicate поток закрывается и писать туда больше нельзя. А если вместо него stdout.read писать, то он зависает и вечно что-то ждёт. Что делать?
>>867678raise GoToFuckOut('ASSHOLE DETECTED')
>>867840> хуй сосет *питона сосет. Слоуфиск.
>>867866http://python.org
>>868001Бамп
>>868023Дерьмовый способ, не используй. Сделай на сокетах.
>>868035Хотел максимально просто сделать. Щас погуглю сокеты. Что нужно знать про них кроме синтаксиса питона? Ни разу ими не пользовался.
Посоветуйте гуд книгу по писону, желательно с задачами/примерами и gui/веб. Спасибо.
Мне кто-то в предыдущих тредах рекомендовал не ебать голову со всякими parler а навернуть django-modeltranslation - Добра тебе, братишка. Охуительное.
>>867915не складывай строки, не пиши условия в скобках, форматируй через format, а не через % и вообще полистай pep-8
Питоны, нужна ваша помощь.Есть прога FreePIE, в которой можно запускать скрипты питона.Есть код - http://pastebin.com/0gn01Krg26 строка, как я понимаю, по нажатию на капслок происходят некоторые действия.Как сделать, чтоб эти действия происходили только когда клавиша удерживается нажатой?в гугле выдает одну хуету
>>868111запускай цикл, который завершается только по event'у отпускания кнопки.
>>868118Я бы рад, но я в питоне вашем вообще нулевой.Я так понимаю, что эти события берутся из подключаемых библиотек, верно? Где посмотреть все эти события и что они возвращают?
>>867930Вот ты, Гвида, и попался!
>>868122Я тоже, но вроде понял. https://www.reddit.com/r/Python/comments/2zfb6g/windows_guide_to_getting_getting_keyboard_and/GetKeyState, кажется, возвращает положение кнопки. Делаешь тоже самое, что и у тебя, но проверяешь, чтобы кнопка была нажатой, при нажатии запускается цикл, в котором идут твои действия, при отпускании цикл прерывается. Я вообще ноль, но я бы сделал как-то так, если образно: while(нажата): Твои действия
>>867915Говно без задач
>>868185Спасибо. Я же говорил, что для личных целей делалось, но мне нужна была критика. На питоне первый раз пишу что-то больше 10-20 строк.
>>868183Спасибо, добра.
>>867926>Геттеры, сеттеры и кемелкейс обычно во всяких уродских биндингах>с крестовЧто ты несешь?
Посоветуйте движок под питон, чтобы можно было свою 2Д игру написать.
>>867935Алсо правильно ли юзать beatifulsoup для парсинга json? Там же всё равно xml-структура, из которой надо цеплять, допустим, текст поста.
>>868237нет конечно! import json
>>868230В питоне крайне тухло с живыми и кем-то используемыми игровыми движками. Попробуй Blender Game Engine.
>>868227Просвещение.
И снова, здравствуйте.Скопирую с прошлого треда сюда. Доброго вечера, господа. В кратце: Работаю почти год прогером. Пишу на джанге.Хочу освоить asyncio но не знаю с чего начать. Точнее так, по каким-то туториалам что-то делаю/копипастю и что-то получается, но проблема не решается - я не могу написать нормально неблокирующую херню. Например классика - парсер. 10 ссылок нужно спарсить не блокируя поток. Как это сделать, если await ждет? Нашел несколько разных вармантов один из которых: создать корутины для всех ссылок и передать их в asyncio.wait () и мол они там все запустятся и первая функция, которая завершится - отдаст ответ и тд. Правильно ли это? Блять, я аж бомблю от того что нет нормального описания того, где как и что использовать. Поясните мне, тупому, блять, как с этой хуйней совладать. Если не сложно, знающие аноны, распишите подробно. Буду рад и ссылкам и прочему, но в приоритете жду человеческого объяснения основы этой. Чтоб я точно понимал, нахуя мне этот asyncio и почему и где мне его использовать
>>868256Процитирую еще один из ответов который вызвал вопросов больше чем ответов.>>867496Поясняю - asyncio не панацея и хорошо помогает только если у тебя затык в I/O - ждем ответ от сервера, ждем данные из сокета и тому подобное. asyncio отлично подходит для веба, где большие задержки и затыки.Когда твой скрипт блокируется на уровне "парсинг страницы занимает 20 секунд", то asyncio никак не поможет - остается выделять парсер в отдельный процесс или запускать на отдельной машине.>Как это сделать, если await ждет?>создать корутины для всех ссылок и передать их в asyncio.wait ()Ты прав, только когда конкретно .wait() вернет, контролируется аргументом return_whenЕще есть asyncio.gather() и asyncio.create_task()Вот он в конйе пишет, что есть еще gather и create_task, не считая asyncio.wait.Вот как понять, где какой метод лучше использовать?
Суп, питонисты. Мне нужно сохранять на локальную машину таблицу (условно), каждая строка таблицы состоит из поля с текстом на несколько абзацев, числового флага и ещё пары текстовых полей. Потом эту таблицу нужно будет также подгружать с этой же локальной машины. Как это лучше реализовать: сериализовать в json/protobuf, или запилить базу данных (например, h2)?
>>868230>>868249Годот же.
>>868281Там не питон же.
>>868286Йеп, там Godot Script, но он, насколько помню, основан на питоне, и от него отличается очень и очень немногим.
>>868265Если сомневаешься - дампай в pickle!
Я совсем тупой мудак. Что я делаю не так? Пиздец на такой простой хуйне запороться.
>>868405Окей, с этим дерьмом я справился. >answer > 5 и т.д.Разве можно работать таким образом со строками? Я думал, что нужно преобразовать число в строку что бы не было всяких проблем, а тут выходит строка "ответ" больше 5. Как так? Я совсем запутался.
>>868411answer - это переменная, уёба, в которую ты передаёшь 4, 5, 6
>>868411answer - переменная. ты вызываешь функцию передаешь ей число в качестве аргумента - все правильно. при чем здесь строки?
>>868420Я не знал, что так можно. Откуда я вобще мог знать об этом?Я думал что answer это аргумент. У меня вобще крыша едет от этой всей залупы. Выходит еслиdef hui(pizda)print hui(4)то пизда будет равна 4 ? Я прост раньше думал, что нужно сначала создать переменную.
>>868426>то пизда будет равна 4 ?даПочитай какие-нибудь книги, где объясняют про функции. Лутца, например.
>>868290Спасибо! pickle лучше всех
>>868432Я его как раз и читаю, но до функций еще не дошел.
Блять, как же припекло. Ебучая академия, ну нахуя так мозги ебать. Все же правильно сделал, немножко по своему но результат получается тот который нужен, тот который задавали изначально. Нет блять, хуй тебе пидарас. Делай так как написано, следуй строго по инструкции. Делай как сказали, тварь. Столько времени угандошил, что бы разобраться в том, что именно они хотели от меня. Я понимаю, что они хотели научить меня ебаному срезу. НО Я ВЕДЬ И ТАК ЕГО ПРИМЕНИЛ, ТОЛЬКО ЧУТЬ ЧУТЬ ПО СВОЕМУ. извиняюсь за баттхерт, нужно было излить свое негодование по поводу данного ресурса
>>868037Читаю про общение процессов через сокеты. Там везде локалхост прописывают. Без этого можно будет сделать? У меня будет 2 клиента и 1 сервер. А клиенты в стандартный ввод и вывод пишут.
Анон, есть фотогалерея, которую я хочу скачать с помощью скрипта + BS4.Сама страница галереи в формате html, а дальше начинаются проблемы:при нажатии на изображение открывается не новая страница, а просто подгружается фото, а адрес изменяется на galery_name.html#page=2 и т.д.Пока что таким образом вытаскивал изображения из отдельных страниц, с AJAX и т.д. почти не знаком, реквестов POST там вообще нет.
>>868258> Когда твой скрипт блокируется на уровне "парсинг страницы занимает 20 секунд", то asyncio никак не поможет - остается выделять парсер в отдельный процесс или запускать на отдельной машине.это бред какой то. каким образом парсинг, не делающий блокирующих операций, может заблокировать луп!?
>>868647посмотри в сторону zeromq там есть rpc и нормальные питонячьи биндинги
>>868749тут нужен selenium
>>868647А чем localhost и сетевые сокеты плохи? Можешь использовать unix sockets, если еще не зашкварился.
>>868864>каким образом парсинг, не делающий блокирующих операций, может заблокировать луп!?В случае неблокирующего парсинга, очевидно, никак. Однако, твой вопрос подстроен под этот ответ."Каким образом сухая вода может намочить?"Ты уверен, что блокирующих вызовов в парсинге нет?
>>867930Чтобы потом экранировать одинарные кавычки?
>>868405> if 4 > 5Сделал мой день.
>>868891Подождите, это еще не все!
>>868905Готовы?
>>868906>elif 4 < 5
>>868888Пиздец просто!Да за такие вопросы у нас heredoc заставляют для все строковых литералов использовать!
>>868888Вот для таких редких случаев и нужны двойные кавычки!
Итак, я ржу с Задорнова. Похоже, мне снова 8 лет.
>>868907
>>868891это ты с компами слабо знаком и плавающей запятойуверен где-то в глубине твоей шайтан-коробки в самом её процессоре валяется инструкция на машинном коде if 1 == 1.00000000034: dowork()
>>868963Эксперт в треде, все в мантиссу!
>>868880да, какие блокирующие вызовы делает bs, lxml, regexp в конце концов?
>>868405уебывай со своей донатной парашей.
>>869299Пока выполняется код от await до await луп заблокирован.
>>868869С selenium бы и аутист справится. В статьях посаны и по POST вытаскивают все что нужно.В моем случае все оказалось проще: ссылки на исходники и thumbnails были в скрипте в <body>. Что-то слишком легко получилось.
>>868647> Без этого можно будет сделать?Разделяемая память. У нас это в вузе на первом курсе преподавали.
>>869397хаха. что это за код то такой между между? между булок твоей мамаши? наличие блокирующего кода пораждает рантаймерор вообще то:> RuntimeWarning: coroutine 'foo' was never awaited foo()
Привет, змеяч. Пишу на Питоне третий раз в жизни (в этот раз как никогда раньше понадобилась динамикодрисня), прошу помощи.Есть код: http://pastebin.ubuntu.com/23423531/Он находится в файле models/__init__.py. Я хочу его разбить на модули как-то так:models/amount.pymodels/aggregation_function.pymodels/modification_function.pymodels/requirement.pyСобственно, если так сделать и разбить всё на файлы, то из-за взаимных импортов ничего не работает. Пытался по-всякому пердолить, но понимаю, что нужно совсем другую структуру выбирать, однако, до решения сам дойти не могу пока. Вся эта параша нужна для парсинга одного большого JSON'а, в котором описаны разные объекты с помощью этих моделей.Буду рад любому совету. Понимаю, что мою парашу мало кому интересно будет разбирать, но больше мне спросить не у кого.
>>869532и в чем тебе помочь? переписать за тебя что бы не было взаимных импортов? может данунахуй!? алсо что за девиация такая пихать рабочий код в __init__.py?
>>869532ну ок, разбиваешь на модули. в инит.ри пишешь> from amount import Amount ....
>>869534Переписать и сам смогу, если объясните, че мне делать, если объекты зависят друг от друга, блджад.> алсо что за девиация такая пихать рабочий код в __init__.pyЯ начал в отдельную директорию пихать код, разбив его на несколько файлов, и в итоге соснул хуйца. Затем объединил всё в один файл, но оставил в отдельной директории, чтобы в будущем всё же сделать то, что хочу. Можно было догадаться, though.>>869535Это было сделано перед тем, как я всё объединил в один файл. Нет, не взлетит, amount.py импортит aggregation_function.py, а aggregation_function.py — amount.py. Также пробовал делать импорты в этих файлах через __init__.py, но это ещё более тупая затея, конечно же.
>>869537что бы избежать конфликтов в импортах, это конечно костыль, но для тебя не могущего нормально построить архитектуру классов, сойдет: импортируй не в начале файла а в теле функции. то есть буквально перед использованием чего то импортируй это.когда разобьешь на модули и сделаешь как я сказал: прописать импорты в инит, то ты сможешь сделать так, в стороннем коде:> from models import Amount
>>869538вот так https://github.com/thauber/django-schedule/tree/master/schedule/models
>>868405> 4 < 5Сука, как же я ору, бля
>>869538> но для тебя не могущего нормально построить архитектуру классовДля тебя, не могущего в запятые и прописные буквы, объясняю: я пишу парсер JSON, в котором что-то вроде своеобразного AST, и структура JSON мне диктует архитектуру классов.Числа в данном JSON могут быть представлены как и обычными числами, так и хитровыебанными объектами, ссыляющимися на ресурсы в другой части документа. В таких хитровыебанных объектах могут быть условия, которые, в свою очередь, могут включать хитровыебанные объекты, которые... OH SH~ Нутыпонел.Как тут можно без взаимных импортов обойтись, если они уже есть в условии задачи, я не знаю.И да, я гуглить умею и знаю про тот костыль, который ты мне посоветовал, и мне он не подходит. Но спасибо за вимание, че.
>>869541епта, ну вынеси ты ебучий общий функционал в base.py ебанаврот и импортируй его везде
>>869542и наследуйся от него
>>869542>>869543Ты мне сейчас говоришь, по сути, объединить всё в один модуль (или запихать в класс десятки лишних полей), чего я хочу избежать. Потому что это пока там всего-то нихуя кода, но нужно написать ещё много тысяч строк этого говна (на пике то, что влезло в экран а влезло туда меньше пары процентов папок, и это нужно переписать на Питон).В языке со статической типизацией я чуть пошаманил с парсером JSON, в полях классов указал лишь интерфейсы, а потом ужа туда анмаршалил объекты, реализующие данные интерфейсы. А в Питоне вот четыре часа с импортами ебусь, пиздец.
>>869544Пик отвалился.
>>869545>>869544Если что, пока обойдусь локальными импортами, но если кто-то хочет что-то посоветовать или обоссать меня, то я еще послежу за тредом. Спасибо.
>>869546ну тебе полюбому надо абстрагироваться от реализаций при таком количестве кода, иначе ждет тебя ад. хз как это сделать без базовых классов.
>>869548Я совсем не понимаю, похоже, что ты подразумеваешь под базовым классом. Это и есть четыре базовых класса документа, лол: числа, условия, агрегирующие и модифицирующие функции. Но они достаточно заёбистые для того, чтобы причинить боль и страдания. Часто классы из одной смысловой группы не имеют почти ничего общего, кроме интерфейса, если так можно в питоньем контексте выразиться, поэтому наследоваться от чего-то смысла нет.Нужно, наверное, хитрую фабрику городить.
>>869549фабрика + декораторы возможно
>>867631>Александр Пушкин, русский поэт>русский
>>869551кстати, http://galkovsky.livejournal.com/261986.html
>>869550Двигаюсь в этом направлении. Говнокод, наверное, но уже лучше, чем локальная параша.
>>869554ок, а для методов может это пригодиться https://pypi.python.org/pypi/singledispatch
>>869299> да, какие блокирующие вызовы делает bs, lxml, regexp в конце концов?re кстати сишный и годами доставляет баттхерты через GIL.
>>869554Зачем такую хуету писать.
>>869565Ты уж объясни, что не так. Я двенадцать часов на Питоне пишу. Одиннадцать из них сейчас без остановки.
>>869568Суть в том, что смотрю я на этот код и не понимаю, что он должен делать. Вообще ноль идей в этом плане.
>>869569Ну так ты же не знаешь задачу. Ясен хуй, в отрыве от данных это как хуй знает что выглядит.
В оп пасте ссылка на статью хабра, в которой советуют начать с книги "изучаем питон", а в самой пасте советуют "укус питона" с чего начинать?
>>869624Кодакадемия
>>869523>наличие блокирующего кода пораждает рантаймерор вообще то:>> RuntimeWarning: coroutine 'foo' was never awaited foo()Ты заебал. Нихуя не понимаешь, но мнение имеешь.
Вопросик по django Хотел вот форму комментов сделать к посту, но комменты создаются а к посту не привязываются, если из моделей у foreign key убрать null=True, то выдает NOT NULL constraint failed:main_articlecomment.article_id при отправке формыЯ передаю id через hidden input в форме в реквесте оно присутствует, а в sql-запросе все-равно None
>>869663Ну так у тебя форма про поле article не в курсе, ты же его не указал в списке fields
>>869665указывал, тогда условие form.isvalid() не выполняется, и происходит raise Http404
>>869665Поскольку у тебя article_id доступен во view, можешь сделать так:article_comment = form.save(commit=False)article_comment.article_id = article_idarticle_comment.save()и поле не нужно
>>869667Это потому что у поля name кто-то поставил article_id вместо article
>>869668cпасибо большое, так заработало. С джанго без бутылки не разберешься
>>869673> С джанго без бутылки не разберешьсяВ гранит!
Котятки, подскажите, плизки, как правильно сбросить внутреннее состояние экземпляра класса?Переопределить с тем же именем - правильное решение или есть более правильный способ?
>>869679> сбросить внутреннее состояние экземпляра классаСоздать новый
Вопрос скорее всего платиновый, извиняюсь. Я прошёл код академию и дочитал укус. Что теперь делать дальше? Пока что я решаю всякие задачи по основам языка типа работа с типами данных, выражения всякие ну вы поняли, совсем для новичков, но представления что от меня требуется для вкатывания в профессию Джуна питон разработчика абсолютно не имею. Я понимаю, что нужен какой то проект. Но мой максимум это калькулятор и текстовый симулятор бомжа в основе которого по большей части включён рандом и не замысловатое линейное развитие событий if, else который точно не подойдёт. Есть какие нибудь мысли?
>>869695Посмотри адаптивный тренажер Питона на Стэпике.
>>869695Алсо, ты можешь там же пройти курс по нейронкам, потом по Machine Learningу на Курсере, участвовать в соревнованиях на Kaggle и прийти к успеху.
>>869714Благодарю. >>869717Звучит дико интересно, у меня нейроные сети ассоциируются с будущем и прочими ништяками в которых я максимально далек, да и судя по всему для обучения по твоему списку требуется знание английского на хорошем уровне который у меня сильно хромает. Честно говоря, у меня в планах ближе к лету попытаться устроиться на работу. Считаешь это действительно поможет для трудоустройства?
>>869733Постоянно проигрываю с мамкиных вкатывальщиков в deep machine learning.Без серьезной математической подготовки и опыта работы с big data никому ты нахуй не будешь нужен.
Есть ли способ изменить в потомке класса то, что задано в __init__ его родителя?Например есть class Cat(): def __init__(self): self.legs = 4И допустим его потомок класс CreepyCat у которго legs должно быть 8 или 2 мутанты хуй знает.Как это сделать?
>>869747Сделать инит в потомке, очевидно же.
>>869747Переопределенный метод не вызывает по умолчанию метод родителя.Тебе надо явно вызывать super().__init__() для этого.
>>869752Спасибо.Просто если свойств дохуя. 10+ по умолчанию. А изменить надо только например 2.Как их лучше перечислять в родителе? def __init__(self, x, y, z... n)self.x = 1self.y=2.Или запихивать прям в init? не помню где то я такое видел def __ init__(self, x=1,y=2.. n)self.x=xself.y=y>>869752class CrCat(Cat):def __init__(self):super(Cat,self).__init__()self.legs=8А остальные ? Выдаст has no atribut
>>869756http://qualcode.ru/article/inheritance_python/Сам чет нашел. вроде работает
>>867611 (OP)Только начал учить питон а уже нихуя не понимаю. 1 import sys 2 Zero = [" ", 3 " ", 4 " ", 5 " ", 6 " ", 7 " ", 8 " "] 9 10 One = [" ", 11 " ", 12 " ", 13 " ", 14 " ", 15 " ", 16 " "] 17 18 Two = [" ", 19 " ", 20 " ", 21 " ", 22 " ", 23 " ", 24 " *"] 25 26 Digits = [Zero, One, Two]try: 30 digits = sys.argv[1] 31 row = 0 32 while row < 7: 33 line = "" 34 column = 0 35 while column < len(digits): 36 number = int(digits[column]) 37 digit = Digits[number] 38 line += digit[row] + " " 39 column += 1 40 print(line) 41 row += 1В качестве аргумента sys.argv[1] выступают цифры.Итого, на 36 строчкеnumber=int(digits[column])Что за блядь хуйня? Он хочет получить столбец цифры? Нихуя не понятно, но оно почему-то работает.
>>869761ideone or pastebin or 'Иди нахуй'
>>869765http://pastebin.com/xukrMEtiВот например я ввел цифру 5.number = int(digits[column])Это значит что number = int(5[0]) но питон мне в интерактивном режиме говорит иди нахуй даун, даже если я присвоил какие-нибудь значения для digits и column
>>869741Никто никуда ещё не вкатывается. Я задал вопрос, мне ответили. Если ты пизда какой умный мог бы ответить по существу. >>869695
>>869767Отмена, я понял.
Чет совсем туго.
>>869777Там в 3 строке случайно убрал перед скрином, на вывод не виляет.
>>869777Тебе надо комплементарную цепочку построить?
>>869782Можно и так сказать, грубо говоря замена символов.
С super вроде разобрался. надо читать документацию Как в питоне лучше писать переменные/классы/функции?functon_foo или functionFoo?Класс с заглавной?обычные переменные x_foo или xFoo?
>>869794ClassFoo - классыfunction_foo - функции>обычные переменные x_foothisПочитай PEP8.
>>869794https://en.wikipedia.org/wiki/Python_syntax_and_semanticsТолько всё равно не пойму почему здесь >>869777 такой результат.
>>869797Ок. Спасибо.Просто встречал несколько видов написания. И лесенку и подчеркивания. Глобальные переменные капсом.
>>869785Чем string.translate() не устраивает?http://ideone.com/f1X3tA
>>869798Попробуй по русски псведокодом описать что там делается по шагам. Для себя в комментах рядом.
>>869800Тем, что я даже и не знал о такой функции>>869801Да, придется. Спасибо.
>>869802В питоне дохуя полезных фич. Типо итертулз или уже встроенных методов. Прям просто дохуя. Heap встроенный. Ахуеть.
>>869803Да я в курсе. Всего не охватишь.
>>869799>капсомИ константы капсом, да
>>869733Ну фиг знает. Это мой план на ближайшие года два-три, с учетом учебы в вузе. Вообще тебе (и мне) нужно будет еще по хардкору заботать алгоритмы и теорвер со статистикой. Ну и начинать старт не с джуниора, а со стажера. Еще можно закатиться в магу по датасайенс, например.
>>867611 (OP)Привет ребята! Я психолог кун, вкатываюсь в жс и заодно хочу написать о связи популярных языков (петон, раби, жиес) с нетрадиционной сексуальной ориентацией.Есть готовые поделиться своим опытом разработки?
Аноны, есть адрес типа "https://2ch.hk/pr/res/867611.html".Нужно проверить, есть ли в адресе "res" после названия доски, если нет - добавить.Я представляю это так: [CODE]url = 'https://2ch.hk/pr/res/867611.html' url = url.split(r'/') if url[3] != 'res': url.inser(3, 'res') url = '/'.join(url) [/CODE]Но мне такое решение кажется всратым. Есть идеи?
>>869816Нормальное решение, вроде бы.Только я бы сначала проверял, что 'res' не входит в url, а потом уже сплитил.Вот решение с регулярками, но не такое простое как у тебя https://gist.github.com/anonymous/c5acdcebf6bea4df421d1ca93eee5fc1
Привет. Не поймите меня не правильно, я мелкий админ эникей босюь что в админстве у меня будет все оче хуево.Хочу учить ЯП, выбрал питон. С алгоритмами все хуево, пытаюсь понимать как пишутся проги, уходит много времени на 1 маленькую прогу в примерах в книжке.Каковы шансы что я вкачусь и буду получать хотябы 40-50к?Я не из тех у кого "горят глаза" на программировании, но буду как-то сквозь боль и немогу пытаться что-то делать.
>>869906100%. Сиди и ебашь потихоньку. В джагну вкатывайся или в авто тестирование.
В питоне без numpy никак с матрицами нормально работать нельзя?
>>869931Смотря что ты хочешь с ними делать. Иногда можно и вложенными последовательностями можно обойтись.
>>869937Хочу с уже готовыми решениями. Мне лень самому делать все эти велосипеды. Типа повернуть на 90 градусов, найти количество элементов больших n, просуммировать диагональ или транспонировать.
>>869938Чем тебя numpy не устраивает тогда?
Анон, смотри, мне нужно выводить в ткинтере на экран куски текста (много кусков), которые будут визуально разделены. Юзаю скроллер и текст виджет. Почему скроллер не работает? Анон, помоги пожалуйста, всё утро ебусь с этим! root = Tk()scrollbar = Scrollbar(root)scrollbar.pack(side=RIGHT, fill=Y)data = {}def load_data(): for i in range (0, len(data)): insert_text(data + '\n', i)def insert_text(post, i): t = Text(root, wrap=WORD, yscrollcommand=scrollbar.set) t.insert(END, post) t.pack(fill="both", expand=1)def on_finish(): root.mainloop()load_data()on_finish()
Господа, помогите разобраться со строками http://pastebin.com/Yq352Pqp:Как получить из последовательности вроде "\xcd\xe8\xf1\xee\xed" строку русской кодировки? Строка приходит из html, при этом латиница там читается нормально, а русские символы именно так.
Что нужно знать для современного веб-петушения в python, конкретно с django и flask?Использовал питно по большей части для мелкой автоматизации и всякой параши в онлайн-курсах, сейчас задумался о поиске работы.Посмотрел последние версии python3, какие-то асинки, futures, вообще охуеть, ничего непонятно.1. Нужно ли это всё будет для веба?2. Есть ли вменяемые ресурсы где это объясняется для людей которые могут только в последовательное исполнение одного треда?
>>870232https://www.fullstackpython.com/django.html
>>869931Никак. Наверняка миллион велосипедов на пукпук, но ты же сказал "нормально", а "нормальная" работа с матрицами в питоне - это строго нампай.
>>869942Докачивать надо, а он жирный. Мне ради одних матриц всё это качать лень.
>>867611 (OP)что учить, чтобы начать зарабатывать на фрилансе?
>>870300PETOOH.
>>870226> bytes = '\xcd\xe8\xf1\xee\xed'> bytes.encode().decode('utf-8')
>>870330Сам ты петух.
>>869551Ну, не камерунский же.
>>870374Это не оскорбление, а перспективный в настоящее время язык для всех новых проектов.
>>870285Со сцупу не путаешь? Нампай не жирный. Собственно, там внутри только одна матрица и матричные операции и есть по сути. Ну и ещё небольшая кучка легаси сбоку.
>>870333Если я пишу эту строку в самом скрипте то работает, если получаю из разметки то получаю её же. Суть в том, что кроме русских букв там все приходит в хорошем виде.
>>870420Я короче не разбирался что там у тебя, но попробуй еще на 17 строке сделать так:>return urlopen(url).read().decode('utf-8')
может кто-то объяснить, как работает оператор in в питоне.например, когда проверяется, находится ли к в списке каком-нибудь.if n in range(10): ...
>>870457>.decode('utf-8')вообщем зашёл на страницу, нашёл в мете кодировку и дописал в функцию:return urlopen(url).read().decode("windows-1251")больше никаких проблем. Спасибо за наводку, анон
>>870556The membership test operators (in and not in) are normally implemented as an iteration through a sequence. However, container objects can supply the following special method with a more efficient implementation, which also does not require the object be a sequence.
Сап, рептилии.Начал изучать сабж. Сидел изучал, игрался с консолькой, разворачивал строки, посчитал интегральчики, нарисовал график, сделал гифку. Пару раз копипастнул код для графики, в остальном - язык как язык. И тут дело доходит до основ ООП.Читаю учебник - чёт не то, не залезает тема в башню.Например смотрю на пикрил.Вижу 5 строк. 15 лексем.Среди этих 15ти лексем - 4 раза повторяется селф, 4 раза - вал, 2 раза - деф. Итого для описания этой конструкции и всего ее функционала, если верить здравому смыслу, теории формальных систем, общим представлениям о языке и тп - нужно не 15 лексем, а 8. Итак пишем:obj1 = Foo(1)Что означает вроде бы: выделим памяти немношко, под одну переменную типа инт , немножко под имя конкретного объекта. Далее:obj1.printVal() -вывод значения той самой переменной. Вопрос: это гайд, на который я ссылаюсь, хуевейший ? Или я чего то не вдупляю?Зачем для доступа к переменной городить такую прозу?почему нельзя сделать просто print(obj1.val) ?Зачем каждый раз в каждом классе писать метод __init__ ? Вот нахуя? Почему этот алокейшен не встроен в сам функционал оператора Class?Какой в этом смысл?в чем смысл self.val = val? Что тут происходит? Почему мне смысл этой строки понять сложнее, чем доказательство теоремы остроградского-гаусса или сложнее чем решение несобственных интегралов, лол? Зачем тут def printVal(self): в скобках стоит лексема селф? В чем смысл? Что это дает, если в теле метода и так указано блять: берем val свой, родной val, Валюшечка мой родной, именно тебя печатаем. Нахуя ?Вот из того же гайда:You can see that both methods take a parameter called self. It doesn't have to be called self but this is the Python convention and while you could call it this or me or something else, you will annoy other Python programmers who might look at your code in the future if you call it anything other than self. Because we can create many instances of a class, when a class method is called, it needs to know which instance it is working with, and that's what Python will pass in via the self parameter."Поскольку мы можем создать множество особей класса, то в случае вызова метода класса, метод должен знать, с какой конкретно особью он работает."annoy other programmers? что сука?Вопрос - каким СУКА образом лексема селф помогает бедному методу уточнить, куда в памяти обращаться? Зачем нужны эти ебучие четыре буквы блять? ЕСЛИ БЛЯТЬ ПРИ ВЫЗОВЕ МЕТОДА МЫ И ТАК В САМОЙ ОПЕРАЦИИ ВЫЗОВА ЯВНО УКАЗЫВАЕМ ИМЯ ОБЪЕКТА?obj1.printVal() ВОТ СУКА ТУПОЙ МЕТОД СМОТРИ ХУЛИ ТЕБЕ НЕ ЯСНОГО ПРЯМО перед ТОБОЙ СТОИТ ИМЯ ОБЪЕКТА КОНКРЕТНОГО ОТКРОЙ ГЛАЗА КРОВЬ КИШКИ ГОВНОПусть есть Класс1, и две его особи - Объект1 и Объект2.В Классе1 есть 2 метода: Класс1.метод1 и Класс1.метод2.Ситуация первая:Нужно, чтоб Класс1.метод1 работал с Объектом1.Пишем нечто вроде: Объект1.метод1().Всё понятно - метод класса "знает", с каким объектом ему работать, блять. Потому что сам метод уже связан с вызываемым Объектом1 .Зачем писать Объект1.метод1(сам) ?Ситуация вторая:Нужно, чтоб метод "работал" с Объектом2. Окей.Объект2.метод1().Что вообще значат слова it needs to know which instance it is working with ?Что за хуетень? Еще раз: при вызове метода мы не пишем Класс1.метод1(). В таком случае я бы понял уточнения. Типа Класс1.метод1(Объект1). Но это явно излишне. Поэтому Мы пишем СУКА конкретно Объект1.метод1(). А какие еще могут быть блять варианты? А? метод1() к какому еще объекту может обращаться? Объект1.метод1(Объект2) ? Если они принадлежат одному классу - то это излишне. Ведь метод1 у них общий.операнды Объект1.метод1(Объект2) и Объект2.метод1(Объект2) должны дать одинаковый результат.А если они принадлежат разным классам, тогда нахуй вызывать метод одного класса на объект другого класса?http://pythoncentral.io/introduction-to-python-classes/ - сука. Я пользуюсь интернетом уже лет 10. Прочитал за эти 10 лет не менее сотни книг. Литературы блять, толстого прочитал, учебники по матану, по сука стохастическим процессам. И это блять первая страничка текста в моей жизни, которая вызывает только такую реакцию. Либо я сегодня получил инсульт, либо автор мануала уебок-дегенерат, либо весь питон это глобальный заговор нахуй! НО нету тут варианта что в self.val = val или в МОЖЕТ БЫТЬ БЛЯТЬ КАКОЙ ТО ПРАКТИЧЕСКИЙ СМЫСЛ, или в def printVal(self) !ХОЧУ ТЕПЕРЬ ТОЛЬКО УБИВАТЬ УВИЖУ ПИДОРА ПИТОНЩИКА НОЖ ЕМУ В ЖИВОТ СРАЗУ
Я ебал, блять. Анон, дай пример, как закрутить аякс джквери и джанго. Я нихуя не понимаю, что куда передает, что за джейсон ебучий такой и т.п.Именно пример, а не ссылку на какую-то хуйню. Желательно с комментариями. Гуглил час - нихуя не понял.
https://jeffknupp.com/blog/2014/06/18/improve-your-python-python-classes-and-object-oriented-programming/Еще пример:class Customer(object):... def withdraw(self, amount): .... return self.balanceSo what's with that self parameter to all of the Customer methods? What is it?Ну давай сука поясни. Я же блять зашел к тебе на страницу, загрузил твою ебучую рекламу. when we say def withdraw(self, amount):, we're saying, "here's how you withdraw money from a Customer object (which we'll call self)That's not me making analogies, either. jeff.withdraw(100.0) is just shorthand for Customer.withdraw(jeff, 100.0), which is perfectly valid (if not often seen) code.Что блять?Хочешь сказать, автор, что лексема селф нужна только чтоб иметь 2 варианта написания?Чтоб я мог, если опустилось левое яичко, написать jeff.withdraw(100.0), а если правое - то Customer.withdraw(jeff, 100.0)?А нахуй мне всё равно твой селф сдался, если jeff не может быть особью никакого другогокласса, кроме Customer? ШТО СУКА? "Селф" нужен только чтоб парсер проигнорировал первое "место" внутри скобок перед запятой в случае короткой записи jeff.withdraw(100.0), а случае длинной записи Customer.withdraw(jeff, 100.0) - на месте селф был опциональный указатель на конкретный объект? И ради такого дерьма блять нужен такой жопорукий синтаксис? И ЭТО БЛЯТЬ БАЗОВАЯ КОНСТРУКЦИЯ СИНТАКСИСА ООП?https://www.youtube.com/watch?v=xs5Ro2FXxP4 Всё это дерьмище, намекаете вы, нужно только чтоб искусственно создать неоднозначность в коде, чтоб тупому манагеру пустить пыль в глаза?
>>870702В Джанго бай экзампл в главе о написании е-лёрнин платформы погляди
>>870701>Зачем для доступа к переменной городить такую прозу?Data hiding.>Зачем каждый раз в каждом классе писать метод __init__ ?Конструктор, ВНЕЗАНО может быть не таким тривиальным.>в чем смысл self.val = val?А как нужно? Как отличать instance members от локальных переменных?Насчет self в параметрах согласен. Какая-то питонская пушка.Попробуй руби - легко генрировать геттеры, сеттеры; explicit self не нужон, есть @.мимошел
>>870711Братья, нас тут шпион-вербовщик, нужно подкрепление
Анчоусы, как правильно деплоить приложения. У меня например есть приложение где мне нужно для нормального старта запустить редис воркер и гуникорн, как сделать чтобы одной командой запускалось два процесса и мне не приходилось держать по два ssh соединения?
Аноны, учусь django сейчас.Ебаный вопрос: как лучше делать? На протяжении одного представления несколько раз (в зависимости от методов запроса и их параметров) возвращать render с разным контекстом? Или возвращать только один раз render в конце и в шаблоне уже добавить проверки (но тогда уже нужно будет инициализировать переменные контекста пустыми значениями, потому что будут ворнинги о возможности использования неинициализированных переменных). Или вообще лучше раскидать это все по разным представлениям и не загромождать?Не пинайте
>>870750По-разному можно, делать, наверное - зависит от конкретной задачи.
>>870753как у меня запятые плавают-то..
>>870750вообще похуй, как удобно так и делаешь. нормально сделаешь, нормально будет.
>>870764>>870753То есть нет никакого python/django way по этому вопросу? Тогда ладно, спасибо.
>>> sys.version'3.3.6 (default, Sep 22 2016, 23:32:57) [MSC v.1600 64 bit (AMD64)]'>>> sys.getsizeof(dict())288Я тут собрался дерево строить с десятками миллионов узлов, а тут такое... Какие есть варианты? Может можно инишиал капасити подкрутить, или другую структуру заюзать (скиплист устроил бы)? Или юзать лист [key1, value1, key2, value2, ...], и дегрейдить его в мапу при заполнении?Нужен быстрый лукап и вставка по чайлдам ноды.32-битный питон не предлагать.
>>870774>django way DRY https://ru.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourselfНу в целом, пытайся делать все как можно проще. Чем меньше кода - тем лучше.Ну и старайся в шаблонах не делать много ветвлений и вложенных циклов, а переноси это в представления, если возможно.
>>870722Procfile в случае с хероку, например.
>>870804Спасибо
Тут в книжке задание, когда нужно запихнуть все числа, вводимые пользователем, в список и оттуда уже игграть с ними.Ввожу числа, но как только в строку ничего не пишу и нажимаю ентер у меня вылетает анекспектед енд оф файл, как лечить?
Здравствуйте.Задача: запросить у пользователя цвет, которым нужно закрасить фигуру. Для решения использую askcolor(). Проблема: askcolor() возвращает значение вида #АААААА, а примитивы фигур красятся с помощью color=(red,green,blue), где red, green, blue принимают значения от 0 до 1. Думаю, мне надо расчленить строку из askcolor() на три пары, после чего каждое значение преобразовать и поделить на 255. Правильно думаю? Python 2.7, ибо использую библиотеку visual.По поводу преобразования нагуглилdef hex_to_rgb(value): value = value.lstrip('#') lv = len(value) return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
>>870868http://stackoverflow.com/a/4296263(r, g, b) = struct.unpack('BBB',rgbstr.decode('2FECA1'))
>>870863>у меня вылетаета ты его лови чтоб не вылетало
>>870863>анекспектед енд оф файлТакой ошибки не должно быть, а вот когда ты просто нажимаешь Enter, то твоя программа будет бросать исключение, потому что не сможет преобразовать пустую строку в целое число.while True - бесконечный цикл. значит тебе надо предусмотреть выход из него.http://pastebin.com/Pr5CDrqu
>>870877Можешь дать какие-нибудь свои контактики?Оно работает но я не понимаю почему, лол. 5 минут назад я заставил её работать точно также но больше строчек кода.Обьясни почему тут при пустой строке и вышел из цикла, а в моем варианте не вышел не пожалуйста
>>870891И да, олсо, если я напишу туда 'dsadsads' то никакой ошибки не происходит, а должна же.
>>870891>>870892Все все я понял.Просто запутался между свои скриптом где было if...break и твоим где break прерывает while.
>>870902>Все все я понял.Ок.
Прочел лутца как советовали в факе и решил начать проходить кодакадемию как советуют аноны. После лутца как будто для даунов все задания. Мало того, что они на питоне 2.6 так еще и задания подразумевают только коридорное выполнение. Независимо от результата, сделано должно быть точно так же как в задании. Есть что-нибудь по серьезней для практики кода?
>>870945check.io попробуй
>>870951checkio.org
>>870951>>870953Cпасибо, друзья.
>>870869Долго ебусь, но не вдупляю. Код: http://pastebin.com/8uCLZAE6 Ругается:temp=''.join(ch_color)TypeError: sequence item 0: expected string, tuple foundВыходит, tuple нужно перегнать в string. Гуглил, нашёл http://stackoverflow.com/questions/3886669/tuple-to-string , http://stackoverflow.com/questions/9525399/python-converting-from-tuple-to-string , http://stackoverflow.com/questions/8704952/python-convert-tuple-to-string , http://stackoverflow.com/questions/19641579/python-convert-tuple-to-string , но не понял, как это реализовать в моём случае. Говорю сразу,я - жуткий нуб в питоне, потому хотелось бы получить детальное объяснение, которое приведёт меня к правильному решению.
>>869663Что за IDE?
>>870975Sublime
>>870964from tkColorChooser import askcolorprint help(askcolor)value = askcolor()print(type(value))print(value)print(value[0])
го пилить REST API для двача годное. с обсуждением все дела. Хочу на выходных чем то занимать себя.
>>871128выходные завтра заканчиваются
>>871168Через 55 минут.
Объясните, пожалуйста вот это::~$ python3Python 3.5.2+ (default, Sep 22 2016, 12:18:14) [GCC 6.2.0 20160927] on linuxType "help", "copyright", "credits" or "license" for more information.>>> 1.4+1.4+0.12.9>>> 7.1+5.812.899999999999999Это как, это что, но главное - ПОЧЕМУ, БЛИН, ОНО РАБОТАЕТ ПО-РАЗНОМУ? Можно ли предугадать, в каком случае его перекосит, а когда сосчитает правильно?
>>871221
>>871223Нет, мне действительно это интересно.Я видел утверждения с какими-то левыми отмазками про повышеннуюа на практике - пониженную, LOL точность, но так и не понял, почему это происходит в одних случаях и не происходит в других.
>>871237Ты уже гуглил этот вопрос?
>>871242Ага. Напрмер, тут читал:http://asvetlov.blogspot.ru/2011/02/blog-post.htmlНо во-первых в 2.7 и 3.5 это работает иначе, а во-вторых если у него:>Во первых, это одно и то же число:>>>> 4.31 == 4.3099999999999996>TrueТо у меня иначе:>>>> 7.1+5.8 == 12.9>False>>>> 12.9 == 12.899999999999999>FalseХотя>>>> 4.31 == 4.3099999999999996>TrueИ нигде не вижу, как понять, сорвет ему крышу или не сорвёт.Как вообще можно пользоваться языком, который не умеет складывать числа?
>>871282http://bfy.tw/8bbS
>>871286Это Гвидо ван Россум - лошара. Второй язык с таким ПРОВАЛОМ хуй найдёшь вообще.
>>870722Большие мальчики используют супервизоры для этого. systemd, supervizord, upstart, тысячи их.А хитрые мужички юзают docker
>>871293Ну, например, любой другой.
Блять я так и знал тут что-то не так!Оказалось то язык - говно!https://habrahabr.ru/post/314062/Молодый технический специалист мэилрушечки взял и переписал безумное дерьмище в ядре питона, тем самым увеличив дохуя его потребление памяти.На что ему ответил питох ван питушкинс:>>>>В сентябре же мне ответил сам Гвидо ван Россум: «Раз за всё это время никто к патчу интереса не проявил, — значит, никого другого потребление памяти парсером не заботит. Значит, нет смысла тратить время мейнтейнеров на его ревью.»"Мне не интрересно, нет смысла тратить время, мне всё-равно, куд-кудах, ресурсы нинужны, главное чтоб было прикольнинько" -ПИЗДОС!!! ЭТО ЯЗЫК ДЛЯ АУТИСТОВ! ПАЛУНДРА! ПЕТУХИ ВЗБУНТОВАЛИСЬ!>>870701-кун
>>870711Мне понятен смысл блять, мне не понятен смысл такой ЕБАНУТОЙ КРИВОЖОПОЙ формы этого функционала.>>Data hiding.Прятать от манагера факт своей никчемности?>>Конструктор, ВНЕЗАНО может быть не таким тривиальным.Блять я понимаю что можно любой конструктор нагородить, любой синтаксис чтоб был сверху. Вопрос был в другом. Или ты питонщик и уже не соображаешь нихуя тоже?>>А как нужно? Как отличать instance members от локальных переменных?Так в этом дело?Серьезно?"Как нужно?" ??!"А как отличать?"Мб питон для тех, у кого Imagination NYI?Миллион способов.Миллиард блять способов конструкций поприятней и покороче, чтобы разделить члены класса и члены особей.Нет вы видели этого пидораса? Вопросы он мне задает.А как тебе декораторы сука ?Писать такое типа норм@ХУЮШКИНСИ тебе даже в голову мразь не приходит что можно точно так же лексемой какой-нибудь типа @ или 8===> или ХОЧЕШЬ ЦАПЛЕЙ ПОСТОЮ тупо отграничить эти два неймспейса?Вместо всей этой ебли с андерскорами с фиксированной бессмысленной лексемой инит с def _____моча_____(говно) ?В чем нет , НЕТ НЕТУ БЛЯЯЯЯТЬ никакого смысла? Что это похоже на то, будто ребенок с пятью хромосомами ведь измазанный в говне слепил из говна кусок говна, поднял, кривя один залипший глаз и улыбаясь дыркой в пол-ебала вместо рта, поднял это всё на культях и восхищенные аутисты-манагеры говорят "Представляем вашему вниманию новый ООП-язык - питон!"
>>871371Хуя пичот. Пили свой язык с блекджеком и шлюхами.
>>871371ебать ты дебил
>>871168я имею ввиду каждый выходные.
>>871221Еще один. это не от питона зависит
>>870701Ну панимаешь братиш, какое дело. self в пистона - это как this в крестах, то бишь указатель на экземпляр.
>>871475> пистона *питоне
Питоняши, пробую тут virtualenv с джангой первый раз и такая проблема возникла:обычно у меня пара батников на рабочем столе(запустить сервер, шелл, просто консоль в папке), а в этот раз так не получилось - при активации виртуального окружения команды из батника перестают выполняться. Интернеты читал, но видимо не могу правильно сформулировать вопрос - ничего не нашел.
>>871491>рабочий стол>батникиМы с ОСью петушинойИдем дорогой трудной, Идем дорогой трудной, Дорогой непрямой Заветный код исходный Исполнит мудрый Гвидо И Джанга заработает На виртуаленве.Ну ты понел
>>871368Гвидо все правильно сказал:"Если у тебя в коде какие-то ебать-колотить структуры, то используй вместо этого JSON, он для этого предназначен.А если ты запускаешь миллионы крошечных скриптов, вместо того чтобы написать нормальный сервис, то ты дебил просто говорить не буду с тобой чмо игнорирую."
>>871591нет, не понял, а что ты сказать хотел?
>>871599Хочешь нормально работать на питоне - ставь линупс.Да, поначалу кажется "да ну его нафиг, мне бы научится". Но питон учится быстро и вот ты уже пытаешься запустить БД, сервер, редис, обработку изображений и завернуть все это в докер.Поверь мне, лучше это делать в линупсе.
Где узнать полный инструментарий, которые необходим для деплоя нормальной приложухи на джанге? Вот на хероке рикамендую gunicorn который я так и не понял как настроить, whitenoise для статики, еще что-то должно быть? Книги какие подробно опишут весь процесс?
>>871611Ну, для простых проектов у меня например такой стэк:1. nginx в качестве обратного прокси и раздатчика статики.2. venv для вируального окружения3. gunicorn как WSGI сервер (а что там настраивать-то?)4. django5. Celery для фоновых задач (почту отправить, картинку отресайзить и т.п.)6. Redis для очереди celery + кэш для джанги7. PostgreSQL ессесно8. supervizor для запуска всего этого зоопарка и перезапуска при падении.Вроде все.
>>871607у меня уже есть на виртуалке линукс таки заебался с установкой dryscrape под винду, да, но я ахуею сразу django+python+nix учить.Вопрос был про консоль винды и ее работу с virtualenv, а у тебя ответ из серии "не заводится машина - смени марку".
>>871616почему nginx как wsgi не используешь?
>>871620плюс линя в том под под ним не возникает 95% проблем с питоном, что возникнут под виндой.По говну за городом можно и на мерсе s-class ездить. Но зачем, если есть старый добрый УАЗик?
>>871622>почему nginx как wsgi не используешь?Wat?
>>871626сорь за нубский вопрос, я имел ввиду почему не сипользуешь nginx в связке с uwsgi, а используешь gunicorn?
>>871627Разницы практически нет, выбирай что тебе удобнее. Вернешься к этому вопросу когда дойдешь до "ну как же обработать еще пару тысяч запросов в секунду?"
>>871630ну я и хотел узнать чем гуникорн удобнее? я просто задеплоил как оф доках джанго написано, а там был uwsgi первым)
>>871633>ну я и хотел узнать чем гуникорн удобнее?Пробуешь одно и другое, выбираешь. Вот и все.Переключиться потом легко, pip install и пара строк в конфиге.
>>871638А ты на хероку деплоил джангу? как понять что у меня работает именно гуникорн?ТАм оче ебнутый туториал, который не просит вырубать debug mode. В итоге я задеплоился в режиме дебага. При этом все остальные иструкции тоже соблдюдал, в режиме debug = false сервак отдает 500ый ответ.первый раз деплою на хероку
Ребзя, кто-нибудь настраивал апач с mod_wsgi? Может кинете каких-нибудь гайдов? А то там чет ваще сложно с конфигами. апп на фласке
>>871641Извини бро, на хероке не деплоил, не могу помочь.
>>871650>апач с mod_wsgiНо зачем?
>>871650> апач с mod_wsgiлол, из 2010 капчуешь?
>>871655>>871657Сук, ну и на чем хостят в 2016 правильные пасаны?
>>871671reverse proxy nginx
>>871679Еще смузи?
Питоны, а подскажите плизВот у меня в settings.py LANGUAGES = ( ('ru', "Русский"), ('en', "English"),)LANGUAGE_CODE = 'ru'чому у меня по-умолчанию один хуй на новых устройствах открывается на английском? Как заставить django жрать LANGUAGE_CODE ?
>>871729Борща пожалуйста
>>871730LANGUAGE_CODE = 'ru-RU'
>>871740а то что с LANGUAGES будет отличаться? там тоже менять на ру-РУ?
>>871730https://docs.djangoproject.com/en/1.10/topics/i18n/translation/tldr - Джанго сначала смотрит на заголовок Accept-Language запроса, и только если его нет, использует LANGUAGE_CODE.Так что смотри свои устройства.
>>871671Любой другой wsgi-compliant сервер.
>>871754Как проще всего заставить джанго вхуяривать изначально русский, а уже если переключат то другой?
>>871765Ёпт, сделано же все как надо: требуют буржуинский - отдаем буржуинский.А ты хочешь: требуют буржуинский - отдаем мальчиш-кибальчишеский. Что за фагготрия?
>>871768у меня сайт в зоне ру, а отдаёт всем английскую версию, при чём с самых разных девайсов протестировала вхуряить вместо LANGUAGES = (('ru_RU', "Русский"), ...что бы урлы уродливые иметь типа сайт.ру/ру-ру/хуйпизда - я не хочуа в той комбинации что я в первом сообщении привёл оно автоматом выплёвывает сраную английскую версию
>>871769Вариантов два:1. Написать свой вариант LocaleMiddleware2. Написать простенькую middleware, убирающую\меняющую заголовок Accept-Language из запроса, вставить её перед LocaleMiddleware
>>871775Вот я что-то такое и нашёл: https://gist.github.com/vstoykov/1366794но как его в джанго подключить, ей-богу я не понимаю.
Изучая питон Лутца или байт питона его полностью заменяет? Само программирование умею.
>>871795Подскажи плиз:В папочкеproject/middleware/force_default_middleware.py , __init__.pyвнутри https://gist.github.com/vstoykov/1366794settings.pyMIDDLEWARE = [.........'project.middleware.force_default_middleware.ForceDefaultLanguageMiddleware',..'django.middleware.locale.LocaleMiddleware',]LANGUAGES = (..('ru', "Русский"),..('en', "English"),)LANGUAGE_CODE = 'ru'получаю ошибку: TypeError: object() takes no parametersи чего ему не хватает? смысл то в том что ты и предложил - убирать заголовок из запроса
>>871799> умею Не верю.
>>871822У тебя джанго 1.10? В нем другой стиль для middleware.https://docs.djangoproject.com/el/1.10/topics/http/middleware/#upgrading-pre-django-1-10-style-middleware
Ох эти джанго-проблемы...мимо фласк господин
>>871891Маааам, он тролит?! Ну мааам!
>>871822Они там че-то нахуевертили с миддлварями в своей новой джанге. Их теперь надо писать по-другому.Вот, так попробуй. Должно и с 1.10 работать и с ранними версиями http://pastebin.com/mygKPgMT
>>871921Спасибо тебе большое, ты меня очень и очень выручил. >>871879Долго и вдумчиво гуглил... и нихера не заработало. Error 500 только получил.
>>871901Нет я не троллю.
Есть ли аналог zip, который мне из [1,3,5,7] и [2,4,6,8] сделает [1,2,3,4,5,6,7,8]?
>>872012http://stackoverflow.com/questions/3678869/pythonic-way-to-combine-two-lists-in-an-alternating-fashion
>>872012Если ты имеешь в виду отсортированный список, то ([1,3,5,7] + [2,4,6,8]).sort()Если поочередное извлечение, то подойдетchain.from_iterable(zip([1,3,5,7], [2,4,6,8]))
Аноны, с какой книги мимокроку начать вгрызаться в питон?На хабре советуют 4е издание "Изучаем Питон", в шапке вроде как "Укус питона", в пасте советуют "How to dive into Python", так с чего же начинать?
>>872062> так с чего же начинать? Пойди дрова наруби деду
>>871002http://pastebin.com/8uCLZAE6Теперь всё работает. Спасибо тебе, добрый анон. Вот тебе котик.
>>871840Тебе не обязательно верить, считай это условие частью модели для решения задачи. Каков ответ?
>>871799Если ты бог и умеешь в программирование. Знаешь много паттернов проектирования, умеешь писать на куче других языков, умеешь в архитектуру и основные технологии, которые сейчас юзаются в любом языке - https://docs.python.org/3/reference/index.html.Это референс по языку. Потом погугли "Python-way" и начинай изчать\писать своё. Если же ты не знаешь всего того, что я перечислил - пиздуй учить по Луццу. Либо бери Byte и доучивай оставшееся через референс на офф сайте + module of the week + гугление "Python-way"
>>871491>при активации виртуального окружения>команды из батникаКакого виртуального окружения? Какого батника? Что в этом батнике у тебя? Или мы, блять, должны по фотке ебучего шахтёра догадаться, что там?
>>872093Да.
>>872012+
Подскажите дауну, как надо по PEP и по уму делать. Есть у меня класс. В нём есть переменная x и функция f(). Вот в функции мне нужен x, а сама эта функция вызывается другой функцией внутри класса. Так как лучше делать: передавать в вызове эту x, или ничего не передавать, а в теле функции делать self.x?
>>869906Ты это я бро. Только мне уже 27 лет бля, когда мои друганы косят по 2к баксов, я эникеем впахивают 300$. Мне очень вначале помог сайт checkio.org, так же PyScripter который, как по мне, имеет хорошо понятный отладчик.
>>872163Кроме здравого смысла, на это гайдлайнов нет.Если ты знаешь, что x у тебя всегда будет свойством конкретно этого объекта и всегда будет либо свойством класса, либо проинициализировано в __init__, то используй self.xЕсли набегут адепты чистых функций и начнут вонять, смело затраливай их - self передается как аргумент, так что функция чистая, ололо.
>>872193Да, звучит здраво. Спасибо, няша.
>>872175> друганы косят по 2к баксов Поподробней пожалуйста. Это где они столько косят?
>>872199>Это где они столько косят?Ну что ты как маленький, водилами и курьерами работают часа 4 в неделю, вот и косят.А ты сиди дальше, гоняй свои буковки-циферки.
Аноны, нужна помощь.Есть строка из 0 и 1, полученная после кодирования Хаффмана.Как преобразовать ее в битовый формат, записать в файл, считать и преобразовать обратно?
>>872200А ну ясно.
>>872207binstring = '1001'binint = int(binstring, 2)binstring = "{0:b}".format(binint)Запись/чтение из файла сам делай и не забудь context manager.
Вопрос от нубаса в проектировании:Есть 2 модели, у которых много общего, но много и различного. Их пилить просто в разных моделях или общее вынести в абстрактный базовый класс и от него наследовать эти 2 модели? Так же хотелось бы queryset получать обращаясь к базовому классу-это возможно вообще?
>>872294Можешь сделать базовый класс не абстрактным, тогда джанго автоматом сделает тебе связь one-to-one, но будет больше еботни с запросами к базе.https://docs.djangoproject.com/el/1.10/topics/db/examples/one_to_one/
https://www.reddit.com/r/learnpython/comments/5bmaz0/python_101_book_free_for_48_hours/Вдруг кого заинтересует.
>>872337>redditСвали на пикабу или вк, ребенок.
>>872337Спасибо!
>>869777Что это за хуитка где ты задачки решаешь? Похоже на розалинд, но такого я там не помню оформления.
Анон. С какого момента можно начинать изучать джанго? Прошёл академию, прочёл укус питона, написал игру 'дурак' по алгоритмам из интернета
>>872380После стандартной библиотеки. В идеале для полного понимания почему фреймворк это не волшебство ещё что-типа http://aliev.me/runestone/ или SICP'а на питоне прочитать, но это уже кому как хочетсяЕсли ещё не навернул - наверни Синк Пайтон
>>872380Можешь сейчас начинать.
>>872383Мне кажется ты хуйню советуешь
>>872199Игры пишут для iOS.
Ананасы, как в pyplot вывести изображение интерактивно, чтобы после того как обработалось новое imshow изображение сразу выводилось? Пытался сделать через plt.ion(), но теперь вообще ничего не выводится.
>>872339>2017>сосать водичку из книг>не учиться по видео
>>872420видео - это долго, неэффективно и для дебилов.
Есть один скрипт, с помощью которого я пытаюсь пропарсить ебучий хтмл. Сам скрипт:http://pastebin.com/9mQk4M2wПроблема начинается после того, как я получаю урлопен. Вместо ебаного хтмл он мне присылает: <http.client.HTTPResponse object at 0x0000000002E2D4E0>. И что мне с этой хуйней делать? Мне нужен ебаный хтмл, нахуй он мне свои обжекты прислылает???
>>872460>respData = resp.read()
>>872461Спасибо няш, вот я долбоеб, даже код скопипастить не могу. А может ты меня еще по одному вопросу можешь просветить?
>>872464Задавай.
>>872466В хтмл есть тег инпут с типом текст. Допустим я туда хочу что нибудь засунуть с помощью питончика. Есть ли какие нибудь методы для этого в urllib, в респонсе например? Или мне искать другой модуль?
>>872469я бы сразу инпут отправлял с помощью библиотеки requests через POST, если у тебя такая задача
>>872469Ну вот у тебя есть такое>req = urllib.request.Request(url, headers=headers)можно и POST запрос делать, надо только какие-то данные передавать. Вот пример:http://stackoverflow.com/questions/15768504/simple-post-using-urllib-with-python-3-3Ну или можешь библиотеку requests попробовать, как уже тебе посоветовалиhttp://docs.python-requests.org/en/master/user/quickstart/#make-a-requestГугли какие-нибудь примерчики кода.>>872466-анон
>>872471>>872481Спасибо анончик, ушел пробовать.
аноны, постигаю азы питона.суть в том, что я хочу практиковаться на работе, где нет возможности установки программ.питон запустится при переносе его папки на рабочий комп, или нужно искать portable версию?
>>872448книга - это долго, неэффективно и для дебилов.
>>872235>binint = int(binstring, 2)Спасибо, но на выходе ведь идет просто int.Мне нужно именно в битовый формат перевести, чтобы файл, в который записываю, занимал меньше места.
>>872493virtualenv
>>872504Ни цента не заплачу и выгоню ссаными тряпками того идиота, который и правда так считает.
>>872493Можешь просто скопировать
>>872536Кого ты там выгонишь, борщехлеб?
>>872545> борщехлебКак скажешь.
>>872547Видать правда, раз припекло.
>>872536Не пойду работать к идиоту, который считает обратное.
>>872524file.open(tvoy_file, 'wb+')file.write(b)
Ребята, а подскажите пожалуйстаЕсть моделька с ForeingField(User, ...)Нужно ограничить в админке при создании нового объекта данной модели ТОЛЬКО нового пользователя, не уже существующим.
>>872595Очевидные для меня варианты:1. Использовать какое-то поле типа ClientLogin а потом через def save модели назначать его же и юзеру, если такого юзера не существует2. Сверять экземпляры классов джанго Юзер и апп Клиент(юзер)Блин, может OneToOneField вхуярить и делов?
>>872596Олень я заспанный, дописал unique=True и в рот его всё ебать
>>872294https://habrahabr.ru/post/254773/Многие вопросы отпадут
Платиновый вопрос джангача:Вот есть у меня моделька, в ней есть def save() для переопределения сохранения данных из скрипта парсераПри создании нового объекта класса этой модельки я стабильно получаю:object with primary key 'None' does not exist.как ПОБОРОТЬ?
>>872712я уже голову сломал нахуй этим всем безобразиемclass New(models.Model):..................# примал кей не переопределяю, т.е. использую стандартный джанговский id=AutoFiled(primal_key=True)..def save(self, args, *kwargs):..new = New()..article = Article(self.link, language=self.lang)..try:....article.download()....article.parse()....new.id = self.id #pk и прочие primalKeys перепробовал....new.text = article.text....new.title = article.title....new.save()..except:....return HttpResponse('Ошибка')
>>872718А просто не трогать id не пробовал?
>>872724да, тот же результат
>>872725Через админку пробовал сохранять?
>>872728только через неё и пробовал.не цепляет оно айдишник, потому что айдишник должен выдаваться при сохранении в бд, а сохранение не происходит потому что нет айдишника ._.
>>872731Почему ты в save создаешь еще один экземпляр?
>>872733пробовал не создавать, а сохранять чисто с self.tite, self.text .... self.save() - и опять та же хуйня
>>872736Ну какой self.save, ты же должен вызвать метод save родительского класса.
>>872712я ебал тебя в голову анон. почему ты такой тупой блять. сука args, *kwargs напиши, неужели не можешь даже скопипастить ровно.ну и прочитай ебаную документациюhttps://docs.djangoproject.com/en/1.10/topics/db/models/#overriding-predefined-model-methods
>>872712вообще, что у тебя http response потерял в методе модели?и на будущее, оставь метод save() в покое, юзай сигналы
>>872593Как это b получить?>>872235Здесь на выходе int и str, которые не пишутся в файл через 'wb'
>>872756У int есть метод to_bytes, например. Может тебе он как раз и нужен.
>>872753>юзай сигналыЧем save() плох-то? Где-то удобней его использовать, а где-то - сигналы.
>>872760я с тобой согласен.но я предпочитаю выносить все в сигналы. реализация сложнее, но больше порядка и наглядности
>>872752Добра тебеСпасибо!>>872753в чём плюсы сигналов? как их юзать и зачем?
>>872756binary_string = '1011'bytes(int(i, 2) for i in binary_string)>b'\x01\x00\x01'
>>872774ты не хочешь в джанговской документации прочитать?
>>872786Я пытаюсь доделать говносайт что бы уже от меня отъебались. Когда-нибудь определённо прочитаю. Спросил что бы в паре слов понять нахуй оно надо вообще, и тем самым не забыть.
>>872788ладно. сигнал эта такая хуйня в джанге, которая "вещает" о каком-то событии модели. pre_save, post_save, pre_delete, post_delete. декорируешь с помощью receiver(приемник) функцию, которая должна исполнится после сигнала. эта функция принимает модель, и экземпляр модели```from django.db.models.signals import pre_savefrom django.dispatch import receiverfrom myapp.models import MyModel@receiver(pre_save, sender=MyModel)def my_handler(sender, instance, kwargs): pass```
>>872788>>872793ну и весь смак в том, что когда у тебя появятся несколько действий которые нужно выполнить по сигналу, они будут свалены в кучу в методе save()
>>872798Спасибо большое еще раз
>>872798Переписыватьс ейв - это совсем быдлокод? У меня в учебном проекте все идет через перезаписывание сейв, мне шо, переделывать теперь?
>>872785В итоге из 4 бит получилось три байта. Каким образом и кому это нужно?
>>872820Все нормально, это два разных подхода.Плюс сигналы обычно используют, когда работаешь с другой моделью.
>>872824Это просто опечатка.Ты для начала попробовал бы ЗАПУСТИТЬ КОД, десять вариантов которого УЖЕ ТЕБЕ НАПИСАЛИ.ЕБАНЫЙ ДАУН пиши код сам, ДЕБАЖ ЕГО, ПРОБУЙ ВАРИАНТЫ, ЧИТАЙ ДОКУМЕНТАЦИЮ, ТЫ ЗАЕБАЛНИХУЯ ТЫ НЕ НАУЧИШЬСЯ НИЧЕМУ ДЕБИЛУШКА, ТАК И СДОХНЕШЬ ТУПОЙ МАКАКОЙinb4 батхерт
>>872830Я не он, истеричка. Если тебе так неприятно, то зачем ты отвечаешь на такие вопросы?
>>872824Пацаны, гля, у нас тут даже не байтоеб... У нас тут битоеб! Ололо.Теперь по теме. Варианты:1. pip install bitstring2. import structдальше сам
Сап. Аноны, с вашего языка сложно перекатываться на другие? Как никак динамическая типизация. Так как сам я в программировании полный ноль, хотел постигать основы начав с python, после перекатами на java итд
>>872853Лучше начни с джавы, хороший язык для начала.
>>872853Не трать время, учи сразу java.
>>872853Тебе еще не советовали Java? Начинающим как раз.
>>872853Я бы на твоём месте начал бы сразу с java Ебет по всем фронтам включая зп.
>>872853Не слушай никого! Только хардкор, только джава!
>>872840>1. pip install bitstringСпасибо, то что нужно.
>>872869Раз выбрал bitstring, вот тебе вдогонкуhttp://pythonhosted.org/bitstring/constbitarray.html#bitstring.Bits.tofile
>>872853тебе уже наверное многие насоветовали всякого... не слушай никого, учи джава
Воу, признаюсь не ожидал такого количества откликов.Спасибо, но, это точно не местный троллинг, типа если ты новичок начинай с хаскеля и тд
>>872901неужели ты такой тупой. конечно тебя тролят с джавой.
>>872903Ну так я понял, но да, я тупой.Вообще за яву многие топят, мне сложно в языках ориентироваться.
>>872903я не троллил!
>>872925Определись с областью, в которую хочешь вкатиться, после чего выбирай язык. Не наоборот. Синтаксис и фреймворки всегда успеешь выучить. только если у тебя не рак мозга :3
Ребят я ньюфаг пиздец,что значат кавычки в этом выраженииfloat ("210" * int("4"))
>>872930> Определись с областью, в которую хочешь вкатиться, после чего учи джава.
>>872932это смайлик, тебя потроллили
>>872934Ну серьёзно
>>872936s = "Ну серьёзно"
>>872853Java лучший вариант для тебя. because you're so stupid for python
нифа у вас АЛЕППО от одного только упоминания джавы))) лоооол))
Вопрос к гребцам и им сочувствующим.Пишут к вакансии бэкендщика "знание Postgresql". В чем выражается суть "знания" постгреса, да и вообще таблиц sql. Знание каких кейсов дает мне право говорит "знаю постгрес?"
>>872947хуй ево знает, наверное правильно писать название. мидлсеньор300к аноний, подскажи, он правильно написал?
>>872946Просто у питонщиков горит, что их язык настолько конченый, что даже джава его лучше. Что уж говорить про джаваскрипт.
>>872947> постгресне возьмут, иди еще тренируйся.
>>872954> джаваскрипт
>>872947Ну, сам я в постгресе не силен, но там есть своя специфика в синтаксисе запросов, CONSTRAINTS всякие, postgis и т.п. Обычно дальше чем INSERT ... ON CONFLICT ... на практике дело не идет, но в постгресе есть что поизучать, если надо реально оптимизировать.
>>872965Если нужно оптизимировать, то разве не нанимают разрабов баз данных?
>>872966Ну конечно.А еще архитектора, фронтендера, бэкендера, специалиста по UX и системного администратора.Это рашка, Карл, тут нужны фулстекорабы за копейку.
Вот как так? Зачем это придумали? Как правильно копировать?http://ideone.com/DwsXrh
>>872973Ну вот так вот.Используй copy или deepcopy.
>>872977А зачем? Почему не сделать как везде?
>>872973http://ideone.com/z29lv3
>>872986Ты не то сделал. Вот так надо было.
>>872993http://ideone.com/5Pa7s8
>>872993я лишь хотел показать что есть переменные класса и инстанса, копировать и не собирался
>>872994Кстати чего заходил. Можно как-то стандартный конструктор копирования прописать? Чтобы не подключать copy
>>872995Я какое это имеет отношение к вопросу? Совсем другая тема.
>>872997ну чувак переопределяет инстансы и их аттрибуты и удивляется
>>872998Ну можно было t1.t = t2.t написать. Эффект бы остался тем же.
>>873000оставил как в оригинале
>>872979Вопрос привычки.
>>873004Какая польза от этой привычки?
>>872996В 95% случаев потребность в copy.deepcopy объясняется ошибками в проектировании.
Пацаны, а как мне в джанго сделать SlugField который опциональный, но уникальный?slug = model.SlugField(blank=True, unique=True) выдаёт стабильную ошибку миграции django.db.utils.IntegrityError: UNIQUE constraint failed:
>>873026пока нагуглил только что народ вставляет null=True но у меня это опять таки ни к чему ни привело
>>873028я вообще руками делаю
>>873029Получи приз за самый бесполезный комментарий. Он твой. Поздравляю
>>873038ну ок http://pastebin.com/GEwRumtD
>>873044ы скинул тебе как раз не то где применяется unique.. вот поправил http://pastebin.com/epAfAvpZ
>>872965>postgisОхуенная вещь. Делаю проект, где использую spatial tables и прямо сейчас кончаю от неё.
>>873026def save(self, args, kwargs):____self.slug = self.slug or None____super().save(args, kwargs)
>>873050>>873044Спасибо большое.>>873072Ну мне не Null'ом забить же надо, а что бы вводить в поле было необязательно вообще.
>>873081В Джанго тут (был, уже закрыли тикет) большой проеб - пустой CharField воспринимается как '', а это тоже строка, хоть и пустая, и значение в null не выставляется. В БД сохраняется как '' и потому выбрасывает UNIQUE constraint failed. Приходися вручную проставлять None, тогда проблема решается.https://code.djangoproject.com/ticket/4136
>>873081Гля, кстати, чё нашёл:http://stackoverflow.com/questions/21728500/optional-but-unique-slugfieldно кверисеты писать как-то мне кажется черезчур под это дело. А твой способ >>873050 работает, спасибо ещё раз.
Ну вот что я,блжд, делаю не так?
>>873140выглядит как будто бы не все зависимости удовлетвореныпочитай чё им надо из внешних библиотек, всяких там python-dev и тд и доставь
>>873140Permission deniedМожет sudo?
>>873155Пик 1p.s.Установлена FreeBSD на серве.>>873143Теперь вот пик 2
Пытаюсь с помощью либы requests отправить форму на сервер, но нихуя не получается.Код там простой, но я не слишком тупой, чтобы понять, что нужно отправлять. Сам код:http://docs.python-requests.org/en/master/user/quickstart/#more-complicated-post-requestspayload = {'key1': 'value1', 'key2': 'value2'}r = requests.post("https://huita.com", data=payload)В пейлоад по идее нужно отправить данные формы, но нихуя не отправляется. Вот как примерно выглядит пост запрос.(1 пик) и на втором пике сами данные. Хз как это в все в payload засунуть. Подскажи дауну плз, анон.
Можно ли на питончике написать свой мейл сервис и что для этого нужно знать?
>>873256payload = {'authenticity_token': auth_token, 'question[question_text]': question, 'question[anonymous]': 'true' }res = session.post( profile_link + '/ask', data = payload, cookies = cookieJar )Открой вкладку POST.
>>873261Фрэймворк
>>872973Можешь делать так, например:self.t=list(t)Заодно сможешь не только списки передавать, но и строки, кортежи, в общем, любой итерируемый объект.
Анон помоги. Я совсем запутался в задании кодакадемии. Задание:>You need to get the average for each student and then calculate the average of those averages.По моей логике мы создаем пустой список, потом циклом перебираем студентов, добавляя среднее значение get.average(студента) в список. В функции get.average возвращает значение в числе. После чего результат добавленных в пустой список студентов делим на список студентов. В чем я не прав? Ошибка: Oops, try again. get_class_average([alice]) resulted in an error: 'float' object is not iterablehttp://pastebin.com/8dMEsYdZ
>>873472> results += get_average(student)Результат у тебя список. Среднее студента это число. Ну ты понел...
>>873472уже не надо.
>>873497Лол. Чо так?
>>873499Да я сам решил. Изменил код добавив как и просили по заданию results.append(x) где x это среднее значение студента.
>>867611 (OP)У меня одного пердачелло рвется от этих пилэйдис?
>>873551Да ладно тебе. Тяночки любят что-нибудь толстое, длинное и гибкое. (питон)
Может у кого есть тема для pycharm в таких цветах? https://github.com/morhetz/gruvbox-contribЛень самому пилить, тема gruvbox для vim
Как лучше делать коммиты в гите - для каждого файла отдельно, или для всех сразу?
>>873690Для всех, которые изменил во время работы над какой-либо одной задачей.
>>873690Чего? Гит это система контроля версий а не файлов. Ты изменяешь состояние программы, дополняя ее функционал (создавая версию). Обычно это затрагивает сразу несколько компонентов (файлов). Коммитить нужно именно на этапе новой версии. Весь проект. Желательно в рабочем состоянии или держать отдельную ветку для не законченного изменения.
>>873690фишка в том что ты и пихаешь в один гит все изменения потребовавшиеся для одной фичи/багфикса
>>873687По твоей ссылке есть тема для идеи, разуй очи.
>>873722пихаешь в один коммит*сонный самофикспора спатки
Какой Профит пользоваться vim а не pycharm? Автодополнения при наборе же ни у кого больше нету нормального? Или я что-то упустил?
>>873730Ну смотря для чего. Я как юзатель вима после небольшого знакомства с пичармом могу сказать, что под вим ни одна автокомплит-либа не может в метаклассы моделей джанги. Вообще. Все остальное вроде еще куда ни шло. Тебе вим зачем?
>>873736Ну просто я тот еще задрот, на линуксе с 2003, живу в и3, любимые игры дварф фортрисс и катаклизм дда - только вима и прыщей не хватает до полноты образа. Но так и не смог найти причин на него переходить.А так да, основное направление которое мне нужно в питоне - Джанго.
>>873736ах да, самофикс.Вим он не про супер инструменты искаропки. Он искаропки почти пуст. Он про набор текста и его редактирование. Очень продвинутый да простят меня вимеры блокнот. Но вот если ты на него накатишь аддонов... Такого монстра можно собрать, который разве что отсасывать тебе не будет по одной комбинации клавиш.
>>873730Ставишь Pycharm, ставишь к нему плагин vim emulator, юзаешь вимовские хоткеи
>>873719>>873721>>873722А если изменения непоследовательные и фрагментарные?
>>873730я пользуюсь емакс, мне очень нравится
>>873724Нефти тебе, не знал Что IDEA это и есть PyCharm. Может еще подскажешь, куда файлы кинуть, в user/.PyCharm/config/colors не видит
>>873748Во, а ты с джангой не работаешь? Есть нормальная автокомплит либа которая бы переваривала метаклассы джанги? Потому что вим вимом, а когда ты блядь не можешь написать в 3-5 нажатий Book.objects.order_by('-post_date') то это грустно
>>867611 (OP)У меня только один вопрос к вам: как в эпоху CamelCase можно писать на этом уебищном snake_petuhcase?
>>873752Честно тебе отвечу: Да. Теперь можешь уходить
>>873749там в настройках импорт тем вроде был>>873746в оправдание виму - не видел ни одного аддона для неVim-редакторов где вимовские возможности не были бы порезаны до безобразия. IdeaVim, насколько помню, не могла в именованные буферы обмена.
>>873753Почему ваша PyCharm называется не py_charm?
>>873756потому что классы у нас принято писать camelcase, а вот запустив - инстанциировав иде, ты получишь объект который у нас принято писать py_charm
>>873756еще вопросы?
>>873760Бочку делаешь?
>>873762что то ты быстро, жаль.
>>873763Это не я.Не испытываешь чувство фрустрации от перекатов с CodeStyle на code_style?Вы ведь в джанге так или иначе с js-кой сталкиваетесь. И такая чехорда получается
>>873771Мне питон нужен, но не могу себя мотивировать из-за этого ебанутого PEP 8. Как вижу код в snakepidor_case хочется плакать
>>873771фрустрации испытываю, но не от codestyle, а от переката с питона джс, прям могу минуту втуплять если только за работу.
Есть одна строка. В ней названия файлов (хуйнянейм.расширение). Среди них есть .webm и .jpg . Как мне удалить названия всех файлов в формате jpg(с расширением офк)?
>>873830если в строке кроме названий файлов ничего нет, то разбить строку на список файлов и пройтись по списку циклом, иначе import re
Питоняши, помогите джангу понять:Разбираюсь сейчас с Django by example и дошел до корзин и сессий.В settings добавляеся ключ корзины, по которому ее потом будут искать> CART_SESSION_ID = 'cart'Сама корзина или создается или извлекается из текущей сессии таким образом:> def __init__(self, request):> self.session = request.session> cart = self.session.get(settings.CART_SESSION_ID)> if not cart:> cart = self.session[settings.CART_SESSION_ID] = {}> self.cart = cartИ вот я совсем не понимаю, как это работает. settings.CART_SESSION_ID появляется со значением по умлочанию 'cart' во время сессии? Но тогда if not cart не работало бы. Если бы в настройках этой строки не было - тогда бы еще понятно, но она есть.
>>873747Ну смотри по ситуации.
>>873898По-моему тут просто дурацкие названия ключей и переменных.CART_SESSION_ID - это никакой не ID сессии корзины, это ключ, под которым в сессии хранится корзина. Я бы его назвал SESSION_CART просто. Вместо него можно везде использовать просто строку 'cart' - self.session.get('cart')>cart = self.session.get(settings.SESSION_CART)Получаем из сессии данные, хранящиеся под ключом SESSION_CART и помещаем их в переменную cart>if not cart:Если данных в сессии нет,>cart = self.session[settings.SESSION_CART] = {}инициализируем их там пустым словарем
Ананасики, помогите ньюфагу. Есть кусок говнокода:import emailimport imaplibserver = "imap.mail.ru"port = "993"login = "Erohin@mail.ru"password = "moms_lover"imaplib.Debug = 4get_mail = imaplib.IMAP4_SSL(server, port)get_mail.login(login, password)get_mail.select('INBOX', readonly=True)typ, data = get_mail.search(None, 'UNSEEN')for i in data[0].split(): typ, data = get_mail.fetch(i, '(RFC822)') print(data[0][1]) msg = email.message_from_bytes(data[0][1]) print(msg.get_payload(0))get_mail.close()get_mail.logout()Ищем непрочитанные письма. На выходе получаем:Content-Type: text/plain; charset=UTF-8Tvoya mamka u menyaКак получить только сообщение, без "Content-Type: text/plain; charset=UTF-8" и пробелов?У всех походу проблемы с отправкой, потому что о получении ничего нигде нету. Один я такой идиот, чтоли? Хотя, мама говорит, что я самый умный и красивый.
>>873989засранец, код на пастебин залей, потом ссыль вбрасывай на свое поделие. А эту хуйню неотформатированную уноси отсюда.
>>873997там кода три строчки
>>874000http://pastebin.com/x3wB9gJ0
>>873973Спасибо, кажется я таки понял:CART_SESSION_ID = 'cart' вообще можно было не писать, а сделано просто для безопасности/конвенции/хуй пойми чего. Но зачем было городить такую ссылку названия переменной, если можно было просто self.session.get('cart') написать?
>>874008Можешь везде self.session.get('cart') писать, но учти, что в приличные дома тебя будут пускать только через черный ход и не далее угольного подвала и септика. При случайной встрече на улице джентльмены будут глядеть на тебя с презрением, а дамы - морщить носики и перебегать на другую сторону улицы. Потому что размазывать ключи-строки по всему коду это дурной тон.
>>874015Так а как правильно делать? Насколько я понимаю, self.session.get('cart') == self.session.get(settings.SESSION_CART). Чем второе лучше, тем, что переменная-имя хранится в settings и ее можно поменять/найти?И еще вопрос, каким образом приличные господа организуют оплату в своих магазинах? Делать по django-paypal учебный проект конечно интересно, но лучше что-то попрактичнее под рубли выбрать.
>>874019Яндекс кассу погляди
Немного переписал -> >>873989http://pastebin.com/sDr2pYbsТеперь на выходе получаем:Tvoya mamka u menya>>> - \r\n в конце. Если передать это дело в скписок, то получим:['Tvoya mamka u menya\r\n']Как избавиться от \r\n? Помогите пожалуйста.
>>874031Пока пришло в голову только добавитьtxt_msg = part.get_payload().split('\r\n')Что скажете?
>>874033Говно. Почитай доки, там наверняка есть какой-нибудь no headers request или еще что-то.
>>874033>txt_msg = part.get_payload().strip('\n').strip('\r')
>>874037А strip('\r\n') религия не позволяет?
>>874033>>874037>>874042Долбоебы, читайте документацию встроенных функций и не городите костыли>>> 'Tvoya mamka u menya\r\n'.rstrip()'Tvoya mamka u menya'rstrip без параметров уберет вам все пробельные символы справа
>>874033а split вообще совсем для другого, он разбивает строку на части, используя в качестве разделителя то, шо ты ему передал в виде параметра. На выходе у тебя будет не обрезанная мамка, а список из 2 элементов - мамки и пустой строки
>>874049А вдруг ему нужны '\t ' и т.п.?
>>874051сплит тоже можно использовать, например для убирания лишних пробелов:gde_mamka = ' '.join('Tvoya mamka u menya\r\n'.split(' ')).rstrip()
>>874058сука абу убрал лишние пробелы в Tvoya mamka u menya, вот опять! видели видели!?
>>874058ой не, не так, вот так:gde_mamka = ' '.join([s for s in 'Tvoya mamka u menya\r\n'.rstrip().split(' ') if len(s)])
item = {'x':1, 'y':0, 'z':-1}choice = input('Ur choice: ')print (item.get(choice))Что я делаю не так? Хочу вывести значение ключа, пишет ошибку. Сижу в интерпретаторе на телефоне, значение ошибки не указывает. Следом ещё один вопрос. Поскольку значение ключа в цифрах, сработает ли мой цикл или я не правильно понимаю? :for i in item:if i.get(choiceтут я ввожу х) > 0:return ('mat ebal') Как вобще можно реализовать вывод через инпут ключа словаря? Я тотали ньюфаг.
>>874055>А вдруг ему нужны '\t ' и т.п.?>>874031>Как избавиться от \r\n? Помогите пожалуйста.шо спросили - то ответил, условий не было.Если надо убирать ТОЛЬКО \r\n - ну ок, передай их в виде параметров в rstrip при чем в любой последовательности>>> 'Tvoya mamka u menya\r\n'.rstrip('\n\r')'Tvoya mamka u menya'>>874058>для убирания лишних пробелов:а почему не использовать для этого .replace(' ', '')?я понимаю, шо одни вещи можно выразить через другие, но нахуя ж так усложнять?
>>874061что выводит это?:item = {'x':1, 'y':0, 'z':-1}choice = input('Ur choice: ')print(str(choice))
>>874062а хуй знает, всегда так делаю)
>>874062погоди, реплейсом же ты все пробелы нахуй уберешь, а надо лишние
Господа, помогите нубуОсваиваю asyncio и вот делема то, почему то асинхронный код дольше чем синхронный выполняется, почему так?Расскажите за всю хуйню пожалуйста, что я сделал не так?http://pastebin.com/Fiwx9cSg
>>874063No output Хуй его знает, я через приложение сижу на телефоне. Через комп не проверить.
>>874065>погоди, реплейсом же ты все пробелы нахуй уберешь, а надо лишниеда, это я затупил, чистым реплейсом походу не сделать, нашел вот такой красивый способ' '.join(mystring.split())>>> mystring = 'Tvoya mamka u menya\r\n'>>> ' '.join(mystring.split())'Tvoya mamka u menya'
>>874068вот так попробуйchoice = raw_input('Ur choice: ')
>>874066Да вроде всё так:$ python3 tmp.py 5.930094718933105560.197266817092896
>>874071Попробую, спасибо. А в целом я правильно рассуждаю касательно цикла и ввода?
>>874073ну да там все правильно кроме того что он твой ввод что то не видит
>>874072У меня, почему-то выдавал так:1913
Сделал таким образом:txt_msg = part.get_payload().split('\r\n') - делим по \r\nmylist = list(filter(bool, txt_msg)) - создаем новый список из мамок без пробелов и всего дерьма.Что скажете?
>>874079это довольно трудночитаемый и неочевидный способ с возможностью выстрелить себе в ногузачем ты делишь по \r\n, если ты хочешь его обрезать?чем тебя не устраивает rstrip() для обрезки всех любых пробельных символов справа или rstrip(\n\r) для обрезки конкретно всех \n и \r справа?
Пишу небольшой консольный файловый менеджер, типа Far'а. Я поехавший?
>>874079Вот эта простая хуйня обрежет все потроха справа и заменит все лишние пробелы на один пробел>>> mystring = 'Tvoya mamka u menya\r\n'>>> ' '.join(mystring.rstrip().split())'Tvoya mamka u menya'
>>874097Какой виджет-фреймворк?
>>874100Обычная консоль Windows, использую небольшую библиотеку Colorama для цветового оформления.
Кстати, хочу всем посоветовать серию внезапно адекватных лекций по Пиздону. Я хоть и писал уже кой-чего, но почерпнул много новых юз-кейсов даже из самых первых лекций, то есть, чел рассказывает не азы азов для зеленых нубов, а жизненные вещи и всякие неочевидности. И лектор не аутист прыщавый.https://www.youtube.com/watch?v=H2IWHyum6k8
>>874097клево!
>>874126сегодня вот что попалось https://www.pythonsheets.com/notes/python-basic.html#define-a-function-doc
>>874097>Пишу небольшой консольный файловый менеджер, типа Far'а. Я поехавший? Дай исходники посмотреть, тогда решим, поехавший или нет.
Как вкатиться в django?
>>874335
>>874351Книга Дронова несет хоть какую-то поленость на фоне two scoops? Про что в Lightweight django?
>>874370Качай и смотри.
Есть одни курсы. Soft Group в Украине. Предлагают два месяца бесплатных курсов (питон, например), с последующим трудоустройством. Какие подводные камни?
>>874394 * - 2 месяца бесплатных курсов будут предоставлены после оплаты шестилетних курсов - помощь в трудоустройстве после успешного поиска, собеседования и подаче документов работодателю абитуриентом (предоставляется фирменая ручка для заполнения трудовой)
Привет анона, я тупой. Чем больше читаю про cython, тем меньше понимаю. Объясните что это за зверь, и как его готовить
Перекатываться будем?
>>874551Только если в шапку добавишь мой вопрос >>874530
>>874551давай, вот новая пикча
ПЕРЕКАТПЕРЕКАТПЕРЕКАТ>>874631 (OP)
>>874019Sexy Pattycake
Анон, подскажи тему для диплома. Хочу на питоне написать