Python тред, номер утерян в векахПредыдущий: >>1443245 (OP)ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat - по идее с этого надо начинать, прежде чем вопросы задавать, но аноны бугуртят, что это говно мамонта.Книжки: https://yadi.sk/d/HQhhsBsq3TVRUqТоже книжки: https://yadi.sk/d/tArKKuQu3KejuqБольше книжек: https://yadi.sk/d/H-00n-UG3RSQemОчень много книжек: https://drive.google.com/drive/folders/13YaFijvuH4dtv-PjUKVWLQ7ZIqXIfCLKАнон, вместо того, чтобы без разметки постить код, лучше шарь код через специальные ресурсы:https://ideone.com/https://pastebin.com/https://pyfiddle.io/https://www.codepile.net/
> но аноны бугуртятАноны такие аноны.> что это говно мамонтаЭто не так, уверяю.Платиновые вопросы:А стоит ли читать Лутца, том номер N? - Мнения в треде разделены. Кто-то за(очень неплохая база даётся), кто-то против(слишком много воды и объём книг убивает всё рвение). В общем - решать тебе, книга вредна не будет, то ты можешь её просто не дочитать и забросить.А стоит ли читать %книга_нейм%, если там питон версии 2.х? - Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х.А стоит ли читать %книга_нейм%, если там питон версии 3.х, но <3.6? - Да стоит, если альтернатив свежее нет, данная книга даст базу, с помощью которой ты сможешь дальше продолжить вкат и актуализацию своих знаний.А как учить джангу? Нахожу только книги по джанге 1.х - У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей.Как-то так. Ещё куча вопросов с пометкой платина, но ебать мой хуй, на них из раза в раз отвечают.
>>1451745Дополню. В большинстве не по теме ЧАВО, а от себя> в ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программироватьВот, пожалуйста, та же самая программа, но переработанная под язык Python http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)> не умею читать/воспринимать литературуДальше с такими качествами будет довольно сложно, но есть множество интерактивных курсов / лекций и тдГугли: coursera, stepik, metanit, Яндекс.Практикум РЯЯЯЯЯ, ОНИ ПЛАТНЫЕ (Ответ: сертификат тебе не нужен, изучай бесплатную часть) > уже много раз начинал, но забрасывал, а теперь не могу читать книги с нуля, куда двигаться?Пробегись по этому списку https://tproger.ru/curriculum/python-how-to-learn-2/, изучи то, чего не знаешь и то, что осталось непонятным, потом начинай делать проекты попутно залезая в гугл. Также можешь полистать книгу intermediate python, она есть на русском> знаю питон от корки до корки, что делать дальше?Выбирать web, ML, DS, ИБ, изучать и делать пет-проекты> вот вы говорите про проекты, а что делать то? пикрил + https://www.random.org
>>1451619 (OP)>>1451757Для тех, кто более-менее умеет программировать, очень хорошая вводная документация на самом сайте питона:https://docs.python.org/3/tutorial/index.htmlПравда на английском языке. Чётко и красиво изложено, с упором на специфику питона. Документация обновляется, актуальная, но всегда можно переключиться на старые версии.Для тех, кто более-менее умеет программировать, я бы рекомендовал именно с официальной документации начать, с этого раздела.
>>1451797Точнее, вот с этого подраздела:https://docs.python.org/3/tutorial/introduction.htmlТут введение шаг за шагом.
>>1451799Случайно не знаешь, там есть возможность переключения языкаЭто кто-то специально отобранный переводит? Потому что если нет, то почему бы рядовому анону не перевести всю доку на русский, там нет ничего сложного, даже я со своим intermediate справлюсь
>>1451814Выбор языка сверху слева. Переводят комъюнити.Но зойчем переводить на русский, если куча доков на остальные либы на инглише?
Блять, что я делаю не так? Памагити.Центось7. Поставил python36 + pipПри установке пакета, пип предложил обновиться до версии 19х (или 16х, не помню). Обновил пип через сам пип и он почему-то проебался. pip -V pip3 -V нихуя не отдают.
>>1451814Качественный перевод довольно сложно делать, и этим надо постоянно заниматься, актуализировать по мере обновления англоязычного оригинала. Мне кажется, что сейчас меньше переводят серьёзной документации, чем раньше, всем надоело просто. Очень большой объём, много времени надо, за это не платят.Я уже привык читать на английском языке, хотя иногда хочется и по-русски что-нибудь почитать. Но чтобы это был нормальный перевод, а не чуть лучше гугл-переводчика.
>>1451920Да, так и сделал. Правда, теперь у меня почему-то две папки с пиповскими модулями>/usr/local/lib/python3.6/site-packages/>/usr/lib/python3.6/site-packages/И при установки через пип, он лепит модуль в /usr/lib/python3.6/site-packages/А питон ищет модули в /usr/local/lib/python3.6/site-packages/Срань.
>>1451919Насчет гугл переводчика прямо в точку написал. Только что редактировал статьи на MDN'е, потому что глаза режет что-то вроде "веб-обзорщик"А насчет либы, то я уже говорил, что там нет чего-то прям сложного в плане английского, за вечер можно пару страниц перевести. Тот же самый плюс в ЧСВ и помощь ньюфагам в освоении технологии
Вопрос не совсем по питону. Может кто знает очень годные задания, данные вместе с решениями в формате текста (не интерактивная залупа вроде кодекадеми и прочего)? И при этом не привязанное к языку.Читаю байт оф питон, а в ней задачек нет.
>>1451922ХЗ, что-то как-то не так встало. Я в эти дебри никогда не лез, работало всегда без проблем.ПИП должен лепить модули в /usr/lib/python3.X/У меня там все, в том числе и штатные системные, я правда глобально сейчас почти не ставлю, ставлю локально в virtualenv.Каталога /usr/lib/python3.6/site-packages вообще нет, там dist-packages есть (у меня на разных убунтах)Что-то не так встало, pip видимо не так встал.
>>1451937Попробуй codewars (там есть возможность просматривать чужие решения с комментариями и пояснениями), задания разделены по уровням сложности и все такое
>>1451937Codingames, множество задач разного уровня, решения возможны на разных. Решения гуглятся по условию
Немного не по теме, но есть вопрос.Я +-разобрался в питоне(на нужном мне уровне) и возник вопрос, что еще изучить, чтобы иметь хорошую базу?Как я понял, то для веба можно взять js, а потом html+css, чтобы можно было полностью понимать как сделать и мочь сделать сайт.Или же это бесполезно и лучше взять C/C++?
>>1452064Вообще главное не язык, а технологии, технологии программирования и построения приложений.Если ты владеешь ООП, параллельным программированием, асинхронным, программированием БД, сетей, и т.п. на одном языке, то освоишь и на другом, а вот с самими методами и практиками надо долго разбираться и осмысливать их.На чём бы веб-приложения хочешь делать и какого рода?Для веб, база:1) HTML+CSS, даже понимать и что-то уметь необходимо, даже если ты на бэке специализируешься.2) JS аналогично, но JS сам по себе большая тема. Сильно зависит от того, что бы будешь реализовывать. От этого зависит и выбор бэка. Но как минимум надо понимать, как работают приложения на JS.3) Тебе необходимо понимать, как работает веб, HTTP протокол. Как устроены запросы GET/POST, как данные туда-сюда пересываются, куки, современные технологии ajax и вебсокетов. 4) Вся база по построению сайтов, работа со всякими сессиями во фреймворках, работа с разными видами БД и т.п.То есть надо понимать, как устроен data flow для каждого типа сайтов, что в какой момент куда пересылается, откуда берутся данные и как преобразуются и т.п.Это какая-то общая база для всего веб программирования. Ты просто подумай со стороны задачи. Есть задача полезная, которую надо сделать, которая работает через веб. И подумай, как именно её делать, как именно эта задача работает.
>>1452083Окей, спасибо большое.В таком случае попробую разобраться в них и попробую свой сайт запилить.Сейчас как раз разбираюсь с БД и как работать с ajax
Пытаюсь в проекте подключить Pool из multiprocessingпри попытки вызвать pool.map(self.method,list) выдает ошибку, map() takes from to positional arguments but were given. Сам кусок кода находится в методе класса. Как можно решить проблемму?
>>1452268Нет, не одинаковые.В первом случае у тебя в текущем пространстве имён появляется имя tkinter. Дальше - tkinter.zalupa().Во втором - появляются все экспортируемые имена из модуля tkinter. Дальше - просто zalupa().
>>1452268Разные. В первом ты просто подключаешь модуль, после чего можешь использовать, напримеtkinter.Button()но явно указываешь модуль при вызове функций оттуда.Во втором случае ты импортируешь всё из модуля в основное пространство имён, и уже используешь Button()без указания модуля. Могут быть конфликты имён из-за этого и не очень понятно, откуда какая функция или класс берётся.
>>1452220Он и есть стэндалон. Либы нужные просто можно подкачать из интернета при необходимости. Если параноик - на флешке таскай.
>>1452768Sql это язык запросов к соответствующим БД.Если совсем с нуля, возьми sqlite3, штатный модуль питона, одна база = один файл. С ним принцип работы примерно тот же, что и с полноценными базами.
Шалом, братьяЯ уже не знаю, куда обратиться с этой проблемой. Делаю небольшого бота и столкнулся с какой-то непонятной хуйней. С некоторой вероятностью программа зависает без сообщения об ошибке, во время выполнения следующего1) Запрашиваю к серверу через http.client.HTTPSConnectionЕсли возникает ошибка:2) Ловлю исключение3) Через print вывожу в консоль текущее время и исключение, и отправляю себе вк то же самое лишь с той разницей, что для вк получается новое времяВ 22:59 обнаружил, что программа не работает, нажал ctrl-с, программа вместо того, что вырубиться, печатает пойманное исключение socket.timeout: the read operation timed out и время - 10:12, отправляет мне исключение вк со временем 22:59 и продолжает работать как ни в чем не бывалоМожет ли себя вести функция print???
>>1453045У тебя проблема с сокетом. Ты установил соединение, но потом оно молча обрывается и ты об этом не знаешь. Твой сокет слушает, то ему никто ничего не высывает и не собирается. Тебе необходимо контролировать, что сокет жив, либо таймауты как-нибудь настроить, несколько разных способов для этого есть.
>>1451619 (OP)Ку. Когда-то давно юзал питон для парсинга сайтов, язык понравился. Сейчас хочу немного поботоводить в онлине-гамесах типа wow и poe. Насколько хорошо питон подходит для данных задач? Имеет смысл пытаться юзать его в таких целях, или не выёбываться и задрочить какую-нибудь сишку?
>>1453154По идее это таймаут на коннект. Но у тебя может быть ситуация, когда соединение установлено, а потом молча оборвалось. Это довольно штатная ситуация и её надо отлавливать.Есть разные способы, или надо выставлять KEEP ALIVE на сокет, это почти не задокументированная магия, или жёстко контролировать таймауты через сигналы, например, это если у тебя обычная синхронная задача. Для этого надо разобраться в логике твоей задачи, когда данные уходят, приходят и т.п., как долго ты можешь без данных быть и т.п.
Профессиональные змеегонятили, на связи вкатившийся два года назад. Есть что почитать по архитектуре? А то делаю сервисы на работе, но не уверен, что делаю это правильно, хочется посмотреть на эталонную реализацию, желательно учитывающая специфику языка.
>>1453330На позицию мидла взяли через год, даже в проебалтику релокейтнули (я писал тут давно об этом), на старте было 30к в миллионике, сейчас 2200 евро.
>>1453332А во сколько годгов вкатывался? И сколько по времени уделял на обучение? Сам уже 7 лет подряд начинаю каждую весну учить питон, уже наизусть знаю вводные главы, могу простенькие программы писать, но стоит только на следующий уровень переходить так что-нибудь случается в жизни. А сейчас уже серьезно к этому вопросу подошел, ибо хочу кое-какой проект замутить веселья ради. Но устроиться погромистом уже возраст свой не позволит. И не надо мне тут что и в 45 берут на джуна, это все сказки.
>>1453185Можешь попробовать, все равно много времени не займет (+- 3 вечера, если шаришь), если будет долго "думать", то попробуй отдельные части, которые больше всего обрабатываются переписать на Cython'е.
>>1453350Вкотился в 20, неспешно читал книжки по питону с 11 класса до 2 курса (2 штуки, лутц и флюент пайтон), потом приперло найти работу и за месяц прочитал django by example делая примеры оттуда. Уделял по часу не каждый день, потом по 1-2 регулярно в самом конце.
>>1453350Недавно читал пост на хабре, как чувак в Германии в 40 в java-программисты вкатился, до этого коммерческим программированием не занимаясь. Но он реально серьёзно к обучению подходил, мало кто на такое способен, и всё-таки как-то с ИТ был связан.За зачем спрашиваешь тогда?
Есть один list. Прогнав его через цикл получаю 2 целых числа(индекс элементов из этого листа) которые хочу использовать как индексы, чтобы потом выбрать часть этого-же листа. Выглядит так примерно. Но получаю ошибку. Хелп.
>>1453434Learn English! Это помогает. Там всё написано.Индекс должен быть или целым числом, или None. А ты зачем-то явно приводишь к строке.
>>1453434Тебе компилятор пишет, что индексы среза должны быть целыми числами. Не приводи их к строкам
>>1453434>получаю 2 целых числаИ нахуя ты потом применяешь к ним str()?Просто интересно, что происходит у тебя в голове.
>>1453467> что происходит у тебя в головеПредставляю как тебя циклом пускаю по кругу. Я разобрался - я затупил, спасибо.
>>1451619 (OP)Есть синхронная программа, в которой происходит много блокировок из-за подгрузки файлов через FTP. Как наиболее оперативно переписать ее через async/await? С асинхронками раньше дела не имел, где подскажут за годный рефакторинг прог?
Есть ли способ ввода в getpass.getpass через ctrl-v? Какие есть альтернативы, если хочешь, чтобы вводимые данные не отображались в командной строке?
>>1452769Не используй длинные пути файлов, либо те, в которых встречается кириллица в названиях папок, если не хочешь ебаться
Есть один selenium. Есть вот такой код:options = webdriver.ChromeOptions() options.add_argument("download.default_directory=C:/Downloads")driver = webdriver.Chrome(chrome_options=options)Позволяет менять дефолтную папку загрузки у вебдрайвера при создании объекта. Мне нужно проделывать ту же самую процедуру многократно для уже созданного. То есть, что-то вроде такого:options = webdriver.ChromeOptions() driver = webdriver.Chrome()###bla-bla-baloptions.add_argument("download.default_directory=C:/Downloads")webdriver.set_options(options)
>>1453482А зачем тебе это надо, какую задачу ты решаешь? Одно дело сериализация, другое дело расход памяти, ты должен учитывать, что в объект не хранится целиком, в нём ссылки на другие объекты и т.п. Если расход памяти интересен, то глянь сюда:https://docs.python.org/3/library/tracemalloc.html
>>1453476По-хорошему надо сначала разобраться с асинхронкой, как это в питоне работает. На первом этапе не без магии. Иначе ты не сможешь мало-мальски нормально такую задачу реализовать.Твоя задача непростая. Тебе надо или использовать асинхронные библиотеки для работы с FTP, я с ними тебе ничего не подскажу, никогда не делал ничего с ftp, или запускать синхронный блокирующий код в отдельном треде, это поддерживается asyncio. Но попутно тебе надо разобраться с тем, как делать асинхронные программы.Возможно тебе проще не переводить на asyncio, а запустить эти операции в отдельных тредах.
>>1453500Для отладки, проверить сколько памяти жрут конкретные объекты в конкретные промежутки времени
Сап, закончил делать тестовое, имплементация 2-х простых функций пайтон - проходной тест, но не главный инструмент . И для представления результатов необходимо завернуть это всё, предлагают на выбор либо CLI либо докер. Если у кого есть, помогите пожалуйста, дайте пожалуйста максимально подробный мануал как это делать и главное чтобы не упарываться очень.
>>1451922Не стоит срать пипом в системные папки, делай все через --user хотя бы. А то что в глобальное окружение устанавливается - контролируется пакетным менеджером. Соответственно, обновив пип самим собой, а не центосквским пакетным менеджером, ты все сломал
Как ебнуть значение в dict через кучу ключей, если их еще не существует? Напримерmy_dict[aaa][bbb][ccc][ddd] = valКак бы я знаю сигнатуру словаря: вложенные словари, но я не знаю имена ключей на втором, третьем уровне вложенности, поэтому не могу, например, определить сразу.defaultdict не особо помогает: можно задать только один уровень вложенности. По свей индусской сущности делаю лесенки, что с defaultdict, что на обычном dict. Типа:if my_dict.get(aaa, False): if my_dict.get(bbb, False): ...else: my_dict[aaa] = dict()и в else ветке такая же вложенность. Даже если в функцию с рекурсией запихну, все равно пиздец будет какой-то.
сап, парсултанг. Запрос верный, URL верный - это 100%почему может не работать?тот же самый URL в браузере выдает нужные данные Python 3.7.3библиотека requests
>>1451619 (OP)Нужна помощь с примером из книги "Укус Питона".13.1-13.2 там где задача с архивацией, для винды нужно установить штуку из GnuWin32 для того, чтобы можно было из CMD архивировать вот она http://gnuwin32.sourceforge.net/packages/zip.htmНо что-то нефига не получается. Как решить данную проблему, хелп плиз?
>>1453737Ты можешь написать сам или использовать библиотеку какую-нибудь для работы по принципу xpathПример либы, не использовал:https://pypi.org/project/dpath/суть такая, что ты создаёшь пару функций:set_value(dict, path, value)get_value(dict, path, default_value)например set_value(my_dict, '/aaa/bbb/ccc/ddd', val)эта функция сама пройдёт по дереву и создаст необходимые подсловари, это неслжно реализовать.Но есть и продвинутые решения с большим функционалом, смотри ссылку.xpath - это аналогичный метод по обработке xml, поиску там данных. Он поддерживает и значительно более сложный условный поиск.
>>1453737Ну можешь написать свою функцию для данного извращения.Но складывается впечатление, что тебе лучше выбрать другой контейнер для хранения своих данных.И вообще если подумать. У тебя структура подразумевает для данные лежат на нижнем уровне? Те my_dict[aaa][bbb][ccc][ddd] = val, но при этом в my_dict[aaa], my_dict[aaa][bbb] и тд это могут быть только словари? Если да, то не используй несколько ключей, а кортежи, например, не my_dict[aaa][bbb][ccc][ddd] = val, а my_dict(aaa,bbb,ccc,ddd) = val
Сап, снова со своими задачами и книгой Python Crash Course. Почти закончил 6 часть, решил финальные задачи, но остался один вопрос. Условия задач и мои к ним решения https://pastebin.com/fixcVPuk Меня смущает в задаче 6-10, что каждый элемент списка выходит на новой строке, было бы приятнее чтобы числа шли после <...>there are numbers: <элементы массива через запятую>. Такая же ситуация в 6-9. Понимаю, что у меня такая конструкция, но как бы вы решили данную задачу?Сама книга - http://www.allitebooks.org/python-crash-course-2nd-edition/Спасибо.
>>1453901for name, numbers in favoriteNumbers.items(): print(f"This is {name} and there are numbers:", end=" ") print(*numbers, sep=", ", end=".\n")
>>1453670Не могу найти ответ, по-этому снова прошу помощи:У меня 2 функции в скрипте одна выполняется без каких либо параметров типа foo(), для второй нужно задать 2 параметра типа bar(1, 15). Как мне в этом argparse настроить вывод скрипта так, чтобы при запуске скрипта я мог сам ввести: foo() либо bar() с любыми параметрами.
>>1451619 (OP)Говорил жеж, ведь говорил! Нахуя этот автоматический перенос строк нужон вообще? Напомните как от этой хуйни избавиться?
>>1454040lines = file_object.read().splitlines() и никакого циколаилиlines = [line.rstrip('\r\n') for line in file_object]# Можно просто .rstrip(), если на пробелы на концах похуй, или даже вообще .strip().
>>1454043>>1454046А забейте, я опять хуйню наворотил, дальше автор рассказывает как сделать правильно:>lines = file_object.readlines()
>>1454115Минимальный фласк-проект в 3 строчки и 1 файл, джанго в 300 и 10, зато там гораздо меньше своего надо изобретать, все уже придумано и реализовано за тебя.
Аноны, как вы переживаете код-ревью?Сегодня был первый мой опыт(кода меня ревьюили). Желание разбить ебало мудаку зашкаливает.Одинарные кавычки нада, патамушаФ-стринги плоха(нет, не из-за обратной совместимости)Коментов Нада па-минимуму
>>1454131Знач смотри братан, советую две книгиИрвин искусство правильно мыслитьБочаров введение в логикуКогда осилишь, будешь разъебывать этих лохов тупа по аргументам и фактам, хуй кто тебе скажет ПАТАМУШТА Я ТАК КОЗАЛ, но тут есть одно но, ты тоже должен будешь аргументированно обосновывать свои решения, а для этого нужны знания в предметной области.
https://www.youtube.com/watch?v=KdZ4HF1SrFs&list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0Смотрел кто, есть результаты?
>>1454131> Аноны, как вы переживаете код-ревью?Объясняю, почему ревьювер мудак.> Одинарные кавычки нада, патамушаОдинарные для технических строк, двойные для человекочитаемых. Если в строке есть какая-то кавычка - противоположные ей.> Ф-стринги плохаЛолшто?> КоментовЕсли описывают очевидное или если можно было вынести кусок кода в функцию с docstring-ом, то да, такого по минимуму.
>>1454175>Одинарные для технических строк, двойные для человекочитаемых.Нет, как договорились в проекте, так и будет
Писали ли вы на работе собственные простые шаблонизаторы запросов/ORM и с какими проблемами сталкивались? sqlalchemy уже наелся (Почему это говно считают хорошим? Только потому что лучше не завезли?). Хочу сделать обертку над asyncpg в собственном проекте и подумал над тем, стоит ли вообще этим заниматься.
>>1454140> тоже должен будешь аргументированно обосновывать свои решенияЭто понятно, но нечего противопоставить неаргументированному наезду.>>1454175> Если описывают очевидноеУгу, очевидно то пофиксил (уровня коменты на действия со стандартной либой). Но я люблю коментить и писать док-стринги к методам/функциям(соответственно кроме описания ещё и назначение переменных + примеры).> Одинарные для технических строк, двойные для человекочитаемыхВот честно, первый раз слышу. Мне как бы и не принципиально что ставить, но я уже привык к ".Проект новый, попенсорсный, но код-стайл есть. Правда он принимался без обсуждения, а, опять таки, "патамушта".>>1454178Ни по чему. Ф-стринги это ок, по крайней мере для меня, форматирование с ними выглядит гораздо логичней и проще, даже если внутри её вставить какую-то операцию небольшую.Ладно, спасибо, аноны.
>>1454190> Почему это говно считают хорошим?N тредов назад было обсуждение, пришли к выводу что алхимия немного говно с такой же документацией.Так же пришли к выводу что ДажнгоОРМ одна из лучших(правда скорость огорчает).Так же не стоит забывать про относительно новую орм - PonyORM. В ней куча ещё недостатков, но её пилят активно.Это по синхронным.С асинхронщиной всё хуже и скуднее.> стоит ли вообще этим заниматьсяОпределённо стоит, как минимум для себя, а как максимум - твой взгляд на орм может кому-то понравиться и "зайти", будут юзать и благодарить.
Питонисты, подскажите, насколько сложно в питоне реализовать "улучшалку" разрешения изображения? Может, есть какие-то готовые библиотеки для таких задач?
>>1454174Глянул минут 15 первую и ещё пару лекций в случайных местах.Лекции не для начинающих программировать. В первой начинается с каких-то абстракций тяжеловатых, где-то ещё упор на непривычные термины, всякие тернарные операции и т.п. Короче для тех, кто хоть немного умеет писать и в состоянии математические лекции слушать. Дальше может быть и содержательно, там какие-то техники программирования показаны, может много полезного есть, но это надо смотреть и вникать.
>>1454220Для начала разберись с тем КАК это делается, а затем ты поймёшь как это можно сделать и какими инструментами.Спойлер: нельзя.
Как синхронно выполнить корутину внутри init при условии уже запущенного лупа? Во время запуска приложения должен произойти коннект к одному сервису, а клиент к нему асинхронный.
>>1454225Подумал, что можно при запуске сделать корутину с инициализацией всего, дождаться ее исполнения, а потом приступить к обработке клиентских запросов, я правильно поступлю?
>>1454226Не понял, что у тебя за init, откуда ты что вызываешь.Если у тебя функция init синхронная, то ты не можешь из неё вызвать асинхронную функцию и дождаться результата. Ну кроме как совсем через жопу.И ещё, корутина - это функция, которую можно запустить асинхронно, оформив её в задачу для эвентлупа. Задачу ты можешь оформить синхронноloop.create_task(my_coro(param1, param2))либоasyncio.create_task(my_coro ....), но это для 3.7После того, как ты сделаешь, твоя задача улетит в цикл и будет там обрабатываться. Единственная проблема, ты не сможешь дождаться её завершения.
>>1454229У меня есть инициализация класса, в атрибуты класса нужно засунуть асинхронный клиент, который вызывается только через await и начинать последующую работу только после установки соединения. Думаю просто вынести установку соединения в отдельный асинхронный метод и вызывать его после инициализации класса.
>>1454233И есть ещё вариант сделать, как в этом клиенте. Асинхронная функция, которая возвращает объект, после установления конекта.
>>1454238Ты учти, что делать await ты можешь только внутри асинхронной функции или асинхронного, определённой через async def. await нужен, если тебе надо получить какой-то результат от асинхронной функции, например объект с коннектом. Надо как-то внимательнее твою задачу разбирать, в частности как клиента реализовывать. У тебя какой-то готовый функционал для этого, или сам пишешь? Если сам, то в asyncio поддерживается несколько разных способов, просто соединение, и реализации через классы Protocol. Возможно тебе надо именно свой протокол реализовать.
>>1454239>Ты учти, что делать await ты можешь только внутри асинхронной функции или асинхронного, определённой через async def. Я знаю это, но видел примеры синхронного запуска через run_until_complete в синхронной функции.>Надо как-то внимательнее твою задачу разбирать, в частности как клиента реализовывать. У тебя какой-то готовый функционал для этого, или сам пишешь? Если сам, то в asyncio поддерживается несколько разных способов, просто соединение, и реализации через классы Protocol. Возможно тебе надо именно свой протокол реализовать.Просто соединение, есть готовая библиотека.Первый вариант на пике был бы идеален, если бы инициализацию удалось бы провести в __init__, но он не работает.
>>1453737Кажется, у тебя тут дерево, а ты используешь словари. Просто напиши соответствующий класс, да и все. Ну или реши - действительно ли тебе нужен такой уровень вложенности.
>>1454131Либо тренируйся терпеть мудаков и выуживать только ценные замечания, либо ищи коллектив, в котором нет таких ьоксиков. Ну еще стоит разобраться в стиле кода компании и писать как все, потому что твой код потом поддерживать другим людям. Хотя нападки на двойные кавычки и ф-стринги не понимаю.
>>1453366Спрашиваю чтобы еще раз подтвердить это. Что после 25 жизни нет. Такой вопрос, кроме kivy и qpython есть что-нибудь чтобы для андроида писать?
>>1454036Проблема решена. Помимо системных переменных (как написано в книге), нужно добавить ещё и в переменные среды пользователя.
>>1454291Кстати, сам когда делал эти упражнения с зип архивами, то использовал архиватор которым пользовался. Попробуй так же сделать, во первых немного отойдешь в сторону от шаблона, плюс чтение сторонней документации и хоть какое-то разнообразие, что тоже плюс.
>>1454206>Это понятно, но нечего противопоставить неаргументированному наезду.Есть. Скажи ему, что он пидор без аргументов, хули пасть открываешь? Пусть доказывает обратное и он пук среньк сделает и умрет.
>>1454174Я смотрю сейчас, нравится. Не уверен насчёт результатов, но алгоритмы уровня квадратичных сортировок стали казаться хуйней на две строчки, а не чем-то сложным.
>>1454385Бездумно копирую всякую хуйню из учебника в редактор, пытаюсь разобраться или не пытаюсь, пишу свой пример, лезу обратно в учебник читать текущую главу.
>>1454393И вообще, осталось освоить json, тестирование, и дальше пойдут главы с проектами! Скоро очень скоро кровь польется морем я смогу говнячкать свои говнопроекты!
Если есть скрипт, который в своей работе использует данные, которые берет из текстового файла(там файл строк на 1000), то не будет ли более рационально просто забить эти жанные в сам скрипт?Желательно что б вы написали почему жа или нет
>>1454395данные берут из внешнего источника когда они меняются иначе их можно захардкодитькороче надо в твой файл сто первую строку, всяко проще её добавить в файл чем править код скрипта
>>1454393Лучше рефлексируй хоть немного когда копируешь. Например, что ты ожидаешь получить от выражения "5 / 0"
>>1454409Нихуя я не ожидал, хотел заканчивать вообще - до этой части дошел порядком заебанный, уже нихуя не соображал думал, что за хуйня заместо кода, но хотелось таки разобраться перед тем как идти саморазвиваться в сериальчиках.
>>1454395Хардкодить с точки зрения кодирования всегда дурной стиль. С точки зрения построения гибкого приложения программист должен думать о возможности настройки, адаптации и т.п., для этого константы должны быть вынесены в отдельное места, по-возможности вне кода.Иногда может быть разумно обратное, когда ты не хочешь, чтобы данные менялись, у тебя, например, код жёстко завязан на какую-то логику данных, нужна защита без лишних проверок от исключительных ситуаций, что данные испорчены и т.п.Но в целом всё-таки лучше максимально разделять логику и данные, нужно обоснование, чтобы это не делать.
>>1454246Первый скорее неправильный. Это совершенно синхронный вариант программы, когда ты в своём полностью синхронном коде хочешь вызвать какой-то асинхронный код синхронным способом. Возможно именно это тебе и нужно, конечно, но не уверен. Главный вопрос в том, что ты будешь делать со своим коннектом дальше. Если у тебя асинхронная библиотека, то и как минимум получение данных там будет асинхронным, скорее всего. Обработка этих данных должна быть выстроена соответственно. Самым разумным выглядит второй вариант. При этом ты можешь вызов в одну строчку укоротить, сделатьclient = await MyClass().create_connect()надо только чтобы create_connect возвращал self
>>1451619 (OP)Почему turtle.tracer(0,0) съедает последние несколько шагов в рисунке? Он же должен только скрывать прорисовку.
>>1454354Никогда не копируй текст из книги (форума, статьи и проч.) копипастом.ВСЕГДА переписывай вручную. Серьёзно, анон. Заведи себе такую привычку. Это избавит тебе от МНОГИХ проблем в будущем.
>>1454587Код надо самому писать, а не переписывать. Ну точнее понять идею, а дальше уже самому писать.
>>1454591Копипастнуть из док нормально для теста, вот когда тебе надо самый первый пример получить, чтобы запустить и посмотреть, что это работает. Надо, чтобы было что-то, что руками можно почувствовать, потрогать, поломать после этого.Вот как поймёшь, уже потом полезно всё удалить и самому написать, причём не переписывая из доки, а по памяти, по своему пониманию, может быть заглядывая в доку. И даже свой код стоит не копипастить, а заново написать, на этапе обучения. Несколько раз так проделаешь, и потом лучше чувствовать и помнить всё будешь, легче будет.
>>1454414>Нихуя я не ожидал, хотел заканчивать вообще - до этой части дошел порядком заебанный, уже нихуя не соображал А вот это зря. Не способен разобраться от усталости, так проспись и потом разберёшься, и совсем последнее в таком случае других вопросами долбить.
Тут недавно аноны упоминали какую-то книгу по джанго, не могу найти по поиску. Название то-ли джанго 2, то-ли джанго 2.0. Помню что один купил, а другой скачал ее. Был в книжном местном, ничего подобного не нашел по названию. Если кто знает, то скажите название и автора, а еще лучше файлик, если есть книги.
Аноны, есть пикрил, как закрасить закрытые контуры?В 4 и в 2, к примеру.Делаю блюром, но это немного не то и уродует результат.
>>1454587Так сначала код потирибонькать надо немного, потом уже выдумывать себе задачу и руками свою парашу говнякать, затем лезть обратно в учебник и дочитывать главу, после прочтения в конце главы задачки от автора решать или не решать, ведь я еще на первом этапе сам все сделол, ха!, тем более что в первом издании Эрика Мэттиса во всех примерах пробелы полностью проёбаны - нужно перелопачиать все копипасты с учебника
Здравствуйте, аноны. Решил начать изучать питон. Правда ли, что он очень простой и можно буквально за день набросать первый калькулятор?А еще, что там на рынке с программистами на питоне происходит?
>>1454941если графический калькулятор то лучше джаваскрипт лолну там правда не все так просто если брать серии операций, переполнения экрана, большие и маленькие числа и все такое
>>1454941Ты вопрос задал в 3 ночи. Сейчас уже 3 дня. Ты можешь просто взять, потратить день и сам понять, простой язык или не очень, можешь ли ты за день калькулятор сделать. Или тебе просто потрепаться хочется?>>1454941>А еще, что там на рынке с программистами на питоне происходит?Программистом ты станешь через несколько лет но на самом деле не станешь
>>1454948Про калькулятор вообще образно было>>1455014>Программистом ты станешь через несколько летУ меня пока есть такая возможность>но на самом деле не станешьС чего бы это?
>>1455183Я просто первую неделю только занимаюсь,потому не пойму где допустил ошибку,вроде табуляцию всю соблюдаю
>>1455169Посмотри на условие выхода из цикла. бля, переводи слова гуглом хотя бы и переменные на английском называй
Часто замечаю, что вкатывальщики постоянно повторяют все буква в букву по туториалу. Т.е. если написано print('супердлинная строка'), то они напишут полностью всю эту строку внутри принта и.т.д. Это кажется мне странным ибо всегда просто вбивал рандомные 3 символа ибо какая разница что он выведет, если главным является сам факт вывода
Я тут по IDLE прикололся, всякую мелочь даже удобнее показалось писать. И как-то потихоньку VSCode чаще чем Sublime стал запускать. Но тут наверное 9 из 10 используют Pycharm или я не прав?
Сап, двач, только начал вкатываться, учусь по курсу МФТИ. Начал делать простенькие задачки, дошёл до этой:Нарисуйте «бабочку» из окружностей. Используйте функцию, рисующую окружность. Похоже я совсем даун. Код прикрепил.
Двощ, привет!Чувствую себя ужасно тупым, сижу три часа и никак не могу решить задачу. Даже не знаю как подступиться.Помогите решить, пожалуйста!
Сап. Анон, изучающий питон по Python Crash Course, снова в треде. И опять, как в первый раз, задачи из этой книги вводят в ступор. Я сомневаюсь в полной правильности моего решения, есть внутренне желание, что можно сделать лучше. Пока стараюсь не гуглить, а решать в соответствии с пройденным в книге материалом. Собственно, сами задачи, https://pastebin.com/L5AmVkagЗадача с пиццерией, с тремя путями решения:https://pastebin.com/yD5gtJF4Задача с билетами:https://pastebin.com/ZZ4vmnvDПосмотрите, пожалуйста, оцените своим профессиональным взглядом, что улучшили бы, изменили? При этом использовать я могу только минимальные средства. Показывал знакомому, он советовал использовать isdigit, но пока про это в книге ни слова. Спасибо.
>>1455443Странные ты, однако, выводы делаешь. Если к калькулятору так прицепился, то про него вообще образно написал
Сап, pr!Я нуб, совсем.Направьте, плес, мысль в правильную сторону.Мне нужно для лабыотсортировать список с помощью одного из видов сортировок, но не просто отсортировать, а так, чтобы элементы списка начинающиеся на определенный символ не попадали в общую сортировку.Алгоритм сортировки запилил самый простой - пузырьком. Идея была в том, чтобы из общего списка сделать второй список. Отсортировать каждый список, а затем соединить в один.Но как это сделать - не понимаю. Если делать срез, чтобы разбить общий список, то срез делается по элементу, а не первому символу элемента. Халп.
>>1455569А в чём проблема просто добавить в логику сравнений элементов пузырька обмен значений, если один из одной категории, а второй из другой?
>>1455584>>1455589Кажется стало что то получаться:str = ['dd','aa','grob','pidor','porebrik','dvach']temps = []q = 0for w in str: if w >= 'p': temps.append(w) q +=1print(temps)Результат выводится как:['pidor', 'porebrik']
>>1455658>enumerate>>1455658Тащемта от q действительно никакого толку не оказалось.Добился целей лабы так писал выше - append'om. Так не разобрался как можно удалить из основного списка элементы начинающиеся не с 'p', то сделал второй список, в который вошли элементы, начинающиеся не с 'p'. Ну и объединил два списка: 'pidor', 'porebrik','aa','dd','dvach','grob'Вот такой я говнокодер.
Такой вопрос. По Фласку знаю что не стоит на него время тратить и лучше сразу джанго читать есть какой-нибудь курс, похожий на укус питона?
>>1455728https://habr.com/ru/post/193242/ задавайте любые вопросы как ответ к этому посту, пока кушаю супчик, буду отвечать по мере знаний (можно даже очень тупые на ваш взгляд)
>>1455709В Джава треде слишком сложно объявить о том, что ты насралВ Си-Сялп-треде можно насрать только с виндыВ СПП-треде забыл очистить прошлую кучу говна и теперь негде сратьВ ДЖС треде неправильно преобразовался тип и вместо того чтобы насрать, обоссалсяВ других тредах все настолько мертво, что срать там нет смыслаУдивлен как ты насрал в этом треде без конфликтов с прошлым говном и средой для сранья, поздравляю...
>>1455747Этот курс под питон 2.7 и фласк 0.9. Это не устарело? На 3 питоне можно будет это всё пройти?
>>1455237PyCharm. Сам я новичок, но даже для себя нахожу много удобных фич и не вижу причин его не использовать.
>>1455762Вот скажи мне брат саблимщик ты код как запускаешь? Сейчас сам через плагин repl в новой вкладке, ибо необходимо ручками значения передавать, а через стандартный билд код не дает, но этот репл жутко не нравится тем что вкладке генерит. Может ты мне какую альтернативу подскажешь, а то вскод пока приходится использовать, но там тоже не все радужно.
Пиздец, первое же упражнение с черепахой из курса МФТИ нехило так заставило просраться (рисовать спираль там где нужно).Если просто спираль нарисовать легко, то вот чтобы черепаха при движении еще и поворачивалась на заданный угол... ух, бля... пиздец.
>>1455820У меня тоже нормально не получилось, сделал с goto. Зато с goto это даже лучшее решение, потому что так чисто качественный проход по функции в полярных координатах. На розеттакоде тоже с гоуту сделано
>>1455944Я тоже math использовал, да. Ну а как тригонометрию без него считать, свои функции для синуса и косинуса совсем не в тему писать при рисовании черепахой. Нет, goto никаких поворотов не делает и не должен, я же говорю, через поворот+форвард у меня тоже плохо получилось. Ну то есть какую-то спираль оно рисовало, но точно такую как через гото нет. А через гото на самом деле максимально правильно по логике вообще отрисовывания графиков функций.
Привет, аноны. Возникла проблема, в которой черт ногу сломит.По одной хорошей книжке решил попробовать импортировать модуль командой importСначала попробовал встроенный модуль подрубить - math - всё нормально, без ошибок. Затем решил свой подключить и бах, выдаёт вот такую ошибку:Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> exec(open("module.py").read())FileNotFoundError: [Errno 2] No such file or directory: 'module.py'Не пойму, почему не работает. Окружение PATH я настраивал, каталог нужный добавлял и модуль открывал так же оттуда.Антуаны, есть предположения, что может быть не так?
>>1455978Спасибо большое. Теперь другая проблема. Нагуглить не удалось, потому что я очень сонный сейчасSyntaxError: EOL while scanning string literalУже слеши экранировать до тройных пытался. Моразм начался какой-то, а ему хоть бы хны
>>1455979Ты ждёшь, что я по ошибке просто угадаю что ты делал в своей программе? Тебе придётся научиться гуглить или хотя бы нормально вопросы задавать
>>1455991Вот же я тупой. Рассматривал путь и заметил незакрытые кавычки аккурат, как ты ответил. Но всё равно спасибо
>>1455277Посмотри в сторону defaultdict в модуле collections. Там можно создать словарь, который по любому не содержащемуся в нем ключу возвращает пустой список.
>>1456002>Будь повнимательнее и не беги сразу на форум с картинками жаловаться на ошибку. Стыдно же.Да, ты прав. Еще раз спасибо
Привет, анон. Я прочитал гайд, прочитал гайд на хабре, и так и не понял, с чего начать. Гайд датируется 2012 годом, поэтому я как-то сомневаюсь, что стоит строить обучение именно по нему. Есть какие-нибудь актуальные гайды, или просто советы, с чего вообще стоит начинать в 2019 году? Опыта программирования за плечами нет вообще, за исключением ебучего паскаля лет 13 назад в школе. Английского тоже пока не знаю, в процессе изучения, поэтому лучше бы материалы на русском языке. Был бы очень признателен.
Господа, не так давно вкатился в пайтон, изучаю как могу, и тут недавно наткнулся на возможность рулить пайтоном GPIO у малинки, и на MicroPython, загорелся идеей запилить умную комнату на пайтон с нуля, суть какова:-Малинка будет сервером MQTT и обработки запросов - на малинке запилю голосовой ассистанс как в видосе хаудихо с изменениями для управления умными-релейками голосом-Умные релейки и датчики запилю на ESP8266 при помощи MicroPython, будут обмениваться данными с малинкой по MQTT-Управление с девайсов в ручную запилю в виде Python-программы на Kivy скомпилированой под Windows, Android и Macos, которая будет общаться с малинкой опять же по MQTT веб интерфейс не хочу - ненавижу веб технологииВсё верно запланировал?
>>1456287Это как аналог MQTT? Я просто пока плаваю в теме, не так давно начал вникать, и информации пока слишком много. Просто если я верно понял - готовые датчики всяких сяомь используют MQTT, и потому я думал чтобы в будущем иметь возможность работать с ними - пробовать MQTT не пинайте если я что-то не так понял или сказал, луше объясните
>>1456291Я хз что используют датчики сяом твоих, но ZerroMQ это MQ, только на сокетах(или типа того, давно читал).
>>1456158Ты имеешь в виду ограничение, выплывающее уже после ввода и нажатия Enter или же не дающее возможность ввести больше N символов ещё до нажатия?
>>1451619 (OP)Двач, подскажи, не устанавливается pyinstallerПереустановка и добавление в ass не помогает
>>1456300Вот человек не удосужился даже вопрос сформулировать, и ты своим желанием помочь как бы показываешь этим пидорасам, что они все делают правильно.
>>1456385рекомендовано ставить пайтон в директорию без кирилицы. Переделывай. Это раз. Два - в пайшарме потом в настройках проекта выберешь путь к интерпретатору
>>1456388Не очень понял, о чём и к чему ты это. Я сам в первую очередь подумал о заранее ограниченном поле для ввода текста. Это задача всё же поинтереснее, чем написать банальные if и else в нужном месте кода.
>>1451619 (OP)Есть класс структуры типа:class Foo(object): a = 10 b = 20 c = 10 def get_a(self): return self.a def get_b(self): return self.b def get_a(self): return self.aНужно как-то переписать эту срань, чтоб интерфейс геттеров остался прежним, но на каждый новый атрибут не пришлось создавать новый геттер. Два дня ебусь, даже в метаклассы полез, но это какой-то спидорак, есть у кого идеи?
>>1456515Объясни нубасу поподробнее что ты хочешь рили тупо подумать, а то я нихуя не понял, чего ты хочешь. У тебя класс с 3 статик-переменными, тремя геттерами для инстансев и что тут переписывать>на каждый новый атрибут не пришлось создавать новый геттер.Ну ебни через __dict__ чтоле
>>1456521Перевожу на русский: у тебя был словарь, потом его как-то изменили. Нужно вывести только изменения. Не совсем понятно, то ли нужно сравнивать именно два разных словаря (задание), то ли нужно написать нечто, ведущее себя как словарь, но запоминающее изменения (примеры). В любом случае пишется за 20 минут без тестов. Тесты там в хуй не вперлись.
>>1456560А хуй знает, я, наверное не буду делать, т.к. с ходу не смог придумать решение для первого, а ебать мозги ради галеры обоссаной? Нахуй надо.>>1456584> то ли нужно сравнивать именно два разных словаря (задание)This> В любом случае пишется за 20 минутНихуясебе. Ссылочку на вакансию дать? Зааплаешься.
>>1456515Ну вот теме метаклассик (но такое лучше сделать просто в init класса, зачем тут мета?)https://ideone.com/OcU8Uu
>>1456597> ThisНикак не понять из текста. Есть пример, в нем есть только data, который модифицируют и res, в котором должен быть результат. Что с чем диффать?> с ходу не смог придумать решение для первогоМогут появиться новые ключи (можно set(dict2) - set(dict1)), могут удалиться, могут измениться значения для ключей. Для каждого общего ключа: если типы различны, то и значения однозначно различны; если тип словарь, рекурсивно сверяем; иначе тупо сверяем значения. Плюс-минус придумывем, что делать удаленными ключами. Десять строк, нахуй там юнит-тесты и КЛАСС, я понять никогда не смогу.
>>1456678> Никак не понять из текстаСогласен, я написал, переспросил.> Десять строк, нахуй там юнит-тесты и КЛАСС, я понять никогда не смогу.Звучит неплохо идея. Тут тестовое для проверки того, как человек пишет код.Но суки ебаные блять, нахуя я вам везде даю ссылку на свой гит? Вы блять зайдите и посмотрите, дауны. Извиняюсь, накипело.
Сап, как правильно перевести это предложение? Чёт grunt сомнения сеет, о правильности моего перевода. Спасибо.
>>1456719Возвращаемые значения позволяют тебе засунуть большую часть грязной работы в функции, тем самым упростив основную часть программы.
Господа, поясните мне, работяге. Думаю учиться на курсах вроде гигбрейнс(год 144к) или скиллфактори(9 месяцев, 60к)https://skillfactory.ru/python-for-web-developersЭти предлагают фулстак пайтонhttps://geekbrains.ru/geek_university/pythonа здесь вроде того же самого, только ?глубже?Расскажите, насколько это рабочая схема? Основная работа у меня даже не на компьютерея работяга, это не шутка, поэтому не стоит брызгать слюной, мол ну я и долбоёб, я понимаю, что я просто не смогу на каких-то волевых сам приходить, искать и учить какую-то инфу и решать задания, здесь будет программа, которую компетентные(компетентнее меня) люди собрали. Ну, собстна, задавайте ваши ответы Перепостил из ньюфаг-треда, он мертв
Аноны, помогите разобраться с Raspbery Pi, python3.Хотел запилить голосового ассистента, сделал так:sudo apt-get install pip install pyttsx3pip install speechRecognition sudo apt-get install python-pyaudio espeak python-espeakВ результате при попытке воспроизвести - устройство не найдено (куча ошибок, пикрил).Если делать через терминал, командойespeak "Hello-world" - высыпает те же ошибкиespeak "Hello-world" 2>/dev/null - ошибок нет - это должен быть рабочий вариант, с указанием на устройство вывода - но звука ннетВ пайтон3 модуль espeak не видит - видит только в пайтон2.ЧЯДНТ? Как в pyttsx3 указать устройство вывода? Я не вижу этого в документации
>>1456743А, забыл пикрил фото, потому что стандартный файлменеджер расбиана не имеет доступа к флешке, и разбираться с этим я не хочу сейчас, а удалённый рабочий стол пока не настраивал
>>1456728Я вот заводо быдло за 30. Пытаюсь выучить питон уже не первый год (7-8 лет время от времени читаю книжки по нему), но в этот раз основательно взялся и последний месяц стабильно трачу понемногу времени на него. В начале года ушел с завода. А дальше начался пиздец. Сейчас вот не могу обратно устроиться в туже компанию. За это время прошел курсы парикмахера за те же 60к. Скажу что это была самая бесполезная трата в моей жизни и лучше бы на курсы питона пошел. В итоге собираюсь как накоплю денег пройти какие-нибудь дешманские, но когда это будет не известно, чую что минимум через год.
>>1456773Это не троллинг тупостью, это то что основы я знаю, но читать начинал книги для тех кто 0 в этом и теорию быстро пробегал и решал задачки, чтобы просто не забыть язык. И да, у меня были перерывы большие, плюс пхп пробовал по совету, но на него быстро забил, ибо кроме того что он меня люто бесил, ничего мне не дал, легче на питоне что-то написать. Да и вообще, яп я использовал для конкретных целей и базы было выше крыши, плюс регулярные выражения покрывали все мои потребности. А тут прям захотелось до уровня джуна выучить, вот и взялся. Сейчас потихоньку фласк начал тыркать.
>>1456566Я задачу в пример привёл просто, там методы сильно сложнее геттеров на самом деле. Зря слово это использовал в формулировке, сбил с толку видимо.>>1456659Спасибо, думаю сработает. Метакласс в отличие от конструктора можно будет в нескольких классах использовать, что мне и надо.>>1456569Нужно механизм, который будет создавать однотипные методы на каждый статический атрибут класса.
>>1456777> Метакласс в отличие от конструктора можно будет в нескольких классах использоватьА можно просто декоратор запилить с тем же самым содержимым.
>>1456806>>1456807Потому что ты к числу прибавляешь строку, не? Как ты ему предлагаешь строку в инт перевести?
>>1456827> сильную типизацию'хуй' * 3, ага.float(1) + int(1), ага.Не существует никакой сильной типизации в чистом виде. Нигде. То, что оно у >>1456806 не работает, означает лишь то, что так задумано, потому что приводит к путаниец. Была бы возможность переопределять методы у встроенных классов - можно было бы "починить" сломать?.
>>1456833Всё-таки это достаточно сильная. На языке с совсем сильной типизацией просто невозможно будет писать, слишком много лишних преобразований.В питоне практически всегда надо делать явное преобразование типов, но для ряда случаев определены преобразования.Например, ты определишь класс MyClass и в нём есть метод __str__, приведение типа к строке. Но даже в этом случае ты не можешь написатьmy_class = MyClass()" " + my_classтебе надо делать явное приведение типов' ' + str(my_class)и сделать прозначное преобразование, как в C++, нельзя.'хуй' * 3 - это не изменение типов, это специально определённая орерация умножения для строки. В принципе ты можешь переопределять операторы для класса, чтобы "my_class + 3" имело смысл. Но тут всё-таки явное определение оператора, это согласуется с принципами "сильной типизации".
con = lite.connect('students.sqlite.db')cur = con.cursor()login = 'igor'cur.execute('Select name from Students where login = ?', [login])code = str(cur.fetchone())print (code)Почему я получаю данные вот в таком виде:('2RKH2KOGVQS3RDCVQB3W76KRQPYZRV6K7TRK3ZNKRP7GK5FWLB7A',)КОГДА МНЕ НУЖНО ПРОСТО БЛЯДЬ:2RKH2KOGVQS3RDCVQB3W76KRQPYZRV6K7TRK3ZNKRP7GK5FWLB7AИ В БД Именно такая запись.Блядь, не понимаю как правильно погуглить даже, пиздос уже час ебусь!Помогите
>>1456863Похоже, cur.fetchone() возвращает кортеж, что, в принципе, логично. Как вариант - присваивать str(cur.fetchone()[0]) вместо str(cur.fetchone()).
>>1456848> достаточно сильнаяЛол. Давай в децибелах измерять?> Но тут всё-таки явное определение оператора, это согласуется с принципами "сильной типизации".В питоне везде и всегда явное определение оператора. По крайней мере, так оно выглядит "снаружи" интерпретатора. И ты никак не можешь запретить делать каст магическому методу, реализующему оператор. Поэтому, несмотря на заявления в документации, в питоне нет сильной типизации.a, b = Type1(), Type2(); a + b может сработать, явные преобразования видишь? - и я не вижу, типы разные мало того, в Type1.__add__ может быть return Type3(), язык опять же не запрещает, значит типизация никаким местом не сильная.> ты не можешь написать " " + my_classЭто манипуляция. Я мог бы, если бы встроенные типы в питоне не были бы запечатаны не для усиления типизации, а просто чтобы не замедлить и так медленный язык еще раз в пять. Я все еще могу написать my_class + " ". И даже код анона >>1456806 я почти могу написать (обойдя проблему с переопределением int.__add__): http://ideone.com/x4vjeF> В питоне практически всегда надо делать явное преобразование типовПотому что встроенные типы недописаны (намеренно, да). Но это проблема касается встроенных типов, а не языка.
Подскажите, почему умножая два числа (a,b), где a = int, а b = floatя иногда в результате получаю числа с огромным количеством знаков после запятой? Пример: b = 0.001for a in range (0,100)c = a*bprint(c)и в результате я получаю:0.001 / 0.002/..../0.036/0.037000000000001/0.038/...
>>1456943Потому что флоат какая-то хуита с непонятной точность. Я так понял чтоб таких проблем не иметь - проще использовать:from decimal import Decimalдля не целых чисел.
>>1456947Ну не хуета, а способ хранения вещественных чисел.Про идею можешь почитать https://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B5%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D1%87%D0%B8%D1%81%D0%B5%D0%BBВообще эта информация может пригодиться только на интервью и байтоебам, так что не ебись и используй round
>>1456963>Вообще эта информация может пригодиться только на интервью и байтоебам, так что не ебись и используй roundКогда работаешь с деньгами, то это очень важно, у нас float почти не используется, все числа либо в int или обернуты в Decimal
>>1456943Потому что числа в компьютере хранятся в двоичной системе исчисления, аллё. Неужели это для тебя новость? Наверняка нет.Тогда тебе будет просто понять ответ: в двоичной системе все float'ы должны иметь конечно представление, типа "1101.1101010010011". Но не всякое число, имеющее конечное десятичное представление, имеет и конечное двоичное представление. Например, "0.2" в десятично системе - это бесконечная циклическая дробь "0.00110011001..." ("0.(0011)"), которая, разумеется, округляется компьютером до конечного числа знаков после запятой. И если это округлённое число потом ты пытаешься записать в десятичной форме, то выйдет "0.200000000000000011102230246251565404236316680908203125".Так происходит не со всеми числами, конечно. Например, "0.5" в двоичном виде это просто "0.1", и преобразование туда-обратно происходит без округлений.Можешь сам поиграться вот тут https://www.exploringbinary.com/floating-point-converter/
>>1456728тоже думал поучиться на скилфактори,не могу переступить порог "джуна", на работе делаю что-то с текстовыми данными ,но написать что-то серьезное вроде вебприложения не могу
Правильно ли я понял,что по PEP 8 нужно вместо табуляции пользоваться пробелами?1. Нахуй такое требование? Чем табы не угодили?2. Всегда пользовался табуляцией равной 4 пробелам. Сейчас одну табуляцию заменил на четыре пробела (саблайм автоматом меняет). Всё правильно сделал?
>>1457089Не, ты не понял. Выделение блоками понятно, но почему в PEP 8 рекомендуют пользоваться богомерзкими пробелами для выделения этих блоков, а не православными табулярами?
>>1456777>Нужно механизм, который будет создавать однотипные методы на каждый статический атрибут классаНу статические переменные, как я предложил можно высосать из __dict__, а "однотипные методы" - какая-нибудь хуйня с замыканием, ленивые лямбды не подойдут.
>>1456777Можешь ещё написать декоратор для класса. Метаклассы лучше использовать, когда декоратора недостаточно
>>1457096Блять, ты тралишь? Я так и сделал. Вопрос не во мне, а в том почему по PEP 8 именно пробелы рекомендуются.
Я ТУПОЙ И НЕ ПОНИМАЮПОЧЕМУ во стором случае переменная i внезапно стала 5?Что значит изменялась внутри функции?Что такое локальная и что такое глобальная переменная я знаю.Помогите, пожалуйста.
>>1457108Читай внимательно, баран. "Если бы". Глобальная переменная видна во всём коде, локальная - только в теле функции (совпадающее название перекрывает глобальную).
>>1457108сначала базу почитай. у тебя в голове так нихуя не структурируются знания. открвай литературу и читай, блять
>>1457113>>1457114Я не понимаю почему значения факториала в случае "Если бы" равны "5">Глобальная переменная видна во всём коде, локальная - только в теле функции (совпадающее название перекрывает глобальную).Я это понимаю. Не понимаю откуда берется эта пятерка.
>>1457117Получается, автор учебника просто облажался и рандомно написал значение? Офигенно. Пол часа мучаюсь, пытаюсь разобраться. Если так, то спасибо.
>>1457125Ну разберём по частям автором написанное.>"Если бы"Ну обойдём это ограничение c помощью массиваhttps://repl.it/repls/GrossVerticalBraceОй, нихуя не сломалось.... как же так. Автор не знает как range работает или что?И да, можно снять комментирование и убедиться, что это один массив.На пример получше.https://repl.it/repls/LightgrayTintedTrigger
>>1457108Пример действительно некорректный и ошибочный, так как в этом случае даже если бы глобальная переменная изменялась бы ВНУТРИ функции, результат был бы аналогичным, то есть:1!=12!=23!=6...итд, так как значения глобальной и локальной i тут совпадают.На скрине я сделал i global, автор лох.
>>1457125Да, автор очевидно облажался. Может он сам пару лет назад в программирование с нуля вкатывался. При желании можно проверить, просто объявить i как global. Но и так очевидно.
>>1456772> Пытаюсь выучить питон уже не первый год (7-8 лет время от времени читаю книжки по нему)Тьфу, блядь, я этот ёбаный Пихон за 2 часа выучил, прочитав документацию, этот дебил за 8 лет не смог.
>>1451619 (OP)Я тут разные сортировки реализовываю, и мне нужно передавать в функцию список и индекс последнего элемента, самое простое(#1), передать аргументом по умолчанию какое-то левое число, с которым функция потом точно не вызовется рекурсивно, это работает. Но препод показывал фишку(#2), когда по умолчанию мы даём None, а потом, ну вы поняли: https://ideone.com/y3wk3eВот второй способ у меня вызывает превышение глубины рекурсии, что я делаю не так?Вот весь код со вторым способом:https://ideone.com/Us9fv4
Ну что, парни, я еще раз подумал, неужели это так хуево на годовом курсе сидеть?Я не молодой гений, который с 15 ковыряется, у нас на информатике делали в штмл хелоу ворд.Поговорите, пожалуйста, со мнойЯ готов учиться так же сильно, как я ненавижу сейчас то, чем занимаюсь.
>>1457171>молодой гений, который с 15 ковыряетсяНе сыы, у них на олимпиадах горит с тех кто занимается с <=10.
>>1457171Читаешь книги, сначала по пистону, потом по жс, потом по джанге + какой-нибудь асинхронный фреймворк и наконец реакт.Книг дохуища, курсы нахуй не нужны.
>>1457171Представь, что ты хочешь пойти переводчиком работать, переводить какие-то документы на немецкий язык. А сам ты пока только шайсе, ханде хох и гитлер капут знаешь. Цель реальна, но путь долог.
Аноны подскажите. Следующий код падает с ошибкой.import RussianIvan as kukholdimport RussianTyan as blyadfrom asia import AhmedAhmed.moved(kukhold, to=PARASHA)Ahmed.fuck(blyad, to=ANAL)Ahmed.solved_voprosik.make_money()Runtime error: your Ivan broken while running from Ahmed. Please repair your Ivan.Что делать?
Аноны, есть несколько приватных методов внутри класса, которые не изменяют и не дергают данные из self и pycharm предлагает объявить их статическими, но я читал, что статические методы это обычный неймспейс внутри класса, их сделали по ошибке и вообще их использование это плохая практика. Что делать? Объявить их классметодами или просто отключить их детект в инспекторе пайчарма?
Подскажите, пытаюсь добавить строку матрицы numpy, но не напрямую, а через вычисленный элемент.Выглядит это так:st = 0,0,0 a = np.column_stack([a, [ st ]])Пытался и через format, выдает ошибку. При этом если вручную забить 0,0,0 то никаких проблем нет.
>>1457241> которые не изменяют и не дергают данные из self> Что делать?Значит это не методы. Убери свои функции нахуй из класса, это тебе не жаба.
>>1457268Они вне контекста класса юзаться никогда не будут, я просто разделил большую функцию и вынес для удобства
>>1457270И, тем не менее - зачем им быть в классе?Это же питон - сделай просто функции в этом файле, рядом с классом.
>>1457268Сделай статическими, почему нет?А вот так >>1457276 делать скорее всего не надо. Логика построения кода страдает, читаемость страдает.Тупо, вот два класса есть, ClassA:@staticmethoddo_some_work()ClassB:@staticmethoddo_some_work()два разных класса с одинаковым по имени статическим методом, который реализован может быть по-разному, это специфика класса. Это совсем грубый пример.Физически статики всё-таки чуть другие, это не декоратор в привычном понимании, там своя реализация в интерпретаторе для них.
>>1451619 (OP)СапНи написал ни строчки кода в жизни.Но нужно срочно блять учить какой то язык погромирования, желательно связанный с анализом данных.Что то где то слышал про питон.Также что то где то слышал что его не прекращают поддерживать и что это плохой сигнал.Напишите стоит ли его учить в моем случае и почему?
>>1457306В твоём случае не стоит. В анализе данных всего два наиболее употребимых языка (ну ещё для первичного анализа часто бывает удобен Excel/Power BI) это R и Python. Эту информацию ты бы смог извлечь за 20 минут гугления. Далее легко можно было бы почитать характеристики каждого из них и выбрать тот который тебе больше подходит.
>>1457315Долбоеб тупой. Хуистики может еще почитать?Р насколько я понял он какой то ущербный, типа полуязык.А Питон уже якобы прекратили поддерживать.Стоит ли учить Питон и в чем подводные прекращения поддержки?если ты долбает то можешь не отвечать
>>1457326>Р насколько я понял он какой то ущербный, типа полуязык.>А Питон уже якобы прекратили поддерживать.Знаешь что, а наверняка ты говна, тупая жирная зелень.
>>1457007Ты конечно прав, я подразумевал, что вопрос не касается коммерческой разработки. Если ты занимаешься коммерческой разработкой и задаешь подобные вопросы здесь, то у меня очень плохие новости для твоего работодателя.
>>1457279> А вот так >>1457276 делать скорее всего не надо.Почитай, например, код стандартной библиотеки. Открываем случайный: zipfile.py. Видим: def _strip_extra, def _EndRecData, def _EndRecData64, которые используются классом ZipFile. Как же так? Почему они не статические методы? Правильно, потому что это писали на питоне, а ООП-шизики, набижавшие из Java, до них еще не добрались.
Вечер в хату. Работаю в офисе, недавно в мои обязанности вошла индивидуальная рассылка вручную неких файлов на фиксированный список адресов. При обычной рассылке всё это улетит в спам. Хочу написать скрипт, автоматизирующий процесс, но перед этим поясните, пожалуйста, несколько моментов:Есть ли риск, что меня пидорнут с подачи какого-нибудь Санька из айти отдела, который задетектит работу скрипта? Мол, мутный софт, может быть я корпоративный шпион-диверсант, хуё-моёКакие подводные при использовании smtplib с почтовым сервером компании?Есть ли реальные угрозы безопасности рабочей почты?
>>1457421Если ты локально на своем компе будешь рассылать письма через скрипт на питоне - заметить это будет невозможно, так как отправка не будет отличаться от отправки вручную. Если совсем параноик - сделай паузу между отправкой писем на случайное время.Подводных нет, опять же отправка через библиотеку и через почтовый клиент (который так же использует кем-то написанную библиотеку, а может даже smtplib но не думаю что ты его используешь).Угроз нет, если ты случайно в список почт на отправки, не добавишь почту шпиона или там у кого-то не появится доступа к твоему компьютеру, но это проблема не скрипта, это может произойти и без него.
>>1457421> Есть ли реальные угрозы безопасности рабочей почты? Будешь рассылать без вызова starttls() - будут тебе реальные угрозы безопасности.
>>1457326>А Питон уже якобы прекратили поддерживать.Не используй питон, тебе не нужно, ты даже элементарную информацию найти не в состоянии. Попробуй себя в специальности продавец-консультант. Или менеджер по продажам. Там как раз важно уметь поболтать.
>>1457399>Видим: def _strip_extra, def _EndRecData, def _EndRecData64, которые используются классом ZipFile. Как же так? Почему они не статические методы?Потому что эти функции используются в нескольких классах и в других функциях, которые вне классов.Код должен быть в первую очередь корректно офомлен с точки зрения логики. То есть если у тебя метод явно по логике связан с классом, то его и надо оставлять в классе и делать статическим, если не привязан к контексту. Если же он делает какую-то общую операцию, не связанную с классом, то разумно выносить из класса.
>>1457533Ты можешь привести пример операции, "связанной с классом", которая была бы достаточно целостной для вынесения в отдельный кусок кода, но при этом не требовала бы для выполнения значений экземпляров класса?А то общие слова, не понятно, о чём конкретно речь.
>>1457533https://docs.python.org/3/faq/programming.html#how-do-i-create-static-class-data-and-static-class-methods Крайне рекомендуется не кричать "аааа, @staticmethod", а дочитать до конца.
exe сразу вылетает, создана с помощью pyinstallerВ ней использую модуль numexp и один свойВ чем проблема?
>>1457711Если тебе надо сконвертить софтину или софтину с PyQt в exe - используй nuitka.nuitka --standalone --windows-disable-console --plugin-enable=qt-plugins --windows-icon="c:\icon.ico" --remove-output "c:\test.py"
аноны, подскажите пожалуйста,gtts:https://gtts.readthedocs.io/en/latest/module.html#examples______________________________________Playing sound directly:from gtts import gTTSfrom io import BytesIOmp3_fp = BytesIO()tts = gTTS('hello', 'en')tts.write_to_fp(mp3_fp)# Load `mp3_fp` as an mp3 file in# the audio library of your choice_____________________________________Каким модулем можно воспроизвести этот 'file like object'?Пробовал Pygame.mixer - не хочет. Видел пример с использованием musicplayer - этот модуль у меня даже не устанавливается. Есть какие-то ещё варианты?
>>1457711>>1457728nuitka создает папку, мне же нужен один файл exeЧто за ошибка с numpy? Он даже не используется. Установлена последняя версия numpy
>>1457799Нашел решение. В начале кода необходимо добавить import numpy.random.commonimport numpy.random.bounded_integersimport numpy.random.entropyЭто баг numpy, говорят в следующей версии исправят
>>1457306>Но нужно срочно блять учить какой то язык погромированияОчередной колхозник подумал, что будет спустя месяц получать миллиарды в наносекунду. Кинул тебе за щеку манька, ты не то кодить, ты писать без "блять" как междометие не можешь. Теперь открывай рот, разрешаю.
>>1457255У меня все работает. Что конкретно тебе надо? Если добавить именно строку, а не столбец, то нужен row_stack, а не column_stack, и в любом случае должны быть подходящие друг другу размерности аргументов.
>>1457875Тупая шлюха кто тебе сказал что я работать буду прогреем???Мне это нужно чтоб в США приняли в магистратуру на бизнес аналитика.Там одно из требований - знание ЛЮБОГО языка программирования на НАЧАЛЬНОМ уровне.
Python'ом могу пользоваться только версии 3.4.2, pip не хочет обновляться до последней версии, а numpy/scipy/mathplotlib не хотят устанавливаться при моём большом желании ими пользоваться. Есть вариант установить старые версии библиотек?
>>1457911Да кто тебя туда примет, манька. Ты с таким отношением к людям будешь нахуй послан в самое, что ни на есть ближайшее время. Приказываю гавкать дальше, чмоха.
>>1457913>Python'ом могу пользоваться только версии 3.4.2А что мешает поставить свежий?> Есть вариант установить старые версии библиотек? Конечно. Можно прямо указывать версию пакета в форме <имя_пакета>==<номер_версии>, например, pip install MySQL_python==1.2.2. У pip есть много команд и ключей к ним, в том числе, например, --python-version для, внезпно, версии питона, для которого надо искать пакеты. Кроме того, на сайтах проектов обычно доступны и предыдущие версии проекта.
>>1457936Спасибо, учту. >>1457960>А что мешает поставить свежий?То, что я нуб и не понимаю, почему версия свежее 3.4.2 не хочет устанавливаться на мою 32-битную семёрку. Так или иначе, спасибо за помощь. Я нашёл нужную мне версию и всё установилось без проблем.
>>1457959что блять гуглить? шизоид>>1457947>Ты с таким отношением к людямты можешь блять 5мин побыть не русней вшивой а помочь человеку с которым у тебя нет отношений??? Или ты блять и на дваче отвечаешь только по блату и только своим???
Допустим, я запустил приложение с помощью os.startfile('C:\\...\\program.exe'). Есть способы определить положение окна этого приложения на экране?
>>1458047> определить положение окна этого приложения на экранеТы можешь дергать Windows API через ctypes. EnumThreadWindows/FindWindow, GetWindowPos, вот это все.
>>1458064хуиту написал. У меня есть jsonто есть надо сделать как-то так a = s.json()print (a["response"]....) итд. Помогите анону
Допустим, у меня есть скрипт, который смотрит сводки погоды на каком-нибудь сайте раз в час. Какие у меня есть варианты для организации его постоянной работы на продолжительный срок, помимо держания комплюктера включенным 24/7?
Как грамотно исправить эту ситацию со словарём, чтобы не нужно было постоянно копию словаря создавать?https://pastebin.com/PcXuF8YK
>>1458200Какую ситуацию? У тебя меняется переменная класса, все логично. Объясни подробнее, чего ты хочешь долбиться?
>>1458214У меня получается два экземпляра класса, но при смене в одном из экземпляров значения в словаре, значение меняется и во втором. Мне нужно чтобы такого не было.Вроде как такое происходит потому что оба словаря ссылаются на одну область со значением
>>1458218Так это потому, что ты объявил "переменную класса", няша. То есть, она общая как для объекта new1, так и для объекта new2.Не знаю твою задачу и почему тебе важно определять словарик в отдельном классе, но предположу, что так надо.Что бы словарик создавался каждый раз новый, определи его не как переменную класса, а как переменную объекта, используя конструктор (__init__), тогда каждый раз, когда ты будешь создавать объект new1, new2, new3 класса Test_main у тебя будет создаваться новый объект test_ класса Test, с доступом свеженькому, только созданному специально для этого объекта, словарю.https://pastebin.com/e0a0dJEnИли для тебя принципиально важно, что бы создавался один объект класса Test, на который ссылались разные объекты класса Test_main, но при этом, каждому из них был доступен отдельный атрибут test_dict?
>>1458223> Не знаю твою задачу и почему тебе важно определять словарик в отдельном классе, но предположу, что так надо.Просто пишу текстовую рпг и решил для инвентаря сделать отдельный класс, в котором в разных словарях хранятся отдельные типы предметов. А у меня получается что для двух разных существ инвентарь общий > Что бы словарик создавался каждый раз новый, определи его не как переменную класса, а как переменную объекта, используя конструктор (__init__), тогда каждый раз, когда ты будешь создавать объект new1, new2, new3 класса Test_main у тебя будет создаваться новый объект test_ класса Test, с доступом свеженькому, только созданному специально для этого объекта, словарю.Вернусь с обеда попробую так переписать, вроде как это именно то что нужно. > Или для тебя принципиально важно, что бы создавался один объект класса Test, на который ссылались разные объекты класса Test_main, но при этом, каждому из них был доступен отдельный атрибут test_dict?Мне наоборот нужно чтобы для каждого класса Test_main создавался свой Test, так как в моем говнокоде он представляет собой инвентарь.
>>1458232Должно работать. Удачи тебе с твоим начинанием.Я и сам думаю начать на pygame пилить что-нибудь.
>>1458235Я больше с целью нормально понять ООП, чем получить готовую игру.А что думаешь? Если время есть пили, чому нет, может годное что выйдет.
>>1458238Потому, что очень много заморочки. Во-первых, я смутно знаком с PyGame'ом, во-вторых, с игростроем вообще не знаком, ну и в-третьих, я не умею рисовать. При этом, никакой коммерческой выгодны (прокачки особых скиллов, умения пользоваться нужными при работе библиотеками и т.п.) нет, разве что строчка в резюме "сделал игру", лол.Вот и получается, что цель как-то не оправдывает средства.
>>1458247Думаю строчка в резюме "сделал игру" не такая уж и плохая вещь, тем более если код хороший будет
>>1458280Так а чё крутовато? На малинке потом умный дом сообразишь, а elm8266 стоит 200 рублей - заодно майкропайтон поковырять можно
>>1458223Приехали. Оно так и сделано, но один хуй моб дает мне пизды мечом, который я только что выдал игроку
Закрасить клетки. Расстояние до стены не известно. (пикрелейтед)Тут код, который я смог написать - https://pastebin.com/0BqkZ5yEПроблема только в одном, когда тесты запускаю, если последнюю клетку надо закрасить, то фейл. Робот тупа доходит и не красит. Не понимаю какое условие надо ебануть, чтоб все ништяк было.Задача отсюда - http://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html#o9-task-8-2Помогите
>>1451619 (OP)Помогите решить проблему, благородные доны. Я пытаюсь наладить простую программу для шифрования. Нужно просто запросить у пользователя обычную строку текста, зашифровать её, записать в текстовый файл (к которому могут иметь доступ третьи лица, от которых и нужно защитить данные), а потом другая программа могла бы вытаскивать всё то, расшифровывать и использовать. Ничего толкового придумать не смог
>>1458358На предпоследней клетке твой робот делает проверку, надо ли закрашивать, а потом шагает вправо и функция волл из он де райт начинает отдавать True, поэтому цикл с проверкой на последней клетке не выполняется. Подумай как сделать программу так, чтобы оно сначала проверяло, надо ли закрасить, а потом делало шаг, если справа нет стены.
>>1458365>Ничего толкового придумать не смог Начни с того, что разберись с понятиями "блочный шифр", "потоковый шифр", со словами ECB, CBC и тому подобными. Это базовая теория.Потом смотри на библиотеки, которые имеются в наличии.
>>1458278Если ты не школьник, у кого банально нет своей карточки, чтобы с неё за хостинг заплатить, я бы рекомендовал всё-таки найти 5 долларов в месяц на VPS. У тебя масса других возможностей появляется, когда свой виртуальный сервер есть.С бесплатными вариантами тяжело. Тут даже не потому, что всем жалко, а вопросы безопасности, слишком много опций для злонамеренного использования таких сервисов, никто с этим связываться не хочет.Но поищи, может что есть.
НЕ ОБОСЫТЕ, А ПОМОГИТЕ!Что я делаю не такВот так вызываю: driver = CustomDriver(student)Вот такую ошибку получаю:TypeError: __init__() takes 1 positional argument but 2 were givenВот такой код:import osfrom sqlalchemy.orm import Sessionfrom studtool.models import Studentfrom .utils import AttachmentUploadExceptionfrom cached_property import cached_propertyfrom selenium import webdriver__all__ = ( 'CustomDriver',)class CustomDriver(object): def __init__(self): self._is_initialized = False @cached_property def driver(self): # type: () -> webdriver.Chrome self._is_initialized = True return webdriver.Chrome() def logout(self): if self._is_initialized: self.driver.close() def sign_up(self, student, session): print ('signup') def sing_in(self, student): pass def upload_attachment(self, student, attachment): print ('upload') def update_info(self, student): pass def getkey(self, student): pass def logout(self): if self._is_initialized: self.driver.close()
>>1458446class CustomDriver(object):def __init__(self):self._is_initialized = Falseу тебя инит принимает self(он передается неявно) и всеА ты ему тычешь self и student
>>1458446Как я вижу, __init__ в твоём классе не принимает никаких аргументов, кроме self. Как вариант - добавить в качестве второго аргумента student, сделать его атрибутом класса и потом уже использовать в твоих методах. я нуб, отсасывать не надо
>>1458459>>1458461От души братаны, всем отсосов в этом треде за мой счет.Пиздец, как выручаете уже второй раз.
Ощем, перед тем как приступать к изучению тестирования и переходу к большим проектам Эрик Мэттис, 10 глава задумал закрепить полученные знания и нахуячкать соснольную программу у которой есть логин, регистрация новых пользователей, админ и юзеры с разными допусками и методами - юзеры смогут создавать текстовые файлы и писать в них хуйню малафью, админы могут тоже самое + менять данные пользователей и вот это вот всё, например.Пока что запилил регистрацию и логин у меня аж привстал когда всё заработало как надо, ага, завтра сделаю два класса: юзер и наследуемый от юзера админ. Так вооот, будет ли правильным то, что я вкорячу дополнительным аргументом класса статус, который и будет различать юзера от админа когда пользователь будет логиниться, не? или как это всё провернуть?И это, проверьте текущий http://ideone.com/0fnl4C код, подробно обоссыте если что не так, ага. никаких дополнительных проверок, безопасности и прочей хуйни пока что нет, потом допилю, если не лень будетмимо >>1454354
>>1458498Базы еще не проходил, думаю меня в последующих главах этому научат, а пока пользую json.Пилю это говно только для того чтоб ООП подтянуть
>>1458446Только вкатываюсь в питон. Может кто построчно объяснить что тут делается такое?Какая-то жуткая ебанина просто.>class CustomDriver(object):>def __init__(self):>self._is_initialized = False>>@cached_property>def driver(self):># type: () -> webdriver.Chrome>self._is_initialized = True>return webdriver.Chrome()>>def logout(self):>if self._is_initialized:>self.driver.close()
>>1458506У тебя там есть декоратор cached_property, который не описан в твоем куске. И уважай других прикрепляй ссылку на пастбин, а не срань гринтекстом
>>1458498Надо качать файл и запускать у себя в консоли - на идеоне интерактив не работает, как я понял
Пацаны, кто по коду может проконсультировать рублей за 100? Объяснить одну вещь в телеге.>>1458446 -кун
Есть такой код – https://pastebin.com/KEcrtUH4Мне наставник дал такой комментарий:>обратите внимание на эту конструкцию>is_initialized флаг хранящий состояние обёртки над selenium.>driver инициализируется лениво (при обращении к нему). нет обращения - не инициализируется, окно не создаётся.Я вот так открываю Хром – self.driver = webdriver.Chrome(executable_path=path + '/chromedriver', chrome_options=options, )Вот куда мне поставить вызов Хрома, чтобы всё работало как задумано?Пиздец, я уже методом тыка куда только не вставлял.
>>1458514Настолько все плохо, что готов сотку отдать за то, что вполне можно нагуглить? Был бы за компом, бесплатно обучил бы тебя, как строить запросы в Гугл, чтобы найти нужные тебе ответы, но увы.
>>1458552>>1458560Это я сделал, но столкнулся со следующей проблемой.https://pastebin.com/4TuGHa6C File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/cached_property.py", line 35, in __get__ value = obj.__dict__[self.func.__name__] = self.func(obj)TypeError: driver() missing 1 required positional argument: 'student'35 строка это @cached_property
>>1458582Нихуя не понял, но твой метод драйвер запрашивает обязательный аргумент "student", который ты ему, видимо, не передаешь. А вообще, зачем тебе "student"? Ты ж его вообще нигде не используешь, кроме как в принимаемых аргументах методов.
Как перевести 2.4e-05 в 0.000024 в строчном представлении?я делаю str(2.4e-05) и получаю '2.4e-05', но мне нужно получить '0.000024'?
>>1458665спасибо, добавил еще '{:f}'.format(2.4e-5).rstrip('0').rstrip('.') чтобы на других числах нормально было
Добрый вечер. https://pastebin.com/UuCkErtJВылезает OSError: exception: access violation writing 0x0036F13C. ЧЯДНТ?
>>1458885Лучше функции передавать сам список, а не его копию, потому что для создания копии требуется время и память и со списком больших размеров можно обосраться
>>1458885Выше (>>1458886), в общем, правильно написано.Но, есть нюанс - опущена мотивация.На самом деле, там написано:Хотя вы можете предохранить содержимое списка [от нежелательного изменения], передавая в ваши функции его копию, но ...Т.е. копировать это хорошо, это повышает безопасность, но, делать это бездумно не нужно, лучше не писать кривых функций, мутирующих данные без нужды.Но, т.к. функции могут быть и не твоими, и обстоятельства бывают разными, то на этот случай есть вот такая конструкция - [:], которая позволяет скопировать список.
>>1458309Я дурак, проблема вообще была не в этом. Герой, который получал урон, атаковал себя своим же оружием
Анончики, ещё один глупый вопрос, нагуглить не получилось.Есть Один Метод и в нём три ветки условия, которые отличаются только одним названием словаря, название зависит от item_type. Можно это переписать в одну ветку, чтоб название словаря бралось из item_type.Вот код: https://pastebin.com/Ptf9JEfx
У меня нубо вопрос.Как во фласке/джанге параллелить вычисления/не блочить сервер? Я с потоками, мультипроцессингом сталкивался на уровне запустить потоки с именами, посмотреть че они творят, как расхуячивают общую переменную и т.д. Не понимаю как этим пользоваться здесь: вьюха должна вернуть http. Если я внутри вьюхи кусок кода кину в отдельный поток, она вернет хуевый http без нужных данных. Если сюда добавить join, тогда все тупо заблочиться, пока все клиенты не будут готовы. Нужно как бы на каждого клиента запускать свою вьюху, но для этого нужен какой-то общий цикл, который чекает готова ли вьюха. Куда приделать этот цикл во фласке? Как я понимаю, с таким циклом и событиями я подхожу к принципу ассинхронных фреймворков? Вот с yield-ами я не дружу, воспринимаю их тупо как способ сгенерировать еба-лист. Вроде их используют в таких случаях?
>>1459006Подскажи, где лучше всего тренироваться? Пишу в Sublime, но хотелось бы, чтобы сразу можно было запустить программу, не из командной строки. Попробовал PyCharm, но какая-то громоздкая программа, тормозит и грузится долго
>>1459012Во, у меня такие же впечатления от PyCharm'a осталось. Слишком все громоздко. Пока пишу в саблайме, запускаю из консоли.мимо нуб
>>1459012>>1459014В пучарме же есть кнопка запустить, ну ладно. Такая же кнопка есть в visual studio code.
>>1459012Поставь пакет sublimeREPL, можешь даже бинд на него поставитьне забудь версию питона в нем сменить
>>1459008Генераторы (yield).Подробности - в интернетах.Можешь загуглить "python twisted generators", например.
>>1459012>>1459014>PyCharm>громоздкая программа>грузится долгоДля обучения - это лучший вариант.Подсказки и прослеживаемость связей в коде - просто охуенны.Чтобы не тормозило - надо поставить SSD.
>>1459070https://packagecontrol.io/installation я вот этот здоровый код вставляю в консолю, но ошибку выдаёт
>>1459058Для обучения как раз нафиг не надо лезущие отовсюду окна с якобы подсказками, а на самом деле просто отвлекающий мусор. Когда учишься, нужно понимать что происходит, а не подсказки читать.мимо с любовью вспоминаю студенчество с турбо паскалем 7.0
>>1459083Алсо по твоей ссылке еще один способ есть:>If for some reason the console installation instructions do not work for you (such as having a proxy on your network), perform the following steps to manually install Package Control:Справа, под Manual
>>1459078Какие окна с подсказками? Какой мусор?Ты вообще понимаешь, о чём речь, клоун?> с турбо паскалем 7.0Понятно.
>>1459120Для написания хелловорлдов и решения задачек на алгортмы - да.Для промышленного программирования - нет.
>>1459124>Для промышленного программирования - нет.>PyCharm>Для промышленного программирования>PyCharmОукей. Улыбаемся и машем.
>>1459131Ставь sublimeREPL, потом в конфиге версию правь гугли. Запуск либо через бинд гугли, либо как на пикриле
>>1459134https://stackoverflow.com/questions/19181999/how-to-create-a-keyboard-shortcut-for-sublimerepl/19182278Нашел
>>1459138Эта хуйня нужна только для того чтоб запускать интерактивные программы, пока можешь пользоваться просто ctrl+B - результат будет выволиться ниже в сосноле
>>1459127Возможно, я не очень понятно выразился.Я имел в виду, что "херня" в pycharm может быть "ненужной" для хелловорлдов, но не для промышленного программирования.
Решаю алгоритмические задачки в пайчарме, не понимаю ваших проблем, на стареньком ноутбуке с линуксом всё летает. Если у вас долгая индексация пакетов -- создавайте проект с virtualenv, благо это в пайчарме в две кнопки делается.
>>1459146Так тебе и говорят что все эти подсказки ебаные только мешать будут если ты промышленным программированием занимаешься.
>>1459154> Написать две строчки конфига> Ух, сложна, блять!! Никогда такого нее было!!Зумерок не палиться...
>>1459158> в коде есть input()Так удоли его оттуда. Зачем он тебе? Данные вводить во время обучения? Лучше записать их в файл или в список и читать оттуда, а не набирать одно и то же в *цатый раз, снова и снова узнавая, что у тебя баг в коде. Можно даже сделать простейшую реализацию для input(), которая будет прозрачно читать из файла или списка. Вот серьезно, не могу придумать ни одного юзкейса для input(). Интерактивный блокирующий ввод в скриптовом языке абсолютно без задач.
>>1459186Так обучение подразумевает, что у тебя скрипт падать будет, что у тебя будут баги, что ты будешь его запускать стопицот раз. Какой смысл писать:x = input('first number: '))y = input('second number: '))print(z)z = x * yи нихуя не понимать, почему оно не работает, если можно положить числа сразу в переменные, без инпутов? Что от этого изменится кроме того, что станет удобнее?
>>1459166Это моя ошибка. Нужно было указать, что в каждом if-е у меня по функции, плавно двигающей курсор в нужном направлении в соответствии с положением old и new относительно друг друга, и простым присваиванием здесь не обойтись.
>>1459195>и нихуя не понимать, почему оно не работаетВ этом то и вся писечка же - думой, почему оно не работает. А изменится то, что это будет интерактивной, и не такой очевидной хуйней как удобненькая переменная в твоем коде.
>>1459195[Running] python -u "d:\Python\helloworld.py" File "d:\Python\helloworld.py", line 1 x = input('first number: ')) ^SyntaxError: invalid syntax[Done] exited with code=1 in 0.142 secondsОшибка у тебя какая-то
>>1459149Сынок, ты вообще видел все эти иде от джетбрейнс?А программировать что-нибудь пробовал?Не на турбо-паскале?
>>1459212first number: 1second number: 5Traceback (most recent call last): File "d:/Python/helloworld.py", line 3, in <module> z = x * yTypeError: can't multiply sequence by non-int of type 'str'Всё равно ошибка
>>1459221>>1459218x = float(input('first number: '))y = float(input('second number: '))z = x * yprint(z)Я исправил!
Да бля, нихуя не получается по этому способу: https://stackoverflow.com/questions/19181999/how-to-create-a-keyboard-shortcut-for-sublimerepl/19182278
>>1459263>Не работает, я так и сделалКвадратные скобки сверху и снизу добавь>Add bellow lines to the opened file between brackets:[{ "keys": ["ctrl+alt+b"], "command": "run_existing_window_command", "args":{ "id": "repl_python_run", "file": "config/Python/Main.sublime-menu"}}]>НетДа
>>1459282import sysprint(sys.version)Запускай в репле жежГугли как поменять на третью, тыж программист, ну - гугл твой лучший друг
https://medium.com/@hariyanto.tan95/set-up-sublime-text-3-to-use-python-3-c845b742c720Я по этой инструкции делал. ТАм написано, что если показывает версию 3 как у меня, то все ок.Я не качал другие версии
>>1459319Какая-то анальная эта твоя аргументация в стиле "упрощённый синтаксис == плохой и ненужный язык". Нахуй тебя слушать вообще?
>>1459329Без скобочек, двоеточечек циркумфлексиков, долларив, ковычечек некрасиво! потому что код не выглядит кодом!
В какой момент можно претендовать на позицию повидла?Необходим какой-то стек или просто наработанный опыт джуном? Если да, то сколько месяцев?
Привет, аноны. Скиньте, пожалуйста, книг по tkinter на русском. Видеоуроки дрянь полная, не рассказывает никто, что, почему и зачем там. Лучше уж по книге заниматься
>>1462514Единственное, что тебе нужно знать про tkinter - это то, что это ненужное, устаревшее говно. Бери PyQt5.
Короч, котятки, супервопрос. Мне нужно каким-то хуем управлять сраной разбивкой пакета на уровне протокола IP средствами питона.Как это удобнее сделать?
>>1451619 (OP)Короч, котятки, супервопрос. Мне нужно каким-то хуем управлять сраной разбивкой пакета на уровне протокола IP средствами питона.Как это удобнее сделать?
Аноны, скиньте книг по PyQt5 и как кодить на нём, не только дизайнить. Видео-гайды полное говно, не объясняют, почему именно так надо и из-за этого понимания ноль
>>1451619 (OP)Неужели в питоне нет метода для множественной замены символов? Допустим есть кортеж символов, которых надо удалить из строки
>>1451619 (OP)Привет двач, есть задача: нужно произвести поиск из списка знаков по строке. Например есть строка "abcd" и нужно проверить на вхождение каждый из символов этого списка в заданной строку, допустим "2chsosach".Вот что я придумал letter = "abcd"name = '"2chsosach"for i in name: for j in letter: if i == j: print(i)И оно работает, но сдается мне есть решение поэлегантней
Hi 2ch, такой трабл, я когда сохраняю в Atom (ctrl+S) выскакивает окно консоли, и когда запускаю (f6) тоже выскакивает пустое окно консоли, а потом консоль с выполняемой программой. Что за дичь пацаны?
>>1467614Ещё компилятор начал тупить,на код for ch in letter if letter in name print(name)выдаёт ch - не определенно, а спустя некоторое время, этот же код закомпилился
>>1467081- строка letter содержит разные символы?- нужно только принт делать?- на какую сложность рассчитываешь?