24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
>>444295 А ты что не предупредил что перекат запилил то?
Как называется то ли приложение для джанги то ли модуль, где не используется база данных? Я понимаю, что одна из главных фишек джанги - орм, но мне с ней проще будет на одном хостинге выложить простенький сайтец, который выдает обычную страницу со статикой.
Тут есть шарящие в Питоне или одни стремящиеся вроде меня?
Есть вебчат чужой и к нему апи. Я делаю запрос через вебсокет, осылаю json. Получаю json массив-словарь хз что это за говно в ответ. Собственно как мне отобрасить конкретно один столбик из всех пишедших данных? Например ({"type": "a", "data": {"a1": 1, "a2": "2"}}) И мне нужно print'ить например только а2 столбик со значением, а не все говно. Там массив json вроде приходит в ответ.
>>444295 Я тот хуй с Бэйсиком, которого обоссали все. Спасибо анон за библиотеку kivi. Тоже вот решил буду учить python. По традиции начну с графических возможностей
Удавы, есть такая проблема. Хожу на курсы питона, там учат по 2.7 версии, дома у меня убунта, где вшитый питон 2.7, но IDLE там версии 3.4. Суть в том, что мне больше нравится писать код в IDLE, а не в черненьком терминале, но синтаксис таки там отличается, да и препод шлет меня нахуй с моим кодом на 3.4. Как мне сделать в убунте IDLE на 2.7 (то есть нахуй удалить 3.4 вообще с системы)?
for line in open('file.xlsx'): print(line, end='')
for line in open('file.xlsx'): File "C:\Python34\lib\encodings\cp1251.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 2073: character maps to <undefined>
Это вообще адекватно, а когда что-то более сложное будет, мне тоже нужно будет таких приколов ждать? Стоит ли дальше этот говноперевод читать или со среднеанглийсим осиливать пятое издание в оригинале? ну пиздец вообще, я же новичек, а тут такое
Не могу понять как импортировать модули (файлы .py) из рандомной директории на компе? Не могу понять как правильно прописать путь. Ubuntu. Подскажите, что-ли, надоело тупить.
https://gist.github.com/chrismedrela/82cbda8d2a78a280a129 Я просто охуел. Хотел к джангистам пытаться пробиться. Но если там вот такие, то хер меня возьмут. Что я напишу? Вот, 6-7 месяцев назад заинтересовался питоном, до этого байтоебил на С++. Стал программить разные штуки. Показать особо нечего. Недельки три сижу вечерами за джанго, изучаю багтрекер, что там можно пофикстить, но что-то херово выходит пока что.
Зато очень хочу заняться реальными задачами, помочь коммьюнити и получить опыт. Такие дела вот.
>>444979 Да че ты боишься инглишскую литературу? Её и поприятней читать, имхо, чем парашкинские переводики. Ниче там сложного нету, чай не с ниграми батлить ирл.
>>444979 Читай официальный туториал, wikibook, потом документацию по интересующим библиотекам и проекты с хорошо оформленным кодом http://github.com/mitsuhiko/jinja2 например. Говнокнижки не нужны.
С джанго работаю уже год где-то, но решил посмотреть видеокурс. Подумал что, возможно, заполню какие-то пробелы.
После просмотра первой серии я немного разозлился когда он назвал проект firstapp. Во время просмотра второй серии я начал дико бугуртить от его уроков английского для продвинутых: - Команда startapp, она означает начать аппликейшн, аппликейшн т.е. начать приложение, приложение в приложении. - Артикэл. Артикэл - это значит статья.
Но досмотреть третью серии мне не хватило душевных сил после его охуительных историй о видах связей в реляционных базах данных:
1. Один ко многим 2. Один к одному 3. Многие к одному
Охуительно, за-еб-ись. Что побуждает людей с явной нехваткой знаний записывать какие-то там, блядь, курсы?
>>445070 И я умалчиваю о том что он учил создавать проект прям в директории с виртуальной средой, о том что django-admin запускал исключительно переходя в директорию с этим файлом. Адище, а не курс.
>>445114 Ну это все таки серьезный бизнес. Сунуться то тебе ничто не мешает, но вряд ли возьмут. Но попытаться то стоит! Иначе как ты узнаешь взяли бы тебя или нет?
Всем добра, аноны. Решил вкатиться вот с каким вопросом- я ньюфаг, учу этот язык около недели, пробую писать простые программы и прочее. Но суть в том, что начиная к новому занятию, я постоянно сталкиваюсь с непонятными терминами . Вообще, каждый переход к новому разделу выглядит так, как будто я пропустил пару уроков. Где можно найти четко-последовательное погружение в язык? Я что то пишу, но нихуя не понимаю что, пусть даже это работает .
>>445140 Ну смотри. Учу я 1 урок, там идет разбор простой программы Затем идет урок частей if/else , и я не понимаю что там хотят сказать. И что к чему.
>>445155 а я вот наоборот заебуюсь читать кучу воды читаю лутца. Там вообще первые 50 страниц язык расхваливают, при этом каждые 10 возвращаясь к одному и тому же. Потом идут НЕДОСТАТКИ размером в 2 предложения и еще 50 страниц о том какой он охуенный.
Читал разные самоучители по питону, самый лучший для начинающих: Майкл Доусон. Программируем на python. Есть и английская и русская версия, нету столько воды как у Лутца и в остальных учебниках. Я только когда Доусона читать стал, разобрался с пользовательскими функциями, до этого никак не мог понять. По мне так 10/10 для изучения питона.
Аноны, подскажите лучше что-нибудь типа "Питон для конченых даунов". У меня проблема в том, что я, вроде, читаю Лутца и понимаю что вообще происходит, но не знаю в каких случаях те или иные моменты синтаксиса применяются, и как. Ну и еще например. Дочитал я до определенного момента книжку. Лезу в интернеты, пытаюсь посмотреть как это все реализуется на практике. А там какой-то ебаный в душу пиздец. Гугл написан на питоне, говорили они. Заебись. Т.е. нужно, чтобы после каждой главы был некий сборник упражнений. Причем, желательно, не абстрактных. В идеале, например, прочитал про if/else - пиши, сука, текстовый квест. Бывает что-нибудь такое ? Кодакадеми как-то не ОСНЕ.
Посоны, давайте запилим такую приложуху. Значит она автоматически регистрирует 10 аккаунтов в гугле и создает некую логическую прослойку между пользователем и 10ю драйвами. Профит в том что можно обманывать гугл на шекели и бесплатно пользоваться большим облачным хранилищем, данные в котором будут распределяться между кучей гугловский драйвов, а?
Хочу сделать реал-тайм обновление сообщений на форуме. Архитектура следующая: все приложение -- обычная синхронная джанга, но при постинге нового сообщения джанга пишет в redis pub/sub. Реал-тайм будет за счет gevent'а: при загрузке страницы браузер отправляет long polling запрос к джевенту, джевент спаунит тред, в котором слушает канал redis'а, и если за время < timeout в канал редиса приходят данные (пост на форуме), джевент отправляет эти данные в браузер, браузер оботражает новый пост и снова делает запрос к джевенту. Вопрос: как не проебать посты, которые будут записаны в период между отправкой запросами к джевенту?
Учу Питон, освоился с синтаксисом. Реально вообще вкатится джуном в питон? У меня напряг от отсутствия вакансий. От 1 года опыта, блеать Или для того чтобы вкатиться надо имаджборду, магазин написать и в опенсурсе полгода ковыряться? Что-то не вижу где опыт взять. Может я соснул и надо было начинать с похапе? Там хоть джунов набирают.
>>445812 >Может я соснул и надо было начинать с похапе? Там хоть джунов набирают. Так и поступи. У меня друган устроился ПХП макакой, но через два года перекатился в Пистон, в той е конторе.
>>445886 То-есть ты типа вынес i за пределы функции. Я просто примерно так же пробовал, но у меня постоянно была ошибка, что неизвесное значение i. А если делать i=0 внутри функции то +=1 не срабатывает т.к постоянно i=0.
Ребят, я тимлид-джавист с 6 летним стажем, выучил короче питон по фасту посмотрел на джанго. Язык и тот же джанго очень легки для изучения я осилил язык по времени за часа 3-4. Теперь не понимаю, зачем мне питон? Что мне с ним делать? Кроме вульгарного простейшего CRUD/веба под который и заточен джанго.
>>444993 >надоело тупить Так не тупи. Ты хочешь уметь сразу не изучая. Я когда обмазываюсь чем то новым наоборот получаю удовольствие от процесса изучения. По вопросу луркай - структура файловой системы в UNIX системах и процедура импорта модулей. Если мне не изменяет память, интерпретатор ищет указанный после импорта модуль в директорях обозначенных в переменных окружения и всех вложенных в них с модулем __init__
import random openChtoTo = random.randint(0,9) print("Подсказка загаданное число -", str(openChtoTo)) user_input = int(input("Угадайте число от 0 до 9: ")) if user_input == openChtoTo: ----print("Автор поста пидор!") else: ----print("Неправильно, хуй!") input("\nНажмите ввод для выхода...")
>>446343 вообще, капча с циферками это оцтой. Хочу запилить какую-нить логическую задачку простенькую. Типа посчитайте ослов на картинке. Бот хуй так сможет. А для человека это легче, чем цифры с капчи прочитать, особенно с такой как у яндекса
Вот я когда тестовый сервер джанги запускаю, то могу к нему обращаться по 127.0.0.1:8000. Я этот порт 8000 в роутере прописываю на нужный айпишник, но не могу получить сайт с остальных локальным девайсов. А если я дажнгосерверу говорю слушать все (то есть пишу python manage.py runserver 0.0.0.0:8000) то все работает. Но мне не нравится это 0.0.0.0. Можно как-то иначе сделать? Алсо такой же вопрос можно отнести к bittorent sync на ARm архитектуре - у него тоже веб-интерфейс.
>>446660 >fd.close() — скучно, в питоне, работать сборщиком мусора. Лол, веселе подхватить рассеяное внимание и наступать на грабли в нормальных языках. Чому то я чую, что если начинающий пограмист выботает пистон поглубже, то он уже не сможет в нормальные языки. Даже боль и киберунижения его уже не спасут.
Суп, программач. Не знаю куда написать, спрошу у вас. Есть одна программка на Qt на несколько тысяч строк, нужно переписать ее на питон. Так вот кто-нибудь за бабки делает такое?
Привет, аноним. Есть строчечка в файлу юрлов url(r'^profile/(?P<user_id>\d+)/$', 'object.views.object_list', {'objects': Object.objects.filter(object_author__id = user_id) }), которая работает с обобщенным представлением. Естественно, что на не работает, но есть ли способ передавать user_id не как отдельный аргумент представления?
>>447350 естественно оно не работает, потому что ты пишешь логику выборки из базы там где кроме регекспов и на что они матчатся больше ничего не должно быть.
Посоны, в шаблонах джанги как нибудь можно по-простому запилить чередование в {% for p in prices %}? Чтобы чередовать классы у строк таблицы. Вижу что можно сделать forloop.counter, но это надо еще и if вставлять. Может есть способ получше?
Помогите разобраться с кодировками и юникодом. Прочитал статью на хабре, посмотрел еще несколько статей и везде результат выполнения их примеров отличается от моего.
Посоны. нид юр хелп. Работаю в образовательной организации. Над запилить простенький сайт инфа об организации, публикация новостей, гостевая книга и т.п., как обычно вобщем Правильно ли я поступлю в плане релевантности в будущем моих знаний для поиска работы если использую для этого python 2.7 django 1.5.5 и mysql? Бля как же мне стыдно за мои дибильные вопросы, но больше спросить не у кого. На дваче все мои друзья.
>>448743 Алсо, если тебе важнее результат, чем обучение, то посмотри в сторону готовых решений. Как минимум к джанге можно прикрепить уже готовый дизайн. Гугли free css. Как максимум, можно использовать всякие WordPress и подобные.
>>448759 Ну смотри, джанга вроде как используется много где, поэтому логичнее ее изучать. Если пройдешь официальный туториал, то считай что ты уже сможешь запилить публикацию новостей и гостевую книгу.
Нид хелп. Только начал учиться питону по книге Лутца и столкнулся с проблемой. По задаче нужно было создать текстовый файл и прописать в нем некоторые строки, дать название с расширением .py. После этого открыть через системную командную строку и прописать там python script1.py(название моего файла). Трабла в том, выскакивает ошибка: python: can't open file 'script1.py': [Errno 2] No such file or directory Гуглил, но ничего не помогло. Надежда на вас.
>>448938 вместо script1.py просто прописать C:\Program Files\Python 3.5\script1.py ? Или еще какую-то функцию прописать перед путем файла? Пробовал, но и так не нашел файл, та же ошибка.
Сначала ты ограничиваешь входные данные пятиэлементными массивами, потом какой-то list.remove, потом непонятное шаманство с лямбдой, res какой-то.
What the fuck am I reading?
>>448818 Нельзя по условию, но после решения даётся доп. задача "на подумать" -- как быть, если можно ещё и делить. Здесь главное не забыть, что элемент массива может быть нулём.
Ubuntu Server 12.04.5 Стоял Python 3.2 из стандартных репов. Потребовался 3.4 Был установлен. Запускается через python34 Однако, pip3 привязан к python32 (хотя он уже и не нужен) python34 без пакетов. Как навести порядок? Желательно не использовать всякие virtualenv.
Суп, пистонисты. Нюфаку нужна помощь. http://pastebin.com/ZNqvj3ej Куски кода из фласк-аппа. Вроде как все банально, но по прописанным роутингам выдает 404. В чем проблема?
Подскажите ньюфагу. Пишу скрипт, в котором должны быть модули. Мол кидаешь в папку модулей файлы, а скрипт при запуске их загружает и вызывает потом функции из них. Так вот, есть ли в питоне что-то для этого? Пока у меня идея такая: Листать папку модулей, грузить их через execfile() а потом вызывать функции из них через module_имяфайла_func() Так это в питоне делается?
>>449595 А если это как API и те, кто будут им пользоваться, могут сами кидать туда файлы свои. Как мне сделать так, чтоб я мог эти файлы загрузить и потом обращаться в функции из них. Вот в node.js хорошо сделали, там делаешь modules.push(require('filename')) и потом modules[0].init(); modules[1].init(); так ещё есть и global в котром можно между модулями расшиаривать переменные. Как это сделать в питоне?
>>449608 Вот execfile() что-то отдалённое подходящее, но я даже не смогу в документации написать, что "вам нужно создать функцию init()" придётся писать "вам надо создать функцию init_56543754643 и чтоб это имя случайно не совпало с именем другого модуля, который когда-нибудь будет написан и добавлен в скрипт".
>>449613 Во всех файлах объявляешь объект модуля, делаешь функцию, которая возвращает такой объект дальше псевдокод modules = new list for f in files { execfile(f); modules.push(get_module_object); }
>>449540 Recite it in your sleep: range is not for simple, obvious iterations over sequences. For those used to numerically defined for loops, range feels like home, but using it for iteration over sequences is bug-prone and less clear than using the standard for construct directly on an iterable.
>>449576 >>449620 >>449538 ну, это конечно тупо так писать range(len(array)) но это не сильно замедлит ваш скрипт. Питон вообще не про скорость. По тестам это один из самых медленных языков. Питон про простоту и удобство.
Сам антуаны, нужно написать небольшой скрипт для научки. Есть текстовый файл, в нем 5 столбцов чисел, 4 и 5 столбец нужно умножить на число (3 например). Сказали, что надо делать через split и float, но я никак не вьебу как это писать. Сам питон никогда не учил, да и вообще проганьем особо не занимался, поэтому рассчитываю на вашу помощь.
>>449854 В новый файл. Про чтение и создание файла я знаю, можно это не расписывать. Сделать надо именно на питоне. Знаю что просто, просто времени и желани нихуя нет.
>>449924 Ну сотри корочи. Вначале ебашили действия подряд. Потом такие: "а неплохо было бы этот кусок повторить". Запилим переходы! И запилили. И там короче заебись теперь можно даже пропускать куски! А потом ты такой хули я перехожу А ОН СУКА ОБРАТНО НЕ ВОЗВРАЩАЕТСЯ! Ну и запилили вызовы и возвраты. И теперь у нас сука ПРОЦЕДУРНОЕ ПРОГРАММИРОВАНИЕ™. А потом ты такой бля а хули я перехожу А ОН МНЕ СТЕК ВЫЗОВОВ РАСПИДОРАШИВАЕТ?! Ну все такие ПЕРЕХОД - это зло. И такие Бёмом и Якопини пояснили их криком "ПЕРЕХОД НИНУЖЕН!11" Ну его такие выпиливают заменяя СТРУКТУРАМИ УПРАВЛЕНИЯ™. Структурное программирование у нас же! Ок. Потом ты такой а хули я глобальную переменную изменяю и потом переёбываюсь с ней по всей программе?! ИНКАПСУЛЯЦИЯ!!11 И вот уже Вирт пилит модульное программирование. Модульное программирование канеш хорошо но тебе же всё мало! Тебе надо делать массивы модулей и структуры с полями-модулями! Ну ты такой экспортируешь тип структуры из модуля и кукарекаешь на весь Bell Labs: "АБСТРАКЦИЯ!!11" как финальный аккорд ПРОГРАММИРОВАНИЯ С АБСТРАКТНЫМИ ТИПАМИ ДАННЫХ! Все почти хорошо но ты замечаешь что приходится придрачивать поля-модули к модулю внедряя в поле-модуль специфичныи функции того модуля! Ну ты такой СДЕЛАЮ НА МАКРОСАХ ЗА 20 МИНУТ!1 Сделал. А потом заёбываешься перекомпилять поля-модули под каждый чих модуля и агрясь на размер кода зопиливаешь те самые функции в отдельную структуру и переопределяя их в рантайме становишься королём ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ПАРАДИГМЫ со страусиной типизацией!111 Вот так ёпана
>>449924 http://ideone.com/0WYjHK Чувак, ты не представляешь. Несколько лет назад, когда я только начинал учить питон я сделал тетрис на ткинтере. Код ужасен, но он работает.
Алсо, поворот фигуры в тетрисе это ведь транспонирование матрицы 3x3 в которой она находится. То есть чтобы поворачивать фигуры мне нужна только одна функция, которая каким-то образом транспонирует матрицу, игнорируя уже занятые клетки, да?
>>450079 Traceback (most recent call last): File "C:\Python27\Lalala.py", line 1, in <module> from tkinter import * ImportError: No module named tkinter Если что у меня 2.7.8 версия.
Посоны, а можно как-то к уже запикленному списку просто добавлять новые данные, не вынимая его всего с жесткого диска? Или придется записывать в обычный файл?
Посоны, я тут у мамки решил погромистом стать. Собственно вот кода наебашил. Учу уже 4 день, до этого программированием вообще не занимался. Рейтаните чтоль. Нормальный код?
>>450330 Нет, не нормальный. У тебя логика смешана с выводом. Плюс ты не соблюдаешь PEP8, например после импортов должны быть отступы. Во вторых имена переменных просто пизец. Всегда пиши их на английском, тупой ты быдлостудент. В в третьих вынеси количество, 'da', 'net', в константы. Никто не любит хардкод в коде.
>>450330 Избыточность с kol и pop, ведь общеизвестно, что pop = 5 - kol. Нет проверки на уже названые буквы и другие символы.
>>450382 У тебя максимальное кол-во попыток жеско зашито в цикле, пока прога мальнькая на это похуй, но потом в строке 100500 модуля MyProga.py магические числа тебя доебут. Сразу после Words(это всратое WORDS - нипиши так больше! понил?) введи переменую MaxCountOfTry = 5 , и в цикле ее используй для сравнения.
>>450480 Я не знаю питона Поэтому опишу просто алгоритм тебе нужно считать файл у тебя он считывается в массив lines
вот это st=lines.split() lines.append(float(st[2])) lines.append(float(st[3] непонятно что делает и скорее всего нинужно
дальше ты правильно проходишься по строкам, вместо lines[n] внутри цикла можно использовать line, у тебя ведь for n, line in enumerate(lines)
внутри цикла тебе нужно разбить строку на слова, здесь подойдет line.split() скорее всего после этого те слова, которые тебе нужны ты конвертируешь в числа умножаешь и тд. И опять склеиваешь в строчку нового файла. Типа output_line = "" + chislo1 * 3 + " " + ... и сохраняешь в выходной массив output_lines[n] = output_line
>>450562 Лойс. Осталось только придумать что он будет делать. >>450518 Это какие? Вроде там написано ORM и туды-сюды. В примере тоже схемы создаются какие-то.
Планирую устроиться веб-макакой на питоне. Естественно, чтобы не предстать хуем простым перед работодателем, нужно иметь какой-нибудь свой проектик. Так вот, какой стек технологий использовать, чтобы заказчики увидели и подумали "этот парень нам нужен"?
>>450614 Я не совсем нулевой, дружище, про енв в курсе. Почему джанго, а не фласк, например, или какие-нибудь модные асинхронные фреймворки? Что из фронта?
>>450615 Django полноценный фреймворк, в то время, как flask - обертка над имплементацией wsgi. Я особо не в теме, что используется сейчас в индустрии, но для фронтенда помимо css и html посоветовал бы осваивать angular.js и какой нибудь синтаксический сахарок типа jquery и underscore. Плюс утилиты для разрешения зависимостей и сборки фронтенда - bower и grunt
>>450650 Ублюдочных подчеркиваний и маленьких букв не хватает?
Вообще всегда пишу паскаль кейсом с префиксам(их всего два, лол) для всякой динамопараши. Я не ебу почему в пайтоне модули/объекты/методы названы как говно с кучей нечитаемых символов.
>>450829 А схуяли они разные, если есть расово верный джява-кемелкейс? YobaClass yobaInstance Скриптодаунов-унтерменшей нужно приучать к хорошему стилю. мимо
>>450822 > паскаль кейсом > динамопараши Ну и быдло. Подчёркивания интуитивно выглядят приятнее, ибо больше похожи на пробелы в обычном тексте. Хотя это всё на вкус и цвет, но главное, что так принято™ и нехуй выделываться. Не зря pep8 придумали, специально чтобы отсеивать даунов вроде тебя.
>>450948 > Подчёркивания интуитивно выглядят приятнее, ибо больше похожи на пробелы в обычном тексте. Пиздец. Всё ясно с тобой. > Хотя это всё на вкус и цвет, но главное, что так принято™ и нехуй выделываться. Не зря pep8 придумали, специально чтобы отсеивать даунов вроде тебя. Ни в одном нормальном статическом языке подчеркивания в именах не используются
>>450954 Что тебе ясно, примат? По делу есть что сказать? Как будто у камелкейса есть "причина" появления окромя той, что кто-то так решил вдруг писать.
Пытался решать задачку с хацкерранка. https://www.hackerrank.com/challenges/polygon Она находится в группе "Теория графов", но я пытался решать её геометрически. В итоге на больших массивах точек/на больших полигонах она сказочно тормозит. А решение должно достигаться быстрее, чем за 10 секунд.
Как вообще можно оптимизировать решение? И как решить её методами теории графов?
>>444295 Меня сегодня пистон доебал. Два часа искал охуительную багу - разрыв класса из-за нехватки 4х ебаных пробелов на пустой строчке между методами. Ублюдочный интерпритатор прост ололокал "нет таких методов у класса", в левом месте, а до него нужно было еще добраться через три жопы для воспроизведения. На вид нормальный класс, если пробелы не светить. Гвидомакаке морду надо бить за отсутствие скобочек. Пидорас, блядь.
>>449924 Снова я, аноны. Показал я преподу код, сказала, что нужно допилить еше кое-что. http://ideone.com/8InQt6 Нужно: чтобы выводил на экран русские надписи, модальное окно допилить тоже русские надписи сделать я вообще хз где оно, и заставить код считать строчки в тетрисе где очки, запилить все фигуры а не только левые и сделать тестовый режим. Анончики спасайте экзамен утром.
>>451492 Что такое тестовый режим? И вообще какого фига так много изменений на один день то? Вангую что тебя спалили что не сам сделал и завтра накажут.
Очень хочу научиться чему-то интеллектуальному, что будет приносить мне небольшой доход. Подойдет ли в данном случае питон? 19 лет кун, готов взяться за учебники математики, если это позволит мне стать финансово независимым.
>>451671 делай сайты визитки, бери деньги за дополнение/изменение информации и содержание домена 20-40 штук и будет на что хорошие подарки покупать в течении всего года минимум
>>451679 То есть ты советуешь впилиться в верстку? Но ведь это макакинг без ума, насколько я понимаю. >будет на что хорошие подарки покупать в течении всего года минимум Не понял последнее предложение.
Парни в общем у меня хуйня какая-то. Нужно пройтись по дереву в глубину. Допустим на примере: питончик идет 0>1>3(здесь он не пиздует на нуль, потому что прошелся по нему и идет на двойку)>2>4>5. Кароче нихуя не хочет пройтись по нему правильно. Трабл в том, чтобы не было рекурсии типа 0>1>0>1 я решил добавлять переменные и запоминать. Типа если проходил по этой цифре, то меняет параметр с false на true и не бегает по ней. Я ебал это дерево. Уже думал делать типа list с тройкой, но блядские нули меня подъебали там вообще ничего не происходит. Кароче чувствую себя дебилом. Как обойти дерево, чтобы чотко было? Задержался часов на восемь на сон, так что не ругайте за слог. Могу объяснить что не понятно.
>>451708 Да-да. Именно в нем была ошибка. Как лох ковырял полторы строки пару часов и по разным сайтам искал примеры. Сейчас буду думать как чотко выписать все варианты: 0130, 0136, 0100 итд. Вообще очень эстетичный язык. Мне нравится.
Аноны, пилю кулстори. Я все проебал в своей жизни, мне уже 26 лет: ненавистная работа, ненужная вышка, уже почти семья. В свободное время стал ковырять html, css и понял, что мне нравится писать инструкции, которые будет выполнять пекарня. Покурил статьи в интернетах, сделал вывод, что python один из простых ЯП для обучения программированию. Вот только мой усохший мозг настолько ограничен, что я не могу понять, какие задачи решает программист, что мне нужно знать, чтобы хотя бы на крошку хлеба я смог заработать на одеске, наработать там немного опыта и пытаться идти в конторку. Что должен знать питонист, чтобы у него получалось немного заработать?
>>451561 Можно и нужно писать код, который будет работать и во 2 и в 3 питоне. Если брать 2.7, то он понимает многое из того, что добавили в 3. Используй только "новые" классы, используй __future__ в конце концов.
>>451733 При такой постановке вопроса — django. Если в конторку — то учить то, что используется в конторке. Мне вот например MySQL очень нужен здесь, а django вообще не нужен, хватает web.py слава Аарону
Привет. Я пробовал задавать похожий вопрос в помощи, но он утонул в говне. В свободное время я сейчас занимаюсь проектированием наколенного сервиса. Пока на локальной машине, но потом планирую выносить это все в DO с админкой на Джанге, выставленной наружу (для авторизованного пользователя офк). Я не буду сейчас затрагивать проблемы безопасности и как не выставить монгу или редис голой жопой наружу, так как до этого еще далеко. Меня больше беспокоит проектирование.
Проектик я пишу на Питоне, где использую Монгу, Редис, РэббитЭМКУ и разные обертки на API'шками. Как вы понимаете, аноны, при первом подходе я потонул в получившемся говнокоде общения этих сучностей. Поэтому я спрашиваю совета, что вообще можно читнуть и как организовывать архитектуру общения? Я так понимаю, что нужно копать в сторону микросервисов. Мне не нужна полная изолированность каждого, скорее просто ясный и понятный протокол общения.
Буду признателен за любые книжки, статьи, рекомендации.
>>451724 дело в том, что вторая ветка питона вполне себе юзабельна и имеет богатую экосистему, которая еще долгое время будет портироваться под третью версию языка. Практически все линуксовые дистрибутивы в качестве дефолтной версии используют именно второй питон, джанго проекты тоже на нем пишутся. Поэтому, можно комфортно жить и использовать бэкпорты из третьего питона при помощи future
>>451872 Если есть начальные знания по программированию, то да. Если их нет, то абсолютный рандом.
>>451875 Я бы попытался пролезть в контору, где это всё используется. Самому пытаться на локальной машине играться с такими вещами крайне неэффективно.
>>451923 грубо говоря, кроулер с логикой. Я не утверждаю, что это можно сделать __только__ так, нет. Но при желании и более-менее грамотной организации это будет очень удобно масштабировать. Да и поддерживать тоже. Сейчас у меня получается говнокод, требующий постоянных пинков.
>>451929 >Я бы попытался пролезть в контору, где это всё используется Да, об этом варианте я думаю сильнее всего. Самому сложно копать. > Самому пытаться на локальной машине играться с такими вещами крайне неэффективно. Вопрос ведь не в эффективности. Да и машинки можно взять в облаке.
>>451960 Но ведь вопрос изначально был не в этом. Я хочу использовать эти балалайки, так как могу представить себе другую бизнес-логику, которой потребуется масштабируемость (и, следовательно, не такая примитивная архитектура).
Я хочу использовать best practices. Как мне показалось, микросервисы помогают решать вопросы ясной архитектуры. Поэтому я попытался спросить здесь, есть ли что хорошее по теме и правильно ли я понимаю вопрос (а если нет, то в какую сторону копать).
>>451875 >Я так понимаю, что нужно копать в сторону микросервисов. Мне не нужна полная изолированность каждого, скорее просто ясный и понятный протокол общения. Хм, а разве микросервисы не являются примером полной изоляции частей приложения? Я о них немного знаю, может быть неправ.
Я бы начал все-таки с изолирования частей приложения в модули, вынесения интерфейсов и dependency inversion. Почему так? Во-первых, о таком подходе рассказано и написано очень много, можно найти какую-нибудь информацию о паттернах в питоне и наворовать оттуда идей. Во-вторых, легко будет заложить гибкость там, где ожидаются новые требования. В-третьих, "ясный и понятный протокол общения" - это ведь тоже, в свою очередь, непростая задача проектирования. Возможно, другой взляд на проблему, но вряд ли с меньшей сложностью.
Каков твой уровень? Ты изучал паттерны проектирования по банде четырех? Рефакторинг Фаулера? Принципы SOLID? Скучные вещи, тем не менее, они описывают конвенциальный подход и те самые best practices.
>В-третьих, "ясный и понятный протокол общения" - это ведь тоже, в свою очередь, непростая задача проектирования Но у меня достаточно простое приложение. Модули между собой общаются на уровне "дай-возьми". Это прекрасно укладывается в REST.
>Каков твой уровень? Ты изучал паттерны проектирования по банде четырех? Рефакторинг Фаулера? Принципы SOLID? Скучные вещи, тем не менее, они описывают конвенциальный подход и те самые best practices. Специально я их не читал. Знаком на уровне "это фабрика, а это прокси", то есть неглубоко. Но не уверен, что это релевантно моей теме. Особенно рефакторинг. Про SOLID погуглю, спасибо. Еще про dependency injection. Тоже термин не знакомый для меня.
Сегодня нагуглил статью Фаулера по микросервисам, теперь читаю.
>>452088 >Модули между собой общаются на уровне "дай-возьми". Если у тебя есть четыре модуля, и каждый обращается к трем другим, да еще и в разные места, то получается довольно увесистый граф связей. Таки правда легко запутаться. Типичное решение - порвать все связи, свести знания модулей о внешнем мире к минимуму. И пусть будет пятый модуль-диспетчер, который будет обращаться по отдельности к четырем, интегрировать их усилия во что-то ценное. Тогда мешанина из сообщений превратится в серию обращений за данными и последующей их обработке - и все это в пределах одного файла. Опять же, это все очень абстрактно, и мне трудно сказать что-то конкретное. Возможно, серия видюшек от uncle Bob про SOLID, где он часами в разных костюмах загоняет истории про архитектуру приложений, поможет тебе проникнуться этой идеей.
Знаете с чего мне рвёт пердак? Это что питон всюду используется, причем, на каждом сервере стоит 2.6 версия. Ну что за пиздец. Как это говно могло стать таким популярным? Ладно перл, но это лестничное говно...
>>452132 Теперь создай два класса: A и B, В унаследуй от A. В классе А создай конструктор одними параметрами, в классе B создай конструктор, который вызывает конструктор класса А и передает параметры. А мы посмотрим как удобен питон для таких простейших действий. Версия питона 2.6, которая стоит на всех серверах со штабильностью.
>>451986 В современном мире сначала проверяют бизнес-идею а затем уже пишут что то серьезное. Какой смысл распылять силы и тратить время на мертворожденный продукт
>>452139 Но в питоне не вызывают напрямую коструктор базового класса. Есть функция super она и инициализирует объект вызывая конструктор каждого из класов цепочки MRO. Для языков с множественным наследованием это самое элегантное решение
Слушай, нахуя ты пытаешься засрать тред своим баттхертом? Вот тщетно же твоё бытие. Не нравится питон - совершенствуй то что нравится, займись полезными делами.
Катаны, мне кажется что эти все книги хуйня. Как можно учить прогу без примеров? Мне кажется единственно годным сайтом для изучения проги был javarush там сразу теория и задачи. Ты сам что-то пишешь. А толку от простого чтения? Есть что-то подобное для питона? Чтоб теория совмещалась с задачами и чтобы был ответ на эти задачи. Помоги стать кулхацкером.
>>452353 Если знаешь хотя бы какой-то ЯП, то книгу по другому ЯП можно прочитать за выходные, чтобы в целом понять, что в этом ЯП есть, чего нет итд итп. Дальше уже начинаешь пытаться кодить и решать конкретную задачу. Если с нуля то хз — нужен учебник какой-то, я учился по книге Б.Я. Мартузана "Подружись со мной, компьютер" году в 1992.
>>452359 они же платные, 200 у.е. в месяц за эти деньги можно 1на1 с репетитором заниматься. >>452376 не знаю, пришёл с факью, там сказано учить питон вот и пробую
Начал читать лутца, и это пиздец. Нудно, скучно, хочется спать во время чтения. Потом приобрел книгу Доусона М. И это скажу я вам охуенная книга для тех, кто начинает с нуля. Интересно читать, объясняет понятно. Короче рекомендую.
>>452099 >И пусть будет пятый модуль-диспетчер, который будет обращаться по отдельности к четырем, интегрировать их усилия во что-то ценное. азаза god object
>>452294 Не, ну серьезно. Говорят, даже скоро вторая версия выйдет и 90% знаний по первой будут не нужны. И что вообще это кратковременный хайп без будущего не то что [проверенные временем надежные фреймворки]
>>452454 хуйня это все, ангулар нужен потому что он отличается и всякие крутые конторки пользуют, переход между версиями тоже хуйня, но только если ты не будешь зубрить примеры, а будешь головой думать
>>452454 Пускай вторая выходит. Первую забрасывать не собираются же. Более того, будет куча кандидатов на дальнейшее развитие первой ветки, ибо уже много кода на нем написано. Мы же живем на втором питоне, не смотря на появление третьего
>>452130 пиздец нахуй, каким нужно быть ебучим дном чтобы не осилить собрать гвидон хоть 3.5 альфа 1? `./configure --with-computed-gotos && make -j 4 install` не можешь выполнить? ну так найми себе свитера чтобы он тебе сервер настроил, а не позорься.
>>452588 Давай разберем по частям тобою написанное >print('Компьютер загадал число в диапазоне от',low,'до',high,'У вас',shans,'попыток') Используй такой синтаксис: "Компьютер загадал от %s до %s" % (low, high) или "".format. Гугли.
>def random(low, high): #Генерирует случайное число import random random=random.randint(low, high) return random
Ну обычно импортируют что либо в самом начале файла. Это раз. Ты в самой функции импортируешь random, потом этот random у тебя превращается в число и ты его возвращаешь. Это работает, но так делать не надо. Придумай другую переменную. > response=int() Это лишнее
>if response>high: Гугли PEP8
>elif ask==rand: >return ask Логичнее просто написать else, ведь ты уже проверил что число либо больше, либо меньше, зачем делать ненужную проверку?
Привыкай писать if __name__ == '__main__': точка_входа И привыкай называть переменные английскими именами. Вроде все.
>>444295 Анончик, почему синтаксис такой убогий? Я конечно понимаю, наслдественность по спп и т.д., но это просто пиздец. Почему нельзя было сделать что-то стоящее? Убрать все эти петухоблянда, функцианальщину, а тут пиздец.. Петухон я так понимаю вне фреймворков - мертв. Верно? %%Надеюсь да. Это -опасно называть языком программирования.
>>452638 Успокойся. Я понимаю, что там далеко не сахар, но все гораздо лучше, чем в петухоне.
>>452639 >Так дело было, яваблядь? Ну может быть. Просто уже после JS я не верю ни в один скриптопарашный язык. На самом деле тимлид кодит на жабке. Просто появилась необходимость сменить язык. Вкорне. Жабка хоть и ламповая, но для текущего прожекта тяжеловата. Нужно проще. Кто-то сидящий у пораши предложил петухон.... Ну в общем-то мне бомбануло.
>>452642 Ну в общем-то писать курлибрейсы - глупо, потому что всё равно ты отступы тоже пишешь, а в отступах уже содержится вся необходимая информация для определения блоков. Курлибрейсы - это для любителей рутины, бомбит от них у тех, что хочет побольше писать тупой бессмысленный код, чтоб в течении рабочего меньше напрягать мозги над содержательно новым кодом.
>>452647 Отступы няшные, мне нравится,а вот с библиотеками - жиденько обосрались. Я не перестаю охуевать от названий. Читабельность просто смыло нахуй.
>>452664 Блядь, нужно раскроить череп тому пидору, который писал эту документацию. Блядь, ну что за пиздец, в рот ебать. Посмотрите на жавадок. Ну ебанарот.
Что за хуерга лезет в наш тред? Какие то неосиляторы, java петухи и прочие долбаебы. Зачем вы здесь? Питон был есть и будет независимо от вашего баттхерта, поэтому просто съебите или сидите в ридонли и не мешайте дискутировать
Котаны, по хардкору, нужен wiki движок или что то другое (например reStructuredText renderer) для организации базы знаний в питоническом проекте. Есть у кого опыт, а то альтернативы перебирать не хочется
>>452620 Спасибо анончик. >Ну обычно импортируют что либо в самом начале файла. Это раз. Ты в самой функции импортируешь random, потом этот random у тебя превращается в число и ты его возвращаешь. Это работает, но так делать не надо. Придумай другую переменную. Если я импортирую модуль вне функции, то питон выдает, что 'function' object has no attribute 'randint'.
> response=int() >Это лишнее Без этого не работает. Пишет мол переменная не определена. local variable 'response' referenced before assignment
>if response>high: >Гугли PEP8 Гуглил, но конкретно этот момент не нашел. Что то с пробелами? Поясни плиз.
>Привыкай писать if __name__ == '__main__': точка_входа С этим пока что не понятно, для чего так делать.
>>452707 1) Ты назвал функцию как модуль random. Поэтому когда пишешь random, то питон обращается к тому что было позже написано, а значит к функции. А у неё нет ничего с именем randint. 2) Ну это ладно. 3) Просто пробелы вокруг операторов ставь. 4) Это условие выполняется, если твой файл не используется как модуль. То есть если ты его просто запускаешь. Так просто обозначают откуда начать грубо говоря.
Про импорты посреди кода, тебе уже рассказали. Пиши их вначале файла, что бы читатели могли сразу оценить, какие библиотеки/модули требуются для работы твоей программы.
Про функции: Делить код на функции (блоки,процедуры,классы,модули и т.д.), ради функций (блоков,процедур,классов..) — бессмысленная затея. Есть несколько основных причин, вынести код в отдельную структуру:
1) Документация: return_code = 2ch.boards['pr'].threads['444295'].post_msg('Оцените говнокод!', topic='python4.1_RC', name='Гвидо ван Россум', attach_files=['dive_into_python.jpg']) В отличии от shans=privet(), не нужно искать и разбирать говнокод класса 2ch и всех его методов, что бы догадаться что этот код делает.
2) Дедупликация: Что бы не копипастить одинаковый код 9999 раз, потом исправлять 9998 одинаковых ошибок, а про одну забыть. int(input( int(input( int(input( int(intput( int(input(
3) Навигация: > Привет! Выбери диапазон. > Нижнее значение:-10 > Верхнее значение:10 > Сколько попыток вам нужно?:5 > Компьютер загадал число в диапазоне от -10 до 10 У вас 5 попыток > Это число поменьше > Это была ваша 1 попытка > Это число поменьше > Это была ваша 2 попытка > Это число поменьше > Это была ваша 3 попытка > Это число поменьше > Это была ваша 4 попытка > Это число поменьше > Это была ваша 5 попытка > Попытки закончились, вы проиграли > Enter Где искать ошибку?
>>452722 >1) Ты назвал функцию как модуль random. Поэтому когда пишешь random, то питон обращается к тому что было позже написано, а значит к функции. А у неё нет ничего с именем randint. Да, с этим разобрался. Спасибо.
>>452760 Спасибо анон. Насчет выноса в отдельную структуру. Есть примеры как это реализовано? Мне просто удобнее выносить в функцию, не надо заморачиваться с переменными, то есть с их названиями. Можно одинаковые использовать в разных функциях. А ошибка закралась в значении параметра response=int(). Надо было присваивать ему None, что бы он мне цикл сразу же не прерывал.
>>452722 >Ты назвал функцию как модуль random. Поэтому когда пишешь random, то питон обращается к тому что было позже написано, а значит к функции. А у неё нет ничего с именем randint долбоеб, импорт не виден вне определения функции, в этом дело.
Изучаю django. Пока все гладко, до определенного момента
#polls/admin.py from django.contrib import admin from polls.models import Question
class QuestionAdmin(admin.ModelAdmin): fields = ['pub_date', 'question_text']
admin.site.register(Question, QuestionAdmin)
Кто может обьяснить, что делает код по строкам кроме импорта Создаем класс, унаследованый от admin.ModelAdmin и создаем атрибут класса, в котором хранится список, но я не понимаю какого хуя поля в админке поменялись местами поля
Ребятки, а расскажите чем на работе занимаетесь? Нужен ли ваш питон без джанги? Или веб онли? Сам я с#, вот подумываю перекатиться. Много ли на питоне фрилансеров? начал смотреть на руби, увидел их форич - закрыл тред
>>452897 Я в провайдере работаю. На питоне пишется всё. И веб-морды (на web.py) и всякие скрипты для автоматизации действий с серверами/свитчами и обработка платежей по кредиткам и управление биллингом и разбор всяких там логов, ну в общем вообще всё. Значительная часть написанного кода выполняется 1 раз, результат сохраняется в файл, сами исходники больше нахуй не нужны, но это всё надо сделать быстро, что накладывает определённые ограничения на качество и подход к написанию кода лол. Веб-приложения пишу уже более-менее нормально. Там кофескрипт ещё. О другие языки не зашквариваюсь, кое-где есть легаси перл и пхп код, но если надо что-то доделать — они всегда переписываются на питоне, оригинал выбрасывается нахуй. Есть ещё немного С++, но там правки косметические типа константы подкрутить и пересобрать, с нуля на С/С++ давно уже ничего не писал. Сам сижу под виндой потому что так привык, но весь код работает на генту/центос.
Блять, посоны, заебался уже. Пытаюсь с помощью модуля pickle сделать базу данных, где будут храниться Имя:значение. И мне надо сортировать все это дело по убыванию для значения. Как мне это реализовать? На данный момент получается так, что у меня новое значение перезаписывает предыдущее.
Хочу чисто ради интереса накатить консольную прогу с интерфейсом на уровне htop\mc\moc (чтобы с помощью клавиш можно было пунктики меню выбирать и т.д.). Какие библы мне для этого понадобятся? Может кто знает какие-то гайды?
Ну вот как этим вашим питухоном пользоваться, если там просто нихуя не работает? Просто не работает и все. Все нужные библиотеки установлены, протестированы. Запускаю файл примера и что я вижу.
>>> # ending of a batch given `index` ... batch_end = batch_begin + batch_size File "<stdin>", line 2 batch_end = batch_begin + batch_size ^ IndentationError: unexpected indent >>> >>> pretrain_fns = [] File "<stdin>", line 1 pretrain_fns = [] ^ IndentationError: unexpected indent >>> for rbm in self.rbm_layers: File "<stdin>", line 1 for rbm in self.rbm_layers: ^ IndentationError: unexpected indent >>> >>> # get the cost and the updates list ... # using CD-k here (persisent=None) for training each RBM. ... # TODO: change cost function to reconstruction error ... cost, updates = rbm.get_cost_updates(learning_rate, File "<stdin>", line 4 cost, updates = rbm.get_cost_updates(learning_rate, ^ IndentationError: unexpected indent >>> persistent=None, k=k) File "<stdin>", line 1 persistent=None, k=k) ^ IndentationError: unexpected indent >>> >>> # compile the theano function ... fn = theano.function( File "<stdin>", line 2 fn = theano.function( ^ IndentationError: unexpected indent >>> inputs=[index, theano.Param(learning_rate, default=0.1)], File "<stdin>", line 1 inputs=[index, theano.Param(learning_rate, default=0.1)], ^ IndentationError: unexpected indent >>> outputs=cost, File "<stdin>", line 1 outputs=cost, ^ IndentationError: unexpected indent >>> updates=updates, File "<stdin>", line 1 updates=updates, ^ IndentationError: unexpected indent >>> givens={ File "<stdin>", line 1 givens={ ^ IndentationError: unexpected indent >>> self.x: train_set_x[batch_begin:batch_end] File "<stdin>", line 1 self.x: train_set_x[batch_begin:batch_end] ^ IndentationError: unexpected indent >>> } File "<stdin>", line 1 } ^ IndentationError: unexpected indent >>> ) File "<stdin>", line 1 ) ^ IndentationError: unexpected indent >>> # append `fn` to the list of functions ... pretrain_fns.append(fn) File "<stdin>", line 2 pretrain_fns.append(fn) ^ IndentationError: unexpected indent >>> >>> return pretrain_fns File "<stdin>", line 1 return pretrain_fns ^ IndentationError: unexpected indent >>> >>> def build_finetune_functions(self, datasets, batch_size, learning_rate): File "<stdin>", line 1 def build_finetune_functions(self, datasets, batch_size, learning_rate): ^ IndentationError: unexpected indent >>> '''Generates a function `train` that implements one step of File "<stdin>", line 1 '''Generates a function `train` that implements one step of ^ IndentationError: unexpected indent >>> finetuning, a function `validate` that computes the error on a File "<stdin>", line 1 finetuning, a function `validate` that computes the error on a ^ IndentationError: unexpected indent >>> batch from the validation set, and a function `test` that File "<stdin>", line 1 batch from the validation set, and a function `test` that ^ IndentationError: unexpected indent >>> computes the error on a batch from the testing set File "<stdin>", line 1 computes the error on a batch from the testing set ^ IndentationError: unexpected indent >>> >>> :type datasets: list of pairs of theano.tensor.TensorType File "<stdin>", line 1 :type datasets: list of pairs of theano.tensor.TensorType ^ IndentationError: unexpected indent >>> :param datasets: It is a list that contain all the datasets; File "<stdin>", line 1 :param datasets: It is a list that contain all the datasets; ^ IndentationError: unexpected indent >>> the has to contain three pairs, `train`, File "<stdin>", line 1 the has to contain three pairs, `train`, ^ IndentationError: unexpected indent >>> `valid`, `test` in this order, where each pair File "<stdin>", line 1 `valid`, `test` in this order, where each pair ^ IndentationError: unexpected indent >>> is formed of two Theano variables, one for the File "<stdin>", line 1 is formed of two Theano variables, one for the ^ IndentationError: unexpected indent >>> datapoints, the other for the labels File "<stdin>", line 1 datapoints, the other for the labels ^ IndentationError: unexpected indent >>> :type batch_size: int File "<stdin>", line 1 :type batch_size: int ^ IndentationError: unexpected indent >>> :param batch_size: size of a minibatch File "<stdin>", line 1 :param batch_size: size of a minibatch ^ IndentationError: unexpected indent >>> :type learning_rate: float File "<stdin>", line 1 :type learning_rate: float ^ IndentationError: unexpected indent >>> :param learning_rate: learning rate used during finetune stage File "<stdin>", line 1 :param learning_rate: learning rate used during finetune stage ^ IndentationError: unexpected indent >>> >>> ''' File "<stdin>", line 1 ''' ^ IndentationError: unexpected indent >>> >>> (train_set_x, train_set_y) = datasets[0] File "<stdin>", line 1 (train_set_x, train_set_y) = datasets[0] ^ IndentationError: unexpected indent >>> (valid_set_x, valid_set_y) = datasets[1] File "<stdin>", line 1 (valid_set_x, valid_set_y) = datasets[1] ^ IndentationError: unexpected indent >>> (test_set_x, test_set_y) = datasets[2] File "<stdin>", line 1 (test_set_x, test_set_y) = datasets[2] ^ IndentationError: unexpected indent >>> >>> # compute number of minibatches for training, validation and testing ... n_valid_batches = valid_set_x.get_value(borrow=True).shape[0] File "<stdin>", line 2 n_valid_batches = valid_set_x.get_value(borrow=True).shape[0] ^ IndentationError: unexpected indent >>> n_valid_batches /= batch_size
start_time = time.clock() ## Pre-train layer-wise for i in xrange(dbn.n_layers): # go through pretraining epochs for epoch in xrange(pretraining_epochs): File "<stdin>", line 1 n_valid_batches /= batch_size ^ IndentationError: unexpected indent >>> n_test_batches = test_set_x.get_value(borrow=True).shape[0] File "<stdin>", line 1 n_test_batches = test_set_x.get_value(borrow=True).shape[0] ^ IndentationError: unexpected indent >>> n_test_batches /= batch_size File "<stdin>", line 1 n_test_batches /= batch_size ^ IndentationError: unexpected indent >>> >>> index = T.lscalar('index') # index to a [mini]batch File "<stdin>", line 1 index = T.lscalar('index') # index to a [mini]batch ^ IndentationError: unexpected indent >>> >>> # compute the gradients with respect to the model parameters ... gparams = T.grad(self.finetune_cost, self.params) File "<stdin>", line 2 gparams = T.grad(self.finetune_cost, self.params) ^ IndentationError: unexpected indent >>> >>> # compute list of fine-tuning updates ... updates = [] File "<stdin>", line 2 updates = [] ^ IndentationError: unexpected indent >>> for param, gparam in zip(self.params, gparams): File "<stdin>", line 1 for param, gparam in zip(self.params, gparams): ^ IndentationError: unexpected indent >>> updates.append((param, param - gparam learning_rate)) File "<stdin>", line 1 updates.append((param, param - gparam learning_rate)) ^ IndentationError: unexpected indent >>> >>> train_fn = theano.function( File "<stdin>", line 1 train_fn = theano.function( ^ IndentationError: unexpected indent >>> inputs=[index], File "<stdin>", line 1 inputs=[index], ^ IndentationError: unexpected indent >>> outputs=self.finetune_cost, File "<stdin>", line 1 outputs=self.finetune_cost, ^ IndentationError: unexpected indent >>> updates=updates, File "<stdin>", line 1 updates=updates, ^ IndentationError: unexpected indent >>> givens={ File "<stdin>", line 1 givens={ ^ IndentationError: unexpected indent >>> self.x: train_set_x[ File "<stdin>", line 1 self.x: train_set_x[ ^ IndentationError: unexpected indent >>> index batch_size: (index + 1) batch_size File "<stdin>", line 1 index batch_size: (index + 1) batch_size ^ IndentationError: unexpected indent >>> ], File "<stdin>", line 1 ], ^ IndentationError: unexpected indent >>> self.y: train_set_y[ File "<stdin>", line 1 self.y: train_set_y[ ^ IndentationError: unexpected indent >>> index batch_size: (index + 1) batch_size File "<stdin>", line 1 index batch_size: (index + 1) batch_size ^ IndentationError: unexpected indent >>> ] File "<stdin>", line 1 ] ^ IndentationError: unexpected indent >>> } File "<stdin>", line 1 } ^ IndentationError: unexpected indent >>> ) File "<stdin>", line 1 ) ^ IndentationError: unexpected indent >>> >>> test_score_i = theano.function( File "<stdin>", line 1 test_score_i = theano.function( ^ IndentationError: unexpected indent >>> [index], File "<stdin>", line 1 [index], ^ IndentationError: unexpected indent >>> self.errors, File "<stdin>", line 1 self.errors, ^ IndentationError: unexpected indent >>> givens={ File "<stdin>", line 1 givens={ ^ IndentationError: unexpected indent >>> self.x: test_set_x[ File "<stdin>", line 1 self.x: test_set_x[ ^ IndentationError: unexpected indent >>> index batch_size: (index + 1) batch_size File "<stdin>", line 1 index batch_size: (index + 1) batch_size ^ IndentationError: unexpected indent >>> ], File "<stdin>", line 1 ], ^ IndentationError: unexpected indent >>> self.y: test_set_y[ File "<stdin>", line 1 self.y: test_set_y[ ^ IndentationError: unexpected indent >>> index batch_size: (index + 1) batch_size File "<stdin>", line 1 index batch_size: (index + 1) batch_size ^ IndentationError: unexpected indent >>> ] File "<stdin>", line 1 ] ^ IndentationError: unexpected indent >>> } File "<stdin>", line 1 } ^ IndentationError: unexpected indent >>> ) File "<stdin>", line 1 ) ^ IndentationError: unexpected indent >>> >>> valid_score_i = theano.function( File "<stdin>", line 1 valid_score_i = theano.function( ^ IndentationError: unexpected indent >>> [index], File "<stdin>", line 1 [index], ^ IndentationError: unexpected indent >>> self.errors, File "<stdin>", line 1 self.errors, ^ IndentationError: unexpected indent >>> givens={ File "<stdin>", line 1 givens={ ^ IndentationError: unexpected indent >>> self.x: valid_set_x[ File "<stdin>", line 1 self.x: valid_set_x[ ^ IndentationError: unexpected indent >>> index batch_size: (index + 1) batch_size File "<stdin>", line 1 index batch_size: (index + 1) batch_size ^ IndentationError: unexpected indent >>> ], File "<stdin>", line 1 ], ^ IndentationError: unexpected indent >>> self.y: valid_set_y[ File "<stdin>", line 1 self.y: valid_set_y[ ^ IndentationError: unexpected indent >>> index batch_size: (index + 1) batch_size File "<stdin>", line 1 index batch_size: (index + 1) batch_size ^ IndentationError: unexpected indent >>> ] File "<stdin>", line 1 ] ^ IndentationError: unexpected indent >>> } File "<stdin>", line 1 } ^ IndentationError: unexpected indent >>> ) File "<stdin>", line 1 ) ^ IndentationError: unexpected indent >>> >>> # Create a function that scans the entire validation set ... def valid_score(): File "<stdin>", line 2 def valid_score(): ^ IndentationError: unexpected indent >>> return [valid_score_i(i) for i in xrange(n_valid_batches)] File "<stdin>", line 1
^ SyntaxError: invalid syntax >>> File Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'File' is not defined >>> File "DBN.py" File "<stdin>", line 1 File "DBN.py" ^ SyntaxError: invalid syntax >>> File DBN.py File "<stdin>", line 1 File DBN.py ^ SyntaxError: invalid syntax >>> load Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'load' is not defined >>>
>>453721 Ох еба, какой большой. Проверь все-таки в редакторе отступы. И везде ли используется только табуляция или только пробелы. Лучше второе. Это для начала.
>>453726 Да, theano со всеми зависимостями. Тестировал, что-то конпелялось часа 4, потом выдало <nose.result.TextTestResult run=2441 errors=21 failures=0>
допустим я лью с сайта в cp1251, и оно нормально выводит в сосноль. Но, допустим, я хочу записать это в файл в utf8. Делаю .encode('cp1251').decode('utf8') (в данном случае у меня принт, вместо файла, но это не меняет сути) и получаю, логиный UnicodeDecodeError. Все советют использовать хэндлеры, которые по сути обёртки try/except и не лучше костылей, в любом случае, самый адекватный ignore просто убрал всю кириллицу. Собственно вопрос, как нормально работать с кодировками при условии, что в тексте может быть намешано символов из разных (знать бы как так удается) кодировок. Скрипт может работать часами и совсем не хочется, чтобы по-серелине он вылетал.
ЗЫ прости Анон, за тяжёлую речь, тяжёлый день сегодня. ЗЫЫ сам такие задачи решал больше года назад, но из-за нехватки времени оборачивал в лютые костыли, сейчас вот зочу разобраться как делать это правильно
>>454113 А чо значит символы из разных кодировок? Канплуктер не понимает символы — он понимает циферки, а кодировка — это всего лишь интерпретация этих циферок, соглашение между вбивающим циферки и читающим. Если ты не знаешь, что имел в виду вбивающий, то как питон должен тебе помочь?
>>454138 >В остальном не вижу проблемы. .encode('cp1251').decode('utf8') когда находит русские символы вылится с UnicodeDecodeError. Очень даже проблема
>>454162 Браузеру кодировка сообщается или сервером или мета-тегом или он пытается её угадать или пользователь выбирает её вручную.
>>454411 Писать код так, чтобы он работал и в 2 и в 3. Разумеется, так получится не всегда, но ты дропнешь программирование до того, как столкнёшься с этими проблемами.
так я в парсере (ну допустим) явно указываю, но скрипт вылетит, когда найдет непонятный символ (не спорю, так и должно быть с точки зрения безопасности), символ может быть левым, из другой кодировки и тд.
сивол, кстати, может присутствовать в обеих кодировках, но при этом тоже вылетить с ошибкой, например я лью в cp1251, пытаюсь прегнать в utf8, но вылетет на первом русском сиволе (считаю любом, я проверял)
>>444295 Вкатываюсь в программирование с нуля, хочу освоить Питон. Что скажете по поводу этой книги? http://rutracker.org/forum/viewtopic.php?t=4819630 Python Programming for the Absolute Beginner - Michael Dawson. Не руйгайтеся если что не так.
Блин. Вот я обычно особо не ленюсь документацию читать, но вот что-то апаче меня прямо вгоняет в уныние. Какой-то невнятный сайт. Вот я задеплоил приложение на джанге, но не настраивал толком апаче. Я так понял все конфиги надо прописывать в файле .htacess, но синтаксис я пока не вкурил. Дайте годный туториал по этой теме Apache + Django.
>>454162 > в тексте может быть намешано символов из разных кодировок > браузер же их как-то отображает Наркоман что ли?! Ни один браузер тебе не отобразит такой файл. Либо одна часть будет читабельной, либо другая.
>>454587 Можешь скрыть реализацию, можешь какую то ортогональную основной функциональность навесить, например логгирование обращения к этому свойству и т.д.
>>455378 Спасибо. А какой юзкейс у этой операции, если даже в отдельную функцию его для ленивых вынесли, не знаешь случаем? Что-то я понять не могу для чего оно вообще нужно…
Посоны, тоже хочу вкатиться, но мой английский не позволяет читать и смотреть туториалы на оном. Книжек на русском хватит для поднятия годного скилла, или же сосну на пол пути?
>>455517 Ох, покормлю. encode метод строки: https://docs.python.org/3/library/stdtypes.html?highlight=str.encode#str.encode получаем bytes decode метод bytes: https://docs.python.org/3/library/stdtypes.html?highlight=decode#bytes.decode получаем строку. Если ты неправильно раскодировал байты изначально, то так уже исправить твою ошибку не получится, потому что cp1251 "неполноценная" кодировка. Хотя она якобы 8-битная, но на самом деле в ней 255 символов. Попробуй сделать b"\x98".decode("cp1251") и поймёшь, что если ты взял байты, в которых закодирована строка в utf-8 и раскодировал её как cp1251, то либо ты будешь получать ошибки, либо ты их заигноришь и проебёшь строку. Так вот я к чему. Это говно из мочи.
Хочу перекатиться с ноды (NodeJS) на питон. Почему? Потому что написание простой консольной утилиты по загрузке файлов превратилось в ад, а документация по ноде сосет хуи. Так вот, так как я одержим навящевой идеей асинхронности, хотелось бы узнать как там с этим дела в питоне? Я только слышал, что асинхронность в питоне вся на костылях и лучше не заморачиваться. Есть тут кстати еще такие беженцы?
>>455602 Ну к примеру, мне надо загрузить 50 файлов. На ноде я делаю http.get(url, callback);, тем самым посылаю 50 параллельных запросов, дальше ехал коллбек через коллбек и все 50 ответов обрабатываются отдельно ну почти отдельно. На питоне вроде как только генерить треды, а это не тоже самое что асинхронные вызовы в жс. Если делать все синхронно, то можно получить в 50 раз меньше производительности.
Посоны, не бейте, лучше обосцыте. Я дебил, в школе информатику не учил, более того, ее вообще не вели. Математику незнаю очень хуево. У меня есть шансы выучить питон? Я вот лутца скачал, пойду читать.
>>455608 >информатику не учил >Математику не знаю >хочу научиться кодить В чем проблема? Кроме очень и очень узких областей эти знания больше нигде не требуются. В основном на лабах в вузике.
Реквестирую ответ Есть ли шанс устроиться школию на стажировку летом в дс? Из скиллов django, html/css и немного js. Есть опыт фриланса (сайтики клепал). Стоит пробовать сейчас? Или ждать 18?
В питоне есть нормальные аналоги get/set? Нужно вызвать функцию если переменная класса меняется. Очевидное решение - прописать вызов в set методе. На СО говорят что это НИПОПИТОНОВСКИ.
Прикрутил DJango-registration к 1.7, но допереть как обновлять профайлы пользователей и как создать личный кабинет так и не смог. Django-profile к сожалению под 1.7 не завезли =(.
Хочу сделать из них ссылки vasiliy.com и im.vasiliy.com
Не хочу добавлять в программу свой код по этому еще хотелось бы оформить это в виде "функции" - я не уверен как это называется. Что бы я написал import.domaincut и в теле программы написал domain = domaincut(domainname)
Как правильно удалять http:// и https://. Как правильно оформлять "функции" питон не знаю, других языков тоже, просто гуглил как делать то и это. Понимаю что вопрос глупый но нагуглить не могу.
>>456167 1. Чем тебя не устраивают полные ссылки? 2. Пупурупупу. Ты вероятно о модулях. Если у тебя есть питоновский файл где описывается domaincut, то просто в файле где надо использовать пишешь from имя_модуля import domaincut, но там отдельная ебола , если это метод какого-нибудь класса и так далее. Так что тут надо уточнение. Гугли подгрузку модулей и библиотек в джанго. 3. Эм, ну ты можешь воспользоваться библиотекой Re, но вероятно для нуба она слишком хардкорна. Тут можно простым сплитом строки делать или воспользоваться какой-нибудь готовой хуйней вроде этой https://github.com/john-kurkowski/tldextract
Установил ply через pip, а питон его не видит. Работает только если открывать командную строку в директории с питоном и писать полный путь к файлу, иначе импортеррор: но модуле. Почему так?
>>456340 Увы, браток, тут такая же картина, как и с руби - работы в россии нет. Иди в пхп, там не так уж и плохо, хоть и плохо nonetheless. По вечерам подтягивай пайтон до приличного уровня и постарайся уходить во фриланс. Только ради всего нормального и хорошего в этом мире не иди на одеск. Это просто сайт, на него хорошие заказчики не заходят, потому что не серьёзно, низкостатусно и неэффективно. Создавай свою компанию, даже если ты один, и веди маркетинг как все - блоги, опен сорс, личные контакты с людьми. Цена разработчику от $100/h и такое платят даже зелёным джуниорам в больших городах. Но тебе, как удалённому индусу из россии, такое заплатят только если ты сможешь доказать свой скилл. Тут одеск-опыт не только не считается, но и вообще вредит и понижает твой статус чуть-чуть. Самый лучший ход - популярные блог посты, коммиты в django (около 100 будет норм) и свои опен сорс проекты. Это тебе поможет засветится в более широком сообществе. Потом самое главное себя продать по рыночной цене. Ставить меньше $100 контрпродуктивно, потому что даже если работаешь за $5-15, один хуй с тебя будут ждать качества как за $200, но вдобавок ты будешь работать с гнилью и если про это узнают, то ты будешь выглядеть долбоёбом. В россии у бизнесов очень мало возможности извлечь профит из IT, поэтому в ней какб IT есть, но оно даже не на уровне деревни США. Это в стране, лол. Забей на РФ, это failed state, в ней можно быть 1000х программистом и всё равно тебе не заплатят даже 1000 рублей за час работы, потому что просто денег нет. А в США даже даун, буквально даун может зарабатывать около $30/h.
Я такое время от времени говорю, но что меня удивляет так это то, что мне в РФ никто не верит. Для них США = одеск и некоторые из них физически неспособны понять, что одеск это сайт уровня упячки, на него просто не обращают внимания. Так же и в США. Практически невозможно убедить кого-нибудь из СФ, что есть компетентные разработчики из всяких молдовий, украин и россий, работающие за $10-15/h. Они сразу же говорят, что если бы разработчик был хоть как-то вовлечён в комьюнити, то он бы понял, что цена его скиллсета как минимум $100/h индус, русский или кот - не важно. Если ты будешь читать двач, то ты едва ли поднимешься выше $50/h, даже через десятилетия яростного задрачивания разработки, потому что твой мир кончинтся на одеске. Тут успешнокуны не сидят, потому что им физически больно читать споры про демпинг, где один хуй говорит что $3/h единственный способ пробиться в люди, а другой говорит, что норм рейт это $15, а всё что меньше - демпинг. Если бы они только знали.
Даже не смотря на то, что рынок удалённой работы мал, за $100-150/h работы больше, чем за $10-15. Большинство работы не постится в интернет, поэтому ты не сможешь её найти гуглением. Я тебе лично пруфов давать не буду, потому что они излишни. Если ты в работаешь в россии, то ты даже не в IT. Если ты не можешь найти работу за $100-150, то плиз consider suicide, потому что у тебя хуёвый набор ген и твоё существование это оскорбление для всего нормального и хорошего.
>>456376 > $100/h и такое платят даже зелёным джуниорам в больших городах. 100 в час это типа 16000 в месяц или 192 в год. Захожу на монстр.ком, в вакансиях питон жуниор средняя ставка 70к. Кто пиздабол?
>>456376 >$100/h и такое платят даже зелёным джуниорам в больших городах. Месячная зарплата какого-то продавца из нашей украшки, всего за один час. Хотет.
>>456376 >Цена разработчику от $100/h и такое платят даже зелёным джуниорам в больших городах >100 8 22 * 12 = 211200 >Silicon Valley >Senior Ruby Developer: 120k$ a year >Senior iOS software engineer: 140k$ a year То есть удаленщикам охотно платят почти вдвое больше, чем местным. Ок.
>>456448 Ок, делаем поправку. Получаем, что на сеньора-удаленщика они готовы тратить столько же, сколько на местного сеньора. Манямир? Манямир.
Далее, даже автор того же коммента пишет про 25-75$/hr исходя из готовности клиента тратить на удаленщика деньги наравне с местными. Ты же уже кукарекаешь про 100 минимум.
Читаю доки, но из-за скудного английского не совсем понимаю, для чего нужны группы (круглые скобки). И для чего внутри этой группы множество из ^, " и '. Кто-нибудь может объяснить?
Многие в треде советовали использовать Sublime Text с плагинами. Поставил. Разобрался с плагинами. Понял, что стандартная консоль не может в input() и накатил SublimeREPL.
Теперь вопросы: 1) Почему для ввода строки в SublimeREPL её нужно обрамлять в кавычки? 2) И можно ли сделать так, чтобы "RUN current file" не открывала новые вкладки с SublimeREPL, а запускала код в одной единственной?
>>456515 То есть говно-текстовый редактор с подсветкой -- это ide, а божественный ipython -- нет? В нем даже кластер можно поднять для параллельных вычислений.
>>448604 Кстати, обоссыте еще и меня. Они просят решение за O (n), а выдают O (2n). Собсна вопрос: зачем они это делают? Мол сам додумай, что тебе тут не в один цикл все запихнуть? Если исключать O (n^2) и деление, то можно, не долго думая, нарисовать им 3 прохода O (3n) А тут приходится думать, как же все запихнуть в один проход
Анон, использую для питона православный VIM, какое-то время использовал сублим, но он лагучий местами и некоторые плагины заебывают уведомлениями. Воспрос в том, у меня есть настроеный вим с автокомплитами и прочим, есть ли смысл перекатываться в ide ? Они же монструозные. Есть у них нормальные преимущества ?
>>456706 В ide есть поддержка популярных фреймворков. К примеру, в PyCharm работает автодополнение джанговских magic strings (типа строк с названиями темплейтов, модулей, настроек) и навигация по ним же. Для редакторов это нетипично, насколько я знаю. Еще есть средства просмотра баз данных, гуй для системы контроля версий, и прочие такие штуки, чтобы срать, не снимая свитер. Все это дело почти совсем не тормозит и забирает до 8 Гб оперативки для очень больших проектов.
>>456496 зачем notebook-то? Мне одного ipython хватает. Magic'и там есть, иденты есть. Но недавно при переопределении __getattr__ наткнулся на этот неприятный баг https://github.com/ipython/ipython/issues/6698 Это типа ipython классы во что-то свое внутреннее оборачивает? Я не вкурил до конца, так как еще не смотрел. Пришлось проверять тупо if'ом, что несколько ugly. В обычном репле Питона 3.4 такие проблем не возникают.
>>456774 Анализ данных, Веб, Скрипты, в том числе и игровые. Можно хуярить микроконтроллеры , но асм всё равно лучше. Можно игры хуярить, но не так чтобы очень ахуенно.
>>457060 Бэкэнд хоть на чем пиши, главное их серверный API дергать, а веб морда твоего приложения должна во вконтактовском фрейме отображаться, если я не ошибаюсь.
Пикрилейтед. Значит сделал простую модель - категория и imagefield. Все работало нормально. Заходишь на страницу - по категории выбираются картинки и просто показываются на экране. Добавил новую категорию - не работает. Первый скрин - код, который работает. Второй - который не работает. Я уверен, что опять какую-то глупую ошибку сделал. Причем страница отображается так, как будто просто картинки не находятся, а не так что их нет в базе.
Здравствуйте, товарищи! Таким образом реализация намеченных плановых заданий способствует подготовке и реализации системы массового участия. Повседневная практика показывает, что рамки и место обучения кадров позволяет выполнить важные задания по разработке существенных финансовых и административных условий. Не следует, однако, забывать, что сложившаяся структура организации способствует подготовке и реализации новых предложений. С другой стороны реализация намеченных плановых заданий обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. С другой стороны рамки и место обучения кадров требуют определения и уточнения существенных финансовых и административных условий. Не следует, однако, забывать, что постоянный количественный рост и сфера нашей активности требуют определения и уточнения новых предложений. Не следует, однако, забывать, что новая модель организационной деятельности позволяет выполнить важные задания по разработке новых предложений. Товарищи! реализация намеченных плановых заданий обеспечивает широкому кругу (специалистов) участие в формировании позиций, занимаемых участниками в отношении поставленных задач. С другой стороны постоянный количественный рост и сфера нашей активности позволяет выполнить важные задания по разработке позиций, занимаемых участниками в отношении поставленных задач. Таким образом сложившаяся структура организации требуют от нас анализа новых предложений. Равным образом дальнейшее развитие различных форм деятельности требуют определения и уточнения системы массового участия. Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности играет важную роль в формировании позиций, занимаемых участниками в отношении поставленных задач. С другой стороны сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании существенных финансовых и административных условий. Повседневная практика показывает, что реализация намеченных плановых заданий требуют определения и уточнения позиций, занимаемых участниками в отношении поставленных задач. Товарищи! реализация намеченных плановых заданий позволяет выполнить важные задания по разработке направлений прогрессивного развития. Не следует, однако, забывать, что реализация намеченных плановых заданий требуют определения и уточнения направлений прогрессивного развития. Товарищи! дальнейшее развитие различных форм деятельности играет важную роль в формировании дальнейших направлений развития. Товарищи! сложившаяся структура организации играет важную роль в формировании новых предложений. С другой стороны рамки и место обучения кадров обеспечивает широкому кругу (специалистов) участие в формировании системы массового участия. Товарищи! дальнейшее развитие различных форм деятельности обеспечивает широкому кругу (специалистов) участие в формировании существенных финансовых и административных условий. Товарищи! дальнейшее развитие различных форм деятельности играет важную роль в формировании существенных финансовых и административных условий. Равным образом рамки и место обучения кадров позволяет выполнить важные задания по разработке новых предложений.
>>457303 Разве там 10000 комбинаций? По-моему просто 4-битное слово в шестеричной системе, а это всего лишь 6^4 = 1296. Даже внешне заметно, что нет места 10 тыщам в этой таблице.
Алсо, если у тебя в цикле рандомы - нет никакой разницы 10001 ты там поставишь или 100500, лол. Ты же не все варианты перебираешь, а просто создаешь случайные - значит эта цифра будет регулировать только длину "универсальной речи", можешь даже в настройки её вынести.
Привет, питонисты. У меня есть просто даунский вопрос, ответ на который я уже час ищу и всё никак.
Функция(/метод) делает так: >>s=["Zero", "One", "Two", "Three"] >>print(x_func(s)) ((0, Zero), (1, One), (2, Two), (3, Three)) Я понимаю, это элементарно сделать с помощью len и всё такое, но нужна именно эта функция (печет знатно от того, что потерял её)
Чуваки может вопрос тупой, но что писать-то? Допустим я уже знаю питон чуток, дальше дрочить книжки-туториалы мне уже лень да и вынужденной необходимости нету, а до всяких заказов скорее всего моего уровня недостаточно будет. В общем нужна практика, и как итог этого назревает вопросик какие программульки для себя вы пишите, что бы если что я мог у вас скомуниздить идею.
>>457377 Ну я вот из последнего не по работе писал программу, которая брала логи виктории в кол-ве 5 штук (с одного диска), строила по ним карту битых секторов и показывала где можно разделы создать в неубитых местах. И график красивый с красными точками и рыжими хуй знает зачем.
Блядь, не нашёл в гугле. Как итерироваться по словарю? Нужно, например, пошагово проверить каждое его значение и опционально вывести. Как это сделать-то? Подскажите, пожалуйста.
>>457393 Ну что-то такое может быть мне полезно. Есть один вордпресс на который я иногда вбрасываю новости с других сайтов. Давно хотел автоматизировать это всё, пожалуй как челлендж сгодится. У вордпресса вроде есть приблуда публиковать новости из е-мейла, с ней думаю совсем просто будет.
Спасибо. А что за автоматизация заместо баша? Я просто линукс/бздю в последний раз пользовал аж в бородатом 2004м. >>457427 Весьма интересно, но как-то пока не актуально. Хотя два винта с битыми бут секторами валяются на подоконнике и давно думал бы их хоть как-то оживить.
>>457441 Ну ты че? Смотри документацию по классу dict на оф. сайте питона. А так, если второй питон, то dict.iteritems(), в третьем dict.items(). Или наоборот. Еще есть dict.values() и dict.keys()
Здравствуйте, товарищи! Таким образом рамки и место обучения кадров играет важную роль в формировании новых предложений. Не следует, однако, забывать, что постоянный количественный рост и сфера нашей активности играет важную роль в формировании позиций, занимаемых участниками в отношении поставленных задач. Повседневная практика показывает, что рамки и место обучения кадров способствует подготовке и реализации дальнейших направлений развития. С другой стороны сложившаяся структура организации требуют определения и уточнения новых предложений. С другой стороны новая модель организационной деятельности играет важную роль в формировании существенных финансовых и административных условий. Повседневная практика показывает, что реализация намеченных плановых заданий способствует подготовке и реализации направлений прогрессивного развития. С другой стороны новая модель организационной деятельности обеспечивает широкому кругу (специалистов) участие в формировании позиций, занимаемых участниками в отношении поставленных задач. Равным образом реализация намеченных плановых заданий требуют от нас анализа существенных финансовых и административных условий. Не следует, однако, забывать, что рамки и место обучения кадров обеспечивает широкому кругу (специалистов) участие в формировании дальнейших направлений развития. С другой стороны дальнейшее развитие различных форм деятельности обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Равным образом постоянный количественный рост и сфера нашей активности играет важную роль в формировании дальнейших направлений развития. Равным образом сложившаяся структура организации позволяет выполнить важные задания по разработке позиций, занимаемых участниками в отношении поставленных задач. Не следует, однако, забывать, что дальнейшее развитие различных форм деятельности требуют от нас анализа направлений прогрессивного развития. Таким образом дальнейшее развитие различных форм деятельности способствует подготовке и реализации позиций, занимаемых участниками в отношении поставленных задач. Равным образом реализация намеченных плановых заданий обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Не следует, однако, забывать, что сложившаяся структура организации позволяет выполнить важные задания по разработке дальнейших направлений развития. Равным образом новая модель организационной деятельности требуют от нас анализа системы массового участия. Таким образом рамки и место обучения кадров требуют определения и уточнения новых предложений. Равным образом сложившаяся структура организации требуют определения и уточнения позиций, занимаемых участниками в отношении поставленных задач. Повседневная практика показывает, что сложившаяся структура организации способствует подготовке и реализации позиций, занимаемых участниками в отношении поставленных задач. Товарищи! дальнейшее развитие различных форм деятельности требуют от нас анализа позиций, занимаемых участниками в отношении поставленных задач. Товарищи! постоянный количественный рост и сфера нашей активности обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Не следует, однако, забывать, что сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Не следует, однако, забывать, что реализация намеченных плановых заданий способствует подготовке и реализации системы массового участия. С другой стороны реализация намеченных плановых заданий позволяет выполнить важные задания по разработке направлений прогрессивного развития. С другой стороны сложившаяся структура организации требуют определения и уточнения направлений прогрессивного развития. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности требуют определения и уточнения дальнейших направлений развития. Таким образом реализация намеченных плановых заданий обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития. Таким образом реализация намеченных плановых заданий позволяет выполнить важные задания по разработке дальнейших направлений развития.
C#-программист вкатывается в тред с легким бугуртом.
Пилю на python побочные вещи, для которых он и нужен (скрипт для генерации тестовых данных, scons-скрипты), а также свой проект (робот с машинным зрением).
Решил прокачаться в сабже, чтобы не гуглить каждые 5 минут синтаксис и не залипать на ошибках от интерпретатора. До этого, собственно, так и писал, stackoverflow-стиль.
Стал читать Лутца "Изучаем Python". 60 страниц рекламы языка, но я уже на 76-й. Посмотрел оглавление. Еще 40 и начнется код. Отлично.
Еще я скачал "Программируем на Python" того же автора. Двухтомник. Судя по содержанию, это тоже полезная книга. Что-то вроде описания стандартной библиотеки и паттернов применения.
Получается, чтобы разобраться в языке, надо осилить 3000 страниц учебников. Это горько, но я готов заплатить эту цену. Основываясь только на чужом коде, API-reference и stackoverflow, можно постоянно нарываться на велосипеды и пилить неоптимальный код.
>>457644 Я с крысой книгу прочитал за выходные в своё время. А со змеёй нет смысла читать полностью, я полистал только те разделы, которые мне могли бы потенциально пригодиться. В принципе можно не читать совсем.
На SO бывает и сейчас заглядываю за готовыми кусками кода — это нормально, как по мне. А так c:\Python27\Doc\python279.chm да и всё. Книги хороши для первичного ознакомления с языком, либо для тех, кто начинает с нуля. А для тех кто с опытом, тратить больше недели на книги это какой-то БУКИНИЗМ лол.
result = {'ip':ip} vlans = [] for Row in varBindTable: untag = [] tag = []
tmp=(''.join(['%02x' % ord(x) for x in Row[1][1]])) tmp=''.join(['{0:0>8}'.format(bin(int('0x'+tmp[j:j+2], 16))[2:]) for j in xrange(0,len(tmp),2)]) for j in xrange(0,len(tmp)): if tmp[j]=='1': untag.append(j+1)
tmp=(''.join(['%02x' % ord(x) for x in Row[0][1]])) tmp=''.join(['{0:0>8}'.format(bin(int('0x'+tmp[j:j+2], 16))[2:]) for j in xrange(0,len(tmp),2)]) for j in xrange(0,len(tmp)): if tmp[j]=='1': if j+1 not in untag: tag.append(j+1)
> Что предстоит сделать: > > 1) Подробное описание. > > 2) Обработку ошибок и исключений, т. к. сейчас почти нет проверок на достоверность данных и правильность входных файлов. > > Проект с конвертером теперь живет на GitHub. Надеюсь, от этого сообщества будет польза.
Надеется на пользу от гитхаба, но не оставил там реквесты, а во вконтактике он подписан на секс-знакомства. Странный чувак. Тем не менее, я пытаюсь его запустить на третьем питоне, установив недостающие библиотеки, но нихуя не выходит. Вот пример декомпилированного словаря .lsd, который по идее должен конвертиваться в нужный мне формат. http://rghost.net/7MXbny5Hg Анон, помоги.
Итак, я знаю основы Удава и решаю задачки уровня hackerrank без особых мозголомов. Есть какие-то книги, которые раскрывают то, как надо писать реальный код, чего избегать, а к чему стремиться? Сейчас мои поделки очень вырвиглазны и неоптимальны. Хочется попробовать написать более-менее прикладное приложение, но для этого хочу улучшить понимание языка и изучить полезные инструменты.
>>457723 >>457722 Антоши, реквестирую списки плагинов на саблайме при работе с джангой. У кого какие установлены? Мейби, у кого-то нарисуется пока еще мало известная годнота
Вот у меня есть гуи-приложение. И у него, предположим, есть некая бд. Поля этой бд отображаются в гуи. Но в бд ведь названия служебные "name" например. А надо, чтобы отображалось Имя. Для решения этой проблемы я надумал два варианта. Первый - добавить таблицу в бд, где будет поле-оригинал и поле-перевод. Можно добавлять несколько полей на разных языках, например. Второй - юзать стандартный модуль для интернализации gettext. Но он кажется каким-то унылым. Кучу папок надо создавать, pot-файлы и т.д. А как сделал бы это продвинутый анон?
>>458603 Лолблин. Потому что для русских людей делаю. Да и на английском же не в один-в-один переведешь. Например, там будет какой нибудь birth_timestamp, а писать то надо Birthdate.
Такой вопрос, питаноны. Есть StringField в веб форме. Пользователь должен вводить туда дату в формате %d.%m.%Y %H:%M, чтобы потом мне эту строку в datetime конвертировать. Так вот, есть ли красивый способ проверить, в правильном ли формате пришла строка, ибо если ввести '12342134', то, ясен пень, лезет исключение. Валидатора даты не нашел (в wtforms для ип и мак адресов есть, для почты, а по дате нет). Или try/exception использовать просто?
Парни, а кто-нибудь пытался извратиться и писать программы для ведра на питоне? Давно не вникал, помню раньше было s14a которое позволяло в связке с ним что-то ваять под ведро на питоне, из минусов - вариантов запихнуть питон в АПК вообще небыло. Как сейчас дела обстоят?
Парни, опять интересуюсь: Для ведра кто-нибудь питонил? С этим kivy в апк уже запихнуть можно питончик? А с s14a? А какие-нибудь ведроидопрограммы на питоне посмотреть можно, ну там на гитхабе или еще где
есть одна ошибка >>NoFile: no file in gridfs collection Collection(Database(MongoClient('localhost', 27017), u'hs'), u'images.files') with _id ObjectId('551d347bbda9644e3cd78763') >Collection(Database(MongoClient('localhost', 27017), u'hs'), u'images.files') >localhost >local >
Блять, аноны, поясните и помогите за херню. Ставлю grab четкО, ну там всё тип-топ. Но ничего не работает. Как бы теоретически должно работать, но не работает. Все библиотеки ставлю через pip, а их всего две, ну как тут обосраться? - никак {from grab import Grab g = Grab(log_file='out.html') g.go('yandex.ru') g.search(u'яндекс')} это код программы, а это {Traceback (most recent call last): File "C:/Users/*/Desktop/1.py", line 1, in <module> from grab import Grab ImportError: No module named 'grab'} - ошибка Что делать-то?
Анон, очень нужна твоя помощь. Кто может сделать самую простою и тупую текстовую игрушку на питоне? Какую-нибудь рулетку или что-нибудь на подобии. С меня как обычно.
Подскажите, есть ли легенькая и быстрая IDE со встроенной справкой по стандартным командам/функциям и пр.? Чтобы летало и удобно было.
Такими монстрами, как Pycharm и ему подобными, нет пока нужды пользоваться, так как хочу поучить для себя.
Последний раз писал лет 18 назад на VB и Delphi, так там было удобно пользоваться справками, когда нужно было найти какую-нибудь незнакомую функцию (о которой пока не знаешь) для известной цели по какому-нибудь признаку. Но тогда, правда, и интернет был диковинкой.
>>444295 Как создать проект на PyQt? Установил Python 3.4.x, PyQt, сам Qt. Вижу отдельно Designer для создания форм, отдельно Qt Creator, в котором (sic!) нельзя создать питоний проект, только C++. Как это всё связать в кучу? Хочу как в MSVS, тут же делать GUI, тут же писать код, тут же запускать и отлаживать. Есть step-by-step гайд?
>>460686 # Guess My Number # # The computer picks a random number between 1 and 100 # The player tries to guess it and the computer lets # the player know if the guess is too high, too low # or right on the money
import random
print("\tWelcome to 'Guess My Number'!") print("\nI'm thinking of a number between 1 and 100.") print("Try to guess it in as few attempts as possible.\n")
# set the initial values the_number = random.randint(1, 100) guess = int(input("Take a guess: ")) tries = 1
# guessing loop while guess != the_number: if guess > the_number: print("Lower...") else: print("Higher...")
guess = int(input("Take a guess: ")) tries += 1
print("You guessed it! The number was", the_number) print("And it only took you", tries, "tries!\n")
Вечер добрый. Господа, объясните за треды: Есть ли возможность узнать когда тред завершился?
Сейчас использую отдельный тред, который раз в секунду смотрит не пустой ли лист. (4-6 тредов в бесконечном цикле извлекают из листа (использую with Lock():) элемент, до появления IndexError)
>>463046 Посмотреть можешь: 1. PyGame - да-да, можно юзать её и для этого. 2. Tkinter(.ttk) есть Canvas на котором можно художить. 3. Было бы, не будь мои познания так скудны.
http://habrahabr.ru/post/150302/
Полезные ссылки:
http://pythondigest.ru/ - новости и так далее. Можно подписаться на их твитер.
http://pycoders.com/ - еще новости
http://habrahabr.ru/post/205944/ - полезные материалы для начального уровня.
http://pythonanywhere.com/ - бесплатный и простой хостинг для джанги, например.
Классные библиотеки:
http://kivy.org
Видео:
https://www.youtube.com/playlist?list=PLpTASIMYgCp8supkEmnnrYa5xi9g91ZPI – введение в джангу. Хотя если прошел официальный туториал то начало покажется затянутым и скучным.
http://rutracker.org/forum/viewtopic.php?t=4622868 Специалист Питон