Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски

[Ответить в тред] Ответить в тред

Check this out!


<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
666 | 73 | 225

Python Python 11/05/18 Птн 07:43:36  1188085  
image.png (479Кб, 700x420)
image.png (271Кб, 500x625)
image.png (2198Кб, 1638x2048)
image.png (407Кб, 745x498)
F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Для кода https://repl.it/languages/python3
Не скидывайте сложные исходники в тред, у двоща ебанутое форматирование
Книги https://yadi.sk/d/tArKKuQu3Kejuq

В предыдущей серии >>1182179 (OP)
Аноним 11/05/18 Птн 07:48:17  1188088
Опять нумерацию проебали. Это третий раз уже?
Аноним 11/05/18 Птн 07:49:30  1188089
>>1188088
Номерацию проебали уже раз 20, ты знаешь, сколько тут питон треды существуют?
Да и зачем нумерация, если треды все равно никуда не сохраняются, только дрочить на нее
Аноним 11/05/18 Птн 08:44:04  1188099
def atata():
..try:
....return 'пики точены'
..finally:
....return 'хуи дрочены'

print(f'Куда же присядет анон? Да это же {atata()}!')
Аноним 11/05/18 Птн 08:57:16  1188101
>>1188099
Во-первых синтакс эррор, во-вторых форматирование так не работает.
Аноним 11/05/18 Птн 09:06:12  1188106
>>1188101
С разморозкой!
Аноним 11/05/18 Птн 09:23:24  1188110
>>1188101
>Во-первых синтакс эррор
Чо?
try - пытайся сделать
finally - сделай в любом случае после блоков \эксепт
Аноним 11/05/18 Птн 09:23:57  1188111
>>1188110
try\except
фикс
Аноним 11/05/18 Птн 09:42:50  1188113
Кто-нибудь пишет что-то интересное во что можно влиться с вами? Инетересуют сайты, агрегаторы, сервисы. Стек — питон, само собой.
Аноним 11/05/18 Птн 10:39:06  1188141
>>1188101
>Во-первых синтакс эррор
Какой нахуй синтакс эрор если он вернет "пики точеные" и не дойдет до файнали
Аноним 11/05/18 Птн 10:59:24  1188153
>>1188141
>не дойдет до файнали
Вам перезвонят. Ну когда ж вы, чёрт возьми, уже научитесь не писать сюда то, в чём не уверены, имея возможность проверить это за 10 секунд в интерпретаторе?
Аноним 11/05/18 Птн 11:04:05  1188157
>>1188101
> форматирование так не работает.
Хах, скоро 3.7 выйдет, а тут еще божественным 3.6 не обмазались.
Аноним 11/05/18 Птн 11:25:45  1188165
>>1188153
Но интрепретатор как раз показал
"Куда же присядет анон? Да это же хуи дрочены!"
Ошибки нет
Аноним 11/05/18 Птн 11:26:16  1188166
>>1188165
Но тот анон с пиками обосрался, да
Аноним 11/05/18 Птн 11:31:14  1188170
>>1188165
Тот, кому я отвечал, говорил прямо противоположеное же.
Аноним 11/05/18 Птн 14:32:31  1188239
>>1188085 (OP)
Сап, питонач. Вкатываюсь в ООП потихоньку и нихуя не могу въехать в магические методы.
Если с __add__ все более менее понятно, где он назначает первый экземпляр self, второй other и при попытке операции сложения возвращает класс со сложенными значениями. То принцип работы с __truediv__ и дохулиардом других методов у меня не укладывается в голове. Поясните чо да как, с меня как всегда NoneType.
Аноним 11/05/18 Птн 16:03:12  1188281
>>1188239
Что тебе не понятно-то, блин? Так же вызывается и два аргумента (делимое и делитель) передаются при операции деления (при заимпорченном division'е из __future__).

>возвращает класс со сложенными значениями.
Что напишешь, то и вернёт.

>и дохулиардом других методов
Ну блядь, возьми да прочитй, когда они вызываются.
(5).__sub__(3) == 2
Аноним 11/05/18 Птн 16:13:41  1188284
Я тутова это, впервые вкатываюсь в погромирование (хуманитарий типо).
Решил начать с Python. Читаю учебник https://automatetheboringstuff.com.
Вот, пока в начале, дошел до “Truthy” and “Falsey” Values.
И чет нипанятна, там пример такой:

name = ' '

while not name:

print('Enter your name:')

name = input()

Можете за это вот эту строку пояснить "While not name".
Про операторы while я понимаю, и я бы написал while name=' ' и т.д. А тут непонятно с этим not, и в учебнике нихуя не объясняется.
Аноним 11/05/18 Птн 16:24:46  1188288
>>1188284
Погугли логические операции.
Аноним 11/05/18 Птн 16:48:00  1188296
>>1188284
Смари
Сейчас нейм что - правильно, целое нихуя. Тут целое нихуя равняется к False.
После ввода любого name оно уже будет чем-то, хоть там твое имя, хоть хуй собачий. Тут хотя-бы что-то равняется к True.
Аноним 11/05/18 Птн 17:04:19  1188303
>>1188296
это я понимаю, что int 0, float 0.0, str ' ' - это False.
я строку while not name не понимаю.
А конкретно этот not, он тут какую функцию выполняет и к чему привязан?


Аноним 11/05/18 Птн 17:15:07  1188311
>>1188303
https://yandex.ru/search/?text=python логические операции
Аноним 11/05/18 Птн 17:22:51  1188312
Очередное "самое лучшее GUI"
https://github.com/mherrmann/fbs-tutorial/blob/master/README.md
Аноним 11/05/18 Птн 19:08:42  1188360
Здарова пацаны.
Сам по жизни фулл стак жс макака, но хочу научиться писать рест апи на питуне, чисто для общего развития.

Сегодня пол дня читал доки к джанге, поиграл с чистой джангой и оказалось, что нужна не она, а некий рест фреймворк.

Поясните мне, как это должно работать? Вот эта парадигма Model - Serializer - ViewSet.

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

Может у кого-то есть репозиторий с таким стеком, чтобы я посмотрел, как он устроен, какая там файловая структура и тд?
Аноним 11/05/18 Птн 19:37:55  1188369
>>1188360
https://github.com/devslaw/django_rest_example

Гуглится за минуту. Основной фарш в папке apps.

Говно эта ваша жанга. Говно этот ваш 3д мир. Меня моя вайфу зовёт, некогда мне в такой тухляк вникать.
Аноним 11/05/18 Птн 19:43:12  1188371
>>1188360
Тебе не нужна джанга, попробуй nodejs или aiohttp
Аноним 11/05/18 Птн 20:28:16  1188396
>>1188360
Если чисто рест, то возьми Falcon
Аноним 11/05/18 Птн 21:42:19  1188449
Аноны, нужно ли писать тесты для своего кода, который и так проверил на возможные варианты?
Аноним 11/05/18 Птн 21:54:21  1188457
>>1188303
> я строку while not name не понимаю.
Дословно - ПОКА НЕ name, что можно трактовать как ПОКА НЕ TRUE
Вот когда будет уже TRUE, тогда твой цикл перестанет крутиться.
Аноним 11/05/18 Птн 21:55:44  1188458
>>1188449
Как по мне, нужно обязательно вести чейнжлоги, и в особенности, когда пишешь "на один раз" - краткую документацию по коду. В один момент этот текстовый файлик сэкономит тебе туеву хучу времени.
Аноним 11/05/18 Птн 22:16:29  1188469
>>1188284
Пока bool(name)== False:
do something
Пока ты этим инпутом нихуя не впишешь в имя = будет продолжаться цикл
not name означает, что если нейм не ссылается на ненулевое значение - оно False
хуй знает как пояснить еще понятнее
Аноним 11/05/18 Птн 22:18:07  1188470
>>1188369
Спасибо.
>>1188371
Ноду я и так умею. Джанга это первый шаг в мир питуна, который я изучаю фо фан.
>>1188396
Нужна именно джанга.
Аноним 11/05/18 Птн 22:21:59  1188471
>>1188085 (OP)
кароче я учу классы, все покашо понятно, селфы там хуелфы
Иниты
Но нахуй они нужны ? ну всмысле зощем ? В каких случаях я не смогу использовать нормальные штуки, а только классы
и этот ваш пидор Марк Лутз меня так доебал, невозможно его читать, лучше читайте по оф. докам пайтона
Она у вас на компудахтере даже есть
Аноним 11/05/18 Птн 22:36:46  1188480
>>1188470
Ну тогда души джангу, ничего там страшного нет
Аноним 11/05/18 Птн 23:15:20  1188502
помогите лоху-новичку, хз как гуглить
если человек отправляет телеграм боту какой-то текст, то как этот текст сделать, например, нулевым элементом массива или первым (добавлять еще ничего не надо), чтобы потом одним списком запринтить все его заметки, например. Вот кусочек кода:

notes['tutodin', 'tutdva']...
...if message.text == 'Заметка 1':
bot.send_message(message.chat.id, 'Теперь пришли мне ее')
????? = notes[0]
elif message.text == 'Заметка 2':
bot.send_message(message.chat.id, 'Теперь пришли мне ее')
????? = notes[1]...
print('Заметка 1:' + notes[0], '\nЗаметка 2: ' + notes[1])

помоги двачик
Аноним 11/05/18 Птн 23:22:16  1188507
>>1188502
Обычно такие вещи в бд сохраняют и потом читают из нее по надобности
Аноним 11/05/18 Птн 23:36:48  1188516
>>1188480
Душу потихоньку.

Как сделать шоткаты для консоли?
У ноды есть npm run scriptname, например, есть какой-либо аналог для жанги?
Аноним 11/05/18 Птн 23:40:16  1188521
>>1188502
>>1188507
Как по мне лучше подзаебаться с pickle, чем начинать дроч с бд
Аноним 12/05/18 Суб 00:07:44  1188531
>>1188521
Или с shelve.
Аноним 12/05/18 Суб 00:13:02  1188532
>>1188507
>>1188521
>>1188531
Ну а как сами данные для хранения принять? или все через pickle надо делать?
Аноним 12/05/18 Суб 00:24:30  1188536
>>1188532
Тю бля, мне когда-то давно отвечали на то, как принимать хуйню, что пишет клиент, но я все проебал. Попробуй гуглить поперек, пока тебе не ответят.
Аноним 12/05/18 Суб 00:38:29  1188542
>>1188521
> лучше подзаебаться с pickle, чем начинать дроч с бд
C базами данных ему всё равно придётся познакомится, да и особо дроча там нет. Подрубил SQLite, на SQL`е накидал пару команд и всё.
А потом уже по желанию через ORM`ку какую всё организует.
Аноним 12/05/18 Суб 00:39:15  1188543
>>1188532
Как-как.
Читай доки своей библиотеки для ТГ, и сообщение юзера в БД
Аноним 12/05/18 Суб 01:21:30  1188553
>>1188085 (OP)
Сап. Кто-то в этом итт работал с Kivy? Есть пара вопросов:
- Можно ли сделать окно прозрачным? Это вообще в принципе возможно сделать не только в рамках сабжа? Или может есть какие-либо костыли?
- Есть ли готовый способ сделать возможность перетаскивания окна из любой точки?
Аноним 12/05/18 Суб 04:57:39  1188585
Анон помохи! Уже больше недели, а то и двух бьюсь с проблемой. Пишу плагин для коди чтоб удобно смотреть аниме было с ресурса smotret-anime. Дело в том, что на этом сайте большинство видео разбиты на несколько частей. Мне было бы на это похуй, но каждое видео сопровождается субтитрами, собственно для этих двух потоков нужен единый таймлайн, а возможно ли как-то решить это в рамках платформы kodi я пока не нашёл. Я уже совсем отчаялся, не хочется изобретать велосипеды и делать криво работающее дополнение, а хочется шоб запустил и попёр!

Ещё проблема конечно же в безграмотности, ведь в мультимедиа я вообще не ебу что куда. В общем.

Дано:
Две или более ссылки на серию, которые нужно воспроизвести как цельный эпизод с единым таймлайном (из-за тайминга сабов).

Идея:
После долгих раздумий появилась идея на клиентской машине ставить промежуточный сервер, который бы объединял эти два потока в один, просто каким-то хуем ставя их один за другим. Плеер на сайте просто же проигрывает их один за другим, а таймлайн у них заранее установлен.

Реализация:
Вот тут анон мне нужна твоя помощь! Подскажи, насколько идея хуёвая и вообще выполнима ли она? Если да, то просто укажи путь на инструменты, реализации чего-нибудь подобного, хоть что-нибудь, просто скажи как это гуглить!
Аноним 12/05/18 Суб 05:21:25  1188587
>>1188585
Проще формировать плейлист из этих кусков + нарезать сабы для каждого куска.
Аноним 12/05/18 Суб 05:37:37  1188590
>>1188587
Тоже идея. Пусть это не будет идеалом реализации, но звучит гораздо проще. Точнее в таком решении гораздо меньше неизвестных. Встаёт лишь вопрос как парсить сабы, а звучит он гораздо определённее чем та хуйня что я выше написал, где в реализации я не шарю от слова нихуя.
Аноним 12/05/18 Суб 06:29:00  1188594
>>1188590
Возможно даже нарезать сабы не придётся, нужно разобраться с форматами плейлистов. Начинай с тех что поддерживаются непосредственно в коди.
Аноним 12/05/18 Суб 07:02:18  1188598
>>1188594
Ну тут легче спрашивать какие нужны?
Аноним 12/05/18 Суб 07:03:29  1188600
>>1188594
Kodi supports PLS, Winamp M3U, Cue Sheets, and Kodi Smart Playlist (XSP) playlists.
Аноним 12/05/18 Суб 07:06:56  1188601
>>1188458
То есть, если я где-то накасячу, то смогу вернуть стабильную версию?
Аноним 12/05/18 Суб 07:07:20  1188603
>>1188458
То есть, если я где-то накасячу, то смогу вернуть стабильную версию?
Аноним 12/05/18 Суб 07:31:06  1188606
>>1188600
Это всё больше похоже на аудиоплейлисты. Вот если честно, я тоже нихера не эксперт по теме, но если будешь скачивать и собирать по частям, бери матрёшку:
https://matroska.org/technical/guides/faq/index.html
>How can i create Matroska files
Тебе нужен именно transmux.
https://mkvtoolnix.download/doc/mkvmerge.html

Стриминг конечно предпочтительнее, меньше возни, но вот не знаю насколько успешно это завяжется в коди, все эти smotri-anime пишут свои плееры чтобы усложнить жизнь тем кто хочет скачать или порезать рекламу. Ну и контент там обычно пережат до безобразия, очень мелкий fps, очень большие искажения, но таки да, всё есть, выбирай и смотри.
Аноним 12/05/18 Суб 07:32:07  1188607
>>1188449
Нужно. Чтобы можно было изменять код и не бояться что что-то отломалось.
Аноним 12/05/18 Суб 07:43:15  1188609
>>1188606
Да в том то и дело, что скачивать полностью и переделывать это не вариант абсолютно. Для этого есть торренты встроенные для... Ну в общем всё это не важно, да. Жаль конечно, про плейлисты ща гуглил, пытаюсь всё это дело в m3u загнать и посмотреть что получится.
В общем пока ковыряюсь. И на том спасибо
Аноним 12/05/18 Суб 08:45:11  1188614
Безымянный.png (11Кб, 782x284)
Подскажите, как организовать считывание данных в задаче http://pythontutor.ru/lessons/lists/problems/kegelbahn/
Аноним 12/05/18 Суб 09:33:09  1188615
>>1188601
>>1188603
Не понял тебя. Ты так или иначе можешь вернуть стабильную версию кода. По крайней мере в пайчарме такая хуйня есть.
Алсо, возьми за привычку сохранять по отдельности сорцы с крупными изменениями.
Назвал там "залупа кентавра 0.3" и в чейнжлоге пишешь "0.3 - добавлено то, убрано другое".
Аноним 12/05/18 Суб 11:24:50  1188629
Бля, как задетектить инпут сочетания клавиш? Например пробела и ЛКМ?
Аноним 12/05/18 Суб 11:45:27  1188633
Объясните нюфане, почему во второй раз он использует if, а не elif? И так и так вроде работает. Что я упустил?
Аноним 12/05/18 Суб 11:51:13  1188638
>>1188633
https://repl.it/repls/MistyroseDramaticPriorities
Отклеилось
Аноним 12/05/18 Суб 12:15:44  1188646
>>1188633
Ну захотелось ему так, какая разница? В любом случае, если выполнится первое условие, то до второго и не дойдёт. К тому же, условия взаимоисключающие, так что даже если бы там был не break, то тоже разницы бы не было.
Аноним 12/05/18 Суб 12:21:14  1188647
>>1188633
Лучше конечно элиф, но если в задании автор показывает принцип работы брэйка или еще что, то не зацикливайся, это просто пример
Аноним 12/05/18 Суб 12:26:04  1188651
>>1188646
>>1188647
Спасибо пацаны.
Я смышленый, да?
Аноним 12/05/18 Суб 12:39:37  1188653
>>1188651
Нет
Да)
Аноним 12/05/18 Суб 15:28:15  1188706
>>1188651
Ты умничка и у тебя все получится!
Аноним 12/05/18 Суб 15:34:29  1188709
14914167285230.webm (8082Кб, 1280x720, 00:00:20)
Бамп неотвеченному вопросу из предыдущего треда.
Хочу вкатиться в бекенд, прочитал Саммерфильда, Лутца, Бьюли. Я сначала думал, что надо теперь прочитать про Джанго, но я так понимаю, она именно про написание самих скриптов-обработчиков-запросов по стандарту wsgi, cgi, я хз уже, а хотелось бы ещё что-то по разработке в общем: как развернуть apache\nginx да и что из двух стульев выбрать, как туда свой Пистон вставить, какую из сотен бд туда пристроить. Что посоветуйте? Пока кончились питоно-книги читаю SICP, алгоритмы, и тереблю свой пистон на codewars.
Аноним 12/05/18 Суб 15:49:46  1188715
>>1188709
Открываешь docs на официальных сайтах, tutorial и устанавливаешь-разворачиваешь, для этого не надо талмуды читать. БД бери постгрес. А вот как раз алгоритмы почитай. Таненбаума ещё можно про сети, про операционные системы.
Аноним 12/05/18 Суб 16:52:19  1188747
>>1188715
Плюсую все, кроме бд.
Для начала и SQLite хватит, что б не ебаться с разворачиванием/подключением, а потом, как джангу освоишь, сможешь к БД приглядеться, может тебе монго подойдет, может постгрес.
Аноним 12/05/18 Суб 17:04:29  1188749
>>1188747
SQLite это довольно экстремальный вариант, предназначенный для встраивания в приложения, там есть множество неудобств и отклонений от стандарта. Разворачивание пг это apt-get install, systemctl enable postgres, редактирование пары строк в конфиге если вообще нужно, systemctl start postgres. И всё, psql в зубы и пошёл.
Аноним 12/05/18 Суб 17:49:19  1188770
>>1188749
Монга так же подключается, например, и интерфейс у неё подружелюбнее, чем скуль.
Аноним 12/05/18 Суб 18:46:55  1188786
>>1188770
В монге нет транзакций, каскадных удалений и много чего ещё. Да и зачем вообще монга, когда в пг уже завезли json fields?
Аноним 12/05/18 Суб 20:04:46  1188818
image.png (148Кб, 1789x879)
image.png (22Кб, 741x298)
Привет, анон. Почему этот код не работает для '0000'? Питонить начал недавно, не гнобите, пожалуйста!
Аноним 12/05/18 Суб 20:07:33  1188819
>>1188818
Можно, конечно, проверить на '0000', но это как-то некрасиво.
Аноним 12/05/18 Суб 20:08:12  1188821
>>1188818
Потому что 0 это False
Аноним 12/05/18 Суб 20:13:06  1188827
>>1188821
Уже посмотрел другие решения, оказывается есть метод isdigit, а я-то думал, что я гений.
Аноним 12/05/18 Суб 21:36:18  1188848
>>1188553
Бамп, что ли.
Аноним 12/05/18 Суб 22:20:09  1188859
Аноны, что мне делать?
Есть функция которая не всегда принимает file, как мне ее переписать, либо как заменить file?
Аноним 12/05/18 Суб 22:44:16  1188868
Привет, анон. Посоветуй какую-нибудь хорошую статейку по работе с API неважно, на русском или на английском, чтобы было хорошо расписано как оно работает и что с ним делать в том же питоне. Я совсем зеленый, информации куча, хочется, чтобы в одном месте и подробно.
Аноним 12/05/18 Суб 22:49:46  1188871
>>1188868
По созданию АПИ?
На сайте джанго рест фреймворка есть туториал, как раз тоже его прохожу. После нодовского экспресса пиздец голову ломаю.
Аноним 12/05/18 Суб 22:51:50  1188872
>>1188871
Не, именно по получению данных из него, и как он устроен, в целом. Че за токены, че за заголовки, че за json.

Всякие серверные фреймворки даже трогать пока боюсь, совсем зеленый. Хочу пока написать парочку парсеров для себя.
Аноним 12/05/18 Суб 22:54:24  1188873
>>1188872
Тогда не подскажу
Аноним 12/05/18 Суб 23:18:30  1188879
>>1188749
Ну а для склайта ничего настраивать вообще не надо.
Работать он через ОРМ будет и разницу не увидит и проблем не встретит.
>>1188786
> зачем монга
Идите мат.часть учите и найдете применение
Аноним 12/05/18 Суб 23:19:29  1188880
>>1188872
Райан Митчелл - Скрапинг веб-сайтов с помощью Python
мимо ещё более зелёный
Аноним 12/05/18 Суб 23:21:07  1188881
>>1188880
Храни тебя господь, антоша.
Аноним 12/05/18 Суб 23:21:45  1188882
Нужно быстро накидать дешманский интерфейс, но с гуи не дружу. Что лучше, сразу из коробки использовать tkinter или учить qt. И почему tkinter так хейтят?
Аноним 12/05/18 Суб 23:22:14  1188883
>>1188859
Неси функцию, с контекстом только
>>1188872
Просто почитай на хабре том же про реализацию АПИ различными сервисами. Ну или зайди на любимый сайт/сервис, и поищи документацию/АПИ и будет тебе живой пример.
Аноним 12/05/18 Суб 23:24:37  1188885
>>1188715
>не надо талмуды читать
А как же "Learning Django with ur mom" и остальные? О чем они?

>БД бери постгрес
А чем она лучше MySQL?

>>1188747
Уже развернул MySQL и все сделал.

>>1188879
>Идите мат.часть учите и найдете применение
Какому-то анону из прошлых тредов советовали использовать монгу как кэш между приложением и большой БД. Без понятие, что это как и зачем.
Аноним 12/05/18 Суб 23:35:53  1188892
>>1188883
>Просто почитай на хабре том же про реализацию АПИ различными сервисами. Ну или зайди на любимый сайт/сервис, и поищи документацию/АПИ и будет тебе живой пример.

Там анон выше скинул книжечку, в которой таки все, что мне нужно - от работы с апи, до сохранения данных в базе данных и т.д. Но за совет спасибо.
Аноним 12/05/18 Суб 23:44:25  1188896
>>1188859
Объяснение проблемы просто пиздец, откуда вы такие берётесь?
Ткну в небо и скажу, что тебе нужны дефольные аргументы — https://docs.python.org/3/tutorial/controlflow.html#default-argument-values
Аноним 12/05/18 Суб 23:44:37  1188897
>>1188885
Развернул? Маладэц
Сворачивай
> использовать как кеш
Вполне хорошая идея.
Лучше не задавай здесь глупые вопросы, а возьми загугли, сравнение постгреса и монго, там будет очевидно где юзать постгрес, а где монго.
Аноним 12/05/18 Суб 23:46:44  1188900
>>1188892
А, ну да, тоже читал, но хуй знает, как по мне лучший опыт - практика.
Но книгу прочти, хорошо рассказано про парсинг страниц и инструменты.
Аноним 13/05/18 Вск 00:08:05  1188906
Ловите, осваивайте, пасаны с конференции рекомендуют
https://github.com/pypa/pipenv/blob/master/README.rst
Аноним 13/05/18 Вск 00:14:34  1188908
Снимок.PNG (22Кб, 834x261)
>>1188085 (OP)
Анончик, родименький, расскажи что я делаю не так? Чому вк не принимает мою пиктчу в виде байтов? В то время как в виде объекта io.BufferReader принимает аж бегом.
Аноним 13/05/18 Вск 00:16:33  1188909
>>1188908
BufferedReader* конечно
Все время путаю.
Аноним 13/05/18 Вск 00:46:45  1188917
Может ли virtualenv не создаваться из-за кириллицы в пути к питону? https://pastebin.com/D3ratLG7

