Сохранен 553
https://2ch.hk/pr/res/544442.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Python

 Аноним 17/09/15 Чтв 14:19:04 #1 №544442 
14424887446200.jpg
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat

Прошлый: >>537855 (OP)

Слоупокам напоминаю, что в 2020 заканчивается поддержка второго питона и пора бы переходить на третий
http://legacy.python.org/dev/peps/pep-0373/
Аноним 17/09/15 Чтв 14:22:36 #2 №544446 
Питонач, я верстальщик-даун, вопрос по Джанге. Пилю свой проект, вот сейчас думаю про архитектуру и алгоритмы.

Есть две версии текста, которые будут браться из базы и отображать на странице. Старый и новый текст. Новый сравнивается со старым и показано где убрано, и что добавлено: например, точно как в вики или на гитхабе. Как это сделать?
Аноним 17/09/15 Чтв 14:26:05 #3 №544450 
>>544446
гугли "django diff"
https://github.com/jedie/django-reversion-compare
Аноним 17/09/15 Чтв 14:46:59 #4 №544462 
Как запросить размер файла перед его скачиванием, а также узнать дату его заливки на сервер?
Аноним 17/09/15 Чтв 14:48:59 #5 №544468 
>>544462
import requests
r=requests.head('http://krautchan.net/files/1442487814001.jpg')
print(r.headers['content-length'])
print(r.headers['last-modified'])
Аноним 17/09/15 Чтв 14:49:57 #6 №544470 
>>544468
Благодарю.
Аноним 17/09/15 Чтв 16:50:51 #7 №544526 
Каково это, писать на мёртвом языке?
Аноним 17/09/15 Чтв 16:56:10 #8 №544528 
>>544526
Ты дурачок? Что ты делаешь в этом треде?
Аноним 17/09/15 Чтв 16:58:20 #9 №544529 
>>544526
Мудило, ты опять выходишь на связь?
Аноним 17/09/15 Чтв 17:03:35 #10 №544534 
>>544526
Заебись!
Аноним 17/09/15 Чтв 17:20:50 #11 №544539 
>>544526
Приятно, ведь он не совпротивляется.
Аноним 17/09/15 Чтв 21:04:41 #12 №544712 
Книжка на оп-пике, кстати, заебись. Совсем недавно начал изучать по ней. И примеры, и задачки сразу после главы.
Есть еще что-то подобное? Чтобы теория с практикой.
Аноним 17/09/15 Чтв 21:07:53 #13 №544715 
>>544712
Попробуй сам себе задачки придумывать и решай их. Гугл в помощь.
Аноним 17/09/15 Чтв 22:40:27 #14 №544758 
>>544450
В стандартной библиотеке тоже есть difflib.
Аноним 17/09/15 Чтв 23:28:05 #15 №544781 
>>544712
Аналогично, начал и понимаю процентов 50%.
Правда я старый и гуманитарий в добавок. Но сдаваться не хочу.
Аноним 17/09/15 Чтв 23:48:59 #16 №544788 
>>544781
Прочитав 1 раз не каждый сразу поймет, нужно перечитывать по несколько раз, все так делают.
Аноним 18/09/15 Птн 03:52:01 #17 №544858 
Сегодня узнал что в двойке оказывается нет nonlocal. Бэкпортинг говорите? Ну-ну.
Аноним 18/09/15 Птн 09:48:16 #18 №544931 
14425588966600.jpg
>>544858
Ну, к слову, nonlocal и global — это больше сигнал о том, что что-то не так в ОРХИТЕКТУРИ.
Аноним 18/09/15 Птн 12:03:13 #19 №544968 
Делал кто парсер пикуба и джойреактора? Интересует в научных целях. Нужно выгружать теги, рейтинг картинок ну и сами картинки было бы не плохо.
Аноним 18/09/15 Птн 14:04:19 #20 №545047 
>>544968
import re
import pycurl

https://regex101.com/
Аноним 18/09/15 Птн 14:13:25 #21 №545053 
>>544968
Не слушай >>545047-чухана, он явно дальше пиэйчпи не заплывал.
aiohttp, beautifulsoup, html5lib/lxml
Аноним 19/09/15 Суб 00:40:53 #22 №545477 
>>544712
https://play.google.com/store/books/details/Al_Sweigart_Automate_the_Boring_Stuff_with_Python?id=UEu0CAAAQBAJ

Вообще охуеть. Примеры очень разносторонние, дают понимание что вообще можно сделать. Отталкиваясь от них легко найти реальные задачки в окружающем тебя мире и порешать их(придется гуглить, но примерно что делать ты будешь знать).
Аноним 19/09/15 Суб 00:44:21 #23 №545479 
>>545477
http://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=sr_1_1?ie=UTF8&qid=1442612599&sr=8-1&keywords=automate+boring+stuff+with+python#reader_1593275994
лучше тут, можно ознакомиться с содержанием
Аноним 19/09/15 Суб 01:10:57 #24 №545487 
>>544931
Это вложенные функции и замыкания доступные на запись.
Аноним 19/09/15 Суб 01:13:56 #25 №545488 
Аноны, хочу сделать интернет-магазин на Django. Именно на нем, так как в нем есть генератор админки по моделям. Сроки у меня очень жесткие.

Приглядываю модули корзин.

https://www.djangopackages.com/packages/p/django-shop/
http://cartridge.jupo.org/

Ну и так далее. Кто реально работал/сталкивался? Запросы скромные - корзина, чекаут, более-менее удобная доработка напильником.
Аноним 19/09/15 Суб 02:25:06 #26 №545510 
как подружить питон с sublime, или есть что-то лучше?

ньюфаг
Аноним 19/09/15 Суб 02:27:06 #27 №545511 
>>545510
Автокомплит везде хуёво работает. Не только в саблайме.
Аноним 19/09/15 Суб 03:23:41 #28 №545531 
>>545511
как запускать из под sublime?
Аноним 19/09/15 Суб 03:33:17 #29 №545533 
>>545531
Осваивай консольку и баш. Хуле там запускать. python lol.py
Аноним 19/09/15 Суб 09:03:55 #30 №545579 
>>545510
PyCharm.
Аноним 19/09/15 Суб 14:01:41 #31 №545662 
>>545487
Я знаю, но в таких ситуациях лучше использовать мутабельные объекты. Это очень редкая ситуация, когда тебе надо присвоить имени другой объект и скорее всего это можно сделать по-другому, более элегантно.
Аноним 19/09/15 Суб 14:02:04 #32 №545663 
>>545510
atom
Аноним 19/09/15 Суб 19:57:12 #33 №545860 
14426818323670.png
Пиздец говно ваше Джунго.
Аноним 19/09/15 Суб 20:09:51 #34 №545864 
>>545860
Мажорные версии, между их релизма год прошел.
Аноним 19/09/15 Суб 20:29:34 #35 №545883 
14426837742400.png
Объясните почему кириллицу так выводит?
Аноним 19/09/15 Суб 20:38:55 #36 №545894 
14426843351070.png
>>545883
ОБЪЯСНЯЮ, ЧЕТКО И ЯСНО
Аноним 19/09/15 Суб 20:54:55 #37 №545908 
14426852957290.png
>>545894
Большое спасибо. Надеюсь несложно будет и это объяснить.
Аноним 19/09/15 Суб 20:56:44 #38 №545910 
>>545908
apt-get install python3-lxml
Аноним 19/09/15 Суб 21:07:41 #39 №545919 
>>545910
Премного благодарен. Последний вопрос. Зачем устанавливать модули через pip, если потом python3 их не находит?
Аноним 19/09/15 Суб 21:15:02 #40 №545928 
>>545919
https://docs.python.org/3/library/sys.html#sys.path

Питон берет пути к библиотекам из sys.path. Либо устанавливай их туда, где питон их ищет, либо добавь новый путь через PYTHONPATH
Аноним 19/09/15 Суб 21:17:28 #41 №545933 
https://docs.python.org/3.5/library/typing.html

Почему еще не обсуждали? Такой то охуенчик.
Аноним 19/09/15 Суб 21:28:32 #42 №545939 
>>545919
Алсо, для третьего лучше устанавливай через pip3
Аноним 19/09/15 Суб 21:39:01 #43 №545951 
>>545933
А нахуя оно? Нет, здорово конечно провести детальный lint, но рантайм игнорирует же.
Аноним 19/09/15 Суб 21:42:57 #44 №545957 
>>545951
>Explicit is better than implicit.


Hа самом деле просто потому что могут
Аноним 19/09/15 Суб 21:45:00 #45 №545960 
>>545957
Тогда можно сразу на Cython попробовать писать.
Аноним 20/09/15 Вск 02:12:58 #46 №546123 
>>545939
Луче python3 -m pip install ...
>>545933
Нинужно, удваиваю >>545951, ide должны страдать. вообще, нахуя оно нужно? Это как докстринги для сфинкса. Хотя этим гвида занимался, вообще непонятно нахуя, калл же полнейший. И вся суть динамики убивается, я хочу передать в функцию свой FakeInt, а мне ide пропердит, что я не то подсовываю.
Аноним 20/09/15 Вск 02:20:23 #47 №546128 
>>545933
Потому что говно. http://pastebin.com/92e6npXV По 9 строк на каждое объявление? Спасибо, нахуй.
Аноним 20/09/15 Вск 09:44:34 #48 №546210 
Хочу начать дрочить Пистон. Какие перспективы, подводные камни, etc.. ?
Аноним 20/09/15 Вск 09:45:29 #49 №546211 
>>546210
Передрочишь - пистон отвалится.
Аноним 20/09/15 Вск 10:30:46 #50 №546232 
>>546210
Перспективы - Варгейминг и многое другое.
Аноним 20/09/15 Вск 10:43:20 #51 №546235 
>>545933
Нашел как оно правильно называется - https://en.wikipedia.org/wiki/Gradual_typing

Ебать я умный
Аноним 20/09/15 Вск 20:31:26 #52 №546471 
>>545053
В регулярочку не можем и распараллеленно кукарекаем?
Аноним 20/09/15 Вск 20:48:08 #53 №546481 
>>546235
А нахуй ано нужно? Непонимаю.
Аноним 20/09/15 Вск 21:01:00 #54 №546485 
>>546481
Смотри на mypy
Короче можно будет сделать проверку типов или компалятор, сам cpython использовать их не будет, но другие интерпретаторы питона или библиотеки для проверки типов - будут. Возможно jython или ironpython будут.
Аноним 20/09/15 Вск 22:38:54 #55 №546521 
>>546485
Понятно.
Аноним 20/09/15 Вск 22:53:52 #56 №546530 
>>546471
Регулярочки для быдла, очевидно же. Они не заменят нормальный парсер.
Аноним 20/09/15 Вск 23:19:16 #57 №546535 
>>546530
Можешь пример парсера привести? Интересно глянуть что там
Аноним 20/09/15 Вск 23:47:14 #58 №546544 
>>546535
lxml, html5lib
Аноним 21/09/15 Пнд 11:02:54 #59 №546645 
Нужно реализовать некую прогу, которая будет коннектиться к экселю и пиздить оттуда параметры, конкретно размер деталей на лист для покройки. Дополнительно нужно реализовать отображение поля с контурами этих деталей, конечно же в приемлемом масштабе, с возможностью их перетаскивать.

Если с экселем я знаю что делать, то с этим полем ебаным даже не знаю что предпринять акромя pygame что является очень унылым. Варианты?
Аноним 21/09/15 Пнд 12:44:10 #60 №546677 
>>546530
Вот открой сорцы своих нормальных парсеров и посмотри, как там регулярочкой твое говно парсится. Быдло.
Аноним 21/09/15 Пнд 13:01:22 #61 №546686 
>>546677
Ты дибил?
https://github.com/html5lib/html5lib-python/search?p=2&q=re+language%3Apython&type=Code&utf8=%E2%9C%93
Максимум 10 регулярок и только потому что они ультрапростые. Сам html приводится в вид дерева, в этом смысл. Готовое отдроченное решение? Нахуя оно нам надо, лучше напишу ещё одну регулярочку!
Аноним 21/09/15 Пнд 13:05:50 #62 №546687 
>>546677
>>546686
Вы короче оба дауны.

Регулярочка нахуй не нужна для пропуска через неё всех ебаных данных. Очевидно для этого нужно изначально написать парсер, которые пиздит например все элементы одной группы, а потом регулярочками как напильником искать нужные тебе конкретно вещи.

Готовое отдроченно решение не везде работает, а также не для всех задач нужны. Когда у тебя есть готовые данные в виде например ссылок img src, то нахуй тебе это ебаное дерево?

Узко мыслите пограмисты.
Аноним 21/09/15 Пнд 13:18:17 #63 №546689 
>>546687
Велосипедисты подтянулись.
Аноним 21/09/15 Пнд 13:19:32 #64 №546690 
>>546689
Ну должен же кто-то пояснять инвалидам с костылями.
Аноним 21/09/15 Пнд 13:26:14 #65 №546695 
>>546690
Что-то я тебя не понял. Ты предлагаешь регулярочки, говоришь, что либа зделана на регулярочках и называешь её костылями?
Аноним 21/09/15 Пнд 13:26:40 #66 №546697 
>>546689
>>546690
лольнул, вся суть программинга итт
Аноним 21/09/15 Пнд 13:27:53 #67 №546698 
14428312736860.jpg
>>546697
Ебало своё закрой, чтобы тебя не видно тут было.
Аноним 21/09/15 Пнд 13:33:13 #68 №546701 
>>546695
Я говорю, что использовать либу с деревом для обхода хтмл в ситуации когда нужно просто отфильтровать равносильное уебанство пропусканию сырого хтмл через регулярочку.
Аноним 21/09/15 Пнд 13:38:17 #69 №546703 
>>546701
Ты пост прочитай >>544968
Аноним 21/09/15 Пнд 14:00:55 #70 №546716 
>>546645
pygtk, pyqt, веб морда
Аноним 21/09/15 Пнд 14:02:39 #71 №546717 
>>546686
Когда-то писал gui морду для форума и beautifulsoup ощутимо тормозил.
Переписал всё на регулярочках - стало намного быстрее.
Аноним 21/09/15 Пнд 14:06:35 #72 №546720 
>>546717
Это понятная цепочка, она не противоречит тому, что я писал. Хотя не очень понятно что там может тормозить на форуме-то, там же просто текстовые поля.
Аноним 21/09/15 Пнд 14:09:35 #73 №546723 
>>546720
beautifulsoup просто очень тормозная либа, хоть и удобная.
вроде как другие парсеры пошустрее.
Аноним 21/09/15 Пнд 14:28:25 #74 №546739 
>>546723
soup умеет использовать другие либы: lxml/html5lib, достаточно чтобы они были установлены.
Аноним 21/09/15 Пнд 14:52:30 #75 №546767 
>>546703
Нахуй мне читать мой же пост? Парсер джоя я почти захуярил, пикабу содержит в себе какой-то дичайший говнокод хтмловский. Такой вырвиглазный пиздец что хочется просто уебать лопатой фронтенд разраба и верстальщика.
Аноним 21/09/15 Пнд 14:53:11 #76 №546768 
>>546717
просто кто-то не может в регулярочки кокок
Аноним 21/09/15 Пнд 14:54:55 #77 №546770 
>>546768
Я и сам не фанат регулярочек. Где-то они к месту, где-то не очень. И поддерживать их тяжело потом. И легко ошибиться.
Но иногда без них никак. И быстро, да.
Аноним 21/09/15 Пнд 15:06:02 #78 №546780 
>>546767
Ну и соси тогда.
>>546768
Регулярочки — грязь.
Аноним 21/09/15 Пнд 15:43:18 #79 №546806 
Почему syncdb может не создавать таблицы для south не смотря на то, что их нет в базе?
Аноним 21/09/15 Пнд 15:48:11 #80 №546809 
>>546806
хз
python manage.py schemamigration core --initial
Сделал? Что за таблицы для south? south_migrationhistory?
 Аноним 21/09/15 Пнд 18:14:48 #81 №546895 
>>546809
schemamigration говорит, что не таблицы south_migrationhistory. Вот она и не создается, да. Если есть время и желание помочь пиши на фейкопочту [email protected]
 Аноним 21/09/15 Пнд 18:16:10 #82 №546897 
>>546895
>не
нет
Аноним 21/09/15 Пнд 18:22:57 #83 №546900 
>>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
)
;

