24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
>>1176187 (OP) Дублирую из прошлого треда, так как оп-пидор так и не ответил почему я должен выбирать vscode вместо pycharm, ведь
1)полная инспекция любой либы 2)тонко настраиваемая подсветка на любой случай, включая проверку совместимости кода для разных версий питона 2)удобный дебагер и профайлер 3)вызов докстрингов по клику на любой функции 4)интеграция со всеми возможными системами контроля версий с удобным разрешением конфликтов 5)диаграммы для асинхронного кода 6)подключение к базе данных 7)Подсветка и автокомплит для шаблонизаторов фреймворков, да и вообще интеграция с фреймворками 8)Настройка конфигов для тестов c сохранением истории и вызовом прогона отдельного теста одним кликом 9)Плагины на любой вкус Ну ладно, это и в вскоде есть 10)Деплой на удаленный сервер 11)Интеграция с докером
Это то, чем я пользовался в последнее время, все из коробки
>>1176187 (OP) Освоился с азами Питона, начал потихоньку вкатываться в PyQt5. И это просто пиздец, какой же он безумно сложный. Нормальных мануалов нет, приходится выискивать информацию по крупице, и не везде поясняют, что за что отвечает. Но что самое непонятное: почему импорт вида import PyQt5 или from PyQt5 import PyQt5.QtWidgets не работает, блять. Только так, как указано в примере, и никак иначе. В противном случае not defined.
>>1176312 >import PyQt5 Это просто общий пакет для либы, там на самом деле сишный код, гугли как реализуются сишные вставки в питон >from PyQt5 import PyQt5.QtWidgets При инструкции from import, после import должен указываться один атрибут, без вызовов
>>1176321 Устанавливал через пакетный файл. Код, приложенный выше, работает. Не работает он, если написать так, как учили в основах импорта. >>1176331 Ухх, бля, он еще и сажицу прилепил, ухх, вот это вдавил, да, что же делать...
>>1176353 Я здесь >>1176312 указал правильный импорт. Он все равно не работает. Алсо не работает import PyQt5.QtWidgets, хотя import os.path работает прекрасно.
>>1176354 >как учили в основах импорта >import os.path Где тебя такому учили? Тебе все равно придется писать os.path для выполнения функции Либо import os, а потом делаешь os.path.функция Либо from os import path, а потом path.функция Хуйню какую-то вычитал и рад
>>1176359 Ты код выше-то попробуй вызвать с таким импортом, дощечка. >>1176363 Здесь в любом случае не работает никакой иной импорт, кроме как указанный на скрине.
Аноны, вот вы мне поясните, чому отказывается Джанго валидировать форму с файлом? Там ещё передаётся куча полей, но в том числе и нужное. В качестве ошибки выдаёт > <ul class="errorlist"><li>file_file<ul class="errorlist"><li>This field is required.</li></ul></li></ul> Передаю всё как нужно > NewFileForm(request.POST, request.FILES) Но даже в request.FILES выводится пустой словарь. Уже всю голову поломал, какого хуя оно так работает. По факту у меня сейчас так: Есть одна большая форма и выпадающее в ней меню, там я выбираю дополнительную форму для отображения и того выводится большая форма + одна из выбранных дополнительных(остальные спрятаны и required=false). Я может неправильно спроектировал всё, но большая форма валидируется, а вот малые, если в них есть загрузка файла - нет.
>>1176231 все тоже самое есть во вскоде ТОЛЬКО ЛУЧШЕ! ну серьезно, щас функционал +/- везде одинаковый, у меня стоковый блокнот как сабляйм без плагинов, но вот вся суть она в мелочах, и вскод просто настолько хорош насколько вообще возможно, это единственный редактор в котором меня ничегоне раздражает и со мной солидарна треть глобуса
Пытаюсь разобраться в SQLAlchemy и вообще в БД. Есть XML-дамп (размером несколько гигабайт, ~10кк записей) одной базы. Я написал генератор который парсит этот XML поочередно возвращая распарсенные записи (в виде диктов, но это не важно). И мне нужно перенести их все в БД. Сначала написал примерно такое:
session = Session() for parsed in iter_xml(): ....row = SomeModelClass(<ЗВЁЗДОЧКА><ЗВЁЗДОЧКА>parsed) ....session.add(row) ....session.commit() session.close()
Но выполнялось это медленно. Заменил "....session.commit()" на: ....if (len(session.new) > N): ........session.commit() Попробовал разные N, вроде быстрее всего с N = 100.
Я всё правильно делаю? Просто я думал SQLAlchemy как-нибудь сам может решать когда ему эффективнее коммитить.
>>1172859 Так, ну я померял примерное время которое в среднем уходит на обработку 1000 записей ДБ. (Включая парсинг XML.) Если коммитить по одной записи - ~2.225с. Если по коммитить по 100 записей - ~0.613с. В ~4 раза быстрее.
Котаны, стоит ли уходить с джавы на python и заниматься bigdata? Очень много вакансий появилось, да и вообще питон нравитсяписал на нем как-то вк бота. Или забить хуй и ебашить на джаве дальше?
>>1176625 биг дата это не есть питон. это сложная наука. Но если есть время и ты по джаве уже всё могёшь, то скриптовой язык это однозначно то что стоит учить. Как минимум будешь уверенней прогать на джаве, так как он покажет тебе джаву со стороны и вообще разовьешься как погромист.
Можно отобразить картинку с помощью matplotlib, если я не использую jupiter notebook?
То есть, у меня обычный .py файл с кодом, который я запускаю в PyCharm. Когда вызывается plt.imshow() ничего не происходит. Можно ведь как-то научить matplotlib открывать новое окно с выводом графики?
>>1176722 >все туторы на ютубе Пиздец, пока эти аутисты говорят что-то, можно прочитать в 5 раз больше, не понимаю, зачем это вообще нужно, есть лутц, который каждую деталь разжевывает
Как начать кодить? Ну просо начать. Я уже проработал проект субд для набития руки, осталось только переписать всё на комплюхтерн. Но никак не могу выбрать время чтобы просто сесть и сделать. Да, у меня был опыт неудачного программирования, после которого я забивал хуй и брался дальше учить
>>1176805 вики вики. я оттуда узнал ровно 0 полезной хуйни. А нет брешу 1 вещь мне действительно помогла - наглядное объяснение радиана в круге. Ну и по истории в свое время знатно попутешествовал. А всякие технические вещи я даже не знаю для кого там написаны. Полагаю для людей которые и так всё это знают.
>>1176828 ну вот блять и что делать если тебе нужно решить простецкую задачу, ебать толмуды не стоит, а щипнуть инфу где то надо, вот как мудак и скачешь по стаковерфлоу и прочим подворотням
хотя у луца вроде есть справочник, надо бы его открыть для себя что ле
>объяснение радиана в круге кстати всегда было интересно чому никто не догадаляс использовать градусы? как то посмотрел на код аналоговых часиков охуел и так везде причем
вообще не вижу ничего плохого в стекоферфлоу. Иногда там есть вещи которые незадокументированы нигде, так как разрабы просто поленились/неуспели/забили написать доки а какие-нибудь буржуйские задроты раздраконили эту поеботу и с любовью записали своё открытие. И при плотной работе просто нет времени шарится по документам и просто тупо копипастишь оттуда. Хуле такого-то? Невозможно всё знать.
>>1176889 В настройках пайчарма сделай автоформатирование и подсветку синтаксиса так, как тебе удобно/привычно(руководствуясь пеп8 и прочими, есесно). Тогда не будет так отсвечивать.
аааааааааааааааааааа бляяяяяя Кто хочет помочь вкатывальщику - привет. ну, другие вкатывальщики тоже могут прочитать этот пост. посмотреть на мою реализацию, подумать как они бы это сделали Это я в прошлом треде сделал нахуй никому не нужную утилиту по поиску самого большого файла на пк с распараллеливанием на процессы. После чего мне сказали сделать поиск n самых больших файлов и сделать распараллеливание на треды и без параллелей вообще. Вот результаты моих трудов: https://repl.it/@JanWhite/VeneratedQualifiedDefinitions Content.py содержит все штуки классы/функции, которые используются во всех реализациях программы. multi\thread_tot\per это реализации с процессами\тредами, где задается число процессов\тредов вообще\на каждый жд, tester управляет всем этим, чтобы померить скорости, и plain отдельно тестит линейную версию программы потому что она не укладывается в общий вложенный цикл в tester'е. И пикрелейтид ещё. А теперь в общем вопросы, на которые я буду рад получить ответы: 0) Как код вообще? Говно или нормально? Разделил все на 200 модулей, классы, функции, накидал комментарии и докстринги. 1) Почему в multiprocessing так важно делать if __name__ == "__main__" ? Я понимаю, что на линуксах используется вилка и там это нужно, чтобы отделить порождающий процесс от дочернего. Но почему без этого if'а все падает даже у меня на Шинде? multiprocessing же у меня вызывает обычный subprocess, для которого этот if не важен вообще. 2) Че блять не так с timeit? Видно, что в обоих тестах я как еблан выделаю жесткий диск кстати я проверял только на нем а не на всем пк потому что иначе это заняло бы все где то вечность. и так полтора часа все проверялось в отдельную переменную-лист и только потом отдаю timeit.timeit. А все из-за того, что происходит на второй картинке. Если в строку stmt будут входить другие строки как угодно, с \', с \", тройные блять """yevblo("hui")""", он обваливается с этой ошибкой. Как не старался, обойти не смог. Что это такое? 3) Как делать пакеты? Нагуглил только кучу всего с setup.py для того, чтобы можно было мой говнокод ставить через pip, но я хотел просто 4 первых import'a из тестера превратить в один. Положил все реализации вместе с Content в Versions папку, и нихуя. Если делать import Versions, то Versions.mult_tot для примера и другие просто не будут работать т.к. они не атрибуты Versions. Если кинуть в ту папку __init__.py и в ней определить __all__, то можно будет импортировать как from Versions import *, но ни одна из реализаций не будет видеть Content, который они все импортируют, хотя он лежит там же, в Versions. Так и не смог с этим разобраться, забил, и скинул все в одну кучу как мудак. 4) Ну и самый важный вопрос: ЧЕ БЛЯ ЗА ХУЙНЯ Я что, 20 часов писал эти threading и multiprocessing, чтобы обычный линейный код был в 3\6 раз быстрее? Как так то? И почему треды быстрее процессов? Я думал все будет с точностью наоборот: процессы > быстрее треды > линейная хуйня. Почему все наоборот? ухх я буст морали получил от созерцания своего говнокода в оп-посте
... когда надо питонку гонять параллельно, т.к. потоки будут блокироваться на GIL. I\O на GIL не блокируется, потому что это сишная часть и она потокобезопасна. Не имеет никакого значения, много данных или мало, питонка в двух потоках исполняться НЕ-МО-ЖЕТ. Это уже несколько раз объясняли.
Код говно. Но это нормально. Со временем научишься не писать говно.
>Почему в multiprocessing так важно делать if __name__ == "__main__" ? Я понимаю, что на линуксах используется вилка и там это нужно, чтобы отделить порождающий процесс от дочернего. Но
Никакого отношения к вилкам и дочерним процессам не имеет. Делается для того, чтобы ты случайно не выполнил top-level код модуля при импорте (поэтому он в функции main), чтобы ты мог выполнить его произвольное количество раз, а не только при импорте. if __name__ == - это чтобы твой модуль мог работать как скрипт в вызове python -m, ну например как python -m http.server 8080
> 3) Как делать пакеты? Нагуглил только кучу всего с setup.py для того, чтобы можно было мой говнокод ставить через pip, но я хотел просто 4 первых import'a из тестера превратить в один.
Тебе не пакеты надо, в смысле, пакеты, но не те. Тебе надо организовать свой модуль правильно, у тебя щас вообще нет модуля.
> Я что, 20 часов писал эти threading и multiprocessing, чтобы обычный линейный код был в 3\6 раз быстрее? Как так то? И почему треды быстрее процессов?
Да, потоки быстрее процессов, это закономерно. Линейный код быстрее, потому что а) ты проебался в многопоточке где-то и б) питон использует одно ядро, на одном ядре потоки медленнее линейного кода
анон из прошлого треда помог мне в довольно истеричной форме, но все же и когда я зареквестил каменты к когду за благодарочку в 5 баксов - он потерялся
в коде я кое-как разобрался, ну и захотелось таки отблагодарить как то онончика, код реально топовый, все дико по ооп сделано, прям по красоте
>Никакого отношения к вилкам и дочерним процессам не имеет. Нет, я понимаю, что такой if делают, чтобы можно было и импортировать и запускать его как самостоятельный скрипт. Но вот есть tester.py, который я хочу просто запустить, чтобы померить скорость, и не собираюсь никогда в жизни вообще импортировать. И в нем пришлось все равно сделать if __name__=.. т.к. иначе он вываливался с RunTime ошибкой во время теста версий с multiprocessing. Вот я и не понимаю, почему это так важно.
>Тебе надо организовать свой модуль правильно Я это знаю. Я спрашиваю как это сделать. >у тебя щас вообще нет модуля. >A module is a file containing Python definitions and statements. У меня 7 модулей: контент, 4 версии, тестер, и тестер линейного кода.
> ты проебался в многопоточке где-то Где? >питон использует одно ядро Про то, что Питон позволяет выполняться только одному потоку слышал, про ядро слышу впервые.
Так, поднял виртуалку с одним приложением, там скрипта для запуска всех нужных служб и так далее, проект на джанге. Там есть nginx, скорее всего с этими настройками https://github.com/dunbarcyber/cyphondock/blob/master/config-COPYME/nginx/nginx.conf как мне собственно запустить проект, запускаю через python manage.py runserver пишет что 8000 занят, выбираю 8001, захожу по адресу своей виртуалки, запускается возвращается 400. Подскажите как работает этот nginx, куда заходить?
Доделал бота с курсами англюсика на питонусе. Залил на хостинг, таки первый мой проект готов. Буду ебошить следующий никому ненужный проект почитывая книжки. Собираюсь плагин для kodi написать чтобы смотреть онеме с сабами типа аггрегатор с фансабовских сайтов. Вот сам бот если вдруг кому интересно: @English_by_hoge_bot
Почему в первом случае два вторых Lable делают новую строку и идут в нее (то, что я хочу), а во втором последний Label лезет в первую строку, а не делает вторую?
Вечер в серпентарий. Смиренно прошу помощи у анонов, нужно по-быстрому сделать скрипт, а я не особо понял, какой метод нужно использовать. Суть проблемы: скрипт должен открывать файл на 100500 строк и раз в N строк дописывать определённую фразу. Каким методом смещать указатель для записи того, что я хочу? Сначала делаю f.open(), потом что?
>>1177502 Хотя даже не так. Я понимаю, что первый Label занимает левую часть свободного окна, второй правую от остатка, и последнему остается серединка. Как заставить первые два labla поделить между собой верхнюю часть экрана на 2 половинки? Или без Frame'а, делящего экран на верхнюю и нижнюю часть я нахуй могу идти?
>>1177496 тут дело в том, что цигвин тоже не первой свежести ставится, соответственно репы свежего цигвина не подойдут, как и находящиеся там пакеты. но жить в этом окружении какбэ можно и иногда даже нужно минигайд -> https://pastebin.com/pyyHRa7R
>>1177506 Извини, бро, я не программист, просто по работе бывает нужно сделать какую-нибудь такую хуйню. Спасибо, что заморочился и написал мне скрипт с двумя ёблами.
>>1176187 (OP) посоны, изучаю ткинтер, не смог понять, как сделать следующее: я ввожу два числа, а он мне по этим двум числам в новом окне создает какое то количество, зависящее от введенных двух чисел, виджетов ввода (ну куда чето ввести можно) собственно не смог только сгенерировать виджеты ввода
Это я тебе на двачах пояснить не смогу. С практикой придет. Читай код в популярных проектах для начала.
> RunTime ошибкой во время теста версий с multiprocessing. Вот я и не понимаю, почему это так важно.
Потому что его так multiprocessing стартует. Я твой код внимательно не смотрел, но вроде бы других причин нет. Ну и если ты модуль не собираешься делать исполняемым - это можно не делать
> Я это знаю. Я спрашиваю как это сделать. У меня 7 модулей: контент, 4 версии, тестер, и тестер линейного кода.
Надо убрать это в пакет (который родственник модуля): создать директорию, перенести туда эти файлы, добавить __init__.py, в который вытянуть импортами классы из подмодулей, будет что-то типа
__init__.py
from .tester import Tester
И надо будет разобраться, кто кого импортирует. Желательно переделать так, чтобы импорты были иерархические, а не перекрестные, а то рано или поздно наткнешься на циркулярные импорты.
>Где? Не знаю, надо дебажить.
> Про то, что Питон позволяет выполняться только одному потоку слышал, про ядро слышу впервые.
Почитай про GIL. Ну и про многопоточность взагали.
Анон, насколько важно уметь писать чистые sql запросы? Что важнее уметь, это или работать с ORM? Сейчас делаю приложение, тк по мнению многих это лучший способ научиться, но встала проблема такая: Ты изучаешь только то что нужно вот для приложения. SELECT PEK FROM kek, и тому подобное. Чтото ведь обязательно останется непознанным, оче боюсь
>>1177627 Важно и то и то, как по мне, в работе всякое может пригодиться. Я вот начинал все на чистом СКЛ, и очень долго даже не трогал алхимию. Да и тебе будет гораздо проще понять что делается командой в ОРМке, т.к. к ней всегда идет аналог на СКЛе. П.с. В принципе и основ СКЛя хватает, ты же не эксперт по БД и не собираешься писать логику на СКЛе. Я СКЛ учил по документации постгреса(до этого вообще БД никогда не трогал), было больно, но потом все понял.
>>1177638 Спасибо, тоже также буду наверное делать. Алсо, не можешь наставить на путь истинный. У меня есть задача реализовать поиск например товаров. Есть страница с поиском, там есть форма. Для этого нужно использовать как-то LIKE по всем полям?
>>1177642 Да, не как-то, а вполне себе конкретно. Делаешь iLIKE по каждому полю и потом выводишь либо квэрисэт общий для всех полей(сет1 | сет2 | сет3), либо выводишь все уникальные элементы из каждого квэрисэта в один большой. Это если поля схожи и тестовые, типа "название товра"/"описание товара" и ты по ним ищешь, а если поля вполне себе с датами/суммами/Boolean - юзай 'filter'.
>>1177687 Юзай ай-лайк, это интеллектуальный поиск, он ищет немного иначе. Надеюсь ты постгрес юзаешь. В принципе, твой поиск жизнеспособен, но проверь его на реальных данных. Единственное что, странно ты запихнул и год и название и isbn в один запрос, но хуй знает какие у тебя реальные данные, так что хз, тести и анализируй. Я тебе привел рабочий пример с ОРМкой.
>>1177697 Да, у меня постгрес. Год и исбн я запиздячил в балицу как VARCHAR, но сам понимаю что это говно. Просто не знаю пока как лучше сделать поиск, отдельно для цифр и строк или оставить как есть. Спасибке еще раз.
>>1177700 Как делаю я обычно на джанге: Обычная строка поиска ищет по названию/описанию, затем юзера кидает на страницу с поиском и тут уже идет куча необязательных доп.параметров. Если юзер параметр заполнил - ищем по нему, если нет - записываем пустой квэрисэт, и так для всех полей, затем результат всех полей через | проверяем и выбираем нужное. Как я уже и сказал, твое может работает, ты главное оттести.
Анон хочу попробовать написать плагин для kodi. Так вот, сейчас он использует 2.7 питон, я до этого момента учил 3~. Но при гуглении на эту тему встретилось словосочетание python 2-3 compatible code. Это значит что с помощью каких-то либ можно сесть на два стула и писать на 3 питоне, но код будет работать и на 2? Как гуглить в общем эту тему, подскажи теги, анон.
Анон смотрю видео про парсинг, автор использует %d там, где я бы использовал format. Это модуль какой-то или встроенная функция питон? Пока на такое не натыкался.
Привет. Есть тут люди хорошо знающие пхп и кодящие на пистоне?
Стоит ли учить PYTHON? Дело в том что пых я знаю хорошо, а окромя его ничего и не знаю. Питон вроде как посолидней, чем он лучше?
Есть необходимость написать бота, который бы распарсил mp3 теги моих песенок, создал бы описания альбомам групп, поархивировал, позаливал на яндекс диск и вместе со ссылками, описанием, обложками и пр позаливал бы на мой говносайтик.
На пхп на изи напишу, но подумал учить этот ваш пайтон и попытаться реализовать задуманное на нем. Вот на этом примере чем он может быть лучше пхп? Чем он вообще лучше?
>>1177901 Тем, что это настоящий язык прграммирования и тут тебе никто не даст ярлычёк с сервером и не раскидает шаблоны. Алсо если ты хочешь учить пайтон, то должен понимать, что пыху можно сравнить разве что с шаблонизаторами для фреймворка.
>>1177906 Ну это все абстракции ты говоришь. Мне похуй настоящий/не настоящий. Критерий - практичность, решаемость задач и пр. Конкретику подавай в общем, это меня интересует
>>1177906 >Алсо если ты хочешь учить пайтон, то должен понимать, что пыху можно сравнить разве что с шаблонизаторами для фреймворка. Мы ван перезвоним.
>>1177854 Нихуя не верный. Путь относительный, хуй его знает, какой текущий каталог у интерпретатора в момент запуска, особенно в ебаной винде, и особенно при запуске через ебаный "праваднiк" или как он там щас... Полный путь указывай
В общем, какой-то анон где-то спрашивал, как сделать так, чтобы спавнилось количество виджетов, зависящих от введенного пользователем числа. Может здесь, может не здесь, но вот мой ответ: https://repl.it/@JanWhite/DarkvioletLivelyTechnician
А у меня вопрос по ткинтеру вообще. Хороший ли код, который я написал? Почему то в обоих учебниках, что я пока прочитал, при подходе к ткинтеру начинается использование глобальных переменных. А мне это нихера не нравится. Мне нравится идея отдельных скоупов. И мне совсем не нравится, когда какая-то функция вылезает из своего скоупа и делает что-то за его пределами. Так что вот я так все явно решил передавать туда-сюда. Немного больше кода, но зато никакой неявной хуйни "стоп, а эта величина не определена в этой функции, а откуда она вообще взялась". Так хорошо? Или нелюбовь к глобальным переменным это болезнь и надо фикситьампутацией головы?
Существует библиотека Python.h, которая позволяет вставлять в C++ Python код. Выходит, можно, к примеру, запрограммировать Arduino на Python? Да, знаю, я отбитый.
Анон хочу написать парсер. Подскажи какой минимум знания HTML нужен (и чего там ещё), чтобы снизить количество проблем, когда я попытаюсь с разбега взять эту высоту? Может статейку краткую или видео по основам, которые прям маст хэв?
>>1178196 В том, что питону требуется интерпретатор. Питон сам по себе магически в машинный код нужной архитектуры не скомпилируется от того, что ты хедер в си-код вставишь. К тому же, интерпретатор тебе не для x86 или арма нужен, а для микроконтроллера, в частности atmel avr'а. И даже если бы ты его скомпилировал, нихуя бы не влезло в память мк. Учи си, короче, или малинки и апельсинки Pi покупай.
Тем не менее, урезанные версии существуют, вроде https://wiki.python.org/moin/PyMite Остальное в гугли можешь найти или нет, потому что искать не будешь.
>>1178210 orange pi и raspberry pi и ещё аналоги какие-то есть. Потому что это полноценные маленькие компьютеры, с ARM процессорами и линуксом, "нормальным" количеством памяти и т.д.
Думаю для практики написать простенькую прожку которая бы ставила лойсы в разделах с лойсами на двоще, идя по списку прокси. Какие библиотечки стоит покурить?
Как сука подкьючить pyuno/ библиотеку из опен/либре офиса под шиндовс? Блядь моя жопа сейчас сгорит нахуй. Под линухом это делается одной строчкой. Под виндоус надо же скриптом переебывать системные пеиеменные путей. Те скрипты что брал на англоязычных ресурсах не работают. Или введу плохого знания англицского, или общего скудоумия. Может кто то сталкивался с это хуйней? Напишите коротенький гайд для дауна?
>>1178270 Что значит одно и то же? Pickle сериализует объект, превращает его в потом байтов. json — это обычный текст. Текст, превращённый в байты, если содержит только латинские буквы, примерно текстом же и останется, плюс хедеры/трейлеры самого пикла. Тебе что не так-то вообще, что ты хочешь сделать? pickle.loads(pickle.dumps(tvoy_json)) выдаёт оригинальный объект? Если да, то pickle'а сделана, всё идёт как надо.
>>1178275 >что бы в файле была полная каша Ну так и пользуйся криптографическими либами тогда, вроде https://cryptography.io/en/latest/ , пикл-то тут при чём? С чего ты его вообще использовать решил?
>>1178279 > С чего ты его вообще использовать решил? Потому что это самое первое в этом плане, с чем я познакомился. Я всякие объекты пихал в него, там и правда было все нечитабельно, а сейчас столкнулся с джейсоном и все. Спасибо, гляну.
https://github.com/orsinium/rutimeparser - RuTimeParser Данный модуль содержит базовый класс и упрощающие работу с ним функции для извлечения даты и времени из текста на русском языке.
>>1178336 >os.walk тащемта я так и делал вначале, но потом пришел анон и переибал все по своему
у меня были трудности что он выдавал мне разные списки, ну т.е инстанс отдельный списочный бля и я не понял как это склеить в один
а так то да, мне тоже кажется что это куда проще, ты тупо прогуливаешь по всему нахуй корню, получаешь все файлы и уже их итерабильным путем отсеиваешь, с другой стороны ты ведь так пройобываеешь адрес
кароче я ща попробую ту опртянку закоменитить что бы лучше понять как надо хранить данны переменых, а то пока в голове не работает
>вызов стандартной функции это какой?
>Велосипеды - это верный признак хуевого знания stdlib поясни я чет недогнал, олсо он хантил :3
не могу принять по сокету сообщение больше чем 8192 по длинне. Возможно ли где нить настроить буфер чтоб можно было по пол метра и больше принимать за раз? Или надо пилить геморное разделения пакетов на такие маленькие куски?
В первом классе есть метод. Во втором классе тоже есть метод, который вызывает метод из первого класса. Пока понятно? Едем дальше.
Как заставить метод из первого класса поменять значение для инстанса из второго класса? Другими словами, как отправить в первый класс имя инстанса? __name__, очевидно, отдаёт имя класса Может декоратор какой есть или double underscore метод?
Интересует именно решение, которое поможет автоматически пропихнуть конкретный инстанс в другой класс.
>>1178408 Нет. Нужно вывести данные объектов, данных им при создании, вне зависимости от того, это st1 или st2. Пробовал self.name, несколько других вариантов – безуспешно.
>>1178408 В примере выше строка st1.funkciya("%выводимая_строка%") должна выводить %имя_объекта%: %выводимая строка% А, например, st2.funkciya("%выводимая_строка%") – %имя_второго_объекта%: %выводимая_строка%
>>1178336 >меняй велосипеды на os.listdir на вызов стандартной функции >меняй вызов стандартной функции os.listdir на вызов стандартной функции Че бля? мимо автор велосипеда
>>1178523 У тебя же в ошибке все написано. Ты пишешь логичную структуру, а потом внезапно съезжаешь с катушек и пишешь эту хуйню: >a = int(2) (где int вообще лишний, a = 2 по дефолту integer) >a.cache = [] т.е >2.cache = [] Что это? Естественно, он будет ругаться.
>>1178207 Анон, есть что-нибудь ультрагодное по шаблонам? Пытаюсь въехать в ООП и шаблоны, но идёт туго. Инфа преимущественно обобщающая, мне бы что-нибудь с примерами реальными и желательно на питоне. Хочу написать плагин для коди и на этом попрактиковаться в ООП и паттернах, но в голове каша.
Прошу помощи опять, джанго девочки внутри. Почему у меня UserCreationForm(request.POST) невалидная? В форме POST есть 'username' и 'password1', 'password2'. Это ещё один проёб в обратной совместимости, который они решили не упоминать в доках?
>>1178649 шаблоны дело годное тащемто берёшь любую книгу по шаблонам и читаешь в метро и вдохновляешься. Ищи просто шаблоны и паттерны ООП Можно конечно методом тыка до самому допереть. Но лучше почитать уже о изобретённом велосипеде. Как профит твои проекты будут так структкрированы что на них уже можно будет фапать еще не запуская. Мне лично очень импонирует секси кодик.
>>1178705 Это часто чревато желанием впихивать десятки ферм фабрик синглтонов там, где можно обойтись функцией в несколько строк. Был у нас один такой любитель создать 10000 файлов в каждом из которых один класс с геттером и сеттером
>>1178712 ну когда только учишься так и будет все равно общая тенденция в програмаче идет к упрощению. Ведь шаблоны нужны исключительно для того чтобы код был поддерживаемый. Но это понимание приходит не сразу. Для начала нужно накостылять тыщу файлов фабрик и хитровыебаных сетеров
>>1178705 Да просто хочу работать на портфолио. Типа чтобы было что будущему работодателю показать, типа я не быдлокодер, а интеллигент, кек. Ну а вообще первым проектом бота делал для телеги, и я настолько хуёво его написал, что если исправить что-то в одной функции то сразу появляется 10 новых ошибок. Это принесло много страданий, боли и проёбанного времени, поэтому учиться писать хорошо надо с самого начала, ящитаю
не могу переделать аноновский код, слишком рекурсивно для меня, когда вывод одной функции использует другая -- мой извилины просятся наружу, пробовал дебажить и ходить по шагам, но оно не взлетело
так что проще самому доделать как и хотел сразу
теперь у меня есть ринейм и ща приделаю создание папок, а потом копию в них
Помогите кто чем может! имеется задача: слепить классификатор тематики текстов на основе Байесовского классификатора, т.е на входе у проги текст, а на выходе - тема текста (лит-ра, научные темы, личное письмо, /b/). Есть идея взаимодействия с бд, где будут значения(темы) и ключи(ключевые слова, индивидуальные у каждой темы). Какой примерно должен быть алгоритм работы? и мб кто поделится советами. Заранее спасибо.
Планирую выучить питон + Джанго. Какие подводные камни? вообще учу для создания одного диплома, и, надеюсь, что эти знания могут понадобиться мне при следующем поиске работы в мухосранске - красноярске
>>1178870 >слишком рекурсивно для меня, когда вывод одной функции использует другая Мань, ты сейчас описал полную противоположность рекурсии, насколько только это было возможно.
>>1179011 да надо бы грузануть гигом жипежек, а то так неясно нихуя
>>1179016 >При рекурсии функция вызывает себя внутри себя. >new_filename = f.replace("-","_") >new_filename = "kml_" + new_filename >os.rename(f,new_filename) е е ай кнов, один хуй слишком сложна, особенно когда без каментов и не на одном экране
>>1179028 Да, я читал про это. Пиздец. Придётся всякую херню учить, сорт оф php и 1с битрикс Даже Java нет. Просто блять не верю. Как будто розовые очки слетели
>>1179028 >не надо учить питон, потому что потом не сможешь писать САЙТЫ ПОД КЛЮЧ за 20 тысяч в месяц Проигрунькал со статьи. Это троллинг такой? >2 года учил python, django и Cты-то куда лезиш, хуесосина >В итоге, не знает даже Flask Сренькнул с подливой.
>>1179028 >Получается ситуация, что можно изучить клевый язык программирования Python и остаться на улице уехать из мухосрани покорять столицу, с жильем яндекс\майл поможет, да и всегда можно модно молодежно прожить какое то время в хостеле. А можно выучить «ненавистный» php/1c и получить работу, кататься по говнам и впаривать 1ску тетям-сракам на пекарни инсталить, а потом править код за подпивасными васянами 1сникам\пыхарями. Качество этой работы, конечно же, оставляет много вопросов – но это уже опыт.
>>1179050 Можно подумать, в столицах дохуя требуются питонисты. В итоге получается именно так, что >Сразу идет большой отсев вакансий, где Python является исключительно вспомогательным языком
мамкины программисты, подскажите какой классификатор на питоне лучше использовать для соотнесения текстов к определенным темам? (нейронки не предлагать)
>>1179076 Очень сложно. Я делал классификатор байесово-решающего правила, но я извращенец, поэтому реализовал его js+ jQuery А тебе для чего, если не секрет? Ргз, диплом или работа?
>>1176187 (OP) А чё б не качнуть Anaconda Potrable - там много всякого вшито такого, чего не поставишь в Python Portable. Чего только стоит Sympy. 500 мегабайт весит вся анаконда.
>>1176187 (OP) Гайс нид хелп , пишу диплом для шараги на пайтоне ,суть в том что уменя уже есть UI к нему надо присабачить парсер сайтов , хотя бы для вики и хабра , подскажите советом есть ли способы получить текст с тегов сразу , про BeautifulSoup знаю , а что то что сразу дает текст есть ?
Как правильно изучать питон? Не могу составить программу.
Почитал самоучитель на орге, полистал документацию, прорешал Укус Питона, осилил 470 страниц изучаем питон лутца(такое чувство что это тупо переложение документации), дальше не пошло, состяпал пару парсеров, чуть допилил, поразбирал код ученических програмок с гита...
а дальше как? Может кто ни будь расписать за полноценную комплексную программу изучения Питона? И какая его реализация лучше, может сразу Cython изучать?
ps кроме того почитал первые 100 страниц sicp, вкатился по введения по трилогии Танембаумачто бы иметь представление ну и по вики пошарил.
ну а примерно? Мне интересно сетевое программирование. сокеты-хуёкиты, клиент-серверные приложения и тд. Есть примерный материал что бы в теме ориентироваться и мочь лавировать?
есть лист array = [1, 4, 0, 3, 0, 1] как сделать чтобы у него вместо цифр которые не 0 появились единички? resultarray = [1, 1, 0, 1, 0, 1] как я понимаю надо запихнуть лямбду которая будет каждый элемент делить на себя если это не 0 но в записи вида d = [x/x for x in array] я ифки не нашёл десу
Есть поисковая выдача с аниме сайта вида {'name': name, 'link': link, 'thumb': thumb, 'info': info}
Естественно в поисковой выдаче тайтл бывает и не один, и не 10. Собственно очевидным для меня является здесь список из словарей, но учитывая свой прежний опыт, когда я сначала наплодил сущностей, а потом страдал с извлечением из них данных на несколько уровней вложенности, теперь у меня фобия.
Посоветуй быть может принцип хранения и извлечения данных, чтобы после этого с ним было удобно работать. Я, если честно, не знаю где такой конструкт мне ещё пригодится, но пригодится 100%. Как мне например потом обращаться к конкретному тайтлу? Через индексы в листе? Это же уёбищно! Или нет?
Вместо того, чтобы разобраться в десятке библиотек для питона, ты собираешься их с нуля писать? Дружище, почему тебя ещё не выписали в силиконовую долину за 3000к в наносекунду?
У тебя же золотые руки, ты с нуля, в сроки, напишешь полный стак для веб-приложения.
>>1179504 дядь ну папок то много, с паттерном я угадал охуенно, приспособить под новую залупу легко просто модно молодежно в одном месте, не сравнить с той оопешной портянкой анона и трилионом ненужных защит
Кстати есть проблема, с которой так и не смог разобраться - пикрил. Frame с игровым полем должен занимать все свободное пространство. Но при сильном растяжении появляются эти пробелы. Почему?
>>1179565 >работает везде, где есть Пистон >File "/usr/lib/python3.6/tkinter/__init__.py", line 36, in <module> >import _tkinter # If this fails your Python may not be configured for Tk >ImportError: libtk8.6.so: cannot open shared object file: No such file or directory куть4 есть на всех нормальных машинах
Посоны, как разделить строку по заглавным буквам? Есть строка, str = 'Получать каждый деньНе получать оповещенияПолучать каждый часПолучать каждый деньПолучать еженедельно' нужен из нее массив, по фразам, которые начинаются с заглавных. С регулярками не дружу, подскажите, пожалуйста.
>>1177852 Во-первых, ты хуй. Во-вторых, интерпретатор понятия не имеет, где лежит каталог 'front', даже если бы он лежал там же, где твой PY-скрипт. Начинай с диска C:\\ и пиши путь с него до конца. В-третьих, '\' - элемент экранирования. Для указания пути его нужно тоже экранировать, а следовательно, писать '\\'. В-четвертых, .read вообще работать не будет. Вернее, будет не так, как ты хочешь. Это функция. Функция должна иметь скобки после нее. В-пятых, ты хуй. Пререкаться он тут вздумал, не прочитав основы основ.
сука как же я заебался. Решил поиграться с этим дерьмом, лучше же когда какое-то даже самое небольшое нахуй ненужное никому приложение имеет красивую графическую оболочку, просто приятно + хотел как-то отвлечься от рутины, но хуй там. Вроде всё понятно, но сука это не html, это непонятно вообще что, как здесь вообще происходит позиционирование??? Юзал фреймы, отступов как я понял нет и шо делать? Типо просто поставить .pack(side='left') хуйня как по мне, если бы были проценты в ширине и длине, то ещё как-то бы ужился, но это уже совсем пиздец. блять, что я вообще написал, бред какой-то, крч просто поделитесь опытом корырянии в этой залупе, может остыну наконец
>>1179460 >было удобно работать. Так а чты с этими результатами хочешь сделать-то потом? От этого удобство будет зависеть же. Вывести их все на экран? Тогда список, да. Если тебе хочется иметь быстрый доступ к любому случайному тайтлу по названию, чтобы вытащить картинку или инфу, то сделать словарь.
>>1179684 >Начинай с диска C:\\ и пиши путь с него до конца. В относительных путях нет ничего плохого, они даже хороши, особенно если хардкодятся пути.
Анон, вкатываюсь на собесы джанго джуном. 1)Какого рода вопросов стоит ждать по html и css? 2)Какого уровня должны быть(и нужны ли они вообще джуну или прихватятся потом) познания в во всяких js, jquery и иже с ними? 3)Правильно ли я понимаю что относительно свободного владения по данным https://youtu.be/070WyS06e-Qhttps://youtu.be/DEwgZNC-KyE темам хватит что бы себя показать в непосредственно python? 4)Прошу пояснить где та тонкая грань необходимых знаний по самому фрейморвку. 5) Чем помимо корявого бложека разукрасить git? 6) В какую БД сделать упор MySQL или же postgres? 7) Нужно ли джуну знание всякой асинхронки типа tornado и ajax? Накидайте по возможности годных факов по ним.
Анон подскажи а для 2.7 есть годные и актуальные либы для асинхронного прогарммирования. Хочу вкатиться в асинхронку, но существующий проект ограничен совместимостью с 2 и 3 питоном, поэтому async не выйдет.
Во что углубляться, если я совсем мало знаю, чтобы где-то через полгода пойти джуном? Продолжать пытаться в вебдев или дрочить ПО и графические интерфейсы? Вообще я хотел нырнуть в машоб, ну или по крайней мере сначала в разработку ПО. Но, как видно, джуны нужны только в вебе.
Анон может ты знаешь, что там используется для преобразования этих ссылок
Есть ссылка: https%3a%2f%2ffs.netvi.ru%2fstream%2f2676301.mp4%3fd%3d1419%26ri%3dLLELxb1a0U2nqaicOyuV5g2%26ref%3dhttp%253a%252f%252faniplay.tv%252fanimes%252frealnaya-devushka-3d-kanojo-rus%26s%3dKZw7Me0IRYr7UPb_hlh85CWjkT_ATb-3TRs6XzXQ3ru0a_nHUIGslGkbOBa8MRMF0wlG5Ht6tUaoU-LqY0ATZA2
>>1180096 Пиздец через какую же боль и страдания нужно пройти чтобы написать ебучий парсер если ты ньюфаг Блядь, на каждом этапе проблемы, нельзя просто так взять и получить ссылку на видео.
кароче неустоял и таки обмазался этим несвежим говном
одна комманда и моя ванна полна говна
теперь передомной возник вопрос - что делать дальше анон? гайды дохуя замрочные, почему там блять ПРОСТО не написано как это подключить что б работало?
ну и да есть хоть какой то выйгрыш для конечного пользования в тикеле заместо кути?
#cmd -> #SET NUMBA_ENABLE_CUDASIM=1 #ENTER #then run this file...
from numba import cuda import numpy import math
# CUDA kernel @cuda.jit def my_kernel(io_array): pos = cuda.grid(1) if pos < io_array.size: io_array[pos] *= 2 # do the computation
# Host code data = numpy.ones(256) threadsperblock = 256 blockspergrid = math.ceil(data.shape[0] / threadsperblock) my_kernel[blockspergrid, threadsperblock](data) print(data) И оно не работает. Но если сделать сначала, как написано в примечании, то работает...
Хотелось бы автоматически параллелить код, чтоб жужжали видеокарты, а не процессор.
Вопрос: можно ли как-то автоматически, преобразовать функцию на языке puthon в ufunc на C, или же просто векторизовать циклы и условия в какой-нибудь питоновой функции, вида >def myfunc(x) > ... return someone
или векторизовать весь py-файл, ну - чтобы видимокарты гудели.
>>1180626 Ну, тащемта, такие смутные мысли меня и посетили при установке видимой студии. Удалил, стёр. Потом поставил, начал смотреть. Не, вроде бы да... Виртуальное окружение железного питона проёбано, вся реализация какая-то мудрёная, подходящая для формоклёпок от МС и Бырланда/Эмбракадеро
Ну и славно. Лежат ещё Атом и Эклипс с PyDev. Зря только железного ставил
Анон, помоги. Написал скрипт для текучки в офисе, появились другие желающие им пользоваться. Скрипт использует dash и plotly, чтобы из браузера можно было смотреть, ну вы понели.
Вопрос: как поставить питон на windows server, чтобы скрипт был доступен не только, когда включен мой ПК, а всегда крутился на серваке.
Есть windows server и доступ к нему. В администрировании я вообще не шарю, к сожалению
Не знаю, по теме ли. Есть такая задача: список файлов формата .txt в каждом из них строки порою различного формата, числа, к котором я хочу обратиться также бывают с точкой или с запятой в качестве десятичного разделителя. Числа расположены даже в пределах одного файла в разных местах. Помимо нужных чисел также есть другие числовые значения, но чаще все же они отдельно стоят. Но когда они есть это может быть проблемой, их можно и спутать видимо
Задача: по каждому файлу считать сумму
Как я хочу сделать: 1. либо считываю каждый файл в питон либо открываю все циклом(чаще всего файлов кроме этих формата .txt в папке нет) 2. тут я хочу написать какую-то функцию которая будет для всех строк в каждом файле выбирать нужное число
В общем вот, не знаю зачем я это пишу, кода не прошу - возможно совета. Цель именно сделать самому,
>>1180663 >либо открываю все циклом Че бля значит все целиком?
Хер знает что у тебя там за различный формат, для всех стандартных json, csv, html, xml etc есть стандартные парсеры. Если у тебя какой-то кастомный формат, то тут берешь регулярки модуль re и хуяришьбез задней мысли
>>1176187 (OP) Есть вопрос. Как правильно править код в файле cygwinccompiler.py? И нужно ли его править?
Я заинтересовался векторизацией циклов и условий для параллелизма на GPU.
Сначала - зашёл сюда: http://docs.sympy.org/latest/modules/utilities/autowrap.html И выполняю это: from sympy import * from sympy.abc import x import time start_time = time.clock() expr = sin(x)/x from sympy.utilities.autowrap import ufuncify f = ufuncify([x], expr) print(time.clock() - start_time) print("seconds")
В результате - ошибка: File "D:\Anaconda\lib\distutils\cygwinccompiler.py", line 135, in __init__ if self.ld_version >= "2.10.90": TypeError: '>=' not supported between instances of 'NoneType' and 'str'
А там, внутри этого py-файла, по этой строке - вот что: self.gcc_version, self.ld_version, self.dllwrap_version = \ get_versions() self.debug_print(self.compiler_type + ": gcc %s, ld %s, dllwrap %s\n" % (self.gcc_version, self.ld_version, self.dllwrap_version) ) ... if self.ld_version >= "2.10.90": self.linker_dll = "gcc" else: self.linker_dll = "dllwrap" ...
При попытке использования предыдущего компилятора, msvc тоже выдавалась ошибка: customize MSVCCompiler customize MSVCCompiler using build_ext building 'wrapper_module_0' extension compiling C sources error: Unable to find vcvarsall.bat Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. Visual C++ 2015 (14.0) как раз соответствует MSC_VER=1900 судя по этому посту: https://stackoverflow.com/questions/2676763/what-version-of-visual-studio-is-python-on-my-computer-compiled-with
C:\programs\mingw32\bin>gcc -dumpversion 4.8.3 C:\programs\mingw32\bin>ld -v GNU ld (GNU Binutils) 2.24 C:\programs\mingw32\bin>dllwrap -version GNU dllwrap (GNU Binutils) 2.24 Copyright 2013 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) any later version. This program has absolutely no warranty.
Как правильно прописать это в коде? И нужно ли править?
Там в дистрибутиве Win-bilds есть ещё много компиляторов, и если прописать тот же gcc в файле distutils.cfg
Там ещё дохуя компиляторов всяких, но если прописать gcc в файле distutils.cfg, вот так: [build]
#compiler=mingw32 #compiler=msvc compiler=gcc
то всё-равно выдаёт хуйню какую-то: building extension "wrapper_module_0" sources build_src: building npy-pkg config files error: don't know how to compile C/C++ code on platform 'nt' with 'gcc' compiler
Короче, как правильно запустить эту фунцию ufuncify? Может вообще ничего не надо править в коде, а надо лишь какие-то переменные добавить? Или может другой компилятор использовать? Или может есть у кого установочник Visual Studio 2015, а то 2017-й не ставится, и просит какое-то обновление ебучее. Windows 8.1 x64.
Двач, надо алгоритм, который выбирал бы случайное число исходя из вероятности его появления. Скажем, есть числа 2, 1, их вероятности равны 0,8 и 0,2. Сам накостылял такой вариант https://pastebin.com/kwFMesdV Он шустрый, что плюс, он он "субъктивный" что ли, те, если сгенерить рандомом одно и то же число, но пройтись по списку чисел (1, 2) в другом порядке, то и результат выйдет другой. Есть идеи?
>>1180719 Делал скрипт вычисляющий победителя по кол-ву купленных тикетов товара. Хуярил всех покупателей тикетов в единый список, длинной == общему кол-ву тикетов, каждый покупатель повторялся в списке столько раз, сколько он билетов купил (это шанс), как по мне - самый простой вариант.
>>1180768 Твой алгоритм (скажем, при выпадении в рандоме 0,3 - те 30 элемент в твоем списке) даст разный ответ, в зависимости от того, в какой последовательности ты положил числа в список (те первые 50 это единицы, вторые 50 - двойки, или наоборот). У меня так же хуйня, только без списка (который сам по себе медленный, так еще и растет пропорционально размерности задачи).
>>1180719 > Скажем, есть числа 2, 1, их вероятности равны 0,8 и 0,2 Рандом даёт флоат от нуля до единицы.
return 2 if rand < 0.8 else 1
Если несколько чисел так с вероятностями будут, то либо сортируешь и быстро высчитываешь длину «блоков» одинаковых чисел и за счет этого выставляешь сразу вероятности, либо заводишь словарь, где ключ — определенное число, значение — общее число совпадений в списке (после заполнения словаря можно будет рассчитать вероятности).
Далее имеешь что-то вроде списка кортежей (число, вероятность), сумма вероятностей будет единице равна. Код получения рандомного элемента в этом случае будет примерно так выглядеть: https://ideone.com/uFWrpA
>>1180779 У меня список не растет, он от 30 до 150 символов. Ну ок, первые 30 это единицы, вторые 70 это двойки, затем применяю рандом.choice на это все, работает вполне себе. Не ок? Тогда стоит перемешать при заполнении, или после, сохранив пропорцию. Медленно? Применяем нампай.аррай() и методы нампая.
>>1180807 Почитал, что ты там написал в ОП-посте, и могу только сказать, что ты что-то не так понимаешь. Так делают _все_. Если шизик, то отсортируй список кортежей по нулевому элементу, но это явно хуета будет ненужная, если че.
>>1180801 Верно, но как я сказал - у меня жестко задан размер ограничениями системы. Думаю при 5к я бы встретился с медлительностью кода и начал думать над более быстрым решением. Но вот приведенный код, я так до конца и не понял, что там и к чему.
>>1180814 Ну ты забавный просто. Функция рандома — возвращать некоторые с виду случайные результаты в зависимости от разных факторов. Что зерно ГПСЧ, что логи драйверов, что порядок входных данных — всё сойдет. Нет никакого смысла тебе от еще одного фактора рандома отказываться, делая сортировку.
>>1176187 (OP) Я вообще не программист и изучаю Python пока что исключительно в "SoloLearn: Учимся программировать" https://play.google.com/store/apps/details?id=com.sololearn поскольку там это представлено относительно доступно и в виде игры что ли, в общем относительно понятно, хотя конечно и в несколько скомканном виде когда приходится догадываться о назначении того или иного слова сокращения которое что либо делает. Ну я не там не только Python смотрю, я вообще смотрю, но наиболее основательно пока что в Python сижу, правда играл не так много ещё, всего 2 дня, остановился на курсе Функции и Модули на уроке 7 Модули. Ну так, забавно в общем.
Анон, только вкатился в прогание, до этого только лабы про матрицы писал, поэтому полное дно, такой вопрос: у меня есть список из параметров для дропдаун лист (столбец один, столбец 2...столбец n)
Идея в том, что на экран выводится таблица, которая фильтруется по выбранному из списка параметрам, нужно перебрать все варианты выбора фильтров.
Я пишу, что-то вроде:
if (Year is None or len(Year) == 0 or Year[0] == "All years") and \ (Country is None or len(Country) == 0 or Country[0] == "All countries") and \ (Agency is None or len(Agency) == 0 or Agency[0] == "All agency") and \ (City is None or len(City) == 0)and \ (Property_name is None or len(Property_name) == 0)and \ (Class is None or len(Class) == 0): return all_deals_query_df.to_dict('records')
if (Year == Year) and \ (Country is None or len(Country) == 0 or Country[0] == "All countries") and \ (Agency is None or len(Agency) == 0 or Agency[0] == "All agency") and \ (City is None or len(City) == 0) and \ (Property_name is None or len(Property_name) == 0)and \ (Class is None or len(Class) == 0): return all_deals_query_df[(all_deals_query_df['Year'].isin(Year))].to_dict('records')
if (Country == Country) and \ (Year is None or len(Year) == 0 or Year[0] == "All years") and \ (Agency is None or len(Agency) == 0 or Agency[0] == "All agency") and \ (City is None or len(City) == 0)and \ (Property_name is None or len(Property_name) == 0)and \ (Class is None or len(Class) == 0): return all_deals_query_df[(all_deals_query_df['Country'].isin(Country))].to_dict('records')
if (Agency == Agency) and \ (Year is None or len(Year) == 0 or Year[0] == "All years") and \ (Country is None or len(Country) == 0 or Country[0] == "All countries")and \ (City is None or len(City) == 0)and \ (Property_name is None or len(Property_name) == 0)and \ (Class is None or len(Class) == 0): return all_deals_query_df[(all_deals_query_df['Agency'].isin(Agency))].to_dict('records')
И так далее, потом на выходе уже фильтр по двум параметрам, например
if (Year == Year) and \ (Country == Country) and \ (Agency is None or len(Agency) == 0 or Agency[0] == "All agency")and \ (City is None or len(City) == 0)and \ (Property_name is None or len(Property_name) == 0)and \ (Class is None or len(Class) == 0): return all_deals_query_df[(all_deals_query_df['Year'].isin(Year)) & (all_deals_query_df['Country'].isin(Country))].to_dict('records')
Понимаю, что выходит говнокод, т.к. количество повторов одной операции будет равно числу сочетаний выбранных фильтров из все дропдаунов.
Как записать это всё более кратко?
Можно ли задать список из параметров и проверять это в цикле? Я пробовал, но не вышло.
Братишки, я опять выхожу на связь. Есть определённый набор функций: a(), b(), c(), d(), e() Требуется зачейнить их в порядке вида: b(a(a(c(e()))))
Я уже сделал это nested for лупом.
Теперь не могу разобраться, как сделать это автоматически, с заданной вложенностью. Чтобы на выходе получить подобный цикл: list = [a, b, c, d, e] for x in list: for y in list: print(x()) print(y(x())) И так далее, хоть для вложенности равно двум, хоть для тысячи.
Есть itertools.product('ABCD', repeat=5) >repeat = 5 Именно то, что мне нужно для вложенности. Но, по умолчанию, itertools.product() просто складывает значения.
Как заставить питон функцию внутри другой функции и так далее, пошагово вытягивая результат.
Есть yield, есть map(), есть itertools.product() Как их вместе связать, я даже не знаю.
>>1181062 reduce() - это совсем не то, что я имел ввиду. >b(a(a(c(e())))) Это просто пример. По факту, мне нужна выдача: i1() i2(i1()) i3(i2(i1())) i4(i3(i2(i1()))) И так далее, до указанной вложенности. В том числе, на выходе, мне нужно не только финальное значение, но и все промежуточные.
Анон, у меня есть год опыта на реакте и ноде. Но весь этот цирк во фронтэнде дико заебал. И я хочу перекатиться в питон. Реально ли питухонщиком устроиться имея только опыт в жсе? В дс/дс2 конечно же.
>>1181075 Реально ли вкатиться маляром имея только опыт сварки? Ты что на питоне делать-то хочешь? Бэкэнд на жанге писать? Нода же лучше во всех смыслах.
Кстати, это я что-то неправильно делаю, или макакыч отрубил ссылку в сообещениях? Простым текстом остаются.
>>1181073 Насчёт >В том числе, на выходе, мне нужно не только финальное значение, но и все промежуточные. >[a(), a(a()), a(a(a())), a(a(a(a()))), a(a(a(a(a()))))]
>>1181073 ты скорее всего намудрил дохуя не ебашь много функциональных функциональностей на ровном месте, а просто напиши как есть: func_list = [f1, f2, f3, ..., fN] res = func_list.pop(0)() for f in func_list: ····res = f(res) # ну или yield return res
Продолжаю теребить Пистон Лутца, дошел до описания модулей почты smtplib, imaplib и т.п. И подумал, что это хуйня. Ну кому в 2018 нужна вся эта хуйня, если все давно пользуются нормальными почтами типа mail, gmail, hueil. Но потом я ещё подумал пиздец люблю думать, что все не так просто. Я правильно понимаю, что все эти сайты возьму mail.ru для примера крутят у себя на компах какой-то http сервер, который слушает, как я понял, 81 порт. Это и позволяет моему браузеру обращаться к сайту и получать html странички. Включая обращение к почте. Это так? При этом они так же могут одновременно крутить другую программу-сервер, которая слушает 25 порт вики говорит, что он зарезервирован под smtp, чтобы я мог писать\читать почту без браузера, а с помощью спец программ например моего говноскрипта. Это так? А вот все эти автоматические сообщения при регистрации где-нибудь которые высылают подтверждения, логины, пароли, тд, они с помощью этого и реализованы? Когда я жму 'зарегистрироваться' в браузере, это отправляет http запрос на сервер, который будет другую программу, которая по smtp или любому другому современному протоколу отправляет сообщение о регистрации на указанную почту. Да? Это так работает? И ещё немного. Чтобы сделать свой охуенный сайт, мне нужно только написать программу, которая слушает http порт - 80, и отправляет в ответ на реквесты html странички, да? А как я сделаю это - на сокетах напрямую, или с помощью модуля http - вообще не ебет? А всякие приколюхи типа Gevent, Tornado, Apache, nginx - это упрощения, чтобы я сам не занимался прослушкой порта, распределением работы с клиентами на треды\процессы\гринлеты\котлеты, а писал только то, что нужно делать, работая с клиентами - как отвечать на запросы, к каким бд обращаться и тд. Да? Все, я достиг просветления?
>>1181090 >>1181091 Заработало, спасибо. А промежуточные значения я забираю ещё одним for лупом сверху всей этой конструкции.
>>1181102 То, что я намудрил дохуя, даже не обсуждается.
>func_list = [f1, f2, f3, ..., fN] >res = func_list.pop(0) >for f in func_list: > res = f(res) > return res Ты ведь сейчас просто описал мой луп, но без вложенности.
>>1176435 А я знаю про range, я в "SoloLearn: Учимся программировать" об этом немного проходил. Это когда циферки от нуля до указанного числа ну или циферки между двумя цифрами, а ещё там можно указывать шаг с которым надо считать от нуля или первой цифры.
>>1181110 Нет. Всё не так. http здесь вообще не при делах. Почта работает почти так же как реальная, есть отделения (SMTP сервера, релеи), между ними ходят письма пока не дойдут на целевой SMTP сервер. Соответственно тебе чтобы отправить письмо нужно сдать его в отделение — отправить с SMTP сервера, чтобы принимать тоже нужен SMTP сервер. А то что по http это считай такой аутлук заебенили в облаке, подключенный к их собственному SMTP серверу (gmail.com, mail.ru, inbox.ru, etc).
>>1176187 (OP) Pycharm 2017. Стоят предыдущие питоны, скачал и поставил Python 3.6.5. В настройках проекта в списке интерпретаторов его нет. Как его туда добавить ? В переменные окружения его директорию с поддиректориями прописал
>>1181375 Слишком очевидно. А вот так лучше, можно даже на джун собесы этот вопрос задавать Если ли разница у вывода каждого фрагмента кода и если есть, то объяснить почему a = [1,2,3] a.extend([i for i in a]) print(a)
a = [1,2,3] a.extend((i for i in a)) print(a) доп скобки для того, что бы человек подумал про кортежи
>>1181421 Вторая хуйня войдет в бесконечный цикл из-за ебаного генератора? написал, и проверил. оказалось прав. теперь принимай меня на работу, быстроблять
Двач, помоги с кодировкой. Вызываю python-скрипт через функция exec() в php. В самом питоне инфу вывожу в консоль в посредством print(json.dumps(final_data, ensure_ascii=False))
Так вот если вызвать скрипт из консоли, то он нормально выводит кириллицу. А вот при вызове из PHP возвращает закодированную строку вместо кириллицы - \u043c\u0435\u043d\u0435\u0435
Пробовал сделать так:
print(json.dumps(final_data).encode("utf8"))
Но это ни черта не помогает и в вывод попадает всё та же закодированная строка - \\u0447\\u0438\\u0441\\u0442\\u0430\\u044f
Если в последнюю строчку кода добавить ensure_ascii=False, то при вызове из PHP тригернётся ошибка UnicodeEncodeError: 'ascii' codec can't encode characters in position 59-60: ordinal not in range(128)
Появился глупый вопрос, который хочется задать в этом ИТТ треде.
Решал простую задачку, где пользователю необходимо ввести два числа, знак математического оператора, а шайтан машина выдаст ему ответ. Но решил, что путь через сравнения c помощью if слишком очевидный и решил ответ пользователя не связывать с прописанными под условиями вариантами, а изменить тип переменной, содержащей ответ пользователя,со строки на 'математический оператор', но пайтан меня не понял, когда я пытался обозвать + типом int, затем я начал гуглить, какой тип имеют математические операторы, но ответа не нашел.
Дальше Я написал что-то типа этого:
x = input () # Вводим математический оператор. print (type(x)) # Узнаем его тип данных.
<class 'str'> ответил Py и я согласился.
Затем я попробовал сделать вот так: print (type(+))
Но так Питончег меня не понял и выдал ошибку.
С этим я к вам и пришел.
Вот вопросы:
1. Применимо ли понятие "тип данных" к встроенным функциям и математическим операторам? 2. Если да, то какой тип данных у математических операторов?
>>1181522 А зачем тебе тип плюса? Все что введено через input будет иметь тип str Если if не устраивает, то используй словар { "+" : a_plus_b(a,b), "-" : a_minus_b(a, b) } Дальше сам поймешь
>>1181522 Плюсик это не объект, и потому у него нет типа. Это специальное слово, говорящее интерпретатору что делать. Типа import, def, for. В данном случае оно говорит вызвать метод __add__ того объекта, что слева от плюсика, и сунуть в этот метод тот объект, что справа от плюсика, как аргумент. А может и нет, я хуй знает вообще.
>>1181686 >О чем речь вообще? хочу сделать подбор паролей для архивов. >PS не юзай потоки в питоне. Почему? я юзал уже, довольно неплохо (на мой уровень) вышло
Хэлп, в этом куске кода есть ошибки? Он не работает как надо, не могу понять почему.: [CODE]if FirstOne.Angle < FirstOne.Angle + 30: FirstOne.Angle = FirstOne.Angle + 3[/CODE]
Кто там не знал в какой попенсорс бы вкатиться? Вот вам молодой и амбициозный прожект очередного микро-веб-фреймворка https://github.com/danieldaeschle/swapy
>>1181689 Какой смысл юзать потоки, если поток все равно один? ЗЫ организовывай очередь через модули queue или select, отуда и бери строку\номер строки
>>1181713 Где же ты был раньше, этому миру остро не хвататет веб фреймворков. Как минумум на каждого кодера должны быть 2-3 штуки, а сейчас и 1.5 не наберется
>>1181435 Да, вот такой здесь тред. Написал вопрос, на него хуй кто ответил, и ты сам находишь ответ. Здорово, правда? Нахуй этот тред вообще нужен, спрашивается?
Питонач, в 2 питоне не силён. Писал одну хуйню на 3 и теперь код нужно сделать совместимым.
Естественно самый гемор это строки. Как мне преобразовать данные в строку в 2 питоне? у меня есть строка str(data) и она вызывает ошибку UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128) Если делаю .encode(utf-8) то всё норм, но в этом случае код перестаёт работать на 3 питоне. Чё делать та?
Здарова, братцы. Кто какие расширения юзает в виме в для создания своей идеально Python IDE? Мой списочек (я пока что новичек): nerdtree vim-autoclose vim-colorshemes matchtag
>>1181940 Я как-то два треда подряд просил подсказать, как запустить стороннюю программу от администратора и хуй кто подсказал. Нашел ответ на мейл.ру. НА МЕЙЛ.РУ, КАРЛ!
Прочитал в одном тереде что лучшей практикой для изучения питона, является переписывания библиотек и программ с 2.7 либо реализация такой же программы с руби
>>1181966 Никто мне не дал верный ответ, ты ошибаешься. Я сам нашел решение и отписался по нкему, если кому-то еще бы понадобилось. Я ж не тот уебан с ветки форума пятилетней давности, который пишет вопрос, а после того, как ему никто не ответил, отписывается "nvm found solution", после чего закрывает тему.
>>1181997 Не посоветую. Ищи сам, потому что своим советом могу тебя отпугнуть от изучения, вдруг проект окажется слишком сложным для тебя? Я же не знаю какой у тебя уровень владения языком. Поэтому анонче ищи самостоятельно. Главное не очкуй и форкай, сообщество тебе подскажет, где ты обосрался, а гже и коммитом поможет.
>>1182024 То есть когда ты пишешь там вот такая справа от текста есть палочка |. Но тут она из-за черного фона пропадает, сливается. Это не есть круто.
>>1182030 Решил проблему подрубанием самописной либо на Windows API, которая заменяет цвет каретки. Только проблема - она изменяет ее не только внутри программы, а вообще во всем компе. И проблема номер два. После перезагрузки каретка не меняется и остается того цвета, который был задан.
>>1176187 (OP) Инквизиторы, ссылки из ОП поста и гугл прошерстил, спрашиваю предметно: Необходимость изучения Пайтона с целью применения в финансовой сфере (IB-хуйби). Начинать изучение также как и всем, или есть более ориентированная на фин моделирование литература/ресурсы? Сам два года уже изучаю/применяю в работе VBA, немного SQL позадрачивал через sql-ex.
веселый сайт https://sites.google.com/view/pypry/
скучный F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
для кода https://repl.it/languages/python3
Предыдущий тред
python питон пайтон vscode вскод