Или причина в чем-то другом? Помогите!
Аноним 13/05/18 Вск 01:01:28  1188924
image.png (18Кб, 641x144)
>>1188908
> Чому вк не принимает мою пиктчу в виде байтов
Ну вот хуй знает
Аноним 13/05/18 Вск 02:03:15  1188940
>>1188917
Да, virtualenv не работал из-за кириллицы в названии, пофиксил.
Аноним 13/05/18 Вск 05:38:50  1188957
>>1188879
Аж интересно, о какой матчасти идёт речь. docs.mongodb.com я знаю почти наизусть.

>>1188885
Ну хочешь бери MySQL, пг более цельно сделана и в ней больше фич. MySQL может быть полезной когда у тебя какой-то специфический ворклоад и там ты сможешь выжать дополнительную производительность используя какой-нибудь специфичный storage engine. Для новичка в общем-то большой разницы наверное и нет.

>>1188906
Работает через раз.
Аноним 13/05/18 Вск 05:40:26  1188958
>>1188885
>Learning Django with ur mom
Вода водяная. Но если это твой первый фреймворк вообще, наверное смысл есть.
Аноним 13/05/18 Вск 07:57:40  1188964
Суп анон. Писал вчера сюда по поводу плагина для коди. Краткая суть: нужно воспроизвести несколько кусков видео как один в рамках платформы kodi.

Вот ещё какая идея пришла.
Кто-нибудь может подсказать по какому принципу работает YouTube-dl? Ведь он по сути скачивает множество кусочков в один файл. Код читал, разобраться сложновато, но думаю что вполне возможно.

В общем идея такова, что может существует такая же возможность как в youtube-dl просто скачать несколько видеофайлов в один? Типа делаешь какой-нибудь with open(video.mp4): write url_video1.mp4, url_video2.mp4, url_video3.mp4...
просто в мультимедиа форматах я полный ноль и не знаю, вдруг там какие-либо маркеры начала и конца стоят которые нужно ‘обрезать’, также не знаю где и по каким правилам хранится метадата. В общем я был бы очень рад если бы ты анон подсказал мне здесь и направил на путь истинный. А пока я писал подумал почему бы просто не попробовать. Пойду пока и попробую.
Аноним 13/05/18 Вск 08:12:47  1188966
>>1188964
На ютубе не нужно сшивание:
https://github.com/nficano/pytube/blob/master/pytube/streams.py#L220
https://github.com/nficano/pytube/blob/master/pytube/request.py

Там они только переходят на раздельные аудио/видео файлы, но опять же, тайминг у них полный, без сегментирования.
Аноним 13/05/18 Вск 08:15:19  1188967
>>1188964
Ещё учти, даже если ты напишешь стрим-сервер, могут быть проблемы например с перемоткой.
Аноним 13/05/18 Вск 09:15:48  1188976
>>1188964
>Ведь он по сути скачивает множество кусочков в один файл.
Зависит от формата. Стримы ютуба в.ts, например, можно просто склеить. Не-стримы в mpeg-dash, вроде как, тоже, но обязательно нужен первый фрагмент. На какие-то другие фрагрментированные форматы вызывается ffmpeg для конвертации.
Но кажется мне, что тебя не одно из этого, а просто несколько отдельных видео файлов, тогда ffmpeg в помощь.
https://stackoverflow.com/questions/7333232/concatenate-two-mp4-files-using-ffmpeg

>просто скачать несколько видеофайлов в один?
Просто скачать легко:
>with open('video.mp4', 'wb') as f:
>    f.write(urrlib.request.urlopen(url1).read())
> #<...>
> f.write(urrlib.request.urlopen(urlN).read())
Но велика вероятность, что это не сработает если медиа файлы самодостаточны, со своими хедерами и метаданными.

Так что, неси прямые ссылки на видео, тогда и сможем помочь. Не зная формата тут ничего, кроме ffmpeg'а, не посоветовать.
Аноним 13/05/18 Вск 10:09:49  1188988
image.png (36Кб, 593x278)
>>1188966
Получается, что он просто "ложит" эти chunks рядом в один файл. И у меня была надежда что "а вдруг" это и с обычным mp4 сработает ещё не проверил, сейчас буду.
>>1188967
Они скорее всего будут. Ну, дело сейчас даже не в сервере, а в самой реализации, хз с какой стороны подступиться. Знаний не хватает. Думаю доки стоит по формату почитать, может чего яснее станет.

>>1188976
Формат mp4. Ссылки например на мадоку, кину качеств похуже если вдруг кто-то тоже захочет поэкспериментировать
https://pastebin.com/H40tu43h

Просто "положить" файлы вместе не получилось. Скачался и записался один файл. Мб в коде можно что-то придумать, пока поковыряю эту идею, вдруг заработает "всё просто" и с хидерами, и метаданными (вряд ли, но почему бы и не попробовать).
Думаю после этого доки на формат почитать, и пытаться выпиливать из файлов метаданные перед записью. mp4 это ведь как раз формат для даша.
Аноним 13/05/18 Вск 10:10:39  1188989
>>1188988
Лол, конечно один, переменную не переименовал...
Аноним 13/05/18 Вск 10:14:06  1188992
>>1188988
Блин фигню написал, опозорился в скриншоте. Думаю их нужно просто конкатенировать, после функции read это же просто строки получаются. Не знаю правда, что из этого получится.
Аноним 13/05/18 Вск 10:27:29  1188996

>>1188976
Да, способ "просто положить их рядом" не сработал. Проигрывается только первый файл.
Аноним 13/05/18 Вск 11:20:35  1189009
>>1188924
Покажи как это правильно сделать, плес.
Аноним 13/05/18 Вск 13:26:31  1189084
>>1188996
Разумеется, плеер-то читает метаданные этого первого файла, а что там после него находится уже и плевать. Я об этом и говорил.

>>1188992
>после функции read это же просто строки получаются.
Не строки, а байты.

>>1188988
В общем, как я и говорил, просто отдельные короткие ролики.
Я вижу тут несколько способов:
1. Лёгкий. Потерять возможность стриминга, скачать все части, ffmpeg'ом их объединяешь без перекодирования и отдаёшь сервером уже полное. Долго ждать.
https://trac.ffmpeg.org/wiki/Concatenate
2. Сложнее, но "правильнее". Создаёшь m3u8 плейлист, на сервере скачиваешь и конвертируешь отдельные части в mpeg ts, подправляешь start offset у всех, чтобы плеер нормально загружал одну часть за другой. Так как всё скачивать сразу не надо, #EXT-X-ENDLIST в плейлисте не держишь, и с каждой новой скачанной и сконвертированной частью обновляешь плейлист (так что, с кешами осторожнее). В итоге и таймлайн норм, и стриминг есть.
3. Хардкор. Не уверен, что сработает, но ты можешь попробовать: в первой части подправить данные длительности в mvhd и каждом tkhd на полную серию, во всех частях поудалять эти хедеры, соединив данные треков, ну а клиенту высылать данные на один запрос из нескольких источников по порядку. Что там ещё в контейнере нужно будет поменять я без понятия, придётся тебе много всего почитать в интернете и сидеть разбираться. По сути, это будет что-то типа ffmpeg'шного concat'а из пункта 1, но на лету и с возможностью быстрого старта. (Потребуется, правда, параллельно скачивать все серии, чтобы из первые килобайт повыдёргивать длительности треков.)

В общем, развлечение на долгие недели ты себе, считай, нашёл.

Что такое коди я понятия не имею и гуглить лень, если что.
Аноним 13/05/18 Вск 14:51:22  1189122
ЧЯДНТ?
Аноним 13/05/18 Вск 14:51:58  1189124
image.png (17Кб, 616x105)
>>1189122
Отвалилось.
Аноним 13/05/18 Вск 14:55:24  1189128
>>1189122
>>1189124
Юзаешь виндоус
Аноним 13/05/18 Вск 14:57:58  1189132
image.png (20Кб, 836x106)
>>1189128
И как фиксить. Посмотрел в sys.path, там пикрил. Это нормально?
Аноним 13/05/18 Вск 15:00:51  1189134
>>1189132
Причем так - работает. Я не понимаю.
Аноним 13/05/18 Вск 15:01:14  1189135
image.png (16Кб, 614x138)
>>1189134
Аноним 13/05/18 Вск 15:07:31  1189136
Хочу набросать что-то свое для гарантированного удаления метаданных (включая маркеры которые пихаются в нестандартные места, куда позволяет формат, или вообще дописываются плейнтекстом за конец файла). С картинками просто, скрипт считывает картинку в массив и создает из него новое чистое изображение. А вот как на питоне считать и пересоздать пдфку, mp3, mp4? Суть в том чтобы извлекать только данные относящиеся
непосредственно к контенту и избавляться от всего остального.
Аноним 13/05/18 Вск 16:00:41  1189164
>>1189132
>И как фиксить
Накатить линукс или купить макбук, очевидно.
Аноним 13/05/18 Вск 16:22:38  1189171
>>1189136
Под каждый формат тебе придётся свой скрипт писать. Читать документацию к типу файла и соответственно обрабатывать, либо с помощью сторонних либ. Формально нужно просто перекодировать, тогда лишнее отпадёт. Но на магическую функцию не надейся.
Аноним 13/05/18 Вск 16:59:39  1189179
>>1189084
Спасибо анончик за старания. Жаль большинство вариантов не подходит. Если брать конвертирование "на лету", то это очень много ресурсов системных забирает. Сервер я планировал делать на клиентской машине, а учитывая что kodi (это ранее xbmc, мультимедийный центр для просмотра кинца\сериалов) ставится на андроид смартфоны\приставки и просто дряхлые домашние серваки, то этот вариант не подходит совершенно, учитывая что пытаюсь я эту хуйню обойти ради видео в качестве 1080р.
Качать тоже не очень, т.к. для этого есть хорошие дополнения стриминга торрентов (но они не всегда удобны), тогда моя задумка немного теряет в преимуществах.
А вот по хардкору я тоже думал сделать именно так, уже доки на формат нарыл, благо там всего 20 страниц. Да, затея люто геморная, но сейчас помимо этой задачи ещё дел выше крыши, поэтому пока отложу. Там вроде на форуме ответили что эту задачу можно решить в рамках самого этого медиацентра, но звучит прохладно.
Аноним 13/05/18 Вск 17:17:52  1189192
Чессказать не понимаю в чём проблема таки взять и скачать. Если есть 1080р стриминг, значит канал нормальный. Зачем именно коди? Берёшь нормальный кудахтер, пишешь скрипт который качает и сшивает всё вместе обычным ffmpeg, с него же стримишь, да хоть в тот же коди. Время проходит — автоматически удаляется. Всё, проблема решена. Разве что ждать какое-то время после "заказа" понадобится. Но обычно это полчаса с таким-то каналом. Зато смотришь и не беспокоишься уже ни о чём.
Аноним 13/05/18 Вск 18:17:45  1189240
А элементы среза сложить между собой можно?
Аноним 13/05/18 Вск 18:38:34  1189256
>>1188883
Переписал функцию уже, но все равно спасибо
анон по-поводу файла
Аноним 13/05/18 Вск 19:08:59  1189286
>>1189240
можно
Аноним 13/05/18 Вск 19:13:09  1189294
>>1189286
Спасибо.
Аноним 13/05/18 Вск 19:53:01  1189309
Аноны, не знаю куда обратиться, подскажите если кто знает хотя бы примерно в какую сторону гуглить и что может быть не так.
Пытаюсь развернуть свой проект на впске, настраиваю supervisor + gunicorn, когда пытаюсь стартануть supervisor получаю такой трейсбек в логах
File "/home/svalee/quests_backend/../venv/bin/gunicorn", line 7, in <module>
from gunicorn.app.wsgiapp import run
ModuleNotFoundError: No module named 'gunicorn.app'; 'gunicorn' is not a package
сам gunicorn стартует, если с директории проекта написать:
gunicorn system.wsgi

по юрлу два файла с настройками supervisor и gunicorn
dpaste.de/bF7P
В чем может быть проблема?
Аноним 13/05/18 Вск 20:03:23  1189317
>>1189179
>то это очень много ресурсов системных забирает
Не забирает. Нужно сменить только контейнер, само видео не кодируется.
>ffmpeg -i part2.mp4 -acodec copy -vcodec copy -muxdelay 0 -muxpreload 0 -output_ts_offset 251.425 part2.ts
Выполняется за доли секунды.

ffmpeg умеет скачивать из интернета, и при этом направлять вывод в stdout.

После того, как я вышеприведённой командой сконвертировал первые четыре части (мгновенно, напоминаю) и сделал вот такой плейлист https://pastebin.com/1eTE6LdT , можно спокойно запускать
>python3 -m http.sever 8000
в директории с этими файлами, идти на https://video-dev.github.io/hls.js/demo/?src=http%3A%2F%2F127.0.0.1%3A8000%2Findex1080.m3u8 и радоваться цельному стриму. Ну, главное не забыть указать правильные оффсеты для частей 2-4 (можешь взять для тестов из моего плейлиста, оффсет для части N равен сумме длительностей частей от 1 до N-1).

Ну и остаётся дело за малым:
1. Скачать первые 200байт видео, узнать длительность очередного видео из mvhd
https://www.cimarronsystems.com/wp-content/uploads/2017/04/Elements-of-the-H.264-VideoAAC-Audio-MP4-Movie-v2_0.pdf тут легко и подробно расписано где что находится, struct в помощь.
2. Запустить ffmpeg с нужными параметрами, ловить выход, перенаправлять в запрос от клиента. Ну или скачивать на диск и потом с него читать, если планируется несколько одинаковых запросов на один сервер.
Аноним 13/05/18 Вск 20:23:32  1189346
>>1189317
Из минусов, к сожалению, необходимость ожидания полной загрузки куска, по крайней мере в случае с hls.js, а для 4-х минут 1080p это занимает значительно время.

Как вариант, оценить скорость скачивания и примерную длительность (я так думаю, там всё на сайте по ~4 минуты идёт), скачать первые 30 секунд и оборвать ffmpeg, а затем же качать целиком первую часть снова.
Прелесть плейлиста и .ts (а именно вписанного в него оффсета) в том, что я могу иметь такое плейлист — https://pastebin.com/4iMp42zZ в котором первые 30 секунд p0.ts и p1.ts идентичны, однако так как p0.ts маленький, то и видео играть начнёт раньше, и когда придёт время играть 31-ую секунду, он спокойно переключится на p1.ts и продолжит с нужного места.
Аноним 13/05/18 Вск 20:37:49  1189368
image.png (54Кб, 1188x276)
Почему я все еще могу получить ответ, будучи незареганым?
Аноним 13/05/18 Вск 20:54:30  1189384
image.png (38Кб, 556x268)
А тут получаю "CSRF Failed: CSRF token missing or incorrect." несмотря на AllowAny
Аноним 13/05/18 Вск 20:56:13  1189387
>>1189346
Собственно, вот всё то, о чём я говорил https://pastebin.com/KSCV7aJ0
Ну, кроме короткой первой части. Способ рабочий, вручную проверил, но в коде этого нет (это ж надо из ffmpeg'а stderr перехватывать с длительность, ну его нахуй).
Запускаешь, идёшь на всё ту же демку hls.js и направляешь на локальный плейлист и радуешься. По желанию можешь раскомменитить или заменить ссылки (которые в коде на 360, если что).

В общем, доводить вещи до конца не моя специальность, свою долю интереса я вынес, дальше уже сам.
Аноним 13/05/18 Вск 21:49:29  1189411
>>1189317
>>1189346
>>1189387
Большое спасибо за инфу. У меня настроение уже заебало прыгать от надежд и разочарований с этой темой. Сегодня, спустя неделю после запроса, прислали наконец api к сайту, которое для решения задачи нихуя не поможет.
В общем пердолиться по-новой начну уже завтра, сегодня надо передохнуть. Спасибо анон за труды! Сотни нефти!
Аноним 14/05/18 Пнд 02:22:03  1189475
>>1188553
Бамп.
Аноним 14/05/18 Пнд 03:08:09  1189483
image.png (108Кб, 1124x678)
Ребят, помогите с заданием. Кто может решить лучше? Этот код делает что надо, но я постоянно ловлю таймауты. Как сделать его быстрее?
Аноним 14/05/18 Пнд 05:23:35  1189494
>>1189483
Можешь попробовать вместо удаления из одного массива просто создать новый, и переносить туда непротивоположные инструкции в else'е.
У меня такое решение там висит с давних времён, только с "лишней" рекурсией спойлер: в отличие от красиво сделанного бест практисес. Всё ок работало, но может ужесточали требования, не знаю.

При удалении i-ого элемента питону нужно в памяти подвинуть все следующие (n-i) элементов. Соответственно, удалять первый элемент из миллионного списка довольно затратно. Добавлять же новый в конец (или удалять из конца), не считая моменты перевыделения памяти, очень дёшево.
Аноним 14/05/18 Пнд 05:41:03  1189495
PYTHONREICH.jpg (117Кб, 1280x720)
>>1188085 (OP)
Guten Morgen, Genossen! Heil unser'm Führer Van Rossum! Python Heil!
Аноним 14/05/18 Пнд 07:45:24  1189503
>>1189483
если нет ограничений по памяти, то я бы разбирал последовательность через стек (если попался "противоположный" элемент, то делаем pop и переходим к следующему, иначе push), содержимое которого вернул бы в виде массива.
Аноним 14/05/18 Пнд 13:23:47  1189624
>>1188360
спасаю твою жопу. забей хуй на джангу и бери айоху, забей хуй на рест и бери джейсон-рпц. в добрый путь
Аноним 14/05/18 Пнд 13:27:09  1189627
>>1189624
Поздно, братишка, я уже малёхо разобрался и написал кусок апи.
Аноним 14/05/18 Пнд 13:28:47  1189629
>>1189627
ах ты вонючка ебаная, чтоб у тебя мать сдохла в муках! тьфу блять
Аноним 14/05/18 Пнд 13:34:14  1189631
>>1189627
бросай нахуй, я тебе серьезно говорю ))
Аноним 14/05/18 Пнд 13:44:40  1189639
>>1189631
Что с жангой не так?
Аноним 14/05/18 Пнд 14:34:09  1189657
Помогите запустить или переписать так, чтобы оно заработало:
Это декриптор для DES пароля с известным ключом

https://pastebin.com/QHKHhFpN

При запуске ошибка:

$ python dec.py
Traceback (most recent call last):
File "dec.py", line 61, in <module>
f_in = open(sys.argv[1],'r')
IndexError: list index out of range
Аноним 14/05/18 Пнд 14:41:02  1189661
>>1189657
Бля, ну поставь нолик вместо единички, и зачем вообще так по ебанутому открывать файл?
Аноним 14/05/18 Пнд 14:50:14  1189670
>>1189661
>Бля, ну поставь нолик вместо единички
Поставил, но чет хуйня

python2 dec.py
[] Huawei Password Decryptor
[
]-----------------------
[+] User: ('local-user'
[+] Password type: in
[+] Password: line)


>так по ебанутому открывать файл?
Могу еще так
Аноним 14/05/18 Пнд 15:23:53  1189687
Люди добрые. Как настроить в Visual Studio Code дефолтный дебаггер для питона? Эти суки после какого-то обновления сделали так, что нужно теперь сперва открыть папку, и потом там автоматически внутри создается папка .vscode с конфигурацией launch.json, где и выставлен дебаггер. Но мне нужно, чтобы открыл любой питон файл и сразу можно было дебаггить, собственно как раньше и было. Сейчас же блять после нажатия на зеленую стрелочку, сверху вылазит две опции Python и Python Experimental, которые нужно каждый раз вручную кликать, это бесит.
Аноним 14/05/18 Пнд 16:38:52  1189715
>>1189657
Ты пытаешься добарться до первого аргумента, но при этом не передаёшь ни одного.
>py3 dec.py 1 a mamasha
>sys.argv[1] == "1"
>sys.argv[2] == "a"
>sys.argv[3] == "mamasha"
Ты же просто py3 dec.py вызываешь. Какой ты надеешься файл откроется-то в твоём коде?!
Аноним 14/05/18 Пнд 17:29:30  1189740
3.6.5 or 3.7.0?
Аноним 14/05/18 Пнд 17:32:16  1189742
>>1189494
>При удалении i-ого элемента питону нужно в памяти подвинуть все следующие (n-i) элементов. Соответственно, удалять первый элемент из миллионного списка довольно затратно.

Ха, а я думал, что удаление элемента из списка работает так же, как удаление файла на пк: снимаем галочку с 'занято' и никогда больше не видим этот элемент. А оно вот так оказывается. Тогда ясно, почему таймаут был. Спасибо.
Не знаю, где ты там смог рекурсию воткнуть, кстати. Я сразу сделал как бест практис, только с try except IndexError вместо if список. Мне кажется поймать IndexError когда он выстрелит из-за пустого списка легче, чем проверять, а не пустой ли список, на каждой итерации.

>>1189503
Во, вообще классная идея, так и сделал. хотел сначала добавлять по элементу, при этом смотря на следующий, и проверяя, а не противоположны ли они. со стеком намного меньше проблем
Аноним 14/05/18 Пнд 17:38:54  1189746
>>1189624
>джейсон-рпц
Ебаный стыд, зачем я загуглил это кирилицей?
Аноним 14/05/18 Пнд 19:56:58  1189814
hdt565fsdh.webm (1572Кб, 640x360, 00:00:21)
Анон, помоги! С меня нихуя.
def string_to_date(string):
"""
Перевод строки формата "ГГГГММДД" в объект datetime
"""
return datetime.datetime(year=int(string[0:4]),
month=int(string[4:6]),
day=int(string[6:8]))
>>>string_to_date('20180514')
ValueError: invalid literal for int() with base 10: '5-'
Аноним 14/05/18 Пнд 20:06:29  1189819
>>1189814
Разобрался
Аноним 14/05/18 Пнд 20:16:09  1189826
>>1189819
И как надо?
Аноним 14/05/18 Пнд 21:02:45  1189866
>>1189740
3.6.5 сейчас
3.7.х через пару месяцев
Аноним 14/05/18 Пнд 21:03:14  1189867
>>1189826
У меня эта дата идет в другие функции. Косяк там
Аноним 14/05/18 Пнд 21:25:03  1189879
Подскажите нубу:
Есть скрипт на python который выполняется через cron раз в 10 минут.
Необходимо вставить условие в скрипт, что бы часть кода выполнялась раз в сутки. Куда копать ? Можно брать unixtime и от него высчитывать но это как то криво, мне кажется.
Аноним 14/05/18 Пнд 21:28:39  1189881
>>1189879
Вынести эту часть кода в отдельную функцию и сделать два крона.
Аноним 14/05/18 Пнд 21:40:29  1189886
Как мне из bytes объекта получить строку битов вида 0101010?
Аноним 14/05/18 Пнд 21:41:52  1189888
>>1189881
Это очевидно, но у меня нет доступа к крону на хосте.
Аноним 14/05/18 Пнд 21:53:27  1189891
Добрый вечер, Аноны. Вопрос не сильно подходит по тематике, но надеюсь кто-то из вас сталкивался с таким вопросом. В общем, я купил ноут, и иногда пишу на нем когда не дома. Когда дома - комп. Так вот вопрос - как я могу объединить компьютеры, что бы писать код на ноуте, заливать его куда-то, а дома просто скачав откуда-то продолжать работу.
Аноним 14/05/18 Пнд 21:55:10  1189893
>>1189891
git
Аноним 14/05/18 Пнд 22:01:55  1189895
>>1189893
спасибо
Аноним 14/05/18 Пнд 22:15:33  1189906
>>1189742
>Не знаю, где ты там смог рекурсию воткнуть
Ну я проверял пару элементов и если они не противоположны — добавлял первый в новый, "чистый" список и шёл дальше проверять следующую пару входного. Соответственно, если противоположными окажутся элементы 1 и 4, в моём "чистом" они всё равно окажутся, а значит нужно пройтись уже нему, чтобы почистить:
>вход = ['n', 'w', 'e', 's', 'e', 'n']
>выход = ['n', 's', 'e', 'n']
>рекурсия
>вход = ['n', 's', 'e', 'n']
>выход = ['e', 'n']

%%глупенький был тогда, топорно решал.%
Аноним 15/05/18 Втр 09:08:28  1190072
>>1189657
>
>$ python dec.py

запускай так
$ python dec.py file
Аноним 15/05/18 Втр 11:55:22  1190195
https://repl.it/repls/SorrowfulObeseProfessional
Нужно получить из каждого листа в myarr элемент соотвествующий idx, то есть для первого листа нужно получить элемент находящийся по индексу который расположен в myidx на первой позиции, и так далее.
Как?
Аноним 15/05/18 Втр 11:57:33  1190199
>>1190195
myarr[myidx]
Аноним 15/05/18 Втр 12:02:54  1190204
>>1190199
Ты вопрос не понял. Так мне возвращается лист, а мне нужно
для каждого листа получить элемент по индексу указаному в idx.
Аноним 15/05/18 Втр 12:03:04  1190205
>>1189886
''.join(bin(b)[2:].ljust(8, '0') for b in b'abc')
Аноним 15/05/18 Втр 12:07:06  1190210
>>1190204
myarr[np.arange(0, len(myarr), dtype=int), myidx]
Аноним 15/05/18 Втр 12:18:59  1190220
Суть такова. Если в конце скрипта не обнулить список, то происходит резкий скачок потребления памяти. Пикрилз.
В чем причина такого скачка? Ведь цикл закончился, и, кажется, должно произойти его пимное завершение без очистки списка.
Аноним 15/05/18 Втр 12:19:38  1190221
>>1190220
*мирное завершение
Аноним 15/05/18 Втр 12:25:24  1190230
>>1190220
А нет никакого скачка. Вон он там сожрал всю память под этот ебунячий список, дальше поработал с ним, вышел, память освободилась.
Аноним 15/05/18 Втр 12:30:17  1190236
>>1190230
>А нет никакого скачка
/proc/meminfo фиксирует резкую убыль SwapFree
Аноним 15/05/18 Втр 12:32:17  1190238
>>1190236
Ну возможно. В питонах же каждый новый float это новый объект в памяти, вот и идёт постоянная аллокация. Потом запускается сборка мусора, которая тоже что-нибудь себе аллоцирует, вот и скачок. Под такие задачи нужно numpy использовать.
Аноним 15/05/18 Втр 13:26:20  1190265
>>1190220
Если хочешь более эксплицитно, то используй ключевое слово del.
del x
Аноним 15/05/18 Втр 14:22:30  1190297
>>1190205
Сраный for. Я сидел и бился в конвульсиях, почему я не могу bin(b'a'), а оказывается bytes объект это сраный контейнер всегда, из которого числа надо доставать. Спасибо.
Аноним 15/05/18 Втр 14:24:30  1190298
>>1190238
>>1190265
спасибо
Аноним 15/05/18 Втр 15:31:05  1190330
Анон я заебался. Мне нужно асинхронно загрузить от 2 до 20 линков и сохранить все данные в список, например.
С этим отлично справлялся gevent и grequests, но как только я запустил свой код там, где он должен работать, работать он перестал из-за обезъяних патчей и выхода нет.

Блядь, как!? КАК? Мне просто нужно загрузить несколько сайтов, сука неужели так сложно написать пример как это сделать асинхронно на twisted или tornado пиздеееец!! Нихуя не понимаю, помоги анон.
Питон должен быть 2.7, поэтому либо twisted либо tornado.
Просто напиши или дай ссылку, как мне получить параллельно респонсы с двух сайтов, МОЛЮ!
Аноним 15/05/18 Втр 15:36:02  1190334
>>1190330
А нахуя асинхронно
Аноним 15/05/18 Втр 15:37:13  1190335
>>1190334
Ну параллельно, асинхронно. Потому что ссылок 20, если они выполняются синхронно, то это занимает 30 секунд, а если асинхронно то 10
Аноним 15/05/18 Втр 16:37:56  1190382
>>1190297
Ну можно ещё схитрить на самом деле:
bin(int.from_bytes(b'abc', byteorder='big'))[2:]
Аноним 15/05/18 Втр 16:41:34  1190388
>>1190330
https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-example

Вообще вроде бы скрейпи умеет это всё асинхронно тащить. Там как раз для пауков всякая всячина.
Аноним 15/05/18 Втр 16:42:42  1190389
>>1190297
Ну ещё меня тоже удивило что (b'abc').hex() есть, а bin нет. Можно предложить Гвиде это в интерпретатор.
Аноним 15/05/18 Втр 17:04:46  1190406
>>1190388
futures вроде для 3 питона. Вот тоже натыкался на scrappy, пиздец. Вот анон, меня прям берёт грусть тоска, вот не знаешь ключевого слова, и хоть какие аналогии пиши в запросах гугла всё равно в ответ он будет говном кормить. Мне часов 4-5 потребовалось, чтобы нарыть, что scrappy умеет в эту хуйню, и то, краем глаза чисто случайно в ответах на стаке увидел. Ну, тащем-та это уже не важно. Буду иметь в виду. Нашёл замену grequests в виде erequests лол. Работает немного дольше, но работает
Аноним 15/05/18 Втр 17:25:45  1190437
Двач, помоги. Я хочу сделать небольшой бекенд для своего прожекта. Суть в том, чтобы при обращении к беку, бралась строка со всеми значениями из большой матрицы в csv и отдавалась жсончиком в виде столбец-значение для конкретной строки.
И вот я туплю че-то, потому что через django rest framework я делал только по моделям сериалайзеры, а как тут поступить?
Нужно какую-то кастомную вьюху пилить, или как?
Аноним 15/05/18 Втр 18:18:41  1190473
>>1190437
https://github.com/mjumbewu/django-rest-framework-csv
гугол никак?
Аноним 15/05/18 Втр 20:04:10  1190552
>>1190473
Я не понял, что это и нахуя оно вообще.
Мне нужен не csv на выходе, а чтобы при обращении к, допустим, /items/[id пользователя] через pandas я находил бы нужную строку и брал оттуда данные. А потом уже возвращал в реакт.
С матрицей часть я всю сделал уже необходимую, я не понимаю, как мне это в рест апиху добавить.
Аноним 15/05/18 Втр 20:15:48  1190563
Антуаны, скиньте мб заданий каких начального уровня.
Вроде разбираюсь, а воображения придумать задание - нет.
Не скипайте, с меня как всегда - нихуя
Аноним 15/05/18 Втр 20:32:38  1190579
>>1189164
Пошёл нахуй, блять, с такими советами.
мимо
Аноним 15/05/18 Втр 20:55:04  1190602
>>1190552
>С матрицей часть я всю сделал уже необходимую
Т.е. вся информация в SQL-базе? Если нет, тогда не сделал.
Аноним 15/05/18 Втр 20:58:57  1190603
>>1190563
http://www.codeabbey.com/index/task_list
Если совсем начальный - кодкомбат.
>>1189132
Попробуй анаконду накатить, говорят хорошо сделали.
Сам не питонирую на винде, не знаю.
Аноним 15/05/18 Втр 21:01:03  1190604
image.png (18Кб, 548x296)
image.png (35Кб, 667x672)
image.png (32Кб, 520x661)
Анон, помоги мне, я сейчас ебанусь. Как пользоваться VScode'ом ебаным? Вот я прочел их ебаный тутор с официального сайта, поставил venv, pylint, прописал настройки, и блять нихуя.
Что написано в настройках? "python.linting.maxNumberOfProblems": 100 . Сколько ошибок он отображает? 1. Одну ебаную ошибку, всегда.
Что написано в туториале? "Linting runs automatically when you save a file, and you can run manually using the Python: Run Linting". Что происходит при ctrl+p Python: Run linting? Нихуя. Вот у меня ошибка ALE BLYA, я эту строку делаю пустой, пишу Run linting, и после небольшой прогрузки, эта хуйня отмечает то же самое, теперь уже пустое место. И перемещается на следующую ошибку только посте ctrl+s, т.е. после сохранения файла. Это я ебанутый, или вскод? Я же все сделал так, как указано в официальной документации:
https://code.visualstudio.com/docs/python/linting
Установил, настроил, не работает.
Вопрос: как заставить это работать? Как сделать так, чтобы линтер показывал сразу все ошибки, а не только 1? Как сделать так, чтобы линтер работал, когда выполняю 'Python: Run linting', а не только на сохранение файла? Почему все так хуево?
Аноним 15/05/18 Втр 21:01:54  1190605
image.png (72Кб, 1090x316)
>>1190604
Настройки отклеились
Аноним 15/05/18 Втр 21:44:22  1190631
>>1190579
Обновления на десяточку накатил уже, мань?
Аноним 15/05/18 Втр 21:47:42  1190635
>>1190631
Прыщеблядь, сгинь. Если не осилил окна - неча и рот открывать.
мимо сижу на семерке, не обновлялся несколько лет
Аноним 15/05/18 Втр 22:06:04  1190656
>>1190602
Это еще зачем?
Там в матрице и так 6 млн записей, она общитывается секунд 10 на моем пека и так, через бд вообще вечность ждать буду.
Неужели никто из анонов не знает? :(
Аноним 15/05/18 Втр 22:12:29  1190658
O9WgoyC3NXmS6WZ[...].jpg (156Кб, 585x767)
>>1188085 (OP)
Это снова аноний с удалением/изменением строк в текстовом файле. У меня полторы недели не было интернетов, так что отписываюсь так поздно.

Первым делом хочу поблагодарить советчиков за помощь с подсказками для решения этой проблемы. На данный момент я добился следующего кода для замены строки в текстовом документе вида:

Скушай
еще
этих
французских
булок


from shutil import copy
from os import unlink

copy(textfile.txt, backup.txt)
with open(textfile.txt, 'w') as file1, open(backup.txt, 'r') as file2:
----for line in file2.readlines():
--------file1.write('' if line == 'еще\n' else line)
unlink(backup.txt)


Итог по файлу:

Скушай
этих
французских
булок


Что просто прекрасно. Но после этого я с разбегу впечатался в кирпичную вкладку, когда захотел стереть ДВЕ строки.
Я использовал два способа:
1) Пытался свести две строки в одну:

...
--------file1.write('' if line == 'еще\nэтих\n' else line)


что не помогло: не изменилось ничего.

2) Пытался использовать несколько if'ов одновременно:


...
--------file1.write('' if line == 'еще\n' or line == 'этих\n' else line)

(аналогично, если использовать более громоздкие if'ы для каждой строки отдельно)

что привело к тому, что стирается только последняя указанная строка (то есть если if-statement'ов дохуя, сотрется почему-то только последняя из указанных, хотя по логике все if'ы должны срабатывать одновременно, ибо они не elif'ы).

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

Что я упускаю, подскажите, пожалуйста.
Аноним 15/05/18 Втр 22:48:23  1190675
>>1190656
>Там в матрице и так 6 млн записей, она общитывается секунд 10 на моем пека и так, через бд вообще вечность ждать буду.
Парсить + отправлять в базу будет долго, да. Но зато на выходе селектить будет на много быстрее чем сейчас
Аноним 15/05/18 Втр 22:54:45  1190681
image.png (105Кб, 1536x448)
>>1190635
Поссал тебе на ебало. Как там, на неподдерживаемом говне сидеть?
Аноним 16/05/18 Срд 00:09:07  1190724
>>1190681
> Как там, на неподдерживаемом говне сидеть?
Ыы обновка обновочка ням))
Самому не противно, дурачок? Даже самые основы основ учат, мол, работает - не трогай.
покормил
Аноним 16/05/18 Срд 00:28:47  1190726
>>1190681
Он же написал, что ему хуёво. Ничего не работает, ааа, помогите...
Аноним 16/05/18 Срд 00:32:46  1190727
>>1190724
Не противно, я-то обновляюсь с умом, когда не предстоит никакой важной работы. А виндобляди в интернете тут и там горят от внезапных и неотменяемых обновлений.
Вообще не знаю, почему ты загорелся от невинного совета попробовать кодить под линуксом, ведь он объективно более удобен для этого.
И ты забываешь, что спермёрка уже даже не ЛТР, новое железо под ней уже заводится с плясками.
Аноним 16/05/18 Срд 01:17:07  1190733
>>1190727
Справедливости ради: отладчик в VS - это сказка. GDB и LLDB - флюгагехаймен по сравнению с VS.
Сам сижу на лине и не понимаю, как коллеги юзают винду, но жутко завидую их отладчику, он божественнен. Видать только с таким можно продолжать пилить ось, на которой он работает.
Аноним 16/05/18 Срд 01:23:42  1190735
>>1190733
Мне нипанять, не юзаю IDE. Атом наше всё.
Аноним 16/05/18 Срд 05:15:10  1190772
>>1190635
> Если не осилил окна
Ну так помоги тому c проблемами тогда, осилятор.

>>1190658
>('' if line == 'еще\nэтих\n' else line)
Вполне работает. https://repl.it/repls/AlienatedUnfoldedWorker Однако, это очень коряво такое в write() вставлять, в любом случае.
Лучше сделай проверочную функцию:
>if need_to_write(line):
>    file1.write(line)
А внутри уже какие угодно условия делай.
Или, если строку нужно изменить, можно
>file1.write(process_line(line))
А там оно уже вернёт '', неизменённую line или какую другую любую строку.

>line == 'еще\n' or line == 'этих\n'
Вместо этого можно
>line in ['еще\n', 'этих\n']
Намного короче получается.

>for line in file2.readlines():
Совсем не обязательно readlines() делать (который сразу весь файл читаеть и в память загружает). Можно и просто
>for line in file2:
Тогда в каждой итерации будет читатсья по строке. Полезно для крупных файлов.

И последнее
>'еще\n'
А что, если это последняя строка? Там \n может уже не оказаться. Советую игнорировать переносы (hint: str.strip) при обработке.


>-file1.write('' if line == 'еще\nэтих\n' else line)
Потому что line у тебя всегда одна строка, в ней не может быть и ещё, и этих, потому что это две строки. Вроде логично же, не?
Аноним 16/05/18 Срд 11:56:30  1190886
>>1190330

мультитрединг
Аноним 16/05/18 Срд 14:04:55  1190966
Каков pythonic way для чтения и обработки только первых строк файла?
Аноним 16/05/18 Срд 14:06:17  1190968
>>1190772
> Ну так помоги тому c проблемами тогда, осилятор.
Тоже ебался с подобной проблемой, фиксил добавлением всевозможных путей к питону.
Аноним 16/05/18 Срд 14:27:35  1190979
>>1190966
Прочитать и обработать первые строки файла. Что за вопросы, блин? Не читай в память то, чего тебе не нужно, больше ничего тут не ответить.
Аноним 16/05/18 Срд 14:37:41  1190980
>>1190979
for lineno, line in enumerate(f):
....if lineno > 3: break

вот какой ответ я ожидал
вот что нужн применять вместо классического счетчика
Аноним 16/05/18 Срд 14:56:34  1190987
>>1189164
Кстати таки накатил линукс. Виртуленв работает без костылей, в вскоре модно даже выбрать в качестве интерпритатора, ахуенно.
Аноним 16/05/18 Срд 14:59:04  1190992
>>1190987
> можно, интерпретатора
фикс, сижу со смартфона
Аноним 16/05/18 Срд 14:59:34  1190993
>>1190992
Как же я блядь обосрался, господи. Не пинайте.
Аноним 16/05/18 Срд 15:43:10  1191014
>>1190604
Нашел ответ человек в телеграмме. Если у кого будет та же проблема: https://github.com/PyCQA/pylint/issues/1021
Аноним 16/05/18 Срд 18:33:47  1191100
14985511175380.jpg (8Кб, 391x221)
Сап программач, есть одна переменная. Она парсится из текстового файла. Переменная, должна отдаваться клиенту при каждом запросе.
Текстовый файл периодически меняется. Соответственно, переменная должна меняться тоже. Внимание, вопрос: как используя джанго, мне лучше засунуть переменную в память, чтобы при каждом запросе не парсился текстовый файл с диска?
Аноним 16/05/18 Срд 19:03:17  1191117
>>1191100
Возможно повесить листенер на обновление файла с переменной?
Аноним 16/05/18 Срд 19:06:47  1191121
Гниды.webm (10640Кб, 631x420, 00:04:21)
Немного двачну вопрос >>1191100
Только меня интересует как написать скрипт который бы получал эвенты изменения файлов в директории.
Или это сложно/не кроссплатформенно? Я на винде сижу.
Аноним 16/05/18 Срд 19:13:52  1191123
>>1191117
Ты это имеешь в виду?
https://docs.djangoproject.com/en/2.0/topics/signals/
Я нуб просто
Аноним 16/05/18 Срд 19:19:38  1191129
image.png (23Кб, 376x397)
image.png (2Кб, 296x49)
какого хуя я не могу сделать map none, а не делать костыль как на втором пике? Я ведь всеравно передаю мап только через конструткор, каково хуя оно матерится даже просто при импортировании данного класса?
Аноним 16/05/18 Срд 20:27:35  1191166
>>1191100
Засунуть в редис или мемкешд.
Другое дело, нахуя тебе это? Прочитать файл с диска – это не дороже, чем в базу один раз сходить.
Аноним 16/05/18 Срд 20:31:30  1191170
Где можно почитать про ООП, чтобы было максимально понятно и просто, но при этом подробно?
Аноним 16/05/18 Срд 20:34:11  1191171
>>1191166
> Прочитать файл с диска – это не дороже, чем в базу один раз сходить.
Даже если база на локалхосте?
Аноним 16/05/18 Срд 20:36:47  1191173
>>1191171
Да
Аноним 16/05/18 Срд 20:43:07  1191177
>>1191129
Потому что ты блять ебанутый, ты вообще понимаешь, что ты делаешь и зачем?
1) Тебя не смущает, что твое слово map ПОДСВЕЧИВАЕТСЯ БЛЯТЬ? Охуенно тебе builtin функции ломать? Никогда так не делай, иначе Гвидо отрежет тебе голову и насрет в горло.
2) У тебя в словаре pos используются операторы доступа к map, вот эти скобочки []. Они подразумевают взятие элемента из контейнера - списка, тупли, вообще из любого объекта, у которого определен метод __getitem__. И внезапно, у None'а этого метода нет, потому что это не список и не тупля.
3) Что бы ты в конструктор не передавал, это запишется в self.map инстанца, а в определении класса вне метода __init__ у тебя будет отдельный map, который всегда равняется None. Есть атрибуты инстанца, которые уникальны для каждого объекта класса, а есть атрибуты класса, которые одинаковы для всех экземпляров класса.
Аноним 16/05/18 Срд 20:56:28  1191182
2018-05-16205000.jpg (32Кб, 540x153)
>>1190772
>Вполне работает
Бля, я хз, как это раньше у меня не работало. То же самое повторил: реально пашет.
Я думаю, для меня это самый удачный вариант. За
>>line in ['еще\n', 'этих\n']
отдельное спасибо. Так действительно красивее.

Хотя я тут глянул, как я исходно делал, возникает проблема (см. пик). После выполнения стирается только последняя указанная строка. Вот о чем я говорил.

Алсо строка выше работает, только если требуется заменить строки под одну копирку (в данном случае если все строки надо удалить). То есть если мне захочется превратить слово "французских" в "немецких", мне по новой всю часть кода с создания бэкапа повторять? Потому что если попробовать еще раз через file1.write, то он мне по мне строчки будет в файл записывать.
Это бы решалось во втором варианте с кучей if'ов, но строка меняется только последняя, как я и говорил.
Аноним 16/05/18 Срд 21:13:35  1191193
>>1191182
>то он мне по мне строчки
то он мне по ДВЕ строчки
Запоздалый фикс
Аноним 16/05/18 Срд 21:37:06  1191209
image.png (5Кб, 300x124)
>>1191177
>1) Тебя не смущает, что твое слово map ПОДСВЕЧИВАЕТСЯ БЛЯТЬ?
он подсвечивается только в ебанутом текстовом редакторе, в пичарме такого нет.
>2,3
Походу понял свою ошибку. Словарь pos инициализируется при создании обьекта и принимает значения для того мап, который None ну или [[1,2],[1,2],[1,2]]
с моим неработающим костылем
, да? Тогда для этого словаря надо сделать что то типа геттера?
Аноним 16/05/18 Срд 21:48:17  1191215
Как решить? str воткнуть перед хелло?
Аноним 16/05/18 Срд 21:55:15  1191220
>>1191215
>Virna
Аноним 16/05/18 Срд 21:58:38  1191224
image.png (6Кб, 338x91)
>>1191209
>в пичарме такого нет.
Специально запустил свой Пичарм, чтобы пописать тебе на лицо.

> Словарь pos инициализируется при создании обьекта
Словарь pos инициализируется, когда выполняется определение класса.

>Тогда для этого словаря надо сделать что то типа геттера?
Оверкилл, мне кажется. можно сделать значениями словаря lambda self: self.map[self.X][self.Y+1], и потом передавать им self инстанцов класса.
Аноним 16/05/18 Срд 22:07:58  1191237
>>1191220
пидор \(._.(/
Аноним 16/05/18 Срд 22:14:02  1191243
>>1191177
>1) Тебя не смущает, что твое слово map ПОДСВЕЧИВАЕТСЯ БЛЯТЬ? Охуенно тебе builtin функции ломать? Никогда так не делай, иначе Гвидо отрежет тебе голову и насрет в горло.
Ага, только использование имени builtin-функции качестве имени аттрибута (ну и в параметрах конструктора) я регулярно встречал в доках и исходниках крупных библиотек.
И PEP8 это не запрещает.

мимикрокодил
Аноним 16/05/18 Срд 22:25:32  1191253
>>1191243
>я регулярно встречал в доках и исходниках крупных библиотек.
Я тоже. Но это все равно хуйня полная, зачем так вообще делать?
Аноним 16/05/18 Срд 22:25:46  1191254

>>1191220

просто я однажды скинула так же, а на меня весь тред кинулся, так что приходиться скрываться.

Так объяснишь в чем я обосралась?
Аноним 16/05/18 Срд 22:47:38  1191269
>>1191254
ПАЦАНЫ, ТУТ ЖИВАЯ ТЯН-ПИТЯН
Аноним 16/05/18 Срд 22:52:32  1191278
>>1191269
Еще и сокеты трогает руками, а не хелоуворолды
Аноним 16/05/18 Срд 23:03:52  1191289
Тупой (w. Пахом[...].webm (12191Кб, 560x420, 00:04:52)
>>1191253
А почему бы и не сделать? Уродство вроде id_, max_, len_ - лучше?

В случае имени аттрибута - это вообще никак не влияет на builtin'ы.
В случае параметра __init__ - в его скоупе использование какого-нибудь id или map маловероятно, а если и вдруг понадобиться - ты никак не сможешь не заметить обосрамс в таком крошечном скоупе и так и быть переименуешь в id_.

Но аутистов очень смущает то что map синтаксически выделяется другим цветом по себе знаю.
И кстати это проблема VSCode хоть я и сам на нём сижу по многим причинам - подсветка синтаксиса в нём строится только на тупых регулярках и никак не сможет например различить где действительно идентификатор builtin'а и где локальная переменная.
Но пример проблемы Питона не особо страшный. А вот в сишке невозможность различать функции и макросы - это пиздец.
Всякие йоба-IDE в такую посветку обычно могут, "легковесные" - нет.
Аноним 16/05/18 Срд 23:56:59  1191343
У Гвидо типично лицо голландского пидорка.
Аноним 17/05/18 Чтв 00:05:59  1191345
Кстати, можно ли в питоне перегрузить оператор сравнения для строк, например?
Аноним 17/05/18 Чтв 00:12:21  1191348
>>1191345
Делай свой класс, наследующийся от str и перегружай __lt__, __gt__, остальные.
Аноним 17/05/18 Чтв 00:13:51  1191351
>>1191348
Гавно, т.е. мне всегда придётся оборачивать строки в мой класс. Не катит.
Аноним 17/05/18 Чтв 00:20:03  1191354
>>1191343
Каждый день вижу голландских пидорков, сразу по харе определяю где пидорок, а где ещё сомневается.
Аноним 17/05/18 Чтв 00:31:51  1191359
>>1191354
Шлюха
Аноним 17/05/18 Чтв 06:37:53  1191417
>>1191182
>(см. пик)
Ну так ты на свои if'ы ещё раз взгляни. Ты не в курсе elif'ов?
Твой код работает так:
1. Если "ещё" - пустую строку
2. Если "этих" - пустую строку, иначе line.

Так вот, "ещё" != "этих", а значит при прочтении этой строки твой код попадает в блок else'а. Тебе нужно было if, elif, else делать.

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

>>1191345
В питоне нет перегрузки. Но ты хотел сказать переопределить, конечно. манки-патчинг тут зашёл бы: ClassName.__eq__ = your_eq_function, но у builtin'ов их изменять нельзя, к сожалению (или к счастью). Так что, да, только оборачивать в свой класс. Но ты лучше задачу опиши, может ты хуйню какую творишь и лучше бы тебе просто функцию нормальную написать, а не гнаться за типа коротким str1 == str2 вместо compare(str1, str2).
Аноним 17/05/18 Чтв 06:41:21  1191418
>>1191417
>у builtin'ов их изменять нельзя, к сожалению (или к счастью)
JS'овцы, кстати, на этом уже попались разок и частично подгорают, шумиху какую-то подняли, потому что какая недобиблиотека переопределила что-то в стандартных прототипах, а теперь это имя хотят для другого использовать. Чем закончилось всё не знаю, буду раз, если по хардкору пояснят.
Аноним 17/05/18 Чтв 08:43:48  1191429
>>1191417
>по поводу переопределения.
Хотел переопределить операцию сравнения для строк, чтобы попробовать небать тесты.
Мой лучший результат 4-попугая, в то время как самый лучший 1.
Вот я и подумал, может кто-то сломал тесты.

Кстати, задача простая:
Есть список objects, надо подсчитать кол-во уникальных объектов в нем.
Например:
len(set(map(id, objects)))

Попугаев дают за эффективность и краткость кода.
Как можно эффективно и красиво пробежаться по списку?
Аноним 17/05/18 Чтв 09:08:35  1191432
>>1191429
А зачем тебе тут map? объекты хешируемы? Если да, то сразу set на список и вызывай. Алсо, где тут вообще у тебя строки-то? id так-то число возвращает (адрес в памяти, если CPython).
Аноним 17/05/18 Чтв 09:13:40  1191434
>>1191432
Проблема в том, что у 1 и True один хеш из-за преобразования.
А надо либо is либо id сравнивать.
Аноним 17/05/18 Чтв 09:24:57  1191436
>>1191434
А, ну тут проблема, да. А дай ссылку, что ли, поиграться там. Так-то кроме id эти два ничем друг от друга и не отличить, вроде, поэтому даже явное прохождение в лупе со счётчиком и словарём для "встречавшихся" элементов ничего не изменит. Разве что за один проход, а не два.
Аноним 17/05/18 Чтв 12:22:31  1191466
https://boostlog.io/@anshulc95/making-a-python-script-to-get-desktop-notifications-on-cryptocurrency-prices-5afc499347018500491f481c
Аноним 17/05/18 Чтв 13:13:49  1191483
15191466857980.jpg (204Кб, 1920x1080)
Как сделать чтобы мой скрипт устанавливался через pip с гитхаба?
Аноним 17/05/18 Чтв 13:19:30  1191490
>>1191483
Денюжку заплати.
Аноним 17/05/18 Чтв 13:22:05  1191491
>>1191490
Схуя ли? Пип платная хуйня? Да ну нахууууууй.
Аноним 17/05/18 Чтв 13:25:14  1191493
Учу Питон уже полгода. Постоянно хочу спать и есть, падаю на диван, не могу сконцентрироваться. Сейчас заметил, что пока полчаса читал книгу, постоянно тер правую руку левой. Это нормально?
Аноним 17/05/18 Чтв 17:27:15  1191626
призывается бородатый бдшник

ситуация: есть одна sqlite3 бд, в ней 130+ таблиц. В эти таблицы постоянно пишется дата, которая парсится с некого api. В тоже время, из этой базы берется эта же дата на обработку. То есть постоянный insert'ы и select'y.

Как бы ускорить это дело? все, конечно, на python
Аноним 17/05/18 Чтв 17:53:50  1191650
>>1191626
PostgreSQL + aiopg/asyncpg = profit
Если insert`ов больше подумай о хранении в кэше каком, обработка и лишь затем запись обработанного.
Аноним 17/05/18 Чтв 18:23:51  1191678
>>1191626
у скюлайта есть куча настроек, гугли, отключи например журналирование или засунь все в память
Аноним 17/05/18 Чтв 18:38:22  1191685
>>1191626
Ещё один идиот выбрал SQLite не понимая для чего этот самый скулайт создавался. ЗАТО РАЗВОРАЧИВАТЬ НЕ НАДО. Ебись теперь, земля тебе пухом.
Аноним 17/05/18 Чтв 19:09:17  1191706
>>1191685
Для чего он создавался?
Аноним 17/05/18 Чтв 19:43:42  1191719
>>1191436
Держи:
stepik .org/lesson/24458/step/9
Аноним 17/05/18 Чтв 20:05:35  1191728
>>1191436
Всё, разобрался exec() оптимизация.
Аноним 17/05/18 Чтв 20:09:36  1191732
1353138915840.jpg (22Кб, 600x450)
>>1191417
Спасибо большое тебе.
Я не совсем понял про твои функции, но обошлось и без этого. If'ов - elif'ов достаточно. Все теперь работает как часы.
Ты очень милый анончик.
Аноним 17/05/18 Чтв 20:18:39  1191741
>>1191732
>Я не совсем понял про твои функции
https://repl.it/repls/WoefulJumboLibrary
Аноним 17/05/18 Чтв 20:21:54  1191743
>>1191706
Хех, ну я вижу уже в описаниях на сайте они там совсем упоролись и рекомендуют пихать скулайт везде кроме бигдаты. Вообще он создавался для встраивания в приложения, в классические десктопные такие, где точно никаких больших нагрузок нет, никакого конкурентного доступа.
Ну вон, как видишь тот анон хочет уже ускорить. Осознание поздно, но приходит.
Аноним 17/05/18 Чтв 20:37:17  1191757
>>1191741
Хм, собственно, ничем это и не отличается от моей реализации кроме того, что оно без определения функции и встроено прямо по ходу кода.
>if line:
>    line = line + "\n"
Интересное решение. Теперь понятно, почему функция FileInput() автоматически проставляет красные строки после своего завершения. Что-то подобное встроено в нее изначально. Возможно, тогда стоит сразу ее и использовать, чтобы не копировать оригинальный файл отдельной строкой (там встроенный backup есть).
Аноним 17/05/18 Чтв 20:47:03  1191767
>>1191719
>stepik .org/lesson/24458/step/9
Your code complexity score is 6.08 (best for this step is 1.0).
Почти закончил курс, большинство задач с best for this step is 1.0, когда я решаю за 3-8 секунд.
Или я макака совсем, или в чем там дело?
Аноним 17/05/18 Чтв 20:59:32  1191781
>>1191767
>>1191728
Аноним 17/05/18 Чтв 21:05:53  1191784
>>1191100
Watchdog
Аноним 17/05/18 Чтв 21:48:02  1191825
>>1191743
Ясненько, я раньше ее юзал при разработке, до релиза, а затем перекатывался на постгрес.
Сейчас даже таким не занимаюсь.
Аноним 17/05/18 Чтв 22:38:16  1191870
>>1188284
Пустая строка интерпретируется как ложь, то бишь пока ты не выедешь одну букву и не нажмёшь энтер, он будет спрашивать перевод с перехлестом(для хуевиндовщиков, вроде меня) каретки не записывается в строку, можно считывать значения с побайтно, и джойнить их в строку, тогда даже перевод уже будет засчитан
Аноним 17/05/18 Чтв 23:03:21  1191899
>>1191741
я бы так реализовал
https://repl.it/repls/HighNeatAngles
Аноним 17/05/18 Чтв 23:05:07  1191902
>>1191743
так на что тогда мигрировать?
поглядел кучи рецептов по ускорению, вплоть до эксплоитов на плюсах, кажется.
Индиксация мне не подходит, потому что постоянный Insert. Думаю, остановится на многопоточности и реализации шаблона consumer. Еще говорят, есть кучи конфигов, которые не гонятся за производительностью.
Может быть вместе и сработает. Ну а еще докучи буду писать в память и только читать. Раз в какое-то время дампить в базу на диске.
Если был опыт в этом - коммить, анон
Аноним 17/05/18 Чтв 23:06:21  1191904
>>1191825
как приноровился? бесперебойная анлим РАМ
Аноним 17/05/18 Чтв 23:14:10  1191910
>>1191904
Что именно? Перекатываться на постгрес или юзать склайт?
Аноним 17/05/18 Чтв 23:16:55  1191911
>>1191490
Тебе на лечение?
Аноним 17/05/18 Чтв 23:18:52  1191913
>>1191910
>склайт
Аноним 17/05/18 Чтв 23:20:43  1191916
>>1191182

> За
> >>line in ['еще\n', 'этих\n']
> отдельное спасибо. Так действительно красивее.
Красиво обыденно, но не корректно с точки зрения выделения памяти тут нужна тупла, а не лист
Аноним 17/05/18 Чтв 23:22:23  1191922
>>1191483
Никак. Насколько помню есть какой-то пакет который умеет исходники тянуть с гитхаба и подрубать это говнище в рантайме. Для пипа есть pypi
Аноним 17/05/18 Чтв 23:25:49  1191925

>>1191483

Не уж то анон высрал что-то полезное, чем не стыдно поделиться с комьюнити?
Аноним 17/05/18 Чтв 23:30:31  1191933
>>1191913
Ну так а что, понятно ж о чем речь? Лень раскладку переключать
Аноним 17/05/18 Чтв 23:30:33  1191934
>>1191925
Какой нибудь очередной парсер, который будет с виабушных сайтов пикчи аниме-девочек тянуть.
Хули, на что еще способен анон?
Аноним 17/05/18 Чтв 23:31:33  1191935
>>1191934
На обертки над API
Аноним 17/05/18 Чтв 23:33:18  1191939
>>1191933
как принаровился, имею ввиду, юзать склайт? или переход на постгресс и было принаравлением? А щас чем пользуешься? какие профиты?
Аноним 17/05/18 Чтв 23:37:16  1191944
>>1191939
А хули им юзать учиться?
Тот же синтаксис +/-, подрубаешься и через курсор погнал ебашить команды.
Для постгреса потом другую либу и немного синтаксис подправить, если надо.
Профиты?
Ну если приложение нагружает БД то склайт сосет, а постгрес работает(хотя иногда и он 16 гигов оперативы сжирал и ложил комп). В склайте нет ilike, если делать поиск, то это критично.
Приноровлений никаких не было, все как по маслу.
Сейчас постгрес юзаю, все хорошо.
Аноним 17/05/18 Чтв 23:39:33  1191947
>>1191944
звучт отлично
Аноним 17/05/18 Чтв 23:50:51  1191958
>>1191944
зацените на грани бреда: а что если, я сделаю каждую работу с таблицей как отдельную базу данных? И буду в 135 потоках ебашть в них асинхронно? Ну и запрашивать в этом же потоке.
Может так быть?
Аноним 18/05/18 Птн 00:04:17  1191970
>>1191902
То что ты описал похоже на обычную очередь. Там тебе SQL в любом виде не особенно нужен. Не знаю что там за 130 таблиц, обычно 100+ таблиц это невъебенно сложное приложение которое разработывали лет пять. Телепаты в отпуске.
Аноним 18/05/18 Птн 00:12:10  1191974
>>1191970
агрегатор всякой залупы. Это на бэкенде сервачек парсит все что может. Там много одинаковых объектов: поля и домены ве сейм щит. И к ним даже идут одинаковые запросы из бэкенда. Вот этих таблиц 135. Окола 90 - подобны. Они заполняются в цикле и читаются тоже.
Аноним 18/05/18 Птн 00:15:44  1191977
>>1191970
а как тогда организовать хранилище и анализ данных? Как быстрее - так мне и лучше
Аноним 18/05/18 Птн 00:40:37  1191985
>>1191935
а что если это обертка над оберткой с тонной зависимостей и нулевым выхлопом?

Как-то рас пришлось беседовать с аноном - супер прогером сеньером помидором и 250к/мс со слов мудозвони, он ява-дрочер и не знал, что такое ООП на принципиальном уровне
Аноним 18/05/18 Птн 00:43:16  1191986
104690 - coffee[...].png (910Кб, 936x1192)
Реквестирую практические задачи по типу: бот в дискорд, который будет добавлять сообщения и автора/дату в БД, прогноз погоды в том же боте, не используя API, гуй-окошечки и подобное.
Может что на графы, но их пока не освоил нормально.
Аноним 18/05/18 Птн 00:44:29  1191988
На скрэпинге вообще возможно заработать? Заказчиками являются всякие чедушные магазинчики, которым нужно базу забить дерьмом с агрегаторов? Кто-нибудь работал в этой сфере?
Аноним 18/05/18 Птн 00:44:43  1191989
>>1191985
>не знал, что такое ООП на принципиальном уровне
он тебя наебал
схлопотал ооп головного мозга в андроиде
Аноним 18/05/18 Птн 00:55:55  1191992
>>1191988
Скрепинг это донное днище разработки. Если хочешь этим заниматься иди либо в Scrapinghub сразу работать, либо найди себе команду аналитиков и осваивай бигдату сразу.
Аноним 18/05/18 Птн 01:23:23  1192009
Привет, аноны.
Подскажите, как мне сделоть удалённое редактирование и отладку (особенно отладку) питоньей программы на удалённом сервере? Локальная машина на дебиане (можно пересесть на вин 10, но не хотелось бы).
Джва часа проебался с vscode и ptvsd и в итоге упёрся в баг, который они ещё не пофиксили - не останавливается на брейкпоинтах.
Аноним 18/05/18 Птн 01:28:13  1192011
>>1191986
Присоединяюсь к господину
Аноним 18/05/18 Птн 01:28:52  1192012
>>1191985
Ну так можно все обёртки над API вырезать нахуй.
Если сервис популярный и API состоит не из парочки методов, то почему бы и не создать заранее готовое решение для работы и упрощения жизни?
Аноним 18/05/18 Птн 01:30:03  1192013
>>1192009
Логи тебе и тонны боли в помощь
Аноним 18/05/18 Птн 01:31:20  1192014
>>1192013
Логи не помогут, разрабы vscode/ptvsd признали это багом месяц назад.
Как редактируете-отлаживаете удалённые проги в своих проектах?
Аноним 18/05/18 Птн 01:31:57  1192015
>>1191977
1. Оптимизируй свои запросы и ключи в таблицах
2. Перекатись на PostgreSQL, это не должно ничего поломать в твоей БД и программе
3. Если хочешь больше инфы - неси конкретику о таблицах и данных
Аноним 18/05/18 Птн 01:33:26  1192016
>>1192014
Причём тут vscode твой?
Запускай программу из консоли на том серваке и выводи промежуточные результаты работы.
Я так и делаю.
А лучше про брейк поинты питоновские почитай, авось поможет.
Аноним 18/05/18 Птн 01:46:06  1192020
>>1192016
>Запускай программу из консоли на том серваке и выводи промежуточные результаты работы.
Ты хочешь сказать, что это обычное дело в питономире? я крестоблядь прост
Судя по тому, что такой функционал есть, похоже, только в PyCharm Pro, дохуя кто живёт именно так.
Аноним 18/05/18 Птн 02:01:57  1192027
>>1192020
> Ты хочешь сказать, что это обычное дело в питономире?
Не совсем, я просто таким не страдаю и вообще я быдло.
Я же сказал, почитай вот про это:
https://docs.python.org/3.6/library/pdb.html
Вдруг тебе поможет.

> такой функционал есть, похоже, только в PyCharm Pro
P.s. О каком функционале речь?
Аноним 18/05/18 Птн 02:51:21  1192030
Господа, я ньюфаг в пайтоне, нужна помощь. Суть - не могу узнавать что то новое просто так, обязательно нужна практическая цель. Посему реквестирую список тасков, от самых азов до полноценных приложений. могу конечно универские лабы с плюсов переписывать, но это тупо как по мне

И еще - в какой иде пишете? Мне удобно когда можно писать код, компилировать его одним кликом и дебажить в той строке, где компилятор ругается. Пока использую компиляцию через консольку, но как то неудобно.
Аноним 18/05/18 Птн 02:57:24  1192031
>>1192030
VSCode если готов почитать доки чтобы писать таск-конфиг для "запуска одним кликом".
Пайчарм я сам не люблю, но там наверное с "одним кликом" проще всё, но менее прозрачно.
Аноним 18/05/18 Птн 03:05:42  1192032
>>1192031
> менее прозрачно
После МВС меня это совсем не пугает, спасибо.
Аноним 18/05/18 Птн 06:33:20  1192045
>>1191757
>кроме того, что оно встроено прямо по ходу кода
Ну так я вот именно это и убирал же.

Вообще, что именно ты имел в виду под
>То есть если мне захочется превратить слово "французских" в "немецких", мне по новой всю часть кода с создания бэкапа повторять?
? Если ты хочешь второй раз пройтись по файлу, то в принципе да, всё заново, но смысл в том, чтобы за один раз всё сделать.

Ну и про бэкап. Зачем? Просто пиши в другой файл. А то ты копируешь файл 1 в файл 2 и потом, читая файл 2, пишешь в файл 1. Чего бы сразу не читать файл 1 и писать в файл 2-то? Если имя файла так нужно, то переименуй файл1 в файл2, *копирование, не имеет никаго смысла, потому что ты всё равно потом удаляешь и перезаписываешь всё содержимое.
Аноним 18/05/18 Птн 08:25:54  1192055
14626110100460.jpg (522Кб, 1280x1638)
Пиздец, на арифметической (наверное) задаче туплю.
Как найти кол-во байт нужное для хранение числа (положительного)?
Желательно не используя битовые операторы.

Я высрал только
((-x.bit_length() % 8) + x.bit_length()) // 8
это норм или хуйня?
Аноним 18/05/18 Птн 08:43:21  1192057
Какой стек технологий нужен для удалённой работы?
Анализ вакансий для удалёнки немного разочаровал, работы не так много и в основном это бекэнд.

Всем нужны JS макаки
Аноним 18/05/18 Птн 09:51:36  1192070
>>1192055
Байт не обязательно равен 8 битам. Хотя питоний интерпретатор вряд ли портировали на такие пизданутые платформы.
Аноним 18/05/18 Птн 10:32:52  1192086
>>1192057
Django или Flask/Scrapy/Selenium/Requests/bs4/БД какую, в том числе не реляционную/Англицкий
Аноним 18/05/18 Птн 11:06:20  1192100
>>1192009
ipdb
Аноним 18/05/18 Птн 14:52:23  1192168
>>1192015
> неси конкретику
есть одна бд (свой агрегатор). В ней 135 таблиц. Все таблицы - подобны (одинаковые домены). Эти таблицы заполняются в цикле по одной. В том же проходе эта таблица читается. 1 insert | 2 select'а.

Полный проход цикла занимает от 340 сек до 700сек. Этот бэкенд на фласке питоне создает рест апи.

Как проще и доступнее организовать данные, чтобы их можно было легко записывать и тут же запрашивать анализировать?
Аноним 18/05/18 Птн 14:52:47  1192169
1315493851316.gif (423Кб, 175x175)
Чёт я взгруснул когда увидел какой охуенный, ОППшный у пхпшников враппер для ffmpeg:
https://github.com/PHP-FFMpeg/PHP-FFMpeg

А у питона хуйня которая только передаёт аргументы в Popen и проверяет что returncode не нулевой:
https://github.com/Ch00k/ffmpy/blob/master/ffmpy.py
Аноним 18/05/18 Птн 14:53:35  1192170
https://youtu.be/pMgmKJyWKn8
Аноним 18/05/18 Птн 14:57:50  1192171
>>1192168
>Полный проход цикла*
полный проход всех 135 циклов
Аноним 18/05/18 Птн 14:59:52  1192172
>>1192171
>Полный проход цикла
полный проход всех 135 циклов
все верно.
Аноним 18/05/18 Птн 15:02:42  1192177
>>1192169
Хуёво, наверное, быть особенным?
https://github.com/readbeyond/aeneas
Аноним 18/05/18 Птн 15:03:18  1192178
[ OrekiFag ] 56[...].png (649Кб, 1020x1301)
>>1192170
О, круто PyCon уже в этом году был.
По-моему даже в JS-мирке аннотация типов (Flow/TS) намного популярнее чем у питонистов.
Я пока ни одну либу не встретил с аннотацией в сорсах.
Аноним 18/05/18 Птн 15:06:17  1192179
>>1192045
Эм, мне нужно изменить исходный документ в том же самом месте, где он первоначально лежит. Если следовать твоей инструкции, мне придется копировать имя оригинального файла, производить основные операции, удалять оригинальный файл, а затем присваивать его имя новому файлу. С бэкапом проще, как по мне.
Аноним 18/05/18 Птн 15:08:43  1192180
1322386706476.gif (449Кб, 286x119)
>>1192177
>aeneas is a Python/C library and a set of tools to automagically synchronize audio and text (aka forced alignment).
И при чём тут ffmpeg? У него вообще-то функционал намного шире чем >automagically synchronize audio and text
Аноним 18/05/18 Птн 15:19:20  1192185
>>1192178
Ну это относительно недавно стало вот так вот выкатываться, раньше про такое никто особо не говорил, может взлетит, библиотека для проверки уже есть.
Думаю в следующем прожекте попробовать такое, выглядит довольно полезно.
Аноним 18/05/18 Птн 15:22:36  1192188
>>1192180
> ffmpy is a simplystic FFmpeg command line wrapper.
Так а что ты от той библиотеки хотел?
Мало функционала? Добавь свой, это же гитхаб.
Аноним 18/05/18 Птн 15:38:00  1192192
1375917051043.gif (950Кб, 384x288)
>>1192188
>Так а что ты от той библиотеки хотел?
ООП-ориентированный интерфейс к ffmpeg, вместо нечитаемой срани.
>ffmpeg -r 1 -loop 1 -i shit.jpg -i piss.mp3 -map 0:v -map 1:a -c:a libvorbis -q:a 9 -c:v vp9 -b:v 0 -crf 16 -g 64 -vf scale=-1:420 -shortest fuck.webm -y
stdout которой ещё потом придётся парсить.

>Мало функционала? Добавь свой, это же гитхаб.
Для того чтобы написать такую либу мне сначала придётся хорошо изучить ffmpeg (и вообще кодирование аудио/видео).
А тогда уже мне эта либа будет не нужна.
Аноним 18/05/18 Птн 15:44:57  1192193
>>1192192
Ну тогда сиди, жди дальше.
Удачи
Аноним 18/05/18 Птн 15:51:08  1192197
13087799193838.gif (626Кб, 320x240)
>>1192193
Да мне и не сильно нужно было, пока хватает subprocess.run без всяких либ.
Просто взгруснулось от того что у пхпшников есть, а у пиздонистов - нет.
Аноним 18/05/18 Птн 16:13:43  1192208
image.png (7Кб, 513x111)
>>1192055

всего на всего:
x.__sizeof__()

любой класс унаследованный от object имеет этот метод
Аноним 18/05/18 Птн 16:24:26  1192211
Анон, не могу создать Postgres db в Visual Studio 2017 через Python. Поглядел все туторы - и ничего не подходит, я чего-то не догоняю, но не знаю чего
Аноним 18/05/18 Птн 16:28:28  1192215
>>1188818
Что за сайтец? Или прога? Крч где подобные задачки выполнять с проверкой?
Аноним 18/05/18 Птн 16:32:04  1192216
>>1192215
codewars
Аноним 18/05/18 Птн 16:34:43  1192218
>>1188818

int('0000') это 0, то бишь False, а False and True это False
Аноним 18/05/18 Птн 16:38:33  1192220
1405783847199.gif (486Кб, 499x330)
>>1192211
Для начала снеси VS и научись, блять, базовой ебле в терминал.
Затем $ createdb db_name. И вообще https://www.tutorialspoint.com/postgresql/index.htm

Не создают базы "через питон". Создают консольными утилитами и потом подключаются к ним в питоне.
Но на твоём уровне вообще не рекомендую трогать psql, будет слишком больно. Для начала научись всё делать без ссаной IDE, потом попердоль sqlite.
Аноним 18/05/18 Птн 16:41:42  1192221
>>1192220
>без ссаной IDE, потом попердоль sqlite
переезжаю с склайт. Без иде в рот ебал. Все создал через AdPostgress. Да, все происходит на винде. В рот ебал терминал, пользуюсь python. Все норм.
пойми, я не ради технологий делаю, а ради результата, который мне нужен чтобы облегчить и автоматизировать другую работу.
Аноним 18/05/18 Птн 16:44:13  1192222
>>1192216
Добра тебе, анон
Аноним 18/05/18 Птн 16:47:59  1192225
image.png (46Кб, 961x580)
>>1192216
забавно
Аноним 18/05/18 Птн 16:54:14  1192230
>>1192221
Ну удачи, надейся что твои остануться достаточно лёгкими под них можно было найти кнопочку в IDE.
Просто если ты тратишь часы на то чтобы решить проблему, но реальных знаний не получаешь, только находишь нужную кнопочку - в дальнейшем так и продолжишь тратить время на поиск кнопочек, вместо того чтобы начать понимать что ты вообще делаешь и научиться решать сразу пласт задач.
Аноним 18/05/18 Птн 16:55:10  1192231
>>1192225
hola vpn
Аноним 18/05/18 Птн 16:56:01  1192232
>>1192231
пикрил на нордике
Аноним 18/05/18 Птн 17:01:51  1192235
>>1192230
понимаю о чем ты, прост голова другим занята, самими решениями, а не базой, на чем все работает
Аноним 18/05/18 Птн 17:04:45  1192236
>>1192230
ты какой-то ярый противник ide и терминалодрочер? что плохого в ideшке? ну vs от мелкомягких не в счет, юзать эту санину - себя не уважать, то же самое касается шарпа и всего .net
Аноним 18/05/18 Птн 17:10:34  1192237
>>1192192
там особо и паристь нечего, в stdout - строка байтов, просто раздеребань её на список и найди в цикле все нужное, поскольку она айпа, то можно это делать рилтайм в отдельно процессе, сложно ничего нет, но оборетка реально дерьмовая и особого смысла в ней нет, подтверждаю, сам юзал стандартный Popen, к слову, если тебе нужно просканить результат после скачки и неважны ошибки, то резоннее юзать check_output
Аноним 18/05/18 Птн 17:11:06  1192238
13089967492552.gif (889Кб, 250x185)
>>1192236
Проблема не в самих IDE, проблема в тех кто юзает IDE на стадии обучения, а потом не понимает даже как скрипт запустить без этой IDE.
На "легковесные" IDE вроде VSСode это не распространяется.
Аноним 18/05/18 Птн 17:16:05  1192240
>>1192238
мне кажется, что как раз в процессе обучения необходимы IDE (ведь речь идет не о бд, а о питоне?), ибо нет геморроя с табуляцией и можно легко посмотреть реализацию метода и документацию (если имеется) и много ещё других плюшек, которые просто облегчают жизнь, тем более, ты ведь знаешь что такое cmd винды и можешь адекватно оценить как вней работать (в сравнении с терминалом юникса), даже по человечески нельзя скопировать и вставить, не говоря уже об отсутствии возможности создавать виртуальные терминальные окна и всего прочего
Аноним 18/05/18 Птн 17:34:10  1192246
1316290244283.gif (957Кб, 640x360)
>>1192240
>мне кажется, что как раз в процессе обучения необходимы IDE (ведь речь идет не о бд, а о питоне?), ибо нет геморроя с табуляцией и можно легко посмотреть реализацию метода и документацию (если имеется)
Я не предлагал писать код в vim. Всё это есть и в VSCode.
А вот запускать код нужно сразу учиться из терминала, а потом автоматизировать запуск/сборку скриптами или средствами
>тем более, ты ведь знаешь что такое cmd
Юзаю под виндой git-bash + Cmder. Настраивать их было немного больно, зато cmd не трогал никогда.
Для обучения лучше сразу ставить линукс, хотя бы на виртуалочку.
Аноним 18/05/18 Птн 17:36:38  1192247
Научился писать калькуляторы. Что дальше? Как начать писать приложения? Что почитать, где есть обучение вот этому вот всему(желательно на ангельском).
Аноним 18/05/18 Птн 17:51:54  1192261
>>1192247
программируем на python Марк Лулз
потоm фрилансеть
Аноним 18/05/18 Птн 18:11:48  1192276
>>1192261
Я его почти всего прочитал
Аноним 18/05/18 Птн 18:16:39  1192279
>>1192276
Анализируй проэкты на гитхабе, улучшай их или добавляй фичи
Аноним 18/05/18 Птн 18:23:35  1192285
>>1192276
ну походу ты тогда какой-то дурачок, раз все прочитал и не знаешь куда приложить умения
Аноним 18/05/18 Птн 18:49:19  1192311
>>1192247
А что ты хочешь уметь? Для чего питон учил?
Аноним 18/05/18 Птн 19:06:16  1192320
>>1188085 (OP)
Сам змеяч, хочу вкатиться в джангу, но есть проблема, именно - куда вкатываться?
Есть джанга 1.1 но она устаревает, а есть джанга 2.0, но по ней маловато гайдов. И то, что по идее работает в 1.1 в 2.0 уже не работает. Мне надо понять полный принцип работы, но мне неохота курить устаревший материал.
Аноним 18/05/18 Птн 19:51:31  1192347
15250318720490.mp4 (9813Кб, 640x360, 00:02:03)
Здраститя. Я мудак, и склеиваю sql-запрос простым сложением строк. Так сложилось исторически. В запрос идут параметры из QueryDict. Никак не могу понять, как мне добавить во входящие строки экранирование, допустим, одинарных ковычек чтобы избежать sql-инъекций
Аноним 18/05/18 Птн 19:56:18  1192352
image.png (116Кб, 953x701)
Аноны, на что Celery может ругаться? Когада пытаюсь запустить таски с ключом -B
Аноним 18/05/18 Птн 19:59:09  1192353
image.png (218Кб, 1332x806)
>>1192352
Раньше всё блять работало, прошло два месяца и пиздец, уже где-то что-то проебал.
Аноним 18/05/18 Птн 20:04:32  1192356
>>1192347
в чем суть вопроса?
ты не знаешь как экранировать спецсимволы?
ты не знаешь что строки могут обрамляться 3-мя типами символов: ', ", """ ?
Аноним 18/05/18 Птн 20:08:06  1192359
>>1192347
слепые скульные инъекции до сих пор ещё эксплуатируют?
Аноним 18/05/18 Птн 20:18:16  1192363
>>1192356
>в чем суть вопроса?
Допустим приходит запрос ebola.com/show_me_dvacher?name=karasik
Склеиваем запрс:
sql_request = 'select dvacher.face from dvacher where dvacher.name like \'% + QueryDict['name] + '%\'
Так вот, если придет name=kar`asik, запрос не выполнится. Как сделать так, чтобы в запрос шел не kar`asik, а kar\`asik?
Аноним 18/05/18 Птн 20:21:16  1192364
>>1192359
Да такто пох эти инъекции, у моей джанги права только на select, просто хочется чтоб запрос все равно выполнился
Аноним 18/05/18 Птн 20:31:42  1192372
Че Гевара.webm (7970Кб, 560x420, 00:03:26)
>>1192170
Блять, меня смутило на ~20:04 то что для JSON'а неизвестной "формы" он использует Any.
JSON же вполне определённую, хоть и рекурсивную структуру имеет.

Погуглил, да, в рекурсивные типы пока не могут:
https://github.com/python/mypy/issues/731
Аноним 18/05/18 Птн 22:22:36  1192423
>>1192170
Решил посмотреть, хотя только вкатываюсь. Если я когда пойду на работу начну везде тайп чекинг кидать, мне скажут, что я молодец или ебанат?
Аноним 18/05/18 Птн 22:39:39  1192427
image.png (13Кб, 354x121)
image.png (2Кб, 269x34)
Хелп нуфагу, плес. Как в этом куске кода может меняться массив vals? Я уже голову поломал.
Аноним 18/05/18 Птн 22:42:02  1192429
>>1192170
Что случилось в мире, что теперь в питоне затребовались типы?
Небось ещё скоро объявлять переменные захотят.
Аноним 18/05/18 Птн 22:52:48  1192438
>>1192427
покажи весь код
Аноним 18/05/18 Птн 22:54:36  1192439
>>1192427
ты явно выкатился в из СИподобия, в начале тоже такое безумие писал)
Аноним 18/05/18 Птн 23:08:06  1192443
>>1192423
Все зависит от руководства/коллегк/код стайла принятого. Если адекваты, то не думаю что откажутся от этой идеи.
>>1192429
У такого подхода к разработке есть свои плюсы, и он тебя ни в чем не ограничивает, это тебе не жесткая типизация.
Аноним 18/05/18 Птн 23:10:40  1192444
>>1192438
Забыл упомянуть, что это не просто массив, а array из numpy c dtype float, я как понял это просто массив с типом, или я аутист? Сейчас остальное не могу показать. У меня просто в голове не укладывается, где массив может измениться.
>>1192439
В точку, из С++ в джаву, а на питоне скриптики и прототипы пишу. Очень простой красивый и быстрый в написании язык, завидую питонокодерам, потому что они не мучаются с синтаксисом, а пишут именно то, что должно работать. Есть рекомендации?
Аноним 18/05/18 Птн 23:11:34  1192445
>>1192429
до сих пор не могу избавится от этой привычки
Аноним 18/05/18 Птн 23:13:58  1192446
>>1192444
ты хотя бы покажи какие примерно аргументы у функции, какая структура, велика вероятность того, что ты пытаешься изменить тип, который не состоит из ссылок (неизменяемый)
Аноним 18/05/18 Птн 23:22:31  1192449
Аноны, есть вопрос, не совсем по питону, но т.к. питонач - дом родной, то пишу сюда.
Есть один джун, который работает под моим началом(я сам от джуна не далеко ушел, но этот еще зеленее), так вот, начали мы писать небольшой прожект вместе, пока я был рядом - все хорошо было, минимум костылей, максимум работоспособности, затем меня перекинули на другой проект, а джун остался мелкие примочки дописывать. Я периодически в комиты заглядывал и правил. Вот прошел месяц его самостоятельной работы над примочками и насяльника сказал выкатывать все. Я принялся за дело и охуел от пиздеца который он наворотил. Приложение крашится от минимально не так введенных данных, пользователь не оповещается о действиях совершенных, часть моего функционала не работает, костыль на костыле и на заглушке. Мне говорил, что все ок и готово. Я целую ебучую неделю правил это и так ничего не выкатил, ибо не упел.
Что я сделал не так? Что надо делать? Как избежать такого пиздеца? Как научить его быть человеком?
Он у нас 7 месяцев работает, вырос конечно, но то что он написал, стало откровением для меня.
Аноним 18/05/18 Птн 23:28:38  1192452
>>1192427
ты судя по всему где-то в начале инициализируешь vals как-то так vals = exchanger

в итоге это приводит к тому что обращаясь к vals ты ссылаешься на exchanger, в питоне в отличии от СИ
a = [1,2,3]
b = a
a[0] = 0
print(b)
>0,2,3

если речь идет об изменяемых объектах, вроде листа или массива, нужно делать явное копирование,например так
b = a[::]

или гугли глубокое копирование
Аноним 18/05/18 Птн 23:32:06  1192455
>>1192449
дс?
может дропнишь его, возьмешь меня?)

а если серьезно, то обилие костылей это проблема куратора, это мне явно дал понять мой последний, когда вышвырнул меня с предыдущей работы пинком под зад))
Аноним 18/05/18 Птн 23:34:23  1192456
image.png (1Кб, 123x22)
>>1192452
Спасибо, анон! Никогда бы сам не догадался, что язык такую мину подложит. Видимо, придётся всё-таки какую-нибудь книжечку по питону осилить. Извиняюсь за платину
Аноним 18/05/18 Птн 23:36:04  1192457
>>1192456
забавно, что стековерфлоу на 70% усеян такими вопросами
Аноним 18/05/18 Птн 23:37:42  1192458
>>1192444
> array из numpy c dtype floa
Сукаблять. Смотри, в обычном Писстоне список и тупля содержат не объекты, а ссылки на объекты. Поэтому, если объект mutable, то с его изменением изменится и список. Пример - пикрил. Так что в обычном Питоне твоя ситуация, когда изменяется float который immutable без явного values = хуй невозможна.
Наверное фишка в том, что dtype float numpy мьютабельный и ты на один такой объект указываешь и в values и в exchanger, и когда объект меняется в exchanger+=..., то это изменение видно и в values. Это только предположение, сам numpy никогда не трогал.
Аноним 18/05/18 Птн 23:45:12  1192459
>>1192443
>У такого подхода к разработке есть свои плюсы
Я ничуть не писатель на Питоне, просто интересно, как до такой жизни докатились.
Раньше ведь не задавались такими вопросами.
Аноним 18/05/18 Птн 23:48:16  1192460
image.png (7Кб, 410x119)
>>1192456
это все ещё я
>1192439
>1192452
нечем занять себя вечером в пятницу слишком интересная и насыщенная жизнь, так что предлагаю тебе переписать этот кусок код под питоновский стиль
ссылаться индексами тут не принято, но это так к слову

Аноним 18/05/18 Птн 23:53:10  1192462
>>1192455
Местный ДС, да и руководству норм, не уволят, только скажут "ну научи иво, вы жи команда".
Получается, что я виноват в его говнокоде? Как это пофиксить?
Аноним 18/05/18 Птн 23:56:38  1192464
>>1192459
Р-развитие, язык не может стоять на месте или развиваться лишь в одном направлении. Посчитали, что это будет полезно, вот и добавили.
Хотя может это и деградация языка, время покажет, как это приживется у пистонистов.
Аноним 19/05/18 Суб 00:00:18  1192465
>>1192462
посоветовать какую-то литературу, например из шапки поста, где первые 100 страниц одни паттерны, показать другие куски кода, написанные мидлами или сеньорами

з.ы.
открытых вакансий нет, что вообще значит местный ДС, он же только один, если рассматривать в масштабах РФ?
Аноним 19/05/18 Суб 00:03:07  1192466
>>1192460
Век живи, век учись. Когда я проходил курс по питону, ничего подобного там не было. Всё-таки не зря тут спросил, спасибо, анон, что ты есть. Не грусти так, ты классный
Аноним 19/05/18 Суб 00:04:19  1192467
>>1192429
>Что случилось в мире, что теперь в питоне затребовались типы?

Гвидо поумнел, наконец-то?
Аноним 19/05/18 Суб 00:14:43  1192469
>>1192467
А если в Питоне появится отступонезависимый синтаксис?
Что же тогда, апокалипсис?
Аноним 19/05/18 Суб 00:25:31  1192472
>>1192465
> посоветовать какую-то литературу
Поробую, но сомневаюсь что вне работы он читать будет, я ему уже кидал книги по пистону и вот не знаю даже, помогло ли.
> показать другие куски кода, написанные мидлами или сеньорами
Только если носом потыкать
> что вообще значит местный ДС
Беларашко-ДС Минск
Аноним 19/05/18 Суб 02:05:36  1192493
>>1192472
> Поробую, но сомневаюсь что вне работы он читать будет, я ему уже кидал книги по пистону и вот не знаю даже, помогло ли
возможно стоит более настойчиво это посоветовать, и намекнуть, что в его же интересах это а то джуном можно и просидеть очень долго
>Только если носом потыкать
Странная ситуация (но под предлогом первого можно и потыкать)
> Беларашко-ДС Минск
понятно, жаль, как там у вас вообще, на какой ставке у вас там джуны, в раисии говорят, что картошкой платите)
Аноним 19/05/18 Суб 02:16:22  1192496
>>1192493
> возможно стоит более настойчиво это посоветовать
Я не препод, даже не знаю как настойчиво ему это сказать, если его это не ебёт особо.
> а то джуном можно и просидеть очень долго
а ему и норм, видимо, инициативы нет.
> на какой ставке у вас там джуны
От конторы зависит, года два назад знакомый устроился в iTransition на C# разраба и получал 350$, сейчас всё там же, но про зарплату не говорит. У нас джун получает 400$.
> картошкой платите)
Пиздят )
Аноним 19/05/18 Суб 02:29:56  1192500

>>1192496
>получает 400$
х, как макдаке вобщем. Ебать раки ценники просадили, скоро нрн будут минет включать в пакет услуг
Аноним 19/05/18 Суб 02:35:46  1192501
>>1192500
Да, но сделай скидку на цены, которые у нас пониже российских.
На сколько я понял из общения с хрюшей в одной компании(гораздо крупнее нашей), диапазон з/п для джуна у нас 300-450$
Аноним 19/05/18 Суб 02:36:24  1192502
посоветуйте плес тупую, юзерфрендли либу для графики в петоне. Достаточно выводить статичную картинку, состоящую из квадратиков 1-2 раза в секунду. Мне пиздец как лень сейчас учить какието либы, хочется написать три с половиной строчки кода и чтобы все работало.
Аноним 19/05/18 Суб 07:31:17  1192543
>>1192502
Tkinter, проще ничего нет, для рисования используй Canvas.
Аноним 19/05/18 Суб 11:56:40  1192598
>>1192439
Причем тут вообще Си? Там вообще просто так нельзя копировать массивы типа a = b. Нужно использовать функцию из библиотеки, либо написать свою. А если ты будешь использовать указатели (или ссылки в С++), то получится такая же хуйня как в питоне - когда поменяешь значение переменной в одном массиве, то оно и в другом массиве поменяется.

>>1192444
>В точку, из С++
Сомневаюсь, что ты на крестах хоть что-то серьезное кроме калькулятора писал, раз делаешь такие тупые ошибки.
Аноним 19/05/18 Суб 13:30:20  1192646
>>1192598
>Причем тут вообще Си? Там вообще просто так нельзя копировать массивы типа a = b. Нужно использовать функцию из библиотеки, либо написать свою. А если ты будешь использовать указатели (или ссылки в С++), то получится такая же хуйня как в питоне - когда поменяешь значение переменной в одном массиве, то оно и в другом массиве поменяется.

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

Вывод о си можно легко сделать по организации цикла, все писали по началу так
for i in range(len(somelist)):
...

вместо

for index, someitem in enumerate(somelist):
...
Аноним 19/05/18 Суб 17:30:42  1192778
кто нибудь юзал psycopg2? перечитал документацию, но пока так и не смог реализовать Insert с переменными. Это вообще работает?
Аноним 19/05/18 Суб 17:58:23  1192786
изображение.png (117Кб, 1280x1024)
Где VScode фанатик, когда он так нужен?
Как можно отключить проверку линтерами на определенном файле? А то джанго-файлы светятся как рождественская елка, и это бесит. почему производители серьезных вещей хуй кладут на восьмую ПЕПу?
Аноним 19/05/18 Суб 18:56:26  1192823
>>1192543
По ткинтеру все же придется покурить мануалы. Он не настолько прозрачный, как вывод хэллоуворлда или рисование черепашкой.
Ну, и он вообще как бэ говно визуально.
Аноним 19/05/18 Суб 19:01:58  1192826
>>1189879
Создай файл в котором пиши таймдату последнего выполнения. При вызове скрипта проверяй время сейчас > время_последнего_выполнения + 24, и если условие выполняется то скрипт делается, и в конце в файл пишется текущее время.
Аноним 19/05/18 Суб 23:04:10  1192962
Аноны, здравствуйте, пришел с таким вопросом. Сам я учу джанго. Питон знаю нормально, так же знаю html/css, хочу стать бекенд разработчиком. Делаю для себя разные сайты, так потренироваться, разные форумы, магазины и тд, сталкиваюсь с тем что нужен js конкретно jquery и ajax. Вопрос: стоит ли тратить время на изучение фронт составляющей (js, jquery и ajax) или же оттачивать онли django и питон. Питон нравиться, есть желание стать бекенд разработчиком. Еще вопрос, если захочу фрилансить, знание одного бека будет достаточно?
Аноним 19/05/18 Суб 23:30:16  1192975
>>1192962
1. Русский подучи немного
2. На одном бэкэнде не выедешь особо, понимание JS понадобится, но он же простой на базовом уровне, быстро выучишь. Тем более Ajax, там же по сути 10 строк кода на фронте, что бы послать реквест и получить успешно/нет ответ. Да и с jQuery тоже самое, если что, по ходу разберешься в нем.
Аноним 19/05/18 Суб 23:30:59  1192976
>>1192778
Эм. Ты наверное как-то жопой читал документацию, это же простейший кейс. Все ? заменяются переменными в cursor.execute.
Аноним 20/05/18 Вск 00:34:38  1193007
>>1192976
дело оказалось в том, что при миграции из скулайт банальный int недостаточен для сохранения юникстайм. А он до миллисикунд и нах не нужен. Тем более селект по нему. Обломно 8 бит тратить на это. Урезал с обехи концов просто и встало, как надо. Вобще, конечно, перед началом проекта нужно даже прототайп по уму страться. Ато работает, да ладно. Хотя итеративное улучшение не имеет конца.
Аноним 20/05/18 Вск 00:47:39  1193009
>>1192962
кароч, не с этого начинаешь. Если три типа фрилансеров. Первый, это когда ты работаешь на крупную кантору, и у тебя боковичек проходит, ато и на удаленку тебя переводят. Там ты по-сути себе хозяин и продаешь свой труд не получая ограничения на локацию. Хоть из леса работай, или с феста какого. Второй тип - это когда ты прошел уровень пидора на апворке и других фриланс конотор, а именно: работал полгода-год за 100-200 баксов в месяц, а потом репу прокачал из крутишься в 6-9 баков, потом в 8-12, потом резко до 20 баксов. Потом просто начинаешь выбирать и торговаться, потому что у тебя есть выбор. Пока выбора в заказах у тебя не будет, ты не сможешь дампить свой ценник. Тут тебе сарафанка в твоей лакации и заказы с апворка. Выбор есть. Это складывается в моем случае в 3 года. По ходу, ты встречаешь много технологий, которые еще продаешь на своей локации. Допустим, ты реализовал рест апи на андоиде под любое устройство, считай пол дела. Потом тебе и таксо и магазины и логисты - ток в путь. И есть третий вид фрилансеров. Это когда ты делаешь для себя и на этом имеешь деньги. Просто свои сервисы. Хорошо заходят агрегаторы, разного рода автоматизация, допустим из моего опыта адаптор для риелторов из крупного агенства, через которое они могли одновременно рассылать объявы на много ресурсов. Если ты фрилансер третьего вида, то ты - менеджер экономист, плюс у тебя есть прог скилл. Ты сам видишь куда что надо, проводишь аналитику, ресерч и дохуя предлагаешь, ну а потом даже можешь повыбирать
Аноним 20/05/18 Вск 00:49:25  1193010
>>1193009
пардонирую за ошибки, ибо пьян. Конечно не дампить, а задирать
Аноним 20/05/18 Вск 01:30:29  1193018
>>1192502
>>1192823
Там API простенький, остальные варианты сложнее.
Можно еще PyGame использовать.
Вот пример вывода текста:
https://gcup.ru/publ/engines/osnovy_pygame_vvedenie/2-1-0-257
Можно выводить и картинки.
Аноним 20/05/18 Вск 01:40:04  1193021
>>1188085 (OP)
> python
> змеи
Аноним 20/05/18 Вск 10:51:48  1193088
>>1192975
>>1193009
Спасибо за ответы.
Аноним 20/05/18 Вск 11:01:49  1193091
>>1193021
Во-первых, питон - это семейство змей.
Во-вторых, на пике именно питон.
Аноним 20/05/18 Вск 11:03:49  1193092
os.plock(op)
Lock program segments into memory. The value of op (defined in <sys/lock.h>) determines which segments are locked.
Availability: Unix.

Скажите, пожалуйста, какой эффект дает этот вызов, и каким может быть значение op?
Верно ли, что это позволяет предотвратить перекат памяти процесса в подкачку?
Спасибо.
Аноним 20/05/18 Вск 11:17:15  1193098
Traceback (most recent call last):
File "./nh11", line 128, in <module>
os.plock()
AttributeError: module 'os' has no attribute 'plock'
Как это нет атрибута, когда по документации есть? ЧЯДНТ?
Аноним 20/05/18 Вск 11:57:29  1193106
>>1192786
Если у тебя pylint, то можешь добавить коммент перед блоком с ошибкой #pylint: disable=номер или название ошибки
Например #pylint: disable=e1011
Разные ошибки можешь через запятую перечислять. А если хочешь сразу весь файл проигнорить, то #pylint: disable=all
Аноним 20/05/18 Вск 14:01:36  1193284
>>1193091
дебил python читается как пайтон и не имеет отношения к змеям вообще никакого
Аноним 20/05/18 Вск 14:12:22  1193301
Котаны, никак не могу осилить ООП. Вот тут - https://repl.it/repls/LateComfortableExams - есть 2 класса. NetworkConfig получает протокол, домен и порт и клеит из них базовую урлу. TestSuite наследуется от NetworkConfig, получает имя и эндпоинт, с помощью которого формируется тестовый урл (базовый урл + эндпоинт). Но интерпритатор ругается, говорит что TestSuite тоже должен получить домен, порт, вот это всё. А я хочу чтобы он только базовый урл наследовал. Как правильно?
Аноним 20/05/18 Вск 14:30:19  1193327
>>1193301
Как ты получишь базовый урл, которому нужен протокол, домен и порт, не передавая ни протокола, ни домена, ни порта? Когда ты делаешь super()__init__() ты просто вызываешь __init__ функцию суперкласса, которая ожидает 3 аргумента, и передаешь ей только 1 - base_url, который к тому же и не определен в __init__ TestSuite
Аноним 20/05/18 Вск 14:32:57  1193334
Ребзя, не кинете ссылочку, на годные исходники сеньоров, чтоб набраться опыта и узнать какие-нибудь фишечки и профессиональные фичи использования пайтона? инбифо гитхаб
Аноним 20/05/18 Вск 14:42:34  1193343
>>1193284
Какой умный малыш. А уроки сделал?
Аноним 20/05/18 Вск 15:08:53  1193354
>>1193334
Сам задал вопрос, сам и ответил.
Аноним 20/05/18 Вск 15:31:52  1193371
Зачем нужен Python, когда есть free pascal? Такой же простой, есть ООП.
Аноним 20/05/18 Вск 16:05:59  1193400
питон.png (148Кб, 600x600)
>>1193284
Ты либо очень тупой, либо тролль несмешной. Если первый вариант, то что ты видишь на логотипе?
Аноним 20/05/18 Вск 16:09:26  1193405
>>1193400
Комик группу Монти Пайтон
Аноним 20/05/18 Вск 16:42:21  1193422
Господа, как в matplotlib отобразить числа у minorticks?
Отображаются лишь у мажорных.
Делаю так
https://hastebin.com/upocosenoh.makefile
Аноним 20/05/18 Вск 16:43:25  1193423
>>1193354
Имплаинг гитхаб не - собрание говнокода дебилов вроде меня. Где я тебе сеньоров с открытыми исходниками найду?
Аноним 20/05/18 Вск 16:45:41  1193426
Куда пихать random.seed если в программе много файлов? Влияет ли он на генераторы рандома из других библиотек вроде numpy (у которой есть свой numpy.random.seed(seed=None))?
Аноним 20/05/18 Вск 16:58:45  1193431
>>1193327
так ведь я думал что создам инстанс класса NetworkConfig, передам его в TestSuite, и вуаля! Соотвественно будет объект с базовым урлом в аттрибутах, откуда он и будет передан. Что я понимаю не так?
Аноним 20/05/18 Вск 17:08:06  1193433
>>1193405
Ну и шизик.
Аноним 20/05/18 Вск 17:08:42  1193434
Ребята, такая задача; нужно найти кубический корень из числа(числа на входе всегда такие, что корень получится целым). Так же результат мне нужен типа инт, тк на его основе буду массив трехмерный строить. Подскажите самое удачное рещение этой задачи, а то гугл столько велосипедов выдал, що я хз. Вот такой способ: x = a(1/3) выдает приблизительное значение. Пока придумал разве что округлять число до целого, но это все костыли какие-то
Аноним 20/05/18 Вск 17:25:21  1193439
>>1193434
from luboiUchebnikPoPitonu import naitiKubicheskyKorenIzChisla
Аноним 20/05/18 Вск 17:26:40  1193441
>>1193431
>Что я понимаю не так?
Как работают функции, аргументы и наследование. Ты книжки вообще читал? Если ты думаешь, что написав class TestSuite(NetworkConfig) ты как-то указываешь Питону, что ТестСьют должен брать инстанс Нетворка и сам догадаться, как из него все нужное извлечь и записать, то ты неправ совсем.

>создам инстанс класса NetworkConfig, передам его в TestSuite
Ну значит делаешь инстанс, а в __init__ TestSuite надо будет обращаться к атрибутам\методам инстанса NetworkConfig и что-то с ними делать.
Аноним 20/05/18 Вск 18:51:46  1193512
Скажите мне, пожалуйста, как на вашем языке создать простую программу для просмотра изображений jpg png bmp? Хотя бы несколько советов дайте, чтобы было от чего оттолкнуться.
Аноним 20/05/18 Вск 18:54:57  1193515
>>1193512
Берешь либу pil и выводишь. Для интерфейса юзаешь tk например. Ну или можешь системным в ос показывать просто выполняешь типа так (в линуксе)

import os
os.system("xdg-open tmp.png")
Аноним 20/05/18 Вск 20:16:07  1193582
Вечер в тредю. Имею некоторый бэкграунд разработки на шарпах плюс асп.нет кор, обучаюсь достаточно быстро. Реально ли месяца за три выучить пайтон на уровне, достаточном для работы за 60-70к в ДС?
Аноним 20/05/18 Вск 20:16:55  1193584
Что нужно для минимума и куда, собственно, идти искать на джуна вакансию после того как отчислюсь? Или с питоном в СНГ никак?
Аноним 20/05/18 Вск 20:17:50  1193585
>>1193515
В пиле можно изменять размер?
Аноним 20/05/18 Вск 20:22:59  1193592
>>1193584
Джанга.
Аноним 20/05/18 Вск 20:26:38  1193597
>>1193400
Хохлов?
Аноним 20/05/18 Вск 20:28:49  1193599
>>1193592
Ты б ещё фронтэнд посоветовал. ПО кто-то занимается?
Аноним 20/05/18 Вск 20:32:53  1193601
>>1193585
Члена? Нет. Картинки? Да.
Аноним 20/05/18 Вск 20:39:19  1193608
149556587613028[...].jpg (21Кб, 1000x300)
>>1193597
Как-то так.
Аноним 20/05/18 Вск 21:15:15  1193626
>>1193515
>просто выполняешь типа так
image.show() же, зачем мудрить.
Аноним 20/05/18 Вск 21:59:14  1193655
>>1192962
Блять, не попадай в эту ловушку. На jquery возможно писать только костыльное неподдерживаемое говно. Иди сразу в vue или react. Не повторяй моих ошибок. Сейчас всё на реакт с этого говна переписываем, уже третий месяц.
Аноним 20/05/18 Вск 22:04:53  1193663
>>1193426
Модули в питоне это синглтоны
Аноним 20/05/18 Вск 22:28:55  1193681
>>1193663
Тоесть, надо пихать все и везде отдельно?
Аноним 20/05/18 Вск 22:32:39  1193686
>>1193655
Не слушай его, никакого реакта и тем более редукса. А vue верно, годнота.
Аноним 20/05/18 Вск 22:36:47  1193692
>>1193426
>Влияет ли он на генераторы рандома из других библиотек
Если эти библиотеки его испольуют — да, очевидно. На нампи нет, у них своё.

>>1193681
>Тоесть, надо пихать все и везде отдельно?
?!

Где ты хочешь засидить генератор, туда и пихай. Где-нибудь близко ко входной точке, например. От задачи зависит же.
Аноним 20/05/18 Вск 22:39:15  1193694
>>1193426
Не понятен твой вопрос.
Ты думаешь функция их твоего модуля повлияет на одноимённую функцию из какой-либо библиотеки?
Аноним 20/05/18 Вск 22:47:13  1193698
>>1193694
Я запускаю 1.py, который берет функции из 2.py ... N.py, в которых используются рандом генераторы из библиотек random, numpy, etc. Как мне установить один сид на весь проект? Достаточно ли написать random.seed() в 1.py? Или нужно добавить numpy.random.seed() и остальные? Или нужно добавить это во все файлы 1.py ... N.py?
Аноним 20/05/18 Вск 23:36:08  1193718
>>1193698
Судя по этому вопросу:
https://stackoverflow.com/questions/36304187/is-there-a-good-way-to-share-the-seed-of-random-between-modules-in-python
нет, seed не шарится, если не шарить самому.
Аноним 21/05/18 Пнд 04:38:15  1193810
>>1192179
>копировать имя оригинального файла,
Ты и так это имя знаешь, иначе как ты открываешь файл?
>производить основные операции,
>удалять оригинальный файл,
Ты и так удаляешь бэкап
>присваивать его имя новому файлу.
Ты при открытии файла всё равно указываешь имя.

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

Вообще, обычно сначала пишут во временный файл, а затем им заменяют оригинал. Не уверен, есть ли нюансы, если исходные данные из этого же файла читаются, но по идее не должно быть. https://repl.it/repls/PreciousDishonestHashmaps
Аноним 21/05/18 Пнд 04:55:33  1193814
>>1193698
>Достаточно ли написать random.seed() в 1.py?
Да. Сам генератор-то глобальный, достаточно в одном месте инициализировать.
>Или нужно добавить numpy.random.seed() и остальные?
Ну ты что используешь, то и вызывай, блин. Выше уже отвечал, что random на numpy.random не влияет. Какие там у тебя ещё другие библиотеки понятия не имею, сам протеструй, на что они опираются.

>Или нужно добавить это во все файлы 1.py ... N.py?
Не нужно. Ну, точнее, где ты хочешь иметь контроль над состоянием генератора, туда и вставляй. Если у тебя весь скрипт просто отрабатывает один раз после запуска, то для повторяемости хватит и в одном месте где-нибудь в начале.

>>1193718
Тут о другом речь же — о шаринге значения перемной (а уж сид это или нет разницы никакой).
Аноним 21/05/18 Пнд 04:57:20  1193816
>>1193814
https://repl.it/repls/UntrueNovelGraphs
отклеилось
Аноним 21/05/18 Пнд 13:00:18  1193965
>>1193655
>На jquery возможно писать только костыльное неподдерживаемое говно
Совсем долбоеб? Ты хоть понимаешь как оно работает?
Аноним 21/05/18 Пнд 15:39:30  1194080
1446126766-b3d3[...].jpeg (66Кб, 500x374)
>>1188085 (OP)
Имеется ли некое подобие autoexec для консоли Python (в Pycharm) и как вообще из консоли вызывать файлы с кодом ?

Я редактирую некий скрипт в открытом в Pycharm файле, но иногда нужно попробовать какую-то операцию/и в консоли, т.к. это удобней, чем запускать часть скрипта . Однако, предварительно нужно как минимум ввести команды загрузить нужные модули, подключить директории, открыть файлы.

Как сделать, чтобы скрипт с этими действиями (import xxxx,yyy; open (myfile1); open (myfile2);..) , например, autoexec1.py можно было вызывать сразу из самой консоли ?

Прописывать скрипт в settings-Build & Exection - Python Console не совсем подходит, т.к. для разных задач такие автоэкзеки могут быть разными.

Пока используют костыль типа import autoexec1 as a, но получается, что все объекты я должен использовать как a.x1, a.x2...., что неудобно

В общем, можно ли такое (запуск набора команд через короткую команду) сделать в консоли или проще записать их где-то и ctrl-c ctrl-v в консоль ?
Аноним 21/05/18 Пнд 16:04:31  1194103
>>1194080
1. python -i script.py
Выполнит скрипт и оставит тебя в интерактивной консоли.

2.
>все объекты я должен использовать как a.x1, a.x2....,
>from autoexec1 import *

3. exec(open("./path/to/script.py").read(), globals())

Бонус:
4. export PYTHONSTARTUP="path/to/script.py"
И будет выполняться при каждом запуске интерпретатора. Удобно всякие частоиспользуемые urllib'ы и нампи там подгружать, например.
Аноним 21/05/18 Пнд 16:44:08  1194152
ruspugachevXA.jpg (31Кб, 700x495)
>>1194103
>все объекты я должен использовать как a.x1, a.x2....,
>from autoexec1 import *

>exec(open("./path/to/script.py").read(), globals())
пасиб братюнь. Только пришлось еше open (... , encoding='utf-8') сделать, хотя Python 3 должен жи файлы в UTF без доп настроек открывать

>python -i script.py

Аноним 21/05/18 Пнд 16:48:35  1194156
А возможна ли такая запись если в библиотеке несколько элементов которые можно отдать функции :

somepr = somef
func.somef
Аноним 21/05/18 Пнд 16:53:45  1194162
>>1194156
ладно потом сам провепб прийду
Аноним 21/05/18 Пнд 17:17:31  1194179
>>1194156
>>1194162
Иди проспись лучше.
Аноним 21/05/18 Пнд 17:25:02  1194185
>>1194179
Не могу , всегда сплю одмнаковое количество времени 4 часа не могу не больше не меньше может бывает у кого думаю из-за нагрузки
Аноним 21/05/18 Пнд 18:42:07  1194211
>>1192449
ну, во-первых - тесты. никакая хуйня не пушиться в репу без тестов, автоматизированных с помощью CI. во-вторых, грумить таски на мелкие фичи. в-третьих, каждая фича - отдельный мердж реквест. четвертое и последнее - код ревью каждого реквеста. тщательное блять. джун завтра зассыт и съебет, а разгребать тебе, так что не пропускай даже маленький кусочек говно, заставь его навести порядок. покрытие тестами ни при каких условиях падать не должно. внимательно проверяй насколько хорошо разобраны кейсы. обращай внимание на цикломатическую сложность написанного джуном кода - если у него там ольше двух уровней вложенности или несколько ифов - он через пару суток уже не поймет собственный код и разгребать это опять таки тебе. в общем, говно легче разгребать ложечкой, а не ведрами таскать.
Аноним 21/05/18 Пнд 21:54:41  1194319
>>1194211
Спасибо тебе, антош, учту на будущее.
Аноним 21/05/18 Пнд 22:31:43  1194356
Где там на гитхабе искать проекты, в которых покапаться, разобраться какие решения и как всё работает? Через поиск что-то мусор один, чёрт ногу сломит.
Аноним 21/05/18 Пнд 23:05:47  1194393
>>1194356
Ищи что тебя интересует, не ищи рандом. Веб — ищи веб, геймдев — ищи геймдев, итд.
Аноним 21/05/18 Пнд 23:39:14  1194416
Ребзи, спасайте, угораздило вкатиться в питон при написании диплома.
Есть текстовый файл, в каждой строке которого 4 пробела, а затем число вида 3.890190741743E-02
Мне нужно записать число из каждой строки в трехмерный массив. Я уже почти наговнокодил алгоритм для обработки этих данных, время поджимает, а я не могу нормально из файла данные переписать. Подскажите как без подводных камней нормально создать массив, допустим 30х30х30 Я так понял что для многомерных массивов нужно NumPy юзать и корректно забивать построчно в него данные из документа(нужно чтобы это были вещественные числа как в примере выше. Короче самое главное, обьясните пожалуйста как правильно к конкретной строке файла обращаться, как не обосраться из за пробелов(если они являются проблемой конеш) и как преобразовать эту строку в соответствующее число. А то мне блядь еще обработку этих данных неделю дописывать, а я их даже забить в массив нормально не могу
Аноним 22/05/18 Втр 00:04:24  1194434
>>1194416
Что такое трехмерный массив? Как он должен выглядеть?
Аноним 22/05/18 Втр 00:28:11  1194441
>>1194434
В пакете пакет с карпом в пакете.
Аноним 22/05/18 Втр 01:03:53  1194452
>>1194441
>>1194416
Я тупой в общем, не знаю вашего пистона, алгоритмов и проче хуеты.

Генератор твоего файла с числами вида 3.1224Е-1488 - https://ideone.com/Nk5lCs
Генератор трёхмерного массива если я его правильно понял, нихуя не учил ж макака с переводом твоих богомерских чисел в нормальный float, но там не работает чтение из файла построчно, прогоняет только первые 30 строк и всё, лень разбираться - https://ideone.com/pEGbUG

Можно попробовать заколхозить readlines() и генераторами добавлять по единице в какую нибудь внешнюю переменную чтобы по ней читать массив со строками. Всем споки ноки. Можете обоссать мой код и сказать где косяки, будет полезно.
Аноним 22/05/18 Втр 01:05:51  1194453
image.png (1Кб, 184x37)
>>1194416
>конкретной строке файла обращаться
for line in open('suka'). Если надо несколько раз обращаться suka = open('suka').splitlines(); suka[0] но тебе не надо

>как не обосраться из за пробелов
А как ты из-за них можешь обосраться? Если у тебя 4 пробела, потом число, то: line.lstrip()

>как преобразовать эту строку в соответствующее число
float спокойно переваривает такие записи
Аноним 22/05/18 Втр 01:09:04  1194454
>>1194416
1. readline
2. float(str.strip()) - и strip может даже не нужен
А вообще пандас или сам нампи должен уже уметь считать и распарить всё в numpy.array самостоятельно, если сможешь объяснить ему что ты хочешь.
> Как создать массив...
Просто берёшь и создаёшь. Хоть блядь файл в numpy.array считай и передай его в numpy.ndarray(shape=(30,30,30), dtype=float, buffer=datafromfile).

Может нехуй вкатываться в незнакомый язык за месяц до защиты диплома/курсача?
Аноним 22/05/18 Втр 01:09:28  1194455
>>1194452
Перед отходом ко сну осенило, что 30х30 = 90 - двумерный массив а нужен 30х30х30 и это нихуя не 90.
https://ideone.com/yqMVlB - генератор файла
https://ideone.com/L9g4Op - генератор массива
>>1194453
сяп за float('govnoE-1')
Аноним 22/05/18 Втр 02:23:06  1194471
image.png (32Кб, 694x377)
Как запустить многопоточность? Надо, чтобы startGUI в определенное время чекал что там сделал start, и выводил это на экран. Попытался сделать поток для start - нихуя, в итоге сначала запускается start, который отрабатывает вечный цыкл, и ничего не доходит до mainloop. Вопрос, какого хуя? И как это решить?
Аноним 22/05/18 Втр 07:25:33  1194499
>>1194452
>>1194455
>>1194454
Спасибо парни, после работы разбрусь с тем что вы написали
>Может нехуй вкатываться в незнакомый язык за месяц до защиты диплома/курсача?
Нет выбора, мне нужно наколхозить алгоритм который расположит эти данные в массиве в нужном порядке, посчитает их координаты в модельном обьеме и выберет только нужны. Там буквально на 8 часов беспрерывного ковнокодинга если знаеь язык, но бля за паскаль меня бы защита санными тряпками закидала. Плюс нет разницы во что вкатываться, когда за месяц до защиты у тебя нихуя не сделаноэтому конечно есть рациональное обьяснение, но кому это нахуй интересно а пиздовать еще год хуи пинать ради защитыили ваще сапоги топтать совсем нет желания, лучще уж я потеряю сон на пару недель
Аноним 22/05/18 Втр 07:47:32  1194504
>>1192247
Изучи графический интерфейс и пиши, что тебе надо, если конечно основную базу знаешь.
Аноним 22/05/18 Втр 09:43:14  1194537
image.png (35Кб, 571x141)
image.png (44Кб, 585x186)
>>1194471
Мне плевать, что твой map живет пару секунд, не ломает ничего глобально, и вообще никак не мешает, ведь ты не пытаешься вызвать оригинальный map как функцию. Я найду и выебу тебя прямо в рот.

>Как запустить многопоточность?
Смотри картинки. Твой sim это ни разу не главный тред, а его таргет функция вызывает ГУИшный canvas. Это плохо.

>определенное время чекал
Аноним 22/05/18 Втр 11:09:25  1194586
Screenshot from[...].png (27Кб, 469x312)
Поясните долбаебу почему при выполнении скрипта через терминал мне не возврашается True или False? Хотя если писать этот же код в терминале напряму - всем все возвращается?
Аноним 22/05/18 Втр 11:26:07  1194596
>>1194586
Ты с ума сошёл, куда тебе true должен верунться, в шелл, что ли? Током ёбнуть?
Аноним 22/05/18 Втр 11:35:44  1194602
>>1194586
А если ты просто про то, что ничего на экране не появляется — так ты и не выводишь. Это только в интерактивном режиме всегда пишется возвращённое значение. print() тебе в помощь.
Аноним 22/05/18 Втр 11:39:51  1194605
>>1194602

Спасибо, теперь буду знать.
Аноним 22/05/18 Втр 12:08:35  1194620
>>1194586
Всем всё платится.
Аноним 22/05/18 Втр 13:06:21  1194645
Суп анон. Посоветуй что-нибудь для решения моей задачи. Типа теги для поиска, алгоритмы, просто укажи сторону в которую стоит смотреть чтобы не изобретать велосипед на костылях.
В общем пишу плагин для kodi(медиаплеер типа smart tv) для анимца со скрапером ссылок на видео с shikimori.
На shikimori на каждый эпизод может быть много(думаю может доходить до 50 и это только на один эпизод) ссылок с разными командами локализации и разными хостингами.

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

Задача:
Сделать автоматический подбор ссылок релевантным для пользователя.
В настройках дополнения планирую добавить выбор типа локализации (озвучка, саб), и сейчас думаю добавить настройку "приоритетного списка" в котором будут находиться предпочтения пользователя, какие команды локализации ему больше нравятся.

В общем анон насоветуй хоть что-нибудь, а то кривые велосипеды изобретать не хочется
Аноним 22/05/18 Втр 14:35:17  1194735
>>1193810
Я тебя не понимаю совершенно.
Я копирую исходный файл в виде бэкапа, потому что записывать сразу же в исходник нельзя (при открытии на запись все стирается). Я беру и читаю бэкап, и строки оттуда переношу в уже голенький исходник.
Если же я буду записывать строки из оригинала в бэкап, то мне потом все равно придется взять все строки из бэкапа и поместить обратно в исходник.
Так зачем заставлять программу гонять по строкам вдвое больше, если я могу с самого начала просто создать копию оригинала и помещать строки из нее в исходник?
Аноним 22/05/18 Втр 14:41:12  1194742
Как запустить firefox селениумом с browsec?
Аноним 22/05/18 Втр 15:28:02  1194774
Меня этот Питон доебал уже своими заходами.
На одном компьютере скрипт с записью файла работает. Наьдругом тот же самый скрипт не работает, пока ему encoding utf8 не прописать. Причем этот же инкодинг нетработает на первом компе.
А сейчас просто какая-то поебень. Скрипт работает, если запускать его через ИДЕ. И он же, сука, не работает, если его просто даблкликом открыть. Всегда работал, щас не хочет. Какой-то трейсбек на долю секунды высвечивается, чет тип файл не найден. Ебанутый что ли? Вообще охуеть.
Аноним 22/05/18 Втр 15:44:16  1194785
>>1194774
> Какой-то трейсбек на долю секунды высвечивается, чет тип файл не найден.
/0
Аноним 22/05/18 Втр 15:45:18  1194788
>>1194774
>Скрипт работает, если запускать его через ИДЕ. И он же, сука, не работает, если его просто даблкликом открыть.
Окружение?
Аноним 22/05/18 Втр 15:50:30  1194793
>>1194537
откуда картинки? скажи плес
Аноним 22/05/18 Втр 15:51:50  1194794
>>1194793
>не уметь в гугл
Марк Лутц
Аноним 22/05/18 Втр 16:35:09  1194806
Ананасы, начал осваивать пайтон и сразу же столкнулся с проблемой.
При вводе:
exec(open('myfile.py').read())
мне выдает ошибку :
FileNotFoundError: [Errno 2] No such file or directory: 'myfile.py'
хотя этот файл лежит в директории которая прописана в sys.path
Чому он не может найти файл?
Аноним 22/05/18 Втр 16:37:49  1194809
>>1194806
1. Пропиши полный путь к файлу
2. Найди способ посмотреть текущую дерикторию
Аноним 22/05/18 Втр 16:41:22  1194812
>>1194809
>Пропиши полный путь к файлу
помогло, но неужели мне каждый раз при обращении к модулю вводить полный путь к нему?
Аноним 22/05/18 Втр 16:42:42  1194813
>>1194812
Говорю же, найди способ посмотреть дерикторию, в которой на данный момент находишься. В пайчарме, к примеру, сразу показывается путь, в котором работаешь.
Аноним 22/05/18 Втр 17:11:06  1194835
>>1194788
Винда, ноутпад два креста.
Аноним 22/05/18 Втр 17:37:20  1194846
>>1194835
>ide
>notepad++
Аноним 22/05/18 Втр 18:19:33  1194871
Столкнулся с проблемой с неработающим выводом графика с построенными фигурами. Вернее на долю секунды окошко вывода появляется, но оно пустое. Код довольно объемный, поэтому оставлю ссылку на него - http://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_iris.html
Так как код с сайта с документацией, а не с форума, поэтому, должно быть, проблема на моей стороне.

Да, я понимаю что кинуть ссылку и написать "разберитесь за меня" - это ужасно некрасиво.
Аноним 22/05/18 Втр 18:46:29  1194911
Вот вы говорите ньюфаги, а я и сам полтора года плюсопайтоно макакингом отзанимался а всё так же ньюфаг в плане общего знания, т.е. например так и не понимаю как компоновать своё приложение. Нихуя в этой куче директорий на типичном репозитории на гитхабе не понимаю, нахуя всё это вместо пары файликов с нужным функционалом. Чё запускать то бля.
Аноним 22/05/18 Втр 18:46:49  1194913
>>1194806
open() не имеет никакого отношения к sys.path или PYTHONPATH, он всегда

>каждый раз при обращении к модулю
Модули загружаются через import. Если ты вручную читаешь файл, то ответ да, каждый раз. Либо положить свой "модуль" куда-то поближе и читать через относительный путь.
Аноним 22/05/18 Втр 18:47:20  1194915
>>1194913
>он всегда
Он всегда относительно текущей директории идёт.
Аноним 22/05/18 Втр 19:44:36  1194968
Привет аноны. JS-фронт-макакий хочет вкотиться в питон. Скажите - доки из оп-поста актуальны?
Аноним 22/05/18 Втр 20:19:51  1194990
image.png (15Кб, 926x63)
>>1188085 (OP)
Анон, а как это лучше сократить, чтобы держать лимит в 79 символов? Я все правильно сделал, по пепейту, питон вей?

Аноним 22/05/18 Втр 20:51:34  1195020
Аноны, столкнулся очень давно с такой проблемой, что не могу записать 2 и больше переменных в файл:
file.writer(firstarg, secondarg)
Знаю что можно сделать отдельную переменную, и там воссоединить firstarg и secondarg. Но есть ли более изящный вариант?
Аноним 22/05/18 Втр 21:00:05  1195023
>>1194846
Какая разница? Работает через запуск из блокнота, не работает по клику на файл в папке.
Черная магия, ей-богу.
Аноним 22/05/18 Втр 21:36:16  1195045
Предлагаю включить в ОП-пост следующего треда:
https://instagram.com/p/BjFD7O6lO-3/
Аноним 22/05/18 Втр 22:33:36  1195067
>>1195023
Врушка. Сделай open('./файл') и покаж ошибку
Аноним 22/05/18 Втр 22:36:43  1195070
>>1194990
if some is not None замени на просто if some. И новом блоке уже пиши if some.gettext bla bla.
Либо try используй, либо ту строку в переменную засунь, но там вроде всё равно не влезет.
Аноним 22/05/18 Втр 22:36:48  1195071
>>1194968
У нас тут не ЖС, каждый день по новому фреймворку не выходит, так что почти всё (кроме питона 2.х и всяких доисторических статей) актуально. Что именно там в шапке я, если честно, не в курсе.

>>1195020
file.write(firstarg+secondarg) ?
Пишутся же в любом случае либо строки, либо байты, а значит и соединить их можно элементарно.

>>1194774
Вставь ты, блин, try/catch с input()'ом да прочитай эту ошибку. А ещё лучше просто из консоли его запусти, вангую проебался ты с путями.

>>1194990
is not None тебе там зачем? И раз уж всё равно на 3 строки, так и сделал бы лучше
>result = bs.find() and bs.find().get_text()
>if result == "Nothing found":
>    print("Нихуя нет, блядь")
Многострочные if'ы, по-моему, это почти самое убогое, что можно сделать. Но лучше ещё мнения послушай.
Алсо, 79 знаков для лохов.
Аноним 22/05/18 Втр 22:53:56  1195080
>>1195071
Сделал, все-таки, как этот >>1195070
анон сказал, вроде звучит логично.

Я тут скриптик написал, чтобы анимешные картиночки качать, может посмотрите, аноны, оцените? https://pastebin.com/JVvviYE0 над чем стоит поработать? над английским точно нужно, не судите строго за это

Думаю, что синтаксис я уже освоил, в каком направлении двигаться дальше?
Аноним 22/05/18 Втр 23:16:01  1195090
>>1195080
В целом пойдет, но условия и генераторы вырвиглазно выглядят с этим tqdm. Нужн рефакторинг, sys.argv и по мелочам. почему не requests?
Аноним 22/05/18 Втр 23:20:05  1195095
>>1195090
Юрллиб мне больше нравится.
Аноним 22/05/18 Втр 23:22:23  1195098
>>1195095
Сделай проверку на пустые теги\папку
Аноним 22/05/18 Втр 23:29:28  1195104
крестоблядь врывается с тупым вопросом:
есть список arr = [хуй, пизда, джигурда]
я хочу выкинуть "хуй" из него:
arr = arr[1:]
куда физически денется объект "хуй", который был по arr[0]? будет существовать неприкаянный до конца процесса? этим можно как-то управлять?
Аноним 22/05/18 Втр 23:31:29  1195106
>>1195104
Пока его не соберёт сборщик мусора. В принципе можно его(gc) явно вызывать,но не советую.
Аноним 22/05/18 Втр 23:32:06  1195107
>>1195106
спасибо
Аноним 22/05/18 Втр 23:33:51  1195108
image.png (6Кб, 230x98)
image.png (51Кб, 553x397)
>>1195098
Ты об этом? Добавил. https://pastebin.com/BCSP4uxm

Кстати, есть ли смысл возвращать None после сис.еррора?
Аноним 22/05/18 Втр 23:37:37  1195110
>>1195108
>Ты об этом?
Не об этом. У тебя на 54 строке идёт tags = input() и tags сразу идёт в дело без проверки. Если я не введу никаких тегов - меня кинет на "главную", так задумано? Аналогично с folder = input(), я не знаю как пайтон реагирует на os.mkdir('./images//'), но ты глянь там.
Аноним 22/05/18 Втр 23:38:31  1195111
>>1195108
а sys.error это что вообще такое?
Аноним 22/05/18 Втр 23:39:22  1195113
>>1195090
Пойду ещё напишу CLI версию, тогда так же это называется? ну, типо, с параметрами из командной строки.
Аноним 22/05/18 Втр 23:40:42  1195118
>>1195113
Da. Исправляй
Аноним 22/05/18 Втр 23:40:51  1195119
image.png (27Кб, 625x108)
>>1195111
И правда, блядь, что это, где я это отрыл, пиздец.
Аноним 22/05/18 Втр 23:41:48  1195120
>>1195118
Да, пойду-ка почищу все.
Аноним 22/05/18 Втр 23:55:43  1195123
>>1195108
>https://pastebin.com/BCSP4uxm
1. Коментарии кто писать будет? (нужно больше, не жалей "бумагу")
2. Проверка наличия/создания папки, лучше так будет:
if not os.path.exists(img_path):
____os.mkdir(img_path)
3. Я б заменил sys.error на:
try:
____....
except SomeError as error:
____ print(error)
3. Немного адок из-за съехавшей разметки
А так вполне себе неплохо.
P.s. В будущем перепиши на asyncio/aiohttp скачку.
Аноним 22/05/18 Втр 23:57:17  1195124
>>1195123
P.p.s Ну или заюзай sys.exit([arg]) и для каждой ошибки номер свой заюзай
Аноним 23/05/18 Срд 00:04:31  1195126
>>1195123
>>1195124
Спасибо за советы, анон.
Аноним 23/05/18 Срд 00:19:50  1195129
>>1194774
Вот именно для этого придумали докер.
>даблклик
Под виндами да, боль. Но обещают в 3.7 поправить и выпилить нахуй всю эту дрисню с кодировками и посадить всех на UTF-8, даже виндоюзеров.
Аноним 23/05/18 Срд 00:22:24  1195131
>>1194911
Открой для себя setuptools entrypoints. Ещё нормальные люди обычно в README пишут как запустить.
Аноним 23/05/18 Срд 04:54:55  1195183
Ку всем, джава господин макака итт.

Дайте самую новую самую годную книжку по питону 3 на английском без разжевываний для вкатывальщиков.

Скажу сразу, я его рассматриваю не как язык для разработки, а скорее для скриптов как замена башу и хобби типа "хакинга". Если еще будет книжка по сетевому программированию в питоне – вообще отлично.
Аноним 23/05/18 Срд 05:03:52  1195185
>>1195183
Пiшов вон
Аноним 23/05/18 Срд 09:10:23  1195209
>>1194735
Мне кажется, либо ты не понимаешь, о чём я говорю, либо ты не понимаешь, как работают операции с файлам.

>при открытии на запись все стирается
Т.е. ты скопировал кучу данных и тут же всё удалил. Тебе не кажется это немного бесполезным?

>Я копирую исходный файл в виде бэкапа
Не копирий, просто сделай исходник бэкапом, переименовав его.
>os.rename(source, backup); open(source, 'w')
>copy(source, backup); open(source, 'w')
Дадут один и тот же результат, но первое не делает ненужной работы.

>заставлять программу гонять по строкам вдвое больше
Это как раз таки ты вдвое больше нужного делаешь.

Сложно привести аналогию, так как в реальном мире "копирования" не существует, но вот представь, что тебе нужно перебрать игрушки в ящике, причём так, чтобы в конце всё оказалось в ящике с надписью "Болты", в которой они изначально и лежат. Одновременно две коробки с такой подписью иметь нельзя.
Итак, что разумнее:
1. (Твой) Взять коробку с напистаь на ней "временное", переложить в неё все игрушки (тут я как бы соединил копирование и очистку файла) а затем уже начать перекладывать игрушки обратно в уже пустую коробку "Болты", заменяя сломанные на новые, а затем сжечь коробки "временное"
2. (Мой) Фломастером заменить надпись "Болты" на "Старые Болты", взять новую коробку и написать на ней "Болты". Затем уже перекладывать игрушки из "Старых" в "Болты", заменяя сломанные на новые. Сжечь коробку "Старые Болты".

Видишь тут лишний шаг?

Аноним 23/05/18 Срд 10:45:38  1195242
>>1194742
Ты ебнишься засовывать расширения, которые должны работать после открытия я когда-то с этим ебался более 5 часов, потом просто плюнул и прокинул трафик через проксю (кстати в селениум хроме для прокси с лог:пассом отдельная ебень с плясками)
Аноним 23/05/18 Срд 11:28:38  1195266
>>1195209
>Мне кажется, либо ты не понимаешь, о чём я говорю
Внезапно!
>Я тебя не понимаю совершенно

Но я тебя понял наконец-то. Спасибо снова.
Почему ты подписываешь ящик с игрушками как "Болты"
Аноним 23/05/18 Срд 13:51:07  1195433
>>1195129
>обещают в 3.7 поправить и выпилить нахуй всю эту дрисню с кодировками и посадить всех на UTF-8
Это очень хорошие новости. Держу кулачки.
Аноним 23/05/18 Срд 16:51:58  1195541
>>1194774
Docker.
Тут где-то тред про него был, а твой вопрос прямо таки отвечает ОПу на его вопрос.
Аноним 23/05/18 Срд 17:13:37  1195561
>>1195433
Опять убивают совместимость, хорошего тут мало
Аноним 23/05/18 Срд 17:31:40  1195579
>>1195561
Нужно было ставить linux
Аноним 23/05/18 Срд 19:50:42  1195683
В функцию поочередно идет переменная, и вместо того что бы строки добавлялись в файл, они заменяются
def writer(ips, e = "default"):
__try:
____file = open("ips.txt", "w+")
____if e == "default":
______file.write(ips+"\n")
____if e == "
______file.write(ips + " - p\n")
__except:
____print("Some problems with writing to file")
__finally:
____file.close()
Аноны, как фиксить?
Аноним 23/05/18 Срд 19:55:04  1195687
Люди, я ньюфаг. Есть окно Tk(), в нём две кнопки, имеющие соответственно две функции (для результата нажатия на каждую кнопку). Функции работают, но результат отображается в IDE, а не в окне Tk() где сами кнопки приложения. Как отображать результат функций в самом окне под кнопками, а не выводить его в IDE?
Аноним 23/05/18 Срд 19:55:32  1195688
Антоши, скажите - гайд в ОП посте не устарел? Планирую вкотиться в питон, курить мануалы, и следующие полгода не заебывать вас тупыми вопросами.
Аноним 23/05/18 Срд 20:23:33  1195709
>>1195687
Сука,содомит.
Гугли "вывод текста tkinter"
>>1195688
Нет, не устарел.
Аноним 23/05/18 Срд 20:27:55  1195713
>>1195687
>результат отображается в IDE
Это называется консоль. IDE - это то, где ты пишешь код.
Аноним 23/05/18 Срд 20:28:22  1195714
>>1195688
>и следующие полгода не заебывать вас тупыми вопросами
Ага, держи карман шире.
Аноним 23/05/18 Срд 20:39:13  1195719
>>1195713
Нет, именно в IDE. Я нажимаю на кнопку - а в результат выводит на след. строку IDE.
Аноним 23/05/18 Срд 21:00:24  1195740
>>1195719
Интересно девки пляшут.
Аноним 23/05/18 Срд 21:39:08  1195756
>>1195683
w+ будет затирать все строчки, используй a+ что бы добавлять в файл.

вместо try/catch используй менеджер контекста(with).

Да и ты понимаешь что при вызове функции ты будешь открывать/закрывать файл постоянно? Намного логичнее открыть файл -> записать всё что нужно -> закрыть.
Аноним 23/05/18 Срд 21:59:05  1195764
>>1195756
>a+
Почему не просто "а"?
Аноним 23/05/18 Срд 22:09:23  1195776
>>1195764
+ означает что если файла нет, его нужно создать.
Аноним 23/05/18 Срд 22:12:12  1195781
>>1195776
оу, нет обосрался чутка. + означает открыть для чтения/записи. Так что да, + тебе не нужно.
Аноним 23/05/18 Срд 22:24:53  1195791
Парни, скорую помщь мне по братски
Как записать в файл переменную типа float и turple?
а в идеале еще и результат этой строки
max = np.unravel_index(np.argmax(ar, axis=None), ar.shape)
Аноним 23/05/18 Срд 22:26:27  1195793
>>1195791
pickle?
Аноним 24/05/18 Чтв 00:21:54  1195909
>>1195791
>Как записать в файл переменную типа float и turple?
str() или json.dump() в зависимости от задач.
>Экземпляр какого-то np класса
Скорее всего >>1195793 подойдет, если этот файл ты будешь читать тоже питоном. Иначе - преобразуй его в json или yaml. yaml - если его будут читать люди, иначе - json.
Аноним 24/05/18 Чтв 00:37:20  1195914
>>1188085 (OP)
Как изменить maximum recursion depth ?
Аноним 24/05/18 Чтв 00:53:37  1195923
А помимо джанги и монги какие обычно самые распространённые библиотеки подразумеваются?
Аноним 24/05/18 Чтв 02:11:14  1195936
>>1195923
бэкбон
Аноним 24/05/18 Чтв 09:11:17  1195961
Начал читать книгу по питону 2017 года и дошел до комплексных чисел. Я вообще не знаю что это такое.Это сильно нужно?Это ведь вроде какая-то сложная математика, блин, я думал таких вещей в питоне не будет, там же вроде без знания математики можно изучать, не?Какие еще комплексные числа...погуглил и нихуя не понял. Короче, комплексные числа нужно изучать отдельно?Все это делают?
Аноним 24/05/18 Чтв 10:05:50  1195981
Как в бесконечном цикле обновлять plt.show() графика из matplotlib?
Аноним 24/05/18 Чтв 10:46:15  1195988
>>1195961
Да, учи отдельно, вдруг пригодится.

>>1195981
Никак, ты будешь рисовать каждый раз новый в новом окне. Если тебе нужны динамические графики - почитай про Dash.
Аноним 24/05/18 Чтв 10:54:13  1195990
>>1195988
Спасибо, но это веб-макакинг какой-то, попробую matplotlib.animation.FuncAnimation
Аноним 24/05/18 Чтв 11:13:04  1195995
>>1195990
Веб-макакинг уже не провославно?
Удачи
Аноним 24/05/18 Чтв 14:51:12  1196089
>>1195688
У нас тут не ЖС, каждый день по новому фреймворку не выходит, так что почти всё (кроме питона 2.х и всяких доисторических статей) актуально.
Аноним 24/05/18 Чтв 15:01:04  1196092
>>1195914
import sys
sys.getrecursionlimit() # актуальный лимит
sys.setrecursionlimit(100) # ставишь свой
Но осторожно, если выставишь слишком много, то программа может вылететь.
Аноним 24/05/18 Чтв 18:06:53  1196178
>>1195561
Бетку уже выкатили, можно пробовать.
Аноним 25/05/18 Птн 00:42:01  1196385
>>1195961
Если ты не знаешь, что такое комплексные числа, даже погуглив, то могу гарантировать, что в жизни, и уж тем более в твоём программировании на питоне, они тебе не будут нужны.

>>1195981
https://bastibe.de/2013-05-30-speeding-up-matplotlib.html
демка подобного метода когда-то давно стыренная откуда-то https://pastebin.com/JVfALYKq

>>1196089
Эй, ты зачем мой пост украл?
Аноним 25/05/18 Птн 00:50:53  1196389
А сколько сейчас средняя по рынку для джуна в дс?
Аноним 25/05/18 Птн 08:45:23  1196499
>>1196385
Я кстати тот JS макакий что вкатываетсч в питон. Прочел относительно бегло "кусь питона". Хочу сказать что все же для новичка она не полна. Не очень подробно развернута система классов. Как передается в экземпляры класса self. Как определяется контекст вызова. Как работает все это ? В js прототипы . Короче маловато )
Аноним 25/05/18 Птн 09:46:33  1196516
Леса.png (438Кб, 570x585)
>>1196499
https://www.youtube.com/watch?v=SJ8z-TF07s4
https://www.youtube.com/watch?v=mTp2pLEoDaI
И вообще отсмотри
https://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW

Алсо, я тоже начал изучать Питон после JS и как же мне блять горит от того что хотя они очень похоже внутри, даже в плане ООП, но в Питоне всё няшно и удобно, а в JS - ёбанный пиздец.
Ящитаю корень всех зол - то что JS трясётся над обратной совместимостью, а так бы давно все косяки поправили. А Питон на совместимость срёт и правильно делает.
Аноним 25/05/18 Птн 10:58:44  1196556
>>1196499
Ну так это не исчерпывающее руководство, а лишь краткий обзор фич и возможностей питона. Она ведь и совсем тонкая. За подробностями надо в другие книги лезть.
Аноним 25/05/18 Птн 13:22:16  1196632
thinking-emoji-1.png (44Кб, 370x260)
Посоветуйте какой фреймворк выбрать для api тестов. Есть вариант с behave, но я незнаю насколько это подойдет именно для api тестов
Аноним 25/05/18 Птн 13:27:03  1196635
>>1196092
Спасибо анон !
Аноним 25/05/18 Птн 13:28:21  1196637
>>1196499
>Не очень подробно развернута система классов
Так там всё интуитивно понятно же.

>Как передается в экземпляры класса self.
У нас ебли с this'ами. self явно передаётся в метод класса (соответственно, и имя может иметь любое), т.е. при вызове obj.method(a, b) питон на самом деле под капотом просто вызывает Class.method(obj, a, b).

>Как определяется контекст вызова.
Опять же, у нас нет ебли с this'ами, так что того контекста можно сказать и нет. Вызванные у объекта методы всегда будут иметь этот объект в качестве self'а.
Есть всякие контекстные менеджеры, но там всегда всё явно указывается.
Аноним 25/05/18 Птн 13:52:51  1196654
>>1196632
Falcon
Аноним 25/05/18 Птн 14:03:00  1196658
>>1196654
мне для тестирования
Аноним 25/05/18 Птн 17:21:58  1196774
А что почитать по этому вашему DATA SCIENCE и ALGORITHMS? Чтобы с примерами на питончике и понятным языком? Неважно, на каком языке. Желательно, чтобы можно было купить бумажную версию в каком-нибудь чиай-городе или на озоне в моей мухосране другого нет.
Аноним 26/05/18 Суб 00:22:12  1196957
>>1196774
SICP.
Аноним 26/05/18 Суб 14:47:43  1197141
>>1188085 (OP)
А есть какая-нибудь короткая книжечка по фуллстэку без воды чтоб прочитать всё за 15 минут и научиться, ну, для тех кто умный такой?
Аноним 26/05/18 Суб 15:37:41  1197183
Ребятушки, помогите плес нубу. Суть в том, что пишу игру текстовую, очень простенькая. Вопрос, как эту хуйню запустить? https://repl.it/repls/WiryGrowingHexadecimal
Аноним 26/05/18 Суб 15:40:32  1197191
>>1197183
забыл. Суть игры в том. что она рандомно выбирает фигуру и рандомно присваивает параметры. Далее спрашивает у пользователя площадь и периметр. Должно быть, конечно, еще так, что если отвечают неправильно, но она прекращает работу, но я нихуя не понял как это сделать и хочу хотя бы ее запустить.
Аноним 26/05/18 Суб 16:41:26  1197243
>>1197141
Иди нахуй, если не осилил литературу в шапке глянуть.
>>1197183
> Game()
И что должно выполняться, по твоей логике?
Аноним 26/05/18 Суб 17:11:47  1197261
>>1197243
Я хз, мне нужно запустить выполнение функций из класса Game. Есть шанс это запустить?
Аноним 26/05/18 Суб 17:12:47  1197263
>>1196957
там же ЛИСП, не?
Аноним 26/05/18 Суб 17:29:25  1197267
image.png (375Кб, 720x903)
>>1196774
Аноним 26/05/18 Суб 17:50:26  1197272
>>1197261
> Я хз
> мне нужно
Может быть для начала хоть одну книжку по основам прочтёшь?
Даже если ты запустишь - оно не будет работать вообще никак. У тебя синтаксические ошибки там.
> функций из класса
> функция
> из класса
Ещё раз - читай литературу вначале.
Для запуска метода класса, нужно к нему обратиться, обращение делается через точку Game().StartSosat()
Аноним 26/05/18 Суб 18:31:45  1197290
>>1197272
Окей. понял. Буду курить литературу, спасибо, анончик.
Аноним 26/05/18 Суб 19:36:40  1197327
>>1197290
Не за что.
А тот код удали и напиши заново, соблюдая всякие PEP`ы и здравый смысл.
Аноним 26/05/18 Суб 20:26:32  1197347
Суп питонусы. Простой вопрос.
Есть список который нужно обработать.
Нужна функция которая будет обрабатывать этот список.

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

Меня интересует скорость таких подходов, влияет ли на скорость многократный вызов функции или нет? Если нет, то сделаю функцию для обработки одного элемента, а не списка, т.к. это гибче.
Аноним 26/05/18 Суб 20:34:53  1197349
>>1197347
map()
Аноним 26/05/18 Суб 21:51:44  1197370
>>1197349
И точно! С моим стремлением к однострочным выражениям странно, что я так редко использую map.
Аноним 26/05/18 Суб 22:08:52  1197380
s = ["asd","das","asdas"]
def ppp(x):
print(x)
map(ppp,s)

И какого хера оно ничего не показывает? Объясните тупому начинающему на пальцах
Аноним 26/05/18 Суб 23:21:21  1197404
Sup, петушки питонщики.
Ну ка поясните быстро по полочкам что бы я не перерывал гугл.
1) Норм 2D движок для реализации карточной игры
2) Норм GUI для Шиндос.
Писал давно и тогда были ебаные PyGTK и Tkinter. PyGame в принципе полностью устраивает меня для моих целей а вот интерфейс хотелось бы посимпатичнее так как вышеуказанные говно полнейшее. Отказываюсь верить что в 2018 все еще не делают красивый интерфейс на питоне и я не о PyQt.
Аноним 26/05/18 Суб 23:32:21  1197405
>>1197404
Tkinter, PyGTK, PyQT5
Аноним 27/05/18 Вск 09:23:30  1197535
>>1197370
Попробуй ещё распулить по ядрам через мультипроцессинговый аналог, сразу раза в 4 быстрее.
Аноним 27/05/18 Вск 11:12:07  1197595
Как реализовать графический редактор в GTK? Есть только DrawArea, в которой только и можно линии рисовать програмно.
Аноним 27/05/18 Вск 11:13:15  1197596
Никто не хочет совместно поучавствовать в соревнованиях kagel, попробовать свои силы в простых испытаниях, набить портфолио?
Аноним 27/05/18 Вск 11:19:51  1197601
Обновление is comming
https://blog.jetbrains.com/pycharm/2018/05/pycharm-2018-2-eap-1/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Pycharm+%28JetBrains+PyCharm+Blog%29
Аноним 27/05/18 Вск 11:20:56  1197602
>>1197596
Оставь фейкопочту, через две недели отпишу.
Аноним 27/05/18 Вск 11:21:55  1197604
>>1197602
Школьник, плез
Аноним 27/05/18 Вск 11:24:29  1197607
>>1197596
моя телега
@Valenso56
Пишите по делу и сразу пару строк о вашем бэке
Аноним 27/05/18 Вск 11:41:30  1197616
А как правильно обновлять питон, чтобы не проебать все установленные модули и не устанавливать всё заново по мере необходимости? Они ведь все лежат в директории определённой версии питона.
Аноним 27/05/18 Вск 11:57:42  1197622
>>1197616
Все через pip
Но не факт что не проебешь все, так как совместимости то нет.
Аноним 27/05/18 Вск 12:20:59  1197630
Как на Django правильно реализовать авторизацию через проверку auth_key из вк-приложения?
https://vk.com/dev/apps_init?f=3.%20auth_key

Где производить эту проверку?
Аноним 27/05/18 Вск 12:30:29  1197634
Есть ли смысл учить джангу в 2018-м?
Аноним 27/05/18 Вск 13:09:19  1197653
>>1197604
Хуёльник. Отпуск у меня.
Аноним 27/05/18 Вск 13:13:09  1197656
>>1197630
Есть же django social auth, там куча готовых виджетов для такого

>>1197634
Нет, учи JS-стэк
Аноним 27/05/18 Вск 13:21:49  1197662
>>1197653
Так теперь называют подготовку к ЕГЭ? Школоло, не агрись. Будет и на твлей улице проект. Готовься к экзаменам.
Аноним 27/05/18 Вск 13:28:59  1197669
>>1197662
Ох, зеленый у нас тут объявился
Молодец, продолжай
Аноним 27/05/18 Вск 13:32:28  1197672
>>1197669
Ну на хуй ты маняврируешь то? Дохуя взрослым хочешь показаться?
Аноним 27/05/18 Вск 13:38:50  1197676
>>1197672
Я не понимаю, схуяли ты доебался к тем двум неделям? С чего ты взял что у мен ЕГЭ?Я в принципе из беларахи и, у нас ЦТ Но тем не менее, я школку уже закончил, как и универ, а ты проецируешь свои фантазии на окружающих, пиздуй назад в /б/ к сородичам и там "тралль"
Аноним 27/05/18 Вск 13:50:20  1197677
image.jpeg (159Кб, 500x503)
>>1197676
Не указывай куда мне идти. Мне допизды как вы в potato republic называете ЕГЭ. Хорошо, я поверю, что у тебя 2 недели «отпуска» и ты закончил ВУЗ. А теперь успешный погромизд отъебись от меня.
Аноним 27/05/18 Вск 14:38:30  1197689
>>1197677
Напоминаю, что это ты ко мне доебался, унтерок
Аноним 27/05/18 Вск 14:40:20  1197691
>>1197689
Коммунист, отъебись от меня. Иди интернационал петь в центральном парке.
Аноним 27/05/18 Вск 14:56:06  1197694
>>1197656
>Нет, учи JS-стэк
Но я хочу стать питон-разработчиком, а aiohttp на hh упоминается только в вакансиях сеньоров с 200к+
Аноним 27/05/18 Вск 15:19:14  1197708
>>1197595
Бамп
Аноним 27/05/18 Вск 16:38:29  1197768
>>1197595
а че ты хочешь? Что бы всё готовенькое было? только симпортить и всё?
Аноним 27/05/18 Вск 17:07:49  1197796
>>1197768
Нет, я хочу знать как это вообще работает. Как получить координаты нажатия, например? Координаты при зажатии, в конце. Как сохранять одновременно и на холсте и в памяти чтобы работать с буфером обмена?
Аноним 27/05/18 Вск 17:51:44  1197831
>>1197694
Если нужно сделать обычносайт, то твой выбор лишь Django/Flask. Aiohttp тоже учи, но как дополнение, под узкие задачи, ну и в принципе его юзать вместо requests, если нужно делать много долгоиграющих запросов.
Аноним 27/05/18 Вск 18:12:03  1197848
>>1197796
Как раз вот, может там поинтересуйся:
https://www.reddit.com/r/Python/comments/8mhzzq/we_are_programming_a_game_in_tkinter_70done_and/
Аноним 27/05/18 Вск 21:26:44  1197972
Есть ли модуль для асинхронного ввода и обработки команд? Чтобы питон что-то там делал, выводил текст и так далее, а если я ввожу что-то, что ранее/в коде обозначено как команда, то некая функция вызывается. Доступа к переменным не нужно, этакий интерфейс для управления получается.
Я, конечно, могу и сам накостылять через треды или https://repolinux.wordpress.com/2012/10/09/non-blocking-read-from-stdin-in-python/ но хочется уже готовое и красивенькое, с историей, поиском, копи-пастом, автокомплитом, чтобы нормально передвижение курсора работало, отдельная строка для ввода и так далее.
Пилил такое на ЖСе себе, на питоне уже лень, хоть там и пара сотен строк всего был.