Хотя syncdb должно это создавать.
Аноним 21/09/15 Пнд 18:25:16 #84 №546902 
>>546895
И, кстати, а сами миграции у тебя уже были?
Или это новый проект? Если новый, то почему ты используешь south, сейчас же миграции встроены в джангу в новых версиях?
Аноним 21/09/15 Пнд 18:34:58 #85 №546908 
>>546767
Можно файлик с кодом? Давно хотел прикрутить Джой и Пикабу к боту в телеграме
Аноним 21/09/15 Пнд 19:22:14 #86 №546940 
>>546809
Ох этот ваш вонючий джанго.
Аноним 21/09/15 Пнд 19:24:59 #87 №546943 
>>546940
Что не так?
Аноним 21/09/15 Пнд 19:56:30 #88 №546962 
>>546943
Джанго.
Аноним 21/09/15 Пнд 20:04:14 #89 №546967 
>>545908
Что ты там замазал питухон, anon@dbpp ? Уже лезу подключаться.
Аноним 21/09/15 Пнд 20:41:18 #90 №546997 
14428572787730.jpg
Питоны, помогите разобраться с ситуацией.
Старательно набрал пример из книги Доусона. Сверял при этом с англоязычным оригиналом книги. Проблема такая: программа совсем не умеет блокировать победные ходы противника. Хотя по идее должна это делать.
http://pastebin.com/CKMNGZeT
Аноним 21/09/15 Пнд 20:45:22 #91 №546999 
>>546997
Взял для сравнения оригинальный англоязычный код программы : http://courses.ischool.berkeley.edu/i90/f11/resources/chapter06/tic-tac-toe.py
Отрыл оба варианта в meld, но не сумел найти логических различий.
Аноним 21/09/15 Пнд 20:46:00 #92 №547000 
>>546999
А этот вариант работает?
Аноним 21/09/15 Пнд 20:52:19 #93 №547011 
14428579394830.png
14428579394841.png
>>547000
Да, работает. Последовательность действий пользователя воспроизвожу одинаковую. Поведение программы разное.
Аноним 21/09/15 Пнд 20:53:38 #94 №547013 
14428580184620.png
>>547011
Отступ
Аноним 21/09/15 Пнд 21:19:13 #95 №547030 
14428595536210.jpg
>>547013
Спасибо. Пофиксил отступ в функции winner(). Но баг остался.
Аноним 21/09/15 Пнд 21:23:35 #96 №547033 
>>547030
> for moves in legal_moves(board):
должно быть for move
строка 136
Аноним 21/09/15 Пнд 21:27:16 #97 №547035 
14428600369140.jpg
>>547033
Точно! Спасибо.
Аноним 21/09/15 Пнд 21:31:35 #98 №547043 
>>547030
Какие же кошки стремные. Как крысы.
Аноним 21/09/15 Пнд 21:37:47 #99 №547051 
>>545883
консоль в твоей ёба ide не робит юникод по полной
http://pastebin.com/YrS8LbVh
ide для работы когда, хороша, а учиться нужно без ide
Аноним 21/09/15 Пнд 21:38:45 #100 №547053 
14428607261510.jpg
>>547043
Собираю фотки кошек с выразительными мордами вместо смайликов. Особенно люблю сумасшедшие морды.
Аноним 21/09/15 Пнд 21:40:11 #101 №547056 
>>547051
Учиться надо у доски, мелом шкрябая код из тетрадки и построчно объясняя преподу что там происходит.
Аноним 21/09/15 Пнд 21:41:14 #102 №547057 
>>545894
Что так многие хотят всех пересадить на p3? Ты ведь хуйню ему насоветовал ещё и запутал.
Аноним 21/09/15 Пнд 21:44:26 #103 №547058 
>>547051
Дело не в консоли, а в том что он делает print list и печатается repr элементов
Если бы он написал
print advice[0]
или там
print ' '.join(advice)
Всё бы работало
>>547057
> Что так многие хотят всех пересадить на p3?
Недавно начали учить питон и начали с трешки и у них бугорт что почти везде в продакшене двойка
начинал учить когда питон был 1.6
Аноним 21/09/15 Пнд 22:41:07 #104 №547090 
14428644678000.jpg
>>547058
>> Всё бы работало
То что на пике, не могу назвать "Всё бы работало".
>> Если бы он написал print advice[0]
не падало бы только в пе3, а пе2 падало с "UnicodeEncodeError: 'charmap' codec can't encode character u'\x97' in position 21: character maps to <undefined>"
>>Недавно начали учить питон и начали с трешки
А учить питон лучше с ассемблера
Аноним 21/09/15 Пнд 22:45:28 #105 №547092 
14428647283880.png
>>547090
> не падало бы только в пе3, а пе2 падало с
Умвр
Аноним 21/09/15 Пнд 22:59:37 #106 №547097 
>>547092
>>547092
В линуксах не падает да. Но с кубиком то надо же что то делать?
>> Умвр
что это?
Аноним 21/09/15 Пнд 23:04:47 #107 №547104 
>>547097
> что это?
умвр - "у меня всё работает".
> Но с кубиком то
Проблема в том что этот кубик там есть. Может ещё и другие символы попадаются какие-то подобные, их тоже все по одному заменять?
Аноним 21/09/15 Пнд 23:19:08 #108 №547116 
>>547104
ДотрЁхал ты меня буду перекатываться, может быть. Спасибо что разобрал всё мною написанное.
А ещё pip под двойкой на винде падает из за юникода в доменном имени машины.
Аноним 21/09/15 Пнд 23:36:45 #109 №547126 
>>547116
> на винде
Там много чего ещё работать не будет, в чем проблема поставить линакс на виртуалочке или vps?
Аноним 22/09/15 Втр 00:03:39 #110 №547133 
>>547126
Да вы заебали. За несколько лет на тройке ни разу не было так, чтобы под виндой что-то не завелось. Все норм работает. А если бы было не норм, то нахуй нужен такой питон.
Аноним 22/09/15 Втр 00:35:17 #111 №547141 
>>547090
>То что на пике, не могу назвать "Всё бы работало".
Это норма, просто в большинстве шревтов END OF GUARDED AREA выглядит как тире, а в этом - нет. Вообще для тире другой символ так-то, сайт сделали мудаки.
>не падало бы только в пе3, а пе2 падало
Юникодная строка же, системной кодировкой закодируется и выведется нормально. Другое дело что почему-то lxml возвращает в одном питоне строку, а в другом список с этой строкой.
>>547057
Потому что некрофилия это зашкворно.
Аноним 22/09/15 Втр 05:46:49 #112 №547199 
>>546895
Да были, вроде. Мне достался уже готовый проект, в котором впилен south, но почему-то не используется. Я решил это исправить. По дурости удалил руками таблицу south_migrationhistory, вот пытаюсь восстановить теперь.
>>546900
Охуеть совет
Аноним 22/09/15 Втр 14:52:48 #113 №547355 
Привет, питоногоспода.

Тут такая проблема. Есть код из Саммерфилда(Глава 6):

class Point:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
...
горсть свойств
...

class Circle(Point):
def __init__(self, radius, x=0, y=0):
super().__init__(x, y)
self.radius = radius
...
горсть свойств
...
доктесты


В пайчарме доктесты работают, и сам я классом могу нормально пользоваться.

В эклипсе вылазит вот такая поебота:
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)

ЧЯДНТ? Эклипс как-то не так настроил, что ли? Помоги, анон, с меня как обычно.
Аноним 22/09/15 Втр 15:05:27 #114 №547363 
>>547355
Эклипс у тебя второй питон запускает, в котором суперу нужно было передавать хотя бы один аргумент.
Аноним 22/09/15 Втр 15:23:35 #115 №547375 
>>547363
Спасибо
Аноним 22/09/15 Втр 15:26:22 #116 №547378 
>>547013
Что это за diff такой красивый?
 Аноним 22/09/15 Втр 16:31:54 #117 №547423 
>>546902
>>547199
Аноним 22/09/15 Втр 16:37:08 #118 №547428 
>>547199
http://south.readthedocs.org/en/latest/convertinganapp.html#converting-an-app
Аноним 22/09/15 Втр 17:01:25 #119 №547435 
14429304859980.png
14429304859991.png
>>547378
meld
Аноним 22/09/15 Втр 17:40:05 #120 №547448 
Бояре, принимайте неофита. Отучился 3 года в шараге, где одним из предметов было программирование 2.5 года, но преподом был ебучий маразматик, потому знаю ноль целых хуй десятых.

Решил теперь, когда курс программирования позади, начать учить язык сам. Выбрал змеюку эту. Скачал книжку Лутца хваленую, мне на голову прилетел тут же гигантский объем теории, еще и так заумно поданной, что я подался на ютюб за простыми лекциями по синтаксису хотя бы. Смотрю эти, тут хоть понятно : .com/playlist?list=PLbKwBvrpogbZfU50rPMmXow3aMFjIw4gk/ Наверняка закидаете говном, но щито поделать?

Подскажите, где найти самые простые задачи, а то везде натыкаюсь на что-то очень сложно (ну или я совсем тупой). Или же вшибать в голову Лутца, покуда не станет понятно?
Шапку читал.
Спасибо за помощь заранее.
На закуску мой великий препод, йоба изобретатель, которого выгнали в этом году, лол. https://www.youtube.com/watch?v=9_G9bfU5GfU
Аноним 22/09/15 Втр 17:42:10 #121 №547449 
>>547448
>где найти самые простые задачи
https://www.codecademy.com/tracks/python
Аноним 22/09/15 Втр 17:51:44 #122 №547452 
14429335045460.jpg
>>547448
Ахаха ткнул видео
"мы изобрели наручный джостиковый манипулятор и заняли первое место по житомирской области"
Аноним 22/09/15 Втр 18:07:52 #123 №547466 
14429344733310.png
http://pastebin.com/0zg94RCT
Flask'оводы есть тут? Читаю Flask Web Development, в шестой главе была реализована отправка сообщений на почту. Через консоль всё хорошо отправляется, а вот когда запускаю сервер, нет.

Сетаю логин, пароль:
set MAIL_USERNAME=<Gmail username>
set MAIL_PASSWORD=<Gmail password>
запускаю сервер, ввожу имя, приложение его принимает и записывает в базу, при повторном вводе имени он уже будет узнавать имя и писать новое приветствие.
Для отправки сообщений сетаю ещё это:
set FLASKY_ADMIN=<Gmail username>
И вот когда я вот все три хрени засетил, при вводе нового имени фурифокс выдаёт "Соединение было сброшено". Новое имя не добавляется в базу.
Аноним 22/09/15 Втр 18:14:16 #124 №547469 
>>547466
DEBUG mode включи, логи посмотри.

Хуй знает насчет фласка но в django лучше складывать письма в базу и по cron отправлять их из другого процесса. Потому что пока твоё ебаное письмо, особенно через сторонний мэйл сервер отправиться клиент будет ждать, сервер будет заблочен да и за ддосить тебя так легко будет.
В django есть готовые решения для всей этой почтовой хуйни.
Аноним 22/09/15 Втр 18:47:06 #125 №547493 
14429368262100.jpg
>>547469
Ой вей, я таки забыл про debug из-за shell manager, шаблон он не мог найти, спасибо. Правда странно что в книге про эти 2 шаблона не было написано, нашёл их на гитхабе у автора. Вообще книга вроде хорошая, но странная, иногда умалчивает про содержимое и создание некоторых файлов, вот шаблоны нужные для 6 главы лежат в гите для 7-ой.
https://github.com/miguelgrinberg/flasky
Аноним 22/09/15 Втр 18:49:35 #126 №547495 
>>547493
А вот это пробовал?
http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
Многие рекомендуют эту доку. Даже перевод на русский был где-то(на хабре вроде)
Аноним 22/09/15 Втр 18:50:41 #127 №547497 
>>547495
Только что понял что это от того же автора.
Аноним 22/09/15 Втр 19:14:04 #128 №547514 
>>547495
Пробовал, на openid слился, хотел через его же другую статью, OAuth2 запилить вместо openid и продолжить туториал, не получилось.
Аноним 22/09/15 Втр 20:51:04 #129 №547594 
>>547449
Классно, спасибо большое!
Аноним 22/09/15 Втр 21:51:09 #130 №547630 
Кто-нибудь может подсказать мне, как примерно должен выглядеть код для этой примитивной задачки:
https://www.reddit.com/r/beginnerprojects/comments/1bytu5/projectmenu_calculator/
Все мои варианты слишком костыльные и похожи на удаление гланд через анальное отверстие. Я уверен, что есть способ изящно, аккуратно и с минимумом кода написать эту программку.
мимоньюфаг
Аноним 22/09/15 Втр 21:59:03 #131 №547636 
>>547630
Пилишь дикт с номерами, названиями и ценами, гоняешь цикл в котором считываешь строчку и вытаскиваешь цены из дикта. В чём проблема?
Аноним 22/09/15 Втр 22:00:46 #132 №547637 
>>547630
https://dpaste.de/8ODd
На питоне2
Аноним 22/09/15 Втр 22:08:05 #133 №547641 
>>547637
>>547636
Блять, лол, я почему-то забыл, что можно списки в качестве value в словарях использовать. Видимо, потому что до сих пор такое не применял, а лишь где-то слышал об этом.
Спасибо вам большое!
Я совсем ньюфаг, не бейте.
Аноним 23/09/15 Срд 01:53:42 #134 №547719 
Смотрю Introduction to Python от O'Reilly и визжу как сучка. Всего-то дошел до if, else, ==, !=, а уже восторга полные штаны. Хочу поскорее дойти до момента, когда смогу обрабатывать данные введеные с клавиатуры юзером (интуиция подсказывает, что за это отвечает какой-нибудь raw_input).

Жаль, что сейчас дохуя работы и могу только полтора часа перед сном уделять, так бы больше уже знал. Но в целом я в восторге. Также есть уже идея софта, который буду писать для автоматизации своей работы, на ходу рождается куча полезных функций, которые можно там реализовать, уже начал записывать, но еще не понятно как это структуировать, как построить иерархию правильно. У меня по-сути каждая идея - это перепиливание иерархии. Хотя, хуй знает. Скорее всего я еще не имею толком представления о чем говорю и все это лишь догадки.

Возможно подскажите как вы вообще записываете свои безумные идеи, как их структурируете? Понятно, что когда делаете чужую программу - там тз. А своя ведь это постоянный поток сознания и перепилов. То добавить, се. Брать отсюда сюда.

Или там первую неделю записываете все необходимые штуки, вторую структурируете, а третью пишете (образно)?
Аноним 23/09/15 Срд 01:57:05 #135 №547720 
>>547719
Когда я начинал кодить частенько писал что-то как придется, а потом переписывал заново. Иногда по 2 раза.
Аноним 23/09/15 Срд 02:51:04 #136 №547730 
>>547719
>А своя ведь это постоянный поток сознания и перепилов. То добавить, се. Брать отсюда сюда.
Поумерь пыл, бери что тебе по зубам реально сделать за неделю. Своего рода методология agile при работе в одиночку. Доведи до минимально рабочего состояния, а потом навешивай свои безумства небольшими порциями с релизами каждую неделю. Рабочий прототип сильно приводит в порядок мысли и яснее становятся перспективы и возможные трудозатраты.
Аноним 23/09/15 Срд 04:44:27 #137 №547741 
Я не понимат, как использовать пост параметры?

[CODE]#!/usr/bin/python
import cgi
import cgitb


cgitb.enable()

someString = ""
form = cgi.FieldStorage()

def drawAdditionForm():
addForm = ""
addForm += "<form action=\"params.py\" method=\"POST\" >"
addForm += "<table border=\"0\">"
addForm += " <tr><td class=\"ralign\">Link:</td><td class=\"lalign\"><input type=\"text\" name=\"link\" id=\"link\" ></td></tr>"
addForm += " <tr><td class=\"ralign\"></td><td class=\"lalign\"><input type=\"submit\" value=\"Add link\" ></td></tr>"
addForm += " <tr><td class=\"ralign\"></td><td class=\"lalign\"></td></tr>"
addForm += " </table>"
addForm += "</form>"

return addForm

def getLinkParams():
someString = "Message: "
someString += ", ".join(form)

def ifNoLink():
someString = "Could not find link"

##############################
if "link" in form:
getLinkParams()
else:
ifNoLink()

print "Content-Type: text/html"
print
print "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"
print "<html xmlns=\"http://www.w3.org/1999/xhtml\">"
print "<head><title>Links</title>"
print "<link rel=\"STYLESHEET\" href=\"style.css\" type=\"text/css\" >"
print "</head><body>"
print "<div></div>"
print "<div></div>"
print "<div>" + drawAdditionForm() + "</div>"
print "<div></div>"
print "<div>"+ someString +"</div>"
print "</body></html>"[/CODE]
Аноним 23/09/15 Срд 08:49:58 #138 №547776 
Программач, с тебя

TOП 10 ЭВРИ КУЛЛ ПРОГРАММ НА ПАЙСОНЕ!!!:

(ну хотя бы 5, ладно)
Аноним 23/09/15 Срд 09:54:43 #139 №547793 
>>547776
А как оценить насколько программа КУЛЛ? По какому критерию.
Аноним 23/09/15 Срд 09:55:27 #140 №547794 
https://www.python.org/dev/peps/pep-0505
Бля, ну почему не как в кофейке?! Мне всё равно придётся None присваивать этой залупе. В языках со статической типизацией-то понятно, там надо объявлять переменную, но тут-то, в динамике, сам пёс велел.
Аноним 23/09/15 Срд 09:56:02 #141 №547795 
>>547741
Ну и блевотина.
Аноним 23/09/15 Срд 09:57:36 #142 №547797 
>>547794
Иди на хуй. Пусть будет NameError вместо твоей неявной залупы.
Аноним 23/09/15 Срд 10:00:50 #143 №547799 
>>547797
define "неявной"
Чем None в данной ситуации отличается от необъявленной переменной? Исключая опечатки. Я же не предлагаю везде игнорировать отсутствие связи имя-объект, но раз уж для этого зделали оператор, то почему бы не зделать до конца?
сам иди нахуй
Аноним 23/09/15 Срд 10:03:23 #144 №547802 
>>547794
ненужная хуйня. впрочем, в божественной двоечке такого говна не предвидиться, у неё стабильный синтаксис и апи. а бета тестеры должны страдать
Аноним 23/09/15 Срд 10:05:18 #145 №547803 
>>547802
Легаси закукарекало заместо авроры.
Аноним 23/09/15 Срд 10:11:42 #146 №547806 
14429923028030.png
>>547799
>Чем None в данной ситуации отличается от необъявленной переменной
Вот именно этим и отличается.

На кофейке/жабаскрипте частенько приходится минут 15 тратить на хуйню копаясь в дебаггере. Не обязательно конечно от необъявленной переменной, но из-за подобной хуйни (чаще всего похереный this). undefined становится любимым словом.

После того как я вернулся обратно на питон, ко мне вернулась радость жизни, нормализовался сон, пробудился аппетит, появились деньги и хуй крепко встаёт.
Аноним 23/09/15 Срд 10:15:54 #147 №547809 
>>547806
Эээ… Я говорю только лишь о поведении при использовании этого оператора. Всё остальное чтобы осталось как было. Хотя, с другой стороны в __init__ такое поведение лишь мешает. Может ты и прав.
Аноним 23/09/15 Срд 13:56:45 #148 №547874 
Поясните приобщаещемуся. Как внутри метода сдетектировать были ли переданы аргументы или нет. Пока накостылил через магические числа:

def pop(self, x=-1, y=-1):
if x==-1 or y==-1 :
print "No args"
else:
print "Args: %i, %i" % (x, y)

o.pop() #No args
o.pop(1, 2) #Args: 1, 2
Но колхоз же, как по уму делать?
Аноним 23/09/15 Срд 14:10:18 #149 №547880 
>>547874
Да почти также, ставят None или дефолтное значение. Если у тебя ничего умного по отсутствию параметров не происходит, тогда вообще убери дефолтные значения, пусть исключение возникнет.
Аноним 24/09/15 Чтв 01:47:27 #150 №548183 
Посоны, вот во втором пистоне map работает нормально. То бишь
> a = []
> map(a.append, [1, 2, 3])
> a == [1, 2, 3] # True

А в третьем надо делать list(map(a.append, [1, 2, 3])). Быстрое гугление не помогло, да и спать собираюсь. Как добиться в третьем такого же поведения, как во втором?
Аноним 24/09/15 Чтв 01:48:21 #151 №548184 
>>548183
Это я к тому, что map не выполняется сразу, а возвращает объект map'a.
Аноним 24/09/15 Чтв 02:02:07 #152 №548191 
>>548184
Итератор он по сути возвращает. Это не значит, что он ненормально работает - так память экономится и всё быстрее? работает.
Аноним 24/09/15 Чтв 02:07:06 #153 №548192 
>>548183
Делай a.extend([1,2,3])
В третем питоне map ленивый
Аноним 24/09/15 Чтв 05:30:13 #154 №548215 
>>548192
А есть разница между extend и банальным a + [1, 2, 3]?
Аноним 24/09/15 Чтв 05:40:00 #155 №548218 
14430624002600.png
>>548215
Да.
a+[1, 2, 3] создает новый список.
a.extend добавляет элементы в уже существующий.
a+=[1,2,3] впрочем тоже
Аноним 24/09/15 Чтв 21:41:46 #156 №548509 
Выслали тестовое задание с требованием чтобы оно на python3 работало.
Охуеть пацаны.
т.python2-боярин
Аноним 24/09/15 Чтв 21:45:02 #157 №548515 
>>548509
Ещё и git хотят вместо лампового hg.
Куда катится мир.
Аноним 24/09/15 Чтв 23:15:52 #158 №548624 
Можно как-то заблокировать питоновскую очередь (Queue) чтобы пока я что-то с ней не сделал, все остальные треды, которые хотят записать в нее или считать с нее зависли пока я им не разрешу?
Аноним 24/09/15 Чтв 23:18:06 #159 №548628 
>>548192
Ну то что я написал про список, это только для примера.
Аноним 24/09/15 Чтв 23:19:35 #160 №548631 
>>548624
Залезь вовнутрь, у ей там неонка лок. Залочь его. Только почему не обернуть её в свою Queue с локом?
Аноним 24/09/15 Чтв 23:20:02 #161 №548634 
>>548624
Да. threading.Lock
Аноним 24/09/15 Чтв 23:21:32 #162 №548636 
>>548631
>>548634
Ладно, смотрю-разбираюсь.
Аноним 24/09/15 Чтв 23:21:54 #163 №548637 
>>548628
Я понял.
Почему просто не делать в цикле обычном что-то со списом?
map тут говнокод если честно. Я раньше любил такое тоже, но потом вырас и стал писать попроще.
Ну делай list(map()) если оче хочется.
Аноним 24/09/15 Чтв 23:40:55 #164 №548651 
>>548637
Да я собственно ради интереса больше. Переделал в генератор списка и не выпендриваюсь.
Аноним 25/09/15 Птн 00:28:42 #165 №548704 
>>548634
http://ideone.com/vU0MPL
Чет не блочится нихера.
Аноним 25/09/15 Птн 00:34:58 #166 №548708 
>>548704
Шутник дохуя.жпг?
Ты же в одном только потоке делаешь acquire, что он тебе должен залочить?
Аноним 25/09/15 Птн 00:39:05 #167 №548710 
>>548708
Блин. А как в одном треде вызвать блокировку всех остальных?
Аноним 25/09/15 Птн 00:40:35 #168 №548711 
>>548710
Остальные должны тот же лок эквайрить, тогда будут ждать, пока этот не отпустит. Но вообще, ты хочешь, похоже, семафор.
Аноним 25/09/15 Птн 00:45:29 #169 №548715 
>>548710
Ты пробовал доки/теорию читать?
Аноним 25/09/15 Птн 01:16:42 #170 №548730 
Кто нибудь использовал PySFML или KIVent для геймдева? Как прозводительность/синтаксис? Или может посоветуете другие живые библиотеки?
Аноним 25/09/15 Птн 03:49:56 #171 №548766 
>>546686
вы все ебанутые дебилы.
нормальный разбиратор xml/сломанного_html внутри не должен использовать регулярки ни на каком этапе. там осуществляется _синтаксический разбор_ по классическим алгоритмам.
Аноним 25/09/15 Птн 09:46:14 #172 №548799 
>>548766
Какая разница, если ты также будешь проверять каждый символ на a-z?
Аноним 25/09/15 Птн 12:48:58 #173 №548834 
Такая тема, мне нужно пройти по списку URL и по-вытаскивать title, meta, h1 в таблицу для проверки. Если с первыми двумя проблем не возникает, то заголовки на разных типах страниц в разных местах. Сейчас я просто прогоняю повторно по пустым ячейкам, указывая другой путь.

Помогите сделать красивую конструкцию для перебора типичных возможных путей элемента. Чот не могу сообразить ничего, кроме

try:
h1 = g.doc.select('/html/body/bla-bla-bla/h1').text().encode('utf-8')
except:
try:
h1 = g.doc.select('/html/body/hui-pizda/h1').text().encode('utf-8')
except:
try:
h1 = g.doc.select('/html/body/jigurda/h1').text().encode('utf-8')

Но по-моему, должен быть более элегантный способ
алсо, для собсно парсинга юзаю grub
Аноним 25/09/15 Птн 12:49:59 #174 №548835 
>>548834
имеется ввиду лестница из вложенных одна в другую конструкций try-except
Аноним 25/09/15 Птн 12:57:29 #175 №548838 
>>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)? Понимаю, что разница вряд ли ощутится, но что является правилом хорошего тона?
Аноним 25/09/15 Птн 13:04:44 #176 №548842 
>>548715
Думал, что само получится.
>>548711
Мне просто хотелось чтобы все треды писали в одну очередь свои логи, а я бы потом их сохранял куда нибудь. Вот упрощённый пример того что я делаю. Не идеально, иногда порядок сбивается, но я поправлю.
http://ideone.com/XmIwkF
Аноним 25/09/15 Птн 13:41:06 #177 №548853 
>>544442 (OP)
Только-только начал python смотреть. Подскажите как в вот таком списке
[1, 1, 1, 1, 1, 1, 1, 0, 0, 0]
находить три подряд идущих единицы? В голову приходит только в цикле смотреть i, i+1, i+2, но что-то по моему это не то.
Аноним 25/09/15 Птн 13:45:15 #178 №548856 
>>548853
for n in range(len(l)-2): if l[n:n+3] == [1,1,1]: print n
Аноним 25/09/15 Птн 13:47:17 #179 №548857 
>>548856
О, круто, спасибо.
Аноним 25/09/15 Птн 14:00:41 #180 №548859 
>>548856
Мед-лен-но, выполняешь три прохода вместо одного
Аноним 25/09/15 Птн 14:26:07 #181 №548873 
>>548834
for url in list_of_urls:
....try:
........h1 = ...
........break
....except:
........continue
else:
....# nothing found
Аноним 25/09/15 Птн 14:30:18 #182 №548875 
14431806190310.jpg
>>548838
print(tuple(range(2, int(input()) * 2 + 1, 2)))
Аноним 25/09/15 Птн 14:30:52 #183 №548877 
>>548838
>Еще один нубский вопрос: в вычислениях стоит использовать дробь (1/4) или floating point число (0.25)?
Если нужна точность, то fractions или decimal.
Аноним 25/09/15 Птн 14:32:48 #184 №548878 
>>548842
Зделай отдельного воркера, который забирает из очереди объекты и пишет их в лог. Нахуй наследоваться от очереди?!
Аноним 25/09/15 Птн 14:35:26 #185 №548881 
>>548853
counter = 0
for x in l:
....if x == 1:
........counter += 1
....else:
........counter = 0
....if counter == 3:
........yoba!
Аноним 25/09/15 Птн 14:49:51 #186 №548886 
>>548875
Изящно получилось, спасибо, а я и не подумал об этом.
Аноним 25/09/15 Птн 15:44:32 #187 №548911 
14431850724740.png
Анон, только сегодня начал учить, объясни, хули тут толком сделать надо?
Я так понял, что надо в первой строке условие, чтоб ответ был больше 5, а во второй, чтоб он был меньше 5. Но почему оно не работает?
Да, и что значат цифры в скобках в строках принт?
Аноним 25/09/15 Птн 15:45:54 #188 №548912 
>>548873
Так у меня цикл перебора УРЛов остановится по break при первом же найденном заголовке.

Тут скорее
try:
h1 = g.doc.select('/html/body/bla-bla-bla/h1').text().encode('utf-8')
continue
except:
pass

g.doc.select возвращает исключение, если не удается найти элемент. Мне нужно чтоб я мог нахуячить несколько селекторов и если первый сработал, то переход к следующему УРЛу, а если вызвал исключение, то пробуем следующий селектор.
Аноним 25/09/15 Птн 15:48:46 #189 №548914 
>>548911
Просто эти задачки были до этой абсолютно про другое, лол. И def, как и этих цифр в скобках, раньше не было и объяснений, че это, не дали. Потому и туплю, как кретин.
Аноним 25/09/15 Птн 15:52:05 #190 №548916 
>>548911
Что непонятного, подставляешь условия из инструкций в пропуски.
Аноним 25/09/15 Птн 15:53:49 #191 №548919 
>>548916
Дай, пожалуйста, пример. И что значат цифры после принта?
Просто, если я выполняю первое условие, оно трижды штампует единицу и задача не выполнена. Если второе - трижды -1. Если ни одно - трижды 0.
Аноним 25/09/15 Птн 16:01:17 #192 №548924 
>>548919
К примеру, во 2-ой строчке тебе нужно заполнить условие так, чтобы оно проверяло, больше ли answer 5, т.е. if answer > 5: return 1
Принт вызывает функцию (которая выше) с цифрами, указанными в скобках. Это потом будет, дальше по программе
Аноним 25/09/15 Птн 16:03:27 #193 №548927 
>>548924
Ой, я просто слепошарый уебок. Я в упор не видел, что answer - переменная, лол. Я задавал свои равенства/неравенства вместо того, чтобы просто написать слово...
Спасибо, уже все увидел.
Аноним 25/09/15 Птн 16:27:06 #194 №548943 
>>548912
Тогда вложенный цикл.
Аноним 25/09/15 Птн 16:59:30 #195 №548961 
Кто-нибудь с 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, то проблемы с памятью исчезают, однако же попытка изменить имевшуюся в темплейте ячейку приводит к тому, что эта ячейка изменяется во всех листах.
Аноним 25/09/15 Птн 17:13:24 #196 №548965 
Что значит звёздочка в параметрах? Просто звёздочка без идентификатора. Везде в asyncio так. Пердон даже ошибку не кидает, но пойму нахуя она сдалась?

def lol(a, ^, x=4): # вместо ^ звёздочка
__print(a)
__print(x)

lol(2) ok
lol(2, 2) хуй, пока после звёздочки хоть какой-нибудь идентификатор не напишешь.

Аноним 25/09/15 Птн 17:22:44 #197 №548968 
>>548965
Отделяет позиционные и keyword (забыл как по-русски) аргументы при определении.
Аноним 25/09/15 Птн 17:38:07 #198 №548971 
>>548968

И правда.

def lol(a, ^, b, x=4):
__print(a)
__print(b)
__print(x)

lol(2, 2) # fail
lol(2, b=2) # ok
Аноним 25/09/15 Птн 21:13:28 #199 №549069 
>>548968
>keyword
Именнованные
Аноним 25/09/15 Птн 22:03:24 #200 №549091 
Блядское PyQt5 под убунту быстрым способом как поставить? Сегодня проебался с ним пол дня и поставил в виртуалку на ноуте, как-то еще ебаться на стационаре дома не хочется, а осваивать Qt хотелось бы.
Аноним 25/09/15 Птн 22:18:16 #201 №549096 
>>547874
для таких случаев придумали args и *kwargs
Аноним 25/09/15 Птн 22:19:03 #202 №549097 
>>549096
абу, пидор, сожрал всю разметку,
там одна и две звезды соответственно
Аноним 25/09/15 Птн 22:35:43 #203 №549104 
>>549091
Из репозитория же за секунду ставится.
Аноним 25/09/15 Птн 22:45:27 #204 №549109 
>>549104
guide me bro.
Аноним 25/09/15 Птн 23:22:32 #205 №549123 
>>549109
Учись искать информацию, это тебе очень пригодится, лентяй ебаний.
http://askubuntu.com/questions/279421/how-can-i-install-qt-5-x-on-12-04-lts
Аноним 25/09/15 Птн 23:26:36 #206 №549124 
>>549123
Я умею гуглить, просто впадлу сейчас. Спасибо.
Аноним 25/09/15 Птн 23:44:24 #207 №549144 
Как по-правильному должен выглядеть импорт?

У меня подключены всего 2 либы, а уже наблюдается такой пиздец.

[CODE="python"]import scrapy
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from flask import Flask, render_template, json, request[/CODE]
Аноним 25/09/15 Птн 23:46:22 #208 №549146 
14432139825620.png
>>549144
Что-то накосячил с тэгом. Вот, в общем.
Аноним 25/09/15 Птн 23:55:22 #209 №549151 
>>549146
что тебе не нравится? Я не вижу способа сократить импорт еще только если импортировать сразу всю либу. Алсо в некоторых редакторах весь импорт можно скрыть.
Аноним 26/09/15 Суб 00:09:46 #210 №549156 
>>549146
>>549144
Я не работал со scrapy, но разве импортом всей либы в начале, ты не загружаешь туда же паука?
Аноним 26/09/15 Суб 02:37:14 #211 №549181 
Ебанутый, платиновый вопрос, но все же спрошу.

