Давайте хоть нумерацию вести что-ли. Итак, как и всегда, добро пожаловать в наш уютнейший питон-тред!F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/HatСвой код кидайте через https://ideone.com/Книги: https://yadi.sk/d/tArKKuQu3KejuqПрошлый тред: https://2ch.hk/pr/res/1063552.html
Спасибо, Питон.
>>1073050 (OP)> нумерацию> добро пожаловать> уютнейшийТы долбоёб что ли?
>>1073059бля ну бывает
Питонач, когда ставишь в автоматическую загрузку конфиг uwsgi.ini в /etc/rc.local можно ли как нибудь хитро зайти в консоль сервера или нужно каждый раз, когда нужно обновить чонибудь выключать сервер, быстро делать дела и опять включать? Как это по уму делается?
>>1073086Запятую проебал>когда нужно обновить чонибудь, выключать сервер
>>1073086>выключать серверВсмысле этот процесс uwsgi, который запустился.
>>1073091Пиши демона.
>>1073086Смотря какая структура и как ты всё это запускаешь.У меня всё работает через supervisor и достаточно рестарт сделать для обновления.
>>1073050 (OP)Питон не нужен. Дискасс.мимо укатился в .net мир
>>1073136>Дискасс.> мимо/0
>>1073136Почему ты это пишешь здесь, а не в .net-мирке?
>>1073136В чем проблема?
>>1073315В питоне.
>>1073317В чем твоя проблема?
>>1073317Питон изнасиловал тебя в детсве?
>>1073318Проблемы не у меня, а у питона.>>1073319Питоношкольник, не агрись.
>>1073333> Проблемы не у меня, а у питона.Ты хочешь поговорить об этом?
>>1073336Ну только если ты из питоновской core team.
>>1073338Я не из питоновской core team. Значит, ты не хочешь говорить об этом.Что заставляет тебя говорить об этом несмотря на отсутствие твоего желания?
>>1073338Я из питоновской core team, задавай свои ответы.
>>1073347Глотаешь или спелеввываешь гвидосемя?
live-reload для обычных программ на python чем-либо отличается от live-reload для программ для web-development на python?
>>1073356Хуйню какую-то спросил.
>>1073362Нормально можно отетить?
>>1073363Нормально спроси, нормально отвечу, епта.
>>1073356Типа livereload для sublimetext или других редакторов чтоли? Ничем не отличается.
>>1071928https://ideone.com/8I78a8
>>1071976>peka=(-90 if i%2==0 else 90)peka=[-90,90][i%2]
>>1072449>не сожрали лишнегоЧто значит не сожрали лишнего? Итератор - это закладочка в итерируемом. Ничего она не жрет.Второй итератор заведи,я не знаю.
>>1073333Покажи , где Питон трогал тебя на вот этой библиотеке.
Docker позволяет установить программу с тем же alias'ом избегая конфликта и вызывать впоследствии её из конейнера из других программ? Вне контейнера alias доступен не будет?Что лучше юзать - Docker или Python3 virtualenv? У них одинаковый функционал? virtualenv позволяет устанавливать программы, не относящиеся к Python3?
Я тут в первый раз заюзал питон и накатал говнокод для уведомлений в телеграм, https://pastebin.com/smgGjJPqПоясните кто-нибудь почему если поменять переменную BAD например на 123 (а такого в ответе сайта в status нет 100%) оно все равно в проверке if в цикле while status.find(BAD) идет по этому ветвлению, а не в else..
>>1073421>Что лучше юзать - Docker или Python3 virtualenv? Смотря для чего>У них одинаковый функционал? Нет, у докера обширнее>virtualenv позволяет устанавливать программы, не относящиеся к Python3?нет
>>1073427>(а такого в ответе сайта в status нет 100%)>>> help(str.find)Help on method_descriptor:find(...) S.find(sub [,start [,end]]) -> int Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation. Return -1 on failure.ты неправильно проверяешь ответ-1 это всегда True в булевом приведении
>>1073427>if status.find(BAD):if bad in status:
>>1073437Traceback (most recent call last): File "/Users/elodan/Desktop/TelegramBot/check.py", line 20, in <module> if BAD in status:KeyboardInterruptОно просто замирает на этом месте пока не прерываю процесс.
>>1073443Все, решил, просто записал результаты проверки в булеановские переменные и работал уже с ними. Всем спасибо, все свободны.https://t.me/inmac
>>1072288Это моноблок с предустановленной 8. 7 даже потяжелее, мне кажется, а с луниксом лень заморачиваться. -А есть интересные задачки на питоне, для новичков?
>>1073504>А есть интересные задачки на питоне, для новичков?Пиши очередную имиджборду.
>>1072288>Ну и да, 2017@2 гб. ОЗУ это такое.
Подскажите как сгрупировать по свойству.Грубо говоря есть список с аргументами, у каждого из которых есть id, как правильно будет их сгрупировать?Думаю в список списков по id, но хз как и будет немного по монгольски.
Есть две функции: в первой вызывается вторая, а во второй первая. Ожидаемо такой код падает с эксепшеном. Как правильно такое реализовать?
>>1073512ну хуй его знает, мало чего понятно из твоего сообщения. ебашь словарь по id, в который и будешь сувать свои списки с аргументами.>>1073515очевидный вариант: не делать так или прописывать критерий выхода, но всё равно когда нибудь достигнешь максимального уровня погружения в рекурсии
>>1073512itertools.groupby
>>1073520Спасибо, сейчас почитаю.
>>1073519Падает NameError, код даже не выполняется из-за того, что вторая функция объявлена позже её вызова.Например такой кодdef a(x=0): if x== 0: b() print ("a")def b(): print ("b") a(x=1)a()Даже не попытается выполняться.
Ребзя, анон месяца полтора -два назад кидал ссыль на свою имейджборду на гитхабе. Может у кого осталась ссылка, поковырять хочу.
>>1073525ты не пример давай, а что нужно сделатьочевидно же, что у тебя архитектура кодеса не та
>>1073549Ок, есть две джанго модели со связью многие к многим, которые ссылаются друг на друга. В модели пользователя есть поле, содержащее всё ивенты, в которых он участвует а в модели ивента есть поле всех пользователей, участвовавших в ивенте
>>1073563>многие к многим, которые ссылаются друг на другаА чо так можно? Ты правила не нарушил?
>>1073525Все работает.https://ideone.com/e5aLZq>>1073549Нормальная у него "архитектура", такое часто используется для обработки структур непонятной вложенности.
>>1073563Ебать, как внезапно перескочил на джанговскую модель.https://stackoverflow.com/questions/16574350/import-error-when-cross-importing-django-python
Получил тестовое задание от фирмы нужно выполнить на джанго,фласкеМожет кто из знающих анонов проконсультировать? Помогите анону с двача не обосраться и получить работу в картофельной респблике.Телега @save_me_prОбещаю занять не более 10 минут и вечную благодарность.
>>1073570https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.ManyToManyField.symmetrical
>>1073577Почему бы не сформулировать вопрос тут?
>>1073577посоветую пилить на джанге
>>1073584да кто-нибудь возьми да и напиши решение, а я хочу лишь совета, ибо мне самому интересно, но очень уж не хочу облажаться. >>1073585там указано что бэковую часть нужно пилить на фласке (непонятно нахуя).
>>1073590>да кто-нибудь возьми да и напиши решение,что за фантазии?там наверняка задание не на один часпиши давай
def sub(x, y): return x - ydef add(x, y): return x + ydef mul(x, y): return x * ydef div(x, y): if y == 0: return 0 else: return x / ystr = input()parsed = str.split(' ')t = str[0:3]val = int(str[4])val2 = int(str[6])ds = {"ADD": add, "SUB": sub, "MUL": mul, "DIV": div}print(ds[t](val, val2))Если брать не однозначное число выдает ошибку, как фиксить?
>>1073602>как фиксить?во-первых, четко сформулировать решаемую задачу, составить набор тестовых данныхво-вторых, не переопределять зарезервированные слова (Str)в третьих, не харкодить индексыесли надо вычислить простое выражение (a+b,a-b,a*b,a/b) то сначала ищешь оператор, а затем слева и справа от него выделяешь операнды
Есть список списков.Как мне один внутренний список поменять местами с другим, если проверка идёт внутри списка списков?Выглядит как-то такhttps://pastebin.com/Z9qAxgZJ
>>1073676проебал, там > for a in cофк
>>1073676
>>1073684>if 8 in first_list[1]фикс
>>1073685Это только пример был, в реальности больше списков будет.
>>1073690first_list[0] first_list[1] = first_list[1] first_list[0]
>>1073690Индексы храни
анонасы, поясните за "изучаем питон" лутцапрочел почти полностью (не стал смотреть 2 последние главы, кажется про метаклассы и еще что то)как по мне, пиздец, наискучнейшее чтивопочему её везде пихают и всем советуют как первую ?потому что она длинная или что :Sпиздец, за тысячу с лишним страниц, я выудил полезной инфы наверное на 100-150 максимуму него еще уебанская манера повторять все по тысяче раз в одном и том же абзаце90% того, что он расписывал на 10-15 страницах, я обычно проверял за главу до этого двумя строчками в интерпретаторепиздец, чувство, как будто просто бездарно потерял время
>>1073700>потому что она длинная Да, чтобы очередной вкатывальщик подольше в тред не заглядывал, а в идеале забил на это дело.
>>1073704>Да, чтобы очередной вкатывальщик подольше в тред не заглядывал, а в идеале забил на это дело.но эту книжецию прям вообще везде пихаютона даже есть на python.org (хотя там дохуя книжек, что как бы намекает)
Так, я тут накатал просто дикий говнокод, просто потому что не смог понять как чуваки на гитхабе писали имиджборду.Поясните как это надо было сделать и как превратить этот говнокод в менее говнокод?По ссылке список тредов с последними 3 постами, отсортированный по последнему посту (не точно)https://pastebin.com/jaqqRVxd
>>1073710Просто пиздец, дольше 20 секунд выдержать не смог.
>>1073712Я понимаю, потому и спрашиваю, я пиздец как долго думал как написать, в итоге решил написать хоть как-то, а потом уже рефакторить.
>>1073715> а потом уже рефакторить.Какой нахуй рефакторить, там все заново писать надо.
>>1073710Нормальный код. Теперь удали всё и открой доки Джанги.
>>1073710выпиши на листочке, что тебе надо от треда (пример - число постов, последние три поста, число ответов с картинками), поста (оп или не оп, есть или нет картинки) и сделай это через методы или свойства (properties) модели
>>1073718Что именно открыть?>>1073734Тоже об этом думал, тут я подсмотрел немного, что понял. Сейчас попробую добавить методы. Модели выглядят так.https://pastebin.com/0P3hLbgh
Как в джанго queries записать or как в SQLто есть чтобы матчило либо по одному, либо по другому параметру?
>>1073398Омерзительно!
%s автоматом преобразовывает значение подстановки в строку, я прав? Или берет первое подходящее значение (строку)?напримерprint "текст %s" %(1.5,100,"dog")
Как в питоне сделать чтоб иттератор ifor i in listбыл именно иттератором, то есть 0,1,2,3а не элементом списка?чтоб я мог обращаться к элементу списка внутри list???
>>1073895>чтоб я мог обращаться к элементу списка внутриlist??? Зойчем?
>>1073898Ну во-первых, for не порядку обходитВо вторых хочу обращатьсятак list[index] , мне так удобнее
>>1073899>Ну во-первых, for не порядку обходитНихуя себе новости.>Во вторых хочу обращатьсятак list[index] , мне так удобнееТы какой-то странный.
Несколько тредов назад в шапке была красивая картиночка на которой указывался основной стек технологий, есть у кого-то?
Чому некоторые онлайн эдиторы просят скобки для принта ставить, а некоторые нет? Версия тройка
>>1073903> Версия тройкаВ 3-ей версии они обязательны.
>>1073834прими грязные хаки в сердце свое
>>1073899ты с сишки/паскаля вкатываешься?for в случае упорядоченных контейнеров (список, кортеж, строка) обходит по порядкуобращаться по индексу в общем случае моветон
>>1073818Q()
>>1073891Ну блядь, ну возьми ты да запусти эту сраную одну строку кода, всё сразу очевидно станет!>>1073899>Во вторых хочу обращатьсятак list[index] , мне так удобнееПредполагаю, что в таком случае питон у тебя не первый язык. Как бы ты такой обход массива сделал в другом языке, Кроме javascript'а, там действительно for i in array выдаст индексы, но ты же не оттуда, надеюсь? Вот затем это же на питоне напиши, раз уж так надо.Воспринимай "for a in list" как forEach.
>>1073915что кукуешь, на вопрос можешь ответить?
>>1073921Django Q
Как вы учились программировать? Здесь есть люди, котрые изучали основы (Кнут, Кормен, SCIP и так далее)? Надо ли вообще это все изучать?
>>1073978Прочитал простую книжку по алгоритмам (грокаем алгоритмы), лутца, "python. к вершинам мастерства", "django by example" и веб-туториал по фласкуСейчас работаю сижу и дрочу стек по мере надобности
>>1073999>"python. к вершинам мастерства"Что в этой книге такого?
>>1074014Я просто искал что нибудь по пифону для тех, кто уже прочитал лутца, а то вокруг только книги для начинающих вкатывальщиков
>>1074015Зачем тебе книги, если базу ты освоил? Для дальнейшего роста есть официальная документация к интересующим тебя модулям/фреймворкам, гугл, стековерфлоу, этого достаточно.
>>1073999Тоже всё это сделал, на работу не берут, даже на собеседования не зовут, лол
>>1074017Надо было мозг включать когда язык выбирал, оценить рыночек и свои шансы на вкат.
>>1074018Ой, да иди нахуй, ща подучу ещё носкл, торнадо нгингкс какой-то и буду 100к в секунду
>>1074021Главное успей проснуться до того как обосрешься.
>>1073915Спасибо, анон, вроде бы, только я не могу понять как достать оттуда посты свои.Вот у меня такого вида есть Q<Q: (OR: <QuerySet [<Post: 1 1>]>, <QuerySet [<Post: 1>, <Post 1>, <Post: 1>]>)>И как отсюда достать эти посты?Проблема ещё в том, что посты достаю через фореин ки, пробовал такParent.objects.filter(post__in=a)где а, собственно, Q object, но пишет ValueError: not enough values to unpack (expected 2, got 1)
>>1074023>проекции
>>1074016Ну у лутца не все библиотеки описаныА в вершинах и ассинхронность и itertools со всякими functools полностью используются и еще куча всегоИ это не повторяется по пять раз как у лутцаМне зашло
>>1073999Большая часть того, что есть в книгах быстро забывается, если не применять на практике. А на практике там многое не применяется.
>>1074037Главное, что я помню что это есть, где это найти и примерный способ использования, восстанавливать знания гораздо быстрее, чем получать новые
>>1074024Всё, сам разобрался, спасибо ещё раз за Q
>>1074044То есть ты просто читаешь это как справочник? Чтобы в случае, когда это понадобится ты мог не растеряться
>>1073710Переписал немного, теперь получше?https://pastebin.com/Ev2BV4Yr
>>1074051Совершенно верно. Необязательно помнить абсолютно все методы наизусть и их правильное использование. Намного важней знать, что такой метод есть, а также где и как его найти в документации.
Аноны, есть пара скриптов которые я хотел бы дать человеку пользоваться, но без возможности глянуть сорцы. Есть какие-то готовые решения для этого?Пока нашёл только как это сделать самому ручками, то есть собрать свой велосипед.p.s. Просто кинуть .pyc или подобное не пойдёт, нужно именно защитить сорцы по максимуму, но при этом что бы всё приложение работало.
>>1074015Полистал вершины мастерства. Очень напоминает Поваренную книгу питон.
Друзья, тут скорее всего ошибка дцпшника, но я не могу найти:почему-то ждется выполнение треда для продолжения цикла, что я не так делаю?
>>1074079в .run() нельзя передавать аргумент?
>>1074057Нет, пиздуй дальше изучать джанговскую орм-ку.
>>1074079простите, все осознал, я тупой даун
>>1074097Так а что не так?Что там можно сделать, я получаю последние посты и оп пост с моделей методом.Единственное что я вижу хуево это 2 раза итерировать по спискам, но это не джанго орм, а просто моё слабое знание питона.Что там в орм переписать-то нужно?
>>1074105Когда я писал имиджборду, то в самой модели делал сортировку по времени и просто получал несколько первых постов
>>1074108Ну так я в модели же и сделал.#models.py def last_posts(self): res = self.post_set.filter(Q(op=True) | Q(id__in=[a.id for a in self.post_set.all()[:3]])) return res[::-1]
>>1074112https://docs.djangoproject.com/en/1.11/ref/models/options/class Meta:____ordering=['-create_date']
>>1074113Да блять, ты думаешь что я вообще даун что ли? Ты читал хотя бы что там написано. У меня всё что есть — это Post, нужно опа достать и 3 последних.https://pastebin.com/rJbD9zRX
Анон, пишу бота для веб игры с помощью pyautogui.и метод locateOnScreen не всегда находит изображение на экране. Не нашел различий между частью пикрил1 и пикрил2. Знает ли кто более-менее быстрый способ нахождения координат изображения? И еще, можно ли использовать png с прозрачностью
>>1074127отклеился пик 1
>>1074127> бота для веб игры Так возьми selenium
>>1074132там все отрисовано жабаскриптом на canvas, селениум ведь для html?
Короче хочу построить гистограму с логарифмической шкалой.В общем есть структура bin с min и max параметрами, в гистограме таких бинов например 16, min max заполняются в цикле следующий образом:width = max - minbin_min = minfor i...s = (i + 1) / sizef = log(width)fi = exp(f s)bin_max = min + (uint64_t)fi;hist.bin.max = bin_maxhist.bin.min = bin_min;bin_min = bin_max...Где min и max диапазон гистограммы.В общем, проблема в том, что начальные бины получаются с очень маленьким шагом в пару нс, и я не понимаю как решить эту проблему. Вот пример выхлопа такой гистограммы c min = 1500, max = 100 NS_IN_MICROSECOND, то есть диапазон от 1.5 до 100 микросекунд.[00][1500 ns - 1502 ns]: 0[01][1502 ns - 1504 ns]: 0[02][1504 ns - 1508 ns]: 0[03][1508 ns - 1517 ns]: 0[04][1517 ns - 1536 ns]: 0[05][1536 ns - 1574 ns]: 0[06][1574 ns - 1652 ns]: 0[07][1652 ns - 1813 ns]: 75[08][1813 ns - 2143 ns]: 365[09][2143 ns - 2820 ns]: 645[10][2820 ns - 4210 ns]: 962[11][4210 ns - 7060 ns]: 1898[12][7060 ns - 0012 mc]: 8[13][0012 mc - 0024 mc]: 4[14][0024 mc - 0049 mc]: 2[15][0049 mc - 0100 mc]: 0Первая колонка номер бина, вторая диапазон, третья само значение гистограммы.На примере видно, что шаг в первых бинах очень маленький в 2 нс, что мне бы хотелось исправить, и сделать шаг немного шире при таком же диапазоне, но я пока не понимаю как.Заранее спасибо.
>>1074127Лучше ковыряй протокол.
Нужно захуярить портфолио за неделю на джанго и ко. Какие проекты предложите?
>>1074174Очевидный имиджборд, вон один >>1074125 уже пилит, присоединяйся к нему, пойдете 2 по цене одного.
>>1074175Я не еблан.
>>1074176Бля, я тоже не еблан, ты чо охуел?
>>1074177>я тоже не ебланКому ты пиздишь, твой код за тебя все говорит.
Товагищи, мы тут с аноном решили запилить ещё одну библиотеку, на этот раз для Anti-Captcha (до этого делали для RuCaptcha). Возможно объединим две библиотеки в один модуль.Неплохой шанс для новичков потренироваться и попоробовать себя в небольшой командной работе. Сроков жестких и каких-либо ограничений нет.Если кого заинтересовало - заходите к нам, там всё будет расписано и ближе к выходным начнём, планируем по крайней мере. Ссылка - https://t.me/joinchat/CD2EtQ5Pm0dmoSQQMTkVlw
>>1074179Ну ты тоже напиши, я посмотрю, хули ты там высрешь гвидо комнатный))
>>1074206Что тебе написать, няш? :)
>>1074211имиджборду
>>1074212Нахуя? Их и так туча https://github.com/search?l=Python&q=imageboard+django&type=Repositories&utf8=%E2%9C%93
>>1074215А ты рассчитываешь, придумать что-то новое, или что на работе будет не очередной интернет магазин?
>>1074217Я не думаю, а знаю, у меня на работе и так не "очередной интернет магазин", а сириос бизнес, лол. Да и на прошлой кстати тоже, был далеко не типичный интернет магазин, вернее даже не магазин.
>>1074222Хорошо тебе, удачи тогда придумать что-то интересное.
>>1074224Ничего придумывать не надо, все уже придумано до нас.
>>1073902На яндекс диске в шапке
>>1074230От души, родной! От души!
>>1074232А то. Я же эту картинку и приволок сюда в июне. И архивчик мой. И три лайка сука на 3000 просмотров в диске.
Кто-нибудь может объяснить, что происходит в цикле for при использовании итератора? Не могу понять, переменной цикла присваивается сначала сам итерируемый объект, а потом к ней применяется метод __iter__ и уже к полученному итератору __next__ или же все это применяется к итерируемому объекту, а переменной присваивается только значение, которое возвращает метод __next__?
>>1074237второе
>>1074237Если тебе с подробностями, то так: интерпретатор пробует получить итератор из объекта который стоит после инструкции for эквивалент collection.__iter__() потом он у этого итератора получает следующий объект из коллекции эквивалент iterator.__next__()Можешь тут подробнее поглядеть если тебе так интересно https://github.com/python/cpython/blob/master/Python/ceval.c#L2819-L2885
>>1074235> три лайка сука на 3000 просмотровВот не надо ныть, хотя бы 3, а то пока я не поставил - вообще ничего не было.p.s. Спасибо за книги, кстати.
>>1074238>>1074240Но тогда возникает вопрос, почему будет работать такой код:for i in Squares(1, 5): print(i, end=’ ‘)Если вызвать методы __iter__ и __next__ объекта, стоящего после for, то бишь класса в данном случае, определенные в самом классе, то ничего же не должно произойти, потому что без предварительного присваивания i=Squares(1,5) не будет получен аргумент self. Вот реализация класса:class Squares: def __init__(self, start, stop): self.value = start - 1 self.stop = stop def __iter__(self): return self def __next__(self): if self.value == self.stop: raise StopIteration self.value += 1 return self.value 2
>>1074244Черт, пробелы пропали
>>1074244>потому что без предварительного присваивания i=Squares(1,5) не будет получен аргумент selfТак ты вот этим: Squares(1,5) и создаешь экземпляр класса. Не обязательно его какой-то переменной присваивать. Как например в конструкции for i in range(10)
>>1074249Понял, спасибо.
Поясните за ManyToManyField.Вот у меняclass Pizza(models.Model):____title = models.CharField(...)class Toppings(models.Model):____pizza = models.ManyToManyField(Pizza)Я присваиваю экземпляру Toppings пиццу.Как мне достать title из этого экземпляра?top = Toppings.objects.get(id=1)Как мне через top получить title?
>>1074241Вообще надо бы новых залить но лень
>>1074274Давай заливай, это же двачи, кто тут лайки ставитВ треде спасибо напишем
>>1074257Чет у тебя каша в голове
Сап, питонач.Есть вариант сходить на оффлайн конференцию по питону, в частности джанги. Сам я отсносительно нуб, пару книженций прочитал, как думаете есть профит идти? Главный минус всё это дело стоит 500 хохлятских рублей ~1000 деревянных.Обещают вот такую срань показать:1 деньИдеи, лежащие в основе DjangoАрхитектура DjangoОбласть применения, особенности и ограниченияДемострация: пишем простое ВЕБ приложение на Django2 деньЧто такое Continuous deliveryСложности Continuous deliveryИстория DockerАрхитектура DockerДемострация: Continuous delivery от разработки до Delpoy в среде Docker3 деньЭволюция процесса деплоймента веб-приложенийСтек AWS Lambda для serverless/FaaSРазработка под AWS Lambda на языке Python. ТестированиеИспользование AWS Lambda + Python в productionСтоит идти, если я половину слов не знаю что там написано?
>>1074295Наверное, я что-то не могу понять, через фореин ки я могу получить аргументы с обоих сторон, а через мени ту мени нет?
Джанганы, как выглядит жизненный цикл приложения на джанге? Т.е. я вызываю команду runserver, сервер запускается, и что? Идет загрузка всех файлов в память? Или сервер тупо готовится принять запрос, а после принятия запроса уже каждый раз заново загружает py-файлы в память для выполнения, чтобы после отдачи ответа выгрузить эти файлы прочь из памяти? Т.е. хранится ли байт-код в памяти или загружается каждый раз по приходу запроса?
https://tutorial.djangogirls.org/ru/ есть где-нибудь версия этого туториала без обращения к читателю в женском роде?
>>1073700Доусон норм. Легко осваивается начинающими. Лутц для углубленного изучения, и он совсем уж точно не подходит тем, кто только начинает учиться программировать.
>>1073710Ну всё ебать, говорил же что перепишу, теперь уже точно получше стало.https://pastebin.com/sXSMtYFM
>>1074438Ну сходи на первый день, может будет возможность хоть вопросы позадавать. Остальные 2 дня тебя я думаю пока без надобности, разве что так, для общего развития, чтобы знал.
>>1074452Че, сексист шоле?
>>1074483Да там биллет на 3 дня. Всё равно наверное схожу, думаю, полезно будет.
Господа питонизаторы. Поясните нубу за "Убедительная просьба закидывать свои проекты в виде /название проекта или фичи/virtualenv/папка с содержимым проекта/ , например, /Регистрация/virtualenv/Registation/. Зачем? Потому что это упрощает всё. Деплоясь в virtualenv вы избавляете большинство от проблем с не той версией питона/джанги или же отсутствия какой-то либы, которую вы нашли на задворках интернета." из шапки.Означаел ли это, что если я запилю что-то в своем энве, ахривану его и выложу в доступ, то каждый смоежт юзать из коробки просто распаковав папку с виртуалэнвом?
>>1074509>Означаел ли это, что если я запилю что-то в своем энве, ахривану его и выложу в доступ, то каждый смоежт юзать из коробки просто распаковав папку с виртуалэнвом?Вообщето виртуаленв принято воссоздавать на новой тачке
>>1074509Больше на докер похоже.Виртулвенв юзер создает новое окружение у себя, из requirements.txt ставит пакеты с нужными версиями и запускает в этом окружении скрипт.
>>1073700Все эти книги нужны больше для ознакомления. Чтоб ты пролистал одну-две такие книжки и получил представление о языке и его возможностях. Что-т там в них выучивать бестолку. Ты можешь сколько угодно вникать в книги, от обсеров во время твоих работ в редакторе это не спасет. Все равно будешь сидеть тупить, гуглить, лазить по справочникам. Как по мне, так книги только оттягивают нубов от начала настоящей практики.
>>1074524Это и было мое изначальное понимание. Ибо тогда не было б 100500 топиков о том, как перенести энв. Думал, что мб что-то я недопонял.>>1074526Т е более-менее валидный путь клонирования энвайронмента - это что-то вроде pip install -r requirements.txt ?
>>1074543> Т е более-менее валидный путь клонирования энвайронмента - это что-то вроде pip install -r requirements.txt ? Выходит что так.P.s. По факту я это ни разу нормально не юзал, только попробовал как-то и все. Но я ж у мамки хекка и не работаю в команде ни с кем и кучу различных проектов не имею.
>>1074530Проорал. Ты ничего вменяемее hello world без книг не напишешь. Вася, даже гугл тебе не поможет. Хули толку от конструкции со стэковерфлоу, если это код и ты вообще не вкурсе, что это за шамбала и че она делает.
Что делать, если мой код раз в 5 больше от лучших решений на кодеварс?Чувствую себя неполноценным
>>1074582изучать стандартную библиотеку
>>1074569>если это код и ты вообще не вкурсе, что это за шамбала и че она делает. А тут вступают в дело мозги, позволяя человеку-таки понять, что тот код делает. Но это не про тебя.
Как в форме во вьюхе передавать ManyToMany поля?Для Foreigh key я просто пишуforeign = get_object_or_404(Foreign, id=id)post.foreign = foreignКогда делаю для ManyToMany тоже самое пишет TypeError: 'Many' object is not iterable
>>1074683Сделал вот так, это правильно?many = get_object_or_404(Many, id=id)post.many.add(many)
Аноны, создаю три потока.Мне нужно что бы при завершении одного из потоков(завершается определённый процесс), завершались и остальные два, какие есть варианты?
>>1074736Блять, ночью в глаза ебусь.Создаются процессы. 3 процесса.
Почему del(n[1]), но n.remove(1) ?Почему форма записи отличается?
>>1074736>завершались и остальные дваЗавершались в смысле принудительно убивались если ещё живы, или каким-то магическим образом все три синхронизировали свою работу и сами по себе завершались одновременно?Если первое, то всё легко же — https://repl.it/M9XWЕсли второе, то помочь ничем не могу.
>>1074794Да, принудительно, спасибо, сейчас чекну твой вариант.
>>1074683>>1074687Прочитал, что неправильно в доках, пишут такform.save_m2m()Только я нихуя не понимаю как это работает. Как оно выбирает с каким именно объектом м2м ассоцироваться?У себя я конкретно передавал. Вот поле в модели есть many=models.ManyTomanyField(Many)Потом выбирал нужный мне айдишник many = get_object_or_404(Many, id=id)и уже его присваивал новому посту в полеpost.many.add(many)Поясните как оно работает?
Питон выводит линии вида print(a + b)a1 + b1a2 + b2a3 + b3Мне нужно сделать, чтобы вывод был таким:........b1a1 + b2a2 + b3a3Как это провернуть?
>>1074876Если быть точнее, то вывод выглядит так:for i in xprint(i['a'] + i['b'])
Как вернуться на строку х?
>>1074794Отлчино, антош, заработало.P.s. А не могу бы ты пару коментов написать, что бы понятно было чому оно так работает? Интересует именно main_proc и как он связан с остальными.
>>1074888Типа, введите пароль, если пароль соответствует, продолжаем выполнение, если нет, вернуться на строку, с предложением ввести пароль.
>>1074890Используй цикл while.Что-то типа:while True:____if not enter_password():________continue____else:________breakНу и в enter_password() запрашивай ввод пароля и проверяй его, и если всё ок - возвращай True, если же нет - False.
>>1074895Нихуя не понял. Что-то похожее на это можно сделать?passw = '123'pass1 = input('Введите пароль:')if passw == pass1: print('Пароль корректен.')else: Вирнуца к строке 2.
>>1074901https://pastebin.com/2aJpuaSH
>>1074913Вернее вот так даже лучше.https://pastebin.com/y1hnLsgz
>>1074917Cпасибо.
На странице форма, после отправки идёт переход на эту же страницу.Как это грамотно сделать? Потому что у меня постоянно либо сохраняется написанное в форме, либо я задаю пустую форму, но при перезагрузке оно всё равно спрашивает хочу ли я заново отправить форму.
>>1074941Чтоблядь?!1. Код сюда2. Распиши нормально в чем проблема3. redirect может заюзать попробуешь?
Привет ребятки, вот решил попробовать программирование и тут охуел! Пикрел.Неужели мне нужно знать синусы, тангенсы и прочие ряды-дифуры?С помощью вики смог заебашить этот Ряд тейлора для вывода экспоненты. Но нахуя? Это так важно в погромировании?Ну вот освоил я синтаксис, знаю что такое статический метод, абстрактный класс, что дальше?
>>1074197Неужели только 1 желающий?Или местным идея не понравилась? Или чат в ТГ? Или что?P.s. Скоро начинаем.
>>1075016> Либа чтобы дёргать api по http> Неужели только 1 желающий?> Либа чтобы дёргать api по http> Неужели только 1 желающий?https://www.youtube.com/watch?v=MGxAtO5n9SY
>>1074941>но при перезагрузке оно всё равно спрашивает хочу ли я заново отправить форму.method=GET
>>1075020Есть предложение интересней и полезней? Готов тебя выслушать.Только давай без борда на джанго.
>>1075027Дело не в пользе и/или интересе. Зачем для этой задачи больше 1 человека?
>>1075028Дать возможность новичкам попробовать свои силы, мне не жалко.И нас там 2-3 всего.Еще сайт надо бы допилить, его API.
>>1075008Ты еблан
>>1075008Твои задачки говно, так и будешь их дрочить пока новый язык не придумают
>>1075031Так пусть новички либу и сделают. Пиздец. Процесс простой срываю покровы: 1. Ищещь либу в гугле.2. Если либа нашлась, то goto 4.3. Пишешь либу.4. Используешь либу.> Еще сайт надо бы допилить, его API.Какой, нахуй, сайт?
>>1075007> 3. redirect может заюзать попробуешь?чот я внатуре даун, спасибо
>>1074197Что у вас конкретно делается, ты мне скажи, не понятно же нихуя.Что вы капчу решаете, или что?
>>1075033>>1075032Поясните же! Куда двигаться дальше?
>>1075043Пишем библиотеку для работы с API anticaptcha.>>1075035Сайт для проверки работы библы.Гугли "python rucaptcha" и там первые ссылки - на либу.Ну насчет плана ты прав, но хз что гуглить.
>>1075051> Пишем библиотеку для работы с API anticaptchaЧто она делать-то будет?Антикаптча это хуйня которая решает каптчу, правильно? А вы что будете делать?
>>1075055>API
Посоветуйте лютую годноту для изучения Python (кроме того, что в шапке)
>>1075080Alex Martelli, Anna Ravenscroft, Steve Holden-Python in a Nutshell. A Desktop Quick Reference
>>1075055Обертку над API anticaptcha.
>>1075083Спасибо
>>1075008Охуенное у тебя образование. Школьники справляются, а ты нет. Лучше бы учился, а не дотку гонял.
Виндовсы, подскажите, если перекинуть папку с питоном на другой пека с той же виндой/разрядностью, то он будет работать? А сторонние библиотеки?
>>1075105А мелочь есть? А позвонить?
>>10751021.3.40 реши, не школьний блять.
>>1075106Что за хуйня? Рили, нужно в конторке накатить кое какой стафф, а инета там нет. А ставить библиотеки на питон без пайпа гемморой какой то.
>>1075107Некорректное ТЗ. 6 единиц из 6 будет считаться успехом или нужно строго 1 единица из 6 и 2 из 12?
>>1075110Скачай колёсики нужные.
>>1075114А потом колеси зависимостей колесиков, и может быть их колесики...
>>1075115Парень, сделай пустой venv, установи всё, что надо, сделай freeze и скачай нужные колёса.
>>1075121Интересно даже, как мне это сделать >>1075110>нужно в конторке накатить кое какой стафф, а инета там нет
>>1075123Поясню, на одной пека там стоит все нужное. USB заблочены злым сисадмином. Можно только по внутреннй сети передать файлы. Советы накатить линукс/водяры/колесики приберегите для...да нене бериге, нахуй они никому тне нужны.
>>1073050 (OP)Вкатываюсь в Питон для решения личных задач(до этого только быдлокодил в вузе на С, легко с методичками), какие подводные?Компилятор не палит ошибки в синтаксисе/долго привыкать к синтаксису? Много ли уйдёт часов, после которых я буду писать хоть что-то внятное?(ну, условные те же вузовские задачи)
>>1075125Ну и соси тогда, долбоёб.
>>1075128Условные задачки из универа за день-два осилишь.
>>1075131Великолепно, что мне и нужно.
>>1075008Ну блять, если хочешь заниматься машинным обучением — ебашь математику и вот это всё говно, сам не знаю, но говорят, без высшей математики никуда, а если сайты будешь делать, то нахуя?
Помогите разобрать ето, а точнее super()
>>1075186Ну смотри, короче. В питоне нет смертоносного ромба смерти, потому что все атрибуты получаются справа налево из перечисленных родительских классов. А супер позволяет указать их какого родительского класса получать атрибут
>>1075201>из*
>>1075201Значит, super>rank, suit?
>>1075186https://www.youtube.com/watch?v=61UuKJRl2m0
>>1075205Обязательно смотреть, чтобы понять?
>>1075212Нет, можно просто в закладки добавить и само в мозг войдёт.
>>1075219Бэлдеж
>>1075186Это старая запись, так уже не пишут.>>1075201Слева направо, ёпту.https://ru.wikipedia.org/wiki/C3-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B0%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F
>>1075265Спасибо за видас. Годный лектор.
Только-только вкатываюсь в питон. Поставил себе задачу написать скрипт, который будет чекать файлик с примерно таким содержимым:vasya 7ffg 7tfgf 5tolya 3и выводить победителя с минимальным количеством попыток в игре.Был написан "парсер", который преобразовывает все добро из файла в словарь.d = {}for line in open('/home/d7/first_game_log.txt'):line = line.split('\n')line = line[0]line = line.split(' ')line[1] = int(line[1])d[line[0]] = line[1]Не до конца понял что делает "line = line[0]", можете пояснить?Чуть позже добрый анон подкинул эту строчку, которая находит и выводит победителя, а именно ключ с минимальным значением:> best_result = (min(d.items(), key=lambda x: int(x[1])))Но проблема в том, что я пока туповат и не понимаю как это сработало + меня не устраивал вывод этого значения в виде:> ['tolya', 3]Сегодня утром закинулся фенибутом, чутка прозрел и написал вот этот комбайн который выводит значение красивоhttps://pastebin.com/iP6LJBXL> tolya 3Правда размер в 33 строчки кода на такую примитивную задачу меня не много пугает. Есть ли способ сделать это не так колхозно?
>>1074889>Интересует именно main_proc и как он связан с остальными.Формально main_proc идентичен остальным, просто так как там нужно именно следить за его выполнением, я и вынес в отдельную переменную для наглядности (так-то можно было бы и proc[0] использовать).join() блокирует текущий (в данном случае главный) тред питона пока не процесс не закончит выполнение (другие треды/процессы продолжают работать). Соответственно, вызывая main_proc.join() я просто жду конца его выполнения. Как только он завершается, пробегаюсь по списку созданных ранее процессов и убиваю те, что активны.Если же нужно, чтобы все 3 процесса работали в фоне (т.е. основной поток не ждал выполнения main_proc'а), то всё будет сложнее, но это уже от твоей задачи зависит, события там или какие-то сигналы использовать или просто отдельный тред завести и т.д.
>>1075107Ну держи — https://repl.it/MchN4 строки, 36 скобок и оба варианта задачи (как указал >>1075113) решены.Даже предполагаемое решение через моделирование процесса тоже можно в 7 строк включая импорт и вызов уместить. (Впрочем, не стоит, особенно массив дефолтным аргументом делать, но я хотел максимально уменьшить количество строк. Если кто может ещё решить короче — милости прошу.)
>>1075391Тебе что то такое надо?
Двач помоги. Есть задание, суть которой в следующем: есть слово m= "кiт" и мне нужно сделать так, чтобы слово писалось в обратной последовательности "тiк". Считаю общее кол-во символов, ну а дальше ебашу цикл:for i in range(сумма_цифр,-1)print([m]i)Я правильно делаю?
>>1075518m = 'kit'print(m[::-1])И еще некоторые спрашивают, зачем лутца читать
>>1075085Но зачем? Вместо использования API антикапчи, люди будут использовать ваш API? Я на сайт к ним зашёл, там же всё до нельзя просто: два вида запросов, 3 типа ответов, всё. Или вы планируете сделать общедоступный интерфейс к оплаченному аккаунту?
Полный нуб, взял образец чужого кода, пытаюсь запустить - ошибка. Помогите разобраться, что не так. Подчеркнул и заскринил одно для примера.
Как мне в имиджборде запилить ответы к постам, это же фронт, или нет?
>>1075559через отдельную модель?мимо-ньюфаг
>>1075559Да, это фронт, тебе не сюда с такими вопросами
>>1075590Программист должен во всех областях шарить.
>>1075591Мамку свою расшарь, фулстак и бек это разные вещи, особенно в треде про пифон
>>1075592Может ты еще компьютеры не умеешь чинить, потому что нинужна?
>>1075595И принтеры заправлять мастер, да и стартапе человек не последний
>>1075515> Тебе что то такое надо?Да, определенно оно. Достаточно будет про лямбду почитать что бы понять как это работает и самому такое мутить?
>>1075605Лямбда, контекстный менеджер и открытие файлов в цикле
>>1075519Благодарю. К слову, читаю Доусона.
Почему питон такой лёгкий? Я за два дня на нём писать научился. Это мой третий язык.
>>1075617Ты выучил синтаксис, это не знание языка
Поясните за айпишник, как его достать? Беру из request.META.get('REMOTE_ADDR'), но постоянно высвечивается 127.0.0.1.Это так и должно быть из-за того, что я на локалхосте?
>>1075655https://stackoverflow.com/a/166520/6198558
>>1075655А какой ты айпи ожидал увидеть на локалхосте?
>>1075461Спасибо антош, я тогда позже разобрался в принципе и адоптировал твою идею под свой код - спасибо за дополнительные пояснения.
>>1075519Да для этого даже лутца не надо читать, достаточно по вкусу питона пробежаться.
>>1075536Ну наверное гораздо проще человеку, при разработке чего-то большого, просто взять готовую библиотеку и использовать ее средства, чем писать методы самому.P.s. Но я таки не настаиваю, это просто мое виденье и, в принципе, рукапчей оно подтверждается, людей библиотека интересует.
>>1075724Так я просто не понимаю, что там может быть такого в библиотеке, что упростило бы работу, потому что и так проще некуда. Может я не на ту антикапчу зашёл? Я смотрел вот этих — https://anti-captcha.com/apidoc/image . И всё, что тут можно сделать, по-моему, так это в функцию с именоваными аргументами запихнуть для простоты. Там работы-то на 10 минут и чужая либа, на мой взгляд, только ограничивать будет, особенно если захотите сделать как-то унифицированный интерфейс для всех трёх видов капч.А можно ссылку на рукапчу? Хоть посмотрю, что из себя представляло, ведь вполне вероятно, что это я дурак.
>>1075744Нет, с сервисом ты не ошибься, всё то.Вот ссылка на бибилотеку для rucaptcha.https://rucaptcha.com/software/view/python-rucaptchaВ принципе ты в основном прав, но:1. не делаем ради денег2. делается ради пракитики в написании чего-то конкретного в группе людей3. раз пользуются - значит надо.Ну и я, как уже писал выше, готов с радостью выслушать предложения по написанию софта/бибилиотек/скриптов и реализовать их, либо влиться в дружную или не очень группу с близкими целями.
Двощ, нужно сделать команду с параметрами. Ну, типа, пишешь программе допустим /huy 20 и выводит 20 хуев. Как это проще всего реализовать? В тонущем треде советовали argparse, но это вообще другая тема по-моему. Мне нужно чтобы в уже запущенную программу вводилась строка и определялась как команда, с нее подхватывались параметры и выполнялся соответствующий код.
>>1075748> предложения по написанию софта/бибилиотек/скриптов1. Либу для кроссбилда любого пифон проекта в бинарник без зависимостей (пижже, чем пуинсталлер).
>>1075748> предложения по написанию софта/бибилиотек/скриптов2. Либу для написания гуя под все оси (включая андроид и айос) без костылей, опять-таки с кросскомпиляцией
>>1075748> предложения по написанию софта/бибилиотек/скриптов3. Pizdatiy декларативный packaging.
>>1075748> предложения по написанию софта/бибилиотек/скриптов4. sans io http либу, чтобы всё умела не хуже requests.Может позже ещё чего допишу. Сделай хотя бы одно и о тебе заговорит весь пифон мир.
>>1075773>>1075775>>1075777>>1075778Ёбаный спам-лист. Так и не понял какое слово было спамом...
>>1075773>>1075775>>1075777>>1075778Э как тебя понесло.Ну хорошо, схоронил, поковыряю всё это, на возможность осилить, как закончу свои планы.> о тебе заговорит весь пифон мирНемного перебор, к этому то не стремлюсь, но ладно.Спасибо.
>>1075770>Мне нужно чтобы в уже запущенную программуЯ так понимаю, программа сама никаких данных не запрашивает, так что input() отпадает, тебе нужно асинхронно всё, да?В таком случае — https://repl.it/MdhU
>>1075793хуйню в get_input можно на readline().strip() заменить, в принципе.
>>1075793Нет. Программа как-раз таки запрашивает, ну епта. Хотя, смотря, что в твоем понимании значит "запрашивает". Короче, если без всяких мутных разъяснений, я делаю телеграмм-бота. Теперь понятно?Посмотрел твой код, нихуя не понял.
>>1075793>>1075806Блядь, пиздос, я походу нагуглил. Использовать split(" ") нормально будет? Подводных нет? Все гениальное - просто?
>>1075778И что ты под этим понимаешь?
>>1073050 (OP)Итак, петушки, почему я должен читать ебучего пиздобола Лутца на 1488 страниц и упражнениями для детей с задержками в развитии, вместо божественного Саммерфильда, который четко с вертушки поясняет за питон с охуенными упражнениями?
>>1075837sans io, долбоёб.
>>1075840Читай что хочешь, только сюда не пиши.
>>1075812Мда, проблемы ты описываешь, конечно. Так бы и сказал, что текст обрабатывать не умеешь. И как ты только бота сумел написать, не зная о сплите?
Пытаюсь своим моском осилить парсер. Установил lxml, беру код отсюда https://zxmd.wordpress.com/2011/02/15/easy-html-parsing-with-python -> Синтаксическая ошибка. Смотрю на пик, где описана ошибка - ничего не похоже на мною скопированный код. Мой питон бракованый?
>>1075891Мозг твой бракованный.
>>1075893Ожидаемо. Только забыл объяснить почему то, что работает у автора и скопированно без изменений - не работает у меня.
>>1075895У тебя питон третий, а статья автора из пещерных времён, он использует второй.В третьем питоне принт только функция, нужно вызывать print(malafya).
>>1075898Я бы вообще все в функции завернул без служебных слов, это же жутко удобномимокрок
>>1075840> Марк Саммерфилд — «Python на практике»Спасибо, уже качаю. Там книженция за 2014 или 2009 год ?
>>1075840не знаю зачем, но я уже скачал твоего саммерфильда. Впрочем, читаешь любую книгу за вечер, и идешь кодить, гуглишь по необходимости, а не зазубриваешь 16 способов сгенерировать случайное число, хотя я за 2 года кодинга не разу не использовал случайные числа. Учить надо избирательно, а не все подряд, а подходит в этих книгах именно такой, сесть на все стулья, и нихуя не уметь.Но я пробегусь по Саммеру, ибо у того же Лутца не нашел ничего, чего бы я не знал, не читая книг.
>>1075878Ну просто взял и без задней мысли написал. Я думал, что сплит всегда разделяет посимвольно./spoiler]
Я правильно понимаю, что задачи из проекта Эйлера - больше на алгоритмическое знание, и без хотя бы одной прочитанной книжки по алгоритмам туда лучше не соваться?
Питонач, нужна программка, которая парсит открытую у меня страничку браузера, находит все слова с определенным префиксом (например,кот, собака) и записывает их в бд, например, эксельевский файлик.
>>1075972Ну делай, раз нужно.
>>1075972Лел, я написал"*кот" а отформатировалось так.
>>1075974Так я не умею. С чего начать-то? Именно парсинг откртой странички.Может уже есть наработки готовые
>>1075972beautiful souphttps://yadi.sk/d/tArKKuQu3KejuqСкрапинг веб-сайтов с помощью PythonПро вторую часть не знаю, но там наверняка что-то простое.
>>1075972Слова с определенным префиксом - это уже к регулярным выражениям. Можно им онлайн попрактиковаться.https://regexr.com/https://regex101.com/
>>1075972Кстати еще есть scrapy. Он вроде еще больше для этого подходит.
>>1075982Советую лучше в сторону юзерскриптов на javascript'е смотреть, если именно в браузере что-то делать надо, а не скачивать странички в скрипте.
котаны, а существуют ли движки имиджборд на питоне? Может писал кто? Хочу в локальной сеточке поднять на работе
>>1075840Мой личный опыт говорит, что лучшая книга по ЯП должна быть похожа на k&r не фанбойство и не синдром утенка, т.е. иметь следующую структуру:1. Несколько коротких глав, которые поверхностно описывают синтаксис ЯП. Т.е. прочитав их ты можешь писать относительно простые, но, тем не менее, довольно полезные программки. Авторы, которые не делают такое введение сами ограничивают себя: поскольку читатель не знаком с основами языка, то и задачи он решать не может на нем, а значит ему и упражнения нельзя давать -- как он их решит, если условные операторы описываются на 370 странице, а циклы на 470? лутц-хуютц А если нет практики, то это не учебник, а хуита;2. После каждой главы должны быть упражнения. Они не должны быть слишком легкими типа сложи два числа и выведи результат на stdout, но и не сильно сложными как в кнуте, где ты над ними можешь размышлять неделями. Они должны довольно быстро решаться после каждой главы за вечер не сильно подготовленным читателем, но чтобы была необходимость немного подумать;3. Ну и в конце желательно кратко описать стандартную библиотеку;Именно такова книжка Саммерфилда. К сожалению, она постепенно устаревает и он вроде бы не планирует ее обновлять. Лутц -- это ебаная хуетень. 1600 страниц по пистону без упражнений и там нет даже описания stdlib -- он же ебнутый! Книги по яве занимают меньше на самом деле хорстманн и корнелл описывают именно синтаксис явы страницах на 400, дальше там уже описание стандартной библиотеки и фреймворков Нет, серьезно, Лутц -- это хорошее пособие как не надо писать книги по языкам программирования. Если нет упражнений -- сразу закрывай эту книгу, она тебя ничему не научит. Просто не понимаю зачем эти люди пишут книги, если они не понимают таких базовых вещей. Причем этот ебанько же еще и преподаватель там какой-то!
Какой же питон хуевый, блять.
>>1076008Вот этот дело говорит. Я, честно говоря, начинал изучать пипидон с книги Доусана "Программируем на Python". Там все объяснялось на примерах простейших игр, но все было органично для человека, который вообще не умел программировать. То есть, там с азов (что такое переменная и т.д.) дошло до классов и распределенных ссылок, причем я даже змейка написал сходу (три дня писал).
SyntaxError: invalid character in identifier Не могу найти этот самый инвалид кэректер.
>>1075770>>1075812Раз такое дело, двощ, помоги мне еще немного. Сразу напоминаю: я ньюфаг в программировании.Как можно автоматизировать создание комманды? Типа, если принята такая-то команда(текст), выполнить такой-то код, без дохуища ифов на каждый случай. Что-то мне подсказывает, что для этого нужно использывать классы и всю вот эту вот хуйню, но я в этом не силен.
>>1076079commands = {'command1': do_hui,'command2': do_pizda,'commandN': do_n,}result = commands.get(command, command_not_found)()
>>1076078Показывай свою функцию def main():
>>1076087
>>1076078name с двумя подчеркивания с обеих сторон
>>1076101То же самое только:[Finished in 0.1s with exit code 1]
>>1076104Посмотри что возвращает get_total_pages print(total_pages) перед for
>>1076104>[Finished in 0.1s with exit code 1]без syntax error? значит программа выполняется норм
>>1076106 Вот как выглядит весь код: https://ideone.com/f95aek >>1076109 С ней.
>>1076109Если программа исполняется норм, то будет exit code 0.
>>1076111бля, проглядел код
>>1076078
>>1076116>>1076089не надо никогда копипастить код из других источников, это раздва, используй нормальный редактор
>>1075956Бамп вопросу.
>>1076116Запуск с исправлением.
>>1076082Не понял. А если у меня там больше 1 строки на команду? Напиши нормально, так, чтобы запустить можно было, буду благодарен.
>>1076082>>1076124Алсо, как вот эта хуйня называется, что мне гуглить?
>>1076123Спермобляди соснулей.
>>1076124>Напиши нормально, так, чтобы запустить можно было, буду благодарен.Да ты охуел, сам пиши, епта.
>>1076008>СаммерфилдО, спасибо за наводку. Лутца бросил читать через страниц 100 из-за постоянного повторения всего, хаотичной системы написания и отсутствия каких-либо задач в конце глав. А после прочтения Укуса питона осталось много вопросов, которые хотелось бы, чтобы были более "разжеваны".
>>1076128Скорее, мое ньюфажество. Понять бы что оно от меня хочет, чтобы заработало.
Привет парни, решаю задачки из книги Доусона, полет нормальный.В связи с тем что я тупенький назрела небольшая проблема https://ideone.com/689ixQПервый вариант задачи с вайлами работает нормально, а через фор я не могу ее реализовать.На выходе получаю список длинной 3,4,5 и не понимаю почему так, через вайлы получаю все 6 элеметов как и задумывалось.for i in range(1,len(x)+1) и прочие штуки пробовал, поясните где я проебываюсь!
>>1076129Ну анончик. Это всего пара строчек. Только тебя это займет 5 минут, а у меня - час.
>>1076143Так качай скилл, что бы и у тебя занимало 5 минут, там ничего сложного нет.
>>1076143Я тебя уверяю, что если ты в проблеме разберешься сам, это будет НА ПОРЯДОК да, именно в 10 раз полезней, чем спиздить решение из интернетов или у анона.
>>1076008> А если нет практики, то это не учебник, а хуита;> После каждой главы должны быть упражненияВсегда бесили упражнения после глав. И так же всё понятно, нахуя ещё доёбывать читателя?!
>>1076156Ты идиот, не смысла тебе что-то объяснять.
>>1076146Так я не просто, блджад, копирую и вставляю. Я представляю себе в голове как это все работает, что-то догугливаю, дочитываю, и использую потом это. На данный момент я даже что гуглить не знаю, как я могу что-то сам сделать?
>>1076135ищи lxml для винды
Имеется список а.Можно ли записатьif b in a[1:2] or a[12]: ?Если да, то как правильно? Сейчас выдаёт: IndexError: range object index out of range
>>1076194https://ideone.com/
>>1076197https://ideone.com/2wV9VuДа, нуб
>>1076213range создает список, от 0 до 11(всего 12 элементов).
>>1076213>if x in months[:3] or months[11]:Дальше сам поймешь.
>>1075840>Саммерфильддля типочка который только слегка вкатился (циклы, кортежики, словрики итд) пойдет ?
>>1076240>range создает список>python3Nyet. range создаёт итерируемый объект типа range. Да, в какой-то степени можно как со списком обрщаться, но рано или поздно кто-то попытается в него что-то за-append'ить.>>1076242А самую главную ошибку и не исправил. Не, конечно, реалистично, что 12 месяцев зима, а остальное — лето, но всё же.>>1076213Пойду по порядку.1. Про рендж выше прочти, прими к сведению.2. Range содержит элементы до N не включительно, т.е. последий элементй range(12) — 11, и имеет он индекс 11, потому что у нас тут не lua индексация списков и прочего начинается с нуля.2. Условие if x in a or b выполняется если либо x находится в a, либо если b, эм, Truthy (т.е. не 0, не False, не пустой список, не пустая строка и т.д.). То есть, эта строка не проверяет, содержится ли x в b.3. Если ты берёшь один индекс, а не слайс списка (т.е. a[12]), то получаешь ты не список, который можно проверить на содержание чего-либо, а только один элемент, и проверять уже на равенство нужно.
>>1076260Спасибо.Попытка №2.https://ideone.com/emuadEИ сразу 2 вопроса:1) При значении 11 выдаётся неверный ответ.2) Можно как-то оптимизировать код? А то elif'ов много.
>>1076264А при 2, 5 и 8 верный, что ли? Последний индекс при слайсе не включается, т.е [1:2] даст список с одним элементом, под индексом 1.Пройди ты хоть часовой курс для новичков какой-нибдуь, совсем ведь не понимаешь, что и как тут происходит.
>>1076264>2) Можно как-то оптимизировать код? А то elif'ов много.Потом, лучше пока с происходящим разберись. Так-то задачу в 1 строку решить можно.
>>1076264https://ideone.com/3ohCxy Хоть бы так сделал что ли, а то хуйней какой-то страдаешь.
>>1076266>>1076267>>1076268Спасибо, аноны.>Последний индекс при слайсе не включаетсяЧитал, но уже забыл. Теперь всё заработало.Задачи из оп-поста брать? Или что-нибудь ещё посоветуете?Алсо, >>1075956
>>1076268TI NICHEGO NE PONIMAESH V KODE!!!https://ideone.com/LXXIv8
>>1076274>>1076268сасайте https://repl.it/Mezf
>>1076276dekabr eto osen?
>>1076278Но декабрь 12-ый месяц же, не?
Сап двачИ я снова за помощьюЗадача: Нужно упорядочить список.Программа получает на вход число участников олимпиады N. Далее идет N строк, в каждой строке записана фамилия участника, затем, через пробел, набранное им количество баллов.Пример входных данных:3Ivanov 15Petrov 10Sidorov 20Выведите список участников (только фамилии) в порядке убывания набранных балловSidorovIvanovPetrovМой код:#n = int(input())#newList = []#for i in range(n):# myList = str(input())# newList.append(myList)#print(" ".join(map(str,newList)))вопрос Как отсортировать по баллам?
>>1076082Как называется то что он написал?
>>1076428Словарь
>>1076307>Как отсортировать по баллам?Разделить введённую строку на имя и баллы. Можешь обратиться за помощью к пишущему чуть выше бота в телеграм.Ну а дальше сортируешь по баллам, читай доки к функции sort, конкретно об аргументе key. (https://docs.python.org/3.6/howto/sorting.html , там даже пример прям под тебя есть)
Так можно устанавливать значение в списке, находящемся в другом списке? board[guess_col[guess_row]] = "X"
>>1076158Два чая.
>>1076500Не работает, получается только такa = board[guess_col] a[guess_row] = "X"
>>1076503board[guess_col][guess_row] ="X"
Почему print (range(5))Выводит "range(0,5)"Как сделать чтобы просто список выводило?
Прохожу тут один курс и задача там, суть такова.Есть короче 3 функции, 2 из них написанны, одну надо самому напистаь.Пример одной из написанных в идеоне f(s)Нужно написать такую функция, чтобы изменяла начальный список по функции f(s). Сам список состоит из строк. Сама функция возвращает длину финального списка.Последняя функция неизвестная, но по сути просто мапит моя написанную функцию с их тест кейсами (вроде бы)Вроде бы всё просто и я это написал, но у них проходит только половину тест кейсов, что можно придумать?https://ideone.com/2YAgvZОлсо, если очень хуево объяснил, то вот на инглише:Assumes L is a list of strings Assume function f is already defined for you and it maps a string to a Boolean Mutates L such that it contains all of the strings, s, originally in L such that f(s) returns True, and no other elements. Remaining elements in L should be in the same order. Returns the length of L after mutation
>>1076512Преобразовать range в список.
>>1075915Чувак, ты не то качаешьhttps://www.ozon.ru/context/detail/id/4562082/Вот книга, о которой речь.
>>1076530range же и должен возрващать список(старт, шаг, стоп)
>>1076512for i in range(0,5): print(i)
>>1076532Так было во 2-ом, сейчас он возвращаетrange(start, stop[, step]) -> range object
>>1076532Не должен, писал же уже выше.list(range(...)) делай, если так уж нужен именно список.>проходит только половину тест кейсовНу там входные данные зафейленных или хоть что-нибудь есть?
>>1076536Аааа, вот оно что.Я действительно на двойку ориентировался.
Блять, питонач, помогай. super() обращается к классу в котором он находится или к родственному?
>>1076472Я первым делом читаю доки.Но там во всех примерах списки в которых кортежи. Крч не получается =(
>>1076557>родственномуА это какой? Родительский, ты имел в виду или что-то другое?https://repl.it/MgeB В нормальном питоне super() фактически эквивалентен super(<ЭтотКласс>, self)>>1076564>списки в которых кортежи.Ну так и ты сделай себе кортежи из своих строк, в чём проблема? >>1075812
>>1076566#n = int(input())#myList = []#for i in range(n):# a = tuple(input())# myList.append(a)#print(myList)Он тогда по симыольно их читает и я хз как отедльно в каждом кортеже склеить слова и отделить цифры. К тому же это неизменяемый объект.Крч я туплю.
>>1076573Ну блядь, ну единственная упомянутая функция в посте же."ab cd ef 20 50".split(" ") # ["ab", "cd", "ef", "20", "50"].Не забудь цифры из строк в числа перевести.
>>1076575Так, подвижки есть.Сорян что я даун немного. Как сделать интовыми цифры в котреже?
>>1076579>немногоУвы, совсем не немного. Честно, я бы помог, но ты даже не пытаешься, какой толк ресурс клавиш на клаиватуре расходовать?
>>1076079Бамп. Я нихуя не понимаю как мне может помочь то что написал >>1076082. Словари - ебаные массивы с ключами вместо индексов, в них нельзя вставить отдельный код. Пиздос.
>>1076651https://pastebin.com/rDDQZmCVНа и просто иди нахуй, ленивая жопа.
>>1076673А не обосрался ли ты с () при создании словарика? Командочки-то выполнятся сразу!>>1076651Тебе потому что нужно до функций бы дойти, а то эти фразы о "код выполнить".Есть команда, при её получении нужно что-то сделать. Хуярим это "что-то" в функцию, а затем при получении команды вызываем эту функцию (заодно и с аргументами играться можно будет).Чтобы не хуярить ифы и упростить добавление/удаление команд, можно и воспользоваться словарём, в котором ключ — команда, а значение — функция.Далее, получаем текст команды и делаем>funkciya = slovar'_komand[komanda]>funkciya()(ну или в одну строку без переменной, как крутые поцики).Ясно?
>>1076696> А не обосрался ли ты с () при создании словарика? Командочки-то выполнятся сразу!Ну-ка захуярь без них.
>>1076700Ну вот же https://repl.it/Mh3tНет, у тебя код работает, да, потому что ты принтишь содержимое словаря, но толку от этого? Результат ведь был получен при запуске программы, то есть его можно было бы сразу вывести и всё, он ведь уже никогда не изменится.
>>1076673>>1076696Так, а если все это усложнить тем, что мне нужно в этих функциях для команд использовать отправку сообщения, в которую нужно подать ид чата, которое берется из отдельной функции, которая запускается каждый раз, когда приходит любое сообщение? Я блядь пиздец запутался уже. Видимо придется хуярить говнокод с кучей ифов.
>>1076704> COMANDS[command]()> [command]()> ()Я бы до такого не додумался.
>>1076706Так откуда команда приходит? Из сообщения? Кто (где) вызывает?У тебя приходит сообещние (с id) -> парсится команда -> вызывается функция, привязанная к этой команде -> она что-то делает и потом отсылает сообщение в чат, id которого был получает вместе с сообщением, так? Ну так и и передавай этот id в функцию, вызываемую на третьем шаге.>говнокод с кучей ифовНу это не так уж и плохо, сам питон держится на более чем 2к-строчным switch'е.
>>1076712>Ну это не так уж и плохо, сам питон держится на более чем 2к-строчным switch'е.А еще он держится на словарях, так что нехуй городить забор из if-ов, а суй все в словарь, как тебе выше говорили. Да и Гвида так делать велел.
>>1076712> Ну так и и передавай этот id в функцию, вызываемую на третьем шаге.Получается я в каждой функции должен добавить параметр чат ид?Короче, вот примерно так выглядит конструкция отправки сообщения на сообщение в моем апи для телеги:https://pastebin.com/yEGRZdfi
Петян, чем обмазываться, если хочу накатить простой GUI, простая вспомогательная утила для обката некоторых алгоритмов из компьютерной геометрии. буду использовать люникс.суть такова - там нужен будет канвас, на котором можно будет как в пейнте рисовать по точечно простые фигуры. нужно чтобы можно было переопределить поведение правой кнопки мышки.ну как-то так, короче.
>>1076735> апиНе в апи, а в либе, да. Которую я использую.
Поясните за пикчи, вот я всё создал, пишу в консолиpost.image.path'/home/user/PycharmProjects/imageboard/media/images/120.jpg'post.image.url'/media/images/120.jpg'в темплейтах пишу <img src="{{ post.image.url }}">в консоли при загрузке страницы пишется Not Found: /media/images/120.jpgЧЯДНТ?
>>1076735>Получается я в каждой функции должен добавить параметр чат ид?Ну да. Или вовсе весь message туда передавай, явно потом пригодится. Ник писавшего там вытащить, рейтинг его, статус и т.д.Я не знаю, что там твои функции делают, но вот как-то так можно, например: https://pastebin.com/a5Pzfzi9>почему допустим имя функции func_name может быть любым вообще, и почему она сразу выполняетсяПотому что ты докоратором @bot.message_handler привязал именно эту функцию к событию получения сообщения. Просто красивый и удобный способ, на деле получается, грубо говоря что-то такое:>def func(): pass # твоя функция>bot.on_message = func # декоратор делает вот это># ... бот получает сообщение>bot.on_message(message) # вызывается твоя функция>но я не могу в левых функциях брать этот messageПотому что это локальная переменная только для этой функции, и после исполнения она удаляется.
>>1076761>bot.on_message(message) # вызывается твоя функцияТо есть, в коде псевдо-либы написано дословно "bot.on_message(message)", и что будет присвоено этому атрибуту, то и вызовется.Естественно, на самом деле там всё сложнее и с кучей дополнительных вещей, но суть такая.
>>1076759Ну поясните где я дебил-то?MEDIA_ROOT = os.path.join(BASE_DIR, 'media')MEDIA_URL = '/media/'#models.pyimage = models.ImageField(blank=True, null=True, upload_to='images')Not Found: /media/images/apps.png[16/Oct/2017 19:35:03] "GET /media/images/apps.png HTTP/1.1" 404 2859При том, что картинка загружается и находится там где и должна быть пикрил 2
>>1076771Дебил ты там, где докментацию не читаешь.https://docs.djangoproject.com/en/1.11/howto/static-files/Даже понять не можешь, что в ссылке у тебя /media/... вместо http://localhost/media...
>>1076804Нахуй такие дауны как ты вообще отвечают, если нихуя не понимаешь?
>>1076761Вот теперь более менее понятно, но подожжи, разве в функциях наверху в send_message не должно быть message, вместо message.chat.id, а в хэндлере в ифе - message.chat.id вместо message?Я ведь правильно понял, что в словаре - имена функций без скобок и параметров, а в хэндлере уже они вызываются и добавляются скобки с параметром? Крутая фича.
>>1076805Нет, ты.Либо этот мудак нормально прописывает директорию со статикой и сбирает URL на коленке, либо прописывает GET-обработчик для модели и дергает ссылку через дргой built-in: https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#urlЕщё здесь абсолютный путь вместо относительного:> MEDIA_URL = '/media/'
гайз, реквестирую норм оффлайн курсы по питону плавно перекатывающегося в дата саенс в мск, чтоб не жалко было отдать деньги и чему то научиться, от чего отталкиваться. знаю что можно все самому, но времени на самостоятельноне обучение чот мало и непродуктивнго.из базы: инжынер асутп, норм уровень прогания в матлабе, понимание sql и отсутствие практике, знания в мат статистике (регрессии мнк монте карло)заканчиваю магу по асутп.
>>1076818https://docs.djangoproject.com/en/1.11/ref/settings/#media-rootТы сам то открывал доки?Всё что надо было сделать это добавить юрлы по типуurl(r'^media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT})илиif settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
>>1074217Я рассчитываю придумать что-то новое, например, управление голосом.
>>1076736Pygame
>>1074913что за IDE?
Объясните пж, зачем используется yield?С меня как всегда..
>>1076853> PyCharm 2017.2.3> Theme: Darcual
>>1076855Спасибо.А теперь подскажите сайт с задачками по python. Половину Лутца прочитал, думаю, что нужна практика, пока теорию не забыл. Вчера решил все отсюда: https://developers.google.com/edu/python/exercises/basicв общем, нужны задачки от простых к более сложным. У Лутца заданий нет ну и фиг с ним
>>1076866Не за что.Я вот тут в своё время начинал, есть сложные, но разобраться в них того стоит.> https://checkio.org/
петян, тут нашёл на гитхабе старый проект, который идёт с setup.py. как бы мне его просто лишь запустить? без инсталяции. что там за команда? или всё говно мамонта и нужно инсталяшить?
>>1076878> или всё говно мамонта и нужно инсталяшить?Ну как бэ проект без требуемых бибилотек не запустится. Если не хочешь засирать основу - просто установи его в виртуальном окружении.
Аноны, есть у меня скрипт и надо его заказчику дать юзать, но не хочется кидать папку с кучей модулей и прочее + минимально защитить от левых глаз.Решил заюзать PyInstaller и параметр --key и охуел от результата - 770mb метров стал весить пакет, из 36kb.Как можно снизить объём пакета в pyinstaller`e?Или может чем другим воспользоваться для этой цели?
Всех заебавший вопрос, но какую библиотеку для простеньких GUI посоветуете? Чтобы за два вечера можно было пейнт под убунту написать.
>>1076916tkinter очевидно же
Аноны поясните. Если я на питонтуторе не могу решить задачу про шнурки я реально тупой или просто нужно заниматься и такие задачи будут на раз решаться? Мимо инженер теплоэнергетик Вкатываться никуда не собираюсь хочу для работы написать десктопное приложение
Посоветуйте книги для практики (на английском подойдет). Кукбуки, книги по разработке каких-то игр и т.д. Думаю вкатиться, читаю Лутца и еще несколько книг по теории, слушаю удемовские лекции, но хочется какое-то более цельное представление о готовых программах (да и сейчас должен по работе дрочиться с OpenCalphad, который является очень мозгоемкой штукой, поэтому пока что более всего подходит просто бездумное механическое вбивание готовых программ вечерами и созерцание результата).
Надумал запилить мессенджер. Не ЙОБА НОВЫЙ УЛЬТРАМОДНЫЙ ПРОЕКТ КОТОРЫЙ ЗАТМИТ ДЕТИЩЕ ДУРОВА, а так, веб-асечка, чтоб руку набить. Используется третий питон плюс постгрес для хранения пользовательских данных и логов. Через консоль можно логиниться, отправлять-читать-удалять сообщения, и вроде бы все худо-бедно работает. Далее по планам запилить для всего этого вебморду, чтоб оно в реальном времени обновлялось.Вопросы в следующем:Возможно ли это сделать исключительно на питоне?Нужно ли это делать исключительно на питоне, или лучше идти и учить попутно жабаскрипт и аякс?Какой веб-сервер лучше использовать, апач+wsgi или родной питоновский?Или вообще воспользоваться джангой?
>>1076955> Возможно ли это сделать исключительно на питоне?Нет. > Нужно ли это делать исключительно на питоне, или лучше идти и учить попутно жабаскрипт и аякс?Если собираешься в веб, то необходимо.> Какой веб-сервер лучше использовать, апач+wsgi или родной питоновский?WSGI, да.> Или вообще воспользоваться джангой?Она не для этого. Есть фласк, торнадо, aiohttp.
>>1076930О спасибо, через три дня будет фотошоп.
>>1076970Не то, чтобы я прям собираюсь в веб, мне бэкенд милее, но некоторое представление о том, что происходит "по ту сторону" таки иметь нужно. Спасибо за ответы.
>>1076808>не должно бытьНу, эм, как хочешь делай. Я передавал весь message, поэтому и .chat.id потом. Ты можешь только айди передавать. Странный вопрос.>Я ведь правильно понялДа.
Анон, есть один модуль для питона/джанги - django-scheduler, но одна из моделей не поддерживает один из нужных мне параметров (byweekday: FR(+1)).Дописать в нем нужный код в исходники не проблема, но как это сделать, чтобы при деплое на сервер тоже работало?имтортировать нужную модель в settings.py и в ней перезаписывать? или как еще можно кастомизировать сторонний пакет с учетом того, что мне потом это заказчику на сервак нужно заливать?
>>1077162>но одна из моделей не поддерживает один из нужных мне параметров (byweekday: FR(+1)).наследуйся и этот парамтер свойством запили или как там будет удобнее
>>1076970>WSGI, да.WSGI это не веб-сервер, это протокол сообщения между веб-сервером и приложением (Gateqay interface).WSGI- серверы это Gunicorn и uwsgi, бери любой
>>1077179А когда и где наследоваться? Этот метод используется во встроенной админке - мне надо перезаписать его сразу же после старта джанги. Я могу это сделать уже в одном из своих аппов в app.ready()?
Читаю лутца, стоит ли изучать PyQT новичку?
Аноны, нужна помощь.Есть код: https://ideone.com/nWpUuaВсё работает, но хотелось бы сделать так, чтобы после идла в 5 секунд, открывался браузер (а точнее embed окно ютуба в браузере (обычная html страница, которая сделана через питон)). Как пример прикрепил скрин.
>>1077281https://docs.python.org/3.6/library/webbrowser.html
>>1077285webbrowser у меня работает (страница с этим скриптом открывает отдельно документ, где есть код html страницы)
>>1077294Ну и в чем тогда проблема?
Пишу маленький парсер, куда должен записываться список с адресами? https://ideone.com/IdL5Wv
>>1077296В том, что он открывает в другом окне, а не уже на открытой странице embed окошко.
>>1077301Ну тогда пиши вебсервер и жс клиент.
>>1077299Куда пожелаешь, туда и пиши, чего ты.Я б в json(ключ страница, а значения - линки писал или в БД(зависит от планов дальнейших).Или ты о чем?
>>1077312я не весь код случайно скинул x-) но я уже разобрался, не тот документ открывал
>>1077321Ой все, ладно, удачи, няша.
Хочу научиться писать код короче и оптимальнее.Задача:Даны два списка чисел, которые могут содержать до 100000 чисел каждый. Посчитайте, сколько чисел содержится одновременно как в первом списке, так и во втором.Я знаю как ее решить.НО как решить ее в 1 строчку?
>>1077330set()
>>1077334списки с клавиатуры вводятся
>>1077337Ты пьяный Шоле?
>>1077339Под психотропными вещами.Будучи визуалом.напиши плиз эту строчку чтобы до меня нашлои будет тебе тонна добрано это не точно
>>1077339#print(len(set(input().split()) & set(input().split())))Все свежим воздухом подышалотпустилоспасибо
>>1077345Видать не до конца отпустило то.
Привет кодеры. Мимо 33-lvl SQL прогер решил перекотиться на эти-ваши пайтоны. Синтаксис освоил, пайтон челендж дошел до 15 задания. Кодирую овер 10 лет, в ООП могу, но в веб технологиях не шарю дальше простых .Net сервисов. Вопрос- куда копать, чтоб за разумное время (неск. месяцев) выйти на уровень пайтон джуниора?
Вопрос про type hinting: если функция, например, может принимать на вход и float и int, НО не str или что-то другое, и в зависимости от типа входных данных возвращает число такого же типа, как мне ее описать? Ну вот простейший пример:[code]def f1(i): return i + i [/code]Хотелось бы это описать как-то типа:[code]def f1(i: Number) -> Number: return i + i[/code]Потому что она имеет смысл для любого численного типа.
>>1077508`def f1(i): return i + i``def f1(i: Number) -> Number: return i + i`
>>1077509Ебаная параша блять, а не борда.
>>1077510Счастливого пути!
>>1077421Ты дба что ли? Ты ебанутый с таким опытом в пифон джуны перекатываться?
>>1074876for i in range(10): print('a', i, '+', 'b', i+1)
Что не так? Почему при выполнении лишь части кода(например с минусом) всё работает так, как и должно?https://ideone.com/vStM2l
>>1077541Чему равен "abc".find("Z")? А чему "abc".rfind("Z")?
>>1077518>Ты дба что ли? Я сеньор скуль кодер. С каким таким опытом? Опыт как опыт, а главное меня этот скуль задолбал хуже горькой редьки. Да и в скулях, к примеру, 150 000 потолок, а у питоноебов так, серединка. И еще меня подкупает, что стильно, модно, молодежно, перспективно.
>>1077550Возможно меня не так поняли.Входные данные два числа, между которыми один из знаков +,-,,.> Чему равен "abc".find("Z")? А чему "abc".rfind("Z")?Допустим такие значения а="100110".find("")b="100110".rfind("")Т.к. "" один, то a==b, в данном примере это значение смешения - 4
>>1077573>Возможно меня не так поняли.Нет, это вы меня не так поняли.>expr = "1 - 1";Выполнится ли условие if expr.find("+") == exor.find("++")?
>>1077584То есть, expr.find("+") == expr.rfind("+")
>>1073050 (OP)Привет. Подскажите пожалуйста какую-нибудь книгу/статью и так далее по архитектуре приложений. Все это время читал книжки, писал небольшие программки, но о мысли построить что-то более менее крупное (да тот же бложик или небольшое оконное приложение) обсираюсь. Не знаю с чего начать. Есть вообще литература по теме?
>>1077573Я тут посмотрел, что выведет и немного не понял. Можете за это пояснить?https://ideone.com/rLGeuz
>>1077602Очевидно, пустая строка найдена в самом начале (конце) строки. Что не так?
>>1077605Ага, особенно если учесть, что последний индекс у этой строки будет 5. Вообщем понятно, что Питончик найдет пустую строку везде, "" in "python" => True
>>1077608>Вообщем понятно, что Питончик найдет пустую строку вездеВсе найдут. Налито ли в стакане 0мл водки? а 0мл колы?
>>1077609Вот это вообще пушка https://ideone.com/rLGeuzТак по 0 индексу, пустая строка или 1?)
>>1077611> str.find(sub[, start[, end]])>Return the lowest index in the string where substring sub is found within the slice s[start:end]. find возвращает не индекс элемента (потому что можно искать и больше одного символа, то есть "abcd"["abcd".find("ab")] != "ab"), а индекс, начиная с которого будет найдена искомая строка. "" будет найдено, если начнёшь смотреть с первого элемента.
>>1077617>"" будет найденоТочнее, будет найдно сразу.Иными словами, если подстрока найдена, то выполняется следующее условие:string[string.find(substring):string.find(substring) + len(substirng)] == substring.
>>1077621тут все верно, но пустая строка находится по тому же индексу, где и не пустой элемент, с rfind и вовсе вылазит за длину строки https://ideone.com/rLGeuzВообщем с js такая же фигня. Выглядит так, как будто поиск по пустой строке сдвигает все элементы, а в случае rfind, она втуливается за пределы длинны элемента. Хотелось бы посмотреть на внутреннюю реализацию этого механизма.
Напомните как мне из одного вью в несколько разных темплейтов передать значение?Через темплейт теги, или что там было?
>>1077621Вот с find все боль мень понятно, по тому механизму, что ты описал, он ее сразу находит, ибо он везде найдет ее, и длина у нее нулевая, поэтому возвращает нулевой индекс. Но какого в rfind, она вылазит за длину, у пустой строки нулевая ведь длина.
>>1077640Запили через контекст процессор, но процессор же передает во все темплейты, а мне по сути только в базовый добавить плюс тот что был.Можно как-то сделать чтобы просто добавить в ещё один темплейт, а не во все?
>>1077651>Но какого в rfind, она вылазит за длинуНу, грубо говоря, последняя пустая строка — после 5-ого элемента. То есть, этот 5-ый элемент не должен входить в последний слайс строки, содержащий в себе пустую строку.Просто представь, что пустая строка есть везде, перед и после каждого элемента. Затем замени её на какой-то конкретный элемент:>"abc!".rfind("!") # 3теперь заменяем "!" на пустую строку>"abc".rfind("") # ?? последня пустая строка точно там же, где раньше был восклицательный знак, а значит и вернуть нужно 3.>Хотелось бы посмотреть на внутреннюю реализацию этого механизма.Прошу: https://github.com/python/cpython/blob/master/Objects/stringlib/fastsearch.h#L245Обход начинается с индекса равного длине строки (т.е. 6 в твоём случае), как и заканчивается при прямом find'е там же (i <= w). Это если аргумент end не был указан, иначе начинается/заканчивется на нём.
>>1077701Ну и string[string.rfind(substring):string.rfind(substring) + len(substirng)] == substringтоже остаётся справедливым, несмотря на как бы выходящий за рамки индекс.
>>1077701Спасибо, Анон. Все подробно разобрал и ссылочку приложил. Добра тебе.
>>1077585> expr = "1 - 1";> То есть, expr.find("+") == expr.rfind("+")То же что и -1==-1 => TrueТ.к. "+" в приведенной строке и вовсе отсутствует.
Привет. Подскажите пожалуйста какую-нибудь книгу/статью и так далее по архитектуре приложений. Все это время читал книжки, писал небольшие программки, но о мысли построить что-то более менее крупное (да тот же бложик или небольшое оконное приложение) обсираюсь. Не знаю с чего начать. Есть вообще литература по теме?
>>1077777Разбей свою задачу на мелкие и ебош.Задавай вопросы в гугле, а потом тут.
>>1077844Кокой сердитый
>>1077846Я не сердитый, просто не надо бояться, бери и делай, разбивай на подзадачи, гугли, рефакторь и т.д.Don`t ссать, anon.
>>1077854Ок!
Итак, что скажите , о питон компиляторе Nuitka, стоит ли применять у себя в коммерческом проекте, чтобы защитить виндовс десктоп софт, а то чето с#не хочиться учить. Желательно поподробнее пояснить по nuitka. http://nuitka.net/
>>1077738Не знаю, зачем ты на это ответил (и кто именно ответил), но это было намёком тому анону (тебе?) на причины неработоспособности кода (любое выражение без минуса попадало в ту ветку).
Чем API на джанго (или каком либо другом питоновом фреймворке) лучше APIя на express.js?работаю с nodejs, подумываю попробовать поковырять питона
>>1078004>Чем API на джанго (или каком либо другом питоновом фреймворке) лучше APIя на express.js?Ничем.
>>1073050 (OP)Анон, какова вероятность, что на собеседование python junior у меня будут просить написать сортировку петушком или обход какого-нибудь дерева?А то я пока язык учил и мелкопроекты фрилансил всё забыл нахуй.
>>1078132Вероятность большая. Как бэ все это не относится к языку, это основы программирования.
>>1078141Ну конкретно об этом я и думал. Спасибо, пойду вспоминать.
Уже примерно 19 часов пытаюсь извлечь данные из файла, упакованного zlib-ом. Как это блять делается?
Почему python настолько божественнен?
>>1078285zlib.decompress(data)? Ты б хоть что-то о проблеме сказал, или вообще файлик скинул.
>>1078304Это тебе только по началу так кажется.
Блять, объясните как с помощью ajax сделать подгрузку коментов к посту.Я запилил эту форму, чтобы отправляла без перезагрузки коменты, но чтобы их увидеть теперь надо перезагрузить страницу.Не отправляйте в жс тред плиз, подскажите лучше где прочитать об этом.
>>1078307Вот, попробуй пожалуйста распаковать, а то у меня видимо zlib наебнулся или вроде того.http://rgho.st/7SXMtwytn
>>1078323>подскажите лучше где прочитать об этом.В гугле, очевидно. Без JS'а ты никакой ajax не сделаешь.
>>1078325Да я не знаю что гуглить.пишу how to reload page with ajaxпредлагает location.reload() а это просто перезагрузка как через ф5
>>1078323Я ж правильно понимаю, что там где блок success нужно что-то дописать и всё будет обновляться? Только что ?https://pastebin.com/06BzcV8p
>>1078327>how to reload page with ajaxЗачем reload? Вся суть ajaч'а отсутствии необходимости перезагружать.https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started>>1078333>Я ж правильно понимаюДа.>Только что ?Ну, а что тебе надо? Создать новые html элементы с полученными данными, полагаю.
>>1078347> Ну, а что тебе надо? Создать новые html элементы с полученными данными, полагаю.Спасибо, я так и подумал, написал:success: function (data) { $("#post").html(data); },Теперь всё работает, но только форма почему-то дублируется.При том, что форма не входит в этот айдишник.
>>1078349Ну это уже в жс треде тебе кто-нибудь (возможно и я, лел) поможет.
Саб двачКак посчитать количество неповторяющихся слов в тесте?И посоветуй литературу/манула по обработке тестовой инофрмации.Добра тебе.
>>1078019Ну так не бывает.Где безопаснее? Где легче писать? Поддерживать?
>>1078361Офигеть ты тупой. Или школьник? Читаешь слово из текстаПроверяешь, что такого слова нет в массиве отсеянногоКладешь слово в массив отсеянного Читаешь слово из текста...Длина твоего массива - твой ответ. Это если прям в тупую.
>>1078361len(set(text.split())) перед этим текст от всякого пунктуационного говна и чисел сам почистишь.
>>1078390А чо, сплит делает дистинкт? По идее не должен. Мимо сккуль кодер
>>1078409set делает дистинкт.
>>1078388#import sys#b = set()#for line in sys.stdin.readlines():# for word in line: # if word not in b: # b.add(word)#print(len(b))Я такую дичь придумал.Но ответ не тот.Как очистить текст от знаков препинания?
>>1078426Регулярочкой.
>>1078426Ну ты бы хоть гуглить начал, а то не серьёзно.
сап. есть желание запилить классом двуязычное меню вместо использования `gettext`. набросал принцип, но так не работает, не могу из __getattributes__ достучаться до lang, прошу помощи https://hastebin.com/hixayunovo.py
>>1078361from collections import Counterc = Counter()text_to_parse = 'Саб двач есть одна тян...'for i in text_to_parse.split(' '): c += 1non_repeated = [w for w, n in c.items() if n == 1]
>>1078534Что именно не получается?
>>1078537python3.6 возвращается кортеж со словарём:> ({'ru': 'Настройки', 'ua': 'Налаштування'},)очевидно, что я хочу в контексте выставить сразу язык и обращаться к атрибутам с ним. т.е. если пользователь выбрал 'ru', то всё меню на русском (menu.settings, а не menu.settings['ru'].
>>1078543> ({'ru': 'Настройки', 'ua': 'Налаштування'},)Посмотри внимательно на мой код и убери ненужную запятую.> сли пользователь выбрал 'ru', то всё меню на русскомНадо подумать
>>1078543Ну вот хуй знает, у меня только такое:1. либо метод пиши который тебе из словаря вернёт русские элементы2. либо пили конфиг с элементами и дёргай нужный тебе, типа with open('ru_elem.json') и отпавляй данные в приложение.
>>1078549я функционально запилил, но не очень нравится. но да, можно меню хранить в няшном джейсоне https://hastebin.com/ogetiseyow.py
>>1078552> menu[item][lang]Ну бля, по факту - тоже самое, только ты в функцию всё унёс.Но вообще люди, обычно, всякую такую инфу в конфиг выносят и всё, что бы отделить.p.s. Что пилишь?
>>1078554сраный бот для телеги. попросили 2 языка. можно банально словарём, но захотелось эстетики
>>1078426Всем сорян. Я вообще вопрос не правильно задал.Тут соль в другом
И все же несмотря на то что я такой даун.Я молю тебя анон о помощиОчень долго сижу над задачейрасписал подробнееhttps://ideone.com/QihelG
>>1078721>print(len(set(text.split()) & set(text.split())))Интересен ход твоей мысли, как ты дошел до такого?>выдает 20. Почему?Пикрл.
Существуют ли книги по отлаживаю программы и поиска багов/ошибок: не инфографикая всяка, как недавно проскакивало, а прям основательные такие, где растолковывают что, где, как и почему может ломаться? Особенно если ещё к языку привязано. По-моему, это было бы в разы более полезнее, чем всякие хуёусоны, потому что пытаясь найти проблему, ковыряясь в чём-то, гораздо больше понимаешь принцип работы хуйнюшки какой-то, а значит и пользоваться ей (т.е. писать код) должен бы лучше.>>1078721>set(text.split()) & set(text.split())?? Ты ищешь пересечения множества с самим собой??>#выдает 20. Почему? Очевидно, потому что значение переменной text на 16-ой строке совсем не равно тому. чему ты думаешь. Ну запринти ж ты его, чёрт возьми! Посмотри, что readlines() вообще возвращает (спойлер: хуй тебе, самостоятельный уже.).
>>1078728>книги по отлаживаюНу или хотя бы книги, которые начинаются со слов: "Если что-то работает не так, но очевидных мыслей нет: вставь print() между каждой строкой кода."
>>1078729Попробуй это, там после каждой главы идёт отладка типичных ошибок + задания.
>>1078728Я бы с удовольствием почитал вменяемую литературу.не луцавывел принтом. Все равнно список.16 строка ничего не сделала.Ответ 20 потому что там пустая строка в конце \n ?Я все правильно понял? >>1078725
>>1078725>>1078728#import sys#text = sys.stdin.readlines()#myString = ''.join(text)#print(len(set(myString.split()) & #set(myString.split())))Всем спасибо за наставления.Я справился.Насчет пересечения множетсва с самим собой тоя такое нарыл в гугле и оно работает. Как можно было написать иначе?Если вам несложно. Ради интереса.
>>1078741> Я справился> Насчет пересечения множетсва с самим собой тоя такое нарыл в гугле и оно работает> написать иначе?Лол, кинь ссылку что ты в гугле нарыл, молю!
>>1078747Добавлю:print(len(set(input().split())))
>>1078747>>1078751Вообще я не совсем дурак и понимаю что сравнивать одно и тоже множества это тоже самое что не делать ничего. Но работало же. лол. Это был какой-тто английский форум так что скорее всего не найду. Хотя мб там было все же 2 множества и другой алгоритм. Но это не точно
>ВАЖНОИТАК, имеется База Пастухова(txt файл с ключевыми словами яндекса , около 1 миллиарда строк). Как средствами питона или библиотек, эфективно читать файл и делать выборку нужных фраз?
>>1078773> я не совсем дурак> Но работало же> я не совсем дурак> Но работало же
>>1078773>Но работало же. лол. Потому и работало, потому что ничего не делалось. >>1078733>Я бы с удовольствием почитал вменяемую литературу.Вот тебе тут посоветовали -> >>1078731 (Я ж не для себя спрашивал, лол).>Ответ 20 потому что там пустая строка в конце \n ?Нет. Потому что >Посмотри, что readlines() вообще возвращает
>>1078779Дурак. Но не совсем :D
Можно ли поизучать не слишком в спешке питон пол года, а потом найти работу по нему?
>>1078787изучить да, а с работой сложнеечето все хотят джуниора с опытом от двух лет
>>1078788Просто, я подкопил денег работая в аду. Думаю уволиться и поизучать питон и может потом найти нормальную работу...
>>1078792Я думаю, кто ищет - тот находит. Дерзай, тема годная.
https://2ch.pm/pr/res/1078836.htmlhttps://2ch.pm/pr/res/1078836.htmlhttps://2ch.pm/pr/res/1078836.htmlhttps://2ch.pm/pr/res/1078836.htmlhttps://2ch.pm/pr/res/1078836.html
Можно ли импортить так, чтобы сразу были доступны функции и переменные из файла? Чтобы не писать huylib.huy(), а сразу писать huy()?