Это копия, сохраненная 26 июня 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
веселый сайт https://sites.google.com/view/pypry/
скучный F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
для кода https://repl.it/languages/python3
Предыдущий тред >>1170797 (OP)
python питон пайтон vscode вскод
https://yadi.sk/d/tArKKuQu3Kejuq
Дублирую из прошлого треда, так как оп-пидор так и не ответил почему я должен выбирать vscode вместо pycharm, ведь
1)полная инспекция любой либы
2)тонко настраиваемая подсветка на любой случай, включая проверку совместимости кода для разных версий питона
2)удобный дебагер и профайлер
3)вызов докстрингов по клику на любой функции
4)интеграция со всеми возможными системами контроля версий с удобным разрешением конфликтов
5)диаграммы для асинхронного кода
6)подключение к базе данных
7)Подсветка и автокомплит для шаблонизаторов фреймворков, да и вообще интеграция с фреймворками
8)Настройка конфигов для тестов c сохранением истории и вызовом прогона отдельного теста одним кликом
9)Плагины на любой вкус Ну ладно, это и в вскоде есть
10)Деплой на удаленный сервер
11)Интеграция с докером
Это то, чем я пользовался в последнее время, все из коробки
Требуется запустить экзешник, но сделать это под правами администратора. Как средствами Питона реализовать подобное решение?
Анончик, это все очевидно, любой редактор по сравнению с чармом кусок блевотины.Я чуть не кончил когда увидел диаграмму переключения тредов
Освоился с азами Питона, начал потихоньку вкатываться в PyQt5. И это просто пиздец, какой же он безумно сложный. Нормальных мануалов нет, приходится выискивать информацию по крупице, и не везде поясняют, что за что отвечает.
Но что самое непонятное: почему импорт вида
import PyQt5
или
from PyQt5 import PyQt5.QtWidgets
не работает, блять.
Только так, как указано в примере, и никак иначе.
В противном случае not defined.
>Но что самое непонятное: почему импорт вида
>import PyQt5
>или
>from PyQt5 import PyQt5.QtWidgets
>Освоился с азами Питона
Не освоился
Дурачок какой. Не знает про особенности импортирования и вложенных питоньих пакетов, а сам бестолочами называет.
>import PyQt5
Это просто общий пакет для либы, там на самом деле сишный код, гугли как реализуются сишные вставки в питон
>from PyQt5 import PyQt5.QtWidgets
При инструкции from import, после import должен указываться один атрибут, без вызовов
>как учили в основах импорта
>import os.path
Где тебя такому учили?
Тебе все равно придется писать os.path для выполнения функции
Либо import os, а потом делаешь os.path.функция
Либо from os import path, а потом path.функция
Хуйню какую-то вычитал и рад
Там ещё передаётся куча полей, но в том числе и нужное.
В качестве ошибки выдаёт
> <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).
Я может неправильно спроектировал всё, но большая форма валидируется, а вот малые, если в них есть загрузка файла - нет.
Детали реализации. Зачем тебе это вообще?
Вероятно оптимизации байткода.
subprocess.run(["sleep", "5"], stdout=PIPE, stderr=PIPE, timeout=2)
З.ы. Popen не подойдёт, т.к. там нет timeout.
То что уйдёт в stdout полностью зависит от запускаемого процесса. Если ты грохаешь процесс, то в stdout может вообще ничего не записаться.
все тоже самое есть во вскоде ТОЛЬКО ЛУЧШЕ! ну серьезно, щас функционал +/- везде одинаковый, у меня стоковый блокнот как сабляйм без плагинов, но вот вся суть она в мелочах, и вскод просто настолько хорош насколько вообще возможно, это единственный редактор в котором меня ничегоне раздражает и со мной солидарна треть глобуса
560x420, 3:26
Пытаюсь разобраться в 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 раза быстрее.
560x420, 3:26
Пытаюсь разобраться в 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 раза быстрее.
>Что блокируют?
Интерпретатор/поток. Пока не выполнится этот процесс, питон будет стоять и ждать, ничего другого не делая.
https://en.wikipedia.org/wiki/Blocking_(computing)
мимо-джава-джун
биг дата это не есть питон. это сложная наука. Но если есть время и ты по джаве уже всё могёшь, то скриптовой язык это однозначно то что стоит учить. Как минимум будешь уверенней прогать на джаве, так как он покажет тебе джаву со стороны и вообще разовьешься как погромист.
> со мной солидарна треть глобуса
https://www.jetbrains.com/research/python-developers-survey-2017/#tools-and-features
Так и знал что придерёшься к источнику. Ладно, давай свой survey, где треть за вскод.
То есть, у меня обычный .py файл с кодом, который я запускаю в PyCharm. Когда вызывается plt.imshow() ничего не происходит. Можно ведь как-то научить matplotlib открывать новое окно с выводом графики?
найс тян
в ноутбуке пишешь
import твойпайфайл.py
запускается скрипт из твоего пай файла
почитай про модули и скрипты
https://docs.python.org/2/tutorial/modules.html
>все туторы на ютубе
Пиздец, пока эти аутисты говорят что-то, можно прочитать в 5 раз больше, не понимаю, зачем это вообще нужно, есть лутц, который каждую деталь разжевывает
это когда хочешь отдохнуть, но не можешь себе этого позволить, вроде и залипаешь, но и по делу при этом
https://learncodethehardway.org/python/
Стоит изучить?
Деньги не проблема
> стаковерфлоу
> туторы на ютубе
> survey
> стаковерфлоу
> туторы на ютубе
> survey
> стаковерфлоу
> туторы на ютубе
> survey
Понял, спасибо.
нахуй сходи чмо
Я лучше за 20 минут все из статьи\книги прочту что нибудь то, что объясняется для идиотов за час-полтора
ну я вот читал вики, описание комманд настолько заебанное, что только после просмотра видосика с результатом стало все ясно
опыт у всех разный няш
вики вики. я оттуда узнал ровно 0 полезной хуйни. А нет брешу 1 вещь мне действительно помогла - наглядное объяснение радиана в круге. Ну и по истории в свое время знатно попутешествовал. А всякие технические вещи я даже не знаю для кого там написаны. Полагаю для людей которые и так всё это знают.
ну вот блять и что делать если тебе нужно решить простецкую задачу, ебать толмуды не стоит, а щипнуть инфу где то надо, вот как мудак и скачешь по стаковерфлоу и прочим подворотням
хотя у луца вроде есть справочник, надо бы его открыть для себя что ле
>объяснение радиана в круге
кстати всегда было интересно чому никто не догадаляс использовать градусы? как то посмотрел на код аналоговых часиков охуел и так везде причем
вообще не вижу ничего плохого в стекоферфлоу. Иногда там есть вещи которые незадокументированы нигде, так как разрабы просто поленились/неуспели/забили написать доки а какие-нибудь буржуйские задроты раздраконили эту поеботу и с любовью записали своё открытие. И при плотной работе просто нет времени шарится по документам и просто тупо копипастишь оттуда. Хуле такого-то? Невозможно всё знать.
>тупо копипастишь оттуда. Хуле такого-то?
я тоже так считаю братишка ^_^
пока под себя будешь настраивать уже вьедешь в тему и с кайфом дальше пойдешь, вместо бесконечной унылой зубрежки и прокрастинации
Какая среда на вебмке?
Всех благ
Тебе в рот насрут за такое.
никак
Короче когда собираю pycurl, то сама libcurl не линкуется статически. На windows как то собираю в одну dll, а в линуксах какой-то геммор
В настройках пайчарма сделай автоформатирование и подсветку синтаксиса так, как тебе удобно/привычно(руководствуясь пеп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 раз быстрее? Как так то? И почему треды быстрее процессов? Я думал все будет с точностью наоборот: процессы > быстрее треды > линейная хуйня. Почему все наоборот?
ухх я буст морали получил от созерцания своего говнокода в оп-посте
Кто хочет помочь вкатывальщику - привет. ну, другие вкатывальщики тоже могут прочитать этот пост. посмотреть на мою реализацию, подумать как они бы это сделали Это я в прошлом треде сделал нахуй никому не нужную утилиту по поиску самого большого файла на пк с распараллеливанием на процессы. После чего мне сказали сделать поиск 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 раз быстрее? Как так то? И почему треды быстрее процессов?
Да, потоки быстрее процессов, это закономерно. Линейный код быстрее, потому что а) ты проебался в многопоточке где-то и б) питон использует одно ядро, на одном ядре потоки медленнее линейного кода
Если деньги не проблема, лучше у этого чувака курс пройди:
https://www.youtube.com/user/killerphp/
Каких скриншотиках? Вот сами курсы:
https://www.killervideostore.com/video-courses/beginners_python_3.php
>>1174315
^_^
анон из прошлого треда помог мне в довольно истеричной форме, но все же и когда я зареквестил каменты к когду за благодарочку в 5 баксов - он потерялся
в коде я кое-как разобрался, ну и захотелось таки отблагодарить как то онончика, код реально топовый, все дико по ооп сделано, прям по красоте
854x480, 0:23
А что не так?
>>77046
>код говно
А как надо?
>Никакого отношения к вилкам и дочерним процессам не имеет.
Нет, я понимаю, что такой 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, куда заходить?
Надеюсь, это кун.
Да ну? Я вроде бы не мог когда-то давно поставить 3.* версию на хрюшу, приходилось страдать под 2.7
А как правильно собрать SFX архив с питоном? Неужели надо пихать все эти ~40мб для корректной работы?
Собираюсь плагин для kodi написать чтобы смотреть онеме с сабами типа аггрегатор с фансабовских сайтов.
Вот сам бот если вдруг кому интересно:
@English_by_hoge_bot
на ХР ставится питон 3й ветки до 3.4.3 включительно, если не ошибаюсь
не исключено. версия 2.10.1 требует сервиспак 3, но качать я его пока не стану, ибо еще можно сделать так
Хотя даже не так. Я понимаю, что первый Label занимает левую часть свободного окна, второй правую от остатка, и последнему остается серединка. Как заставить первые два labla поделить между собой верхнюю часть экрана на 2 половинки? Или без Frame'а, делящего экран на верхнюю и нижнюю часть я нахуй могу идти?
>>77504
Какие методы, о чем ты бля?
Ыыыы бля: https://repl.it/@JanWhite/ProfitableHonestAlgorithms
тут дело в том, что цигвин тоже не первой свежести ставится, соответственно репы свежего цигвина не подойдут, как и находящиеся там пакеты. но жить в этом окружении какбэ можно и иногда даже нужно
минигайд -> https://pastebin.com/pyyHRa7R
Извини, бро, я не программист, просто по работе бывает нужно сделать какую-нибудь такую хуйню. Спасибо, что заморочился и написал мне скрипт с двумя ёблами.
посоны, изучаю ткинтер, не смог понять, как сделать следующее: я ввожу два числа, а он мне по этим двум числам в новом окне создает какое то количество, зависящее от введенных двух чисел, виджетов ввода (ну куда чето ввести можно)
собственно не смог только сгенерировать виджеты ввода
>А как надо?
Это я тебе на двачах пояснить не смогу. С практикой придет. Читай код в популярных проектах для начала.
> RunTime ошибкой во время теста версий с multiprocessing. Вот я и не понимаю, почему это так важно.
Потому что его так multiprocessing стартует. Я твой код внимательно не смотрел, но вроде бы других причин нет. Ну и если ты модуль не собираешься делать исполняемым - это можно не делать
> Я это знаю. Я спрашиваю как это сделать. У меня 7 модулей: контент, 4 версии, тестер, и тестер линейного кода.
Надо убрать это в пакет (который родственник модуля): создать директорию, перенести туда эти файлы, добавить __init__.py, в который вытянуть импортами классы из подмодулей, будет что-то типа
__init__.py
from .tester import Tester
И надо будет разобраться, кто кого импортирует. Желательно переделать так, чтобы импорты были иерархические, а не перекрестные, а то рано или поздно наткнешься на циркулярные импорты.
>Где?
Не знаю, надо дебажить.
> Про то, что Питон позволяет выполняться только одному потоку слышал, про ядро слышу впервые.
Почитай про GIL. Ну и про многопоточность взагали.
Файл по месту редактировать не получится. Придется копировать в новый и по ходу вставлять записи когда надо.
Ну, это не интересно... с тем же успехом можно с офф сайта скачать 3.4 и он будет на xp работать. https://docs.python.org/3/using/windows.html#supported-versions
ну да, некросвинья это такая штука, у которой всякие новомодные штуки сразу вызывают ошибку в ядре
Ну, я после переустановки маздая имел ввиду. Другими их продуктами, например datagrip, я пользуюсь.
Сейчас делаю приложение, тк по мнению многих это лучший способ научиться, но встала проблема такая:
Ты изучаешь только то что нужно вот для приложения. SELECT PEK FROM kek, и тому подобное. Чтото ведь обязательно останется непознанным, оче боюсь
Третий учи
Важно и то и то, как по мне, в работе всякое может пригодиться.
Я вот начинал все на чистом СКЛ, и очень долго даже не трогал алхимию. Да и тебе будет гораздо проще понять что делается командой в ОРМке, т.к. к ней всегда идет аналог на СКЛе.
П.с. В принципе и основ СКЛя хватает, ты же не эксперт по БД и не собираешься писать логику на СКЛе. Я СКЛ учил по документации постгреса(до этого вообще БД никогда не трогал), было больно, но потом все понял.
Спасибо, тоже также буду наверное делать. Алсо, не можешь наставить на путь истинный. У меня есть задача реализовать поиск например товаров. Есть страница с поиском, там есть форма. Для этого нужно использовать как-то LIKE по всем полям?
Да, не как-то, а вполне себе конкретно.
Делаешь iLIKE по каждому полю и потом выводишь либо квэрисэт общий для всех полей(сет1 | сет2 | сет3), либо выводишь все уникальные элементы из каждого квэрисэта в один большой. Это если поля схожи и тестовые, типа "название товра"/"описание товара" и ты по ним ищешь, а если поля вполне себе с датами/суммами/Boolean - юзай 'filter'.
Юзай ай-лайк, это интеллектуальный поиск, он ищет немного иначе. Надеюсь ты постгрес юзаешь.
В принципе, твой поиск жизнеспособен, но проверь его на реальных данных.
Единственное что, странно ты запихнул и год и название и isbn в один запрос, но хуй знает какие у тебя реальные данные, так что хз, тести и анализируй.
Я тебе привел рабочий пример с ОРМкой.
Да, у меня постгрес. Год и исбн я запиздячил в балицу как VARCHAR, но сам понимаю что это говно. Просто не знаю пока как лучше сделать поиск, отдельно для цифр и строк или оставить как есть. Спасибке еще раз.
Как делаю я обычно на джанге: Обычная строка поиска ищет по названию/описанию, затем юзера кидает на страницу с поиском и тут уже идет куча необязательных доп.параметров. Если юзер параметр заполнил - ищем по нему, если нет - записываем пустой квэрисэт, и так для всех полей, затем результат всех полей через | проверяем и выбираем нужное.
Как я уже и сказал, твое может работает, ты главное оттести.
Спасибо!
Ну старее f"string", согласись
html = open('front\index.html', 'r').read
Ну думай, что ты умнее интрепретатора, попробуй указать полный путь или поиграйся с вложенностью, я вообще не знаю как в винде это устроено
С языка сорвал!
а как нада дядь? функциональщину заебать для файл хендлера? нидайб-г имутабельность по пизде пойдет или чо?
Да кого ты слушаешь
Мерси!
Ну первая страница в гуголе по словам Tdd python, я уже просто ушел от компутера
Стоит ли учить PYTHON? Дело в том что пых я знаю хорошо, а окромя его ничего и не знаю. Питон вроде как посолидней, чем он лучше?
Есть необходимость написать бота, который бы распарсил mp3 теги моих песенок, создал бы описания альбомам групп, поархивировал, позаливал на яндекс диск и вместе со ссылками, описанием, обложками и пр позаливал бы на мой говносайтик.
На пхп на изи напишу, но подумал учить этот ваш пайтон и попытаться реализовать задуманное на нем. Вот на этом примере чем он может быть лучше пхп? Чем он вообще лучше?
Тем, что это настоящий язык прграммирования и тут тебе никто не даст ярлычёк с сервером и не раскидает шаблоны. Алсо если ты хочешь учить пайтон, то должен понимать, что пыху можно сравнить разве что с шаблонизаторами для фреймворка.
Ну это все абстракции ты говоришь.
Мне похуй настоящий/не настоящий. Критерий - практичность, решаемость задач и пр.
Конкретику подавай в общем, это меня интересует
ОП, кинь гайд по настройке вскода как у тебя. Что устанавливать, в какой последовательности? На какую кнопку скрипты запускаешь?
>Алсо если ты хочешь учить пайтон, то должен понимать, что пыху можно сравнить разве что с шаблонизаторами для фреймворка.
Мы ван перезвоним.
Нихуя не верный. Путь относительный, хуй его знает, какой текущий каталог у интерпретатора в момент запуска, особенно в ебаной винде, и особенно при запуске через ебаный "праваднiк" или как он там щас... Полный путь указывай
>все дико по ооп сделано, прям по красоте
ты ебанулся? открываю первый файл, в первых строках велосипед на 30 строк. охуеть красота.
В общем, какой-то анон где-то спрашивал, как сделать так, чтобы спавнилось количество виджетов, зависящих от введенного пользователем числа. Может здесь, может не здесь, но вот мой ответ:
https://repl.it/@JanWhite/DarkvioletLivelyTechnician
А у меня вопрос по ткинтеру вообще. Хороший ли код, который я написал? Почему то в обоих учебниках, что я пока прочитал, при подходе к ткинтеру начинается использование глобальных переменных. А мне это нихера не нравится. Мне нравится идея отдельных скоупов. И мне совсем не нравится, когда какая-то функция вылезает из своего скоупа и делает что-то за его пределами. Так что вот я так все явно решил передавать туда-сюда. Немного больше кода, но зато никакой неявной хуйни "стоп, а эта величина не определена в этой функции, а откуда она вообще взялась". Так хорошо? Или нелюбовь к глобальным переменным это болезнь и надо фикситьампутацией головы?
Поставил XP Home Edition SP1, не работает.
Да, знаю, я отбитый.
Arduino можно программировать на C++. В чём проблема включить библиотеку питона и вставить участок кода на питоне?
Может статейку краткую или видео по основам, которые прям маст хэв?
В том, что питону требуется интерпретатор. Питон сам по себе магически в машинный код нужной архитектуры не скомпилируется от того, что ты хедер в си-код вставишь. К тому же, интерпретатор тебе не для x86 или арма нужен, а для микроконтроллера, в частности atmel avr'а. И даже если бы ты его скомпилировал, нихуя бы не влезло в память мк. Учи си, короче, или малинки и апельсинки Pi покупай.
Тем не менее, урезанные версии существуют, вроде https://wiki.python.org/moin/PyMite
Остальное в гугли можешь найти или нет, потому что искать не будешь.
orange pi и raspberry pi и ещё аналоги какие-то есть. Потому что это полноценные маленькие компьютеры, с ARM процессорами и линуксом, "нормальным" количеством памяти и т.д.
Какие библиотечки стоит покурить?
Понял, спасибо
requests
Блядь моя жопа сейчас сгорит нахуй.
Под линухом это делается одной строчкой.
Под виндоус надо же скриптом переебывать системные пеиеменные путей.
Те скрипты что брал на англоязычных ресурсах не работают. Или введу плохого знания англицского, или общего скудоумия.
Может кто то сталкивался с это хуйней?
Напишите коротенький гайд для дауна?
Что значит одно и то же? Pickle сериализует объект, превращает его в потом байтов. json — это обычный текст. Текст, превращённый в байты, если содержит только латинские буквы, примерно текстом же и останется, плюс хедеры/трейлеры самого пикла.
Тебе что не так-то вообще, что ты хочешь сделать? pickle.loads(pickle.dumps(tvoy_json)) выдаёт оригинальный объект? Если да, то pickle'а сделана, всё идёт как надо.
>примерно текстом же и останется
В том плане, что при попытке отобразить принтом эти байты там будут нужные буквы из ascii набора.
Нужно пачку json'ов по штуке записывать в файлы, и так, что бы в файле была полная каша, а там вполне все читабельно.
В питоне можно называть переменные русскими буквами.
Пруф : https://ideone.com/EGM29D
>что бы в файле была полная каша
Ну так и пользуйся криптографическими либами тогда, вроде https://cryptography.io/en/latest/ , пикл-то тут при чём? С чего ты его вообще использовать решил?
> С чего ты его вообще использовать решил?
Потому что это самое первое в этом плане, с чем я познакомился. Я всякие объекты пихал в него, там и правда было все нечитабельно, а сейчас столкнулся с джейсоном и все. Спасибо, гляну.
Добро пожаловать в удивительный мир utl8, можешь даже смайлики некоторые использовать
ю маст ту го диппа
Данный модуль содержит базовый класс и упрощающие работу с ним функции для извлечения даты и времени из текста на русском языке.
>Существует библиотека Python.h
Python.h - это просто заголовочный файл, а не библиотека. К тому же твоя недомикросхема не имеет MCU, там вм не запустится.
>можешь сделать лучше?
Технически могу, практически нет времени. Читай документацию по os.walk и меняй велосипеды на os.listdir на вызов стандартной функции.
Велосипеды - это верный признак хуевого знания stdlib, человек, который хуево знает stdlib вряд ли пишет хороший код.
>os.walk
тащемта я так и делал вначале, но потом пришел анон и переибал все по своему
у меня были трудности что он выдавал мне разные списки, ну т.е инстанс отдельный списочный бля и я не понял как это склеить в один
а так то да, мне тоже кажется что это куда проще, ты тупо прогуливаешь по всему нахуй корню, получаешь все файлы и уже их итерабильным путем отсеиваешь, с другой стороны ты ведь так пройобываеешь адрес
кароче я ща попробую ту опртянку закоменитить что бы лучше понять как надо хранить данны переменых, а то пока в голове не работает
>вызов стандартной функции
это какой?
>Велосипеды - это верный признак хуевого знания stdlib
поясни я чет недогнал, олсо он хантил :3
Есть два класса:
class A1():
@classmethod
def first(instance):
instance.x = 'POSHEL NAHUI POSHEL NAHUI POSHEL NAHUI PIDORAS'
class B2():
def __init__(x):
self.x = x
def second():
A1.first()
pig = B2('Documents request')
pig.second()
В первом классе есть метод.
Во втором классе тоже есть метод, который вызывает метод из первого класса.
Пока понятно? Едем дальше.
Как заставить метод из первого класса поменять значение для инстанса из второго класса? Другими словами, как отправить в первый класс имя инстанса?
__name__, очевидно, отдаёт имя класса
Может декоратор какой есть или double underscore метод?
Интересует именно решение, которое поможет автоматически пропихнуть конкретный инстанс в другой класс.
Есть два класса:
class A1():
@classmethod
def first(instance):
instance.x = 'POSHEL NAHUI POSHEL NAHUI POSHEL NAHUI PIDORAS'
class B2():
def __init__(x):
self.x = x
def second():
A1.first()
pig = B2('Documents request')
pig.second()
В первом классе есть метод.
Во втором классе тоже есть метод, который вызывает метод из первого класса.
Пока понятно? Едем дальше.
Как заставить метод из первого класса поменять значение для инстанса из второго класса? Другими словами, как отправить в первый класс имя инстанса?
__name__, очевидно, отдаёт имя класса
Может декоратор какой есть или double underscore метод?
Интересует именно решение, которое поможет автоматически пропихнуть конкретный инстанс в другой класс.
>Как заставить метод из первого класса поменять значение для инстанса из второго класса?
передать туда self?
TCP сам на куски всё рубит на пакеты тебе надо собирать свои данные за несколько recv вызовов.
https://stackoverflow.com/questions/17667903/python-socket-receive-large-amount-of-data
Если UDP, вот вот ещё — https://stackoverflow.com/questions/22819214/udp-message-too-long
>>78356
Тебе тоже стоит почитать, видимо.
>Тебе тоже стоит почитать, видимо.
Уже читал, спасибо.
мимо обладатель прокси с фильтром содержимого и блокировкой доменов
Точно, а то я тут сам себя перехитрил, спасибо.
спасибо, разморочил
щито поделать
def __init__(self, name):
self.name = name
def funkciya(cls, stroka):
print(" " + ": " + stroka)
#print(<хей, анон, какую хренотень я должен сюда засунуть, дабы вывести данные конкретного объекта?> + ": " + stroka)
st1 = clasnum01("%имя_объекта%")
st1.funkciya("%выводимая_строка%")
st2 = clasnum02("%имя_второго_объекта%")
st2.funkciya("%вторая_выводимая_строка%")
сука, вся разметка к херам
Нет. Нужно вывести данные объектов, данных им при создании, вне зависимости от того, это st1 или st2. Пробовал self.name, несколько других вариантов – безуспешно.
В примере выше строка
st1.funkciya("%выводимая_строка%")
должна выводить
%имя_объекта%: %выводимая строка%
А, например,
st2.funkciya("%выводимая_строка%")
–
%имя_второго_объекта%: %выводимая_строка%
>class clasnum01:
class clasnum01():
>def funkciya(cls, stroka):
def funkciya(self, stroka):
><хей, анон, какую хренотень я должен сюда засунуть, дабы вывести данные конкретного объекта?>
self.name
>меняй велосипеды на os.listdir на вызов стандартной функции
>меняй вызов стандартной функции os.listdir на вызов стандартной функции
Че бля?
мимо автор велосипеда
благодарит по-вкатывальщьи
slots
У тебя же в ошибке все написано.
Ты пишешь логичную структуру, а потом внезапно съезжаешь с катушек и пишешь эту хуйню:
>a = int(2)
(где int вообще лишний, a = 2 по дефолту integer)
>a.cache = []
т.е
>2.cache = []
Что это? Естественно, он будет ругаться.
Анон, есть что-нибудь ультрагодное по шаблонам? Пытаюсь въехать в ООП и шаблоны, но идёт туго. Инфа преимущественно обобщающая, мне бы что-нибудь с примерами реальными и желательно на питоне.
Хочу написать плагин для коди и на этом попрактиковаться в ООП и паттернах, но в голове каша.
Я ООП и шаблоны вообще не курил, нахуй оно мне надо
Нахуй тебе не нужны эти шаблоны.Просто пиши код 24/7 и со временем сам будешь видеть как и где правильнее будет сделать
шаблоны дело годное
тащемто берёшь любую книгу по шаблонам и читаешь в метро и вдохновляешься. Ищи просто шаблоны и паттерны ООП
Можно конечно методом тыка до самому допереть. Но лучше почитать уже о изобретённом велосипеде. Как профит твои проекты будут так структкрированы что на них уже можно будет фапать еще не запуская. Мне лично очень импонирует секси кодик.
Чего?
Это часто чревато желанием впихивать десятки ферм фабрик синглтонов там, где можно обойтись функцией в несколько строк. Был у нас один такой любитель создать 10000 файлов в каждом из которых один класс с геттером и сеттером
ну когда только учишься так и будет
все равно общая тенденция в програмаче идет к упрощению.
Ведь шаблоны нужны исключительно для того чтобы код был поддерживаемый. Но это понимание приходит не сразу. Для начала нужно накостылять тыщу файлов фабрик и хитровыебаных сетеров
Да просто хочу работать на портфолио. Типа чтобы было что будущему работодателю показать, типа я не быдлокодер, а интеллигент, кек. Ну а вообще первым проектом бота делал для телеги, и я настолько хуёво его написал, что если исправить что-то в одной функции то сразу появляется 10 новых ошибок. Это принесло много страданий, боли и проёбанного времени, поэтому учиться писать хорошо надо с самого начала, ящитаю
>Про то, что Питон позволяет выполняться только одному потоку слышал, про ядро слышу впервые
Не уметь в логическое следствие - дорого стоит, хохлик
Олсо я просто передаю всё в форме на этот url и при создании объекта он невалидный. Всё остальное без ошибок. Хотя ввожу правильные буквы.
чуть позже глубже почитаюб стдлибы напишу уже более вдумчиво
сейчас смущает тот факт что ос.волк теряет адрес, следовательно надо все делать поштучно
Всё, разобрался как эта хуйня работает. Пиздец блядь гайд для ёбаного дополнения для ёбаного вима 2к строк, да они все ебанулись!
не тот тред
Привет, как в matplotlib изменить цвет для объекта класса figure?
точно :(
>os.chdir(WRK_DIR)
починил
хм
>>78866
>Что это ты там костылишь?
шебм из шапки + >>77071
не могу переделать аноновский код, слишком рекурсивно для меня, когда вывод одной функции использует другая -- мой извилины просятся наружу, пробовал дебажить и ходить по шагам, но оно не взлетело
так что проще самому доделать как и хотел сразу
теперь у меня есть ринейм и ща приделаю создание папок, а потом копию в них
все пожалуй на сегодня, если что пишите в лс ахаха
вообще учу для создания одного диплома, и, надеюсь, что эти знания могут понадобиться мне при следующем поиске работы в мухосранске - красноярске
>слишком рекурсивно для меня, когда вывод одной функции использует другая
Мань, ты сейчас описал полную противоположность рекурсии, насколько только это было возможно.
При рекурсии функция вызывает себя внутри себя.
да надо бы грузануть гигом жипежек, а то так неясно нихуя
>>79016
>При рекурсии функция вызывает себя внутри себя.
>new_filename = f.replace("-","_")
>new_filename = "kml_" + new_filename
>os.rename(f,new_filename)
е е ай кнов, один хуй слишком сложна, особенно когда без каментов и не на одном экране
>надеюсь, что эти знания могут понадобиться мне при следующем поиске работы
Спешу тебя огорчить:
https://habr.com/post/322332/
Да, я читал про это. Пиздец. Придётся всякую херню учить, сорт оф php и 1с битрикс
Даже Java нет. Просто блять не верю. Как будто розовые очки слетели
>не надо учить питон, потому что потом не сможешь писать САЙТЫ ПОД КЛЮЧ за 20 тысяч в месяц
Проигрунькал со статьи. Это троллинг такой?
>2 года учил python, django и Cты-то куда лезиш, хуесосина
>В итоге, не знает даже Flask
Сренькнул с подливой.
Тогда уж сразу на BrainFuck.
Что не так?
>Получается ситуация, что можно изучить клевый язык программирования Python и остаться на улице уехать из мухосрани покорять столицу, с жильем яндекс\майл поможет, да и всегда можно модно молодежно прожить какое то время в хостеле. А можно выучить «ненавистный» php/1c и получить работу, кататься по говнам и впаривать 1ску тетям-сракам на пекарни инсталить, а потом править код за подпивасными васянами 1сникам\пыхарями. Качество этой работы, конечно же, оставляет много вопросов – но это уже опыт.
Можно подумать, в столицах дохуя требуются питонисты.
В итоге получается именно так, что
>Сразу идет большой отсев вакансий, где Python является исключительно вспомогательным языком
Что сказать то хотел?
Очень сложно. Я делал классификатор байесово-решающего правила, но я извращенец, поэтому реализовал его js+ jQuery
А тебе для чего, если не секрет? Ргз, диплом или работа?
Дипломчик. На js мне вообще не варик, кроме питона и немного С вообще нихуя не знаю
LDA гугли
>pathlib
оно конечно модно молодежно и высокоуровнего, с кучей плюшек и няштяков, но как я блять эту портянку сраную должен сплитить!?
просто в ахуе с его аутпута
да вы заебали блядь, сука кого слушать то нахуй, кто у нас тут авторитет, нука встань, покажись епта
>Че ты хочешь сделать?
раскидать говно по папкам, чутка осталась финалочка
>>79192
ебать ты туговатый братишка, я же специально для тебя проводник открыл
Хуле не нейронки? На питоновских библиотеках ты это за два дня сделаешь с нейронками. Скачай кайрос и простой словарь на нужном языке.
Где ты его открыл, нахуй?
А чё б не качнуть Anaconda Potrable - там много всякого вшито такого, чего не поставишь в Python Portable. Чего только стоит Sympy. 500 мегабайт весит вся анаконда.
Гайс нид хелп , пишу диплом для шараги на пайтоне ,суть в том что уменя уже есть UI к нему надо присабачить парсер сайтов , хотя бы для вики и хабра , подскажите советом есть ли способы получить текст с тегов сразу , про BeautifulSoup знаю , а что то что сразу дает текст есть ?
lxml и xpath. Xpath умеет в нормальный .text(), в индексы без ёбаных nextSibling'ов. Попробуй, ещё захочешь
scrapy же сть
почему при вызове метода update_user не хочет обновлять запись в бд?
Почитал самоучитель на орге, полистал документацию, прорешал Укус Питона, осилил 470 страниц изучаем питон лутца(такое чувство что это тупо переложение документации), дальше не пошло, состяпал пару парсеров, чуть допилил, поразбирал код ученических програмок с гита...
а дальше как? Может кто ни будь расписать за полноценную комплексную программу изучения Питона? И какая его реализация лучше, может сразу Cython изучать?
ps кроме того почитал первые 100 страниц sicp, вкатился по введения по трилогии Танембаумачто бы иметь представление ну и по вики пошарил.
почему при вызове метода update_user не хочет обновлять запись в бд?
Придумай себе достаточно большой но не огромный, посильный проект и оттачивай на нём навыки. Cython это вообще другое, это тебе не нужно.
array = [1, 4, 0, 3, 0, 1]
как сделать чтобы у него вместо цифр которые не 0 появились единички?
resultarray = [1, 1, 0, 1, 0, 1]
как я понимаю надо запихнуть лямбду которая будет каждый элемент делить на себя если это не 0
но в записи вида d = [x/x for x in array] я ифки не нашёл
десу
ёбаныйврот
Спасибо, получилось
>сокеты-хуёкиты
Чат напиши. Или игру. Сетевой рогалик чтобы с графикой слишком не ебаться. Или пошаговое что-нибудь.
ну открой ты блять работа.яндекс или хх сука ну не тупи блять, откуда мы тут можем знать актуальный и востребованный стак технологий
"Отличное знание Python 3, желательно -Tornado, asyncio (aiohttp), PonyORM, Psycopg, SQLAlchemy, Flask, Pyramid/Werkzeug, Pylons, Hypothesis, Pytest, Nosetes"
первая же открытая вакансия... как то дохуя всего и врятли хотя бы 2\4 будет использоваться
Есть поисковая выдача с аниме сайта вида
{'name': name, 'link': link, 'thumb': thumb, 'info': info}
Естественно в поисковой выдаче тайтл бывает и не один, и не 10.
Собственно очевидным для меня является здесь список из словарей, но учитывая свой прежний опыт, когда я сначала наплодил сущностей, а потом страдал с извлечением из них данных на несколько уровней вложенности, теперь у меня фобия.
Посоветуй быть может принцип хранения и извлечения данных, чтобы после этого с ним было удобно работать. Я, если честно, не знаю где такой конструкт мне ещё пригодится, но пригодится 100%.
Как мне например потом обращаться к конкретному тайтлу? Через индексы в листе? Это же уёбищно! Или нет?
>>79437
Дрочево?
Не будет использоваться?
Вместо того, чтобы разобраться в десятке библиотек для питона, ты собираешься их с нуля писать?
Дружище, почему тебя ещё не выписали в силиконовую долину за 3000к в наносекунду?
У тебя же золотые руки, ты с нуля, в сроки, напишешь полный стак для веб-приложения.
Уже полчаса с этой проблемой ебусь вместо того, чтобы дальше кодить
Видосов в гугле полно! Готовься, потому что все говорят что собеседований нужно проходить много, с понтом с первого раза хуй пройдёшь.
>glob.glob('*.jpg'):
как сделать это говно отъебавшее мне голову сука регистронезависимым?
хавает эта дрянь только один аргумент, хотел тупо капс подставить но нихуя
дядь ну папок то много, с паттерном я угадал охуенно, приспособить под новую залупу легко просто модно молодежно в одном месте, не сравнить с той оопешной портянкой анона и трилионом ненужных защит
а вот про расширение как то забыл
https://repl.it/@JanWhite/ComplicatedEssentialSystemresource
У кого есть время - зацените, буду рад любым комментариям о том, что не так, что надо исправить все как всегда.
Кстати есть проблема, с которой так и не смог разобраться - пикрил. Frame с игровым полем должен занимать все свободное пространство. Но при сильном растяжении появляются эти пробелы. Почему?
Потому что Саммерфильд и Лутц рассказывают о нем, а не о кьюти. Потому что он стандартный и работает везде, где есть Пистон.
>работает везде, где есть Пистон
>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 есть на всех нормальных машинах
Так проблема не в ОС, а в твоем пистоне в котором по какой-то причине нету tkinterа
А, блять, это ж линукс, либо то скачай ебать, как-будто там qt не надо доустанавливать в питон
>pacman -S tk
meh в опциях оказца был
ну рамки пиздец ад, меня таким на первом курсе шараги на плюсах ебали
хотел было написать что шрифт говно и де для ущербов, но походу я сам ОБМАНУЛСЯ
str = 'Получать каждый деньНе получать оповещенияПолучать каждый часПолучать каждый деньПолучать еженедельно'
нужен из нее массив, по фразам, которые начинаются с заглавных. С регулярками не дружу, подскажите, пожалуйста.
можно проверить заглавные с помощью метода isupper()
как вариант: "\" экранирует букву "i".
Во-первых, ты хуй.
Во-вторых, интерпретатор понятия не имеет, где лежит каталог 'front', даже если бы он лежал там же, где твой PY-скрипт. Начинай с диска C:\\ и пиши путь с него до конца.
В-третьих, '\' - элемент экранирования. Для указания пути его нужно тоже экранировать, а следовательно, писать '\\'.
В-четвертых, .read вообще работать не будет. Вернее, будет не так, как ты хочешь. Это функция. Функция должна иметь скобки после нее.
В-пятых, ты хуй. Пререкаться он тут вздумал, не прочитав основы основ.
На питоне ведь нет фриланса, правда?
Типо просто поставить .pack(side='left') хуйня как по мне, если бы были проценты в ширине и длине, то ещё как-то бы ужился, но это уже совсем пиздец. блять, что я вообще написал, бред какой-то, крч просто поделитесь опытом корырянии в этой залупе, может остыну наконец
просто тикель днина ебаная, господа пользуются кути дизигнером и суют в него скриптули свои
и шо це такое?
Прекратите вы уже пытаться пилить гуи на питоне. Заебеньте на c# в студии, по красоте. Нахуй страдать с этими ткинтерами?
насколько быстро можно туда вкатиться чтобы написать простенькую хуету с формами и обработкой полученной инфы?
У тебя ошибка, скорее всего в коде.
>было удобно работать.
Так а чты с этими результатами хочешь сделать-то потом? От этого удобство будет зависеть же. Вывести их все на экран? Тогда список, да. Если тебе хочется иметь быстрый доступ к любому случайному тайтлу по названию, чтобы вытащить картинку или инфу, то сделать словарь.
>>79643
https://repl.it/repls/FlimsyFaintSoftwareengineer
>>79684
>Начинай с диска C:\\ и пиши путь с него до конца.
В относительных путях нет ничего плохого, они даже хороши, особенно если хардкодятся пути.
заюзай какой-нибудь визуальный конструктор форм, типа https://github.com/alejandroautalan/pygubu
>requires Python >= 2.7
1)Какого рода вопросов стоит ждать по html и css?
2)Какого уровня должны быть(и нужны ли они вообще джуну или прихватятся потом) познания в во всяких js, jquery и иже с ними?
3)Правильно ли я понимаю что относительно свободного владения по данным https://youtu.be/070WyS06e-Q https://youtu.be/DEwgZNC-KyE темам хватит что бы себя показать в непосредственно python?
4)Прошу пояснить где та тонкая грань необходимых знаний по самому фрейморвку.
5) Чем помимо корявого бложека разукрасить git?
6) В какую БД сделать упор MySQL или же postgres?
7) Нужно ли джуну знание всякой асинхронки типа tornado и ajax? Накидайте по возможности годных факов по ним.
По-моему, без js в вебе делать сегодня абсолютно нечего.
Отсюда вопрос: а нахуя вы вообще учите питон и джанги, если всё равно потом js учить? Почему бы сразу на ноду не укатиться?
А зачем тебе приложение работающее на всём? Это прямо как охуительная история с джавой и тремя миллиардами устройств
Что значит вкатиться? Ты просто идёшь и пишешь классики с немного другим синтаксисом. Нихуя сложного
spasibo, posmotrim
Есть ссылка:
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
Как мне из неё получить рабочую, вот такую:
https://fs.netvi.ru/stream/2676301.mp4?d=1419&ri=LLELxb1a0U2nqaicOyuV5g2&ref=http://aniplay.tv/animes/realnaya-devushka-3d-kanojo-rus&s=KZw7Me0IRYr7UPb_hlh85CWjkT_ATb-3TRs6XzXQ3ru0a_nHUIGslGkbOBa8MRMF0wlG5Ht6tUaoU-LqY0ATZA2
Пиздец через какую же боль и страдания нужно пройти чтобы написать ебучий парсер если ты ньюфаг
Блядь, на каждом этапе проблемы, нельзя просто так взять и получить ссылку на видео.
И тебе спасибо.
for y in list:
for z in list:
for a in list:
print(x(y(z(a))))
Как избегать подобных конструкций?
Должен существовать простой и элегантный способ, чтобы перемножать между объекты.
и он называется Numpy!
https://docs.scipy.org/doc/numpy-1.13.0/user/quickstart.html#basic-operations
>нельзя просто так взять и получить ссылку на видео.
Зато насколько слаще потом дрочишь на это скаченное видео!
Пошёл нахуй. По твоему вообще зачем питон нужен?
одна комманда и моя ванна полна говна
теперь передомной возник вопрос - что делать дальше анон? гайды дохуя замрочные, почему там блять ПРОСТО не написано как это подключить что б работало?
ну и да есть хоть какой то выйгрыш для конечного пользования в тикеле заместо кути?
и еще чем отличается tk вкладка от ttk ?
> from flask import g
> каждый пук на глобальных переменных
> самый популярный python микрофреймворк
за що?
Спасибо, анонче
Как в питоне проглить параллелизм и автоматическую векторизацию функций, условий и циклов на GPU?
Попробовал вот это:
https://nyu-cds.github.io/python-numba/05-cuda/
в частности - вот это:
from __future__ import division
#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)
И оно не работает.
Но если сделать сначала, как написано в примечании, то работает...
Хотелось бы автоматически параллелить код, чтоб жужжали видеокарты, а не процессор.
Как в питоне проглить параллелизм и автоматическую векторизацию функций, условий и циклов на GPU?
Попробовал вот это:
https://nyu-cds.github.io/python-numba/05-cuda/
в частности - вот это:
from __future__ import division
#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)
И оно не работает.
Но если сделать сначала, как написано в примечании, то работает...
Хотелось бы автоматически параллелить код, чтоб жужжали видеокарты, а не процессор.
Чтоб не делать SET NUMBA_ENABLE_CUDASIM=1, прописал в .py-файл это:
http://possiblybrainful.blogspot.com/2016/08/numba-and-cuda-toolkit-8.html
import os
os.environ['NUMBAPRO_NVVM']=r'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\nvvm\bin\nvvm64_31_0.dll'
os.environ['NUMBAPRO_LIBDEVICE']=r'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\nvvm\libdevice'
Вижу тут есть некоторые методы векторизации функций:
http://hplgit.github.io/primer.html/doc/pub/plot/._plot-solarized005.html
и тут: https://docs.scipy.org/doc/numpy-1.13.0/user/c-info.ufunc-tutorial.html
через ufunc. Она пишется на языке С.
Вопрос: можно ли как-то автоматически, преобразовать функцию на языке puthon в ufunc на C,
или же просто векторизовать циклы и условия в какой-нибудь питоновой функции, вида
>def myfunc(x)
> ... return someone
или векторизовать весь py-файл, ну - чтобы видимокарты гудели.
Ну, тащемта, такие смутные мысли меня и посетили при установке видимой студии. Удалил, стёр.
Потом поставил, начал смотреть. Не, вроде бы да...
Виртуальное окружение железного питона проёбано, вся реализация какая-то мудрёная, подходящая для формоклёпок от МС и Бырланда/Эмбракадеро
Ну и славно. Лежат ещё Атом и Эклипс с PyDev. Зря только железного ставил
Написал скрипт для текучки в офисе, появились другие желающие им пользоваться.
Скрипт использует dash и plotly, чтобы из браузера можно было смотреть, ну вы понели.
Вопрос: как поставить питон на windows server, чтобы скрипт был доступен не только, когда включен мой ПК, а всегда крутился на серваке.
Есть windows server и доступ к нему. В администрировании я вообще не шарю, к сожалению
питояншишь его в numpy
>>> a = np.random.random((2,3))
>>> a
array([[ 0.18626021, 0.34556073, 0.39676747],
[ 0.53881673, 0.41919451, 0.6852195 ]])
>>> a.sum()
2.5718191614547998
>>> a.min()
0.1862602113776709
>>> a.max()
0.6852195003967595
Зная самый большой элемент, можно построчно построить новый лист, не включив именно этот элемент.
Попробуй обратиться к тому, кто в вашем офисе занимается администрированием этого самого windows сервера.
список файлов формата .txt
в каждом из них строки порою различного формата, числа, к котором я хочу обратиться также бывают с точкой или с запятой в качестве десятичного разделителя. Числа расположены даже в пределах одного файла в разных местах. Помимо нужных чисел также есть другие числовые значения, но чаще все же они отдельно стоят. Но когда они есть это может быть проблемой, их можно и спутать видимо
Задача: по каждому файлу считать сумму
Как я хочу сделать:
1. либо считываю каждый файл в питон либо открываю все циклом(чаще всего файлов кроме этих формата .txt в папке нет)
2. тут я хочу написать какую-то функцию которая будет для всех строк в каждом файле выбирать нужное число
В общем вот, не знаю зачем я это пишу, кода не прошу - возможно совета. Цель именно сделать самому,
>либо открываю все циклом
Че бля значит все целиком?
Хер знает что у тебя там за различный формат, для всех стандартных json, csv, html, xml etc есть стандартные парсеры. Если у тебя какой-то кастомный формат, то тут берешь регулярки модуль re и хуяришьбез задней мысли
Есть вопрос. Как правильно править код в файле 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
В душе не ебу где качать Visual C++ 2015, поэтому качнул и поставил mingw32
http://mingw-w64.org/doku.php
и вот эти все компиляторы: http://win-builds.org/doku.php/download_and_installation_from_windows
Комманды, из папки компилятора - выдают следующее:
gcc -dumpversion
ld -v
dllwrap -version
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.
Есть вопрос. Как правильно править код в файле 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
В душе не ебу где качать Visual C++ 2015, поэтому качнул и поставил mingw32
http://mingw-w64.org/doku.php
и вот эти все компиляторы: http://win-builds.org/doku.php/download_and_installation_from_windows
Комманды, из папки компилятора - выдают следующее:
gcc -dumpversion
ld -v
dllwrap -version
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.
Сам накостылял такой вариант https://pastebin.com/kwFMesdV
Он шустрый, что плюс, он он "субъктивный" что ли, те, если сгенерить рандомом одно и то же число, но пройтись по списку чисел (1, 2) в другом порядке, то и результат выйдет другой. Есть идеи?
Делал скрипт вычисляющий победителя по кол-ву купленных тикетов товара.
Хуярил всех покупателей тикетов в единый список, длинной == общему кол-ву тикетов, каждый покупатель повторялся в списке столько раз, сколько он билетов купил (это шанс), как по мне - самый простой вариант.
Твой алгоритм (скажем, при выпадении в рандоме 0,3 - те 30 элемент в твоем списке) даст разный ответ, в зависимости от того, в какой последовательности ты положил числа в список (те первые 50 это единицы, вторые 50 - двойки, или наоборот).
У меня так же хуйня, только без списка (который сам по себе медленный, так еще и растет пропорционально размерности задачи).
> Скажем, есть числа 2, 1, их вероятности равны 0,8 и 0,2
Рандом даёт флоат от нуля до единицы.
return 2 if rand < 0.8 else 1
Если несколько чисел так с вероятностями будут, то либо сортируешь и быстро высчитываешь длину «блоков» одинаковых чисел и за счет этого выставляешь сразу вероятности, либо заводишь словарь, где ключ — определенное число, значение — общее число совпадений в списке (после заполнения словаря можно будет рассчитать вероятности).
Далее имеешь что-то вроде списка кортежей (число, вероятность), сумма вероятностей будет единице равна. Код получения рандомного элемента в этом случае будет примерно так выглядеть: https://ideone.com/uFWrpA
Писал в спешке, проверь все сам.
У меня список не растет, он от 30 до 150 символов.
Ну ок, первые 30 это единицы, вторые 70 это двойки, затем применяю рандом.choice на это все, работает вполне себе.
Не ок? Тогда стоит перемешать при заполнении, или после, сохранив пропорцию.
Медленно? Применяем нампай.аррай() и методы нампая.
Бля, точно, отвлекся на свои дела. Тогда у тебя самой простой и очевидной части кода нет, в чем проблема-то?
>Не ок? Тогда стоит перемешать при заполнении, или после, сохранив пропорцию.
Вот это уже годнее вырик
Почитал, что ты там написал в ОП-посте, и могу только сказать, что ты что-то не так понимаешь. Так делают _все_. Если шизик, то отсортируй список кортежей по нулевому элементу, но это явно хуета будет ненужная, если че.
Верно, но как я сказал - у меня жестко задан размер ограничениями системы.
Думаю при 5к я бы встретился с медлительностью кода и начал думать над более быстрым решением.
Но вот приведенный код, я так до конца и не понял, что там и к чему.
Ну ты забавный просто. Функция рандома — возвращать некоторые с виду случайные результаты в зависимости от разных факторов. Что зерно ГПСЧ, что логи драйверов, что порядок входных данных — всё сойдет. Нет никакого смысла тебе от еще одного фактора рандома отказываться, делая сортировку.
Я вообще не программист и изучаю 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')
Понимаю, что выходит говнокод, т.к. количество повторов одной операции будет равно числу сочетаний выбранных фильтров из все дропдаунов.
Как записать это всё более кратко?
Можно ли задать список из параметров и проверять это в цикле? Я пробовал, но не вышло.
Как примерно выглядит такой цикл?
у меня есть список из параметров для дропдаун лист (столбец один, столбец 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()
Как их вместе связать, я даже не знаю.
reduce() - это совсем не то, что я имел ввиду.
>b(a(a(c(e()))))
Это просто пример.
По факту, мне нужна выдача:
i1()
i2(i1())
i3(i2(i1()))
i4(i3(i2(i1())))
И так далее, до указанной вложенности.
В том числе, на выходе, мне нужно не только финальное значение, но и все промежуточные.
Другими словами, мне нужен itertools.product('ABCD', repeat=5)
Но, вместо выдачи уровня:
('A', 'A', 'A', 'A' ,'A')
('A', 'A', 'A', 'A', 'B')
('A', 'A', 'A', 'A', 'C')
Нужна выдача:
[a(), a(a()), a(a(a())), a(a(a(a()))), a(a(a(a(a()))))]
[a(), a(a()), a(a(a())), a(a(a(a()))), b(a(a(a(a()))))]
[a(), a(a()), a(a(a())), a(a(a(a()))), c(a(a(a(a()))))]
...
[c(), c(c()), a(c(c())), d(a(c(c()))), a(d(a(c(c()))))]
...
[e(), e(e()), e(e(e())), e(e(e(e()))), e(e(e(e(e()))))]
Анон, у меня есть год опыта на реакте и ноде. Но весь этот цирк во фронтэнде дико заебал. И я хочу перекатиться в питон. Реально ли питухонщиком устроиться имея только опыт в жсе? В дс/дс2 конечно же.
itertools.product([a,b,c,d])
а затем получившиеся списки функций через reduce пропускай.
https://repl.it/repls/SoupyWhimsicalProducts
>>81075
Реально ли вкатиться маляром имея только опыт сварки? Ты что на питоне делать-то хочешь? Бэкэнд на жанге писать? Нода же лучше во всех смыслах.
Кстати, это я что-то неправильно делаю, или макакыч отрубил ссылку в сообещениях? Простым текстом остаются.
Насчёт
>В том числе, на выходе, мне нужно не только финальное значение, но и все промежуточные.
>[a(), a(a()), a(a(a())), a(a(a(a()))), a(a(a(a(a()))))]
Только за несколько product'ов или combinations_with_repetition в лупе. По-моему, никакой дефолтной функции для этого нет. https://stackoverflow.com/questions/8371887/making-all-possible-combinations-of-a-list-in-python
ты скорее всего намудрил дохуя
не ебашь много функциональных функциональностей на ровном месте, а просто напиши как есть:
func_list = [f1, f2, f3, ..., fN]
res = func_list.pop(0)()
for f in func_list:
····res = f(res) # ну или yield
return res
1280x720, 1:16
Я правильно понимаю, что все эти сайты возьму mail.ru для примера крутят у себя на компах какой-то http сервер, который слушает, как я понял, 81 порт. Это и позволяет моему браузеру обращаться к сайту и получать html странички. Включая обращение к почте. Это так?
При этом они так же могут одновременно крутить другую программу-сервер, которая слушает 25 порт вики говорит, что он зарезервирован под smtp, чтобы я мог писать\читать почту без браузера, а с помощью спец программ например моего говноскрипта. Это так? А вот все эти автоматические сообщения при регистрации где-нибудь которые высылают подтверждения, логины, пароли, тд, они с помощью этого и реализованы? Когда я жму 'зарегистрироваться' в браузере, это отправляет http запрос на сервер, который будет другую программу, которая по smtp или любому другому современному протоколу отправляет сообщение о регистрации на указанную почту. Да? Это так работает?
И ещё немного. Чтобы сделать свой охуенный сайт, мне нужно только написать программу, которая слушает http порт - 80, и отправляет в ответ на реквесты html странички, да? А как я сделаю это - на сокетах напрямую, или с помощью модуля http - вообще не ебет? А всякие приколюхи типа Gevent, Tornado, Apache, nginx - это упрощения, чтобы я сам не занимался прослушкой порта, распределением работы с клиентами на треды\процессы\гринлеты\котлеты, а писал только то, что нужно делать, работая с клиентами - как отвечать на запросы, к каким бд обращаться и тд.
Да? Все, я достиг просветления?
>>81091
Заработало, спасибо.
А промежуточные значения я забираю ещё одним for лупом сверху всей этой конструкции.
>>81102
То, что я намудрил дохуя, даже не обсуждается.
>func_list = [f1, f2, f3, ..., fN]
>res = func_list.pop(0)
>for f in func_list:
> res = f(res)
> return res
Ты ведь сейчас просто описал мой луп, но без вложенности.
нотепад плюс плюс
Этож типа просто функция ?
зачем .py дописывать ?
А я знаю про range, я в "SoloLearn: Учимся программировать" об этом немного проходил. Это когда циферки от нуля до указанного числа ну или циферки между двумя цифрами, а ещё там можно указывать шаг с которым надо считать от нуля или первой цифры.
Нет. Всё не так. http здесь вообще не при делах. Почта работает почти так же как реальная, есть отделения (SMTP сервера, релеи), между ними ходят письма пока не дойдут на целевой SMTP сервер. Соответственно тебе чтобы отправить письмо нужно сдать его в отделение — отправить с SMTP сервера, чтобы принимать тоже нужен SMTP сервер. А то что по http это считай такой аутлук заебенили в облаке, подключенный к их собственному SMTP серверу (gmail.com, mail.ru, inbox.ru, etc).
Pycharm 2017. Стоят предыдущие питоны, скачал и поставил Python 3.6.5. В настройках проекта в списке интерпретаторов его нет. Как его туда добавить ? В переменные окружения его директорию с поддиректориями прописал
Эх, все время забываю на каком сайте сижу.
Слишком очевидно. А вот так лучше, можно даже на джун собесы этот вопрос задавать
Если ли разница у вывода каждого фрагмента кода и если есть, то объяснить почему
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)
доп скобки для того, что бы человек подумал про кортежи
>>76187 (OP)
Привет, анон. Как работает вариант, где лямбда выражение в качестве аргумента используется?
https://docs.python.org/3/tutorial/controlflow.html#lambda-expressions
Все, разобрался.
Вторая хуйня войдет в бесконечный цикл из-за ебаного генератора? написал, и проверил. оказалось прав. теперь принимай меня на работу, быстроблять
Так вот если вызвать скрипт из консоли, то он нормально выводит кириллицу. А вот при вызове из 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. Если да, то какой тип данных у математических операторов?
Прошу простить за тупой вопрос
НЬЮФАГ С ТУПЫМ ВОПРОСОМ СПЕШИТ В ТРЕД
Появился глупый вопрос, который хочется задать в этом ИТТ треде.
Решал простую задачку, где пользователю необходимо ввести два числа, знак математического оператора, а шайтан машина выдаст ему ответ. Но решил, что путь через сравнения c помощью if слишком очевидный и решил ответ пользователя не связывать с прописанными под условиями вариантами, а изменить тип переменной, содержащей ответ пользователя,со строки на 'математический оператор', но пайтан меня не понял, когда я пытался обозвать + типом int, затем я начал гуглить, какой тип имеют математические операторы, но ответа не нашел.
Дальше Я написал что-то типа этого:
x = input () # Вводим математический оператор.
print (type(x)) # Узнаем его тип данных.
<class 'str'> ответил Py и я согласился.
Затем я попробовал сделать вот так:
print (type(+))
Но так Питончег меня не понял и выдал ошибку.
С этим я к вам и пришел.
Вот вопросы:
1. Применимо ли понятие "тип данных" к встроенным функциям и математическим операторам?
2. Если да, то какой тип данных у математических операторов?
Прошу простить за тупой вопрос
Так то хз, но по факту "+" это метод, те 1 + 2 это 1.+(2).
А зачем тебе тип плюса?
Все что введено через input будет иметь тип str
Если if не устраивает, то используй словар
{
"+" : a_plus_b(a,b),
"-" : a_minus_b(a, b)
}
Дальше сам поймешь
Плюсик это не объект, и потому у него нет типа. Это специальное слово, говорящее интерпретатору что делать. Типа import, def, for. В данном случае оно говорит вызвать метод __add__ того объекта, что слева от плюсика, и сунуть в этот метод тот объект, что справа от плюсика, как аргумент. А может и нет, я хуй знает вообще.
Для такого тебе нужно писать парсер и придумывать свои типы для операторов, чисел, скобок и т.д.
>О чем речь вообще?
хочу сделать подбор паролей для архивов.
>PS не юзай потоки в питоне.
Почему? я юзал уже, довольно неплохо (на мой уровень) вышло
[CODE]if FirstOne.Angle < FirstOne.Angle + 30:
FirstOne.Angle = FirstOne.Angle + 3[/CODE]
И?
Вот вам молодой и амбициозный прожект очередного микро-веб-фреймворка
https://github.com/danieldaeschle/swapy
Какой смысл юзать потоки, если поток все равно один?
ЗЫ организовывай очередь через модули queue или select, отуда и бери строку\номер строки
Где же ты был раньше, этому миру остро не хвататет веб фреймворков. Как минумум на каждого кодера должны быть 2-3 штуки, а сейчас и 1.5 не наберется
Уже понял где проебался. Под вечер голова совсем не варит.
спасибо, просто хотел как-то оптимизировать и ускорить свой старый код
Да, вот такой здесь тред. Написал вопрос, на него хуй кто ответил, и ты сам находишь ответ. Здорово, правда? Нахуй этот тред вообще нужен, спрашивается?
Естественно самый гемор это строки. Как мне преобразовать данные в строку в 2 питоне? у меня есть строка str(data) и она вызывает ошибку UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
Если делаю .encode(utf-8) то всё норм, но в этом случае код перестаёт работать на 3 питоне. Чё делать та?
Хуй с ним, с этим я разобрался. НО КАК ТЕПЕРЬ БЛЯДЬ ВЫВОДИТЬ КИРИЛИЦУ В ТЕРМИНАЛ СУКАААА??? Пиздец какая же параша этот ваш 2.7
Просто напиши враппер на фортране.
Кто какие расширения юзает в виме в для создания своей идеально Python IDE?
Мой списочек (я пока что новичек):
nerdtree
vim-autoclose
vim-colorshemes
matchtag
Ты ебанько? Человек спустя 6 минут написал, что разобрался. Хули тебе от нас надо?
Я как-то два треда подряд просил подсказать, как запустить стороннюю программу от администратора и хуй кто подсказал.
Нашел ответ на мейл.ру. НА МЕЙЛ.РУ, КАРЛ!
А я тебя помню, пидор, тебе же дали верный ответ, но ты хуесос неблагодарный сделал вид, что ты дартаньян.
это эффективно?
Никто мне не дал верный ответ, ты ошибаешься. Я сам нашел решение и отписался по нкему, если кому-то еще бы понадобилось.
Я ж не тот уебан с ветки форума пятилетней давности, который пишет вопрос, а после того, как ему никто не ответил, отписывается "nvm found solution", после чего закрывает тему.
Ай не пизди, мне лень прошлые треды пересматривать, тебе там давали способ, не знаю какой ты нашел на мэйл ру, но тот точно работал.
squares = [x2 for x in range(10)]
Не посоветую. Ищи сам, потому что своим советом могу тебя отпугнуть от изучения, вдруг проект окажется слишком сложным для тебя? Я же не знаю какой у тебя уровень владения языком. Поэтому анонче ищи самостоятельно. Главное не очкуй и форкай, сообщество тебе подскажет, где ты обосрался, а гже и коммитом поможет.
Согласен! Нахуй пиздеть, что ответ нашел на мэил ру?
Напомни, что ль, что за проблема была и что за решение, а то я не помню, о чём речь.
Ты хули такой адекватный?
То есть когда ты пишешь там вот такая справа от текста есть палочка |. Но тут она из-за черного фона пропадает, сливается. Это не есть круто.
Нет. Все как было.
Все, я понял.
Решил проблему подрубанием самописной либо на Windows API, которая заменяет цвет каретки. Только проблема - она изменяет ее не только внутри программы, а вообще во всем компе. И проблема номер два. После перезагрузки каретка не меняется и остается того цвета, который был задан.
Инквизиторы, ссылки из ОП поста и гугл прошерстил, спрашиваю предметно:
Необходимость изучения Пайтона с целью применения в финансовой сфере (IB-хуйби). Начинать изучение также как и всем, или есть более ориентированная на фин моделирование литература/ресурсы?
Сам два года уже изучаю/применяю в работе VBA, немного SQL позадрачивал через sql-ex.
Рыбья головёха!
os.startfile('porn.exe', 'runas')
Да нет, есть же куча уже примеров этой стандартной функции.
Это копия, сохраненная 26 июня 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.