Сама задача: хочу запилить себе интерактивную обёртку над телнет либой с плюшками.
Аноним 27/05/18 Вск 21:27:45  1197974
Как скопировать и вставить любой файл из буфера обмена? Пытаюсь нагуглить способы, но там жуткая и не очень понятная ебля
Аноним 28/05/18 Пнд 00:20:33  1198062
>>1197974
win32clipboard
Аноним 28/05/18 Пнд 00:26:27  1198064
Джангоебы, хочу чтоб с админки можно было несколько фоток в модель заливать. Есть ли какой-нибудь гайд для нубов? Нашел такое, но чет не выходит -https://blog.rousek.name/2017/08/11/uploading-multiple-files-in-django-admin/
Аноним 28/05/18 Пнд 00:27:32  1198065
>>1198062
Да, только из говна и палок там можно сделать работу с текстом. А вот как работу с файлами организовать - вообще не получается
Аноним 28/05/18 Пнд 04:52:44  1198117
Го меряться, наконец статистика подъехала:
http://pepy.tech/
Аноним 28/05/18 Пнд 05:01:03  1198118
>>1198117
А вот, кстати, и применение подобной няши(не так давно поднималась тема типизации такой) на практике(выглядит непривычно):
> def find_random_projects(self, nr_items: int = 10) -> List[Project]:
https://github.com/psincraian/pepy
Аноним 28/05/18 Пнд 05:14:52  1198120
>>1198118
бесполезная хрень.
Аноним 28/05/18 Пнд 07:39:11  1198129
Вызываю в отдельном треде через subprocess.run баш-скрипт, в котором после некоторых манипуляций с именами переменых и ffprobe'а вызывается ffmpeg, выдирающий первый кадр из видео (в ffmpeg ссылка передаётся).
Всё работает прекрасно, кроме того, что почти всегда после вызова питоньего скрипта ломается терминал: нажатие enter'а не переносит на новую строку, а добавляет "user@host:path $" на ту же, введённый текст не отображается, а нажатие стрелки вверх не показывается предыдущую команду (хотя если нажать enter, то она выполнится).
Что и где ломается? Упрощённо выглядит примерно так: https://pastebin.com/C9NQvEV4
Аноним 28/05/18 Пнд 10:17:20  1198165
Двач, выручай!
Как в этой задаче считать входные данные?
http://pythontutor.ru/lessons/lists/problems/kegelbahn/
Аноним 28/05/18 Пнд 10:30:41  1198167
>>1198065
Файл в буфере обмена это на самом деле текстовый путь до этого файла, так что не вижу проблем.
>>1198129
>Вызываю в отдельном треде через subprocess.run баш-скрипт
В отдельном процессе
>после вызова питоньего скрипта ломается терминал
А если запустить башскрипт, то такого не происходит?
>stdout=subprocess.PIPE
Зачем это?
Вообще, что тебе в итоге нужно получить? Только скриншот?
Аноним 28/05/18 Пнд 12:27:12  1198220
>>1198167
> не вижу проблем.
А можно пример тогда?
Аноним 28/05/18 Пнд 12:54:41  1198231
>>1198220
Мне лень качать, устанавливать и запускать винду в виртуалке ради этого.
Скопированный в буфер обмена файл - это не весь файлик, выгруженный в оперативку, это только строка вида "file:///path/to/file"
Соответственно, если тебе нужно с указанным файлом что-то сделать - делаешь сплит по 3 слешам, берешь 1-й элемент массива. А дальше что тебе нужно сделать - ты не сказал.
Аноним 28/05/18 Пнд 12:56:26  1198232
Для любой операции с файлом тебе нужен либо путь (желательно абсолютный), либо открытый файловый объект.
Путь у тебя есть, что тебе еще нужно?
Аноним 28/05/18 Пнд 13:02:04  1198235
>>1198167
>В отдельном процессе
Не, я в отедельном треде запускаю отдельный процесс :3 и дожидаюсь прямо там его выполнения. Их 50 штук просто, а сетевых запросов много. В питоне жонглировать Popen'ами как-то было лень, вот и въебал тредов.

