24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Питоняши, курю букварь Доусона. Там была задачка на слова. Я вроде написал, и она вроде работает, но в конце выдается ошибка, которую я не понимаю. Это из-за того, что цикл в конце к пустому списку обращается?
Где тот хуй с пипом3? Лень линкать из прошлого треда.
Ну значит ты не осилил пип. Все он ставит. Хоть бы логи показал. А если никаких стремных логов нет - значит точно ставит. Но возможно не туда, где твой питон их ищет. Проверь. И добавь в sys.path или PYTHONPATH.
Я вообще не понимаю в чем проблема. НИСТАВИТСЯ - не проблема, прекращай блондинкой быть.
>>555767 не уверен говоришь ли это мне, но если мне то ты говна поел. Есть два питона, один используется системой, а один мною. Учить второй и переписывать на него свое говно желания пока нет. Изменять системный питон тоже, ибо говорят что это хунта и плохо закончится. python3 pip и так далее и тому подобное не работает, говорит что небывает модуля пип хуй который хочет накатить модули на питон3
>>555812 Лол, если вы про линуксы говорите, то у меня вот изначально есть pip3 поддержка, всё ставится, работает. А для винды вообще не нужно юзать pip3, там оно как-то автоматически распознает, и есть божественные колеса: http://www.lfd.uci.edu/~gohlke/pythonlibs/
>>555834 Ну так установи его, епте. Или через python3 setup.py install ставь каждый вручную, раз инвалид.
На pypi даже написано: Get Packages
To use a package from this index either "pip install package" (get pip ТУТ ХИПЕРЛИНК НА САМОМ САЙТЕ!) or download, unpack and "python setup.py install" it. - https://pypi.python.org/pypi
котаны, проблема. опять эксепшены чудят. прописал уже просто через except:, чтобы отловить ВСЕ а он все равно падает с пикрелейтед. что делать-то? как жить дальше?
Ну значит эксепшон вываливается раньше или позже попытки поймать. Делай карочи if __name__ == '__main__': ..try: ....VSYA TVOYA HYINYA ..except: ....pass
>>556025 увы, причину пофиксить не могу - для этого придется тянуть нормальный интернет через десятки километров, что не в моих возможностях. а падает именно из-за него.
>>556231 >не изпользуй tuple для хранения списка Это константа, вообще-то.
>random.shuffle(words) Ну да, налисапедил. Но не жалею об этом. Да и в учебнике не было этой функции, значит автор предполагал решение задачи без этой функции.
Я вот тут повтыкал во всякую хуиту про Руби, у них там есть конвенцыа - методы, делающие какую-то хуйню над объектом inplace имеют в названии !, а возвращающие новый с проделанной над ним хуйней - нет.
Почему у нас нет чего-то подобного?
Есть же, например, list.sort() и sorted(list). На основе этого можно было бы предположить, что inplace перетасовка элементов списка должна быть его методом, а какой-то shuffle из модуля random должен возвращать новый объект, но нет.
>>556237 В принципе логично, но имхо консистентнее было бы всегда возвращать новый, если в вызове не передан аргумент типа in_place=True там. Функциональный подход, все дела.
>>556250 В стандартной библиотеке вообще дохуя инконсистентного. Разные модули там в весьма разном стиле. Так уж сложилось исторические, а менять сильно - ломать совместимость.
>>556360 Ну чего ты, человек вещает с дивана(в прямом смысле этого слова) посредством микрофона за 3 доллара с китайского планшетика через самописную вещалку.
аноны, видимо, я к концу дня совсем туплю код: http://pastebin.ru/CC5dEhPI результат на пикриле желаемый результат: в первом списке нижнего уровня 1,1,0,0; во втором 1,2,0,0 и так далее чяднт?
>>556469 чего проще. цикл, который теребит первый уровень вложенности списков. в нем цикл, который теребит второй уровень вложенности. в нем цикл, который присваивает спискам последнего уровня вложенности значения, увеличивающиеся с каждой итерацией.
>>556439 Пустышка в первом блоке. Можно было бы обойтись и одним блоком, без else. [code lang="python3"] if word not in printed: print(word) printed.append(word) count += 1 [/code]
>>556497 Что-то вне цикла оно вообще работать не хочет. Я так понимаю, оно хочет, чтобы я все промежуточные значения еще и подытожил. Как еще сосчитать эти 48 + 45 + 24 + 0? Я сегодня туплю сильнее, чем обычно.
>>556501 Внезапно понял почему многие мои знакомые бросили погромирование. Им не нравилось постоянно ощущать себя тупыми. Ведь они умные. А мне всю жизнь говорили - ебать ты дебил.
>>556521 Кстати, в некоторых случаях это не одно и тоже. Например в picrel. list += list2 работает как list.extend(list2), а list = list + list2 создает новый список.
>>556538 >>> print(bool("False")) #во что и разворачивается bool(str(False)) True >>> print(bool("")) False >>> print(bool("соси хуй быдло")) True
Никаких WAT тут нет, все логично. Единственный WAT - автора высера. У него непонимание базы, и не только питона. Обсосали где только можно, теперь баян и до зк добрался.
>>556442 Если я правильно понял, то твой список хранить список ссылок на один и тот же объект, из-за этого каждая итерация изменяет num, поэтому и результат такой. Думаю, тебе стоит почитать про генераторы списков.
>>556442 Уж не знаю, что у тебя там за магия, что ты делаешь range(1,9) вместо range(8), когда тебе просто 8 раз одно и то же дествие повторить нужно. Вот я в одну строку решил, если правильно задание понял (список в клетке только с одном нулём, так красивше на строку помещается): http://ideone.com/FrVB47 >>556572 всё верно говорит.
>>555892 Значит не всё. During handling above… значит, что эксепшен возник при обработке эксепшена. Ну, и номера строк же подписаны, что за клоунада? >>556215 В super можно не писать аргументы. неплохие цвета, ЛАЕК >>556237 Хуйня. Можно же писать "yoba".replace(…) и от этого мутабельность не появится. Вообще >>556235 рубифаг прав. Но это уже история, и никто ничего не поменяет. >>556255 тоже самое сказал. >>556333 Да похуй на шапку, это тред обсуждения и поливания говном, а не форум даунов. Вся эта культура ШАПОК ИНФА В ШАПКЕ 4ПДА СКАЧАТЬ БЕЗПЛАТНО омерзительная, мягко говоря. Можно всё делать с куда менее надутыми щеками. >>556501 > оно вообще работать Классика неосиляторов.
Кстати, зацените пиздец. Исходники просмоторщика картинок mirage. 4850 строк кода в одном файле, все функции а одном классе. xml интерфейса в перемешку с кодом.
>>556619 Есть три вопроса: 1. Сколько ты уже программируешь (включая обучение)? 2. Сколько ты программируешь на Python? 3. Сколько потребовалось времени на освоение gtk?
>>556620 1. Если считать программирование на basic на 8-битном компе, то 19 лет. cgi скрипты на perl и всякое поделки на delphi писал 17 лет назад. 2. 8-9 лет где-то 3. Немного, pygtk простой и понятный. Но рыться в документации надо постоянно. Некоторые вещи там довольно через жопу делаются.
>>556630 Насколько я понимаю эти биндинги вообще сгенерированны чем-то. > / -- THIS FILE IS GENERATED - DO NOT EDIT // -- Mode: C; c-basic-offset: 4 -- /
>>556643 Хз, никаких тормозов не замечал, мне нравится именно возможность расположить сбоку привью файлов в папке, еще такое есть в дефолтном просмотрщике в кде.
>>556656 Выглядит как говно, подозреваю , это не просто превью, а дерево МАМОК, и если верхнее говно можно убрать? то вот название возле фалов наверняка низя.
>>556663 Так какая ошибка-то? Во втором питоне, который на идеоне у тея выбран, у опен или рид нет аргумента "кодировка". можно читать байты и потом кодировать во что хочешь. Но разве утф-8 не дефолт?
>>556688 Это из учебника пример переписанный, там пистон третий, вроде как. UnicodeEncodeError: 'charmap' codec can't encode character '\xbb' in position 0: character maps to (undifined)
>>556708 Очень извиняюсь за по идиотски оформленный текст. Пытаюсь побыстрей. Подробно не смогу, потому что (читать далее). Да у меня там такая проблема. Дело в том, что я сперва переконвертировал из численного типа в строковый значение переменной. Потом Я хотел изменить значение строковой переменной, при помощи "For in". Но я уже удалил участок кода который был за это ответственен. Потом конвертил в int. И далее я запилил проверку, где сравнивались значения той переменной, что была до конвертирования в str, и переменной после конвертирования в int. Короче говоря, судя по проверке значения не изменялись, я сделал более подробную проверку с помощью инструкций print и цикла while. Тогда мои догадки подтвердились. С помощью For in, короче, я не знаю как изменить значение стоки, но уже над этим думал, и пытался сделать это также при помощи метода format, но тоже самое. Сейчас я уже над этим не работаю, так как удалил, но думаю.
>>556741 Она довольно подробна. Вот укус питона мне не понравился, как то слишком все на скорую руку, я не все понял. После Укуса читаю Доусона, и теперь они дополняют друг друга. А Лутца я буду читать уже после
>>556744 Ну я не про ту где Python изучается, а о той, где Python применяется на практике. Сам я кстати с Саммерфилда начинал, она кстати мне отличной не показалась, и его же книга Python на практике тоже не очень.
>>556750 И кстати, забыл добавить, byte of python после и до Саммерфилда, будет неплохой, но Саммерфилда я бы полностью читать не рекомендовал и сам так не делал. Про Доусона не знаю, не читал.
>>556747 >Сам я кстати с Саммерфилда начинал, она кстати мне отличной не показалась Программирование на Python 3? И что тебя там не понравилось? годная книга, пифон3, достаточно подробно но без тонны воды как у Лутца, куча годных примеров и заданий. Я так понял, ты спрашиваешь за двухтомник лутца? ну по сути это документация по стандартных библиотеках.
>>557156 Это я и был, лалка. Что там обратное? Гтк сам по себе чисто гуй, в отличии от кутей, из которого делают самую кроссплатформенную кроссплатформу со всем и вся. Pygobject умеет в две версии питона и две версии гтк
Может тебя pygtk смутило? Так это старые биндинги к гтк, их (только сами биндинги) сделали депрекейтед в пользу python-gobject.
>>557178 Ему лишь бы сказать что не нужно и все. Даже если там 90% ненужного дерьма(в действительности конечно же не так), то сейчас у меня смартфон мощнее моего компуктера.
>>557299 Не сказать что не осиливаю, просто знаю что такое циклы, массивы(списки), кортежи, ну в общем это все, это я знаю еще когда пхп немного увлекался. Сейчас не знаю куда двигаться, хочу фласку учить, но чувствую что еще подучить надо, иначе смотрю код там и не совсем понимаю что происходит там, порешаю задачки всякие, алгоритмы пока что.нет ты иди нахуй
Пацаны, как проверить переменную логического типа на соответствие true или false? вот у меня есть конструкция if (S == true): print("YES") else print("NO") Она не работает, как сверить S с тем, равна ли она true или нет?
Снова врываюсь к вам в тред. Есть одна задача. Нужно сложить два числа, сделать с помощью рекурсии, циклами пользоваться низзя, только +1 и -1. Рекурсию я написал, все работает, но только как выйти из рекурсии, не используя if?
>>557399 if не цикол жи. Или условия тоже нельзя? Обожаю эти наркоманские задачи от преподов программировавших последний раз еще в совке на перфокартах.
Ну блять, сделай карочи так x == n and return x И пускай топает нахуй.
>>557312 Ну и что? Я для себя хочу, ну и просто первый фреймворк, фласка кажется мне наиболее понятной. Потом как с флаской разберусь от и до и пойму что к чему и почему буду осваивать Tornado or Django. А совет насчет РНР не очень, потому что я и так из РНР пришел. Ковырялся в нем некоторое время, но потом понял что не нужно.
>>557553 Изначально у тебя cells[0][2][3] = None. (x2 = 0, y2 = 2).. В функции есть луп: while cells[x2][y2][3] == None: Внтури которого делается следующее (i на j заменил, что б не стало разметкой): if cells[a][j][3] == 0: something else: next iteration А так как None != 0, то значение этой клетки никогда не изменится, а значит и условие while-лупа никогда не станет неверным. (Дальше d инкрементируется, но None как был, так и останется.)
>>557553 Код пиздецово выглядит, даже неохота курить его, но позволю себе одно небольшое замечание по стилю: c None лучше сравнивать не с помощью == а через is
>>557509 Можешь написать граббер пикч из /б/ Можешь пройти на checkio и писать всякую мелкую хуйню там, но задачи будут оторваны от реальности. Можешь написать сервер на Flask. Какую-нибудь несложную функцию, например ввод двух чисел и сложение их в бекэнде. Можешь написать текстовую консольную игру.
>>557641 Граф хранить в словаре, ходить по нему запоминая «увиденные» вершины, хранить пачку текущих путей. В общем, самый стандартный поиск в ширину. Можешь конечно, пути не хранить, и делать как в алгоритме — обратный проход, но это если у тебя поле большое, плюс придётся завести ещё одно поле для меток. В общем, хуета без души.
>>557662 С тех, что ключём может быть что угодно, а связи не на 4 клетки вокруг, а на сколько угодно причём у каждой вершины их может быть разное количество.
>>557682 сука, хуля ты придераешься к словам, ну на это и расчет что "" - фалсе, потому что там пусто "аувацхуйло" - тру, потому что не пусто 1 - тру блять 0 - фолс, потому что нет нихуя нольноль
>>557834 Это значит что ты пидор >>> bool(Empty()) True
>The following values are considered false: instances of user-defined classes, if the class defines a __bool__() or __len__() method, when that method returns the integer zero or bool value False. До тех пор - труе. Как я и сказал, все опирается на __len__()
>>557867 Инициализация класса. Функция выполняется когда создается объект(экземпляр класса). То есть когда ты пишешь var = Empty() в этот момент выполняется init
Пиздец. Учу себе пистончик, выбрал его первым языком. Потом, в паузе внезапно переключаюсь на видеоурок по С. Или по ассемблеру. Потому что байтоебство мне интересно как явление. А то и вовсе сажусь читать Тененбаума. Потом вспоминаю, что я вообще то питончик учил. Сажусь, повторяю, продолжаю. А бывает, пройдусь по зкачу, или по вакансиям, почитаю. Настроение портится быстро. Но пару часов, и все ок, возвращаюсь к питону. Я один такой еблан?
>>558066 Байтоебство полезно для понимания как все работает под капотом. Ну и все равно ты рано или поздно выучишь потыкаешь несколько 90% мейнстримных языков. Почему бы не одновременно?
Ребят, что делаю не так? Прокси проставил, но в результате выводится мой. http://ideone.com/bn9dsG Проставлял прокси как глобальную толка не было. Что можно с этим сделать?
>>558438 А когда это все понадобится сложить в большую поделку - ты с треском обосрешься. Пиши короче то, чем бы хотел заниматься. Похуй что оно никому не нужно, главное ты практику получишь и будет что показать на собеседовании.
Анон, мидл .net разраб вкатился. Подскажи набор софта для разработки на питоне в debian-based linux (Kali). Что используешь в качестве клиента БД(sqlite например), что используешь для непосредственно кодинга? Или есть уже клиенты в котором все есть?(типа визуальной студии от мелкомягких)
>>558645 Ну да, очень удобно. Даже intellisence нет. Ща пытаюсь качаю крякнутый pycharm. Вообще быстро освоение идет, сейчас уже джанго развернул, потратил час отсилы на курение мануалов.
>>558702 Это жабаскрипт быдлище. А хуячить бесполезное промежуточное имя для результата - жаба быдлище. Еще можно запихнуть тернарник в лямбду вместо дефа, тогда получится лисповое быдлище (хотя это весь питон, лол).
>>558707 > В методе с кучей логики и побочных эффектов это было бы логичнее. Мне кажется, что если и использовать, то везде. Единственный случай, когда я считаю оправданным использование return-а где-то в середине — вложенные циклы, но это зачастую повод задуматься о рефакторинге.
Пора изучать perl6. Он выходит в этом году и студенческая поделка питон отправится на свалку истории. Начинайте уже сейчас. На perl написаны яндекс, мейл.ру reg.ru и многое другое.
Сап, есть один idle+ python3.4+ ubuntu. В идле не работает del на кейпаде. Не удаляет символы справа. Обычный delete работает. Подскажите, как пофиксить? Раздражает жутко.
>>555653 (OP) Анон, есть задача запустить в прыщах интерпретатор хацкела (ghci) с помощью питона, перехватить полностью ввод и вывод ну и соответственно рулить этим делом, отправляя туда строки, получая результат. Как это вообще делать ? subprocess.Popen вешает IPyhon почти полностью.
>>558983 Я уже работаю тестировщиком. Пайтон нужен для автоматизации. Кодакадеми в связке с видео по Selenium и документацией очень помог в том, чтобы сделать тестовое на джуниора автоматизатора.
>>558984 Какие вопросы на собеседованиях к тестировщикам, где почитать что бы меня хоть стажером взяли, хочу сходить, есть тут вакансия в мухосранске моём
>>558995 Тестирование dot com Романа Савина почитай для начала. Если с Украины, можешь записаться на курсы вебинаров от QATestLab. Они там бесплатные и дают практические и теоретические знания, но на работу туда я бы не советовал тебе идти.
Есть несколько файлов с классами. Класс Figure - родительский, остальные - потомки. Каким образом эти все файлы запихнуть в отдельный модуль и импортировать их в main.py, чтобы в структуре была только папка Figures со всеми классами и файлик main.py?
>>559030 Мне нужно, чтобы в папке с программой не лежало дохуя файлов, а только main.py и я не знаю, как это организовать. Если создаю в PyCharm новый Python Package с именем Figures и перенеся туда все свои файлы классов, то там создаётся __init__.py, но я не могу заимпортить из Figures свои файлы классов Figure, Triangle, Square и т.д. в main.py, который находится вне пакета.
>>559057 > А что должен содержать файл __init__.py? Может быть пустым. Наличие этого файла в каталоге говорит питону что это package и ты можешь. Почитай что такое package в доках или книжке какой. В краце если у тебя каталогом ниже есть main.py ты можешь оттуда писать from packagedirname import modulefilename Или если у тебя этот package лежит в site-packages или PYTHONPATH
Здаров питоны, надо навернуть десктоп прилогу с красивым GUI, какую либу посоветуете чтобы в десигн можно было немного разогнаться? А то ткинкер какой-то уж совсем убогий на вид.
Анон, вопрос возник. Предположим мне надо выполнить из интерфейса сайта на джанго команду на баше. Надо сгенерить файл на харде с помощью нескольких утилит в линуксе и отдать пользователю. Реально ли? Или там есть какие-то нюансы за счет окружения? Чтото типа песочницы?
>>559182 Реально. На счет изоляции - зависит от масштабов. Если генерировать часто и много и хочешь максимум секурности - имеет смысл поднять lxc/docker и генерировать в них. А иначе можно чрутом обойтись, например. Или просто из-под отдельного юзера.
Есть опытные аноны, которые могут по хардкору пояснить по моему коду, что можно было реализовать умнее, чем это сделал я? Код простой: задачка, которая выводит инфу про фигуры. Например:
Фигура: Квадрат, площадь 25 кв.ед., длина стороны: 5 ед., цвет: красный.
Было бы интересно пообщаться с таким аноном в скайпе или в вк, например.
>>559228 Я, если честно, вообще не очень понял, что ты там намудрил, зачем у тебя список треугольников в окружности и почему атрибут "радиус" — классовый, а не инстанса. Я бы сделал так - http://ideone.com/qHJRLs (окружность аналогично). Хотя, нужно бы делать прямоугольник и эллипс, а остальные будут их сабклассами.
Дано объекты-фигуры следующих видов: квадрат, треугольник, круг, трапеция. Каждую фигуру можно нарисовать, получить ее площадь и цвет. Также фигуры имеют уникальные методы, например: вернуть радиус, длину гипотенузы, длину стороны и т. д. Нам необходимо сгенерировать случайный набор фигур, количество объектов в наборе также заранее неизвестно.
После генерации массива нужно вывести весь список объектов, которые у нас имеются, например:
>>559349 Интересно. Я немного по-другому организовывал. У меня есть родительский класс Figure и из него наследуются уже фигуры. Потом вызываются методы из фигур, которые возвращают текст в массив и массив выводится. Вот, в общем, скрины. Пару фигур, остальные описаны по такому же принципу.
>>559363 Ну то, что они наследуются — это норм, мне просто лень было так делать.
У меня претензии к следующему: 1. У тебя классовые атрибуты "сторна", "радиус" и т.д. (Которые потом, впрочем, даже и не используются) 2. Добавлять объект в какой-то список изнутри, не очень хорошая идея, вдвойне она плохая, когда ты используешь какой-то список, являющийся классовой переменной суперкласса. Тут всё запутано и как-то плохо. 3. У тебя нет "объекта" как такового. Например, метод "area" в квадрате каждые раз будет возвращать новое значение. Попробуй сделать s = Square() s.area() s.area() s.area() И если бы ты поменял местами площадь и сторону в выводе текста, сразу бы заметил, что они не совпадают. И это самая главная проблема. В твоём списке — текст. Всё, методы повызывал, строки в список подобавлял и все объекты проёбаны, ты ничего из этого "нарисовать" уже не сможешь. То есть смысла вообще создавать какие-то классы не было, достаточно было тремя функциями, которые эти строки создают и получить абсолютно тот же результат, что и у тебя.
4. Тут не знаю, мнение других нужно, но мне кажется, что разделять 20-строчные связанные классы на миллион разных файлов - не очень разумно. Хотя в гайдлайнах id software, например: "Each class should be in a separate source file unless it makes sense to group several smaller classes".
>>559376 >И если бы ты поменял местами площадь и сторону в выводе текста, сразу бы заметил, что они не совпадают. Совпадают, няша. Я вчера с этим ебался и поэтому вынес сторону в отдельную переменную, которая принимает значение и хранит в себе, после вызова метода area(), которая в свою очередь вызывает метод side_a(). Здесь я полностью согласен, что это полнейший пиздец.
Условие было в том, чтобы решить задачу с применением принципов ООП.
Вообще, я многого из твоих слов пока не понимаю, поэтому буду разбираться что и к чему. Спасибо тебе за помощь.
>>559376 Посмотрел еще раз твой код. Смотри, у нас в условии не сказано, что нужно делать так, чтобы потом можно было вызывать какие-то методы. Нужно сделать генератор рандомных фигур и только, но я согласен, что твой подход лучше и логичнее и не выглядит "нубским". Спасибо еще раз за возможность взглянуть на решение с другой стороны.
>>559472 >Совпадают, няша. Вот я поменял местами - http://ideone.com/luOyZk У тебя при каждом расчёте площади задаётся новый размер стороны, и плошадь считается от этой новой стороны.
>Условие было в том, чтобы решить задачу с применением принципов ООП. А я как раз хотел тебе посоветовать про ООП почитать :)
>>559518 >Нужно сделать генератор рандомных фигур и только, Так в том и беда - ты не фигуры генерируешь, а текст. У тебя нет никаких фигур, у тебя есть по одному инстансу каждого класса, в котором ты меняешь параметр и генерируешь новую строчку текста. Это как нарисовать мелом на доске, сфотографировать, стереть и нарисовать новое. В каждый момент времени у тебя есть только 1 рисунок мелом, остальное - на фото (а тут в тексте).
>>559592 >сфотографировать Точнее не сфотографировать даже, а написать на бумаге описание его. Т.е. для получения этого рисунка обратно на доске нужно его заново рисовать по описанию (у тебя - снова создавать инстанс класс с параметрами, выдранными из текста, и хорошо ещё, если там будет достаточно информации).
>>559592 >Так в том и беда - ты не фигуры генерируешь, а текст Так в этом и было условие - вывести массив фигур с рандомными значениями. В условии не было сказано, что мы можем вызывать методы из классов отдельно. Или я неправильно понял условие?
>>559595 Кажется, я начинаю понимать, но не могу сложить у себя образ в голове. Что посоветуешь конкретно почитать, чтобы пришло понимание сего процесса?
Я тупой, заранее предупреждаю. multiprocessing я впервые увидел день назад и еще нихера не понимаю. Есть такой быдлокод: [code lang="python3"] with multiprocessing.Manager() as manager: ctx = multiprocessing.get_context('spawn') exit_event = ctx.Event() my_shiny_dict = manager.dict() #словарик. надо мне. some_process = ctx.Process(target=some_function, args = (my_shiny_dict, exit_event)) #некий процесс, работающий с моим словариком. some_process.start() try: signal.pause() except KeyboardInterrupt: exit_event.set() #даю ему время нормально завершиться, в some_function, естественно, signal.signal(signal.SIGINT, signal.SIG_IGN) some_process.join() some_other_function(my_shiny_dict) #над результатами его работы нужно выполнить некие действия [/code] И все бы хорошо, но как только я пытаюсь что-то сделать с my_shiny_dict в some_other_function, он мне вываливает вот это: Process SpawnProcess-3: Traceback (most recent call last): File "/usr/lib/python3.4/multiprocessing/managers.py", line 724, in _callmethod conn = self._tls.connection AttributeError: 'ForkAwareLocal' object has no attribute 'connection'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/lib/python3.4/multiprocessing/process.py", line 254, in _bootstrap self.run() File "/usr/lib/python3.4/multiprocessing/process.py", line 93, in run self._target(self._args, *self._kwargs) File "/my/folder/myfile.py", line 152, in some_other_function print(len(my_shiny_dict)) File "<string>", line 2, in __len__ File "/usr/lib/python3.4/multiprocessing/managers.py", line 728, in _callmethod self._connect() File "/usr/lib/python3.4/multiprocessing/managers.py", line 715, in _connect conn = self._Client(self._token.address, authkey=self._authkey) File "/usr/lib/python3.4/multiprocessing/connection.py", line 495, in Client c = SocketClient(address) File "/usr/lib/python3.4/multiprocessing/connection.py", line 624, in SocketClient s.connect(address) FileNotFoundError: [Errno 2] No such file or directory
>>559844 Окей, я нашел решение сам. Проблема заключалась в том, что KeyboardInterrupt всё-таки убивал моего Manager'a. Тем не менее, трейсбек все еще не кажется мне очевидным. Поясни за скиллы чтения трейсбека, как можно их прокачать до твоего уровня?
>>559904 Никак. В питоне один из самых хуевых и неинформативных трейсбеков. Он просто дампит все к хуям, а ты там сам сортируй. Хуже только в жабе и сисярпе.
>>559931 Заебись. А теперь как к этому прикрутить, чтобы на выходе еще добавляло рандомную фразу из нескольких: я думаю, конечно же, по-моему. И как сделать, чтобы не печатало вопросительный знак, как во втором варианте?
>>559217 Что за чрут? Можно чуть больше комментов? Что делать на практике? Хочу чтобы юзер выбирал настройки в интерфейсе, после этого выполнялись баш скрипты. Когда файл сгенерится(10-30секунд) , он отдавался юзеру. Скрипт задействует обычные пакеты линукса.
>>559942 Анон, ты, конечно, молодец. Но есть подозрение, что у тебя есть хороший шанс сделать небольшой рефакторинг. Например, убрать условный оператор if, потому как в нём нет особой необходимости. Возможно, нет необходимости вызывать функцию randint так много раз. В общем, подумай как твой код можно улучшить.
>>559957 По мне, так лучше. Правда, я бы сначала выполнил все необходимые операции над строками, и только потом подставлял их в format, дабы было более наглядно. Но тут я тебе уже не советчик.
Анончики, такое дело, хочу учиться. Выучив базы на кодекадеми начал джангу, прошел туториал на ютубчике вот этого https://www.youtube.com/watch?v=_5iNtjA-xu8 некого shadrus. Ну как прошел, повторял почти все за ним, сделав только пару самостоятельных шагов.
Теперь вот задумал написать приложение самостоятельно, на глаза попалось задание для рельсов, хочу сделать то же самое, только на джанге.
Вот в чем вопрос: с чего мне начать? Я не знаю с какой стороны за это взяться. Начинать с регистрации? Учитывая, >Состав профиля: login, full name, birthday, email, address, city, state, country, zip, password и confirm password (все поля обязательны). пилить собственную модель под пользователя? Пилить модель внутри приложения или делать отдельное приложение?
>>559971 Документация хороша и всеобъемлюща, насколько мне известно, в джанго есть стандартная регистрация, но вот подойдет ли она под такие цели я не знаю.
>>559966 Вещаю с дивана. На мой взгляд, тут есть два варианта: 1. Так как в django есть в наличии своя система аутентификации, ты можешь использовать ее. 2. Ты так же можешь запилить свою систему аутентификации. А вот сделать ее отдельным приложением или middleware, тут уж решай сам. В любом случае, в первую очередь стоит почитать про систему аутентификации django.
>>559976 Еще вопросец: какую бд юзать? Использую PostgreSQL, но она в управлении замороченная, или все базы такие? Пока до нужной колонки доберешься с заходом от другого юзера - хозяина бд, уже забудешь, какую колонку удалить хотел.
>>559473>>559598 Я имел в виду к утру. конечно же. Вот я расписал всё подробно, как мог, изменив немного код. Надеюсь, будет полезно. http://ideone.com/xffM1P А что почитать — не знаю, к сожалению. Я нкаких книг не читал, просто читал/писал код и анализировал происходящее. Ну и в документацию заглядываЛ, разумеется.
>>560090 В питоне нет перегрузки. Но она и не нужна в 99.9% случая, так как это необхоидмость статически типизированных языков же (да и те иногда к duck typing'у стремятся, вроде obj-c) без возможности иметь варьируемое количество аргументов. Для остальных исключений можешь-таки проверить тип (например, список или просто строка) или чего там тебе надо, и уже там две ветки сделать.
>>560119 >Я имел в виду к утру. конечно же. Вот я расписал всё подробно, как мог, изменив немного код. Надеюсь, будет полезно. http://ideone.com/xffM1P
Читаю укус питхона, главу про задачи. Треться версия проги, которая делает копии файлов. В книге, после листинга проги, написано, что она не работает! ДАвайте искать ошибку! Я запускаю, а моя работает блять. Ну что я говно, даже ошибку блять сделать не могу? Версии питончика одинаковые
>>560676 Анон прав, читай на нагельском. Я вот тоже читаю на ангельском онли, хоть и со скрипом. Алсо, еще очень годно иметь под рукой англ толковый словарь, а не просто словарь русско английский.
Аноняша, вот смотри. Я выгуглил,что у кнопок в tkinter есть аргумент image.однако при попытке указать btn = Button(root,image=img) интерпретатор орет, что TypeError, 'image' is an invalid keyword argument for this function. Чяднт? может, надо что-то где-то импортировать дополнительно?
>>561104 бля, вроде так работает оптимизация у питона.
>А если я измению один из них, чего компьютеру делать? Копировать начинать?
ну вот у тебя один объект со значением 2, ты создаешь еще один объект со значением 2, Уборщик проходит по хешам, видит то что это значие уже лежит в памяти, и делает так что объект ссылается на ту же область в памяти. Ты решил изменить у второго объекта на 3. Уборщик опять проходит по памяти, видит то что нету такой хуйни, и кладет в память значение 3, и дает объекту ссылку на него. Потом ты у первого объекта ставишь значение 1. Проходит уборщик, и видит что ссылок на 2 больше нету, и ебошит его из памяти... и в памяти больше нет "2".
Ну так оно должно работать если верить книгам с крысой на обложке.
>>561108 Так ты путаешь ссылки на один и тот же объект (x = 10; y = x; z = x) и ссылки на объекты с одинаковыми значениями. Имея, например: class MyClass(): def __init__(self): self.x = 10
a = MyClass() b = MyClass() И a, и b абсолютно идентичны, но это, тем не менее, разные объекты, и лежать они будут в разных метах в памяти. (Более того, они даже не будут равны при сравнении оператором ==, если сам не определишь функцию сравнения.)
Маленькие числа, как и отдельные символы, как, например, a = 'a'; b = 'a', действительно будут ссылаться на одну и ту же облась в памяти, так что a is b будет True.
>>561114 >c is e >идет сравнение (в питоне это "==") Нет. is это не то же самое, что и ==. И x+y == t+r из его примера вернёт True.
>>561148 Дибил, не используй is ни для чего кроме проверки на ссылочную эквивалентность или на False, True, None. Всё остальное — внутренние оптимизации пифона и не должны тебя заботить. >>561108 В пифоне есть нехешируемые™ объекты, например.
Хочу попробовать через питон достать текст из ютуб чата на стриме и как всегда этого нет в апи. Нашел только как 1 чувак делал это через selenium. Что думаете? Может у кого был опыт.
"Объявите в базовом классе абстрактный виртуальный метод, предназначенный для генерации информации об объекте класса. Переопределите и реализуйте данный метод в классах наследниках. Предусмотрите возможность вызова данного метода с разными входными аргументами."
http://ideone.com/fmgoSZ Я правильно сделал? Можно ли так переопределить абстрактный метод в классе-наследнике?
Аноны, решил вкатиться в Python 3, за плечами толком нихуя. Начал с Лутца, осилил страниц 400, на которых он только начинает описывать как сделать Hello World, подустал от темпа. С английским всё норм, поэтому друг посоветовал automatetheboringstuff.com для старта, прочёл её, но сейчас в каком-то ступоре - куда дальше-то? Посоветуйте мб чего, куда шагать (кроме очевидных "нахуй"), куда смотреть?
>>561281 >прочёл её Молодец. А применить на практике? Только читать - мало. Попробуй написать свой калькулятор или блокнот или изучай какой-то фреймворк и пили веб-проекты свои со своими идеями.
Как обычно графически изображают структуру программульки? Что сейчас модно-молодёжно? Смотрю видео по UML, потому что что-то про него слышал, но может есть что ещё?
Такое вот задание: " В соответствии с вариантом выделите базовый класс и постройте диаграмму классов с отношениями наследования, придумайте для каждого класса набор их свойств."
Есть четыре класса: Персонал, кадровый служащий, инженер, административный персонал.
Базовым будет класс Персонал, остальные - наследники. Базовом классе объявляем конструктор с следующими атрибутами: 1. ФИО 2. Возраст 3. Пол 4. Должность 5. Отдел
В классах-наследниках перезагружаем конструктор и добавляем уникальные атрибуты <-- я здесь обосрался, не могу придумать атрибуты, помогите, плз
>>561304 Ну так-то есть от 1-го года опыта. Но работать с одним языком и по вечерам изучать другой - не слишком эффективно, на мой взгляд. Хочется быстро и сразу как обычно.
>>561316 Неужели так критично, что выбрать? Пиши кадровику длину хуя, если баба, то можно отрицательную. Инженеру зп, чем ниже тем реалистичнееБ администраторам-кол-во квартир в нуорке.
не упомянут стаж, не упомянуто полученное образование, не упомянута зп, не упомянута форма одежды(дресскод), кол-во положенных отпусков, ну короч давай, сам выбирай и думай, это же самая легкая часть из всего ООП(пишу с дивана).
>>561341 Всё, что ты перечислил, можно отнести к всем,т.е. к базовому классу. Мне же нужны уникальные атрибуты(даже одного будет достаточно), такие, которые не будут повторяться
>>561349 Или название отдела которым он управляет. Логично было бы сделать связи, например у администратора список его подчиненных, а у инженера - администратор которому он подчиняется.
>>561402 Давай рассуждать вместе. Кто такие кадровики? Это люди работающие в кадровом отделе, ведущие учет всяких трудовых книжек а еще слыхавшие про трудовой кодекс. Что такого необычного в кадровиках, чем они так притягивают взгляд, почему они сияют и так выделяются среди серой массы прохожих пасмурным днем? Ну?
Тут после полугода работы сайта (на джанго) внезапно выяснялось, что в гугловских емейлах точка как бы и есть, и как бы ее и нет, что позволяет на один гугловский ящик зарегать несколько аккаунтов. Чего делать то теперь, аноны? как валидировать новые и что делать со старыми аккаунтами?
>>561411 Да ладно тебе. А кадровики какие имеются ввиду? Я вот немного путаюсь. Я ходил полнедели на курсы кадровиков, и там было делопроизводство, давали всякие ебливые тестики, а еще ТК и опять делопроизводсто, и учили что всегда в суд бежать если с работодателем терки какие. Ну это в моем понимании и есть кадровики, сидят, строчат в трудовых стаж. А есть HRы. Они к относятся к кадровиками?
>>561419 Плохо это. Клиент ругается, ночами заснуть не может. А только заснет, так ему сразу снятся сотнитыщ аккаунтов на одном ящике и съехавшая на 1 пиксель кнопка.
>>561427 Gmail doesn't recognize dots as characters within usernames, you can add or remove the dots from a Gmail address without changing the actual destination address; they'll all go to your inbox, and only yours. In short:
If you get mail that seems to be intended for someone else, it's likely that the sender entered the wrong address, just like if you've ever dialed a wrong phone number for someone. In these cases, we suggest contacting the original sender or website when possible to alert them to the mistake.
One last thing: Google Apps does recognize dots. If you'd like to have a dot in your username, please ask your domain administrator to add your preferred username as a nickname.
>>561414 > и что делать со старыми аккаунтами Ну сделай выборку всех аккаунтов в manage.py shell from django.contrib.auth.models import User from collections import defaultdict l = defaultdict(list) for email in User.objects.all().values_list('email', flat=True): l[email.replace('.','')].append(email) теперь если [e for e in l if len(l[e])>1] найдутся, то решай что делать. удалять таких юзеров например
>>561482 Блять, я теперь вместо того, чтобы искать ошибку в своем говнокоде, не могу перестать думать про твоего ебучего кадровика. В итоге, не выходит ни то, ни второе.
Прошлый: