Вы видите копию треда, сохраненную 6 ноября 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
>str(int(...))
Действительно помогло для второго числа. Наверно записывалось в формате 16.0 вместо 16.
http://ideone.com/LMuhKE
words никогда не будет равно нулю, сколько ты элементов ни убирай или добавляй, тут вам не джаваскрипт.
Окей, спасибо. Просто жопой читаю
Ну значит ты не осилил пип. Все он ставит. Хоть бы логи показал. А если никаких стремных логов нет - значит точно ставит. Но возможно не туда, где твой питон их ищет. Проверь. И добавь в sys.path или PYTHONPATH.
Я вообще не понимаю в чем проблема. НИСТАВИТСЯ - не проблема, прекращай блондинкой быть.
не уверен говоришь ли это мне, но если мне то ты говна поел.
Есть два питона, один используется системой, а один мною.
Учить второй и переписывать на него свое говно желания пока нет.
Изменять системный питон тоже, ибо говорят что это хунта и плохо закончится.
python3 pip и так далее и тому подобное не работает, говорит что небывает модуля пип
хуй который хочет накатить модули на питон3
[CODE]
sudo apt-get install python3-setuptools
virtualenv -p /usr/bin/python3 venv
./venv/bin/pip install django
[/CODE]
Лол, если вы про линуксы говорите, то у меня вот изначально есть pip3 поддержка, всё ставится, работает.
А для винды вообще не нужно юзать pip3, там оно как-то автоматически распознает, и есть божественные колеса: http://www.lfd.uci.edu/~gohlke/pythonlibs/
>python3 pip и так далее и тому подобное не работает, говорит что небывает модуля пип
Логи показывай тип.
Ну так установи его, епте. Или через 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
жестоко. у меня там бесконечный цикл, это не страшно? если выбьет эксепшн, он не прервется и программа не завершится? что-то я не уверен.
Это эталонный говнокод, но с таким эксепшоном свалится может разве что с каким-нибудь сегфолтом. Или питон целиком.
Лучше разворачивай бектрейсы и ищи где и что вылезает. И не эксепшоны подкладывай а причину фикси.
увы, причину пофиксить не могу - для этого придется тянуть нормальный интернет через десятки километров, что не в моих возможностях. а падает именно из-за него.
не изпользуй tuple для хранения списка
also
words = ["ночь", "улица", "фонарь", "аптека"]
random.shuffle(words)
print(words)
>не изпользуй tuple для хранения списка
Это константа, вообще-то.
>random.shuffle(words)
Ну да, налисапедил. Но не жалею об этом. Да и в учебнике не было этой функции, значит автор предполагал решение задачи без этой функции.
>random.shuffle(words)
>print(words)
Анчоусы, есть у меня к вам вопрос.
Я вот тут повтыкал во всякую хуиту про Руби, у них там есть конвенцыа - методы, делающие какую-то хуйню над объектом inplace имеют в названии !, а возвращающие новый с проделанной над ним хуйней - нет.
Почему у нас нет чего-то подобного?
Есть же, например, list.sort() и sorted(list).
На основе этого можно было бы предположить, что inplace перетасовка элементов списка должна быть его методом, а какой-то shuffle из модуля random должен возвращать новый объект, но нет.
p.s. есличо, не рубифаг
Методы у mutable объектов типа list меняют их inplace.
А у inmutable типа str.replace возващают новый объект.
В принципе логично, но имхо консистентнее было бы всегда возвращать новый, если в вызове не передан аргумент типа in_place=True там.
Функциональный подход, все дела.
Ладно, я наверно доебываюсь до частного случая, т.к. random.shuffle судя по блеймам с 2001г особо не трогали и только в 2013 причесали какую-то доковую хуйню.
https://github.com/python/cpython/blob/master/Lib/random.py#L258
В стандартной библиотеке вообще дохуя инконсистентного. Разные модули там в весьма разном стиле. Так уж сложилось исторические, а менять сильно - ломать совместимость.
Это диджей на одном радио, который начинал свой путь в программировании еще со спектрума. Он по всему /pr прошелся сегодня.
Пока тоже самое не повторит какойнибудь хотябы КРЕС КОСПЕРСКЕ, можно никого не слушать
Ну чего ты, человек вещает с дивана(в прямом смысле этого слова) посредством микрофона за 3 доллара с китайского планшетика через самописную вещалку.
Думаю, не стоит вскрывать эту тему.
А текстом тот аудиовысер есть? Я не хочу слушать целую минуту, а текст быстро бы пробежал.
код: http://pastebin.ru/CC5dEhPI
результат на пикриле
желаемый результат: в первом списке нижнего уровня 1,1,0,0; во втором 1,2,0,0 и так далее
чяднт?
хелп аноны, я уже головой о стену бьюсь, ну не может там быть такого результата.
Я не могу тебе помочь, я просто не понимаю что в твоей хуйне происходит. Вот в данный момент пытаюсь разобрать по частям побою написанное
чего проще. цикл, который теребит первый уровень вложенности списков. в нем цикл, который теребит второй уровень вложенности. в нем цикл, который присваивает спискам последнего уровня вложенности значения, увеличивающиеся с каждой итерацией.
Пустышка в первом блоке. Можно было бы обойтись и одним блоком, без else.
[code lang="python3"]
\tif word not in printed:
\t\tprint(word)
\t\tprinted.append(word)
\t\tcount += 1
[/code]
Вот ты тугой.
Потому что в цикле постоянно к total присваивается ноль, сделай total = 0 вне цикла.
Что-то вне цикла оно вообще работать не хочет.
Я так понимаю, оно хочет, чтобы я все промежуточные значения еще и подытожил. Как еще сосчитать эти 48 + 45 + 24 + 0? Я сегодня туплю сильнее, чем обычно.
бампаю вопрос и съябываю, надеюсь, кто-то все же ответит.
Нельзя, я и так медленно иду очень.
Так как мне общий результат вывести, подскажете?
Внезапно понял почему многие мои знакомые бросили погромирование. Им не нравилось постоянно ощущать себя тупыми. Ведь они умные. А мне всю жизнь говорили - ебать ты дебил.
Погромирование - для тупых.
1. total = 0 - перед циклом, ты же ее обнуляешь постоянно
2. total += prices[key] * stock[key] - так круче
3. print total - outside your loop
Из твоих слов не следует, что кодинг для тупых, из них следует что многие твои знакомые-глупые и ранимые люди
Ты просто не хочешь признавать свою тупость. Ну и ладно.
Я спрашивал конкретно о плюсе в этой переменной. Уже объяснили.
Кстати, в некоторых случаях это не одно и тоже.
Например в picrel. list += list2 работает как list.extend(list2), а list = list + list2 создает новый список.
Пошел нахуй, пидор.
> bool(str(False))
> True
У меня постоянно такая хуита, что я неправильно делаю?
ну ты говоришь ему написать в булевой лохике ФОЛС а фолс не равен нулю, следовательно он тру.
Я не прав?
>>> print(bool("False")) #во что и разворачивается bool(str(False))
True
>>> print(bool(""))
False
>>> print(bool("соси хуй быдло"))
True
Никаких WAT тут нет, все логично. Единственный WAT - автора высера. У него непонимание базы, и не только питона. Обсосали где только можно, теперь баян и до зк добрался.
А фортран на перфокартах лудше ассемблера!
Если я правильно понял, то твой список хранить список ссылок на один и тот же объект, из-за этого каждая итерация изменяет num, поэтому и результат такой. Думаю, тебе стоит почитать про генераторы списков.
Уж не знаю, что у тебя там за магия, что ты делаешь range(1,9) вместо range(8), когда тебе просто 8 раз одно и то же дествие повторить нужно.
Вот я в одну строку решил, если правильно задание понял (список в клетке только с одном нулём, так красивше на строку помещается): http://ideone.com/FrVB47
>>556572 всё верно говорит.
Значит не всё. During handling above… значит, что эксепшен возник при обработке эксепшена. Ну, и номера строк же подписаны, что за клоунада?
>>556215
В super можно не писать аргументы. неплохие цвета, ЛАЕК
>>556237
Хуйня. Можно же писать "yoba".replace(…) и от этого мутабельность не появится. Вообще >>556235 рубифаг прав. Но это уже история, и никто ничего не поменяет. >>556255 тоже самое сказал.
>>556333
Да похуй на шапку, это тред обсуждения и поливания говном, а не форум даунов. Вся эта культура ШАПОК ИНФА В ШАПКЕ 4ПДА СКАЧАТЬ БЕЗПЛАТНО омерзительная, мягко говоря. Можно всё делать с куда менее надутыми щеками.
>>556501
> оно вообще работать
Классика неосиляторов.
> В super можно не писать аргументы
Это код на python2. Он использует библиотеку на си, для которой есть биндинги только для python2.
Есть три вопроса:
1. Сколько ты уже программируешь (включая обучение)?
2. Сколько ты программируешь на Python?
3. Сколько потребовалось времени на освоение gtk?
1. Если считать программирование на basic на 8-битном компе, то 19 лет. cgi скрипты на perl и всякое поделки на delphi писал 17 лет назад.
2. 8-9 лет где-то
3. Немного, pygtk простой и понятный. Но рыться в документации надо постоянно. Некоторые вещи там довольно через жопу делаются.
Спасибо.
Эти библиотеки с биндингами кстати портируются на трешку очень легко. Я таким портом себе пару десятков лойсов на гитхабе собрал.
Насколько я понимаю эти биндинги вообще сгенерированны чем-то.
> / -- THIS FILE IS GENERATED - DO NOT EDIT // -- Mode: C; c-basic-offset: 4 -- /
Сам питон знать необязательно чтоли?
Хз, никаких тормозов не замечал, мне нравится именно возможность расположить сбоку привью файлов в папке, еще такое есть в дефолтном просмотрщике в кде.
Выглядит как говно, подозреваю , это не просто превью, а дерево МАМОК, и если верхнее говно можно убрать? то вот название возле фалов наверняка низя.
Ну чего, никто не скажет чтоли?
Тут просто перечислены методы чтения с файла, а он мне ошипку выдает
http://ideone.com/PdCUSF
Так какая ошибка-то? Во втором питоне, который на идеоне у тея выбран, у опен или рид нет аргумента "кодировка". можно читать байты и потом кодировать во что хочешь. Но разве утф-8 не дефолт?
Это из учебника пример переписанный, там пистон третий, вроде как.
UnicodeEncodeError: 'charmap' codec can't encode character '\xbb' in position 0: character maps to (undifined)
Это не твиттер же, пиши, и пиши развернуто, если кортоко не получится. Тред должен жить.
Очень извиняюсь за по идиотски оформленный текст. Пытаюсь побыстрей.
Подробно не смогу, потому что (читать далее).
Да у меня там такая проблема.
Дело в том, что я сперва переконвертировал из численного типа в строковый значение переменной.
Потом
Я хотел изменить значение строковой переменной, при помощи "For in".
Но я уже удалил участок кода который был за это ответственен.
Потом конвертил в int.
И далее я запилил проверку, где сравнивались значения той переменной, что была до конвертирования в str, и переменной после конвертирования в int.
Короче говоря, судя по проверке значения не изменялись, я сделал более подробную проверку с помощью инструкций print и цикла while. Тогда мои догадки подтвердились. С помощью For in, короче, я не знаю как изменить значение стоки, но уже над этим думал, и пытался сделать это также при помощи метода format, но тоже самое.
Сейчас я уже над этим не работаю, так как удалил, но думаю.
Спасибо, хотя я и думал в том направлении, и у меня бы вышло то же самое, но твой метод я испробовал.
http://ideone.com/y0BEuX
Она довольно подробна. Вот укус питона мне не понравился, как то слишком все на скорую руку, я не все понял. После Укуса читаю Доусона, и теперь они дополняют друг друга. А Лутца я буду читать уже после
Ну я не про ту где Python изучается, а о той, где Python применяется на практике. Сам я кстати с Саммерфилда начинал, она кстати мне отличной не показалась, и его же книга Python на практике тоже не очень.
Я о той, где практика. Если ты о ней, то чем он плох то? Есть альтернативы?
И кстати, забыл добавить, byte of python после и до Саммерфилда, будет неплохой, но Саммерфилда я бы полностью читать не рекомендовал и сам так не делал. Про Доусона не знаю, не читал.
pygtk депрекейтед сто лет уже, не только из-за питона.
Используйте python-gobject, умеет во второй и третий питон и во второй и третий гтк.
> python-gobject
Ссылку кинь, что-то гугл ничего вразумительного не выдаёт. Только пакеты из разных линуксов. Сайт/pypi/github есть?
Ну так его и выдает по таком запросу.
В старом pygtk тоже был модуль gobject http://www.pygtk.org/pygtk2reference/gobject-functions.html но это другое немного
Вот именно, что выдаёт, но названия-то нет в заголовке. В общем, не важно уже.
>Сам я кстати с Саммерфилда начинал, она кстати мне отличной не показалась
Программирование на Python 3? И что тебя там не понравилось? годная книга, пифон3, достаточно подробно но без тонны воды как у Лутца, куча годных примеров и заданий.
Я так понял, ты спрашиваешь за двухтомник лутца? ну по сути это документация по стандартных библиотеках.
анон, помоги. чому этот код виснет на 12 строчке?
Я знаю, что идиотизм, прост любопытно стало, логику на этом построить, поизвращаттся
Ыыы))
Слишком раздутое. 90% говна там нахуй не нужно.
Гтк - чисто гуй, как и ткинтер. Только современный и не депрекейтед.
Это я и был, лалка. Что там обратное? Гтк сам по себе чисто гуй, в отличии от кутей, из которого делают самую кроссплатформенную кроссплатформу со всем и вся. Pygobject умеет в две версии питона и две версии гтк
Может тебя pygtk смутило? Так это старые биндинги к гтк, их (только сами биндинги) сделали депрекейтед в пользу python-gobject.
Можно и на жаве только хелловорлды, скриптики и парсеры писать.
Ему лишь бы сказать что не нужно и все.
Даже если там 90% ненужного дерьма(в действительности конечно же не так), то сейчас у меня смартфон мощнее моего компуктера.
Не сказать что не осиливаю, просто знаю что такое циклы, массивы(списки), кортежи, ну в общем это все, это я знаю еще когда пхп немного увлекался. Сейчас не знаю куда двигаться, хочу фласку учить, но чувствую что еще подучить надо, иначе смотрю код там и не совсем понимаю что происходит там, порешаю задачки всякие, алгоритмы пока что.нет ты иди нахуй
Нафиг тебе это говно, никто в реальном мире никакой фласки не использует.
Учи php лучше, работы вагон. Изучит джумлу, wordpress, drupal.
вот у меня есть конструкция if (S == true):
print("YES")
else
print("NO")
Она не работает, как сверить S с тем, равна ли она true или нет?
>Изучит джумлу, wordpress, drupal.
Ворвался в чужой тред и предложил поесть говна. Некрасиво.
Дал деньный совет. Питон язык для обучения школьников, но в индустрии и enterpize его не используют. Везде php.
>enterpize
А вот в питон-треде говорят, что используют. Но только второй. Третий для лохов, а вот второй - ынтырпрайз.
Это легаси, да и питон не маштабируется, на нем делают только протатипы, всё равно потом переписывать на php или java mvc
>enterpize
>протатипы
>маштабируется
В школу собирайся, ынтырпрайзник. Может на уроке информатики про спеллчекер расскажут.
Я русский язык подзабыл уже 10 лет пишу startups в силикон вэллей и общаюсь только с americans.
Хуёво быть тобой.
if не цикол жи. Или условия тоже нельзя? Обожаю эти наркоманские задачи от преподов программировавших последний раз еще в совке на перфокартах.
Ну блять, сделай карочи так
x == n and return x
И пускай топает нахуй.
Вот я обосрался. Ну суть выпонели.
Ну и что? Я для себя хочу, ну и просто первый фреймворк, фласка кажется мне наиболее понятной. Потом как с флаской разберусь от и до и пойму что к чему и почему буду осваивать Tornado or Django.
А совет насчет РНР не очень, потому что я и так из РНР пришел. Ковырялся в нем некоторое время, но потом понял что не нужно.
Локальную имиджборду, тока чтобы 5000 запросов, приду проверю.
пофиксил что нашел, теперь код выглядит так:
http://pastebin.ru/zwNruuoz
но все равно виснет :(
Изначально у тебя 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 как был, так и останется.)
ох щет, совсем упустил из вида. спасибо, буду думать, как по-другому реализовать.
Код пиздецово выглядит, даже неохота курить его, но позволю себе одно небольшое замечание по стилю: c None лучше сравнивать не с помощью == а через is
Можешь написать граббер пикч из /б/
Можешь пройти на checkio и писать всякую мелкую хуйню там, но задачи будут оторваны от реальности.
Можешь написать сервер на Flask. Какую-нибудь несложную функцию, например ввод двух чисел и сложение их в бекэнде.
Можешь написать текстовую консольную игру.
is None пофиксил. дальше буду сам разбирать, не подскажешь, чем можно без лишней мозгоебли по-быстренькому отдебажить построчно?
Построчно нет. Если ты мне объяснишь на словах в общих чертах алгоритм, что этот код делает, может смогу что подсказать.
если ты это мне>>557594
то код делает это: https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9B%D0%B8
на распространении волны завис пока
Я так понял ты моделируешь ту картинку из вики заполняя цифрами списки?
Ты по псевдокоду из вики делал?
Сейчас попробую сам накатать. Тоже интересовался нахождением путей, когда делал игрушку.
На pygame. Правда там поле не клеточное и такой алгоритм не подойдет.
Насчет алгоритма, велосипед скорее всего, если погуглишь, то найдешь готовый.
гуглил, конкретно на питоне нет.
Это же поиск «в ширину» что там сложного? И да, лучше как в вики не делать, это для байтоёбов.
Граф хранить в словаре, ходить по нему запоминая «увиденные» вершины, хранить пачку текущих путей. В общем, самый стандартный поиск в ширину. Можешь конечно, пути не хранить, и делать как в алгоритме — обратный проход, но это если у тебя поле большое, плюс придётся завести ещё одно поле для меток. В общем, хуета без души.
ну пиздец, с каких пор словарь лучше списка? а в остальном то же самое предложил.
С тех, что ключём может быть что угодно, а связи не на 4 клетки вокруг, а на сколько угодно причём у каждой вершины их может быть разное количество.
сука, хуля ты придераешься к словам, ну на это и расчет что
"" - фалсе, потому что там пусто
"аувацхуйло" - тру, потому что не пусто
1 - тру блять
0 - фолс, потому что нет нихуя нольноль
> c None лучше сравнивать не с помощью == а через is
Нет, не лучше. Откуда вы идеи такие ебанутые берете.
Как и у тебя в голове
Это значит что ты пидор
>>> 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__()
Инициализация класса. Функция выполняется когда создается объект(экземпляр класса).
То есть когда ты пишешь
var = Empty()
в этот момент выполняется init
А это значит что ты даун-аутист.
Это классика, подчёркивает уникальность объектов None, True и False.
Помимо всего прочего, даже, если ты её не обозначил, то она по дефолту есть, но скрытая.
Пишет что в строчке с обьявлением исключения есть синтаксическая ошибка. В упор не вижу!
https://ideone.com/ToNTDP
Опять ты? У тебя except на индент убежал. Он должен быть на уровне трая, ка иф-елс.
Байтоебство полезно для понимания как все работает под капотом. Ну и все равно ты рано или поздно выучишь потыкаешь несколько 90% мейнстримных языков. Почему бы не одновременно?
Попробуй писать экстеншены для питона. Под CPython и под PyPy через cffi.
Проставлял прокси как глобальную толка не было. Что можно с этим сделать?
На пистоне байтоёбить как раз самое заебись, зря что ли почти все сплоенты публикуются в виде питоновых сниппетов.
Не можешь, не умеешь.
попробуй
from requests import request
тащемта для начала попробуй все делать в PyCharm -e или читай что импортируешь
Умею все, что было в курсе, методы, функции, листы, лупы, залупы, алахи
Перезвоним.
А когда это все понадобится сложить в большую поделку - ты с треском обосрешься.
Пиши короче то, чем бы хотел заниматься. Похуй что оно никому не нужно, главное ты практику получишь и будет что показать на собеседовании.
У меня не с импортом либы проблема, локально у меня с этим всё хорошо, именно что через прокси не хочет идти.
:Е
На дваче лучше знают.
Отличается тем, что ты пидор.
Повтыкай еще в https://github.com/gregmalcolm/python_koans
Кодакадеми учит хеллоуворлдам, тут чуть больше про особенности языка.
А дальше ковыряй всякие джанги и нампаи, смотря куда ты хочешь - в крудоделанье, или в высокоматематичные поебени типа рекомендательных систем.
Фреймворк - некий код, который вызывает твой код. Зачем он нужен - там, где библиотеки мало. Отличается тем, что ты пидор.
Ну да, очень удобно. Даже intellisence нет. Ща пытаюсь качаю крякнутый pycharm. Вообще быстро освоение идет, сейчас уже джанго развернул, потратил час отсилы на курение мануалов.
Какой вариант приемлимей, сверху или снизу? Сам codecademy говорит делать как снизу, но может это просто для наглядности новичкам.
def by_three(number):
....if (number % 3 == 0):
........result = cube(number)
....else:
........result = False
....return result
Это жабаскрипт быдлище.
А хуячить бесполезное промежуточное имя для результата - жаба быдлище.
Еще можно запихнуть тернарник в лямбду вместо дефа, тогда получится лисповое быдлище (хотя это весь питон, лол).
Вон у тебя вся функция из одной точки выхода.
В методе с кучей логики и побочных эффектов это было бы логичнее.
> В методе с кучей логики и побочных эффектов это было бы логичнее.
Мне кажется, что если и использовать, то везде. Единственный случай, когда я считаю оправданным использование return-а где-то в середине — вложенные циклы, но это зачастую повод задуматься о рефакторинге.
Пора изучать perl6. Он выходит в этом году и студенческая поделка питон отправится на свалку истории. Начинайте уже сейчас.
На perl написаны яндекс, мейл.ру reg.ru и многое другое.
Двачую. И не только на вакансию джуна.
Типа gui клиента sqlite? Есть sqlitebrowser и sqliteman.
Но я рекомендую использовать postgres под него есть отличный pgadmin3
Я использую модуль goto чтобы выходить из вложенных циклов. Или поднимаю исключение.
vim для ньюфагов с TUI. нормальные пацаны используют ed
Вообще есть http://microsoft.github.io/PTVS/
Вроде в visual studio community edition или как там её поддержка питон есть.
Эта хуйня конечно удобная, но обновляет completion db после каждого нового пакета, причем обновляет по 15-20 минут.
Звучит не очень круто.
Даны целые числа n и m (1<=n<=10^18, 2<=m<=10^5), необходимо найти остаток от деления n-го числа Фибоначчи на m
Попробую, за сервис спасибо, удобно.
Анон, есть задача запустить в прыщах интерпретатор хацкела (ghci) с помощью питона, перехватить полностью ввод и вывод ну и соответственно рулить этим делом, отправляя туда строки, получая результат. Как это вообще делать ? subprocess.Popen вешает IPyhon почти полностью.
Вангую он не вешает "почти полностью", а перехватывает весь io
google: python spawn interactive process
нет, я отвел в PIPE вывод, курсор моргает, я даже вводить (.terminate() например) что-то могу, но очень тормозит
proc = subprocess.Popen('ghci', stdin=subprocess.PIPE, stdout=subprocess.PIPE)
print(proc.communicate('some haskell command'))[0]
так я обычно сам всегда так делаю, питон тоже нормально запускается
Я уже работаю тестировщиком. Пайтон нужен для автоматизации. Кодакадеми в связке с видео по Selenium и документацией очень помог в том, чтобы сделать тестовое на джуниора автоматизатора.
Какие вопросы на собеседованиях к тестировщикам, где почитать что бы меня хоть стажером взяли, хочу сходить, есть тут вакансия в мухосранске моём
Тестирование dot com Романа Савина почитай для начала. Если с Украины, можешь записаться на курсы вебинаров от QATestLab. Они там бесплатные и дают практические и теоретические знания, но на работу туда я бы не советовал тебе идти.
Спасибо, надеюсь вакансии не закроют, пока я её буду книгу, благо всего 300 страниц.
За день осилю. Завтра схожу.
https://2ch.hk/pr/res/559015.html а давай перекатимся туда и будем по поводу этого общаться там, чтобы не засерать этот тред.
Чет не понял, что ты хочешь. На тебе доку https://docs.python.org/2/tutorial/modules.html
Понадобится __init__.py полюбому. Возможно, в главноем файле придется определить переменую __all__
Мне нужно, чтобы в папке с программой не лежало дохуя файлов, а только main.py и я не знаю, как это организовать. Если создаю в PyCharm новый Python Package с именем Figures и перенеся туда все свои файлы классов, то там создаётся __init__.py, но я не могу заимпортить из Figures свои файлы классов Figure, Triangle, Square и т.д. в main.py, который находится вне пакета.
В мамке.
Создаёшь папку Figures, забрасываешь туда классы и создаешь там же __init__.py.
Импортируешь как from Figures.[имя_класса] import *
Мамку.
Обычно ничего содержит. Можно вписать переменную __all__ или какой-нибудь код инициализации пакета.
> А что должен содержать файл __init__.py?
Может быть пустым. Наличие этого файла в каталоге говорит питону что это package и ты можешь. Почитай что такое package в доках или книжке какой.
В краце если у тебя каталогом ниже есть main.py ты можешь оттуда писать from packagedirname import modulefilename
Или если у тебя этот package лежит в site-packages или PYTHONPATH
Хуй знает. У меня ни в какую не хочет импортить или я неправильно вызываю методы из классов, которые находятся в модуле. (см. пик выше)
А, уже всё.
Уже понял. Если я ставлю точку перед импортом в чайлд классе, то это означает, что родительский класс находится в той же директории, верно?
Да, забыл сказать, что использую 3.5 питон.
> Эталон кода
> дрочить
Что у тебя с психикой, приятель? У тебя больной, искажённый взгляд на мир.
Это просто метафора которая должна показать его идеальность .
twisted
import re
def autocorrect(input):
return re.sub(r'(?i)\b(u|you+)\b', "your sister", input)
почитай про регулярные выражения
Не троллю, есть киви есть вэикс виджетс, я хз что взять можно
Я имел ввиду большой и сложный .
Если ты не использовал никакой платформозависимый код, то - да.
Тут как с жабой
Реально. На счет изоляции - зависит от масштабов. Если генерировать часто и много и хочешь максимум секурности - имеет смысл поднять lxc/docker и генерировать в них. А иначе можно чрутом обойтись, например. Или просто из-под отдельного юзера.
Фигура: Квадрат, площадь 25 кв.ед., длина стороны: 5 ед., цвет: красный.
Было бы интересно пообщаться с таким аноном в скайпе или в вк, например.
Извини , случайно запостил . Писал пока не разобрался с PEP , но разобрался что Twisted на 2 .
Я, если честно, вообще не очень понял, что ты там намудрил, зачем у тебя список треугольников в окружности и почему атрибут "радиус" — классовый, а не инстанса.
Я бы сделал так - http://ideone.com/qHJRLs (окружность аналогично).
Хотя, нужно бы делать прямоугольник и эллипс, а остальные будут их сабклассами.
Условие задачи:
Дано объекты-фигуры следующих видов: квадрат, треугольник, круг, трапеция. Каждую фигуру можно нарисовать, получить ее площадь и цвет. Также фигуры имеют уникальные методы, например: вернуть радиус, длину гипотенузы, длину стороны и т. д.
Нам необходимо сгенерировать случайный набор фигур, количество объектов в наборе также заранее неизвестно.
После генерации массива нужно вывести весь список объектов, которые у нас имеются, например:
Фигура: квадрат, площадь: 25 кв. ед., длина стороны: 5 ед., цвет: синий
Фигура: треугольник, площадь: 12,5 кв.ед., гипотенуза: 7.1 ед., цвет: желтый
Есть код на гитхабе мой, но сюда его постить не хочу, так как диванон по никнейму и, сам понимаешь. Поэтому могу скинуть в скайп, например.
Ну вот, например — http://ideone.com/yE2Lsk
Нужен ещё класс — создал, добавил его в список classes и готово.
Интересно. Я немного по-другому организовывал. У меня есть родительский класс Figure и из него наследуются уже фигуры. Потом вызываются методы из фигур, которые возвращают текст в массив и массив выводится. Вот, в общем, скрины. Пару фигур, остальные описаны по такому же принципу.
Ну то, что они наследуются — это норм, мне просто лень было так делать.
У меня претензии к следующему:
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".
пердон - говно, сажи
Размер не меньше, не слушай его, шрифт моноширинный надо юзать. Одинарные лучше по другой причине, шифт не надо жать.
Алсо, все у кого отступы не 4 пробела - гандоны.
Думаю плохо. Свободное общение, все такое.
Так он про шрифт говорил? Лол, я даже не подумал.
Но зато чекнул "".__sizeof__() и ''.__sizeof__() и подумал - вот же ебанутый.
А так у меня везде моноширинные, даже в браузере.
>И если бы ты поменял местами площадь и сторону в выводе текста, сразу бы заметил, что они не совпадают.
Совпадают, няша. Я вчера с этим ебался и поэтому вынес сторону в отдельную переменную, которая принимает значение и хранит в себе, после вызова метода area(), которая в свою очередь вызывает метод side_a(). Здесь я полностью согласен, что это полнейший пиздец.
Условие было в том, чтобы решить задачу с применением принципов ООП.
Вообще, я многого из твоих слов пока не понимаю, поэтому буду разбираться что и к чему. Спасибо тебе за помощь.
Кстати, не мог бы ты написать комментарии к своему коду? Мне было бы так легче разобраться.
Посмотрел еще раз твой код. Смотри, у нас в условии не сказано, что нужно делать так, чтобы потом можно было вызывать какие-то методы. Нужно сделать генератор рандомных фигур и только, но я согласен, что твой подход лучше и логичнее и не выглядит "нубским". Спасибо еще раз за возможность взглянуть на решение с другой стороны.
>Совпадают, няша.
Вот я поменял местами - http://ideone.com/luOyZk
У тебя при каждом расчёте площади задаётся новый размер стороны, и плошадь считается от этой новой стороны.
>Условие было в том, чтобы решить задачу с применением принципов ООП.
А я как раз хотел тебе посоветовать про ООП почитать :)
>>559473
Окей, напишу к вечеру
>>559518
>Нужно сделать генератор рандомных фигур и только,
Так в том и беда - ты не фигуры генерируешь, а текст. У тебя нет никаких фигур, у тебя есть по одному инстансу каждого класса, в котором ты меняешь параметр и генерируешь новую строчку текста. Это как нарисовать мелом на доске, сфотографировать, стереть и нарисовать новое. В каждый момент времени у тебя есть только 1 рисунок мелом, остальное - на фото (а тут в тексте).
>сфотографировать
Точнее не сфотографировать даже, а написать на бумаге описание его. Т.е. для получения этого рисунка обратно на доске нужно его заново рисовать по описанию (у тебя - снова создавать инстанс класс с параметрами, выдранными из текста, и хорошо ещё, если там будет достаточно информации).
>Так в том и беда - ты не фигуры генерируешь, а текст
Так в этом и было условие - вывести массив фигур с рандомными значениями. В условии не было сказано, что мы можем вызывать методы из классов отдельно. Или я неправильно понял условие?
Кажется, я начинаю понимать, но не могу сложить у себя образ в голове. Что посоветуешь конкретно почитать, чтобы пришло понимание сего процесса?
Даже сам автор молчит на это.
https://github.com/miguelgrinberg/flasky/issues/54
AttributeError: 'NoneType' object has no attribute 'encode'
hash = self.avatar_hash or hashlib.md5(self.email.encode('utf-8')).hexdigest()
Сам копайся в этом навозе.
perl6 опоздал лет на десять. К сожалению. Или к счастью.
[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
Гуголь внятных результатов не дал.
[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
Гуголь внятных результатов не дал.
Тут тебе тоже не дадут, если не вставишь код на какой-то pastebin, для начала.
почему-то решил, что весь /pr/ использует MakabaCode, сорян
http://pastebin.com/TRZ2QGUS - код
http://pastebin.com/ESJ2KgVD - трейсбек
Любите вы издеваться...
Окей, я нашел решение сам.
Проблема заключалась в том, что KeyboardInterrupt всё-таки убивал моего Manager'a. Тем не менее, трейсбек все еще не кажется мне очевидным.
Поясни за скиллы чтения трейсбека, как можно их прокачать до твоего уровня?
Никак. В питоне один из самых хуевых и неинформативных трейсбеков. Он просто дампит все к хуям, а ты там сам сортируй. Хуже только в жабе и сисярпе.
Например, я задаю вопрос: подрочить или не подрочить?
В ответ должно идти:
if randint(1, 2) == 1:
return "%всё, что идёт до слова "или""
else:
return "%всё, что идёт после слова "или""
Как вытягивать это самое "всё, что до или" или "всё, что после или" со строчки?
ты пидор
Заебись. А теперь как к этому прикрутить, чтобы на выходе еще добавляло рандомную фразу из нескольких: я думаю, конечно же, по-моему. И как сделать, чтобы не печатало вопросительный знак, как во втором варианте?
Ты забыл спросить как убрать пробел.
Что за чрут? Можно чуть больше комментов? Что делать на практике? Хочу чтобы юзер выбирал настройки в интерфейсе, после этого выполнялись баш скрипты. Когда файл сгенерится(10-30секунд) , он отдавался юзеру. Скрипт задействует обычные пакеты линукса.
Чому хуйню? Третий день подряд учу питон и только на такое способен. Исправь мой быдлокод.
Анон, ты, конечно, молодец. Но есть подозрение, что у тебя есть хороший шанс сделать небольшой рефакторинг. Например, убрать условный оператор if, потому как в нём нет особой необходимости. Возможно, нет необходимости вызывать функцию randint так много раз. В общем, подумай как твой код можно улучшить.
Потомушта у тебя две идентичных действия на джва разных условия. Смекаешь, ммм?
Да ладно тебе.
По мне, так лучше. Правда, я бы сначала выполнил все необходимые операции над строками, и только потом подставлял их в format, дабы было более наглядно. Но тут я тебе уже не советчик.
Теперь вот задумал написать приложение самостоятельно, на глаза попалось задание для рельсов, хочу сделать то же самое, только на джанге.
Собственно, полный текст на пастбине http://pastebin.com/YDUHjuN9
Вот в чем вопрос: с чего мне начать? Я не знаю с какой стороны за это взяться. Начинать с регистрации? Учитывая,
>Состав профиля: login, full name, birthday, email, address, city, state, country, zip, password и confirm password (все поля обязательны).
пилить собственную модель под пользователя?
Пилить модель внутри приложения или делать отдельное приложение?
Надеюсь на вашу помощь.
python на codecademy и django tutorial к которым приходим через шапку треда.
А ты что посоветуешь?
Документация хороша и всеобъемлюща, насколько мне известно, в джанго есть стандартная регистрация, но вот подойдет ли она под такие цели я не знаю.
Вещаю с дивана. На мой взгляд, тут есть два варианта:
1. Так как в django есть в наличии своя система аутентификации, ты можешь использовать ее.
2. Ты так же можешь запилить свою систему аутентификации. А вот сделать ее отдельным приложением или middleware, тут уж решай сам.
В любом случае, в первую очередь стоит почитать про систему аутентификации django.
Так и сделаю, буду пытаться разобраться в стандартной модели.
А правильно ли в принципе разрабатывать приложение с аутентификации?
Всё твоё задание основано на данных о пользователях. Не уверен, что у тебя есть другие варианты.
Еще вопросец: какую бд юзать? Использую PostgreSQL, но она в управлении замороченная, или все базы такие? Пока до нужной колонки доберешься с заходом от другого юзера - хозяина бд, уже забудешь, какую колонку удалить хотел.
Не понимаю о чём ты. Если использовать orm, то особой разницы какая БД вроде бы и нет.
Я имел в виду к утру. конечно же.
Вот я расписал всё подробно, как мог, изменив немного код. Надеюсь, будет полезно. http://ideone.com/xffM1P
А что почитать — не знаю, к сожалению. Я нкаких книг не читал, просто читал/писал код и анализировал происходящее. Ну и в документацию заглядываЛ, разумеется.
>>560090
В питоне нет перегрузки. Но она и не нужна в 99.9% случая, так как это необхоидмость статически типизированных языков же (да и те иногда к duck typing'у стремятся, вроде obj-c) без возможности иметь варьируемое количество аргументов. Для остальных исключений можешь-таки проверить тип (например, список или просто строка) или чего там тебе надо, и уже там две ветки сделать.
Хотя вот по поводу классов и обращения с ними выступления Raymond Hettinger'а рикаминдую.
>Я имел в виду к утру. конечно же.
Вот я расписал всё подробно, как мог, изменив немного код. Надеюсь, будет полезно. http://ideone.com/xffM1P
Огромное спасибо, Анон. Очень полезно.
Не, извиняй, и так имею предельное количество учеников.
diff = difflib.ndiff(old.readlines(),new.readlines())
на выходе получаю что-то вроде:
-asdfg
asdff
+qwert
+uiop
bnmcv
Как добавленные и удаленные строки вывести в отдельные листы, чтобы мне позже вывести их принтом по отдельности?
мимонепрограммист
Версии питончика одинаковые
>>560547
А ты смешливый
Я просто хотел поделиться идиотизмом ситуации. Ну его нахер анону еще код этого говна скидывывать
Очень сложно. В английский я могу, но это сильно затягивая прочтение и так пухленькой книжечки. Ну давай, анон. Помогай. С меня как всегда.
Скилл умения читать английские книжки в разы лучше знания питона вообще. Тем более, это не SICP.
Анон прав, читай на нагельском. Я вот тоже читаю на ангельском онли, хоть и со скрипом. Алсо, еще очень годно иметь под рукой англ толковый словарь, а не просто словарь русско английский.
id(c), id(e) в помощь
Но ведь если сложить x и y, то получиться 'ab' , так же как и t+r. Почему же тождество не правильное?
блин у них контент одинаковый, уборщик должен был положить их в одну и тоже ячейку помяти, и ссылки должны быть одинаковы.???
а то перловизмом попахивает.
мимокрок
При чём тут уборщик вообще? Попробуй с большими интами — больше работать не будет.
Почему обхекты с одинаковыми значения должны в одном месте в памяти лежать? А если я измению один из них, чего компьютеру делать? Копировать начинать?
бля, вроде так работает оптимизация у питона.
>А если я измению один из них, чего компьютеру делать? Копировать начинать?
ну вот у тебя один объект со значением 2,
ты создаешь еще один объект со значением 2,
Уборщик проходит по хешам, видит то что это значие уже лежит в памяти, и делает так что
объект ссылается на ту же область в памяти.
Ты решил изменить у второго объекта на 3.
Уборщик опять проходит по памяти, видит то что нету такой хуйни, и кладет в память значение 3, и дает объекту ссылку на него.
Потом ты у первого объекта ставишь значение 1.
Проходит уборщик, и видит что ссылок на 2 больше нету, и ебошит его из памяти... и в памяти больше нет "2".
Ну так оно должно работать если верить книгам с крысой на обложке.
Ты делаешь сравнение того, что лежит в переменных.
c is e
идет сравнение (в питоне это "==") x+y == t+r
что в итоге? Не равны. Значит False.
c is not e
идет сравнение, что x+y != t+r - True.
Так ты путаешь ссылки на один и тот же объект (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.
>и делает так что объект ссылается на ту же область в памяти.
Вот на пике хочет делает, а не хочет - не делает. Как так? Или я не то смотрю?
>Так ты путаешь ссылки на один и тот же объект (x = 10; y = x; z = x) и ссылки на объекты с одинаковыми значениями. Имея, например:
ок, это я понял.
Но в чем сакральный смысл, почему это работает для маленьких чисел(и маленьких переменных)?
>>561148
На твоем пике, для маленьких переменных почему то делает, для больших нет.
Вопрос почему это для маленьких переменых работает.
Есть ghost.py, но не знаю получится или нет. Всё-таки вся эта связь js <-> python отдаёт сырьём.
Ты это вообще к чему?
http://ideone.com/fmgoSZ
Я правильно сделал?
Можно ли так переопределить абстрактный метод в классе-наследнике?
>loyee(Person, object):
object тут указывать не обязательно, он итак уже указан в родительском классе.
Начал с Лутца, осилил страниц 400, на которых он только начинает описывать как сделать Hello World, подустал от темпа.
С английским всё норм, поэтому друг посоветовал automatetheboringstuff.com для старта, прочёл её, но сейчас в каком-то ступоре - куда дальше-то? Посоветуйте мб чего, куда шагать (кроме очевидных "нахуй"), куда смотреть?
С меня как всегда.
Учи php вся работа там.
>прочёл её
Молодец. А применить на практике? Только читать - мало. Попробуй написать свой калькулятор или блокнот или изучай какой-то фреймворк и пили веб-проекты свои со своими идеями.
Я в блокноте коряво иображаю, лол
MindMap
microsoft visio
" В соответствии с вариантом выделите базовый класс и постройте диаграмму классов с отношениями наследования, придумайте для каждого класса набор их свойств."
Есть четыре класса:
Персонал, кадровый служащий, инженер, административный персонал.
Базовым будет класс Персонал, остальные - наследники.
Базовом классе объявляем конструктор с следующими атрибутами:
1. ФИО
2. Возраст
3. Пол
4. Должность
5. Отдел
В классах-наследниках перезагружаем конструктор и добавляем уникальные атрибуты <-- я здесь обосрался,
не могу придумать атрибуты, помогите, плз
И, да, я знаю, что тупой.
Бля. Подумал, что это помощи ньюфагу тред.
Ну так-то есть от 1-го года опыта. Но работать с одним языком и по вечерам изучать другой - не слишком эффективно, на мой взгляд. Хочется быстро и сразу как обычно.
>кадровый служащий, инженер, административный персонал.
Сделай для каждой должности её обязанности, например.
Неужели так критично, что выбрать?
Пиши кадровику длину хуя, если баба, то можно отрицательную. Инженеру зп, чем ниже тем реалистичнееБ администраторам-кол-во квартир в нуорке.
во, спасибо
Всё, что ты перечислил, можно отнести к всем,т.е. к базовому классу.
Мне же нужны уникальные атрибуты(даже одного будет достаточно), такие, которые не будут повторяться
Или название отдела которым он управляет.
Логично было бы сделать связи, например у администратора список его подчиненных, а у инженера - администратор которому он подчиняется.
лол
административный персонал - это секретари, ассистенты и т.д.
Давай рассуждать вместе. Кто такие кадровики? Это люди работающие в кадровом отделе, ведущие учет всяких трудовых книжек а еще слыхавшие про трудовой кодекс. Что такого необычного в кадровиках, чем они так притягивают взгляд, почему они сияют и так выделяются среди серой массы прохожих пасмурным днем? Ну?
Да ладно тебе. А кадровики какие имеются ввиду? Я вот немного путаюсь. Я ходил полнедели на курсы кадровиков, и там было делопроизводство, давали всякие ебливые тестики, а еще ТК и опять делопроизводсто, и учили что всегда в суд бежать если с работодателем терки какие. Ну это в моем понимании и есть кадровики, сидят, строчат в трудовых стаж. А есть HRы. Они к относятся к кадровиками?
Плохо это. Клиент ругается, ночами заснуть не может. А только заснет, так ему сразу снятся сотнитыщ аккаунтов на одном ящике и съехавшая на 1 пиксель кнопка.
>в гугловских емейлах точка как бы и есть, и как бы ее и нет
А ты не мог бы подробней объяснить что это значит?
Погодь, это значит что? Это я могу свой к чужому ящику прилепить? Это такой ипсклойт местный чтоле?
a.non@gmail.com == an.on@gmail.com == ano.n@gmail.com == anon@gmail.com
Тобишь это не 4 разных ящика, а один. И письма отправленные на эти адреса будут приходить 1 пользователю.
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:
homerjsimpson@gmail.com = hom.er.j.sim.ps.on@gmail.com
homerjsimpson@gmail.com = HOMERJSIMPSON@gmail.com
homerjsimpson@gmail.com = Homer.J.Simpson@gmail.com
All these addresses belong to the same person. You can see this if you try to sign in with your username, but adding or removing a dot from it. You'll still go to your account.
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.
https://support.google.com/mail/answer/10313?hl=en
Ну так удаляй все точки при регистрации и проверке. И всего делов.
> и что делать со старыми аккаунтами
Ну сделай выборку всех аккаунтов в 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] найдутся, то решай что делать. удалять таких юзеров например
Блять, я теперь вместо того, чтобы искать ошибку в своем говнокоде, не могу перестать думать про твоего ебучего кадровика. В итоге, не выходит ни то, ни второе.
та норм еще, поживем)
dive into python же
Сам копайся в этом навозе. Б-г дал им нормальные™ gui фреймворки, нет, хочу жрать легаси-говно.
Не могу вот это сделать, не понимаю, как. Помогите, пожалуйста. Что ни вводил - неверный результат.
Спасибо большое. Я глупый какой-то.
Вы видите копию треда, сохраненную 6 ноября 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.