>А если запустить башскрипт, то такого не происходит?
Нет. Проблема именно в использовании stdout/stderr. Я там забыл упомянуть, в ffprobe 2>&1, а в ffmepg 2>/dev/null ещё присутствуют, но это так-то только на одну команду же должно распространятся в любом случае.

>stdout=subprocess.PIPE Зачем это?
А, ну там в конце echo $out_filename ещё делается, мне его захватить надо.

>Вообще, что тебе в итоге нужно получить? Только скриншот?
Да, получить скриншот (названный по длительности видео) и его имя (путь к файлу) для дальнейшей работы.


Я и ранее встречался с подобной поломкой текущей вкладки/сессии терминала, и тоже к субпроцессами было связано, где-то какой-то поток не закрывается правильно, видимо.
Аноним 28/05/18 Пнд 13:35:25  1198250
Есть два модуля и основная программа, к которой эти модули привязаны. Программа и два модуля имеют 3 разных окна. Сами модули и программа работают, но не в том порядке: сначала действуют два модуля и только в конце основная программа. Как задать порядок программа-модуль1-модуль2? Просто при запуске файла сразу начинает работать модуль1, а основная программа действует лишь после двух модулей и из-за этого не несёт никакого смысла.
Аноним 28/05/18 Пнд 14:12:41  1198260
Решил вкатится в питонпрограмиринг. Пошел по гайду, судя с статьи на хабре стоит начинать с лутца 4 издания питонг лернинг.
Так вот само издание вышло в 2009г, статья с хабра 2013. Уже есть 6 издание, не лучше начать с него. Или особой разницы нет?
Аноним 28/05/18 Пнд 14:45:58  1198274
>>1198231
Мне бы его скопировать в другую дерикторию
Аноним 28/05/18 Пнд 15:11:01  1198294
>>1198250
Что за поток сознания?
Как ты запускаешь всё?
Код неси.
>>1198260
Нет. Ты всё равно не прочтёшь и забьёшь хуй.
Аноним 28/05/18 Пнд 15:44:07  1198313
>>1198294
program.py
from tkinter import
import module1
import module2
def b5():
return module1
def b6():
return module2
root = Tk()
root.title("Семён оказался на мели")
root.geometry("380x250")
btn4 = Button(text="Семён пошёл на работу", command=b5)
btn5 = Button(text="Семён остался дома", command=b6)
btn4.pack()
btn5.pack()
root.mainloop()

module1.py
from tkinter import

def b1():
label = Label(text="Семён win")
label.place(relx=.2, rely=.3)
return label

def b2():
label1 = Label(text="Семён fail")
label1.place(relx=.2, rely=.3)
return label1

root1 = Tk()
root1.title("Семён работает")
root1.geometry("380x250")
btn = Button(text="Семён работал усердно", command=b1)
btn1 = Button(text="Семён ленился", command=b2)
btn.pack()
btn1.pack()
root1.mainloop()

module2.py
from tkinter import *
def b3():
label2 = Label(text="Семён win")
label2.place(relx=.2, rely=.3)
return label2

def b4():
label3 = Label(text="Семён fail")
label3.place(relx=.2, rely=.3)
return label3

root2 = Tk()
root2.title("Семён остался дома")
root2.geometry("350x280")
btn2 = Button(text="Семён стал мангакой", command=b3)
btn3 = Button(text="Семён воровал еду", command=b4)
btn2.pack()
btn3.pack()
root2.mainloop()



Аноним 28/05/18 Пнд 16:42:09  1198361
>>1198313
Ебать ты шутник.
На Pastebin лей.
Аноним 28/05/18 Пнд 16:44:28  1198363
>>1198313
Ты сделал какое-то говно. Ты запускаешь три разных ткинтера, три разных мейнлупа. Если тебе нужно несколько окон, то погугли, как это сделать.
Аноним 28/05/18 Пнд 18:35:25  1198420
>>1198313
И насчёт
>def f(): return module1
Это хуета несусветная. На строке
>import module1
У тебя уже исполняется весь файл.

Запихни всё, что в глобале из модулей в функцию и вызывай её когда надо. Того, что у тебя хуёвая архитектура это не отменяет.
Аноним 28/05/18 Пнд 18:46:49  1198426
>>1198363
Мне бы всё наоборот в одном окне, но не знаю, как сделать.
Аноним 29/05/18 Втр 08:16:13  1198651
>>1197831
А чем плох асинхронный пул реквестов?
у вашей обсосанной aiohttp совместимости с более старыми версиями нет из-за того что какой-то дятел решил ввести типизацию нерабочую
Аноним 29/05/18 Втр 11:24:10  1198739
>>1195183
automating boring stuff
Аноним 29/05/18 Втр 15:43:40  1198880
>>1198129>>1198167
Хех, пока решал другие проблемы случайно нашёл, как воспроизвести синдром: перевести stdin в raw режим:
>import sys
>import tty
>tty.setraw(sys.stdin)
И будет достигнут тот эффект, который я описывал.

Ну а дальше мысль легко пошла: ffmpeg же действительно имеет интерактивный режим (по-дефолту), видимо и менявший режим stdin'а, но почему-то не возвращавший его назад. Добавил -nostdin в вызов и всё стало окей. Спасибо мне.
Аноним 29/05/18 Втр 17:29:15  1198937
А перекат-то будет?
Аноним 30/05/18 Срд 09:33:41  1199271
ньюфажный вопрос, не кидайтесь говном:
for i in list:
list[i+1] = 'какая-то хуйня'
Выйдет string index out of range, конечно. Как без лишних if по достижению конца списка перейти в начало списка? Чтобы list[0] = 'какая-то хуйня'
Аноним 30/05/18 Срд 09:40:10  1199273
>>1199271
У тебя i принимает значения из списка, если что
Аноним 30/05/18 Срд 09:58:51  1199282
>>1199273
Ладно, я имел в виду вот что:
for i in range(len(list)):
if list[i+1] == 'какая-то хуйня':
list = 'такая-то хуйня'
Мне нужно, чтобы последний элемент менялся, если выполнено условие для первого элемента.
Аноним 30/05/18 Срд 09:59:08  1199283
>>1188085 (OP)
Есть тут аноны, которые шарят в pyqt?
Добавляю в qgridlayout n-ое количество кнопок,на определённые позиции, после чего мне нужно удалить их и добавить столько же на те же самые позиции, но после удаления кнопок, визуально они стоят где надо, но их индекс в qgridlayout стал выше
Например у меня поле было из кнопок 4 на 4, индекс левой верхней = 0, после удаления и добавления новых кнопок её индекс стал 4/8/хуй пойми какой. Уже второй день ебусь и не могу понять что не так(дебагером прошёлся, удаляю все кнопки)
Кто-нибудь с подобным сталкивался?
Аноним 30/05/18 Срд 10:41:39  1199293
>>1199282
for i in range(len(list)):
if list[i + 1] == 'одна штука':
list[-1] = 'другая штука'

Ты это имеешь в виду?
Аноним 30/05/18 Срд 10:45:18  1199294
>>1199293
бля, опять проебался.
Вот:
for i in range(len(list)):
if list[i+1] == 'какая-то хуйня' and list[i-1] == 'какая-то хуйня':
list = 'такая-то хуйня'
Аноним 30/05/18 Срд 10:46:46  1199295
>>1199293
Фу, черт, как ты первую строку переписал.
Ну и это, ты бы лучше спискам имя list не давал
Аноним 30/05/18 Срд 10:53:24  1199298
>>1199295
Я не называю списки listами, естественно. У меня там вообще матрица.
Аноним 30/05/18 Срд 11:26:11  1199306
>>1199271
>Как без лишних if по достижению конца списка перейти в начало списка?
lst[(idx+n) % len(lst)]

Можешь ещё обратить внимание на itertools.cycle, но это не совсем подходит для твоей задачи присвоения значений.

Теоретически, если тебе нужно только одина раз зациклить, можно схитрить и обходить в обратном порядке, тогда отрицательные индексы как раз зациклят https://repl.it/repls/SpicyAdvancedRectangle

>>1199294
на последнем элементе i+1 же эксепшн вызовет, нужно range(len(lst)-1).
Аноним 30/05/18 Срд 14:17:27  1199397
image.png (118Кб, 350x151)
>>1199306
>lst[(idx+n) % len(lst)]
Бля, вот оно! Спасибо, братуха, от души!
Аноним 30/05/18 Срд 15:29:33  1199435
def add(n):
if n == 0:
return 1
return add(n - 1) + add(n - 1)

анонуши, обьясните принцип работы этой функции плес. Нихуя не могу понять как он возвращает значение, почему тут не получается бесконечное количество операций?
Аноним 30/05/18 Срд 15:30:53  1199436
>>1199435
def add(n):
...if n == 0:
......return 1
...return add(n - 1) + add(n - 1)
Аноним 30/05/18 Срд 15:34:32  1199438
>>1199436
>return add(n - 1) + add(n - 1)
вот конкретно тут, что он возвращает?
Аноним 30/05/18 Срд 16:13:43  1199458
>>1199438
>вот конкретно тут, что он возвращает?
add(n-2)2 + add(n-2)2"

Почитай про рекурсию, добавь print(n) в начало функции и вызови её, посмотри, что происходит.
Аноним 30/05/18 Срд 16:14:08  1199459
>>1199458
Там умножить на два было. Но это всё равно шутеечка, не обращай внимания.
Аноним 30/05/18 Срд 16:16:59  1199460
>>1199458
смотрел. Я правильно понимаю, что в итоге функция возвращает количество сложенных единиц от >in f == 0: return 1 ?
Аноним 30/05/18 Срд 18:22:00  1199524
Тупой (w. Пахом[...].webm (12191Кб, 560x420, 00:04:52)
Так блять, что-то я запутался с __hash__ и мутабельностью.

Вот есть к меня мутабельный класс.
Внезапно, по-дефолту он является хешируемым, наследует object.__hash__, который насколько я понимаю что-то вроде return hash(id(self)).
Это нормально что мутабельный класс является хешируемым и может например в качестве ключей dict'а использоваться?
Аноним 30/05/18 Срд 18:38:04  1199530
>>1199524
Аноны есть ли у кого нормальная инструкция по деплою FLASK +nginx +uwsgi максимально простая?!?
Аноним 30/05/18 Срд 18:40:49  1199531
https://2ch.hk/pr/res/1182179.html#1182179
https://2ch.hk/pr/res/1188085.html#1188085
Аноним 30/05/18 Срд 19:22:19  1199566
>>1199460
>количество сложенных единиц от >in f == 0: return 1 ?
Нихуя не понял, что это значит, но в развёрнутом виде да, там будет какое-то количество "1+1"-ов.

add(3) = add(2) + add(2)
add(2) = add(1) + add(1)
add(1) = add(0) + add(0)
add(0) = 1
=>
add(3) = add(2) + add(2) = (add(1) + add(1)) + (add(1) + add(1)) = ((add(0) + add(0)) + (add(0) + add(0))) + ((add(0) + add(0)) + (add(0) + add(0))) = ((1 + 1) + (1 + 1)) + ((1 + 1) + (1 + 1)) = 8.
Аноним 31/05/18 Чтв 00:04:41  1199757
>>1199566
ну да. это и имел ввиду. Получается что ((1 + 1) + (1 + 1)) + ((1 + 1) + (1 + 1)) исходят от >in f == 0: return 1. вот я до этого не мог допереть. Спасибо. анон
Аноним 31/05/18 Чтв 00:05:48  1199759
>>1199757
только начал учить пайтон, еще мозги не мыслят как надо. До этого был гуманитарий до мозга костей.
Аноним 31/05/18 Чтв 05:26:49  1199815
Вообще я перекатами не занимаюсь, но т.к. больше никто перекатить не желает - перекатил я:
>>1199814 (OP)
>>1199814 (OP)
>>1199814 (OP)
>>1199814 (OP)
>>1199814 (OP)
Аноним 31/05/18 Чтв 09:16:05  1199846
вопрос к каноничному пайтон анону.
есть ли какие предписания, сколько методов, функций следует объединять в один класс?
Аноним 31/05/18 Чтв 10:45:04  1199878
Настоящий перекат, если что:
>>1199534 (OP)
Аноним 04/06/18 Пнд 12:11:33  1202493
Ищу человека, шарящего в Python для помощи ньюфагу в его работах. Телега: @bitardtg.
Аноним 05/06/18 Втр 14:13:07  1203302
>>1199282
итерируй по два или сколько тебе нужно элемента за раз

не изменяй список в цикле, а создавай новый
Аноним 06/06/18 Срд 19:07:25  1204156
Хелп, вообще не ставятся пакеты в Питоне с помощью pip из-за того, что у меня имя пользователя (и папка пользователя) на 10 сперме на кириллице, не ставятся ни скачанные самостоятельно, ни скачанные pip, везде ошибка при установке из-за вышеуказанной проблемы. Как избежать этих проблем без смены имени пользователя и имени папки (пару раз таки удавалось пакет поставить даже с этим, но это чудо было просто)?
Аноним 06/06/18 Срд 21:20:45  1204242
>>1204156
не вижу связи... поставь питон в C:\PYTHON и пакеты будут ставиться туда... не в %USERPROFILE% дело как мне кажется
Аноним 07/06/18 Чтв 09:18:24  1204456
>>1204242
У меня конкретно ошибку из-за папки с названием на кириллице выдаёт, да и на форуме говорят, что в этом у многих проблема и этим вызвана эта ошибка.
Аноним 07/06/18 Чтв 09:54:09  1204465
>>1204242
Всё, переустановил на жёсткий диск, отлично работает.


Топ тредов
Избранное