Как сделать так, чтобы выполняемые мною скрипты сразу же не закрывались?

input() вконце не всегда срабатывает. Перестал почему-то работать. Энвайромент прописывал.

В чем проблема? Гугл пока не дал толкового ответа, т.к. из-за отсутствия опыта не могу более менее понятно сформулировать для него запрос.

Короче, по простому: как сделать так, чтобы мои скрипты не появлялись на 1ну секунду "досовским" окном и исчезали, а чтобы не закрывались и я смог прочитать что там происходит?
Аноним 26/09/15 Суб 02:39:07 #212 №549182 
>>549181
Запускай их через cmd.exe
Аноним 26/09/15 Суб 09:21:21 #213 №549215 
>>548961
В общем, пришлось решить топорно: созддать новый лист и просто скопировать туда все иммутабл атрибуты из копируемого, затем насоздавать новых строк, колонок и ячеек и точно так же с ними поступить. Вроде бы всё работает нормально, можно перезаписывать всякие ячейки и так далее. Даже почти работает копирование из другого воркбука — если изменить значение ячейки темплейта до копирования, то ломаются всякие эти sst_idx'ы и некоторые значения снова перезаписываются. Не стал уж разбираться, так как пока такого не требуется.
http://pastebin.com/gUzA8hFc
Аноним 26/09/15 Суб 09:25:09 #214 №549216 
>>549215
неправильная ссылка, вот — http://pastebin.com/BBwV8Wap
Аноним 26/09/15 Суб 09:33:27 #215 №549220 
14432492073720.png
Объясните, что за хуйня? Как работает этот translate?
Аноним 26/09/15 Суб 09:43:39 #216 №549226 
>>549220

string.translate(s, table[, deletechars])

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
Аноним 26/09/15 Суб 09:43:51 #217 №549227 
>>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.
Аноним 26/09/15 Суб 13:00:29 #218 №549264 
>>549156
Судя по всему, нет.
Вот тут в примере так же: http://doc.scrapy.org/en/1.0/topics/practices.html
Аноним 26/09/15 Суб 14:34:16 #219 №549296 
Посоны, что ньюфагу учить? Python the hard way говорит учи второй, другие говорят, что можно и третий. Я начал учить третий.

Похуй или все же второй учить?
Аноним 26/09/15 Суб 14:39:15 #220 №549301 
>>549296
Третий. Авторам впадлу книжку переделывать и тройку учить.
Аноним 26/09/15 Суб 18:16:52 #221 №549381 
14432806130170.png
Привет, питоний тред.
Последние выходные работаю над платиновой задачей двача - скрапер двача.
Но не всего двача, а только вебм.
Сегодня закончил более-менее работающую версию. Скрипт сразу сохраняет в модель джанги.

Предлагаю скооперироваться и сделать свой проект - хостинг вебмок. Понимаю, задача нетривиальная, но в начале сделаем все в лоб и просто. Чтоб было. Будем брать вебмки с двача, составлять рейтинг, может сделаем статистику. В общем, есть куда развиваться. Потом каждый кто захочет может сказать, что участвовал в опенсорс проекте (не обязательно показывать ту часть, где есть сосач).

Скрипт и технические детали попозже вброшу, если появится интерес.
Аноним 26/09/15 Суб 18:21:17 #222 №549383 
>>549381
А чего нетривиального то?
Аноним 26/09/15 Суб 18:25:04 #223 №549386 
>>549383
Ну качественный хостинг видео не так просто сделать. Просто чтобы видео отдавал - ради бога, а если много пользователей? Еще и нетривиальная задача собрать анона в работоспособную команду.
Аноним 26/09/15 Суб 18:29:43 #224 №549388 
>>549386
> , а если много пользователей?
Это не проблема твоего приложения вообще. Видео будет отдавать nginx. Если пользователей будет много - ставишь несколько вебсерверов. Балансировка нагрузки между ними есть в самом же nginx http://nginx.org/en/docs/http/load_balancing.html
Чтобы синхронизировать библиотеку файлов между серверами используешь glusterfs.
Или тупо rsync по крону. Или если бы файлы были большими - внутренние торренты, но это заморочка и тут смысла нет.
Аноним 26/09/15 Суб 18:31:29 #225 №549390 
>>549386
Короче тут скорее вопрос какой ты хостинг себе можешь позволить и насколько жирный у него канал, чем софта.
Но вообще идея интересная, можно как-нить скооперироваться.
Аноним 26/09/15 Суб 18:47:27 #226 №549393 
>>549381
Жыдхаб бы сразу запостил. Так если бы кто даже и захотел, че делать дальше - хуй знает.
Аноним 26/09/15 Суб 18:57:43 #227 №549395 
>>549388
Да, в теории то понятно. Я вот сейчас смотрю эти лекции, там примерно это же говорили. http://rutracker.org/forum/viewtopic.php?t=4979701

>>549390
Хорошо.

>>549393
Сейчас запилю чистый репозиторий. Как раз доделывал кое что по мелочи. Вот скрипт.
http://ideone.com/gnMLdU
Вот модификация для сохранения в джангу.
http://ideone.com/3yw9Lh
Попозже расскажу подробнее. Наверно по коду так сразу и не поймешь что там происходит.

Работает под тройкой. Но если поправить super и изменить импорты, скорее всего будет и под вторым. До этого у меня они были настроены, но для красоты убрал.
Аноним 26/09/15 Суб 19:05:21 #228 №549399 
>>549395
> скорее всего будет и под вторым
А смысл? Делай уж под тройку.
Аноним 26/09/15 Суб 19:06:38 #229 №549400 
>>549399
Ну да, просто была мысль сделать его универсальным, но подводных камней и правда много. То, что я выложил - версия для тройки.
Аноним 26/09/15 Суб 19:08:56 #230 №549402 
>>549400
Так это ж парсер только. Он у тебя вроде бы работает уже. Джангу давай. Парсеры в репозиторий туда же сложи.
Аноним 26/09/15 Суб 19:24:32 #231 №549411 
>>549402
В джанге пока ничего нет кроме админки. Сам скрипт же качает, записывает лог. А если запустишь второй файл, то сохранит в джангу (которую сейчас выложу). Только админка. Настраиваю репозиторий. Просто не спешу.
Аноним 26/09/15 Суб 19:56:11 #232 №549434 
>>549402
https://github.com/aq1/WillBeams

