Питонач, я верстальщик-даун, вопрос по Джанге. Пилю свой проект, вот сейчас думаю про архитектуру и алгоритмы.
Есть две версии текста, которые будут браться из базы и отображать на странице. Старый и новый текст. Новый сравнивается со старым и показано где убрано, и что добавлено: например, точно как в вики или на гитхабе. Как это сделать?
Книжка на оп-пике, кстати, заебись. Совсем недавно начал изучать по ней. И примеры, и задачки сразу после главы. Есть еще что-то подобное? Чтобы теория с практикой.
Вообще охуеть. Примеры очень разносторонние, дают понимание что вообще можно сделать. Отталкиваясь от них легко найти реальные задачки в окружающем тебя мире и порешать их(придется гуглить, но примерно что делать ты будешь знать).
>>545487 Я знаю, но в таких ситуациях лучше использовать мутабельные объекты. Это очень редкая ситуация, когда тебе надо присвоить имени другой объект и скорее всего это можно сделать по-другому, более элегантно.
>>545939 Луче python3 -m pip install ... >>545933 Нинужно, удваиваю >>545951, ide должны страдать. вообще, нахуя оно нужно? Это как докстринги для сфинкса. Хотя этим гвида занимался, вообще непонятно нахуя, калл же полнейший. И вся суть динамики убивается, я хочу передать в функцию свой FakeInt, а мне ide пропердит, что я не то подсовываю.
>>546481 Смотри на mypy Короче можно будет сделать проверку типов или компалятор, сам cpython использовать их не будет, но другие интерпретаторы питона или библиотеки для проверки типов - будут. Возможно jython или ironpython будут.
Нужно реализовать некую прогу, которая будет коннектиться к экселю и пиздить оттуда параметры, конкретно размер деталей на лист для покройки. Дополнительно нужно реализовать отображение поля с контурами этих деталей, конечно же в приемлемом масштабе, с возможностью их перетаскивать.
Если с экселем я знаю что делать, то с этим полем ебаным даже не знаю что предпринять акромя pygame что является очень унылым. Варианты?
Регулярочка нахуй не нужна для пропуска через неё всех ебаных данных. Очевидно для этого нужно изначально написать парсер, которые пиздит например все элементы одной группы, а потом регулярочками как напильником искать нужные тебе конкретно вещи.
Готовое отдроченно решение не везде работает, а также не для всех задач нужны. Когда у тебя есть готовые данные в виде например ссылок img src, то нахуй тебе это ебаное дерево?
>>546695 Я говорю, что использовать либу с деревом для обхода хтмл в ситуации когда нужно просто отфильтровать равносильное уебанство пропусканию сырого хтмл через регулярочку.
>>546717 Это понятная цепочка, она не противоречит тому, что я писал. Хотя не очень понятно что там может тормозить на форуме-то, там же просто текстовые поля.
>>546703 Нахуй мне читать мой же пост? Парсер джоя я почти захуярил, пикабу содержит в себе какой-то дичайший говнокод хтмловский. Такой вырвиглазный пиздец что хочется просто уебать лопатой фронтенд разраба и верстальщика.
>>546768 Я и сам не фанат регулярочек. Где-то они к месту, где-то не очень. И поддерживать их тяжело потом. И легко ошибиться. Но иногда без них никак. И быстро, да.
>>546809 schemamigration говорит, что не таблицы south_migrationhistory. Вот она и не создается, да. Если есть время и желание помочь пиши на фейкопочту [email protected]
>>546895 Попробуй сделать вручную CREATE TABLE "south_migrationhistory" ( "id" serial NOT NULL PRIMARY KEY, "app_name" varchar(255) NOT NULL, "migration" varchar(255) NOT NULL, "applied" timestamp with time zone NOT NULL ) ;
>>546895 И, кстати, а сами миграции у тебя уже были? Или это новый проект? Если новый, то почему ты используешь south, сейчас же миграции встроены в джангу в новых версиях?
Питоны, помогите разобраться с ситуацией. Старательно набрал пример из книги Доусона. Сверял при этом с англоязычным оригиналом книги. Проблема такая: программа совсем не умеет блокировать победные ходы противника. Хотя по идее должна это делать. http://pastebin.com/CKMNGZeT
>>547051 Дело не в консоли, а в том что он делает print list и печатается repr элементов Если бы он написал print advice[0] или там print ' '.join(advice) Всё бы работало >>547057 > Что так многие хотят всех пересадить на p3? Недавно начали учить питон и начали с трешки и у них бугорт что почти везде в продакшене двойка начинал учить когда питон был 1.6
>>547058 >> Всё бы работало То что на пике, не могу назвать "Всё бы работало". >> Если бы он написал print advice[0] не падало бы только в пе3, а пе2 падало с "UnicodeEncodeError: 'charmap' codec can't encode character u'\x97' in position 21: character maps to <undefined>" >>Недавно начали учить питон и начали с трешки А учить питон лучше с ассемблера
>>547097 > что это? умвр - "у меня всё работает". > Но с кубиком то Проблема в том что этот кубик там есть. Может ещё и другие символы попадаются какие-то подобные, их тоже все по одному заменять?
>>547104 ДотрЁхал ты меня буду перекатываться, может быть. Спасибо что разобрал всё мною написанное. А ещё pip под двойкой на винде падает из за юникода в доменном имени машины.
>>547126 Да вы заебали. За несколько лет на тройке ни разу не было так, чтобы под виндой что-то не завелось. Все норм работает. А если бы было не норм, то нахуй нужен такой питон.
>>547090 >То что на пике, не могу назвать "Всё бы работало". Это норма, просто в большинстве шревтов END OF GUARDED AREA выглядит как тире, а в этом - нет. Вообще для тире другой символ так-то, сайт сделали мудаки. >не падало бы только в пе3, а пе2 падало Юникодная строка же, системной кодировкой закодируется и выведется нормально. Другое дело что почему-то lxml возвращает в одном питоне строку, а в другом список с этой строкой. >>547057 Потому что некрофилия это зашкворно.
>>546895 Да были, вроде. Мне достался уже готовый проект, в котором впилен south, но почему-то не используется. Я решил это исправить. По дурости удалил руками таблицу south_migrationhistory, вот пытаюсь восстановить теперь. >>546900 Охуеть совет
В пайчарме доктесты работают, и сам я классом могу нормально пользоваться.
В эклипсе вылазит вот такая поебота: Traceback (most recent call last): ... c = Circle(5,1,1) ..., in __init__ super().__init__(x, y) TypeError: super() takes at least 1 argument (0 given)
ЧЯДНТ? Эклипс как-то не так настроил, что ли? Помоги, анон, с меня как обычно.
Бояре, принимайте неофита. Отучился 3 года в шараге, где одним из предметов было программирование 2.5 года, но преподом был ебучий маразматик, потому знаю ноль целых хуй десятых.
Решил теперь, когда курс программирования позади, начать учить язык сам. Выбрал змеюку эту. Скачал книжку Лутца хваленую, мне на голову прилетел тут же гигантский объем теории, еще и так заумно поданной, что я подался на ютюб за простыми лекциями по синтаксису хотя бы. Смотрю эти, тут хоть понятно : .com/playlist?list=PLbKwBvrpogbZfU50rPMmXow3aMFjIw4gk/ Наверняка закидаете говном, но щито поделать?
Подскажите, где найти самые простые задачи, а то везде натыкаюсь на что-то очень сложно (ну или я совсем тупой). Или же вшибать в голову Лутца, покуда не станет понятно? Шапку читал. Спасибо за помощь заранее. На закуску мой великий препод, йоба изобретатель, которого выгнали в этом году, лол. https://www.youtube.com/watch?v=9_G9bfU5GfU
http://pastebin.com/0zg94RCT Flask'оводы есть тут? Читаю Flask Web Development, в шестой главе была реализована отправка сообщений на почту. Через консоль всё хорошо отправляется, а вот когда запускаю сервер, нет.
Сетаю логин, пароль: set MAIL_USERNAME=<Gmail username> set MAIL_PASSWORD=<Gmail password> запускаю сервер, ввожу имя, приложение его принимает и записывает в базу, при повторном вводе имени он уже будет узнавать имя и писать новое приветствие. Для отправки сообщений сетаю ещё это: set FLASKY_ADMIN=<Gmail username> И вот когда я вот все три хрени засетил, при вводе нового имени фурифокс выдаёт "Соединение было сброшено". Новое имя не добавляется в базу.
Хуй знает насчет фласка но в django лучше складывать письма в базу и по cron отправлять их из другого процесса. Потому что пока твоё ебаное письмо, особенно через сторонний мэйл сервер отправиться клиент будет ждать, сервер будет заблочен да и за ддосить тебя так легко будет. В django есть готовые решения для всей этой почтовой хуйни.
>>547469 Ой вей, я таки забыл про debug из-за shell manager, шаблон он не мог найти, спасибо. Правда странно что в книге про эти 2 шаблона не было написано, нашёл их на гитхабе у автора. Вообще книга вроде хорошая, но странная, иногда умалчивает про содержимое и создание некоторых файлов, вот шаблоны нужные для 6 главы лежат в гите для 7-ой. https://github.com/miguelgrinberg/flasky
Кто-нибудь может подсказать мне, как примерно должен выглядеть код для этой примитивной задачки: https://www.reddit.com/r/beginnerprojects/comments/1bytu5/projectmenu_calculator/ Все мои варианты слишком костыльные и похожи на удаление гланд через анальное отверстие. Я уверен, что есть способ изящно, аккуратно и с минимумом кода написать эту программку. мимоньюфаг
>>547637 >>547636 Блять, лол, я почему-то забыл, что можно списки в качестве value в словарях использовать. Видимо, потому что до сих пор такое не применял, а лишь где-то слышал об этом. Спасибо вам большое! Я совсем ньюфаг, не бейте.
Смотрю Introduction to Python от O'Reilly и визжу как сучка. Всего-то дошел до if, else, ==, !=, а уже восторга полные штаны. Хочу поскорее дойти до момента, когда смогу обрабатывать данные введеные с клавиатуры юзером (интуиция подсказывает, что за это отвечает какой-нибудь raw_input).
Жаль, что сейчас дохуя работы и могу только полтора часа перед сном уделять, так бы больше уже знал. Но в целом я в восторге. Также есть уже идея софта, который буду писать для автоматизации своей работы, на ходу рождается куча полезных функций, которые можно там реализовать, уже начал записывать, но еще не понятно как это структуировать, как построить иерархию правильно. У меня по-сути каждая идея - это перепиливание иерархии. Хотя, хуй знает. Скорее всего я еще не имею толком представления о чем говорю и все это лишь догадки.
Возможно подскажите как вы вообще записываете свои безумные идеи, как их структурируете? Понятно, что когда делаете чужую программу - там тз. А своя ведь это постоянный поток сознания и перепилов. То добавить, се. Брать отсюда сюда.
Или там первую неделю записываете все необходимые штуки, вторую структурируете, а третью пишете (образно)?
>>547719 >А своя ведь это постоянный поток сознания и перепилов. То добавить, се. Брать отсюда сюда. Поумерь пыл, бери что тебе по зубам реально сделать за неделю. Своего рода методология agile при работе в одиночку. Доведи до минимально рабочего состояния, а потом навешивай свои безумства небольшими порциями с релизами каждую неделю. Рабочий прототип сильно приводит в порядок мысли и яснее становятся перспективы и возможные трудозатраты.
https://www.python.org/dev/peps/pep-0505 Бля, ну почему не как в кофейке?! Мне всё равно придётся None присваивать этой залупе. В языках со статической типизацией-то понятно, там надо объявлять переменную, но тут-то, в динамике, сам пёс велел.
>>547797 define "неявной" Чем None в данной ситуации отличается от необъявленной переменной? Исключая опечатки. Я же не предлагаю везде игнорировать отсутствие связи имя-объект, но раз уж для этого зделали оператор, то почему бы не зделать до конца? сам иди нахуй
>>547794 ненужная хуйня. впрочем, в божественной двоечке такого говна не предвидиться, у неё стабильный синтаксис и апи. а бета тестеры должны страдать
>>547799 >Чем None в данной ситуации отличается от необъявленной переменной Вот именно этим и отличается.
На кофейке/жабаскрипте частенько приходится минут 15 тратить на хуйню копаясь в дебаггере. Не обязательно конечно от необъявленной переменной, но из-за подобной хуйни (чаще всего похереный this). undefined становится любимым словом.
После того как я вернулся обратно на питон, ко мне вернулась радость жизни, нормализовался сон, пробудился аппетит, появились деньги и хуй крепко встаёт.
>>547806 Эээ… Я говорю только лишь о поведении при использовании этого оператора. Всё остальное чтобы осталось как было. Хотя, с другой стороны в __init__ такое поведение лишь мешает. Может ты и прав.
>>547874 Да почти также, ставят None или дефолтное значение. Если у тебя ничего умного по отсутствию параметров не происходит, тогда вообще убери дефолтные значения, пусть исключение возникнет.
Посоны, вот во втором пистоне map работает нормально. То бишь > a = [] > map(a.append, [1, 2, 3]) > a == [1, 2, 3] # True
А в третьем надо делать list(map(a.append, [1, 2, 3])). Быстрое гугление не помогло, да и спать собираюсь. Как добиться в третьем такого же поведения, как во втором?
Можно как-то заблокировать питоновскую очередь (Queue) чтобы пока я что-то с ней не сделал, все остальные треды, которые хотят записать в нее или считать с нее зависли пока я им не разрешу?
>>548628 Я понял. Почему просто не делать в цикле обычном что-то со списом? map тут говнокод если честно. Я раньше любил такое тоже, но потом вырас и стал писать попроще. Ну делай list(map()) если оче хочется.
>>546686 вы все ебанутые дебилы. нормальный разбиратор xml/сломанного_html внутри не должен использовать регулярки ни на каком этапе. там осуществляется _синтаксический разбор_ по классическим алгоритмам.
Такая тема, мне нужно пройти по списку URL и по-вытаскивать title, meta, h1 в таблицу для проверки. Если с первыми двумя проблем не возникает, то заголовки на разных типах страниц в разных местах. Сейчас я просто прогоняю повторно по пустым ячейкам, указывая другой путь.
Помогите сделать красивую конструкцию для перебора типичных возможных путей элемента. Чот не могу сообразить ничего, кроме
>>544442 (OP) Задачка по информатике: Напишите программу, которая вводит натуральное число N и выводит первые N чётных натуральных чисел. Решение есть, но я чувствую, что оно убого до крайности. Можно ли его элегантно преобразовать при помощи while и if, без каких-либо встроенных функций?
while True: ____x = int(input()) ____z = x ____for k in range(1, x*2+1): ________if k % 2 == 0: ________if z > 0: ____________z -= 1 ____________print(k)
Еще один нубский вопрос: в вычислениях стоит использовать дробь (1/4) или floating point число (0.25)? Понимаю, что разница вряд ли ощутится, но что является правилом хорошего тона?
>>548715 Думал, что само получится. >>548711 Мне просто хотелось чтобы все треды писали в одну очередь свои логи, а я бы потом их сохранял куда нибудь. Вот упрощённый пример того что я делаю. Не идеально, иногда порядок сбивается, но я поправлю. http://ideone.com/XmIwkF
>>544442 (OP) Только-только начал python смотреть. Подскажите как в вот таком списке [1, 1, 1, 1, 1, 1, 1, 0, 0, 0] находить три подряд идущих единицы? В голову приходит только в цикле смотреть i, i+1, i+2, но что-то по моему это не то.
>>548838 >Еще один нубский вопрос: в вычислениях стоит использовать дробь (1/4) или floating point число (0.25)? Если нужна точность, то fractions или decimal.
Анон, только сегодня начал учить, объясни, хули тут толком сделать надо? Я так понял, что надо в первой строке условие, чтоб ответ был больше 5, а во второй, чтоб он был меньше 5. Но почему оно не работает? Да, и что значат цифры в скобках в строках принт?
>>548873 Так у меня цикл перебора УРЛов остановится по break при первом же найденном заголовке.
Тут скорее try: h1 = g.doc.select('/html/body/bla-bla-bla/h1').text().encode('utf-8') continue except: pass
g.doc.select возвращает исключение, если не удается найти элемент. Мне нужно чтоб я мог нахуячить несколько селекторов и если первый сработал, то переход к следующему УРЛу, а если вызвал исключение, то пробуем следующий селектор.
>>548911 Просто эти задачки были до этой абсолютно про другое, лол. И def, как и этих цифр в скобках, раньше не было и объяснений, че это, не дали. Потому и туплю, как кретин.
>>548916 Дай, пожалуйста, пример. И что значат цифры после принта? Просто, если я выполняю первое условие, оно трижды штампует единицу и задача не выполнена. Если второе - трижды -1. Если ни одно - трижды 0.
>>548919 К примеру, во 2-ой строчке тебе нужно заполнить условие так, чтобы оно проверяло, больше ли answer 5, т.е. if answer > 5: return 1 Принт вызывает функцию (которая выше) с цифрами, указанными в скобках. Это потом будет, дальше по программе
>>548924 Ой, я просто слепошарый уебок. Я в упор не видел, что answer - переменная, лол. Я задавал свои равенства/неравенства вместо того, чтобы просто написать слово... Спасибо, уже все увидел.
Кто-нибудь с xlwt, xlrd И xlutils имел дело? Требутеся следующее: 1. Открыть xls файл 2. Найти в нём "темплейтный" лист 3. Наплодить их несколько десятков, копируя форматирование, цвета и всё остальное. 4. Все получившиеся списки должны быть независимы, т.е. изменение имевшейся в темплейте ячейки на одном листе не должно никак влиять на предыдущие. Делал кто что-то подобное?
Пробовал через: sheet = workbook.add_sheet(sheet_name) for key, row in template.rows.items(): sheet.rows[key] = copy.deepcopy(row) for i in template.cols: sheet.col(i).width = template.col(i).width где workbook - это созданная через xlutils.copy.copy копия xls файла, открытого с помощью xlrd.open_workbook(..., formatting_info=True), а template — это один из листов этого воркбука (через workbook.get_sheet полученная).
Всё работало, однако выяснилось, что из-за магической для меня структуры экселя, deepcopy копирует много чего лишнего, в итоге после 5 скопированных листов, вдоволь разогнавшись, память начинает забиваться с молниеносной скоростью (10 листов — 2Гб+).
Если copy.deepcopy заменить на copy.copy, то проблемы с памятью исчезают, однако же попытка изменить имевшуюся в темплейте ячейку приводит к тому, что эта ячейка изменяется во всех листах.
Блядское PyQt5 под убунту быстрым способом как поставить? Сегодня проебался с ним пол дня и поставил в виртуалку на ноуте, как-то еще ебаться на стационаре дома не хочется, а осваивать Qt хотелось бы.
>>549146 что тебе не нравится? Я не вижу способа сократить импорт еще только если импортировать сразу всю либу. Алсо в некоторых редакторах весь импорт можно скрыть.
Как сделать так, чтобы выполняемые мною скрипты сразу же не закрывались?
input() вконце не всегда срабатывает. Перестал почему-то работать. Энвайромент прописывал.
В чем проблема? Гугл пока не дал толкового ответа, т.к. из-за отсутствия опыта не могу более менее понятно сформулировать для него запрос.
Короче, по простому: как сделать так, чтобы мои скрипты не появлялись на 1ну секунду "досовским" окном и исчезали, а чтобы не закрывались и я смог прочитать что там происходит?
>>548961 В общем, пришлось решить топорно: созддать новый лист и просто скопировать туда все иммутабл атрибуты из копируемого, затем насоздавать новых строк, колонок и ячеек и точно так же с ними поступить. Вроде бы всё работает нормально, можно перезаписывать всякие ячейки и так далее. Даже почти работает копирование из другого воркбука — если изменить значение ячейки темплейта до копирования, то ломаются всякие эти sst_idx'ы и некоторые значения снова перезаписываются. Не стал уж разбираться, так как пока такого не требуется. http://pastebin.com/gUzA8hFc
Delete all characters from s that are in deletechars (if present), and then translate the characters using table, which must be a 256-character string giving the translation for each character value, indexed by its ordinal. If table is None, then only the character deletion step is performed.
Это такой байтоёбский маппинг из двойки. Как видишь он всё равно в программе ничего не делает, ибо затрагивает только символы \x0 \x1 \x2 \x3
>>549220 The method translate() returns a copy of the string in which all characters have been translated using table (constructed with the maketrans() function in the string module), optionally deleting all characters found in the string deletechars.
Привет, питоний тред. Последние выходные работаю над платиновой задачей двача - скрапер двача. Но не всего двача, а только вебм. Сегодня закончил более-менее работающую версию. Скрипт сразу сохраняет в модель джанги.
Предлагаю скооперироваться и сделать свой проект - хостинг вебмок. Понимаю, задача нетривиальная, но в начале сделаем все в лоб и просто. Чтоб было. Будем брать вебмки с двача, составлять рейтинг, может сделаем статистику. В общем, есть куда развиваться. Потом каждый кто захочет может сказать, что участвовал в опенсорс проекте (не обязательно показывать ту часть, где есть сосач).
Скрипт и технические детали попозже вброшу, если появится интерес.
>>549383 Ну качественный хостинг видео не так просто сделать. Просто чтобы видео отдавал - ради бога, а если много пользователей? Еще и нетривиальная задача собрать анона в работоспособную команду.
>>549386 > , а если много пользователей? Это не проблема твоего приложения вообще. Видео будет отдавать nginx. Если пользователей будет много - ставишь несколько вебсерверов. Балансировка нагрузки между ними есть в самом же nginx http://nginx.org/en/docs/http/load_balancing.html Чтобы синхронизировать библиотеку файлов между серверами используешь glusterfs. Или тупо rsync по крону. Или если бы файлы были большими - внутренние торренты, но это заморочка и тут смысла нет.
>>549386 Короче тут скорее вопрос какой ты хостинг себе можешь позволить и насколько жирный у него канал, чем софта. Но вообще идея интересная, можно как-нить скооперироваться.
>>549393 Сейчас запилю чистый репозиторий. Как раз доделывал кое что по мелочи. Вот скрипт. http://ideone.com/gnMLdU Вот модификация для сохранения в джангу. http://ideone.com/3yw9Lh Попозже расскажу подробнее. Наверно по коду так сразу и не поймешь что там происходит.
Работает под тройкой. Но если поправить super и изменить импорты, скорее всего будет и под вторым. До этого у меня они были настроены, но для красоты убрал.
>>549402 В джанге пока ничего нет кроме админки. Сам скрипт же качает, записывает лог. А если запустишь второй файл, то сохранит в джангу (которую сейчас выложу). Только админка. Настраиваю репозиторий. Просто не спешу.
>>549439 > зачем она Она незачем, но вот конфиг ты в отельный package вынес, потому что обычно конфигов несколько - базовый и унасленованные от него обычный, dev-сервер, рабочии локальные копии разработчиков. Настройки у них разные.
>>549451 От джанги, насколько я понял, требуется только отображение? Загрузку же можно через urllib запилить. У меня уже есть парсер медиа с двача, например. Нужно только пофиксить иногда возникающую проблему с cloudflare.
Ну что, раз есть интерес, давайте создадим какую нибудь конференцию. Типа в глиттере или где лучше? Я вообще не разбираюсь.
>>549460 Скачиватель есть уже. Джанга будет показывать, да. Но я не использую urllib - он медленный. httplib позволяет на одном http соединении все качать. Я вбрасывал в прошлом треде тесты по времени.
>>549465 Посмотрел те тесты. Весь прикол в том, что ты для httplib устанавливаешь одно соединение, а через urllib каждый раз создаёшь новое. В urllib есть штука, которая позволяет запилить свой менеджер подключений. Как допилю тесты, выложу.
>>549483 Да хер знает, на самом деле. Я с веб-технологиями не особо знаком. Когда-то, лет 6 назад, учил пилоны на спецкурсе. Через пару лет пробовал pyramid, но всё как то не придумывал, что бы интересного нового сделать. В общем, я к чему это - есть же побыстрее фреймворки. Те же фласки всякие. Насчёт удобства и красивостей, правда, не уверен.
>>549488 >>В общем, я к чему это - есть же побыстрее фреймворки. Те же фласки всякие. Насчёт удобства и красивостей, правда, не уверен. Да, Tornado например. Tornado — расширяемый, не блокирующий веб-сервер и фреймворк, написанный на Python.
На flask тоже подобные модули можно поставить, джанга в отсосе.
Предлагаю перенести обсуждение в гиттер. Я все таки склоняюсь к джанге. Кто на должном уровне знает другой профессиональный фреймворк? На торнадо можно сделать транслировали в прямом режиме какие вебмки прямо сейчас касаются например.
>>550034 И нахуй ты это притащил? На лоропараше одни школьники-первокурсники-с-питоном-вместо-головы и устаревшие-сорокалетние-быдлокодеры-с-сишкой-вместо-голосы.
>>549488 >есть же побыстрее фреймворки. Те же фласки всякие. Минималистичнее != быстрее. В жанге стек вызовов лучше оптимизирован, чем во всяких ваших фласках. Что быстрее в фласке - это jinja2, но в джангах 1.8+ её можно включить вместо дефолтного движка темплейтов.
>>550123 Я не про изучение джавы или пиление, а про то что софт на десктопе на джаве есть. Его довольно много, но обычно ему есть альтернативы, а вот в сфере ide этих - фактически нет.
Пацаны, подскажите как делается прогресс-бар в консольке. Например когда emerge в гентяче что-то там делает, то у него как бсд такая штука отображается | сменяется на /, потом на -, потом на \ . И так по кругу. Хочу запилить себе что-то вроде этого, только с циферками типа столько-то обработано, осталось столько-то.
Решил сегодня вернуться к истокам и написать что-нибудь на пайтоне, стал смотреть примеры, так аж глаза заболели от синтаксиса, а ведь когда-то он казался практичным. Теперь понимаю хейтеров.
>>550245 Я использовал sympy + mathml (он там требует преобразование хитрое чтобы браузер показал как надо, но работает). Ну и webkit какой-нибудь для отображения бери.
Салют погромач, помоги ньюфагу, есть небольшая проблемка. Короче программа должна принимать несколько аргументов через getopt и делать разные вещи, вроде все просто, однако я наткнулся на странную хрень тут, смотри. http://pastebin.com/JmhPqn31 Похоже на тупую ошибку но я чот не вижу.
>>550373 > if '--silent' or '-s' in words: if '--silent': ^^ всегда будет выполняеться потому что bool('--silent') это True ты наверное хотел написать if '--silent' in words or '-s' in words: а вообще юзай https://docs.python.org/3/library/argparse.html
>>550469 Есть матрица которую я забиваю в ячейки выражениями вроде R1+Cp+1/pL этой хуйни дохуя, потом умножаю на вектор состоящий из U1...UN, которые являются неизвестными и прирываниваю к вектору Y, который заполнен значениями. Нужно находить U, проблема в том , что структура постоянно меняется.
Как найти U? Фишка в том, что это нахождение нужно будет повторить 500-1000 раз.
>>550594 Уже слишком уставший чтобы вникать. Скажи в двух словах. Мне надо дергать сишные функции из .so и обрабатывать их в питоне, при этом зависимостями для конечного юзера должны быть только та .so и сам питон для исполнения моего .py. Свиг - то, что мне нужно? Если да - ну штож, я дурак и делал мартышкин труд. Пошел спать.
>>550598 У тебя есть исходники этих сишных функций? SWIG позволяет почти автоматически сгенеровать обертку для этих сишных функций в виде питоновского модуля. http://www.swig.org/tutorial.html вот тут простой пример.
Вот что пишет функция save_score() [code lang="text"] Теперь нужно увековечить Ваша достижение! Введите Ваше имя: 45 Загружаю таблицу результатов. Ran out of input Таблица результатов пока пуста, но мы это сейчас исправим! [('45', 1)] Достижение увековечено! [/code]
>>550747 w+ перезаписываешь файл. ты можешь из него потом читать, но только то, что там туда только что записал. r+ открывает файл не перезаписывая и позволяет читать и писать в него. a открывает файл на append - добавление в конец. Но тебе нужно сначало прочитать из файла в режиме r, потом открыть в режиме w и записать результат.
>>550750 >w+ перезаписываешь файл. ты можешь из него потом читать, но только то, что там туда только что записал. То есть если в файл, открытый в режиме "w+", ничего не писать, при использовании метода .close() он сохраняется как пустой даже если до момента его открытия он пустым не был?
>>550810 Это значит учебник хуевый. Хороший учебник лучше документации для понимания языка. Не считая синтаксиса конечно, но для особо упоротых случаев есть Лутц, который жирнее официальной документации раза в 3, кек
Ван-сум всемогущий! Наконец-то я понял как финализировать субпроцессы запущенные в фоновых тасках в asyncio. Сука, наконец-то всё отработало без экзепшенов. Кстати asyncio советую брать самый последний из репы, очень дохуя отличается от коробочного в плане этого самого хэндлинга.
>>550883 Exception ignored in: Task result ignored и ещё много подобного.
Вот это ещё не до конца поборол: signal handler must be signal.SIG_IGN, signal.SIG_DFL Например если вызвать cancel когда ещё create_subprocess_exec не отработал. Надо наверное шилднуть его вместе с присваиванием переменной.
>>550925 Процессы нужно завершать, иначе орфанами засирается всё. Если ты запустил что-то в отдельном таске, будь бобр вызвать terminate на cancel. А после terminate ещё и подождать надо, то есть снова запустить run_until_complete, только с ожиданием по всем незавершённым таскам (кстати даже те которым ты вызвал cancel в качестве финализации - тоже ещё считаются незавершенными, так как таск может перехватывать cancel и должен отработать это дело). Всё не так просто.
Есть где-то рекомендации по тому как надо пилить GUI на PyQt5.5 ну или около того, а то от обилия ебаных говно туториалов с разнящимися идеями уже хуй поймешь как надо - один хуярит прям в py файле после конверта из .ui, второй говорит так делают уебаны, надо делать отдельный файл и подключать туда наследуя класы, а дальше только подключать сигналы и писать функции, третий говорит всё хуйня надо делать 3 разных файла в одном GUI, во втором функции, в третьем связка, четвертый кроет всех хуями говорит что UI desinger для хуесосов - надо писать с нуля в одном файле всё вместе.
Алсо никогда в своей жизни еще не писал тесты для своего говнокода, нужна инфа по этому процессу желательно для тупых.
>>551136 Генерировать код и .ui файла хуевая идея. Когда поменяешь что-то в ui файле - заебешься мерджить. А так я хуй знает я на pygtk писал > UI desinger для хуесосов - надо писать с нуля Смотря что, некоторые вещи проще из кода генерить действительно. Некоторые нет. Головой думай.
>>551136 Импортишь сразу .ui файл без конвертации. Раскидываешь сигналы. Два файла или три — по вкусу. >>551141 Это не про то. Речь о конвертации ui → py. Ты в получившийся файл что-то добавил руками, а потом надо gui изменить. Соответственно надо как-то мерджить сгенерированный py и тот, что ты руками потрогал. Но это хуёвая идея и так делать не нужно конечно же.
>>551266 Задача: прочитать csv файл. Не упустить ни одного неправильного случая, найти и исправить все ошибки и записать исправленный файл в том же формате csv.
>>551295 Следующая задача записать выхлоп предыдущей в бинарном формате и сделать функцию для чтения.
Формат:
Заголовок (в начале файла): b'TOPKEK' - метка типа файла int32 - количество записей
Записи фиксированный ширины: int32 - параметр 1 (умноженное на 1000 и округлённое число из третьей колонки) int32 - параметр 2 (умноженное на 1000 и округлённое число из четвёртой колонки) int32 - смещение относительно начала файла к строке с именем
Записи произвольной длины: плотно друг за другом строки заканчивающиеся символом перевода строки '\n'
Функция чтения должна быть генератором, то есть читать из файла по мере необходимости выдавая: yield id, name, a, b
Если пользователь во время чтения файла нажал Ctrl-C или Ctrl-Break вывести на экран последний прочитанный id.
Ребят, вот мой пост: http://stackoverflow.com/questions/32874488/building-cascade-structure Никак не пойму, что надо сделать. Где только не задавал вопрос, всегда ответ в одной строчке. Начинаю тыкаться, пробовать что-то сделать - лезут самые разные ошибки. Можете показать мне готовое решение? Не то что бы я не готов разбираться, но мне кажется тут что-то очень простое, и даже в чем-то другом ошибка. Сижу на этом три недели.
>>551520 Аналогично QR. Только если в QR ты вращаешь/отражаешь вектор-столбцы, то в LQ надо то же самое делать с вектор-строками.
Но если лень писать самому: A^T = QR (A^T)^T = (QR)^T = (R^T) x (Q^T) = LQ' Т.е. посчитай QR разложение транспонированной матрицы, в потом транспонируй полученные R и Q.
Смотрел видосики с яндекс разработчиками, везде пишут, что они программируют по 20 с чем-то лет. Учитывая что им около 30, сразу возникает некая демотивация, когда вспоминаю, что мне 22 и я только начинаю учиться. Утешь меня програмач.
>>551571 Да-да, все они там ещё сами игры писали для спеки, паскаль с делфи по книжкам Фаронова учили сидя на горшках, и если у тебя этого всего не было то не стоит браться за программирование.
Должна быть возможность применить аутентификцию для всего сайта через middleware и для некоторых представлений с помощью декоратора. Доступы должны храниться в настройках проекта(settings).
>>551295 Парсинг текста - это сложноватая для меня задача. Тут основной гемор работа со строками. И окуда достал такой длинный файл, хитрец?
Как я понял, сначала все запятые надо заменить на точки, а | заменить запятыми? И вычистить все ";REF#" и "</span". Больше нет никакого мусора? А то глазами проверять все 4328 строк желания нет.
>>551994 Попробовал решить эту задачу. Споткнулся на точках в начале строк. Весь остальной мусор программа вычищат и нужные замены делает. http://pastebin.com/HifFY8Vt
[code lang="text"] Traceback (most recent call last): File "/home/deanona_ne_nado/Prog/Python/pr/csv/fix_csv.py", line 19, in <module> if line[0] == ".": IndexError: string index out of range [/code]
>>552047 Оне не путой. Проверял в интерактивной оболочке после прогона программы. И если бы он бы пустой, то интерпретатор не стал бы пытаться выполнить блок [code lang="text"] if line[0] == ".": line = line[1:] [/code] и соответсенно не выдал бы ошибки.
Ошибка могла быть вызвана пуcтой строкой "", которая не содержит даже символа возврата строки...
Update: понял, откуда там взялись пустые строки в списке. Выражение csv_lines = csv.split("\n") убирает "\n". Но это не полностью объясняет причину ошибки, т. к. в исходном csv-файле нет пустых с точки зрения текстового формата строк, то есть строк, которые содержат только символ новой строки. Update 2: Авотхуй. Код, с поправкой на удаление "\n" http://pastebin.com/Yq8PPYKz выдаёт ту же самую ошибку. Даже после добавления "\n" в каждую строку, ошибка выдаётся.
>>552160 Немодифицируемы? Я их и не модифицирую. Выражения line += "/n" и line = line[1:] не модифицируют строки, а присваивают переменной line новые строковые значения.
>>552172 >В списке всё равно остаются исходные. Каким образом, если line в каждой итерации ссылается на элемент списка, а не содержит копию этого элемента? К тому же код с предварительной проверкой на пустые строки перед присваиванием нового значения переменной не заставлял интерпретатор выдавать ошибки
>Во-вторых, у тебя на конце файла \n. А вот это точно правда. Сейчас верну проверку на пустые строки.
>>552178 >А вот это точно правда. Сейчас верну проверку на пустые строки. Хотя один хуй. После [code lang="text"] for line in csv_lines: line += "/n" [/code] Пустых строк в списке быть не может.
>>552007 >>552003 Нет, ну это никуда не годится. Во-первых есть модуль csv, там можно задать любой delimiter, это вот сейчас по чистой случайности в полях нет символа | а ведь он может там появиться.
Во-вторых ты сам просматриваешь выхлопной файл что ли чтобы убедиться в отсутствии косяков? Плохая практика. А если в файле миллионы строк? Как раз будет где экзепшены использовать.
>Нет, ну это никуда не годится. Во-первых есть модуль csv, там можно задать любой delimiter, Его ещё изучать надо. Рановато мне работать с узкоспециализированные модулями. Разделитель можно прописать в переменной или в константе.
>это вот сейчас по чистой случайности в полях нет символа | а ведь он может там появиться. Появиться может любой мусор. Но я действовал по обстоятельствам. Код без цикла фор выдал нужный результат.
>Во-вторых ты сам просматриваешь выхлопной файл что ли чтобы убедиться в отсутствии косяков? Нет. Открываю в LibreOffice Calc.
>В-третьих используй with. Исключения не пригодились пока.
>>552172 >В списке всё равно остаются исходные. Наверное, и в этом ты прав. Простым перебором элементов списка напрямую через управляющую переменной задачу решить не получилось. Реализовал цикл по-другому: http://pastebin.com/JNUjEDBk
Тебе нужна только первая функция csv.reader. Там прямо пример в 5 строк есть. Что там изучать?
>я действовал по обстоятельствам >Открываю в LibreOffice Calc Надо бы специально тебе сделать файл в несколько миллионов строк.
>with >Исключения не пригодились пока Это не для исключений, а для корректного закрытия файла. f.close() вызовется сам в любом случае, даже в случае исключения, а не как у тебя.
>>552200 Есть удобная и аккуратная конструкция with. Нет, не хочу with, хоту жрать говно и догадываться потом, а с хуя ли у меня программы на ровном месте в дедлок уходят и постоянно приходится системные лимиты на количество открытых файлов увеличивать.
>>552198 >Тебе нужна только первая функция csv.reader. Там прямо пример в 5 строк есть. Что там изучать? Она только читает csv-файлы, но не удаляет мусор.
>Надо бы специально тебе сделать файл в несколько миллионов строк. Ещё и для проверки конечного результата код писать? А как подом удостовериться в надёжности этой проверки?
Ну то есть ты ожидаешь например имя только из английских символов, с большой буквы. Напиши assert или if raise если оно не соответствует. Или в случае id, тупо int применяешь, он тебе сам выбросит если что не так.
>>552219 >Ну наверное мне следовало бы уточнить что как csv файл 100% валиден. Замена разделителей да, была лишней. А вообще я никогда не ковырялся в CSV-файлах. Я об этом формате узнал из Википедии после того как такой файл попался мне на глаза.
>>552220 >assert или if raise Ох, придётся мне вкуривать ещё один учебник. А потом упарываться официальной документацией.
>>552197 > Простым перебором элементов списка напрямую через управляющую переменной задачу решить не получилось. Дошло наконец почем так: в резульате операции присвоения внутри цикла управляющая переменная перестала ссылаться на элемент списка и вместо этого ссылалась на значение в другой области памяти
>>552130 >Оне не путой. >Проверял в интерактивной оболочке после прогона программы. И если бы он бы пустой, то интерпретатор не стал бы пытаться выполнить блок >[code lang="text"] >if line[0] == ".": >line = line[1:] >[/code] >и соответсенно не выдал бы ошибки. Почему не выдал бы? Прямо вот на проверке условия и вылетел бы. Пустой список и пустая сторка, в данном случае, одинаково ведут себя.
>>552197 Вместо if'а в цикле, кстати, можешь просто csv_lines.lstrip(".") использовать же, вставив это в строку с добавлением \n. Да и вообще, навреное, можно сделать одной строкой: csv = "\n".join(line.lstrip(".") for line in csv.split("\n"))
Двач, поясни за сборку на киви и ffmpeg - в доках говорится, что вроде там идет встроенный ffmpeg, не нужно мучиться с компилированием и сборкой, но как мне тогда использовать его и откуда импортить? Примеров в документации не нашел.
Аноны, подскажите как сделать так, чтобы в запросе к api vk менялся только один параметр (item_id, например, перебирался по очереди- каждый следующий был равен предыдущий +1)? И как сделать, чтобы результат, который возвращает api записывался в файл?
в python пока могу плохо, да, но надеюсь, что "пока"
Допустим, есть такое: st = ((d, 3), (a, 3), (c, 1)) Как вернуть букву, рядом с которым самое большое число? Отсортировать и вывести st[0][0]. Как реализовать вывод букв в алфавитном порядке, если цифры рядом с ними одинаковые? надеюсь понятно описал
>>552405 http://ideone.com/ZVWi8p Но это не самое удачное решение. Вообще лучше пересмотреть свою структуру данных. Раз нужные такие™ запросы, то это не лучший вид хранения.
>>552566 Так у тебя на 87-ой всё равно есть lst[number_lst + 1], которое вообще непонятно чего значить должно, при твоих значениях number_lst. Ты чего сделать-то хочешь? К последнему элементу лучше lst[-1] обращайся, гораздо очевиднее же.
>>552574 Так, оказалось, что несколько часов тестировал не тот скрипт, которые писал. Но, все равно не работает. Можно ли совмещать fhand = urllib.urlopen(url) fh_info_file.write('URL: ' + url + '\n\n' + 'Published files: ' + '\n\n')
for line in fhand :
и
all_in_one_string = fhand.read() ? Сначала построчно разбираю файл, а потом читаю его одной строкой и разбиваю по переносам строк и помещаю в list. Это мне надо, что обработать те строки которые можно привязать только к другой строке, в данном случае <div class="noteFotter">.
Как сделать, чтобы сохранялся в файл только определенный результат работы скрипта? api vk выводит разный результат, но нужно чтобы сохранялся результат только такой: {'copied': 0, 'liked': 1} Подскажите, как такое реализовать?
>>546530 Ну парсер это хорошо и удобно. Проблема в том что парсер будет некорректно обрабатывать / не обрабатывать вообще невалидный html, а регуляркой можешь что угодно парсить.
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "yoba/xlsxwriter/__init__.py", line 3, in <module> from workbook import Workbook File "yoba/xlsxwriter/workbook.py", line 22, in <module> from xlsxwriter.worksheet import Worksheet ImportError: No module named xlsxwriter.worksheet
Питоны, читаю "Укус пи[hide]c[/hide]тона", добрался до первой задачки. Уже глаза себе все выебал, не могу понять, чего не так с кодом. Кто нибудь ее решал, из неофитов?
>>553005 [~]$ python3 -m pip install xlsxwriter You are using pip version 6.0.8, however version 7.1.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting xlsxwriter Downloading XlsxWriter-0.7.4-py2.py3-none-any.whl (133kB) 100% |################################| 135kB 1.3MB/s Installing collected packages: xlsxwriter
Successfully installed xlsxwriter-0.7.4 [~]$ python3 Python 3.4.3 (default, Sep 19 2015, 16:16:36) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import xlsxwriter >>> А теперь катись к хуям, неосилятор.
посоны, мне нужно перехватывать все исключения, выдаваемые сбоящим интернетом. except BaseException: не сработал, исключения по-прежнему ложили программу. except Exception: решит эту проблему?
>>553219 >>553219 Не, в коде ошибок нету, это я криво скопировал. Там с функцией zip беда, я gnuwin32 поставил на десяточку, она справедливо не работает.
>>553446 А я ебу что и как твой раковый вк-апи возвращает?
Попробуй print(vkapi.likes.getList(owner_id=-xxx, item_id=yyy, friends_only=1, type='post')) для начала. Если есть что-то вразумительное - присваивай переменной и пиши ее в файл. Или сразу вместо принта f.write() Иначе кури документацию.
>>553435 Пройди какой-нибдуь курс на той же кодокадемии, что ли, потому что при виде строки >f.write( '\n'.join(str() +'\n')) Складвается ощущение, что ты абсолютно ничего не понимаешь. Т.е. на что ты вообще надеялся, что в этой строке произойдёт?
Помогите в чем проблема? Нужно сделать так, чтобы к прибавлялось 20 к тому, что вводилось. a = input("create text") b = a[0] class pribavit: ===def myfunc (self, x): ====(ss) = 20+x ====print(ss)
====return ss object1 = pribavit() object1.myfunc(a)
Пишет: Traceback (most recent call last): File "C:\MyCodeOnPython.py", line 10, in <module> object1.myfunc(a) File "C:\MyCodeOnPython.py", line 5, in myfunc (ss) = 20+x TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>553858 dict не имеет никакого порядка, остаётся только OrderedDict. Если с памятью проблем нет, не будет ли чище, вместо изъёбств с ловлей эксепшнов, сделать как-то так: a = <иходный словарь> b = OrderedDict() for key in a.keys(): b[key] = a[key] Ведь OrderedDict запоминает ключи в порядке ввода. Ну и a.keys() может быть заменено на что угодно, включая какой-то отсортированнй список. Разве что лишних ключей там быть не должно. Конечно, тут создаётся новый словарь.
Пацаны, я юзаю питон 3 и хочу отсортировать точки на плоскости по полярной координате, используя векторное произведение. Точки сравниваются так: (a < b) <=> (a x b > 0) Но в питоне 3 нельзя написать cmp = lambda a, b : a x b, потому что параметр cmp выпилен и оставлен только key. Че делать?
>>554114 На нём можно и просто всё делать, без model-view. В любом случае, лучше ничего нет, ну, может гтк, но я им не пользовался. Всё остальное либо мертво, либо говно-ткинтер, который в стандартной либе лишь из-за совместимости.
Когда наступает тот уровень знания питона, когда можно с такого(см ниже) перейти на что либо серьезное калькуляторы, текстовые редакторы? Что нужно еще выучить чтобы перейти на следующий уровень? К слову я просто решил кое что опробовать, так что извините, если вам что либо не нравится. import math import random a = input("create chislo: ") b = random.randint(1,5000) c = random.randint(1,5000) class pribavit: def myfunc (self, x, y): ss = int(y) + int(x) while ss < c: print(ss) ss = ss + 1 print("result is ", ss) input("Exit?: ")
return ss object1 = pribavit() text = object1.myfunc(a, b) spisok = str(text)
class napisatel: def pisat(self, pismo): f = open("znachenie.txt", "w") f.write(pismo) f.close() print("zapis osushestvlenna") def pisat2(self, pismo): f = open("znav.pdf", "w") f.write(pismo) f.close() print("zapis osushestvlenna")
napisat1 = napisatel() #napisat1.pisat2(spisok)
class rasshiren(napisatel): def pisat3(self, pismo): f = open("znav.fb2", "w") f.write(pismo) f.close() print("zapis osushestvlenna")
>>554142 Нахуй этот кривущий транслит? create chislo? Really? Питон3 с юникодом нормально работает, пиши либо на рюске, либо на английске. И не выебывайся.
Дальше лень читать без форматирования. Запили на пасту чтоб анон не мучился.
>>554149 Берёшь и делаешь, ёпте, чего ждать-то? Не знаешь, как что-то сделать — в гугл. Или ты думаешь, что задрочив 1000 элементарных упражнений тебя вдруг магическим образом осенит и ты без помощи интернета и даже доков напишешь еве онлайн, вслепую перескочив на стаклесс?
Чуваки, а вы помимо расстановки пробелов в коде ещё и номера строк ставите? Просто хочу сказать что, те кто используют питон мудаки. Благодарю за внимание. С уважением, ваш Аноним.
>>554350 Крейзи. С уважением, ваш Аноним. ---------- Аноним писал: Не только номера строк, но ещё и номера символов на строке (столбцов), так интерпретатору легче показывать, где ошибка.
>>550232 Эт нормально. Просто у тебя уже старческое слабоумие начинается. Обычно простые вещи проще осилить, чем сложные, но когда мозги, как сухое говно, приходится лабать на том, к чему привык.
>>554522, нахуй тебе тред, заваливайся к нам >>549434 У нас тут джанга, бутстрап, немного жс, парсинг, лёгкая обработка видео, очереди на rabbitmq. Есть задачи для нубов (лойсы делать например).
Снова я со своим тупым вопросом. Что не так? Сначала я делаю так: all_in_one_string = fhand.read() lst = all_in_one_string.split('\n') number_lst = len(lst) - 1 stat_num = 0
while number_lst >= 0 : ----if 'text"' in lst[number_lst] : ... ----number_lst -= 1 if '<div class="noteFotter">' in lst[number_lst + 1]: ... number_lst += 1
То есть, сначала прохожу с конца по каждому элементу списка (и эта часть работает) до -1, а потом с начала списка (вернее пытаюсь, ведь эта часть не работает). Но какого хера мне пишет, что номер элемента вне списка в начале второй части?
>>554566 Ну а запринтить number_lst перед этой строкой и увидеть его значение религия не позволяе? Вангую, перед строкой if '<div class="noteFotter">' in lst[number_lst + 1], переменная number_lst равна номеру последнего элемента списка, т.е. number_lst -= 1 не выполняется ни разу (я вижу там continue, а остальную часть кода и сам текст ты скрыл, что очень способствует помощи).
>>554578 >у а запринтить number_lst перед этой строкой и увидеть его значение религия не позволяе? Позволяет. В том-то и дело, что там -1 для этого я и прибавляю единицу во втором цикле if '<div class="noteFotter">' in lst[number_lst + 1]:. Либо 0, если я обнуляю number_lst перед этим. >Вангую, перед строкой if '<div class="noteFotter">' in lst[number_lst + 1], переменная number_lst равна номеру последнего элемента списка, т.е. number_lst -= 1 не выполняется ни разу (я вижу там continue, а остальную часть кода и сам текст ты скрыл, что очень способствует помощи). Там: except : ----print "Can't download", img ----continue Т.е., возврат в начало первого цикла.
Никак не могу понять нахуя нужен self кроме как просто первый параметр метода. В чужом коде вижу его часто не только в качестве первого параметра в описании метода. Зачем он нужен?
>>554793 >Чтобы обращаться к своему экземпляру класса. Помедетируй над этим. t = Test(); t.x - так ты обращаешься к содержимому класса снаружи. self.x - изнутри класса. Ничего нового и сложного тут нет. Ты вообще с ООП в других языках работал?
>>554798 Да это я знаю и так. Вопрос в том зачем он нужен, когда можно обойтись без него вставляя его только в описании метода. И поэтому мне также непонятно почему он вообще где либо есть кроме как там где я сказал. Да в PHP было дело. Но в PHP мне все казалось предельно ясным, хотя я его подзабыл, но там вроде $this -> вместо self.
>>554803 Там все по другому, там, если не ошибаюсь это принудительно делается, и и вообще там насколько я помню над этим можно даже не задумыватся. Меня другое интересует, почему его при всем при этом используют не только так как обязательно?
>>554806 Вот у меня есть класс. Вот пишу я в нём есть метод, в котором хочу использовать один из атрибутов (экземпляра) этого класса. Как я без self до него доберусь-то? Никак. Затем self и нужен.
>>554585 Принаут, в котором будет >print(number_lst) # -1 or 0 >print(len(lst)) # > 1 >if ... in lst[number_lst+1] # errore В студию, пожалуйста. Только принты внутрь лупа ставь, ты вадеь наверняка там инкрементируешь number_lst, да?
У самого не получилось написать, а в Интернетах скрипты вызывают ZeroDivisionError. Да ещё почитал, что на Питоне делать такой скрипт не надо, легче на С намутить. Метод решения я знаю, а по поводу Вики – хуй знает, как я проебал этот алгоритм, так что спасибо.
Котаны, затестил сейчас PyQt - просто сказка, есть xml-представление, вменяемый дизайнер, где можно вручную прописывать все свойства и лэйауты, все просто летает. Вся эта тема с сигналами и слотами - вроде не сложно, можно вполне быстро подключить всю логику. Единственное, пока не знаю, насчет сборки, говорят какие-то сложности могут возникнуть, но в целом пока очень годнота.
>>554908 cx_freeze. Под вендой проблем со сборкой нет. Под линуксом собирал один раз, была проблема с поиском и копированием *.so файлов в автоматическом режиме, в итоге скопировал их руками. Но под линуксами уж проще пакеты поставить или сам pyqt собрать, нежели делать бинаруную сборку.
>>554828 Я убрал в while и все заработало. ХЗ почему так. Хреново конечно, но ладно. Теперь вопрос в том как обойти cloudflare, т.к. эта хрень мне запрещает заходить на сайт (через браузер захожу нормально).
>>555085 Загуглил, что надо под браузер закосить. Вставил urllib.URLopener.version = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461)' Вроде пока работает. Потом может еще за прокси спрошу. Что-то у меня не получается с ними.
>>555197 Если ты у мамки геймдев то бери юнити и не выебывайся. Если задача стоит сделать игру именно на питоне чтобы лабу сдать или курсовик , то pygame, например. Хотя можно и в Tkintere ебашить.
Почему в этой строке if url.endswith('.jpg' or '.jpeg' or '.png' or '.tiff' or '.bmp' or '.pdf' or '.mp4' or '.avi' or '.wmv') : срабатывает только первый '.jpg', а остальные форматы тупо игнорируются. То есть, есть попадается, например, 1.wmv или 1.jpeg, то if не работает?
Как с помощью питона получить значение из ячейки экселя содержащего значение выпадающего списка. Например, есть поле "Материалы", там есть "МДФ", "Массив", "ДСП". Рядом есть еще одно поле "Толщина" и соотвествующие значение "6", "10", "12", "16". Есть словарь - materials = {'МДФ' : {'6' : '230', '10' : '260'}} и так далее. Нужно соответсвенно получить цену, если заданно МДФ 10 = 260.
Делаю через xlwings. В принципе всё ахуенно.
Значения вроде вытаскиваются, однако код всё равно не работает. Выдает KeyError 16.0 http://ideone.com/DhnqHU
>>555244 Конечно трудно, я ж не изначально спрашивавший, и мне пайгейм казался уже много лет чуть ли не заброшенным проектом, и копаться на их убогом сайте, где даже кнопки давнлоад или того же FAQ нет, желания не появлялось (честно, я туда перед постом зашёл и сразу вышел).
>>555257 str(int(...)), например. Откуда я знаю, в каком там формате у тебя записаны данные в экселе. Включе у тебя стоит "16", значит именно строку "16" тебе и нужно туда передаь в качестве ключа.
Есть сайт на джанго и файл с пачкой юзеров. Как лучше данные из csv в базу данных загнать? У меня что-то возникают всякие безумные идеи по типу "загнать строчку из csv в форму, провалидировать ее и сохранить" или похожее извращение с моделью. Или просто взять данные и напрямую заебенить в базу? Так ведь пароль нужно будет сгенерировать, и послать юзеру на почту + так как данные заносить нужно в 2 связанные таблицы способ с моделью кажется проще. Чего посоветуете?
>>555509 В csv у меня данные пользователей, имя, емейл, телефон, дата рождения и т.д. Эти пользователи не зарегистрированы на сайте. Мне нужно перенести данные из csv дабы юзер мог зайти на сайт указав свой емейл и пароль(который я сгенерирую и отправлю ему по почте). Как-то так
>>555515 У тебя есть модель юзеров, которые уже зарегистрированы на сайте? Просто берешь делаешь Custom Django Command и заполняешь БД создавая новые записи там же делаешь SMTP сервер и рассылку.
есть один сервер на линупсе, там стоит божественный бетон 2.7. Я страный ньюфаг и умею только в 3. хочу запускать там свои поделия, но не могу поставить необходимые модули для третьего, всякие пип ставят на второй, дефолтный. как же быть?
Алсо, некоторых конкретных модулей от второго под третий может просто не быть, т.к. они говно мамонта/автор умер/забил и поленился. Но может быть альтернатива в первом результате гугла. Если нет, если портить на третий самому лень и прямо таки НАДО второй - есть 3to2, бэкпортит твой код с третьего на второй.
И хуле ты тут в 04:41 забыл? Иди спи, шакал ебучий. Заставил меня отвечать.
>>555618 Я непонятно выразился. Коротко: я в вот ебал второй, хочу третий везде (даже Аллах). На локальной машине все хорошо работает, осталось только модули на сервер накатить.
Сделал поделие которое ползает по всему двачу в поиске "засмеялся проиграл" тредов и качает из них картинки. На сервере сможет делать это целыми днями, пока его не забанят нахуй. А сейчас у меня 10 вечера 0_o
Прошлый:
Слоупокам напоминаю, что в 2020 заканчивается поддержка второго питона и пора бы переходить на третий
http://legacy.python.org/dev/peps/pep-0373/