Это копия, сохраненная 2 сентября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Свой код кидайте через https://ideone.com/
Книги: https://yadi.sk/d/tArKKuQu3Kejuq
Прошлый тред: https://2ch.hk/pr/res/1037373.html (М)
>Для таких как ты придумали while True
Давай, дебс, посчитай мне номер итерации своим вайлтру. Только без a=0 a+=1
Где это такое собеседование, с такими заданиями? Я думал, что вакансий на питоностов с уровнем трейни нет
не питонист,junior qa
чисто показать базовые навыки(которые на уровне днища)
Ну ты сразу не гарцуй, можешь как всезнающий дебич выше пока пользоваться While true, и ошибки не вылавливать, потом как разберешься с мелкой хуйней уже учи библиотеки встроенные.
На 9 строке input с name перепутал
Почти на любой прогерской вакансии (кроме 1с) требуют минимум уровень чтения технической литературы
трейни это совсем начинающий программист
И насколько хорошо надо читать? В документации по питону куча идиом и 20-30 слов в одном предложении.
https://en.wikipedia.org/wiki/Ring_(programming_language)
Там все идиомы запоминаются быстро же, плюс технический английский гораздо проще разговорного, почти всегда единственное время, куча повторяющихся слов (функция, переменная, возврат, название типов\классов), отсутствие воды
>И насколько хорошо надо читать?
Что бы без проблем ориентироваться в документации
Вряд ли он догонит уже сформировавшийся рынок. Интеграцию с C прекрасно реализует и сам питон.
https://docs.python.org/3/reference/introduction.html#introduction
>but will leave room for ambiguities
Без словаря не понял.
>maybe you could volunteer your time — or invent a cloning machine :-).
Со словарем даже не понял шутки.
И это один абзац всего.
Ну шутка о том что ты можешь себя клонировать вместо того чтобы тратить свое время, видимо.
Мимопроходил, контекст не читал.
Это вступление, оно обязано быть "водянистым"
Тут попробуй
https://docs.python.org/3/library/abc.html
Я завис над словом infrastructure в первом предложении. Родина меня к такому не готовила.
"Модуль предоставляет инфраструктуру для определения классов" - что это? Я знаю что такое модуль, класс и определение, потому что эти слова встречались мне тысячу раз и я читал их развернутые определения.
>>1040944
>volunteer your time
Ну как это можно перевести? И таких шуток-прибауток в технической документации очень много.
Инфраструктура это совокупность методов (в общем смысле), для того, что бы что либо функционировало, не вижу ничего такого
Тут имеется ввиду наверное интерфейсы, которых в питоне как бы то и нет, но они как раз в abc.
Мимоходил не читал.
Ну с практикой и так все пришло, но над словами я меньше зависать не стал. Где-нибудь через полгода найду внятное объяснение "инфраструктуры" и вспомню что где-то и когда-то про это уже читал. Или не вспомню даже.
Допустим, пользователь вводит "--upgrade" и приложение само обновляется...
Как реализовать?
>Учитесь исследовать.
Ну охуеть.
Скачивать файл обновления, удалять exe-шник, а лучше переименовать, на всякий случай и скаченый файл назвать как старый exe-шник. Только в шперме сработает или нет, хз.
Может сразу код за тебя написать? Пиздуй в гугл, там все есть.
Ты интрепретатор засовываешь туда, что ты хотел
Интерпретатор+либы которые юзал, все ок.
C Руби и рельсами путаешь. Питон универсальный язык. Но то, что там нативный код нормально не собирается, большой минус.
Ну так и сравнивает, поэлементно идет, есть несовпадение - возвращает False, нет - True
Есть и получше. Тот же степик или codeenterpreneurs.
При том что это тоже ОС. Чё как глупенький? Пидоры и слесаря тебе совсем крышу промыли?
>При том что это тоже ОС
Ты что-то путаешь, венда это прошивка для запуска игор и винлокеров.
Пердоля, а ты в курсе что ядро NT пилили серьезные дяди из проекта OpenVMS (ось для военных и объектов стратегического значения)? В то время как твое ведро с гвоздями вышло из пера полубухих вонючих хиппи-слесарей. Ось для игры в Спейс Тревел, ось которую не жалко было отдать забесплатно.
А ты в курсе что вся эта швабодка - это ко-ко-ко. Линус на армии хомяков сколотил $300KK (не в секунду, а реальные, довен). Слесарям вообще для жизни мало чего надо. Еще 10 лет назад все слесаря ко-ко-ко что гуи не нужно, да и сейчас ко-ко-ко. Кое-как убедили нвидиа и ати поставлять драйвера для мамкиных воннаби-ко-ко-ко-администраторов что их формочки не тормозили. Поставят себе серверные оси и ебут друг друга в жопу. Ужаснах. И вообще ты много не ко-ко-ко про сервер-сайд, там вообще минимализм чтобы меньше чему ломаться было. Короче все что можешь сказать - это ко-ко-ко и твои аргументы стремятся к нулю.
Я мимоначинающий, но уже пишущий себе рабочие скрипты для около-SMM-задач посмотрел все 20 уроков.
Очень доходчиво объясняет основы.
Вывод: для новичка типа меня весьма годно. Но дальше без чтения книг как я понял нельзя обойтись.
А какие именно можешь сказать?
А то синтаксис изучил и нужны проектики поделать и гит запихать, пока что кроме стандартной борды/микроблога на фласке и консольной читалки для имиджборд ничего не придумал
Есть вообще такой ресурс с идеями для начинающих?
Нет, лутц это чистая теория, и то не вся, нужны какие нибудь идеи для готового маленького приложения, что бы разобраться как самому собрать что либо
Пример: {"test_1": ["some_string_1"], "test_2": ["some_string_2", "some_string_3"]}.
Этот словарь нужно сохранять в JSON, а потом, при необходимости, загружать JSON.
Все было хорошо до тех пор, пока в словаре не стало 1.5 миллионов пар. При записи или загрузки JSON, памяти занимается 1Гб. И скрипт завершает работу с ошибкой Memory Error.
Как оптимизировать эту штуку? Начать смотреть в сторону базы данных?
Нихуя не понял, тебе надо жсон объекты куда-то сохранять, а при необходимости к ним обращаться? Или в памяти держать?
>Начать смотреть в сторону базы данных?
Это нужно было сделать сразу, ты же знал, что записей может быть очень много
Или поставь 64-битный питон и можешь жить до того момента, как размер словаря достигнет 2 гб
При необходимости обращаться. Скрипт генерирует текст. Обратиться к словарю -> получить слово -> если нужно, еще раз обратиться, но уже с другим ключом.
В памяти мне не обязательно держать 1.5 миллионов пар.
Записей может быть произвольное количество. Может быть 2 миллиона, может быть 200 штук. Для 200 штук логично использовать JSON, а не базу данных. Или нет?
Кек, там далеко за 30 мбайт исполняемого кода, когда sqlite весит меньше полутора.
https://github.com/JohnStarich/python-pool-performance
Я очистил все неважное для моего вопроса, чтобы легче читалось: https://ideone.com/ehojKc
Суть такая: программа принимает какую-то строку и парсит ее. В части случаев достаточно вернуть заранее известное значение, и такие значения я вынес в словарь switch. В других случаях для ответа нужна логика, и каждую такую логику я вынес в отдельные функции.
В итоге моя программа - отвратительная лапша с кучей ифов. Я уверен, что можно организовать все это гораздо лучше, но как? Помогите!
Джанго это тоже самое , что и Фласк, только у джанги шибко больше возможностей из коробки(орм, автогенерация админки и другое), также больше востребована на рынке, документация на 1800 страниц а у фласка 300
Лисп учи.
Js и стать сеньором 150к
В машин леарниг окунуться, там и раскроешь свой потенциал
Че мне пиздеть? Лабы на си в вузе писал.
Как может заебать писать на чем-то? Если проект заебал то возьмись за другой.
x=int(input)
y=int(input)
....
Объяснять почему в данной ситуации видимо нет смысла. Читай любой учебник с самого нуля.
x=int(input())
y=int(input())
print(x+y)
А вообще выучи сначала хотя бы базовый синтаксис, рекомендую первые главы Программирования на Python Лутца
Поехавший чтоле?
input - это функция. Следовательно должно заканчиваться скобочками input()
всё, я покакал
Так а результат от чего зависит? То есть, если я сравню две строки, аля print(s1>s2), то Питон вернет True, если каждый n-эй элемент s1>каждого n-ого элемента s2 и False если хотя бы 1 n-ый из s1< n-ого из s2?
В попытках выбрать правильный язык, чтобы сразу устроиться на работу, то можно вообще ничего не изучить. У меня так было. Я выбрал сразу сложный язык, в результате бросил на пару лет. Питон самый легкий язык, благодаря ему понимаешь основные принципы в программировании. Потом легко даются все другие языки.
Создай сервис по работе с биткоинами. Бери за это небольшую плату за свой удобный сервис. Будешь миллионером через год или раньше. Проблема, что тебе придется изучить этот рынок, найти проблему, которая всем мешает и решить её.
Напиши прогу, которая с помощью нейросети сможет распознать все хуйню в моей папке с порно (и видео и фотки) и расставить им правильные теги.
Это не трейни
>>Подробнее, какой именно сервис?
Если бы я знал какой именно, я бы сам сделал. Сделай как делают в стартапах
изучить рынок -> найти проблему -> решить проблему -> брать за это деньги
Есть конечный список делимых a, есть конечный список делителей (простые числа) b. Не могу сообразить, как реализовать следующее: мы список a последовательно делим на первый элемент списка b пока там хоть что-то нацело делится (даже если это несколько итераций т.е. 8:2 = 4, 4:2=2, 2:2=1), и лишь после этого уже переходим к следующему элементу в списке b.
Ха, я поставил по 3 пробела, имитирую табуляцию, но они проебались почему-то. Ну и похуй.
Да, работаю в СПб уже 8 месяцев. Пифон онли.
Может у кого осталась эта литература на русском? Киньте пожалуйста.
Однажды я шел, гулял, никого не трогал. А блядское яндекс-такси на полной скорости въехало в лужу рядом со мной, и вода промочила мне штаны до колена насквозь. Пришлось идти домой. Пошел этот яндекс нахуй.
Не особо надеюсь, что в этот раз мне и правда перезвонят.
“Learn X in Y minutes - Python 3”
“Think Python: How to Think Like a Computer Scientist”
“Intermediate Python”
>Вы уже установили Python версии 2.0 или выше (рекомендуется Python 2.2)
>This book is still being written. You can read the revision history to see what's new. Updated 20 May 2004. Email me if you'd like to see something changed/updated, or suggestions for this site.
Дрочка на алгоритмы, которые надо знать наизусть. Зарплаты неадекватно низкие.
>в 2012
>читал книгу написанную в 2011
Пусть лутца читанет лучше
В 5 издании он про абстрактные классы и ассинхроность говорит что нибудь?
Общий вид кода: https://ideone.com/JEnViz
Здесь:
вводится строка data;
строка парсится Message(data);
в куче определенных случаев вызывается соответствующая функция functionn;
в другой части случаев возвращается соответствующее ключу значение из словаря.
В итоге программа напоминает свалку из if и функций всех калибров. Как такую программу можно сделать стройнее?
>ВАЖНЫЙ ВОПРОС ПРО Tkinter
Друзья , делаю гуй на tkinter и хочу чтобы в прожке был бэкграунд из картинки и на этом фоне уже размешать текстовые поля. У текстовых полей есть выделяющаяся граница. Можно ли ее как нибудь убрать или сделать прозрачной, чтобы только осталось поле ввода белое?
Ну как вариант, завести словарь вида d={'something':value_function} и
for key in d.keys():
if data.find(key) != -1:
return d[key]()
В data просто строка. Моя программа - это сервер, который через сокет получает пакет байтов. Сервер отвечает на запрос, и data переписывается новым пакетом.
Насколько я понимаю, вариант со словарем не подходит, так как мне нужно вызывать определенную функцию, в зависимости от того, какой запрос серверу поступил.
>вариант со словарем не подходит, так как мне нужно вызывать определенную функцию, в зависимости от того, какой запрос серверу поступил
def Message(data):
d={'something':value_function}
for key in d.keys():
if data.find(key) != -1:
return d[key](data)
А если тебе надо больше одного ключа обработать, то замени return на yield.
В Перле объект в json перегнать не проблема: ведь объект -- это просто словарь, на который намазали синтаксического сахара. И все базовые типы там хороши для json. Чем отличается питон? Да ничем, но перегнать объект в json выглядит как нехилый геморрой.
Хочется иемть следующий интерфейс библиотеки: я задаю несколько аттрибутов класса A значениями типа a = Dict(), b = Array(), c = Int(), d = Custom(Cls)... а библиотека генерит для моего класса конструктор + автоматически умеет делать json из него типа и обратно: load(json_string, A). Киллерфича в том, что можно рекурсивно задавать документ через Custom, указывая все новые и новые кастомные классы.
Есть такая библиотека? Все что я ни нашел либо умеет работать только со стандартными типами, либо хуярит полное название класса в json и делает прочие странные вещи.
KPACUBO, благодарю.
>первый пик
Гвида в запой ушел что ли, что у него лицо такое опухшее? На русского стал похож просто пиздец как.
С выходом 4-ой версии.
Ой, ну надо же! А вы не знаете другие языки? Сразу пытаетесь выбрать правильный язык, чтобы найти работу? Я так пытался, в результате ни один язык не освоил. А вот когда питон изучил, мне потом дались легко другие языки. Потому что питон - это невероятно легкий и правильный язык. И я продолжаю на нем программировать. Большинство программ я сделал на нем. А когда на работу устраиваешься и начальника дает задание, то его мало волнует на каком языке будет реализовано. Мне лично удобно на питоне. Быстро и качественно. Между прочим, когда я только начинал его изучать, в России все носились вокруг Дельфи. В то время как в Америке питон набирал обороты. Вот питон пришел в Россию. В Россию все немного с опозданием приходит.
Сейчас модны всякие жабаскрипты, но это ненадолго, эйфория пройдёт. Когда в сыром остатке останутся корявые, многотонные приложения, которые невозможно ни обновлять, ни поддерживать. А деньги все проёбаны.
Это же вкатывание в программинг вообщем.
>>1042021
В стандартной библиотеке про тк почти нихуя не написано.
Сам когда-то педалил tk приложение на питоне, пользовался http://www.tkdocs.com и http://www.tcl.tk/man/tcl8.6/TkCmd/contents.htm, когда совсем прижимало.
https://github.com/twitter/twurl
Делаю, как написано здесь: ввожу в командную строку % gem install twurl. На выходе получаю -bash: fg: %: no such job.
Прочитал документацию по установке модулей, гуглил, но все равно не смог решить проблему. Погроммировать начал сегодня, командную строку увидел вчера. Помогите мне, пожалуйста.
Оч смешно, долго думал над шуткой?
Анон, ничего не работает (b - список простых чисел до N, d - список всех целых чисел до N, с - просто пустой список):
for x in b:
for j in d:
if j % x == 0: #делим весь список d на первый элемент b
d.insert(x, j/x) #если элемент d делится нацело, заменяем его на частное d/b
c.append(x)
else:
continue #если не нацело, оставляем как есть
print(c)
>Process finished with exit code 0
python -m pip попробуй.
Вообще нужно установить python3.6-dev, а затем создавать virtualenv, потому что так не делается.
https://pip.pypa.io/en/stable/installing/
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py --user
pip install --user virtualenvwrapper
В ~/.bashrc
export PATH=$PATH:$HOME/.pip/че-то там/bin #путь к pip в домашней директории
export WORKON_HOME=~/Envs #Эту строчуку в ~/.bashrc
mkdir -p $WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv env1
workon env1
pip install poshёl_nahuj
>source /usr/local/bin/virtualenvwrapper.sh
Вместо этого source "полный путь к virtualenvwrapper.sh"
Из интернета скопипастил от лени
для virtualenvwrapper может понадобиться питон указать в ~/.bashrc
>>1042608
Какой длл хелл, когда в лине есть репозитории и расшаренные библиотеки. Если разный софт использует общие библиотеки, то они не будут хранится в 100500 экземплярах как в виндовом софтае бгг.
>Кароче ребята, нужно загружать файлики на сервер по http, но при этом еще и после каждой загрузки делать некоторую магию
Если для себя в один поток то http.server
Если под нагрузку то либо синхронные flask/bottle либо aiohttp
Ну так и ставь разные версии, кто мешает. Через пару лет везде будут snap-пакеты и аналоги, которым похуй и на либы, и на дистрибутив, и даже на количество запущенных копий себя.
Спасибо большое.
Вот только в списке "с" должна быть последовательность простых чисел, а 46 - не простое.
Ну так и напиши функцию, которая проверяет простоту числа. А лучше писать все условия в одном посте, а не добавлять после каждого ответа.
if isPrime(temp):
c.append(temp)
Не видел этого в документации. Первый раз наткнулся на stack overflow, когда рефакторил код.
'http://q...content-available-to-author-only...e.com/page/2/' -> ['http:', '', 'q...content-available-to-author-only...e.com', 'page', '2', '']
'' - [-1]
2 - [-2]
page - [-3]
Песец, я всё понял пока курил.
>Ну так и напиши функцию, которая проверяет простоту числа.
Написал точнее взял готовое решение. Отдельно работает.
>А лучше писать все условия в одном посте
Мне нужно найти наименьшее общее кратное первых, например, 20 чисел. Для этого я:
1. Получаю список из 20 этих чисел. - d
2. Получаю список простых чисел в этом промежутке (от 0 до 20). - b
3. Беру первое простое число и делю список "d" на него до тех пор, пока там что-то делится нацело. Причём каждый элемент, который делится нацело, я пытаюсь заменить на частное от его деления на это простое число.
4. После каждой итерации деления списка "d" на простое число, это самое простое число заносится в список "c".
5. Числа которые нацело на то простое число не делятся - пропускаются.
6. В конце концов в списке "b" должны остаться только единицы.
7. А в списке "c" - разложенные на простые множители элементы списка "b". Перемножив которые получается наименьшее общее кратное.
Но я - криворукий нюфаг, у меня нихуя не работает.
https://pastebin.com/FTGYeAT8
Но это пиздец костыльно, хочу через классы сделать, но не понимаю, как работает ООП в этом ебаном питоне (джава удобнее в сотни раз).
В общем вы поняли.
Ещё, очевидно, необходимо сделать выгрузку всех объектов в файл и обратную загрузку в объекты при запуске алгоритма. С этим сам уже разберусь.
Никак, возвращайся на яву.
Чего бля? Если я верно понял твой сумбур то есть @classmethod, который умеет возвращать cls.
>надо чтобы каждый новый пользователь добавлялся как объект в класс пользователей
Что это за говно?
> На данный момент обхожу это простым import users.py и в функции регистрации ListOfUsers = open('users.py', 'a') и так добавляю туда собственно переменные
АААААААААААААААААААААААААА, ТЫ ЧТО, ЕБАНУТЫЙ
ТЫ ЗАЧЕМ ПОЛЬЗОВАТЕЛЕЙ АППЕНДИШЬ В ПИТОНОВСКИЙ ФАЙЛ КАК В ТЕКСТОВЫЙ
ХОЧУ БЛЯТЬ СКАЗАТЬ ЭТОМУ ЁБАНАМУ ДЖАВЕ НАХУЙ, ЁБАНЫЙ ТЫ КАЗЁЛ НАХУЙ, ЧЕРНАЖОПЫЙ БЛЯТЬ, БЫЛ БЫ ТЫ ЧЕЛОВЕК НАХУЙ, ТВОЮ JVM КРУТЯТ НАХУЙ ГДЕ НИ БУДЬ НАХУЙ БЛЯТЬ, ОНА НАВЕРНОЕ РАБОТАЕТ ХУЙ ЗНАЕТ ГДЕ НАХУЙ БЛЯТЬ, А ДЕТИ ПИШУТ НА УУУУУ, НА ПИТОНЕ НАХУЙ, ПОЧЕМУ ТАК НАХУЙ? ПОЧЕМУ ДЕТИ ДОЛЖНЫ, ОНИ ДАЖЕ ДЕТИ ВЕЧНЫЕ ДЕТИ НАХУЙ!!! ЭТО НАШЕ БУДУЩЕЕ НАХУЙ!!! И ХУЛИ ТЫ ПИЗДИШЬ ЧЦУКА?! ЗАЛУПАЕШЬСЯ БЛЯТЬ! ТРИМЁГИ НААА КАБИНЕТЕ ХУЙ ГДЕ ЗНАЕТ ГДЕ БЛЯТЬ, ХУЛЬ ТЫ СЮДА ЛЕЗИШЬ?! К ПИТОНИСТАМ НАХУЙ! ЗАПОМНИ... У МЕНЯ ЕСТЬ БЛЯТЬ, ХОРОШИМ ПРОГРАМИСТ... Я ЕГО СУКУ БЛЯТЬ ОТДАМ ДЕНЬГИ, ШОБ ТЕБЕ ЭТА СУКА В МОЗГУ ВЪЕБАЛ ПУЛЮ НАХУЙ, И ЧТО БЫ ТЫ СУКА ЗАКРЫЛСЯ НАХУЙ, И НИКОГДА СЮДА НЕ ЛЕЗ. ПОНЯЛ?! БЫДЛО ТЫ ЕБАНОЕ БЛЯТЬ! ВСЕ НАХУЙ...
Чтобы импортить в мейн как переменные с параметрами пользователя в содержании и просто юзать users.user_id отделяя из неё параметры через регулярки/:: очевидно.
Это всё внутри бота для телеграме, бтв, потому айди имеется у всех изначально и он фиксированный. Сам придумал этот костыль, ага.
Покажи код, аж интересно стало, что ты там нахуевертил.
пошел нахуй и во первых ты пошёл нахуй ты мне все равно ничего не сделаешь я в другом городе
Во 2сори за мат
3 ты мне ничего не сделаешь всё равно я в другом городе
Кромешный пиздец
Почитай вот это вот
http://slusar.su/izuchaem-python-n19-rabota-s-bazoy-dannykh-sqlite/
Мой скрипт посылает поисковой запрос на vk.com/audio?q=%название песни%; парсит страницу; дает пользователю выбор какую песню из выдачи скачать; находит прямую ссылку и печатает в консоли. Какой библиотекой можно эмулировать нажатие плей в плеере вк? Почитал html-код страницы музыки, там плей, вроде как (я не очень разбираюсь в js), вызывается функцией toggle_audio(this, event). Вот как мне: 1) вызвать эту функцию или же эмулировать нажатие плея? 2) получить потом прямую ссылку на media mp3?
Заранее спасибо
>7. А в списке "c" - разложенные на простые множители элементы списка "b". Перемножив которые получается наименьшее общее кратное.
Общее кратное для всех элементов b.
Я так понял, тебе нужно найти два числа, которые после умножения будут наименьшим общим кратным числа.
Input: 7
Output: (1, 7)
Input: 8
Output: (1, 2)
Это то, что тебе нужно?
Это не профессия, просто хобби. Очевидно, для всякой несложной хуйни на андроид.
>тебе нужно найти два числа
Нет, мне нужно найти наименьшее общее кратное для нескольких чисел. Поэтому я и пытаюсь использовать списки.
Т.е. я ввожу , например [10, 4, 7, 12], а он мне выдаст 420.
Для начала стоит все же разобраться в жс
А потом ты поймёшь что тебе нужен будет селениум
Питоном по другому жс не потеребишь
Я не понимаю тебя. Элемент в списке b тебе нужно разложить на два простых числа?
Числа разложены, но множители не простые:
{3: (1, 3), 6: (2, 3), 8: (1, 2), 14: (2, 7), 15: (3, 5), 535: (107, 5), 92: (23, 2)}
Числа разложены и множители простые:
{6: [2, 3], 14: [2, 7]}
Что-нибудь из верхнего тебе подходит, если нет, то кидай больше примеров для разных ситуаций.
>Элемент в списке b тебе нужно разложить на два простых числа?
Да, на простые числа. Нет, не на 2, а на сколько получится. 8, например, разложится на 4 двойки.
>Числа разложены и множители простые:
Да.
>особенно не понимаю, как он выдал тебе 420.
Это просто пример. Для вышеприведённого списка, наименьшее общее кратное - 420.
Но код мной написанный сейчас не работает.
И я был бы признателен, если бы пояснили, что с ним не так.
- найдите спрашивать
- иногда мало путание
- хахаха
- хороший вопрос
Сообщество самых тупых нигеров, сука.
Тут же вроде описано >>1042657 пункт 5
Например, есть список [4, 9, 10, 11]
Берём двойку, делим список на неё - те, что на цело делятся, заменяем на частные от деления на 2, что не делятся, оставляем: [2, 9, 5, 11]. Видно, что список можно ещё раз поделить на 2 делим: [1, 9, 5, 11]. Потом переходим к тройке, делим: [1, 3, 5, 11]. Ещё раз делим [1, 1, 5, 11] и т.д. В конечном списке будут единицы.
Таким образом, мы дважды поделили на 2, дважды на 3, единожды на 5 и 11.
2^22^35*11=1980 - наименьшее общее кратное для чисел [4, 9, 10, 11]
Ты че шизик какие нахуй плей, какие нахуй кнопки. В ВК есть API, да такой, которому многие позавидуют.
Примерно так нужно было и писать. Намного проще и понятнее. И да, не 1980, а 3960. Деление на два было три раза.
Так? https://pastebin.com/ikEug3rC
>И да, не 1980, а 3960
Как раз таки 1980. У нас было 2 итерации с делением на 2, и две итерации с делением на 3.
Ты хочешь перебирать список снова и снова? Я же, в цикле while, делю число до тех пор, пока оно не будет равно единице.
Вставь print number, '-', prime_number, '-', number / prime_number в начало while.
4 - 2 - 2
2 - 2 - 1
10 - 2 - 5
9 - 3 - 3
3 - 3 - 1
5 - 5 - 1
11 - 11 - 1
И так правильнее, нежели перебирать список снова и снова.
Смотри, первая колонка - список чисел, для которых надо найти наименьшее общее кратное (от 1 до 10, например):
Вторая колонка - список простых чисел (в промежутке от 1 до 10):
Третья колонка - список чисел, разложенный на простые множители.
0 итерация: [1,2,3,4,5,6,7,8,9,10] [2,3,5,7] []
1 итерация: [1,1,3,2,5,3,7,4,9,5 ] [2,3,5,7] [2]
2 итерация: [1,1,3,1,5,3,7,2,9,5 ] [2,3,5,7] [2,2]
3 итерация: [1,1,3,1,5,3,7,1,9,5 ] [2,3,5,7] [2,2,2]
4 итерация: [1,1,1,1,5,1,7,1,3,5 ] [2,3,5,7] [2,2,2,3]
5 итерация: [1,1,1,1,5,1,7,1,1,5 ] [2,3,5,7] [2,2,2,3,3]
6 итерация: [1,1,1,1,1,1,7,1,1,1 ] [2,3,5,7] [2,2,2,3,3,5]
7 итерация: [1,1,1,1,1,1,1,1,1,1 ] [2,3,5,7] [2,2,2,3,3,5,7]
Перемножаем элементы списка из 3 колонки: 2^3x3^2x5x7 = 2520
Сразу нужно было начинать с таких примеров. "Болтовня ничего не стоит. Покажите мне код.", не так ли?
Первая реализация - https://pastebin.com/ikEug3rC
Вторая реализация (то, что тебе нужно) - https://pastebin.com/c8FLMypS
Повторюсь: я не считаю вторую реализацию правильной.
Время выполнения:
- первый способ: 0.00010488837868007572
- второй способ: 0.00012631238794238905
Для тестов использовались следующие значения:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
prime_numbers = [2, 3, 5, 7]
n = input()
if n in list:
print("Элемент есть в спике")
else:
print("В списке нет такого элемента")
Почему всегда выводит else? n в str пробовал переводить.
Если вместо n ввести например 7, то все работает.
input() строку возвращает.
Явно приводи n к числу: if int(n) in list: ...
И не называй переменные названиями встроенных сущностей.
Спасибо
>ошибка
Нет. Я же и написал вторую реализацию из-за этого >>1042767
Output отличается из-за количества перебора элементов.
Первая реализция - 152 перебора.
Вторая реализация - 228 переборов.
В каждой реализации разные условия, которые умножают натуральные числа. В твоем случае подходит вторая. Может, конечно, я неправильно понял задачу. Но ИМХО, первая реализация лучше и правильнее.
Причины:
1) Не вызывается функция, которая проверяет массив на наличие элементов, которые деляется на простое число.
2) Меньшее количество итераций по массиву.
3) Ну и, конечно, код чище и приятнее.
Работа первой реализации:
1) numbers будет перебираться ОДИН РАЗ.
2) number делится на prime_number ДО ТЕХ ПОР, пока остаток от деления не будет равен нулю.
3) multiple_number умножится на prime_number СТОЛЬКО РАЗ, СКОЛЬКО БЫЛ выполнен второй пункт.
Работа второй реализации:
1) numbers будет перебираться ДО ТЕХ ПОР, пока в numbers есть число, которое делится на prime_number.
2) ОДИН РАЗ перебираем numbers, и если число делится на prime_number, то заменяем его.
3) multiple_number умножится на prime_number СТОЛЬКО РАЗ, СКОЛЬКО БЫЛ выполнен первый пункт.
Может в этих пунктах я где-то ошибся, но думаю, что принцип ты понял. Счастливого кодинга.
Ахахх внатуре анально огородили. Ну молодцы, теперь только меденные кривые костыли писать. Добро пожаловать в век легального контента!
Как из json записать нужный мне ключ в переменную?
Например, из пика мне нужно записать айпишники в переменные.
Мне нужно перейти по ключу 'scan', а дальше что делать?
Добавь все ip в другой ключ.
data = {"scan": "ip": ["192.168": {...}]}
ip = data["scan"]["ip"]
data = {"scan": {"ip": {"192.168": {"some_key": "some_value"}, "168.192": {"some_key": "some_value"}}}}
aypeeshneeque = %json_name%['scan'][1]
Синтакс как у словаря. Если не получается пройти по "ключ: значение", то ключ - порядковый номер, как в списках.
JSON файл не меняется, он перезаписывается.
Читаешь файл -> добавляешь значение -> создаешь (заменяешь) новый JSON.
Принтани сц. Может тип данных не тот, я ебу. Там либо по ключу строке, либо по индексу как в списках.
http://jsonviewer.stack.hu/
Вот тебе еще годная тулза, я пользовался ей поначалу, пока не понимал как работает джсон, и сейчас иногда, чтобы разложить огромные, которые влом читать.
Хм, туплю. Есть так, то этот айпишник является ключом, а не значением. И этот путь ['scan'][0] сработает, если вместо нуля вставить айпишник.
Да, но мне нужно по-другому.
Мне нужно записать все ключи после ['scan'] в массив, допустим.
Как это реализовать?
т.е. в итоге, мне нужно получить все ип адреса в массиве и вывести их.
так я проверяю кто подключен к моему вифи
Надо считать их с другого места. Где-то там должен быть ключ, у которого значение - айпишник. Например где-то на пикриле.
Ты получишь словарь ВСЕХ ip адресов. А дальше делай с ними все что захочешь.
data = {"scan": {"ip": {"192.168": {"some_key": "some_value"}, "168.192": {"some_key": "some_value"}}}}
ip_data = data["scan"]["ip"]
print ip_data
print list(ip_data)
for key in ip_data:
print ip_data[key]["some_key"]
Выглядит правильно, но я не догоняю, как все это сделать.
У меня есть функция, которая возвращает dict. Как мне изменить его? Как добавить этот ключ ip?
не гоните тряпками, я только начал изучать пайтон
>добавить
Перегруппируй сам json, чтобы он имел структуру, которую я привел тебе в качестве примера.
Как раз питон и набирает. Постоянно, почти ежедневно приходят предложения о работе на постоянку. Банки предлагают и другие финансовые организации, хеджфонды всякие. Медицина ищет питонистов.
max сравнивает каждый элемент из 1 листа на n-ой позиции с каждым другим элементом из 2 листа на n-ой позиции.
1 < 4 -> [4]
2 = 2 -> [4, 2]
3 > 1 -> [4, 2, 3]
И да, list не обязательно. map уже возвращает list.
>Я уже навернул официальный гайд с опросами и ебанутый на феменизме туториал от джанго-девок
Этого достаточно, теперь пиши свою имиджборду.
прост
Столкнулся с трудностями ещё ничего не изучив.
Пишу привет мир, все дела, выбираю Tools>Run_command>python3 и вот такая дичь выходит!
И вообще, зачем тебе Comodo когда есть пиздатый Pycharm с пиздатыми шрифтами.
Хм, действительно на Pycharm все получилось. Спасибо!
https://kirankoduru.github.io/python/pypi-stats.html
За тебя тут гуглить должны?
Ты наверное и перед тем как писать забыл погуглить
https://github.com/lorien/captcha_solver
https://github.com/JeckLabs/aiorucaptcha
А это ваше поделие подозреваю https://github.com/AndreiDrang/python-rucaptcha
По-ходу их.
>.idea
И про gitignore видать не знают.
>flask==0.12
Вы че, ебанутые? Нахуя вам там фласк? Еще бы джангу в зависимости воткнули.
Ну пляшка у них для тестового сайта как я понимаю. Только вот нахуя оно в мастербранче действительно не ясно, ибо каждый будет качать пляшку вместе с ее кучей зависимостей просто так.
Не, ну ваще че это я, молодцы что пишите что-то. Поздравляю.
Да, это фейл, я лоханулся, думаем потом убрать эту ерунду т.к.и правда не нужна.
>>1043343
Знаем, это видимо на ранних стадиях проскочило, т.к. сейчас в гит.игноре прописано это все.
>>1043337
Спасибо за ссылку. Видимо не так как надо гуглил.
Насчет остального могу сказать лишь то, что я все это просматривал, когда выполнял заказ и ничего из этого не обладает полным функционалом и не покрывает все виды капчи.
Спасибо всем за отзывы и критику, все учтем и постараемся исправить. Тем более до конца еще далековато.
Ну тогда вам сверху накину, у вас там хардкод урлов, в т.ч айпи вашего сайта, подозрительные вайлтру без брейков. Конфиг бы вынести отдельно весь.
Рандомно файлы потыкал, ибо половина пустых. Не знаю что там еще. Создайте в конце концов dev бранч и там уже делайте пустые файлы и заполняйте их, а то невозможно смотреть код.
>Метод получает от вас ссылку на изображение, скачиваетего, отправляет изображение на сервер RuCaptcha, дожидается решения капчи и вовзращает вам результат
Откройте для себя удивительный мир BytesIO и TempFile, зачем мучать диск и проебывать скорость.
Насчет конфига понял.
Вайл тру там заканчивается ретурном, но если кашерней брэйк и затем ретурн - ок.
На днях заполним все файлы и лишнее удалим.
Спасибо за советы.
print("Your report was sent successfully")
return True
else:
print("Smth went wrong. Error: ",answer.json()["request"])
return (False, answer.json()["request"])
Для этого придумали эксепшены.
Окай, чекнем.
Так бля нагородили уже костылей, понимать надо что одно за другим тянется. Потом с нуля писать будете.
Я бы вообще обмазался абстрактным классом-интерфейсом, который задокументировал бы, и к которому уже другие или ты сам легко писали бы плагины провайдеров.
Все по плану, не боись. Еще будет типа errors.py со всеми ошибками и описанием.
Насчет абстрактного класса звучит интересно, подумаем, спасибо за участие)
хочу посмотреть на вашего питона
Как мне сделать хэндлер, который бы реагировал на любую команду через / кроме вышеперечисленных? Т.е. когда боту отпрравляют '/supdvach' - он бы обрабатывал строку 'supdvach', '/helloworld' - строку 'helloworld'. В документации не нашел.
Например:
a = int(input())
if a < -5:
print('Low')
elif -5 <= a <= 5:
print('Mid')
else:
print('High')
Программа предлагает просто ввести int. У меня автоматически появляется вопрос про некую строку перед вводом, типа "Введи число: ()". Как сделать такое книжка умалчивает (возможно где-то дальше будет). Я понимаю, что следует учить синтаксис, но всё это в кучу у меня пока не собралось и быстро найти ответ на конкретный случай сложно.
Не пинайте за тупой вопрос. Последний раз что-то писал 15 лет назад в школе на бейсике, а сейчас занялся этим из интереса и переодическим желанием сделать тот или иной инструмент для себя.
Спасибо, я пиздоглазик про них прочитал по диагонали.
Эрегировал блядь.
Фильтр делай который хэндлит все команды кроме тех что у тебя уже сделаны.
Потом в хендлере этого фильтра update.message.text.split(' ')[1:] это и будет твоя команда.
Инженер ты или хуй собачий. Если второе то болтайся себе между ног да хуйни не спрашивай.
> Инженер ты или хуй собачий. Если второе то болтайся себе между ног да хуйни не спрашивай.
Зачем столько агрессии?
Прости, просто гуглить лень, а тут такой момент, что спросить можно по теме
Бля, в MessageHandler вместо test поставить foo, ну или наоборот.
Не, нихуя, я проверил, этот фильтр стоит в коде после всех моих хэндлеров на обычные команды.
Если там как в треде то нахуй не нужна
Сэнкс
Ну примерно так. Два сообщения о питоне на сотню мемных
Тоже начинаю учить Питон. Вот два примера об отходе в сторону.
1)Делая какой-то пример по создании таблицы я хотел записать её в файл. На ближайших страницах я ничего об этом не нашел и пока забил. Через 2 главы познакомился с open() и всем таким и записал все в файл как хотел.
2)Читая про Iterator'ы я нихуя не понял и решил загуглить, в итоге я прочитал статьи в википедии о различных парадигмах программирования и статью на харбре про функциональное программирование. Это помогло мне чуть меньше чем никак. Так что на это я пока положу хуй.
Спасибо. По какой книге учишь?
Алсо, еще вопрос: невозможность без костыля собрать .ехе файл не является для вас весомой проблемой? А то я как-то помечтал о портативности самопальных проектов и GUI и приуныл.
>Алсо, еще вопрос: невозможность без костыля собрать .ехе файл не является для вас весомой проблемой? А то я как-то помечтал о портативности самопальных проектов и GUI и приуныл.
Является, не раз об этом говорил. Это огромный минус питона. Хотя никаких языковых ограничений для этого нет, Visual Basic 6 и Delphi могли же генерить нативный код с динамической типизацией (тип Variant).
На PyInstaller можно собирать .exe-шники, но он пихает в один файл все библиотеки, такой хоккей нам не нужен.
Любой дебил может, как это и есть в 99% случаев. Нейрохирургом да не всякий может.
Два чая. Нейрохирургу нужно долго учиться, и он не имеет права на ошибки. Кодить же можно обучить любую макаку.
Ну 99% случаев это жс, так что ты прав
https://docs.python.org/ или чё удобнее есть?
Ну доки обычно не читают как книгу, а обращаются к ним по надобности. Да, офишиалдоки это просто охуенно вылизанная штука как и сам язык.
Благодарю за ответ, веб -онли бэкенд? Для данных и машоба нужен ультра лвл матчасти?
>веб -онли бэкенд
Ну естественно. Есть транспайлеры в JS но такой экзотики никому не нужно.
>Для данных и машоба нужен ультра лвл матчасти?
Никогда не изучал. Но да, конечно понимание алгоритмов нужно. А так библиотека на библиотеке и библиотекой погоняет.
Меня интересует только веб. Я не зарабатываю деньги программированием.
Пиши на крестах и решетке - будешь среди братвы в местах не столь отдаленных, как свой в законе.
Например:
ggg = 64
x = 'ggg'
print(...(x))
которое выводит не ggg, а именно 64, при этом использование самой ggg, очевидно, необходимо обойти.
Уверен есть что-то такое, помогите пожалуйста.
>Using vi you can insert new text any place in the file quite easily.
Проиграл с бохатсва возможностей.
Pycharm > VS Code > другие IDE > современные редакторы > мамонтенков с вимами-хуимами.
Пишу в саблайме и не ебет, а нано лучший консольный текстовик на линуксе, я к этому.
Спасибо
Какая разница виртуальные они или железные, если там не винда.
Можешь вообще ничего не изучать, а сразу в начальники идти
Не мастхев, а плюс в карму. Вдруг потеряешь работу с админами подтирающими задницу и пойдешь фрилансить.
Зачем учить то на чем не работаешь, все равно забудешь же. Я вот php бросил год назад и уже почти синтаксис не помню, не то что ларавел. Хотя писал на нём год.
Прокрастинировал год на маминых борщах и пару месяцев назад прошел все доступные языки на sololearn. Питон поразил своим синтаксисом и решил писать на нем. Хотя еще руби нравится.
С работки на сололерн перекатиться очень круто.
>Вим не встречал
>PHP уже забыл
Хорошо бы было услышать от человека, который прошел огонь и медные трубы, тогда бы я убедился что vim в жизни не пригодится
Sololearn - хорошая быстрая обучалка незнакомым языкам. С вимом работал в вузе. На работке с сервером не я работал, хотя припоминаю что там что-то корректировали на ходу в текстовом редакторе. Огонь и медные трубы - это не про меня, я написал десяток лендосов, несколько многостраничников и пару магазинов.
Не то чтобы он пиздецки как нужен, просто вим удобнее, если выучить хоткеи.
Увеличить таймаут между запросами.
Но зачем?
имакса у заказчика на впс обычно нет, а vi с nano присутствуют.
Просто берешь и без задней мысли удаляешь.
sed 's/\(\n\|\t\)//g' -i файл
А есть возможность склеить все в один replace? Скажем, нужно удалить и \t и \n и ещё какую-нибудь ебанину посреди текста. Использовать replace много раз хорошая практика?
В модуле регулярок поищи, там есть такое
Много реплейсов делать не надо, т.к. строки неизменяемы, то каждый раз будет создаваться новый объект на каждый реплейс
Вот ты сейчас срачь с байтоебами спровоцируешь. Они очень гордятся, что в их языке нет сборщика мусора
Уничтожаются, но он сначало создается, потом уничтожается и так столько раз, сколько у тебя реплеев, если строчка большая, то это не очень эффективно
> это не очень эффективно
Так какой же питоник вей на этот счёт?
Пару дней назад решал задачу. Нужно удалить все html теги из текста, а так же строку "строка". Первый реплейс по регулярке очищает текст, второй удаляет "строка". А если бы нужно было ещё что-то удалить 10 раз? Не верю, что нет хорошего решения на этот счёт.
То что ты делал не питоник вей, уже есть готовая библиотека и метод под эту задачу, вот это уже питоник вей
Разве время на создание и уничтожение объектов не будет намного меньшим чем поиск модуля в файловой системе и его интерпретация? Или питон не запоминает в памяти последние загруженные классы и ищет код и интерпретирует при каждом создании объекта?
да блин каждый раз когда regexp у меня ступор на полдня, туплю дичайше, хз почему так)
\n чаще всего в конце строки, \t в начале, что мешает использовать str.strip()?
Но тогда почему если вообще убрать вторую борду, то с первой (которая называется просто test) спокойно работает? Да и это же строка, не может же быть так, чтобы джанга реагировала на любое test в строках, я не могу найти инфу про это.
Ок, я посмотрел трейсбэк и оказалось, что это тупил не этот реверс, а { url } борды в index.html. А тупил он потому, что в регэкспе url борды для short_name стоит [a-z]+, разумеется он не находил ссылки на борду по имени 'test3' и 'test blabla'. Case closed, слово test не виновато.
Встроенные библиотеки либо уже в байт-коде, либо написаны на сишке, так что время на интерпретацию почти не тратится
Вроде нет, если есть, то не так значительно по времени
Учи уже что-то. Почитать книги всегда успеешь.
К примеру, я вообще нихуя не читал, а только глянул синтаксис и сразу нырнул в requests и bs4
Откуда инфа?
Вот код http://ideone.com/nKrNns Когда вы нажимаете мышкой, то вокруг курсора создается 8 кубов по радиусу. Код брал из этого видоса https://youtu.be/ALfl4tebiQM
Лучшим подтверждением того, что питун используют в играх является список игр, которые сделаны на питуне
нужно в файле (1 на пике) services/collector/protocols/v11/handler.py импортировать BaseHandler, handler
как на пике сейчас нормально импортируется, но нужно не используя collector т.к имя директории может быть произвольным.
пробовал так:
from ...core.base import BaseHandler, handler
ошибка:
from ...core.base import BaseHandler, handler
ValueError: attempted relative import beyond top-level package
у services.collector есть __init__.py, может как то там хитро можно определить?
Короче все пути к модулям в питоне высчитываются относительно точки входа. Ты можешь запустить любой модуль если он находится на одном уровне с точкой входа или на подуровне, иначе запустить нельзя и надо регистрировать модуль в python path.
Если ты хочешь импортируемый модуль, то вставляй его в каталог/подкаталог с точкой входа. Инициализируй его по имени, а импорты пиши в __init__ модуля.
Хочу втянуться в асинхронный Python, конкретно в asyncio.
Не могу найти хороших гайдов.
Офдоки сухие, а гайды старые, где еще нет сахара async/await и все на декораторах.
Подскажите что-нибудь.
И разжуйте, когда я буду с этого иметь выгоду перед последовательным исполнением? i/o операции это я так понимаю работа с диском и сетью?
что ты мне объяснил довен!?
ты мне объяснил как из вложенного модуля импортировать
from base.VARIOUS_MODULE_NAME.core import MyClass ??? не используя VARIOUS_MODULE_NAME?
Собака сумасшедшая, пошел на хуй.
Не страдай, ставь сразу 3.6 и используй async/await.
Ахуй намбер раз: по-настоящему асинхронное i/o с диском у тебя не получится, сами ОС херово в него умеют, поэтому вариант только спавнить отдельный тред, где уже выполнять задания на i/o из основного потока.
Иначе выражаясь, асинк тебе поможет только на сокетах, пайпах (в том числе с дочерними процессами). Ещё планировщики на асинке делать удобно (где много разных sleep, call_at). Ещё парсеры, одним потоком можешь делать хоть тысячу одновременных http запросов.
3.6 и так стоит. Сейчас нужно вот например делать много запросов разных, и я думаю что пока они делаются можно было бы обработкой CPU забить вместо еблования. Как это сделать в aiohttp напрмер я нашел, но понимания нет нихуя.
Очереди тоже пригодились бы, сейчас пытаюсь строить распределенную сеть на Celery спецом физически разделяю воркеры потомуша не знаю асинка.
Так есть какие-то ресурсы современные? Документация похожа на автоген из докстрингов.
>Как это сделать в aiohttp напрмер я нашел, но понимания нет нихуя
вот так: https://pastebin.com/5XraaUA5
Да код-то я смог под задачу ебнуть. Я имею ввиду что нихуя от этого понимания не появилось.
я начал учить по видосам Майка Хилберта. У него по олдовой версии, но это заставляет искать различия и делать правильно на текущей. Что нихуево развивает. Рекомендую.
https://www.youtube.com/watch?v=oT1A1KKf0SI&list=PLxxA5z-8B2xk4szCgFmgonNcCboyNneMD
Вообще не понимаешь, как работает асинсхронность?
Грубо говоря:
Я кидаю в тебя палку. В ответ от тебя должен прийти крик, что я попал или тишина, если нет.
Я кидаю десяток камней и жду. Первый камень прилетел, ты крикнул. Второй промазал(ты промолчал, а я выждал 10 секунд). Как только ты крикнул, я бросаю тебе мячик. И так далее.
хуйню написал и рад
Не, ну не настолько не понимаю.
Суть понимаю, синтаксиса не понимаю. Семафоры, переключения и прочая поебень меня сразу встречает с порога в документации, я чувствую себя в какой-то секте, где все просвещенные секретным знанием, а я как хуй с горы пришел.
Просто вижу тут многие пишут на нем, да и сам много пакетов повидал на асинке, значит как-то же учат.
Ну всмысле выйдет только не будет толку ибо интерпретатор не знает где ему переключиться.
любой синхронный (блокирующий io) код можно обернуть в тред и выполнить не блокируя, через thread_pool_executor или process_pool_executor
А, ну это ясно. Жирно просто будет делать по треду на каждое изображение в dropbox.upload((image for image in cock_images)). Тут уж действительно проще руками вроппер на aiohttp переписать.
А коллбеки есть какие-то? Как проссать что результат в треде готов и получить его в основном треде?
Есть
Забудь про коллбеки. Суть await именно в том, что не коллбеков для тебя. Ты просто ждёшь результата в этой точке.
Немного со статьёй обосрался, но и эта норм.
Бля, да с тем же успехом я могу сказать, что time.sleep() асинхронный. Смотри:
def async_sleep(t):
....start = time.time()
....return lambda: time.sleep(max(0, start + t - time.time())
....partial(time.sleep, t)
handler = async_sleep(10)
print("ha-ha look, it's async!")
x = 2 100
print(x)
print("okay, waiting for sleep...")
handler()
print("done")
Это же совсем другое. Если это нельзя вставить в селект, то это не асинк с точки зрения пифона.
ки и позволяющую просматривать, добавлять, изменять, удалять или искать контактные
данные ваших знакомых. Кроме того, эта информация также должна сохраняться на дис-
ке для последующего доступа.
Так вот, я значит создал класс, создал словарь и дуплил, как запихнуть экземпляры класса со всей инфой в этот сраный словарь. Прочитал подсказку, оказывается я всё делаю правильно, но как сделать то, о чём я написал, там не написано. В гугле годной инфы не нашел. Хелп.
Какой класс создал? Можно реализовать класс собственный словарь, который умеет в добавление\сохранение\поиск
Ахуенна! А че я баклан еще не знаю о питоне.
Да не удалил мусор. Он же после return, считай его нет.
Можно в цикле requests get запустить и всё
А, я дебил, не обращайте внимания.
https://ideone.com/JZnZdU
На ошибку не обращай внимание, там питун старый и нет краткого форматирования
Можно от userdict, но все равно придется переопределять методы, если экзепшоны хочешь ловить и выдавать, что то типа "Такого ключа не существует", вместо кей эррора
Ну это просто рекомендация, типа лучше никогда не делать прямого наследования от встроенных типов, что б прям совсем питоник вей
Мамой не поклянусь, но кажись в самых новых версиях сиё непотребство уже исправлено.
Сам наследовал и насиловал built-in dict, он не жаловался.
По умолчанию файл создается байтовый, потому нужно переопределить на utf
Можно и трамвай из хлеба делать, но зачем?
Питун явно просядет по скорости в реальном проекте, а не в сталкивании камней в синтетике
У тебя не просядет.
Товарищ, не будем забывать о PyPy
Не много, сисадмин должен скрипты писать уметь, не больше, тебя по линуху дрочить будут
Как ты эту хуйню вывел?
Для асинка такое же есть?
Сук, сколько не искал - нихуя, в diagram тыкал, но там мне выдавало пустое поле с бегущим ползунком времени.
С одной стороны, меня заебало клепать однообразные запросы и лезть в модель при любом изменении в бд, с другой - орм это какое-то невероятное увеличение сложности.
Ну да, на соседней вкладке же, asyncio graph.
Я не знаю как отдельно вывести, вроде CProfile в PyCharm используется.
Если у тебя пишарм - то show concurrency diagram кнопка рядом с run. Но у меня PRO версия, может в комьюнити нету.
Чита за модули типа os(и прочие, для работы с ФС), модули для работы с сетью.
Ну а вообще многое зависит от того, что ты собрался писать и как упрощать себе жизнь.
И у меня про, кнопка эта есть, потыкаю активней сегодня.
os, sys, работа с файлами, может по бд что нибудь спросят
наверное у вас у админов файлы то огромные, и текстовые в том числе? и распарсить их было бы хорошо в несколько потоков...? и пожать/распаковать надо бы уметь из питона? ну и вообще уметь бы из питона юзать разные не питон проги.. гит опять же надо пару раз пулл пуш при автоматическом деплое... дальше сам продолжи)
Если ты ребят отблагодарить хочешь то найди их координаты и заплати.
А так ты кормишь в основном СЕО и верхушку, которая на потеху народу снимает видосики как они охуенно дружат с командой и заботятся о них.
Ну огромные файлы - это у аналитиков. Логи слшиком больше - признак дурного тона, т.к. найти в них один хрен ничего невозможно.
Работать с файлами, регэкспами - это да, но я умею.
А вот как в гит add и commit сделать - ХЗ как - можешь подсказать какой модуль использовать?
>или через просто командную строку
Тогда уж проще наебашить:
#!/usr/bin/env bash
cd gitfolder
git add
git commit -m "'$(date)'"
А чтобы git push origin master не делать каждый раз, добавить в .git/hooks/ файлик:
$cat post-commit
#!/usr/bin/env sh
git push origin master
Если бы ребята сами писали, то запилили бы еще один редактор с подсветкой синтаксиса.
a program that reads all the HTML files it is given on the command line
and performs...".
О чем это? Это надо открыть cmd через win+r сижу на шинде и писать что-то типа 'C:\путь к питону\python3.6.exe а вот тут уже перечисление путей к файлам' ? Зачем сие нужно? И в примерах часто есть использование sys.argv[], которая должна выводить список переданных в питон файлов. Я запускаю свои программы не через длинный вызов через cmd, а в PyCharme. И файлы можно открывать через open(). Зачем все сие нужно?
Ругаться он не будет, просто в один прекрасный момент можно случайно прострелить себе ногу
Передача файлов таким странным образом. Нужно открывать cmd и писать 2000000000 разных путей вручную. Зачем, если я могу сделать нормальную функцию с open()?
Работать с аргументами командной строки нужно потому, что именно так пользуются готовыми программами/скриптами без GUI — вводят
$ python myscript.py fileToProcess1 fileToProcess2
ну или даже если разрешено исполнение:
$ myscript fileToProcess1 fileToProcess2
Ты же не думаешь, что пользователь твоей программы/скрипта будет лезть в твой исходный код и в open вводить свой файл, который ему лично надо обработать твоим скриптом, вручную?
Более того, не обязатально каждый раз прописывать путь до python.exe, он и так должен быть у тебя в PATH.
>Ты же не думаешь, что пользователь твоей программы/скрипта будет лезть в твой исходный код
Можно сделать и интерфейс в консольке же. И поиск по папкам нужного файла и всю прочую хуиту. Но так понял, спасибо.
Ну можно, но это в 99.9% случаев нахуй не надо, потому что пользователю в итоге легче ввести $ yobascript ~/Documents/file.html и получить результат, чем тыкаться в консоли. Больше толку уже сделать гуй.
Какое охуенное название для нового модного языка, yobascript, пойду патентовать.
Ты о чем вообще?
Если я правильно тебя понял, то имеется ввиду открытие программы с каким-то файлом в виде аргумента. Open() это чистый хардкод, а в случае с аргументным открытием ты можешь из консоли запускать сразу же свою программу с другим, абсолютно любым файлом в виде аргумента. Например ты делаешь блокнот какой-нибудь и пишешь в консоли python3 notepad.py -open=~/textfile.txt
И он сразу же запустит твой блокнот с открытым файлом textfile из домашней папки.
Если неправильно понял, уточни.
Что self?
Но теперь я понял что у меня не запускается spider.
я не могу врубиться, какую функцию выполняют setitem и getitem? можешь объяснить ?
setitem, магические метод отвечающий за присвоении по индексу a = c
getitem отвечает за получение значения по индексу a
Когда сам их определяешь, то можешь извращаться как хочешь
Блядь, что происходит?
мб вернее будет сказать не по индексу а по ключу?
def __init__(self):
self.storage = {}
а вот это получается для каждого экземпляра класса свой собственный словарь?
Бля, забыл сохранить обрезанный скрин, вы уж извиняйте.
Да, __init__ определяет, какие атрибуты будут созданы при создании объекта класса
Анон, тоже только вкатываюсь в Питон и случайно увидел этот пост. А зачем делать отдельный класс под такое? сам до классов ещё не дошел Почему не использовать обычный словарь, где имя и фамилия-ключ, а все остальное - значение?
Спасибо
я имел ввиду что для каждого экземпляра создаётся собственный словарь или все экземпляры попадают в один словарь?
я имел ввиду что для каждого экземпляра создаётся собственный словарь или все экземпляры попадают в один словарь?
Ты про изменение text внутри parse? Допиши nonlocal text в начале метода, тогда он не будет пытаться создать новый text.
Первое
>>Питун явно просядет по скорости в реальном проекте
Ты дурак и не лечишься. Я же говорю про Блендер! Он питон использует всего лишь как скрипт-сценарий. В Блендере же есть собственный компилятор от с++.
А вот и илитные борщехлебы-разработчики игр на питоне, так где список игр на нем?
Учил питон ради работы, что ли?
2. Почему twisted.reactor нельзя запустить несколько раз. Он вылетает с ошибкой ReactorNotRestartable. Что за бред? Какая ему разница сколько раз он запускается?
А хотя нет, не орнул. Оказывается он с созданием списка долго возился а я его в асинковый бенчмарк засунул.
https://repl.it/KOFB/1
Возьми и перекати, если тебе так надо.
Ну вот получишь ты этот список и че дальше?
>ВАЖНО
Пачаны, собираю программу на PyQt5 в один статический файл с помощью pyinstaller и заметил, что любая программа весит где-то 15mb.
Ваши предложения, как можно уменьшить вес? Если делать в Ubuntu, то файл получается 35mb.
Еще такой вопрос, вроде бы лицензия запрещает делать статическую линковку с Qt5 библиотеками, но ведь вроде pyinstaller это что-то типо архива и по сути библиотеки статически не линкуются, не??
Как думаете, если создатели Qt5 узнают, сильно ли возьмут за яйки?
Есть кусок кода на Шарпе для шарпо-обертки для XGBoost. https://pastebin.com/pZsvvwU4
Почему-то XGBoost выдаёт совершенно одинаковые результаты какие бы параметры я не менял. Кроме objective, он меняет алгоритм.
> Так вот, никто не мог бы помочь и набросать пару строк на Питоне? В общем, есть файл input.json, там объект с четырьмя полями: TestInput (float[][]), TestOutput (float[]), TrainInput (float[][]), TrainOutput (float[]). Мне нужен кусок кода, который загрузит эти данные из файла и подаст на XGBoost (сам файл я переподготовлю, чтобы в нём вообще ничего было менять не нужно, и оставалось бы только подать его на библиотеку для обучения). Ну совсем в идеале также перебрать метрики и бустеры как это делаю я.
Я уверен, что там строк 5-10, но я Питон вообще не знаю и не представляю как прочитать файл и распарсить JSON. Тем более я даже не знаю во что он там распарсится, нужно ли строить карту объекта (как в Шарпе) или оно само сработает, как в PHP и JS
Заранее спасибо :3
Чтобы не иметь проблем с лицензиями, был создан альтернативный вариант PySide. https://wiki.qt.io/PySide
Если ты собираешься прогу продавать, то думаю могут возникнуть проблемы. Насчет уменьшения веса, ну не знаю, по нынешним временам 35 мб - это даже не вес, а пустяк. Уменьшить можно, используя сжатие. В настройках pyinstaller можно поставить флаг сжатия.
И шо это такое
SQLAlchemy.
На входе имеем список, например ['nastya', 'lisa', 'vika'].
А в базе хранится в столбце куча таких имен. Нужно выделить все записи, кроме тех, у которых имя из списка.
Что-то я подумал что итерировать по всей таблице и проверять что имя в списке это нихуя не оптимально, и наверняка в SQL есть прикольчики для этого.
Может кто внутренности ОРМ знает, я не в курсе, может там все лениво сделано и ОРМка меня поймет и не будет лишней хуйни делать?
break добавь больной
https://github.com/dmlc/xgboost/blob/master/demo/binary_classification/README.md lol, оказывается xgboost поддерживает работу из-под консоли, принимая файл конфигурации на вход. Так тоже сойдёт. Так и сделаю
Откуда начать машоб, учитывая что я не знаком с математикой и уже давно забыл вузовскую программу?
Скачал MIT книгу Machine Learning, там сразу векторы-хуекторы. Я так понимаю, типикал алгоритмы уже включены в поставку всяких пакетов и это лишнее?
Там всё разжевывается, ты почитай, а не говном кидайся сразу.
Это копия, сохраненная 2 сентября 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.