Так, вроде работает. Название рабочее (Will Beams), я не против поменять.
Аноним 26/09/15 Суб 19:59:20 #233 №549437 
>>549434
Какая странная структура у джанго проекта у тебя
Аноним 26/09/15 Суб 19:59:34 #234 №549438 
>>549434
YOBA-VIDOSI-2015
Аноним 26/09/15 Суб 20:00:46 #235 №549439 
>>549437
Ну на работе так. Мне по нраву. Каждая модель в своем файле - удобно. Саму папку проекта тоже убираю (зачем она)? Пока все работает отлично.
Аноним 26/09/15 Суб 20:04:24 #236 №549443 
>>549439
> зачем она
Она незачем, но вот конфиг ты в отельный package вынес, потому что обычно конфигов несколько - базовый и унасленованные от него обычный, dev-сервер, рабочии локальные копии разработчиков.
Настройки у них разные.
Аноним 26/09/15 Суб 20:10:43 #237 №549448 
>>549439
Загрузку webm`ком мог бы через management command сделать.
Аноним 26/09/15 Суб 20:13:31 #238 №549450 
>>549443
Не, ну про local_settings то я понимаю зачем.
>>549448
Хорошо, делай pull-request или хотя бы ссылку дай на пример, посмотрим.
Аноним 26/09/15 Суб 20:15:27 #239 №549451 
>>549450
https://docs.djangoproject.com/en/1.8/howto/custom-management-commands/
Я сейчас спать ложусь, не сегодня.
Аноним 26/09/15 Суб 20:27:51 #240 №549460 
>>549451
От джанги, насколько я понял, требуется только отображение? Загрузку же можно через urllib запилить. У меня уже есть парсер медиа с двача, например. Нужно только пофиксить иногда возникающую проблему с cloudflare.

мимотреднечитал
Аноним 26/09/15 Суб 20:32:16 #241 №549465 
Ну что, раз есть интерес, давайте создадим какую нибудь конференцию. Типа в глиттере или где лучше? Я вообще не разбираюсь.

>>549460
Скачиватель есть уже. Джанга будет показывать, да. Но я не использую urllib - он медленный. httplib позволяет на одном http соединении все качать. Я вбрасывал в прошлом треде тесты по времени.
Аноним 26/09/15 Суб 20:51:15 #242 №549471 
Ладно, давайте с завтрашнего дня будем уже обсуждать, если интерес не упадет.

А, забыл сказать. Я могу (и предлагаю) использовать Django, Django Rest Framework и Angular.
Аноним 26/09/15 Суб 20:52:21 #243 №549472 
>>549471
А еще макака говорит, что гиттер в спам листе. В репозитории в ридми есть ссылка.
гиттер.im/aq1/WillBeams
Аноним 26/09/15 Суб 20:56:27 #244 №549478 
>>549465
Посмотрел те тесты. Весь прикол в том, что ты для httplib устанавливаешь одно соединение, а через urllib каждый раз создаёшь новое. В urllib есть штука, которая позволяет запилить свой менеджер подключений. Как допилю тесты, выложу.

Кстати, а почему вообще джанго?
Аноним 26/09/15 Суб 21:06:14 #245 №549483 
>>549478
Потому что самое популярное. Можно использовать для получения профита ирл. А что ты предлагаешь?
Аноним 26/09/15 Суб 21:11:17 #246 №549488 
>>549483
Да хер знает, на самом деле. Я с веб-технологиями не особо знаком. Когда-то, лет 6 назад, учил пилоны на спецкурсе. Через пару лет пробовал pyramid, но всё как то не придумывал, что бы интересного нового сделать.
В общем, я к чему это - есть же побыстрее фреймворки. Те же фласки всякие. Насчёт удобства и красивостей, правда, не уверен.
Аноним 26/09/15 Суб 21:29:58 #247 №549496 
Мне кажется джанго будет оверхедом для такого приложения.
Аноним 26/09/15 Суб 21:42:21 #248 №549502 
>>549488
>>В общем, я к чему это - есть же побыстрее фреймворки. Те же фласки всякие. Насчёт удобства и красивостей, правда, не уверен.
Да, Tornado например. Tornado — расширяемый, не блокирующий веб-сервер и фреймворк, написанный на Python.

На flask тоже подобные модули можно поставить, джанга в отсосе.
Аноним 26/09/15 Суб 21:46:46 #249 №549504 
Похуй, пусть оп решает, иначе это рискует перерасти в срач о фреймворках.
Аноним 26/09/15 Суб 21:52:14 #250 №549506 
Дайте пожалуйста ликбез по веб-фреймворкам. Что скажете о Flask и Bottle?
Аноним 26/09/15 Суб 22:07:20 #251 №549510 
Предлагаю перенести обсуждение в гиттер. Я все таки склоняюсь к джанге. Кто на должном уровне знает другой профессиональный фреймворк?
На торнадо можно сделать транслировали в прямом режиме какие вебмки прямо сейчас касаются например.
Аноним 26/09/15 Суб 22:07:58 #252 №549512 
>>549506
Ты не уходи из треда, тут тебе все пояснят сейчас.
Аноним 26/09/15 Суб 23:34:39 #253 №549531 
>>549488
Если аггрессивно использовать кеширование то джанга будет летать.
>>549502
Они для разных вещей немного.

Вообще смотри выше. Оснавная нагрузка будет на отдачу статики тут.
Аноним 26/09/15 Суб 23:43:02 #254 №549533 
>>549531
Написал readme для скриптов и самого проекта. Спрашивайте вопросы, если что.
Аноним 26/09/15 Суб 23:43:42 #255 №549535 
>>549533
Ой, ссылка приклеилась.
Аноним 27/09/15 Вск 00:13:25 #256 №549545 
>>549535
Где оно?
Аноним 27/09/15 Вск 00:40:55 #257 №549549 
Втыкаю в документацию Scrapy и охуеваю. Как можно было создать библиотеку, которую НАСТОЛЬКО сложно осилить?
Аноним 27/09/15 Вск 00:45:49 #258 №549550 
>>549545
В репозитории. >>549434
Аноним 27/09/15 Вск 00:48:27 #259 №549551 
>>549381
Лучше сделайте анимешный хостинг на замену закрывшемуся pomf.se
Шоб вебмки, картинки и все как полагается, без рекламы и капч.
Аноним 27/09/15 Вск 00:54:00 #260 №549552 
>>549551
Хотя что-то я тупанул, он и так обзавёлся десятком клонов. Исходники открытые же. Сорри.
Аноним 27/09/15 Вск 01:56:09 #261 №549567 
>>549533
О, я хотел с django rest framwork разобраться как раз.
Может завтра заморочусь попробую к твоей штуке прикрутить.
Аноним 27/09/15 Вск 05:39:35 #262 №549582 
Загатовки классов для карточной игры
Может кому пригодиться

http://pastebin.com/GPFkjR0F
Аноним 27/09/15 Вск 14:25:44 #263 №549698 
>>549582
Кому этот понос может «пригодиться»?! пиздец компутар саенц
Аноним 28/09/15 Пнд 02:43:41 #264 №550034 
https://www.linux.org.ru/polls/polls/11912496

Видали, господа? Линуксоиды выбирают Питон.
Аноним 28/09/15 Пнд 02:59:31 #265 №550039 
>>550034
И нахуй ты это притащил? На лоропараше одни школьники-первокурсники-с-питоном-вместо-головы и устаревшие-сорокалетние-быдлокодеры-с-сишкой-вместо-голосы.
Аноним 28/09/15 Пнд 03:03:04 #266 №550040 
>>550039
Ну только не стукай, профессионал с зарплатой в 120k$.
Аноним 28/09/15 Пнд 03:11:52 #267 №550041 
>>550039
>с-питоном-вместо-головы
Ты так говоришь, как будто это плохо.
Аноним 28/09/15 Пнд 03:16:17 #268 №550042 
>>550041
Как что-то хорошее. Им дали более быстрый и удобный Го, но нет, хочу жрать говно.
Аноним 28/09/15 Пнд 03:21:01 #269 №550043 
>>550042
>более быстрый и удобный
Сдаётся мне ты пиздишь.
Аноним 28/09/15 Пнд 03:26:42 #270 №550044 
>>550042
Гоферы теперь шитпостить стали? Иди в свой тред.
Аноним 28/09/15 Пнд 03:28:29 #271 №550045 
Как что-то хорошее. Им дали более быструю и удобную Джаву, но нет, хочу жрать говно.
Аноним 28/09/15 Пнд 03:40:03 #272 №550047 
>>550045
Как что-то хорошее. Им дали более быстрый и удобный фортран, но нет, хочу жрать говно
Аноним 28/09/15 Пнд 03:44:58 #273 №550048 
>>550045
>джава
>удобная
>быстрая
Аноним 28/09/15 Пнд 04:05:15 #274 №550049 
>>550048
Да ладно вам, джава как язык заебись для новичков, погружающихся в увлекательный мир программирования.
Аноним 28/09/15 Пнд 04:50:25 #275 №550051 
>>550049
Громоздкая, как кобол, и на пеке не нужная.
Аноним 28/09/15 Пнд 05:51:08 #276 №550054 
>>549488
>есть же побыстрее фреймворки. Те же фласки всякие.
Минималистичнее != быстрее.
В жанге стек вызовов лучше оптимизирован, чем во всяких ваших фласках.
Что быстрее в фласке - это jinja2, но в джангах 1.8+ её можно включить вместо дефолтного движка темплейтов.
Аноним 28/09/15 Пнд 08:13:22 #277 №550067 
>>550048
Ява давно обогнала по скорости С++
http://stackoverflow.com/questions/4516778/when-is-java-faster-than-c-or-when-is-jit-faster-then-precompiled
Аноним 28/09/15 Пнд 08:14:22 #278 №550068 
>>550051
> на пеке не нужная.
Почти все IDE написаны на джава. Что pycharm, что pydev
Аноним 28/09/15 Пнд 09:52:33 #279 №550098 
>>550068
>IDE
Но зачем? Есть ведь охуенные редакторы: Vim, Emacs, Sublime Text.
Аноним 28/09/15 Пнд 10:02:03 #280 №550103 
>>550098
http://www.youtube.com/watch?v=PCgHVHhLBFY
Аноним 28/09/15 Пнд 10:53:39 #281 №550123 
>>550068
Ну да, много конечно, но я бы не сказал, что почти все. Да и я как то сомневаюсь, что всем, кто изучает яву, будет интересно пилить IDE.
Аноним 28/09/15 Пнд 11:02:25 #282 №550125 
>>550123
Я не про изучение джавы или пиление, а про то что софт на десктопе на джаве есть. Его довольно много, но обычно ему есть альтернативы, а вот в сфере ide этих - фактически нет.
 28/09/15 Пнд 12:23:14 #283 №550150 
Пацаны, подскажите как делается прогресс-бар в консольке. Например когда emerge в гентяче что-то там делает, то у него как бсд такая штука отображается | сменяется на /, потом на -, потом на \ . И так по кругу. Хочу запилить себе что-то вроде этого, только с циферками типа столько-то обработано, осталось столько-то.
Аноним 28/09/15 Пнд 12:28:30 #284 №550152 
>>550150
Через terminal escape sequences либо через ncurses
Но это вручную геморно делать
Вот либа умеет курсор двигать
https://pypi.python.org/pypi/blessings/
Аноним 28/09/15 Пнд 12:31:42 #285 №550153 
>>550150
https://pypi.python.org/pypi/progressbar
Аноним 28/09/15 Пнд 12:33:31 #286 №550155 
14434328119590.png
>>550150
Или возьми dialog консольную утилиту запусти её с ключом --gauge text 20 70
И пиши на её stdin сколько процентов прошло
Выглядить будет так
 28/09/15 Пнд 12:33:48 #287 №550156 
>>550152
>>550153
Благодарствую
Аноним 28/09/15 Пнд 14:44:33 #288 №550232 
Решил сегодня вернуться к истокам и написать что-нибудь на пайтоне, стал смотреть примеры, так аж глаза заболели от синтаксиса, а ведь когда-то он казался практичным. Теперь понимаю хейтеров.
Аноним 28/09/15 Пнд 15:01:05 #289 №550239 
>>550232
Пайтон убогий недоязычок для обучения, типа современного бэйсика, только с ОТСТУПАМИ
Аноним 28/09/15 Пнд 15:06:11 #290 №550245 
14434419710600.png
Никто не знает либ для вывода в GUI формул типа пикрелейтеда.
Аноним 28/09/15 Пнд 15:14:19 #291 №550250 
>>550245
http://stackoverflow.com/questions/13208286/how-to-write-latex-in-ipython-notebook
Аноним 28/09/15 Пнд 15:16:17 #292 №550251 
>>550125
Ок, спасибо. В текстовом поле PyQt отобразится?
Аноним 28/09/15 Пнд 15:18:42 #293 №550253 
>>550245
Я использовал sympy + mathml (он там требует преобразование хитрое чтобы браузер показал как надо, но работает). Ну и webkit какой-нибудь для отображения бери.
Аноним 28/09/15 Пнд 16:58:20 #294 №550292 
>>550232
А сейчас на чём пишешь? покормил
Аноним 28/09/15 Пнд 17:00:28 #295 №550293 
>>550292
c#. энтерпрайз.
Аноним 28/09/15 Пнд 17:03:19 #296 №550296 
14434489992550.gif
>>550293
Аноним 28/09/15 Пнд 17:05:49 #297 №550299 
14434491495000.png
>>550296
Продолжай писать на недоязычке для школьников пока серьезные дяди делают энтерпрайз решения.
Аноним 28/09/15 Пнд 17:08:19 #298 №550302 
>>550299
Толстячок.
Аноним 28/09/15 Пнд 19:18:49 #299 №550369 
>>550299
Иди лобай на гитаре свой до диез :3, а в наш уютный тред нелезь.
Аноним 28/09/15 Пнд 19:30:54 #300 №550373 
Салют погромач, помоги ньюфагу, есть небольшая проблемка.
Короче программа должна принимать несколько аргументов через getopt и делать разные вещи, вроде все просто, однако я наткнулся на странную хрень тут, смотри.
http://pastebin.com/JmhPqn31
Похоже на тупую ошибку но я чот не вижу.
Аноним 28/09/15 Пнд 19:40:52 #301 №550383 
>>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
Аноним 28/09/15 Пнд 19:44:16 #302 №550387 
>>550383
Луче docopt.
Аноним 28/09/15 Пнд 19:45:48 #303 №550389 
>>550383
Спасибо бро. Еще когда в первый раз увидел питоновские ин ор почувствовал ноющую боль в ноге в предвкушении свинца.
Аноним 28/09/15 Пнд 22:21:28 #304 №550463 
Каким образом можно решить уравнение 18*x = 36 и найти х?
Аноним 28/09/15 Пнд 22:23:56 #305 №550464 
>>550463
В четвертом классе будете проходить.
Аноним 28/09/15 Пнд 22:28:09 #306 №550467 
>>550464
нет ну серьезно, как в питоне символьно решить, не вводя х?
Аноним 28/09/15 Пнд 22:29:23 #307 №550469 
>>550467
Ты нормально можншь объяснить, что тебе нужно?
Аноним 28/09/15 Пнд 22:32:10 #308 №550472 
>>550469
Есть матрица которую я забиваю в ячейки выражениями вроде R1+Cp+1/pL этой хуйни дохуя, потом умножаю на вектор состоящий из U1...UN, которые являются неизвестными и прирываниваю к вектору Y, который заполнен значениями. Нужно находить U, проблема в том , что структура постоянно меняется.

Как найти U? Фишка в том, что это нахождение нужно будет повторить 500-1000 раз.
Аноним 28/09/15 Пнд 22:33:01 #309 №550473 
>>550472
1) Метод Гаусса
2) Метод Якоби
Аноним 28/09/15 Пнд 22:34:43 #310 №550476 
>>550473
Numpy/Sumpy имеют эту хуйню внутри?
Аноним 28/09/15 Пнд 22:38:25 #311 №550481 
>>550476
>>550473
Уже нашел.
Аноним 28/09/15 Пнд 23:59:28 #312 №550526 
>>550473
> 1) Метод Гаусса
Не рекомендую.
Аноним 29/09/15 Втр 00:27:45 #313 №550541 
Никто не знает где найти все видосы https://buildasaaswithflask.com/ ?
Аноним 29/09/15 Втр 00:28:59 #314 №550542 
>>550526
Для тренировки и написания руками с нуля пойдёт.
Аноним 29/09/15 Втр 00:53:00 #315 №550550 
>>550541
Нигде, кому это говно может понадобиться?
Аноним 29/09/15 Втр 00:57:53 #316 №550552 
>>550550
Мне понадобилось.
Аноним 29/09/15 Втр 06:00:43 #317 №550593 
14434956430660.jpg
Бля, питон-ctypes и кучи куч си кода - СЛОЖНА. Всю ночь сидел.
Аноним 29/09/15 Втр 06:09:09 #318 №550594 
>>550593
Потом что надо было SWIG юзать
Аноним 29/09/15 Втр 06:44:40 #319 №550598 
>>550594
Уже слишком уставший чтобы вникать. Скажи в двух словах.
Мне надо дергать сишные функции из .so и обрабатывать их в питоне, при этом зависимостями для конечного юзера должны быть только та .so и сам питон для исполнения моего .py.
Свиг - то, что мне нужно?
Если да - ну штож, я дурак и делал мартышкин труд. Пошел спать.
Аноним 29/09/15 Втр 06:48:59 #320 №550600 
>>550598
У тебя есть исходники этих сишных функций? SWIG позволяет почти автоматически сгенеровать обертку для этих сишных функций в виде питоновского модуля.
http://www.swig.org/tutorial.html вот тут простой пример.
Аноним 29/09/15 Втр 06:52:50 #321 №550602 
>>550600
Исходники есть. Спасибо, анончик, завтра потыкаю свиг.
Аноним 29/09/15 Втр 15:10:17 #322 №550739 
14435286172950.jpg
Питоны, помогите разобраться.
Есть моя переделка викторины из книги Доусона:
http://pastebin.com/Rt4ha7Xy

Проблема в работе фунцкии save_score(). Она то ли не может прочесть список кортежей из файла, то ли не может его толком сохранить.
Аноним 29/09/15 Втр 15:14:02 #323 №550743 
Вот что пишет функция save_score()
[code lang="text"]
Теперь нужно увековечить Ваша достижение!
Введите Ваше имя: 45
Загружаю таблицу результатов.
Ran out of input
Таблица результатов пока пуста, но мы это сейчас исправим!
[('45', 1)]
Достижение увековечено!
[/code]
Аноним 29/09/15 Втр 15:17:12 #324 №550744 
>>550739
Открывай файл в режиме чтения когда читаешь его а не wb+
Аноним 29/09/15 Втр 15:20:39 #325 №550746 
>>550739
http://stackoverflow.com/questions/16208206/confused-by-python-file-mode-w
> w+ : Opens a file for both writing and reading. Overwrites the existing file if the file exists. If the file does not exist, creates a new file for reading and writing.
Аноним 29/09/15 Втр 15:21:25 #326 №550747 
>>550744
В чём подводный камень?
Аноним 29/09/15 Втр 15:24:10 #327 №550750 
>>550747
w+ перезаписываешь файл. ты можешь из него потом читать, но только то, что там туда только что записал.
r+ открывает файл не перезаписывая и позволяет читать и писать в него.
a открывает файл на append - добавление в конец.
Но тебе нужно сначало прочитать из файла в режиме r, потом открыть в режиме w и записать результат.
Аноним 29/09/15 Втр 15:37:15 #328 №550752 
>>550750
>w+ перезаписываешь файл. ты можешь из него потом читать, но только то, что там туда только что записал.
То есть если в файл, открытый в режиме "w+", ничего не писать, при использовании метода .close() он сохраняется как пустой даже если до момента его открытия он пустым не был?
Аноним 29/09/15 Втр 15:38:57 #329 №550753 
>>550752
Нет, он его обнуляет в момент open, а не close. Как только ты делаешь open(..'w+') файл становится пустым.
Аноним 29/09/15 Втр 15:57:31 #330 №550760 
>>550753
А прочесть из него можно только то, что было записано (в буфер файла) после open(.. "w+")?
Аноним 29/09/15 Втр 16:04:29 #331 №550763 
14435318695260.png
>>550760
Да.
Если хочешь и читать и писать и чтобы файл не обнулялся используй r+.
Аноним 29/09/15 Втр 17:42:17 #332 №550806 
>>550763
Спасибо. А то в учебнике об этом подробно не говорится.
Аноним 29/09/15 Втр 17:43:10 #333 №550808 
>>550806
Потому что официальную документацию читать надо, а не хуйчебники.
Аноним 29/09/15 Втр 17:50:32 #334 №550810 
>>550808
Без хуйчебников будет совсем уж сферическая теория в вакууме. Задачек нет.
Аноним 29/09/15 Втр 17:51:43 #335 №550811 
>>550810
Задачки пора свои иметь, большой уже мальчик.
Аноним 29/09/15 Втр 20:11:52 #336 №550856 
>>550810
Это значит учебник хуевый. Хороший учебник лучше документации для понимания языка. Не считая синтаксиса конечно, но для особо упоротых случаев есть Лутц, который жирнее официальной документации раза в 3, кек
Аноним 29/09/15 Втр 20:40:39 #337 №550867 
Ван-сум всемогущий! Наконец-то я понял как финализировать субпроцессы запущенные в фоновых тасках в asyncio. Сука, наконец-то всё отработало без экзепшенов. Кстати asyncio советую брать самый последний из репы, очень дохуя отличается от коробочного в плане этого самого хэндлинга.
Аноним 29/09/15 Втр 21:13:37 #338 №550883 
>>550867
task.cancel()? Или ты о чём?
Аноним 29/09/15 Втр 21:22:18 #339 №550891 
>>550883
Exception ignored in:
Task result ignored
и ещё много подобного.

Вот это ещё не до конца поборол:
signal handler must be signal.SIG_IGN, signal.SIG_DFL
Например если вызвать cancel когда ещё create_subprocess_exec не отработал. Надо наверное шилднуть его вместе с присваиванием переменной.
Аноним 29/09/15 Втр 21:51:45 #340 №550925 
>>550891
> Exception ignored in:
> Task result ignored
Так а что в этом такого-то? Это ворнинги же.
Аноним 29/09/15 Втр 22:00:38 #341 №550931 
>>550925
Процессы нужно завершать, иначе орфанами засирается всё. Если ты запустил что-то в отдельном таске, будь бобр вызвать terminate на cancel. А после terminate ещё и подождать надо, то есть снова запустить run_until_complete, только с ожиданием по всем незавершённым таскам (кстати даже те которым ты вызвал cancel в качестве финализации - тоже ещё считаются незавершенными, так как таск может перехватывать cancel и должен отработать это дело). Всё не так просто.
Аноним 29/09/15 Втр 23:04:22 #342 №550963 
>>550931
Это видимо только для субпроцессов, я с ними ещё дела не имел.
Аноним 30/09/15 Срд 05:54:52 #343 №551061 
Питонач, помоги, пожалуйста, ретарду
Как пользоваться Kivy? Скачал, установил
Что запускать?
Аноним 30/09/15 Срд 09:15:23 #344 №551099 
>>551061
Документацию читай.
Аноним 30/09/15 Срд 10:53:26 #345 №551136 
Есть где-то рекомендации по тому как надо пилить GUI на PyQt5.5 ну или около того, а то от обилия ебаных говно туториалов с разнящимися идеями уже хуй поймешь как надо - один хуярит прям в py файле после конверта из .ui, второй говорит так делают уебаны, надо делать отдельный файл и подключать туда наследуя класы, а дальше только подключать сигналы и писать функции, третий говорит всё хуйня надо делать 3 разных файла в одном GUI, во втором функции, в третьем связка, четвертый кроет всех хуями говорит что UI desinger для хуесосов - надо писать с нуля в одном файле всё вместе.


Алсо никогда в своей жизни еще не писал тесты для своего говнокода, нужна инфа по этому процессу желательно для тупых.
Аноним 30/09/15 Срд 10:59:40 #346 №551138 
>>551136
Генерировать код и .ui файла хуевая идея. Когда поменяешь что-то в ui файле - заебешься мерджить.
А так я хуй знает я на pygtk писал
> UI desinger для хуесосов - надо писать с нуля
Смотря что, некоторые вещи проще из кода генерить действительно. Некоторые нет. Головой думай.
Аноним 30/09/15 Срд 11:08:23 #347 №551141 
>>551138
Ну так нехуй коммитить сгенерированный код.
Аноним 30/09/15 Срд 13:08:57 #348 №551175 
>>551136
Импортишь сразу .ui файл без конвертации. Раскидываешь сигналы. Два файла или три — по вкусу.
>>551141
Это не про то. Речь о конвертации ui → py. Ты в получившийся файл что-то добавил руками, а потом надо gui изменить. Соответственно надо как-то мерджить сгенерированный py и тот, что ты руками потрогал. Но это хуёвая идея и так делать не нужно конечно же.
Аноним 30/09/15 Срд 13:37:09 #349 №551182 
>>551175
>Ты в получившийся файл что-то добавил руками
Вот этого надо избегать. Use манкипатчинг и наследование, Luke.
Аноним 30/09/15 Срд 15:41:50 #350 №551221 
>>551182
Это был ответ >>551141 и я не >>551136
Аноним 30/09/15 Срд 15:47:30 #351 №551225 
>>551182
Нет необходимости этот год генерить вообще, можно просто подключать ui файл и всякие сигналы цеплять.
Аноним 30/09/15 Срд 16:07:49 #352 №551227 
>>550811
Новичку непросто придумать задачу, которая подошла бы для закрепления именно только что изученной темы.

>>550856
Наверное, займусь другим учебником, когда закончу этот.
Аноним 30/09/15 Срд 16:21:23 #353 №551233 
>>551227
Давай я тебе придумаю задачек. По какой теме и что закреплять?
Аноним 30/09/15 Срд 17:29:50 #354 №551266 
>>551233
Файлы и исключения.
Аноним 30/09/15 Срд 18:26:56 #355 №551295 
>>551266
Задача: прочитать csv файл. Не упустить ни одного неправильного случая, найти и исправить все ошибки и записать исправленный файл в том же формате csv.

Файл
http://pastebin.com/gVgzKjzi

На выходе нужно иметь
int (id), str (имя с большой буквы без мусора), Decimal, Decimal

Можно использовать чтобы не ебаться с парсером:
https://docs.python.org/3/library/csv.html

Вместо приведения к float со всеми вытекающими использовать decimal:
https://docs.python.org/3.4/library/decimal.html
Аноним 30/09/15 Срд 18:30:12 #356 №551297 
>>551266
Давай к нам в вебм-проект. Задачи тебе найдём. Можешь логи парсить, например.
Аноним 30/09/15 Срд 18:38:50 #357 №551299 
>>551295
Следующая задача записать выхлоп предыдущей в бинарном формате и сделать функцию для чтения.

Формат:

Заголовок (в начале файла):
b'TOPKEK' - метка типа файла
int32 - количество записей

Записи фиксированный ширины:
int32 - параметр 1 (умноженное на 1000 и округлённое число из третьей колонки)
int32 - параметр 2 (умноженное на 1000 и округлённое число из четвёртой колонки)
int32 - смещение относительно начала файла к строке с именем

Записи произвольной длины:
плотно друг за другом строки заканчивающиеся символом перевода строки '\n'

Функция чтения должна быть генератором, то есть читать из файла по мере необходимости выдавая:
yield id, name, a, b

Если пользователь во время чтения файла нажал Ctrl-C или Ctrl-Break вывести на экран последний прочитанный id.
Аноним 30/09/15 Срд 18:51:58 #358 №551308 
14436283187020.jpg
>>551295>>551299
Ох ты ж, хотя решается наверное в пару строчек.
мимо-ньюфаг
Аноним 30/09/15 Срд 20:51:22 #359 №551392 
Питонач, если я сделаю блог на Джанге меня захотят взять на работу?
Аноним 30/09/15 Срд 21:07:05 #360 №551400 
>>551392
И все девочки в классе дадут. Да и я бы дал, чего уж тут.
Аноним 30/09/15 Срд 21:19:26 #361 №551407 
>>551400
Переформулирую. Что нужно знать и сделать джуну, чтоб взяли?
Аноним 30/09/15 Срд 22:25:04 #362 №551443 
>>551407
Пройти собеседование.
Аноним 30/09/15 Срд 23:52:12 #363 №551501 
Ребят, вот мой пост: http://stackoverflow.com/questions/32874488/building-cascade-structure
Никак не пойму, что надо сделать. Где только не задавал вопрос, всегда ответ в одной строчке. Начинаю тыкаться, пробовать что-то сделать - лезут самые разные ошибки.
Можете показать мне готовое решение? Не то что бы я не готов разбираться, но мне кажется тут что-то очень простое, и даже в чем-то другом ошибка. Сижу на этом три недели.
Аноним 01/10/15 Чтв 01:13:59 #364 №551519 
>>551501
Тебе же блять ответили на стаке. Хуле тебе еще надо?
Аноним 01/10/15 Чтв 01:16:39 #365 №551520 
LQ разложение матрицы поцаны кто знает как сделать. В Numpy и Sumpy только QR.
Аноним 01/10/15 Чтв 01:27:23 #366 №551521 
>>551520
Аналогично QR. Только если в QR ты вращаешь/отражаешь вектор-столбцы, то в LQ надо то же самое делать с вектор-строками.

Но если лень писать самому:
A^T = QR
(A^T)^T = (QR)^T = (R^T) x (Q^T) = LQ'
Т.е. посчитай QR разложение транспонированной матрицы, в потом транспонируй полученные R и Q.
Аноним 01/10/15 Чтв 02:15:20 #367 №551532 
>>551519
Нихуя не работает.
Аноним 01/10/15 Чтв 08:59:01 #368 №551571 
Смотрел видосики с яндекс разработчиками, везде пишут, что они программируют по 20 с чем-то лет. Учитывая что им около 30, сразу возникает некая демотивация, когда вспоминаю, что мне 22 и я только начинаю учиться. Утешь меня програмач.
Аноним 01/10/15 Чтв 09:04:26 #369 №551574 
>>551571
Бедненький!
Аноним 01/10/15 Чтв 09:06:59 #370 №551575 
>>551571
Ну я в 5 лет тоже на бейсике калькуляторы ебашил по книжке, так что стаж 19 лет типа.
Аноним 01/10/15 Чтв 09:30:30 #371 №551578 
>>551571
Зачем тебе это писькомерство. Важно не то когда начал, а как продолжил.
Аноним 01/10/15 Чтв 09:32:20 #372 №551579 
14436811407490.jpg
>>551571
Да-да, все они там ещё сами игры писали для спеки, паскаль с делфи по книжкам Фаронова учили сидя на горшках, и если у тебя этого всего не было то не стоит браться за программирование.
Аноним 01/10/15 Чтв 09:35:13 #373 №551580 
>>551579
ROLL
Аноним 01/10/15 Чтв 11:27:49 #374 №551604 
>>551532
Ну тогда пиши конкретней задачу, хули тебе надо.

>>551521
Благодарствую.
Аноним 01/10/15 Чтв 13:46:50 #375 №551652 
>>551571
Хуй забей, этот >>551578 анон правильно написал.

мимо программирую с 15
Аноним 01/10/15 Чтв 15:23:17 #376 №551696 
14437021976730.jpg
>>544442 (OP)
Сделать приложение реализующее базовую http аутентификацию (https://en.wikipedia.org/wiki/Basic_access_authentication)

Должна быть возможность применить аутентификцию для всего сайта через middleware и для некоторых представлений с помощью декоратора.
Доступы должны храниться в настройках проекта(settings).

Ну и чего от меня хотят?
Аноним 01/10/15 Чтв 18:57:48 #377 №551820 
Мимо
https://www.reddit.com/r/sysadmin/comments/3myd3n/my_first_early_server_maintenance/cvj71di
pythong.org
Аноним 02/10/15 Птн 04:51:24 #378 №551994 
>>551295
Парсинг текста - это сложноватая для меня задача. Тут основной гемор работа со строками. И окуда достал такой длинный файл, хитрец?

Как я понял, сначала все запятые надо заменить на точки, а | заменить запятыми? И вычистить все ";REF#" и "</span". Больше нет никакого мусора? А то глазами проверять все 4328 строк желания нет.
Аноним 02/10/15 Птн 06:08:52 #379 №552003 
>>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]

Как вообще [0] может быть out of rang?!
Аноним 02/10/15 Птн 06:18:09 #380 №552004 
>>552003
> Весь остальной мусор программа вычищат и нужные замены делает.
Вернее делала всё это до того как я начал бороться с точками в начале строк.
Аноним 02/10/15 Птн 06:37:10 #381 №552007 
Ура! Разобрался. Осенило когда уже выключил компьютер. Пришлось включить снова.
http://pastebin.com/h3k3arnF

Но... Хотелось бы узнать почему этот >>552003 говнокод не работал.
Аноним 02/10/15 Птн 08:48:35 #382 №552047 
>>552003
>Как вообще [0] может быть out of rang?!
Когда список пустой?
Аноним 02/10/15 Птн 12:46:23 #383 №552130 
>>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" в каждую строку, ошибка выдаётся.
Аноним 02/10/15 Птн 14:16:26 #384 №552160 DELETED
>>552130
Строки иммутабельны.
Аноним 02/10/15 Птн 14:28:55 #385 №552169 
>>552160
Немодифицируемы? Я их и не модифицирую.
Выражения line += "/n" и line = line[1:] не модифицируют строки, а присваивают переменной line новые строковые значения.
Аноним 02/10/15 Птн 14:30:39 #386 №552170 
>>552169
>а присваивают переменной line новые строковые значения
А через неё новые строковые значения заменяют строки в списке.
Аноним 02/10/15 Птн 14:31:13 #387 №552172 DELETED
>>552169
В списке всё равно остаются исходные. Во-вторых, у тебя на конце файла \n.
Аноним 02/10/15 Птн 14:45:21 #388 №552178 
14437863219790.png
>>552172
>В списке всё равно остаются исходные.
Каким образом, если line в каждой итерации ссылается на элемент списка, а не содержит копию этого элемента?
К тому же код с предварительной проверкой на пустые строки перед присваиванием нового значения переменной не заставлял интерпретатор выдавать ошибки

>Во-вторых, у тебя на конце файла \n.
А вот это точно правда. Сейчас верну проверку на пустые строки.
Аноним 02/10/15 Птн 14:49:01 #389 №552182 
>>552178
>А вот это точно правда. Сейчас верну проверку на пустые строки.
Хотя один хуй. После
[code lang="text"]
for line in csv_lines:
line += "/n"
[/code]
Пустых строк в списке быть не может.
Аноним 02/10/15 Птн 14:55:54 #390 №552187 
>>552007
>>552003
Нет, ну это никуда не годится. Во-первых есть модуль csv, там можно задать любой delimiter, это вот сейчас по чистой случайности в полях нет символа | а ведь он может там появиться.

Во-вторых ты сам просматриваешь выхлопной файл что ли чтобы убедиться в отсутствии косяков? Плохая практика. А если в файле миллионы строк? Как раз будет где экзепшены использовать.

В-третьих используй with.
Аноним 02/10/15 Птн 15:21:50 #391 №552193 DELETED
>>552178
>line в каждой итерации ссылается на элемент списка
Элемент списка — строка, иммутабельный объект. Ты не можешь его изменить.
Аноним 02/10/15 Птн 15:42:08 #392 №552195 
>>552187

>Нет, ну это никуда не годится. Во-первых есть модуль csv, там можно задать любой delimiter,
Его ещё изучать надо. Рановато мне работать с узкоспециализированные модулями. Разделитель можно прописать в переменной или в константе.

>это вот сейчас по чистой случайности в полях нет символа | а ведь он может там появиться.
Появиться может любой мусор. Но я действовал по обстоятельствам. Код без цикла фор выдал нужный результат.

>Во-вторых ты сам просматриваешь выхлопной файл что ли чтобы убедиться в отсутствии косяков?
Нет. Открываю в LibreOffice Calc.

>В-третьих используй with.
Исключения не пригодились пока.
Аноним 02/10/15 Птн 15:46:38 #393 №552197 
>>552172
>В списке всё равно остаются исходные.
Наверное, и в этом ты прав. Простым перебором элементов списка напрямую через управляющую переменной задачу решить не получилось.
Реализовал цикл по-другому: http://pastebin.com/JNUjEDBk
Аноним 02/10/15 Птн 15:47:05 #394 №552198 
>>552195
Лол.

https://docs.python.org/3.4/library/csv.html#module-contents

Тебе нужна только первая функция csv.reader. Там прямо пример в 5 строк есть. Что там изучать?

>я действовал по обстоятельствам
>Открываю в LibreOffice Calc
Надо бы специально тебе сделать файл в несколько миллионов строк.

>with
>Исключения не пригодились пока
Это не для исключений, а для корректного закрытия файла. f.close() вызовется сам в любом случае, даже в случае исключения, а не как у тебя.
Аноним 02/10/15 Птн 15:51:37 #395 №552200 
>>552198
f.close будет вызываться когда сборщик мусора соберет f, даже если with не используется.
Аноним 02/10/15 Птн 15:57:39 #396 №552206 
>>552200
Есть удобная и аккуратная конструкция with. Нет, не хочу with, хоту жрать говно и догадываться потом, а с хуя ли у меня программы на ровном месте в дедлок уходят и постоянно приходится системные лимиты на количество открытых файлов увеличивать.
Аноним 02/10/15 Птн 16:05:31 #397 №552215 
>>552198
>Тебе нужна только первая функция csv.reader. Там прямо пример в 5 строк есть. Что там изучать?
Она только читает csv-файлы, но не удаляет мусор.

>Надо бы специально тебе сделать файл в несколько миллионов строк.
Ещё и для проверки конечного результата код писать? А как подом удостовериться в надёжности этой проверки?

Аноним 02/10/15 Птн 16:09:44 #398 №552219 
>>552215
Ну наверное мне следовало бы уточнить что как csv файл 100% валиден.

>А как подом удостовериться в надёжности этой проверки?
Исключения бросать если что не так.
Аноним 02/10/15 Птн 16:12:18 #399 №552220 
Ну то есть ты ожидаешь например имя только из английских символов, с большой буквы. Напиши assert или if raise если оно не соответствует. Или в случае id, тупо int применяешь, он тебе сам выбросит если что не так.
Аноним 02/10/15 Птн 17:09:50 #400 №552263 
>>552219
>Ну наверное мне следовало бы уточнить что как csv файл 100% валиден.
Замена разделителей да, была лишней.
А вообще я никогда не ковырялся в CSV-файлах. Я об этом формате узнал из Википедии после того как такой файл попался мне на глаза.

>>552220
>assert или if raise
Ох, придётся мне вкуривать ещё один учебник. А потом упарываться официальной документацией.
Аноним 02/10/15 Птн 17:11:58 #401 №552264 
>>552197
>csv = csv.replace("#", ".")
Вот сука. Точка между кавыками подленько так затаилась.
Аноним 02/10/15 Птн 18:10:23 #402 №552284 
14437986238520.jpg
Анончики, а как из питона вызывать стороннее консольное приложение с аргументами, но чтобы сама консоль не показывалась?
Аноним 02/10/15 Птн 18:14:43 #403 №552286 
>>552197
> Простым перебором элементов списка напрямую через управляющую переменной задачу решить не получилось.
Дошло наконец почем так: в резульате операции присвоения внутри цикла управляющая переменная перестала ссылаться на элемент списка и вместо этого ссылалась на значение в другой области памяти
Аноним 02/10/15 Птн 18:15:41 #404 №552288 
14437989419010.png
>>552130
>Оне не путой.
>Проверял в интерактивной оболочке после прогона программы. И если бы он бы пустой, то интерпретатор не стал бы пытаться выполнить блок
>[code lang="text"]
>if line[0] == ".":
>line = line[1:]
>[/code]
>и соответсенно не выдал бы ошибки.
Почему не выдал бы? Прямо вот на проверке условия и вылетел бы. Пустой список и пустая сторка, в данном случае, одинаково ведут себя.
Аноним 02/10/15 Птн 18:28:47 #405 №552295 
>>552284
this.Impossible()
Аноним 02/10/15 Птн 18:30:50 #406 №552296 
>>552295
Эх, жаль. Думал, вроде бы вполне простая задача.
Аноним 02/10/15 Птн 18:35:10 #407 №552300 
>>552197
Вместо if'а в цикле, кстати, можешь просто csv_lines.lstrip(".") использовать же, вставив это в строку с добавлением \n.
Да и вообще, навреное, можно сделать одной строкой:
csv = "\n".join(line.lstrip(".") for line in csv.split("\n"))
Аноним 02/10/15 Птн 18:56:34 #408 №552306 
Двач, поясни за сборку на киви и ffmpeg - в доках говорится, что вроде там идет встроенный ffmpeg, не нужно мучиться с компилированием и сборкой, но как мне тогда использовать его и откуда импортить? Примеров в документации не нашел.
Аноним 02/10/15 Птн 18:59:31 #409 №552309 
14438015715670.png
Почему оно недовольно мной, анончики?
Аноним 02/10/15 Птн 19:02:05 #410 №552310 
>>552309
Убери кавычки, где цена, например.
Аноним 02/10/15 Птн 19:02:51 #411 №552312 
>>552310
А ларчик просто открывался. Не знаю, зачем я вбил цену стрингами, на самом-то деле.
Аноним 02/10/15 Птн 19:07:24 #412 №552313 
def my_power(a, b):
res = 1

for _ in range(b):
res *= a

return res

print(my_power(2, 9))

Как вставить проверку ввода данных? Чтобы а и б не были равны 0, дробному или отрицательному числу или тексту?
Аноним 02/10/15 Птн 19:21:27 #413 №552318 
>>552313
Исключения или if'ы.
Аноним 02/10/15 Птн 22:33:16 #414 №552372 
Аноны, подскажите как сделать так, чтобы в запросе к api vk менялся только один параметр (item_id, например, перебирался по очереди- каждый следующий был равен предыдущий +1)?
И как сделать, чтобы результат, который возвращает api записывался в файл?

в python пока могу плохо, да, но надеюсь, что "пока"
Аноним 02/10/15 Птн 22:50:24 #415 №552376 
>>552372
Пока.
Аноним 02/10/15 Птн 22:55:41 #416 №552380 
>>552372
Друг, у тебя со всем плохо, поучи/посмотри элементарные алгоритмы, как что делается.
Аноним 02/10/15 Птн 23:27:25 #417 №552388 
Допустим, есть такое:
st = ((d, 3), (a, 3), (c, 1))
Как вернуть букву, рядом с которым самое большое число? Отсортировать и вывести st[0][0].
Как реализовать вывод букв в алфавитном порядке, если цифры рядом с ними одинаковые?
надеюсь понятно описал
Аноним 03/10/15 Суб 00:05:21 #418 №552402 
14438199213000.jpg
>>552388
> букву, рядом с которым
Аноним 03/10/15 Суб 00:09:06 #419 №552405 
>>552402
Очепятка же.


>>552388
Набыдлокодил вот так http://pastebin.com/bqpSrdXk

Ужасный код, надеюсь кто-то покажет как можно было сделать это красиво.
Аноним 03/10/15 Суб 00:12:57 #420 №552407 
>>552405
http://ideone.com/ZVWi8p
Но это не самое удачное решение. Вообще лучше пересмотреть свою структуру данных. Раз нужные такие™ запросы, то это не лучший вид хранения.
Аноним 03/10/15 Суб 00:20:45 #421 №552411 
>>552407
О боже это 10 из 10. Спасибо большое.
Аноним 03/10/15 Суб 00:26:09 #422 №552418 
>>552411
Раз нужны
слоу фикс
Аноним 03/10/15 Суб 00:26:35 #423 №552419 
>>552418
>>552407
совсем окосел
Аноним 03/10/15 Суб 11:34:30 #424 №552562 
14438612705890.jpg
Поясните почему не работает:
fhand = urllib.urlopen(url)
all_in_one_string = fhand.read()
lst = all_in_one_string.split("\n")
number_lst = len(lst)
print number_lst
stat_num = 0
while stat_num != 1 :
----if lst[number_lst].startswith('<div class="noteFotter">') :
Аноним 03/10/15 Суб 11:38:58 #425 №552566 
>>552562
number_lst = len(lst) - 1
Тоже не работает.
Причем, вывод дает строку if lst[number_lst + 1], которой даже нет.
Аноним 03/10/15 Суб 12:02:21 #426 №552574 
>>552566
Так у тебя на 87-ой всё равно есть lst[number_lst + 1], которое вообще непонятно чего значить должно, при твоих значениях number_lst. Ты чего сделать-то хочешь? К последнему элементу лучше lst[-1] обращайся, гораздо очевиднее же.
Аноним 03/10/15 Суб 14:17:33 #427 №552638 
>>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">.
Аноним 03/10/15 Суб 15:20:09 #428 №552664 
>>552638
Нет. Из буфера только один раз можно прочитать. Так что сначала all_in_one_string = fhand.read() а дальше уже чего хочешь с этим делай.
Аноним 03/10/15 Суб 16:28:13 #429 №552682 
>>552664
Благодарю. Так и сделал.
Аноним 03/10/15 Суб 18:08:47 #430 №552756 
Как сделать, чтобы сохранялся в файл только определенный результат работы скрипта?
api vk выводит разный результат, но нужно чтобы сохранялся результат только такой: {'copied': 0, 'liked': 1}
Подскажите, как такое реализовать?
Аноним 03/10/15 Суб 18:13:41 #431 №552759 
>>552756
Изменить скрипт. не блогодори
Аноним 03/10/15 Суб 18:14:01 #432 №552760 
>>552756
curl '...' | grep copied.*liked >> file.txt
Аноним 03/10/15 Суб 21:01:17 #433 №552857 
>>544526
Не знаю, на мертвых не пишем.
Аноним 03/10/15 Суб 21:04:52 #434 №552861 
ПОСОНЫ, ПОТУШИТЕ МНЕ ПЕРДАК

Есть либа https://xlsxwriter.readthedocs.org/
Есть такое дерево путей, видно что xlsxwriter лежит в yoba директории:

/
baget.py
yoba/
---- __init__.py
---- xlsxwriter/

Как импортировать xlsxwriter в baget.py?
Пишу from yoba import xlsxwriter - посылает на хуй.
Что я делаю не так?
Аноним 03/10/15 Суб 21:05:17 #435 №552863 
>>546530
Ну парсер это хорошо и удобно. Проблема в том что парсер будет некорректно обрабатывать / не обрабатывать вообще невалидный html, а регуляркой можешь что угодно парсить.
Аноним 03/10/15 Суб 21:54:20 #436 №552881 
>>552295
Ага, sosnolley, ньюфаги, таки нашел решение!

from subprocess import call
call(command, shell=False)

Невозможно у них, ага.
Аноним 03/10/15 Суб 22:06:36 #437 №552888 
>>552881

Если тебе надо менеджить ещё и подпроцессы, то вот так лучше делать. Можно убрать ещё и аутпут, если будешь из консольки запускать.

process = subprocess.Popen(
command
, shell = True
, preexec_fn = os.setsid
, stdout = open('/dev/null','w')
, stderr = open('/dev/null','w')
)

Убивать потом как процесс-группу:

os.killpg(process.pid, signal.SIGKILL)

Бумп вопросу >>552861
Аноним 04/10/15 Вск 01:27:12 #438 №552954 
Суп, почтенные двачеры.
Есть пара вопросов по Джанго:

class AbstractPetuh(....):
....class Meta:
........abstract = True
....email = models.EmailField(db_index=True)

1. Как мне в классе-наследнике поменять db_index на False?
https://docs.djangoproject.com/en/1.8/topics/db/models/#field-name-hiding-is-not-permitted

2. Если сделать так:
class Petuh(AbstractPetuh):
....class Meta(AbstractPetuh.Meta):
........pass
то Petuh тоже будет абстрактным?

Аноним 04/10/15 Вск 03:02:53 #439 №552967 
>>552861
Добавить в xlsxwriter --init--.py
karasique Аноним 04/10/15 Вск 03:04:35 #440 №552969 
14439170757600.jpg
>>552967
Пикча приклейся!
sageАноним 04/10/15 Вск 09:11:31 #441 №552999 
>>552967
Но там уже есть такой файл. Не все так просто, иначе я бы не спрашивал.
Аноним 04/10/15 Вск 09:31:46 #442 №553003 
>>552999

СОЛЮШЕН

# python -c 'import libs.xlsxwriter'

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

# awk 'NR==22' workbook.py

from xlsxwriter.worksheet import Worksheet

ВОТ ЖЕ СУКА

# sed -i 's/from xlsxwriter\./from /g' *

И ТЕПЕРЬ РАБОТАЕТ! АЖ ТРИСЁТ! ЕБУЧИЙ ПИТОН
Аноним 04/10/15 Вск 09:49:32 #443 №553004 
>>553003
Катись нахуй, дибил-неосилятор.
Аноним 04/10/15 Вск 09:59:44 #444 №553005 
>>553004
Так ты решения не предложил даже, выходит, что неосилятор - это ты.
Охуенно - скачиваешь либу и меняешь исходники, чтобы хотя бы заработало.
Аноним 04/10/15 Вск 15:10:53 #445 №553137 
Питоны, читаю "Укус пи[hide]c[/hide]тона", добрался до первой задачки. Уже глаза себе все выебал, не могу понять, чего не так с кодом. Кто нибудь ее решал, из неофитов?

import os
import time

source = ['"C:\\Users\\user pc\\Desktop\\lesson"']

target_dir = 'C:\\pythbackup'
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'

zip_command = "zip -qr {0} {1}".format(target, ' '.join(source))

print(zip_command)
if os.system(zip_command) == 0:
print('Reserve copy created in', target)
else:
print('Error! Copy is not created'
Аноним 04/10/15 Вск 17:16:41 #446 №553212 
>>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
>>>
А теперь катись к хуям, неосилятор.
Аноним 04/10/15 Вск 17:21:29 #447 №553218 
посоны, мне нужно перехватывать все исключения, выдаваемые сбоящим интернетом. except BaseException: не сработал, исключения по-прежнему ложили программу. except Exception: решит эту проблему?
Аноним 04/10/15 Вск 17:23:11 #448 №553219 
>>553137
не закрыта скобка в последнем print.
Ваш Кэп.
Аноним 04/10/15 Вск 17:28:23 #449 №553229 
>>553218
Выбрось двойку. В тройке можно писать или

except Exception as e:

или

except:

Exception базовый класс для всего. Но намного лучше перечислять конкретные экзепшены по мере появления или заглянуть таки наконец в доку.
Аноним 04/10/15 Вск 17:34:53 #450 №553236 
>>553229
у меня тройка. эксепшенов разных появляется море, все прописывать заебешься. пропишу except:, спасибо.
Аноним 04/10/15 Вск 19:14:26 #451 №553324 
>>553219
>>553219
Не, в коде ошибок нету, это я криво скопировал. Там с функцией zip беда, я gnuwin32 поставил на десяточку, она справедливо не работает.
Аноним 04/10/15 Вск 20:36:48 #452 №553435 
Аноны, подскажите ньюфагу, что не так, блять, почему результат не записывается в файл?

f = open('file.txt', 'w')
vkapi.likes.getList(owner_id=-xxx, item_id=yyy, friends_only=1, type='post')
f.write( '\n'.join(str() +'\n'))
f.close()
Аноним 04/10/15 Вск 20:43:29 #453 №553442 
>>553435
>f.write( '\n'.join(str() +'\n'))
А что ты туда пишешь, аутист? Только один \n
Аноним 04/10/15 Вск 20:47:38 #454 №553446 
>>553442
Бля, а как сделать то, чтобы то, что возвращает api записывалось в файл?

аутист, не спорю
Аноним 04/10/15 Вск 20:51:27 #455 №553449 
>>553446
А я ебу что и как твой раковый вк-апи возвращает?

Попробуй print(vkapi.likes.getList(owner_id=-xxx, item_id=yyy, friends_only=1, type='post')) для начала.
Если есть что-то вразумительное - присваивай переменной и пиши ее в файл. Или сразу вместо принта f.write()
Иначе кури документацию.
Аноним 04/10/15 Вск 21:03:39 #456 №553463 
>>553449
Спасибо, анон, все заебись!
Аноним 05/10/15 Пнд 02:53:41 #457 №553690 
Я совсем ньюфаг объясните, что такое self.
Ни в одном из учебников нет доходчивого объяснения.
Аноним 05/10/15 Пнд 03:02:24 #458 №553692 
>>553690
Ссылка объекта на самого себя.
В ебанутом пистоне обязательный первый аргумент у методов объекта.
Аноним 05/10/15 Пнд 03:21:00 #459 №553694 
>>553692
>В ебанутом пистоне обязательный первый аргумент у методов объекта.
Прохладно, братишка.
https://docs.python.org/3/library/functions.html#staticmethod
Аноним 05/10/15 Пнд 04:09:11 #460 №553702 
>>553694
Да ладно, я знаю то в питоне есть аналоги статических методов, прост наверняка нюфагу это пока не важно и сути он не поймет.
Аноним 05/10/15 Пнд 05:38:53 #461 №553705 
>>553435
Пройди какой-нибдуь курс на той же кодокадемии, что ли, потому что при виде строки
>f.write( '\n'.join(str() +'\n'))
Складвается ощущение, что ты абсолютно ничего не понимаешь. Т.е. на что ты вообще надеялся, что в этой строке произойдёт?
Аноним 05/10/15 Пнд 10:21:13 #462 №553745 
>>553705
>>Т.е. на что ты вообще надеялся, что в этой строке произойдёт?
>Незнаю, мне в официальной группе в вк сказали это мне дожно помочь.
Аноним 05/10/15 Пнд 12:04:40 #463 №553777 
Можно ли dict или OrderedDict сортировать в соответствии с шаблоном типа другого словаря или списка?
Аноним 05/10/15 Пнд 14:10:09 #464 №553821 
Почаны, что-то я запутался и лень вспоминать прошлые треды, какой гуи лучше использовать, чтобы кроссплатформа и легко писать?
Аноним 05/10/15 Пнд 15:43:26 #465 №553858 
>>553777
Наговнокодил с помощью move_to_end и try/except.
Аноним 05/10/15 Пнд 15:54:26 #466 №553869 
Помогите в чем проблема? Нужно сделать так, чтобы к прибавлялось 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'
Аноним 05/10/15 Пнд 15:55:33 #467 №553872 
Зачем так зделано?
https://github.com/dimka665/vk/blob/master/vk/mixins.py#L64-L66
Аноним 05/10/15 Пнд 15:56:21 #468 №553873 
>>553869
Складываешь число и строку, так нельзя.
Аноним 05/10/15 Пнд 15:59:14 #469 №553876 
>>553873
ОЙ БЛЯТЬ! Я ЖЭ ТАК И ДУМал.
Вот я тупица.
Аноним 05/10/15 Пнд 15:59:56 #470 №553877 
>>553873
Ах да спасибо в любом случае.
Аноним 05/10/15 Пнд 16:00:35 #471 №553878 
>>553876
Почему я такой тупой?
я же даже перевел
Аноним 05/10/15 Пнд 16:27:32 #472 №553901 
>>553878
%потому что тупой%
Потому что не понял что перевел.
Аноним 05/10/15 Пнд 18:10:55 #473 №553979 
>>553858
dict не имеет никакого порядка, остаётся только OrderedDict. Если с памятью проблем нет, не будет ли чище, вместо изъёбств с ловлей эксепшнов, сделать как-то так:
a = <иходный словарь>
b = OrderedDict()
for key in a.keys():
    b[key] = a[key]

Ведь OrderedDict запоминает ключи в порядке ввода. Ну и a.keys() может быть заменено на что угодно, включая какой-то отсортированнй список. Разве что лишних ключей там быть не должно. Конечно, тут создаётся новый словарь.
Аноним 05/10/15 Пнд 18:17:55 #474 №553987 
>>553821
Ну же, анончики родненькие, какой гуй простой и кроссплатформенный?
Аноним 05/10/15 Пнд 18:24:41 #475 №553991 
>>553987
PyQt глянь.
Аноним 05/10/15 Пнд 19:56:54 #476 №554055 
Пацаны, я юзаю питон 3 и хочу отсортировать точки на плоскости по полярной координате, используя векторное произведение. Точки сравниваются так:
(a < b) <=> (a x b > 0)
Но в питоне 3 нельзя написать cmp = lambda a, b : a x b, потому что параметр cmp выпилен и оставлен только key. Че делать?
Аноним 05/10/15 Пнд 21:13:48 #477 №554114 
>>553991
>простой
>Qt
/0
Он настолько раздутый что жаба позавидует.
Аноним 05/10/15 Пнд 21:30:10 #478 №554125 
>>554114
На нём можно и просто всё делать, без model-view. В любом случае, лучше ничего нет, ну, может гтк, но я им не пользовался. Всё остальное либо мертво, либо говно-ткинтер, который в стандартной либе лишь из-за совместимости.
Аноним 05/10/15 Пнд 21:35:50 #479 №554128 
>>554125
Двачую.

Ну если изыски никакие не нужны - сделай на Tk.
Аноним 05/10/15 Пнд 21:36:39 #480 №554129 
>>553777
Сортировать надо индексы, можно использовать list.index как ключ сортировки.
Аноним 05/10/15 Пнд 21:40:02 #481 №554133 
>>554125
gtk через pygobject очень даже норм. В линуксах дохрена на нем написано.
Аноним 05/10/15 Пнд 22:00:18 #482 №554142 
Когда наступает тот уровень знания питона, когда можно с такого(см ниже) перейти на что либо серьезное калькуляторы, текстовые редакторы? Что нужно еще выучить чтобы перейти на следующий уровень? К слову я просто решил кое что опробовать, так что извините, если вам что либо не нравится.
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")

rasobject1 = rasshiren()
rasobject1.pisat(spisok)
Аноним 05/10/15 Пнд 22:03:08 #483 №554144 
>>554142
Нахуй этот кривущий транслит? create chislo? Really? Питон3 с юникодом нормально работает, пиши либо на рюске, либо на английске. И не выебывайся.

Дальше лень читать без форматирования. Запили на пасту чтоб анон не мучился.
Аноним 05/10/15 Пнд 22:03:28 #484 №554145 
>>554142
А что ты хочешь услышать? Голова-то твоя, если чувствуешь, что можешь или примерно понимаешь, что от тебя требуется - начинай делать
Аноним 05/10/15 Пнд 22:11:15 #485 №554149 
>>554145
Ну хотелось бы услышать о том, как вы начинали, если вы в этом треде значит в питоне заинтересованны.
Аноним 05/10/15 Пнд 22:12:38 #486 №554150 
>>554144
http://pastebin.com/gT2ab3YQ
Аноним 06/10/15 Втр 05:58:51 #487 №554262 
>>554149
Берёшь и делаешь, ёпте, чего ждать-то? Не знаешь, как что-то сделать — в гугл. Или ты думаешь, что задрочив 1000 элементарных упражнений тебя вдруг магическим образом осенит и ты без помощи интернета и даже доков напишешь еве онлайн, вслепую перескочив на стаклесс?
Аноним 06/10/15 Втр 11:32:57 #488 №554345 
14441203777780.jpg
>>554055
бамп вопросу
Аноним 06/10/15 Втр 11:39:26 #489 №554347 
Чуваки, а вы помимо расстановки пробелов в коде ещё и номера строк ставите?
Просто хочу сказать что, те кто используют питон мудаки.
Благодарю за внимание.
С уважением, ваш Аноним.
Аноним 06/10/15 Втр 11:45:01 #490 №554350 
>>554347
Не только номера строк, но ещё и номера символов на строке (столбцов), так интерпретатору легче показывать, где ошибка.
Аноним 06/10/15 Втр 11:47:30 #491 №554353 
>>554350
Крейзи.
С уважением, ваш Аноним.
----------
Аноним писал:
Не только номера строк, но ещё и номера символов на строке (столбцов), так интерпретатору легче показывать, где ошибка.
Аноним 06/10/15 Втр 11:53:25 #492 №554356 
>>554345
functools.cmp_to_key(your_cmp)
Аноним 06/10/15 Втр 14:40:45 #493 №554394 
>>550232
Эт нормально. Просто у тебя уже старческое слабоумие начинается. Обычно простые вещи проще осилить, чем сложные, но когда мозги, как сухое говно, приходится лабать на том, к чему привык.
Аноним 06/10/15 Втр 19:28:25 #494 №554522 
что-то вялый тред
Аноним 06/10/15 Втр 19:51:53 #495 №554546 
>>554522
ПИТОН НЕ КОБРА
Аноним 06/10/15 Втр 19:54:18 #496 №554550 
>>554522, нахуй тебе тред, заваливайся к нам >>549434 У нас тут джанга, бутстрап, немного жс, парсинг, лёгкая обработка видео, очереди на rabbitmq. Есть задачи для нубов (лойсы делать например).
Аноним 06/10/15 Втр 20:06:05 #497 №554566 
14441511657980.jpg
Снова я со своим тупым вопросом.
Что не так?
Сначала я делаю так:
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, а потом с начала списка (вернее пытаюсь, ведь эта часть не работает). Но какого хера мне пишет, что номер элемента вне списка в начале второй части?
Аноним 06/10/15 Втр 20:22:39 #498 №554578 
>>554566
Ну а запринтить number_lst перед этой строкой и увидеть его значение религия не позволяе? Вангую, перед строкой if '<div class="noteFotter">' in lst[number_lst + 1], переменная number_lst равна номеру последнего элемента списка, т.е. number_lst -= 1 не выполняется ни разу (я вижу там continue, а остальную часть кода и сам текст ты скрыл, что очень способствует помощи).
Аноним 06/10/15 Втр 20:27:36 #499 №554585 
>>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
Т.е., возврат в начало первого цикла.
Аноним 06/10/15 Втр 21:17:39 #500 №554613 
>>554550
Может завалюсь как-нибудь. Сейчас фласк изучаю.
Аноним 06/10/15 Втр 22:14:13 #501 №554647 
Возможно ли написать на Питоне скрипт, который бы решал системы уравнений для матриц вплоть до 10х10 методом Гаусса? Просьба не скидывать NumPy.
Аноним 06/10/15 Втр 22:30:29 #502 №554656 
14441598292430.jpg
>>554647
Ты хоть бы википедию для приличия открыл.
>Возможно ли
Сам-то как думаешь? Если можно на numpy, то почему нельзя на питоне?
Аноним 07/10/15 Срд 01:08:02 #503 №554769 
Какие из GUI библиотек в обиходе в продакшене? Так то умею в GTK, но что-то сдается нигде он не применяется.
Аноним 07/10/15 Срд 01:10:22 #504 №554770 
>>554769
GTK вообще или python+gtk? Первого навалом же.
Аноним 07/10/15 Срд 01:15:17 #505 №554772 
Помогите.
Аноним 07/10/15 Срд 01:17:50 #506 №554774 
>>554769
>GTK
>но что-то сдается нигде он не применяется.
Списочек пакетов из дебиана, юзающих питоновские биндинги к гтк.
https://bpaste.net/show/bc337ac32990
Аноним 07/10/15 Срд 01:53:01 #507 №554787 
Никак не могу понять нахуя нужен self кроме как просто первый параметр метода. В чужом коде вижу его часто не только в качестве первого параметра в описании метода. Зачем он нужен?
Аноним 07/10/15 Срд 01:54:25 #508 №554788 
>>554787
Чтобы обращаться к своему экземпляру класса.
Аноним 07/10/15 Срд 01:56:32 #509 №554789 
>>554788
Да блять мне трудно понять, что это значит, хотя вроде определение этих слов знаю. Можно простыми словами?
Аноним 07/10/15 Срд 02:02:17 #510 №554790 
>>554789
https://ideone.com/2ZghF8
Аноним 07/10/15 Срд 02:04:10 #511 №554791 
>>554790
Алсо, self не кейворд и вместо него можно писать что угодно. Но принято self.
Аноним 07/10/15 Срд 02:06:03 #512 №554793 
>>554791
>>554790
Ну это я конечно знаю. Тяжело понять. Наверно не из-за того, что мало сплю.
Аноним 07/10/15 Срд 02:09:25 #513 №554797 
>>554790
>>554791
Ни с чем сложнее этого пока что не сталкивался. Хотя я уже несколько дней пытаюсь сообразить.
Аноним 07/10/15 Срд 02:10:39 #514 №554798 
>>554793
>Чтобы обращаться к своему экземпляру класса.
Помедетируй над этим. t = Test(); t.x - так ты обращаешься к содержимому класса снаружи. self.x - изнутри класса. Ничего нового и сложного тут нет. Ты вообще с ООП в других языках работал?
Аноним 07/10/15 Срд 02:15:53 #515 №554802 
>>554798
Да это я знаю и так. Вопрос в том зачем он нужен, когда можно обойтись без него вставляя его только в описании метода. И поэтому мне также непонятно почему он вообще где либо есть кроме как там где я сказал.
Да в PHP было дело. Но в PHP мне все казалось предельно ясным, хотя я его подзабыл, но там вроде $this -> вместо self.
Аноним 07/10/15 Срд 02:18:57 #516 №554803 
>>554802
Можешь и тут this вместо self писать. Суть и там и тут одна.
Аноним 07/10/15 Срд 02:22:00 #517 №554806 
>>554803
Там все по другому, там, если не ошибаюсь это принудительно делается, и и вообще там насколько я помню над этим можно даже не задумыватся.
Меня другое интересует, почему его при всем при этом используют не только так как обязательно?
Аноним 07/10/15 Срд 05:16:54 #518 №554826 
>>554789
Позадрачивай определения. Что тако класс, а что его экземпляр, и какого хуя у них есть методы. Ну ты пони.
Аноним 07/10/15 Срд 05:34:29 #519 №554827 
>>554806
Вот у меня есть класс. Вот пишу я в нём есть метод, в котором хочу использовать один из атрибутов (экземпляра) этого класса. Как я без self до него доберусь-то? Никак. Затем self и нужен.
Аноним 07/10/15 Срд 05:39:56 #520 №554828 
>>554585
Принаут, в котором будет
>print(number_lst) # -1 or 0
>print(len(lst)) # > 1
>if ... in lst[number_lst+1] # errore
В студию, пожалуйста. Только принты внутрь лупа ставь, ты вадеь наверняка там инкрементируешь number_lst, да?
Аноним 07/10/15 Срд 06:21:25 #521 №554833 
У самого не получилось написать, а в Интернетах скрипты вызывают ZeroDivisionError. Да ещё почитал, что на Питоне делать такой скрипт не надо, легче на С намутить. Метод решения я знаю, а по поводу Вики – хуй знает, как я проебал этот алгоритм, так что спасибо.
Аноним 07/10/15 Срд 11:15:33 #522 №554908 
Котаны, затестил сейчас PyQt - просто сказка, есть xml-представление, вменяемый дизайнер, где можно вручную прописывать все свойства и лэйауты, все просто летает. Вся эта тема с сигналами и слотами - вроде не сложно, можно вполне быстро подключить всю логику.
Единственное, пока не знаю, насчет сборки, говорят какие-то сложности могут возникнуть, но в целом пока очень годнота.
Аноним 07/10/15 Срд 12:38:53 #523 №554958 
>>554908
cx_freeze. Под вендой проблем со сборкой нет. Под линуксом собирал один раз, была проблема с поиском и копированием *.so файлов в автоматическом режиме, в итоге скопировал их руками. Но под линуксами уж проще пакеты поставить или сам pyqt собрать, нежели делать бинаруную сборку.
Аноним 07/10/15 Срд 15:14:33 #524 №555019 
>>554958
>нежели делать бинаруную сборку.
а для чего ее вообще делать?
Аноним 07/10/15 Срд 15:46:20 #525 №555032 
>>554828
Я убрал в while и все заработало. ХЗ почему так. Хреново конечно, но ладно.
Теперь вопрос в том как обойти cloudflare, т.к. эта хрень мне запрещает заходить на сайт (через браузер захожу нормально).
Аноним 07/10/15 Срд 16:43:07 #526 №555076 
>>554656, браузер глюкнул, лови >>554833
Аноним 07/10/15 Срд 16:49:43 #527 №555085 
>>555032
Хеадеры может поставить нужно?
Аноним 07/10/15 Срд 17:18:40 #528 №555102 
Пагни, кто в чем питонит? Я вот сейчас pycharm поставил, поглядел, почему то он грустный.
Аноним 07/10/15 Срд 17:23:34 #529 №555107 
>>555085
Загуглил, что надо под браузер закосить.
Вставил
urllib.URLopener.version = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461)'
Вроде пока работает.
Потом может еще за прокси спрошу. Что-то у меня не получается с ними.
Аноним 08/10/15 Чтв 10:39:15 #530 №555138 
>>555102
pycharm всегда грустный, если его не настриваться и запускать на слабом пк.

Так-то похуй в чём писать. Я например Geany юзаю. Простейший редактор без наворотов.
Аноним 08/10/15 Чтв 13:06:54 #531 №555197 
Сосоны, какую либу можно заюзать для разработки простой 2D игры на 3 питоне?
Аноним 08/10/15 Чтв 13:23:37 #532 №555203 
>>555197
Если ты у мамки геймдев то бери юнити и не выебывайся.
Если задача стоит сделать игру именно на питоне чтобы лабу сдать или курсовик , то pygame, например. Хотя можно и в Tkintere ебашить.
Аноним 08/10/15 Чтв 13:55:50 #533 №555218 
>>555203
Разве pygame дружит с третим?
Аноним 08/10/15 Чтв 14:17:09 #534 №555231 
Почему в этой строке
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 не работает?
Аноним 08/10/15 Чтв 14:59:54 #535 №555240 
>>555107
Прокси вряд и потребуется, cloudfire и так пропустит.
Аноним 08/10/15 Чтв 15:09:01 #536 №555243 
>>555231
Почитай как работает оператор или в питоне. Заодно как работает внутри эта функция глянь (прямо код). Совсем не так, как ты думаешь.
Аноним 08/10/15 Чтв 15:11:29 #537 №555244 
>>555218
Разве можно быть настолько тупым и ленивым, чтобы не загуглить этот вопрос?
Ну или хотя бы зайти на сайт pygame и найти там ебаный вики с факом?
http://www.pygame.org/wiki/FrequentlyAskedQuestions#Does%20Pygame%20work%20with%20Python%203?

Это ведь пиздец как трудно.
Аноним 08/10/15 Чтв 15:44:20 #538 №555249 
Как с помощью питона получить значение из ячейки экселя содержащего значение выпадающего списка. Например, есть поле "Материалы", там есть "МДФ", "Массив", "ДСП". Рядом есть еще одно поле "Толщина" и соотвествующие значение "6", "10", "12", "16". Есть словарь - materials = {'МДФ' : {'6' : '230', '10' : '260'}} и так далее. Нужно соответсвенно получить цену, если заданно МДФ 10 = 260.

Делаю через xlwings. В принципе всё ахуенно.

Значения вроде вытаскиваются, однако код всё равно не работает. Выдает KeyError 16.0
http://ideone.com/DhnqHU

Однако, если задать material и depth "Вручную"
http://ideone.com/LCPTb3

Всё работает. Хуй знает че за хуйня.
Аноним 08/10/15 Чтв 15:44:48 #539 №555251 
>>555244
Конечно трудно, я ж не изначально спрашивавший, и мне пайгейм казался уже много лет чуть ли не заброшенным проектом, и копаться на их убогом сайте, где даже кнопки давнлоад или того же FAQ нет, желания не появлялось (честно, я туда перед постом зашёл и сразу вышел).
Аноним 08/10/15 Чтв 15:45:41 #540 №555252 
>>555249
У тебя ключи в стрингах, а ты ему флоат передаёшь.
Аноним 08/10/15 Чтв 15:50:17 #541 №555255 
>>555251
Вбить в гугл ебаные заветные pygame and python3 или python3 games сука тоже видимо тяжело. Ибо блять первая ссылка сразу блядский туториал. http://pythonprogramming.net/pygame-python-3-part-1-intro/
Аноним 08/10/15 Чтв 15:52:03 #542 №555257 
>>555252
И что ты мне предлагаешь?

material = str(Range('Sheet 1', 'E2').value)

Один хуй тоже самое будет.
Аноним 08/10/15 Чтв 15:56:52 #543 №555260 
>>555019
Очевидно же, чтобы пользователю не пришлось ставить питоны и библиотеки.
Аноним 08/10/15 Чтв 16:55:42 #544 №555301 
>>555257
str(int(...)), например. Откуда я знаю, в каком там формате у тебя записаны данные в экселе. Включе у тебя стоит "16", значит именно строку "16" тебе и нужно туда передаь в качестве ключа.
Аноним 08/10/15 Чтв 21:37:32 #545 №555475 
14443294530290.png
Есть сайт на джанго и файл с пачкой юзеров. Как лучше данные из csv в базу данных загнать? У меня что-то возникают всякие безумные идеи по типу "загнать строчку из csv в форму, провалидировать ее и сохранить" или похожее извращение с моделью. Или просто взять данные и напрямую заебенить в базу? Так ведь пароль нужно будет сгенерировать, и послать юзеру на почту + так как данные заносить нужно в 2 связанные таблицы способ с моделью кажется проще. Чего посоветуете?
Аноним 08/10/15 Чтв 22:36:33 #546 №555509 
>>555475
Слишком расплывчато описано. И в конце концов нихуя не понятно что тебе нужно сделать.

Если тебе нужно просто заебенить инфу в БД, то просто напиши Custom Django Command, которая будет хуярить в БД данные.

Можешь сделать еще таблицу с этими данными и привязать к юзеру по ключу и по идее нихуя тебе не надо отправлять ему.

Больше конкретики: Что за инфа в CSV, зачем эта инфа нужна тебе в проекте, что ты с ней будешь делать, как с ней юзер контактирует.
Аноним 08/10/15 Чтв 22:44:20 #547 №555515 
>>555509
В csv у меня данные пользователей, имя, емейл, телефон, дата рождения и т.д. Эти пользователи не зарегистрированы на сайте. Мне нужно перенести данные из csv дабы юзер мог зайти на сайт указав свой емейл и пароль(который я сгенерирую и отправлю ему по почте). Как-то так
Аноним 08/10/15 Чтв 23:28:38 #548 №555525 
>>555515
У тебя есть модель юзеров, которые уже зарегистрированы на сайте?
Просто берешь делаешь Custom Django Command и заполняешь БД создавая новые записи там же делаешь SMTP сервер и рассылку.
Аноним 09/10/15 Птн 04:41:22 #549 №555617 
есть один сервер на линупсе, там стоит божественный бетон 2.7.
Я страный ньюфаг и умею только в 3.
хочу запускать там свои поделия, но не могу поставить необходимые модули для третьего, всякие пип ставят на второй, дефолтный.
как же быть?
Аноним 09/10/15 Птн 04:52:30 #550 №555618 
14443555503300.jpg
>>555617
python3 -m pip install package_name ?

Ну и вообще по установке модулей - https://docs.python.org/3.5/installing/index.html

Алсо, некоторых конкретных модулей от второго под третий может просто не быть, т.к. они говно мамонта/автор умер/забил и поленился. Но может быть альтернатива в первом результате гугла. Если нет, если портить на третий самому лень и прямо таки НАДО второй - есть 3to2, бэкпортит твой код с третьего на второй.

И хуле ты тут в 04:41 забыл? Иди спи, шакал ебучий. Заставил меня отвечать.
Аноним 09/10/15 Птн 08:00:18 #551 №555641 
>>555618
Я непонятно выразился. Коротко: я в вот ебал второй, хочу третий везде (даже Аллах).
На локальной машине все хорошо работает, осталось только модули на сервер накатить.

Сделал поделие которое ползает по всему двачу в поиске "засмеялся проиграл" тредов и качает из них картинки. На сервере сможет делать это целыми днями, пока его не забанят нахуй.
А сейчас у меня 10 вечера 0_o
Аноним 09/10/15 Птн 09:45:20 #552 №555654 
Перекат
>>555653 (OP)
DolDlygbLVR  Bradley 22/10/15 Чтв 22:57:44 #553 №563988 DELETED
pB4aSP http://www.FyLitCl7Pf7kjQdDUOLQOuaxTXbj5iNG.com
comments powered by Disqus

Отзывы и предложения