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

Питон тред №100 /python/

 Аноним 11/09/20 Птн 18:02:05 #1 №1803801 
image.png
image.png
image.png
image.png
Тред, посвящённый языку программирования Питон, #100

Предыдущий: >>1793243 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.

https://dumpz.org/bASGKD8cCFDf
Аноним 11/09/20 Птн 19:21:00 #2 №1803847 
image.png
>tells everyone that Python takes name from 'Monty Python' and has no relation with snakes
>proceeds to make a snake alike logo
Аноним 11/09/20 Птн 20:09:17 #3 №1803867 
роад мапы 2019-2020 на веб разработку (бек) по питону остались у кого?
дайте ссыль
Аноним 11/09/20 Птн 20:15:53 #4 №1803871 
Стал разработчиком.
Денег платят в два раза больше.
Все равно не хватает, потому что все тратишь на алкоголь и психотерапевта.
Какая же стрессовая работа, яебал.
Аноним 11/09/20 Птн 20:16:28 #5 №1803873 
>>1803867
let me google that for you...
Аноним 11/09/20 Птн 20:16:56 #6 №1803876 
>>1803871
А сколько платят то что юзаешь психа?
Аноним 11/09/20 Птн 20:18:50 #7 №1803877 
>>1803876
Переведи на русский.
Аноним 11/09/20 Птн 20:30:43 #8 №1803884 
>>1803877
Мани скок дают чтобы оплачивать беды с башкой?
Аноним 11/09/20 Птн 20:34:22 #9 №1803887 
>>1803884
ДМС только дают, и тот 15к в год, давно потратил. А так с зарплаты.
Аноним 11/09/20 Птн 20:45:37 #10 №1803894 
>>1803887
Этот инвалид пытается у тебя спросить, какая у тебя з/п. Но ему тяжко это даётся
Аноним 11/09/20 Птн 20:49:18 #11 №1803898 
>>1803894
Ну его все равно не впечатлит. Я ж не в ДС, а в дальнем регионе.
Аноним 11/09/20 Птн 20:49:35 #12 №1803899 
>>1803894
Я просто мимо заметил что он до формулировки докопался.
Аноним 11/09/20 Птн 21:51:39 #13 №1803958 
b0a2649e6ad88e54eff7b808e7373d41.jpg
> з/п
> ДС
> Мани скок
> юзаешь
Аноним 11/09/20 Птн 21:53:57 #14 №1803960 
>>1803958
>картинки с устаревшими мемами форчана
Ты забыл еще.
Аноним 12/09/20 Суб 00:05:34 #15 №1804055 
О, так это же юбилейный тред.
Ну, ура!
Аноним 12/09/20 Суб 04:42:54 #16 №1804135 
pycharm64HDLcWEVvsH.png
chromem52r1BB4Je.png
pycharm64uHtkBPBuk2.png
Джангисты, 1 пик вьюха, 2й пик результат, 3 пик темплейт, почему не выводится имя автора статей? Чет не могу понять, что не так делаю
Аноним 12/09/20 Суб 04:44:23 #17 №1804136 
image.png
>>1804135
Думал, что проблема в pk, но в шеле все работает же
Аноним 12/09/20 Суб 04:47:18 #18 №1804137 
>>1804135
>>1804136
Блядь, сори, все, я долбоеб, как обычно стоило спросить, и то, над чем бился 30 минут становится очевидным
Аноним 12/09/20 Суб 08:07:59 #19 №1804159 
Анончики посоветуйте плис
Желательно пошагово
Какие задачи решать если можно сслыки чтобы качать скил
И какие проекты писать, начиная от самого простого и сложного, чтобы вкатиться макс комфортно.
И чтобы набивать портофолио, что нужно чтобы уже было написано, чтобы удивить РАБотодателя.
От себя - уже знаю синтаксис, про ооп, смотрел пару курсов пробовал до конца дочитать лутца, но нет, укус битон - да, по часу всего на ютабе - вообще вот он я.
Аноним 12/09/20 Суб 09:06:19 #20 №1804182 
https://conf.python.ru/moscow/2020/abstracts
Шо там за платная конференция?
Спизженные видео будут?
Интересно было бы послушать некоторых
Аноним 12/09/20 Суб 09:43:21 #21 №1804205 
>>1803873
Ну че там? Полсуток уже прошло... Оч надо.
Аноним 12/09/20 Суб 09:45:28 #22 №1804208 
>>1804159
>Какие задачи решать если можно сслыки чтобы качать скил
edabit.com
Аноним 12/09/20 Суб 13:13:58 #23 №1804329 
Пользуетесь ли вы в процессе разработки блок-схемами? Ну или вообще какими-нибудь визуализациями структуры проекта, моделей бд итд?
Аноним 12/09/20 Суб 13:50:06 #24 №1804354 
>>1804329
Да.
Аноним 12/09/20 Суб 14:20:29 #25 №1804381 
>>1804329
Гугли системный анализ.
Аноним 12/09/20 Суб 19:57:18 #26 №1804629 
>>1804329
>Пользуетесь ли вы в процессе разработки блок-схемами?
Нет.
>Ну или вообще какими-нибудь визуализациями структуры проекта, моделей бд итд?
Без задней мысли сразу начинаешь фигачить заготовки классов. Для начала продумываешь интерфейсы, а тела методов оставляешь пустыми с пометкой TODO.
Аноним 12/09/20 Суб 21:01:39 #27 №1804703 
>>1803867
Так хули там.
Линупс+веб фрейморк+веб сервер+БД+докер
Аноним 12/09/20 Суб 21:04:59 #28 №1804710 
>>1804329
Да, для себя, перед началом работы, визуализирую схему работы системы, продумываю на схеме различные варианты. Рисую модели БД в pony orm эдиторе, эту схему скриню и в документацию пихаю. Иногда просят обрисовать общую схему работы, тогда иду в Фигму и рисую общую блок-схему.
Аноним 12/09/20 Суб 23:41:22 #29 №1804835 
https://docs.djangoproject.com/en/3.1/ref/models/expressions/#f-expressions
Почему F работает не так как в документации? Написано, что можно применить выражение к уже полученному объекту, но в итоге оно выдает ошибку, что я пытаюсь сложить инт и CombinedExpression, хотя запись в БД обновляет. Но если вместо готового объекта применить это на кверисет от фильтра через апдейт - все нормально без каких либо ошибок, я что-то не так понял?
Аноним 12/09/20 Суб 23:50:01 #30 №1804842 
>>1804835
Упустил моент с релоадом объекта
Аноним 13/09/20 Вск 01:55:59 #31 №1804878 
image.png
image.png
Аноны, объясните, чяднт (пик 1). Модели пик 2. Делаю вьюху для отображения отдельной статьи, чтобы сделать ее автора кликабельным нужно получить его айди, зная статью, чет нихуя не получается пока
Аноним 13/09/20 Вск 01:57:30 #32 №1804879 
>>1804703
да ет понятно, мне бы с материалами по этим темам актуальные.
что почитать,где посмотреть и так далее.
Аноним 13/09/20 Вск 11:16:18 #33 №1805059 
Аноны, есть какой-то гайд про проф. версии пучарма для джанги? А то мне говорили, что он там какой-то охуеть волшебный, дебажит темплейты, видит все референсы на всякую внутреннюю джанговскую хуйню, а я пока из разницы заметил только то, что он при стайлинге в хтмле цвета выносит влево как брейкпоинт.
Аноним 13/09/20 Вск 12:42:16 #34 №1805098 
>>1804878
Во-первых, если у тебя a это объект типа Author, то тебе нужен просто а.id

Во-вторых, если a это объект типа Artclie, то тебе в твоем случае нужен article_author_id

В-третьих, зачем тебе приставка article_ в полях? Тебе названия модели мало?
Аноним 13/09/20 Вск 13:41:27 #35 №1805139 
image.png
image.png
>>1805098>>1805098
>Во-вторых, если a это объект типа Artclie, то тебе в твоем случае нужен article_author_id
А можешь эту хуйню чуть подробнее пояснить? А то я сделал какой-то адовый костыль в итоге чтобы получить айди автора, вот, глянь на пик с темплейтом, (в authors у меня лежит Authots.objects.all()). Причем обрати внимание, внизу закоменченная строка blog.article_author.id, она тоже дает айди автора, но я не понимаю почему, ведь у меня в blog только поля статьи, и в поле с автором статьи в модели статьи нет айди, а только его имя. Бля, наверное хуево поясняю, приложу еще вьюху 2м пиком, если вдруг тебе не впадлу ответить
>В-третьих, зачем тебе приставка article_ в полях? Тебе названия модели мало?
Увидел у какого-то чела на ютубе (sentdex вроде, или как-то так, и показалось удобно
Аноним 13/09/20 Вск 14:59:18 #36 №1805208 
У меня тупой вопрос:
Что можно писать на питоне? Ну вот джава для веба предназначена, сшарп для программ, а нахуй питон нужен? Чё с ним делают вообще?
Аноним 13/09/20 Вск 15:01:08 #37 №1805212 
>>1805208
и в чём его профит, кроме охуенного синтаксиса
Аноним 13/09/20 Вск 15:23:44 #38 №1805232 
Screenshot 2020-09-13 at 17.22.11.png
Screenshot 2020-09-13 at 17.22.19.png
Пожалуйста объясните логику этого вывода.
Аноним 13/09/20 Вск 15:29:30 #39 №1805238 
>>1805232
в if происходит неявный каст в bool
а по правилам питона пустая строка это False
Аноним 13/09/20 Вск 15:29:38 #40 №1805239 
>>1805232
if использует метод __len__
Аноним 13/09/20 Вск 15:29:49 #41 №1805240 
>>1805212
в батарейках же
Аноним 13/09/20 Вск 15:30:50 #42 №1805241 
Screenshot 2020-09-13 at 17.30.23.png
>>1805238
Нет
Аноним 13/09/20 Вск 15:31:57 #43 №1805243 
>>1805239
Вот это уже похоже на правду.
Аноним 13/09/20 Вск 15:46:16 #44 №1805257 
>>1805240
?
Аноним 13/09/20 Вск 16:18:30 #45 №1805291 
>>1805257
в модулях на все случаи жизни
Аноним 13/09/20 Вск 16:22:51 #46 №1805294 
>>1805241
мы вам перезвоним
читай чем __bool__ от __eq__ отличается
DJANGO AJAX Аноним 13/09/20 Вск 16:54:22 #47 №1805322 
image.png
image.png
Кто пробовал в джангу отправлять аякс-запросы с обычного джаваскрипта без библиотек?

>Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource.
(Reason: CORS request did not succeed).

Насколько я понял, тут ошибка с csrf токенами.
Можно ли отключить эту хуиту?

Импортировать crsf_exempt пробовал, в settings Middleware комментировал. Ничего не выходит.
Или средствами самого джанго аякс-запросы не отсылаются, и надо ещё какие-то библиотеки устанавливать?

Аноним 13/09/20 Вск 17:07:08 #48 №1805335 
>>1805322
наскока я знаю сервак должен разрешать cors, во фласке там экзепляр приложухи оборачиваешь в cors а в жанго хз, погугли django rest cors
Аноним 13/09/20 Вск 17:16:16 #49 №1805339 
Hello from Selenium
Аноним 13/09/20 Вск 17:27:33 #50 №1805346 
>>1805339
Yippee-ki-yay, mothefucka
Какого хуя, анон? [mailto:[email protected]Только учусь. 13/09/20 Вск 17:54:38 #51 №1805366 
Image 117.png
Эта трабла ебучая, происходит, уже хуй пойми сколько. И не только аойкой. С овм и другими модулями та же хуйня. Path, настроен. Что посоветуете?
Аноним 13/09/20 Вск 17:56:13 #52 №1805369 
1435675889246644930.jpg
пишу в терминал на мак каталина
$ python3 --version
мне в ответ 3.8.3

а если писать
$ brew info python
то мне в ответ stable 3.8.5

Почему, блядь?
Аноним 13/09/20 Вск 18:02:46 #53 №1805381 
>>1805369
два интерпретатора питон стоит и разные ссылки на них
Аноним 13/09/20 Вск 18:25:49 #54 №1805415 
>>1805381
А как это пофиксить?
я только вкатываюсь
Аноним 13/09/20 Вск 18:27:29 #55 №1805421 
>>1805415
Ты с нуля?
Аноним 13/09/20 Вск 18:38:09 #56 №1805433 
>>1805421
да
ну с терминалом разбираюсь по-тихонечку сижу, накатил дебиан в виртуалбоксе
Аноним 13/09/20 Вск 18:48:28 #57 №1805449 
>>1804878
Так там же нужнл просто id а не author_id
Аноним 13/09/20 Вск 19:16:13 #58 №1805492 
>>1805366
venv
Аноним 13/09/20 Вск 19:47:48 #59 №1805521 
halp-meo1886785.jpg
>>1805421
Аноним 13/09/20 Вск 20:13:19 #60 №1805547 
Помогите плиз:
https://dumpz.org/bBq2qrRBF4wK

метод get_username() чуть сложнее чем в примере.
Наверное это говнокод и можно сделать иначе, но я не знаю как.
Аноним 13/09/20 Вск 20:34:48 #61 №1805579 
>>1805547
А синхронный init не плюнет экспешеном из-за того что у тебя в нем await?
Аноним 13/09/20 Вск 20:35:18 #62 №1805581 
>>1805433
>накатил дебиан в виртуалбоксе
а чо не в контейнере?
Аноним 13/09/20 Вск 20:35:44 #63 №1805582 
>>1805579
В этом и проблема что я не знаю как запустить этот метод без await.
Аноним 13/09/20 Вск 20:43:41 #64 №1805590 
>>1805582
А то что ты не передаешь id при создании User это шо такое?
Аноним 13/09/20 Вск 20:44:49 #65 №1805591 
>>1805590
id каждого юзера в вк, и через апи получаю и сохраняю его имя
Аноним 13/09/20 Вск 20:46:49 #66 №1805592 
>>1805591
class User:
def __init__(self,id):

user = User()

Я про это
Аноним 13/09/20 Вск 20:47:31 #67 №1805594 
>>1805592
а бля. накосячил. у меня есть лист из юзеров и я передаю конечно этот id
Аноним 13/09/20 Вск 21:40:37 #68 №1805641 
>>1805232
При считывании условия:
- пустая строка => фолс
- нулл => фолс
- 0 => фолс
- фолс => фолс
Аноним 13/09/20 Вск 21:42:05 #69 №1805642 
>>1805641
>нулл
Нан, простите.
Аноним 13/09/20 Вск 22:01:44 #70 №1805661 
image.png
>>1805335
>>1805322
Спасибо. Вот такой ответ оказался.
https://stackoverflow.com/questions/36844101/how-to-pass-django-csrf-token-in-ajax-without-jquery
Аноним 13/09/20 Вск 23:21:25 #71 №1805708 
Какой самый простой и удобный способ вывести все возможные пермутации?
Аноним 13/09/20 Вск 23:24:00 #72 №1805710 
В общем, такое дело. Есть плевая задача ради которой не хочется поднимать селери.

Что имеем: django==2
Чего не имеем: брокер сообщений

Что нужно сделать? Отправить на сервис запрос, в ходе которого также должно отправиться письмо пользователю. Времени ждать, пока отправка запросу сервису рассылки писем выполнится, - нет.

Первое что приходит в голову - завести селери, отправлять заду в нее.
Но ради такой ерунды не хочется подниматься селери.

Вопрос - можно ли как-то с помощью тредов/корутин реализовать это дело, в рамках запроса?
Аноним 13/09/20 Вск 23:41:27 #73 №1805720 
>>1804878
1) убери приставки названий моделей у полей
2) чтобы получить id автора - достаточно просто обратиться к полю,и указать нужный атрибут "id".

Например

article = Article.objects.first()
author_id = article.article_author.id

либо

Article.objects.filter(article_author_id=id_number)


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

https://docs.djangoproject.com/en/3.1/ref/models/querysets/#prefetch-related
Аноним 14/09/20 Пнд 00:09:21 #74 №1805737 
>>1805521
Хочешь вместе вкатывать?
Аноним 14/09/20 Пнд 00:10:06 #75 №1805738 
>>1805710
в качестве брокера можешь редиску юзать, redis queue
Аноним 14/09/20 Пнд 00:12:04 #76 №1805740 
>>1805521
я уж думал ты нагугли чего нить, ищи path env и чекни не состыковки в них, либо удоли старый питон и оставь свежий
Аноним 14/09/20 Пнд 00:12:55 #77 №1805741 
как отправить post multipart/form с json?
Аноним 14/09/20 Пнд 00:26:41 #78 №1805747 
>>1805738

Вопрос и был в том - можно ли тут обойтись без брокеров?
Аноним 14/09/20 Пнд 00:38:10 #79 №1805752 
>>1805710

Блииин, да это же можно на сигналах реализовать. Как я сразу-то не допер...
Аноним 14/09/20 Пнд 01:59:33 #80 №1805794 
>>1805720
Блин, я только сейчас понял, т.е. article.article_author это не просто имя автора, а прям целиком автор со всеми полями, так? А я начал кучу доп. запросов всратых лепить, получать всех авторов и сравнивать имена. Спасибо, стало понятнее
Аноним 14/09/20 Пнд 08:47:31 #81 №1805849 
>>1805737
это как?
Аноним 14/09/20 Пнд 09:08:20 #82 №1805852 
>>1805849
extreme programming


мимо
Аноним 14/09/20 Пнд 09:11:23 #83 №1805857 
image.png
Аноны, помогите с редиректом в джанге плз. Вот когда на вьюху вешаешь декоратор @login_required он тебя не просто на страничку с логином кидает, а делает юрл такого вида (пикрил). Т.е. после того, как залогинишься он тебя отправляет на страничку, с которой ты попытался залогиниться, а не на захардкоженную.

https://stackoverflow.com/questions/806835/django-redirect-to-previous-page-after-login вот тут вроде примерно о том, но я если честно нихуя тут не понял. Может кто-то помочь тупому? Уже и доки читал, и стаковерфлоу, так нихуя и не понял
Аноним 14/09/20 Пнд 10:31:49 #84 №1805917 
>>1805547
Вроде как, делают через метод класса, вот примерно так: https://pastebin.com/S3MQjarF
>>1805857
Что конкретно у тебя не получается?
Аноним 14/09/20 Пнд 11:26:33 #85 №1805959 
image.png
image.png
>>1805917
>Что конкретно у тебя не получается?
Не понимаю что куда совать.
Я если что этот анон:
>>1805139
>>1804878
Вот моя вьюха и темплейт, я не понимаю что куда и как совать, чтобы заработало.

<form method="post" action="./?next={{ redirect_to }}"> вот это например куда совать вообще? По идее в форму, но где, если я дефолтную джанговскую юзаю для логина. Тяжело поверить, что нельзя сделать нормальный редирект с дефолтной формой.

<a href='/login/?next={{ request.path }}'>Login</a> вот это вообще хуй знает куда пихать, ну и главное, я не хочу бездумно копипастить, даже если оно заработает, и я так и не нашел, где бы в доках это нормально описывалось. Смотрел в доках по авторизации, по формам, еще каким-то. Может я совсем тупой, и сам не понимаю, что мне надо...
Аноним 14/09/20 Пнд 11:37:58 #86 №1805978 
image.png
>>1805959
ну и офк уже пробовал просто
<a href='/login/?next={{ request.path }}'>Login</a> подставить в сайдбар,
<form method="post" action="./?next={{ redirect_to }}"> впихнуть в темплейт для логина
и вьюху изменить как пикрил, хуй (это к вопросу про бездумно копипастить)
Аноним 14/09/20 Пнд 12:28:00 #87 №1806050 
>>1805369
Удали старый питон. Или вообще оба удали и заново поставь.
Аноним 14/09/20 Пнд 12:30:38 #88 №1806055 
>>1805959
><form method="post" action="./?next={{ redirect_to }}"> вот это например куда совать вообще?
Скорее всего никуда. Потому как в форме логина у тебя есть скрытое поле с "next", что и есть твой redirect.
><a href='/login/?next={{ request.path }}'>Login</a> вот это вообще хуй знает куда пихать
Скорее всего никуда. Потому как декоратор @login_required должен делать это за тебя.
>Может я совсем тупой, и сам не понимаю, что мне надо...
У тебя вполне обычная реакция. В такие моменты лучше отвлечься, чаю попить и все такое.
>я не хочу бездумно копипастить
Ок. Давай попробуем подумать как это все должно работать:
1. Пользователь жмёт на ссылку, запрос идёт во вьюху, где его проверяют на авторизацию.
2. Если он не авторизован, то декоратор @login_required посылает его на вьюху логина, от себя добавляя в query ?next="путь_к_предыдущей_странице"
3. Вьюха логина получает этот запрос, берет из него значение "next" пихает его в невидимое поле твоего шаблона, из шаблона делает страницу с формой и отдает пользователю.
Если это так, или примерно так, то ты можешь это проверить:
- когда тебя переадресует на страницу логина, то в форме должно быть то самое скрытое поле с тем самым значением "путь_к_предыдущей_странице". Надеюсь, ты знаешь как открыть соснольку разработчика в браузере.
Аноним 14/09/20 Пнд 13:50:33 #89 №1806103 
>>1804137
Что было?
Аноним 14/09/20 Пнд 14:41:02 #90 №1806127 
>>1806055
>Потому как декоратор @login_required должен делать это за тебя.
Этот декоратор висит только на одной вьюхе, которую я даже не скидывал, с чего ты взял, что он висит? Декоратор-то сам работает нормально, но я не хочу, чтобы только залогиненные могли лазить по сайту, декоратором я закрыл только определенные странички, например где нужно комментарии оставлять.
Аноним 14/09/20 Пнд 14:45:06 #91 №1806136 
>>1805708

itertools
Аноним 14/09/20 Пнд 15:45:07 #92 №1806225 
>>1806127
Если ты хочешь делать редиректы как это делает декоратор @login_required, ты повторяешь ту же последовательность действий, только добавление дополнительного параметра "next" и пересылку запроса другой вьюхе выполняет твой код.
То есть тебе не надо добавлять в темплейтах в ссылки "?next={{ }}", ты просто во вьюхе проверяешь надо ли тебе редиректить этого пользователя на страницу логина, если надо, то используешь функцию redirect_to_login(next)

Аноним 14/09/20 Пнд 16:10:51 #93 №1806252 
Надо бы провести в Питоне небольшой тест с утилитой ping

Отправить на хост запросы ping с разным размером длины пакета и посчитать время отклика. Как из Питона обратиться к ping и как прочитать ответ?..
Аноним 14/09/20 Пнд 16:13:50 #94 №1806255 
>>1806252
https://pypi.org/project/icmplib/
Аноним 14/09/20 Пнд 16:21:59 #95 №1806271 
Как сделать нейроночьку для распознавания капчи?
Аноним 14/09/20 Пнд 16:34:35 #96 №1806298 
>>1806271
Стать гуглом))0
Аноним 14/09/20 Пнд 16:45:20 #97 №1806316 
>>1804159
Ап
Аноним 14/09/20 Пнд 16:49:34 #98 №1806321 
>>1806298
Там ничо не понятно, библиотеки не подключаются, ничего не получается, ошибки сыпяться
Аноним 14/09/20 Пнд 16:57:27 #99 №1806336 
>>1806316
Нет царского пути в математику. И нет царского пути в программирование.
> начиная от самого простого и сложного
Вот здесь правильная мысль.
> удивить РАБотодателя
Делай то что ты собираешься делать в будущем. Веб-разработка? Значит делай сайты. Аналитика и бигдата? Делай это. Машоб? Делай машоб. Гуи на десктоп? Делай гуи на десктоп.
[mailto:[email protected]Аноним 14/09/20 Пнд 18:53:53 #100 №1806427 
>>1805492
И что мне с ним делать? Никогда не нуждался в виртуальной среде.
Аноним 14/09/20 Пнд 21:27:37 #101 №1806638 
>>1806427
>И что мне с ним делать?
использовать (с) КО
Аноним 14/09/20 Пнд 22:12:31 #102 №1806672 
76DEECFB-3D9D-43D4-8338-CC7A92E9740D.jpeg
Аноны, скажите как улучшить резюме вкатывальщику без опыта работы
Аноним 14/09/20 Пнд 22:17:22 #103 №1806674 
>>1803867
Аноним 14/09/20 Пнд 22:18:15 #104 №1806677 
>>1806674
Аноним 14/09/20 Пнд 22:23:55 #105 №1806678 
A3BE0861-FC90-4B2A-A260-28700A3CA38A.png
>>1803867
Аноним 14/09/20 Пнд 22:24:09 #106 №1806679 
>>1806672
Опыт работы и цель убери. В проекты добавь более детальное описание и ссылки на код. Навыки разбей по категорям. К сертификатам тоже можешь добавить описание.

Дизайн у тебя в целом неплохой, но резюме слишком пустое. Даже если у тебя нет опыта работы, ты можешь добавить описание к каждому проекту и сертификату.
Аноним 14/09/20 Пнд 22:25:53 #107 №1806683 
>>1806672
Сколько ты это проходил чтобы освоить?
Аноним 14/09/20 Пнд 22:26:10 #108 №1806684 
>>1806679
Спасибо
Аноним 14/09/20 Пнд 23:09:03 #109 №1806743 
>>1806683
Суммарно месяца 3-4
Аноним 15/09/20 Втр 00:11:20 #110 №1806847 
>>1806743
остались ссылки на материалы?
поделись анон
Аноним 15/09/20 Втр 00:26:19 #111 №1806865 
>>1806743
Быстро, есть какой-нибудь проект для портфолио? На что рассчитываешь? Степик, кестати, бесплатный?
Аноним 15/09/20 Втр 09:12:22 #112 №1807003 
Кто нибудь может подсказать как из функции throw получить имя функции, которая её вызвала? Сейчас я передаю её как аргумент, но было бы проще внутри функции throw это выяснять. Питон второй если что. Вот код для примера https://ideone.com/D1Y0BT
Аноним 15/09/20 Втр 09:17:11 #113 №1807006 
>>1806847
Сначала изучал чистый питон, начал с укуса, потом углублялся в алгоритмы и структуры данных, смотрел препода мфти, грокаем алгоритмы, решал задачи по питону, когда получил базу пошел на степик
Курсы на степике: введение в базы данных, git(имхо слишком сложный, но дает лишний сертификат), web технологии, python: основы и применение, введение в linux. После курса веб технологии остается проект на джанге - сайт с вопросами
Аноним 15/09/20 Втр 09:18:53 #114 №1807008 
>>1806865
Курс web технологии на степике бесплатный, после него остается проект учебный на джанге, расчитываю на то что у людей кровь не пойдет от моего кода, ибо сам ревьювить не умею
Аноним 15/09/20 Втр 09:42:51 #115 №1807017 
Блять, я тут уже спрашивал подобное, но все никак не пойму и приходится мне к вам возвращаться, больная тема, хочу закрыть.

Вот к примеру на сайте есть js код и только после того как ты нажмешь что-либо - подгрузится новый html контент. По любому когда ты исполняешь js код, браузер отправляет какой-нибудь get запрос на сервер, давая знать что ты что-то исполнил, и он присылает тебе контент в ответ. Как средствами одного requests мне сделать этот самый запрос, чтобы сервер подумал что я исполнил js код, и отослал мне новый хтмл? В отладчике сети браузера я не вижу нихуя никаких запросов, только информацию что я получил картинки и всякое такое.

К примеру есть браузерная игра сессионка с лоббями. После игры партия заносится в архив сайта и можно просматривать историю ходов. Разумеется там все заскриптовано и если отключить жс то вообще ничего не увидишь. И как мне без всяких селениумов заставить его прислать мне контента чтобы я спарсил внутриигровые данные определенной партии?
Аноним 15/09/20 Втр 09:45:47 #116 №1807020 
>>1807017
Бля, я забыл еще что чтобы партии просматривать там надо быть залогиненым, лол. Такую хуйню еще не умею делать, надеюсь это тоже без селениума можно.
Аноним 15/09/20 Втр 13:03:18 #117 №1807139 
996821679.png
Посаны, как xdist для pytest'a работает?

Ну вот я скачал плагин, а что и где писать, чтоб тесты в параллельке запускались? И как настроить, чтоб максимум 4 теста одновременно делалось.
Аноним 15/09/20 Втр 13:11:50 #118 №1807145 
image.png
Это нормально, что у меня продублированы интерпретаторы?

Когда я в VSCode тыкаю на «открыть терминал» и пишу pip install -r requirements.txt (клонировал репозиторий на компьютер), в какой из интерпретаторов устанавливаются нужные библиотеки?

Потому что в ответе пишет, что все нормально, requirements установились, но когда я пытаюсь запустить код, каких-то библиотек все равно нет
Аноним 15/09/20 Втр 13:14:56 #119 №1807150 
>>1807145
У тебя их 4, а не 15. Проверь опытным путем. Кто знает что ты там накуралесил.
Аноним 15/09/20 Втр 14:35:34 #120 №1807210 
Пизда рулю
Выискивал 5 часов ошибку, почему данные не сохраняются в кеше. На самом деле они сохранялись. Просто обращения происходили через словарь, где в качестве ключей использовались integer, а искали через string. Заебись.
юзайте для ключей всегда только str, нахуй выебываться
Аноним 15/09/20 Втр 14:44:38 #121 №1807225 
15844742101290.png
В каждом проф-треде на дваче ноют новички, которые не хотят работать за опыт/портфолио, а хотели бы ещё и денег за работу получить.
Написал в прошлом треде предложение о своей супер-пупер программе (которая, как мне намекнули, достаточно просто реализуется) - 0 откликов.
Питонщики зажрались(
Аноним 15/09/20 Втр 14:53:23 #122 №1807243 
>>1807225
Я гребу на околоэнтерпрайз параше в бэке, мне некогда
Аноним 15/09/20 Втр 15:12:25 #123 №1807266 
Сап, двач.
Объясните нубу, почему записи?

while arr > arr[i - 1] and i < len(arr):
i += 1

и

while i < len(arr) and arr > arr[i - 1]:
i += 1

неэквивалентны и в одном из случаев выдает ошибку out of range?
Аноним 15/09/20 Втр 15:17:35 #124 №1807268 
>>1807266
>while arr > arr[i - 1]

И нахера ты сравниваешь list с элементом этого самого list?
что интерсно в 2.7 на PyPy ошибка не рейзится
Аноним 15/09/20 Втр 15:24:25 #125 №1807275 
>>1807268
ой, там arr > arr[i -1]
Аноним 15/09/20 Втр 15:24:51 #126 №1807276 
>>1807275
Бляд
arr[ i ]
Аноним 15/09/20 Втр 15:31:14 #127 №1807281 
>>1807266
Если выражение слева от and равно False, то и всё выражение целиком будет равно False, поэтому питончик не проверяет выражение справа от and. Поэтому даже такое сработает:
if False and похуй_что_тут_вообще:
pass
Аноним 15/09/20 Втр 15:33:37 #128 №1807283 
>>1807281
Спасибо, анон
Аноним 15/09/20 Втр 21:22:49 #129 №1807577 
>>1807139
бумп
Аноним 15/09/20 Втр 21:51:17 #130 №1807605 
>>1807145
У тебя просто симлинки дистр делает в разные папки, это один и тот же интерпретатор.
Аноним 15/09/20 Втр 21:54:57 #131 №1807611 
Какую либу выбрать для анализа и захвата пакетов?
Аноним 16/09/20 Срд 08:23:28 #132 №1807920 
Ебать меня РАБотая завалили даже подышать некогда. На любимый питач не заходил уже неделю. Как вы тут, братцы. и сестры
Аноним 16/09/20 Срд 08:27:45 #133 №1807921 
>>1806672
На джуна норм. Добавь фотку, если не всратый.
>>1806679
Двачую.
Аноним 16/09/20 Срд 08:53:25 #134 №1807937 
>>1806672
сертификат по git от степика - просто пиздец.
ебанутейшний лектор. бодро начал, а дальше нихуя не понятно.
абсолютно бесполезный курс.

да, у меня тоже есть этот сертификат
Аноним 16/09/20 Срд 08:54:00 #135 №1807939 
>>1807937
У меня есть на линкдине значок что я знаю гит, только это нихуя не говорит вообще.
Аноним 16/09/20 Срд 09:08:28 #136 №1807947 
>>1807937
>а дальше нихуя не понятно.
Так и должно быть. Если бы было понятно, то это был бы не git )
Аноним 16/09/20 Срд 09:33:47 #137 №1807960 
>>1807947
нет, серьезно, этот конкретный лектор - хуевый
я бы хотел по-быстренькому на ютубчике просмотреть про гит, но придется все же книжку читать.
Аноним 16/09/20 Срд 09:35:09 #138 №1807961 
>>1807960
>но придется все же книжку читать.
так будет тот же результат )
Аноним 16/09/20 Срд 10:08:11 #139 №1807965 
Аноны, как я могу сделать такой словарь:
{[1,2]:3}
Аноним 16/09/20 Срд 11:15:03 #140 №1808005 
>>1807965
Можешь заменить список за кортеж
Аноним 16/09/20 Срд 12:42:42 #141 №1808047 
>>1807965
ключ должен быть хешируемым объектом
Какого хуя, анон? [mailto:[email protected]Только учусь. 16/09/20 Срд 15:32:39 #142 №1808149 
Image 123.png
Сап, аноны. Кто шарит в телеграм ботах - можете предположить что за хуйня на пикрил.
[mailto:[email protected]Аноним 16/09/20 Срд 15:37:07 #143 №1808153 
>>1807920
Живы. Сам как?
Аноним 16/09/20 Срд 15:42:39 #144 №1808156 
>>1808149
чел пытается запустить py файл, но у ниго нихуя не выходит, вот что на пике
Аноним 16/09/20 Срд 15:43:17 #145 №1808157 
>>1808149
гугли How to add Python to Windows PATH
[mailto:[email protected]Аноним 16/09/20 Срд 15:45:53 #146 №1808158 
>>1808157
Проблема в банально-саном PATH?!
Сука. Если это так, обязательно умру оставив файл с параметрами path. И положу его себе под лопатки, когда буду в гробике.


Аноним 16/09/20 Срд 15:47:22 #147 №1808160 
>>1808149
Скрипт запускается и успешно завершается. Ты успешен, расслабься.
Аноним 16/09/20 Срд 15:48:40 #148 №1808165 
>>1808158
>Проблема в банально-саном PATH?!
Не факт, может у тебя в py файле нет основного цикла и приложение сразу закрывается
[mailto:[email protected]Аноним 16/09/20 Срд 15:50:01 #149 №1808167 
>>1808165
Пишу с библиотекой aiogram. Иду по туториалу, хули там не так может быть.
[mailto:[email protected]Аноним 16/09/20 Срд 15:51:25 #150 №1808169 
>>1808160
Спасибо, по(т/д)бодрил.
Аноним 16/09/20 Срд 15:51:38 #151 №1808170 
>>1808167
сука блэт хули мы гадать должны, залей файл куда нибудь
[mailto:[email protected]Аноним 16/09/20 Срд 16:00:00 #152 №1808178 
Image 124.png
>>1808170
if __name__ == '__main__':
executor.start_polling(dp)

Проблема в этой хуйне. Без этого куска, выходит первый пик. С ней, новый пик.
[mailto:[email protected]Аноним 16/09/20 Срд 16:00:18 #153 №1808179 
Image 124.png
>>1808170
if __name__ == '__main__':
executor.start_polling(dp)

Проблема в этой хуйне. Без этого куска, выходит первый пик. С ней, новый пик.
Аноним 16/09/20 Срд 16:03:46 #154 №1808182 
>>1808178
Неавторизованный запрос
[mailto:[email protected]Аноним 16/09/20 Срд 16:13:56 #155 №1808191 
>>1808182
Что делать в таком случае?
Аноним 16/09/20 Срд 16:18:04 #156 №1808195 
>>1808191
Авторизировать его
[mailto:[email protected]Аноним 16/09/20 Срд 16:19:34 #157 №1808198 
>>1808195
Тебя никогда не пиздили за твою логичность?
Аноним 16/09/20 Срд 16:22:08 #158 №1808202 
>>1808198
А тебя за твои тупые вопросы?
[mailto:[email protected]Аноним 16/09/20 Срд 16:23:32 #159 №1808204 
>>1808202
К удивлению, нет. Ладно, ясно, спасибо за помощь.
Аноним 16/09/20 Срд 17:40:34 #160 №1808320 
>>1803801 (OP)
Всем привет,аноны!
Начну сразу с сути,решил парсить дамп википедии по этому гайду: https://www.heatonresearch.com/2017/03/03/python-basic-wikipedia-parsing .
Cуть в том,что бы работать с дамопм википедии через xml.etree.
Подцепило тем что довольно резво работает(Всю вики за 23 минуты проходит)
Все бы ничего, да только вылезла проблема: если текст у елемента довольно большой, что часто бывает на страницах википедии, то elem.text возвращает None.
Мне по сути весь текст внутри тега и не надо, мне хватит пару первых строк, но уже день не могу выудить их оттуда.Гугл что наш, что пендосский молчит по этому пвовду,так что шарящий анон, выручай.Если что,я тут сижу и отвечу на любые уточнительные вопросы.
Аноним 16/09/20 Срд 20:09:46 #161 №1808458 
БИДОН))000
Аноним 16/09/20 Срд 20:23:31 #162 №1808467 
>>1808320
>Все бы ничего, да только вылезла проблема: если текст у елемента довольно большой, что часто бывает на страницах википедии, то elem.text возвращает None.
а ты уверен, что это из-за большого текста, а не из-за того, что элемент пустой? там могут быть плейсхолдеры
типа
<root>
<tag attr="hui"/>
</root>
Алсо 23 минуты это пиздец долго жи. Бери индексированный архив и ебашь разбор парралельно. У меня дамп русской википедии где-то за 3 минуты сжирает прямо из архива. Правда, там процессинг очень простой.
Аноним 16/09/20 Срд 21:24:49 #163 №1808516 
Какая сейчас адекватная вилка для бэкенд разработчика в ДС с опытом работы 1.5 года в конторе с хуевыми процессами разработки?
Аноним 16/09/20 Срд 21:25:42 #164 №1808518 
>>1808516
>разработчика в ДС с опытом работы 1.5 года в конторе с хуевыми процессами разработки
80-100
Аноним 16/09/20 Срд 21:26:54 #165 №1808520 
>>1808518
Хм, значит я очень хорошо прохожу собесы.
Аноним 16/09/20 Срд 21:30:03 #166 №1808522 
>>1808520
Алсо мне казалось что 120-150к, именно такие зп предлагают работодатели, а я отказываюсь думая что продешевил.
Аноним 16/09/20 Срд 21:39:29 #167 №1808526 
>>1808522
150 это уже начало сеньорской вилки. Для 1.5 лет опыта просто охуенно.
Аноним 16/09/20 Срд 21:42:18 #168 №1808528 
>>1808526
Хз у меня знакомый мидлом на 200к проходил, мы с ним вместе гребли. Мне кажется реальный синьор за 150к не пойдет в ДС работать.
Аноним 16/09/20 Срд 22:01:42 #169 №1808539 
>>1808528
>Хз у меня знакомый мидлом на 200к проходил
Иногда мне кажется, что я живу в параллельной вселенной где зарплаты вдвое ниже.
Аноним 16/09/20 Срд 22:11:58 #170 №1808546 
Какую книгу посоветуете< чтобы было мало воды и много кода? Может есть что-то на шилда похожее? Только не лутца, пожалуйста
Аноним 16/09/20 Срд 23:11:36 #171 №1808574 
>>1807008
Дак ссылку на гит оставляй, всем двачем отревьюим
Аноним 17/09/20 Чтв 05:34:17 #172 №1808716 
>>1807266
Аноним 17/09/20 Чтв 06:49:34 #173 №1808724 
>>1808153
Все по-старому братиш, работа-дом. Сам знаешь.
Аноним 17/09/20 Чтв 09:20:04 #174 №1808753 
>>1808546
"Изучаем Python" Марка Лутца.
Аноним 17/09/20 Чтв 09:22:44 #175 №1808755 
>>1808753
да я ебал рот читать 2000 страниц
Аноним 17/09/20 Чтв 09:26:36 #176 №1808756 
image.png
>>1808755
Аноним 17/09/20 Чтв 09:28:20 #177 №1808758 
>>1808756
выглядит, как какая-то хуета для зумеров. я прав или это что-то годное?
Аноним 17/09/20 Чтв 09:30:55 #178 №1808759 
>>1808546
https://learnxinyminutes.com/docs/python/
Аноним 17/09/20 Чтв 09:34:08 #179 №1808763 
>>1808467
Да нет,в том то и дело что там прям <text>Много букв</text>.
И я убирал внутри тега текст по паре строк пока оно не начало возвращать не None. Нигде про такое не могу найти инфу.
Аноним 17/09/20 Чтв 09:48:25 #180 №1808766 
>>1808758
В самый раз для мелкобукв.
Аноним 17/09/20 Чтв 10:00:06 #181 №1808775 
>>1808766
ну если так, то стоит попробовать
Аноним 17/09/20 Чтв 10:50:56 #182 №1808798 
>>1808763
хуй знает. может какая буфферизация ебет вола? попробуй замени еетрипарсер на пуллпарсер и скорми ему файл в бинарном виде типа
with open('dump.xml', 'rb', buffering=0) as f:
parser.feed(f.read())
Аноним 17/09/20 Чтв 10:54:40 #183 №1808801 
image.png
>>1808763
алсо, круто тебя на со обоссали
Аноним 17/09/20 Чтв 12:26:08 #184 №1808888 
image.png
>>1803801 (OP)

Анон, подскажи по пистону и рест-фреймворку Falcon - если у меня один процесс и в контроллерах я не использую асинхронность, сугубо hello world, то можно ли сказать что контроллеры thread-safe? Грубо гря получается по одному запросу одновременно, или я где-то объебался?
Аноним 17/09/20 Чтв 19:30:55 #185 №1809290 
Дорогие мои. Кто-то пользуется этим принципом?
https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C
Аноним 17/09/20 Чтв 19:33:58 #186 №1809294 
Алсо, для чего и Как мы можем использовать .cfg конфиг в питоне? Что можем внутри указать, например и как пользоваться этим. Спасибо.
Аноним 17/09/20 Чтв 20:41:37 #187 №1809360 
image.png
>>1809290

Конечно пользуемся. Добавляем его в pipeline, в СБОРОЧКУ/CI, через несколько месяцев понимаем что бизнес не платит за удовлетворение этой хуиты, выпыливаем, забиваем, смеемся в лицо дяде Бобу с его методами в 10 строк.
Аноним 17/09/20 Чтв 20:42:42 #188 №1809365 
image.png
def equation_writing(a,b,c):
print(a,"x +",b,"=",c)
equation_writing(3,4,3)

Почему выводит дважды?
Аноним 17/09/20 Чтв 21:02:15 #189 №1809375 
>>1809365

замени print на return, я так понимаю, что первый раз печатает внутри функции, а потом еще раз результат функции
Аноним 17/09/20 Чтв 21:04:50 #190 №1809377 
>>1809375

ну то есть

return a + “ x + “ + b + “ = “ + c
Аноним 17/09/20 Чтв 21:07:19 #191 №1809380 
>>1809377

блять, я тот еще советчик)) функция принимает integers, а возвращает строку, поэтому

return str(a) + “ x + “ + str(b) + “ = “ + str(c)
Аноним 17/09/20 Чтв 21:56:09 #192 №1809411 
>>1809380
>>1809377

А лучше сразу начинать следовать хорошим практикам и делать

return f'{a}x + {b} = {c}'
Аноним 17/09/20 Чтв 21:58:46 #193 №1809414 
>>1809411
https://www.python.org/dev/peps/pep-0498/
Аноним 18/09/20 Птн 05:59:19 #194 №1809727 
>>1809360
А подробнее?
Аноним 18/09/20 Птн 09:31:20 #195 №1809773 
>>1809727
В его дно галере не принято писать нормальный код. В репозиторий можно сливать любой мусор, а потом их сис. админ деплоит это руками на голое железо.
Аноним 18/09/20 Птн 10:41:02 #196 №1809797 
>>1809773

Все почти так, но все же ci у нас остался. Ну и таких галер в типичных крудошлепских конторах большинство.

У вас там всем заветам дядипиздабола Боба следуют? Небось water cooler moments насыщены дискуссиями о код-стайле. Эх, блядь, молодость.
Аноним 18/09/20 Птн 15:52:00 #197 №1809987 
Поясните за фриланс плис. Насколько выгодно делать тг ботов и продавать их, встречаю объявы что делают, под разные нужды, есть кто делает и толкает их, насколько прибыльно?
Аноним 18/09/20 Птн 16:29:38 #198 №1810025 
Анончики, чего необходимо придерживаться при работе с БД, чтоб избежать sql-инъекций?
Интересует конкретно sqlite.
На данный момент все форматирование строк в запросах заменил на вставку подготовленных операторов через '?'
Аноним 18/09/20 Птн 18:54:26 #199 №1810185 
есть модель Tree
class Tree(models.Model):
name = CharField
sort = IntegerField
parent = ForeignKey('self')
level = IntegerField
где level - уровень вложенности (0 - самый верхний родитель)

Нужно сделать структуру типа:
[{"name": '...', 'children': [{...}]}, ...]
отсортировано всё будет по sort
Объясните тупому, что значит получить структуру? Она в json формате должна быть что ли, тогда почему все в []скобках собрано?
Аноним 18/09/20 Птн 18:58:27 #200 №1810186 
>>1810185
у тебя будет лист из обьектов класса Tree, как я понял.
И к нему уже будет применяться sort()
Аноним 18/09/20 Птн 19:02:26 #201 №1810190 
>>1810186
Я так понял мне надо сделать все же json, а во всех вложения parent - child сделать сортировку, верно?
Аноним 18/09/20 Птн 21:18:05 #202 №1810257 
Сап, питонач. Вкатываюсь ваше это ойти с данного языка. Уже неплохо ориентируюсь в Flask, сейчас прохожу курс по sql. Куда дальше грести? Что учить? В какую область податься? Сам думаю между QA, Web, и DevOps. Подскажите что лучше.
Аноним 18/09/20 Птн 21:24:32 #203 №1810262 
>>1810257
>2k21
>Flask
Аноним 18/09/20 Птн 21:54:43 #204 №1810289 
На связи опять анон, который учил джанго, у меня пеке было хуево, сейчас вернулся к занятиям, так и не разобрался с редиректом после логина, напомню, что я пытаюсь у себя проделать то, что описано тут: https://stackoverflow.com/questions/806835/django-redirect-to-previous-page-after-login , но то ли я рукожоп, то ли все изменилось, но у меня не получается.

Почему, когда я делаю вьюху как на 1м пике, у меня next в запросе оказывается пустой? как работает эта черная магия?
Если сделать как у этого парня эту строчку:
>redirect_to = request.REQUEST.get('next', '')
то в next хранится нужный мне юрл, но сама страничка с логином не открывается, т.к. я так понял такой синтаксис для джанги уже не актуален, и нэкст надо доставать просто через request.GET[] как у меня на первом пике.

Короче я так понимаю мне надо где-то на стадии уже полученной страницы с логином нужно где-то сохранить этот кусок урла, и потом отправить его в пост запросе, и я так понял хидден в темплейте логина - плохая хуйня, какие еще есть способы?
Аноним 18/09/20 Птн 21:55:22 #205 №1810291 
>>1810257
> Уже неплохо ориентируюсь в Flask
Теперь можешь начинать учить FastAPI
Мимо ненастоящий кодер
Аноним 18/09/20 Птн 21:55:43 #206 №1810292 
pycharm64yjyACPOp6p.png
>>1810289
блядь, пикчу забыл, вот така хуйня
Аноним 18/09/20 Птн 22:36:10 #207 №1810314 
Какая есть нормальная IDE чтобы выводила типы и позволяла навигироваться по сорцам? PyCharm хуйня какая-то по дефолту, может плагины какие-то нужны?
Аноним 19/09/20 Суб 03:22:22 #208 №1810467 
>>1810314
>чтобы выводила типы
from typing import *
Аноним 19/09/20 Суб 04:25:35 #209 №1810472 
>>1806672
Я при вкате писал говносертификаты и спиздил чужой код с гита. Сейчас, если бы сам кого то хейрил, то не обращал бы на это внимание вообще.
Аноним 19/09/20 Суб 04:30:28 #210 №1810473 
>>1810314
Если ты не указываешь типы, то за тебя этого никто не сделает. У нас тут динамический язык.
Аноним 19/09/20 Суб 05:02:10 #211 №1810481 
Добрые Антоши, подскажите плес реально ли за 2-3 месяца (лучше за два все таки) подготовиться, чтобы пройти интервью во всякие крутые конторы (имеется ввиду способность решать на пайтоне алгоритмы и вот это вот все)? Питон учил лет 7 назад, но он отвалился за ненадобностью, увы. А сейчас я должен все это дико быстро вспоминать.
Аноним 19/09/20 Суб 05:36:59 #212 №1810494 
>>1810481
>пройти интервью во всякие крутые конторы
>за 2-3 месяца
А сам как думаешь?
Аноним 19/09/20 Суб 05:58:15 #213 №1810504 
>>1805208
Тот же бэк для вэба на джанге
Аноним 19/09/20 Суб 08:24:06 #214 №1810573 
>>1809797
>>1809773
Не, ну расскажите же о чем Боб учил? Как это на примере в работе приминять.
Аноним 19/09/20 Суб 09:26:41 #215 №1810602 
image.png
>>1805257
Аноним 19/09/20 Суб 12:21:19 #216 №1810668 
>>1810473
А откуда я знаю тип, который мне возвращает функция из какой-то либы?
Аноним 19/09/20 Суб 12:39:57 #217 №1810681 
>>1810668
чудес не бывает

IDE может вывести тип если ей есть на чем основываться - или автор кода где-то использовал явный тип или информацию о типах оставил. или библиотека описана в typeshed
Аноним 19/09/20 Суб 12:40:29 #218 №1810682 
>>1810668
typed либа может быть
Аноним 19/09/20 Суб 12:40:52 #219 №1810684 
>>1810681
Я так понимаю, в pandas, numpy, scipy на это все хуй положили, да?
Аноним 19/09/20 Суб 12:44:40 #220 №1810686 
>>1810684
не все любят захламлять код типами
многие любят как раз из-за того что он кря-тайпинг в противовес языкам, где нужно явно указывать типы
и типизация для них только "засирает код"

К тому же typing это питон3, а либы писались во времена питона2 и совместимость мешает все тайпингами обвесить
Аноним 19/09/20 Суб 12:45:29 #221 №1810687 
>>1810684
А там это нахуй не надо вообще.
Аноним 19/09/20 Суб 12:45:40 #222 №1810688 
>>1810686
Эх, щас бы лезть в документацию/сорцы, чтобы понять, что тебе функция вернула.
Аноним 19/09/20 Суб 12:52:57 #223 №1810693 
>>1810688
так то это норма в кря-тайпинг языках. в этом и суть кря-тайпинга
и для него тайпхинтинг по факту костыли которые противоречат самой сути кря
Аноним 19/09/20 Суб 13:09:46 #224 №1810709 
>>1803801 (OP)
Так а с какой книги начинать, если я вообще никогда ни на чём не программировал? Везде пишут код, а куда его вводить я не понимаю, есть что-то для совсем новичков?
Я просто увидел копипасту "завтра ищешь в интернете книжку dive into python" и хочу делать имиджборды, но dive into python мне слишком сложна а ещё я незнаю английский, да
Аноним 19/09/20 Суб 13:18:41 #225 №1810715 
1532822.jpg
>>1810709
Аноним 19/09/20 Суб 13:42:32 #226 №1810728 
>>1810709
сейчас же идешь и смотришь канал на ютубе хауди хо пайтон за час, потом джанго за час , а потом отправляешь свое резюме куда нить где платят 300к наносек , и вот ты бэкэнд деволопер 300к наносек
Аноним 19/09/20 Суб 14:12:57 #227 №1810748 
>>1810728
> хауди хо пайтон за час
Это без сарказма? Нет цели 300кк/нс, хочу писать всякую фигню чтобы она что-то там делала или печатала, охуенно же
Аноним 19/09/20 Суб 14:42:38 #228 №1810799 
>>1810748
Ну а что тебе еще остается, если ты даже не понимаешь куда код вводить, и пришел за ответом сюда
Аноним 19/09/20 Суб 14:45:05 #229 №1810806 
>>1810748
гиперскилл по пистону. если первый майлстоун первого проекта делаешь быстро — получаешь 1 месяц триала. если за этот месяц доделываешь первый проект — получаешь еще 2 месяца триала. штобы ты знал, первый прокт это что-то типа крестиков ноликов. так что 3 месяца триала изи получить.
https://hyperskill.org/onboarding
Аноним 19/09/20 Суб 14:51:46 #230 №1810817 
>>1810799 >>1810748

upd:если не хочешь легким способом изучить весь питон за 2 часа то вот можешь еще посмотреть, начиная от того как установить на шиндовс интерпритатор(штука которая будет переводить твою писанину(код) в команды для процессора) https://www.youtube.com/watch?v=IU4-19ofajg&list=PLQAt0m1f9OHvv2wxPGSCWjgy1qER_FvB6&ab_channel=egoroff_channel
Аноним 19/09/20 Суб 14:53:58 #231 №1810818 
>>1803801 (OP)
Хочу посчитать количество строк кода в проекте. Офк пустые строки или закомментированные считаться не должны. Также желательно не считать докстринги. Как это сделать?
Аноним 19/09/20 Суб 15:02:13 #232 №1810825 
>>1810818
открываешь файл в редлайнс проходишься по строкам фором
строку стрипишь чтобы табы и пробелы и смивол переноса строк убрать с обоих сторон и если длинна 0. или стартует с # или стартует с доксимволов то пас иначе строки+=1
Аноним 19/09/20 Суб 15:38:07 #233 №1810839 
>>1810257
а теперь бери django + drf, и пиши на нем свой двач(либо aiohttp - лучше, но сложнее). Дальше устраивайся джуном.
Если знаешь алгосы, патерны и можешь минимально пояснить за проектирование систем - то иди в продуктовую компанию.
Если не можешь - иди в небольшую галерку, чтоб через годик свалить
Аноним 19/09/20 Суб 15:40:20 #234 №1810841 
>>1810292
дак у тебя в поле next - действительно пустая строка. Ты в него ничего не добавляешь
Аноним 19/09/20 Суб 15:45:05 #235 №1810846 
>>1810693
Кажется ты не понимаешь сути кря.
Подумай - почему утиная типизация используется не только в диамически, но и в статически-типизированных языках(например go)
Аноним 19/09/20 Суб 16:11:37 #236 №1810869 
>>1810825
Красота. Только вот UnicodeDecodeError постоянно всплывает. Пиздит что байтики прочитать не может то тут, то там. Как вообще понять в каком формате файл открывать? При utf8 везде как видишь не срабатывает
Аноним 19/09/20 Суб 16:13:46 #237 №1810873 
>>1810846
вики
"Неявная типизация, латентная типизация или утиная типизация — в ООП-языках — определение факта реализации определённого интерфейса объектом без явного указания или наследования этого интерфейса, а просто по реализации полного набора его методов"

Я выделил жирным саму суть.

А суть в том, что хоть в питоне всего лишь хинтниг (явное указание, но не наследование) это все равно ломает идею кря.

у тебя было
def foo(a):
a.bar()
a.baz()

даже если ты всего лишь описал протокол с методом bar()

def foo(a: BarableProtocol):
a.bar()
a.baz()

то работать будет, но иде будет выделять baz как ошибочный. Потому что явное указание типа (контракта) ломает идею "зуб даю, этот метод там будет в момент вызова" потому что сам контракт описывает то, что должно приплыть в метод

таким образом любое указание на интерфейс объекта противоречит идее кря

Аноним 19/09/20 Суб 16:15:08 #238 №1810874 
>>1810869
я мимокрок и хз о чем вы
но в питоне для утф8+BOM нужно указывать кодировку "utf-8-sig", а для просто utf8 "utf-8"
Аноним 19/09/20 Суб 16:36:02 #239 №1810891 
>>1810874
Если не указывать, будет utf8, я не об этом
На данный момент открываю файлы в бинарном формате, проблем не возникает. Вопрос лишь в том, как мне до открытия по метаданным понять, в какой кодировке файл можно открыть?
Аноним 19/09/20 Суб 16:38:01 #240 №1810894 
>>1810818
Вот что получилось (это один крупный проджект, что попался в руки):

{'py': 62989, 'js': 12876640, 'ts': 1533118, 'php': 229729, 'html': 127282, 'css': 231549, 'json': 739869, 'txt': 52950, 'other': 2014346}

Слева расширение, справа - число строк кода. В other все что не попало в указанные расширения (за вычетом всякой ебени вроде jpeg, svg, png - это сразу фильтровалось)
Аноним 19/09/20 Суб 17:08:29 #241 №1810914 
>>1810873
суть в том какие проблемы она решает
Аноним 19/09/20 Суб 17:12:04 #242 №1810921 
>>1810693
>тайпхинтинг по факту костыли которые противоречат самой сути кря
Сижу на проекте где пистоновский модуль написал при помощи тайпхинтов и паттерна Dependency Injection (все зависимости определяются явно при инициализации объекта, как правило каждый объект инициализировал лишь раз) - полет нормальный. Без тайпхинтов там можно ебануться, а так сразу очевидно что за объект мы принимаем (или что за интерфейс) и что возвращаем
Аноним 19/09/20 Суб 17:32:44 #243 №1810942 
>>1810921
Плюсую!
Большой проект без типов поддерживать - вообще жопа
Аноним 19/09/20 Суб 17:40:45 #244 №1810948 
>>1810942
На самом деле большой проект на питоне - жопа
Аноним 19/09/20 Суб 17:41:41 #245 №1810949 
>>1810948
На самом деле питон - жопа
Аноним 19/09/20 Суб 17:44:11 #246 №1810950 
>>1810948
большой проект на динамически типизированном языке - жопа
Аноним 19/09/20 Суб 17:44:42 #247 №1810951 
>>1810950
вот кстати явный пример жопы: >>1810894
Аноним 19/09/20 Суб 17:49:15 #248 №1810955 
>>1810950
Это правда. Слава типам!
Аноним 19/09/20 Суб 18:32:31 #249 №1810990 
>>1810921
Я тоже сверхактвно юзаю хинты.
Я всего лишь напомнил что есть люди которые считают что хинты рушат саму суть динамичности и крякнутости языка

Меня в питоне подкупает скорость "хуяк хуяк и в продакшен"
И для этого и юзаю
Аноним 19/09/20 Суб 18:36:17 #250 №1810995 
Аноны, очередной вопрос знающим, ну или теоретикам, на порассуждать.
Какая схема работы подойдёт лучше, для масштабируемой системы:
1. Сервер на котором сразу все. Nginx+flask+pgbouncer+postgredql. И таким образом набор этих сервисов раскинуть по все регионам.
2. Сервер на которых веб часть(Nginx+flask) и один(под каждый регион) отдельный сервер под бд(pgbouncer+postgres).

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

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

Деплой идёт докер-композом.
Неужели кубернетосы завозить надо?
Аноним 19/09/20 Суб 18:40:02 #251 №1810998 
>>1810995
поставить отдельные сервера для пингов по всему миру. пинг будет зашибись

а так это лучше спрашивать в теме про хайлоад
Аноним 19/09/20 Суб 18:42:57 #252 №1811003 
>>1810921
Вообще писать с типами это как минимум удобно. Понятно что идет на вход функции и что она возвращает, автокомплит от IDE, меньше опечаток, так как несуществующий метод или свойство будет светить IDE.
Аноним 19/09/20 Суб 19:04:18 #253 №1811013 
Ебал я postman. Тестировать json api вообще не получается, только если им сгенерировать код для пистона, например. Может есть аналоги какие?
Аноним 19/09/20 Суб 19:05:01 #254 №1811014 
>>1811013
Че значит не получается? Может ты криворучка просто?
Аноним 19/09/20 Суб 19:42:04 #255 №1811035 
>>1811014
Может и криворучка. Но один и тот же запрос с одним и тем же JSON из под soupUI работает, из скрипта работает, а из ебаного postman Failed to decode JSON
Аноним 19/09/20 Суб 19:43:09 #256 №1811038 
>>1811035
>Failed to decode JSON
Ну-ка покажи свой запрос и я обоссу тебя.
Аноним 19/09/20 Суб 19:48:31 #257 №1811040 
>>1811038
На память -
POST 127.0.0.1:5000
> headers
Content-Type : application/json
> body
{
"origin_url": "something.com"
}
Аноним 19/09/20 Суб 19:50:07 #258 №1811041 
>>1811040
А ответ?
Аноним 19/09/20 Суб 19:50:39 #259 №1811042 
>>1810995
А проблем со сбором данных не будет при сервере на каждый регион?
Аноним 19/09/20 Суб 19:50:55 #260 №1811043 
>>1811040
Ну и соответственно в postman body - raw - json. В curl тож эту ошибку отдает. Есть мнение, что кавычки экранировать надо - но мне не помогло.
Аноним 19/09/20 Суб 19:52:46 #261 №1811045 
>>1811041
Из под postman -
> "message": "Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)"

Из других утилит - JSON с созданным объектом.
Аноним 19/09/20 Суб 19:53:27 #262 №1811046 
>>1811045
Обоссан.
Аноним 19/09/20 Суб 19:57:15 #263 №1811052 
>>1811046
Ок.
Аноним 19/09/20 Суб 20:11:33 #264 №1811060 
Антоны, скажите пожалуста как загуглить какой-нибудь алгоритм, который из списка с объектами у которых есть связи на себя(parent-child) сможет построить дерево, например в питоне со словарями. Мне бы какой-нибудь хотя бы словесный алгортим, чтобы велосиед не придумывать
Аноним 19/09/20 Суб 20:46:19 #265 №1811071 
>>1807605
Спасибо!
Аноним 19/09/20 Суб 21:07:45 #266 №1811089 
image.png
Какой дегенерат это придумал? Аргументы в другом порядке должны идти!
word_list.join(" ")
Аноним 19/09/20 Суб 21:27:37 #267 №1811102 
>>1811089
Чего блять?
Аноним 19/09/20 Суб 21:32:21 #268 №1811111 
>>1811089
а что если в списке объекты класса fingers или объекты класса ass у которых нету не __repr__ не __str__ зачем в таком случае листу нужен такой метод? и в таком случае тданный метод в строке а не в спистке смотриться вполне логичнее уже
Аноним 19/09/20 Суб 21:37:29 #269 №1811114 
>>1811102
челик имеет ввиду что он хочет листу метод джойн в который передается строка который вернет строку, а не строке в его джойн передавать список
Аноним 19/09/20 Суб 21:37:43 #270 №1811115 
>>1811111
>у которых нету не __repr__ не __str__
А нахуя ты тогда на них Join вызывешь, паскуда?
Аноним 19/09/20 Суб 21:41:07 #271 №1811116 
>>1811115
Лучше скажи зачем объекту метод который ему противоречит и приводит к крашу, который даже в случае положительного кейса возвращает ни как не относящееся к себе объекты? порванка
Аноним 19/09/20 Суб 21:41:55 #272 №1811118 
>>1811116
>который даже в случае положительного кейса возвращает ни как не относящееся к себе объекты?
Че блядь?
Аноним 19/09/20 Суб 21:43:15 #273 №1811120 
>>1811118
ну кто понял тот понял , а кто не понял учитесь пока тру кодерки живы B)
Аноним 19/09/20 Суб 22:20:22 #274 №1811139 
>>1811114
>листу метод джойн в который передается строка
НА
ХУ
Я
?
Аноним 19/09/20 Суб 22:44:42 #275 №1811163 
BuddhaSidhartaGauyama.jpg
>>1810950
большой проект на любом языке - жопа
Аноним 19/09/20 Суб 22:46:53 #276 №1811168 
>>1810921
> а так сразу очевидно что за объект
Union[dict, Callable[[Tuple[dict, set]], List[Union[set, list]]]]
Аноним 19/09/20 Суб 22:48:25 #277 №1811171 
>>1811089
> Аргументы в другом порядке должны идти!
Аргументируй почему.
Аноним 19/09/20 Суб 22:49:34 #278 №1811173 
>>1811060
Да нет никакого особенного алгоритма, просто берёшь и строишь дерево соединяя parent-child циклом.
Аноним 19/09/20 Суб 22:53:37 #279 №1811179 
>>1808756
Ебать какая штука интересная.

мимо-интегрировал-питоны-с-майнкрафтом
Аноним 19/09/20 Суб 22:53:41 #280 №1811180 
>>1811139
плохой вопрос,нахуя метод или нахуя в него строка передается, да и в любом случае адресован не туда
Аноним 19/09/20 Суб 22:54:14 #281 №1811181 
>>1811168
Для такого юзаются интерфейсы
Аноним 19/09/20 Суб 22:55:28 #282 №1811183 
>>1811171
Потому что это логично блядь. Ты джойнишь что? Список или пустую строку?
Аноним 19/09/20 Суб 23:01:51 #283 №1811190 
>>1811183
А если я джойню пустой строкой. Или пустая строка, склеивай вот это. Там же не только списки, там любой итератор можно склеить.
Аноним 19/09/20 Суб 23:02:27 #284 №1811191 
>>1811181
Каким образом?
Аноним 19/09/20 Суб 23:11:29 #285 №1811199 
>>1811190
>там любой итератор можно склеить.
>а что если в списке объекты класса fingers или объекты класса ass у которых нету не __repr__ не __str__ зачем в таком случае листу нужен такой метод?
Аноним 19/09/20 Суб 23:19:02 #286 №1811204 
>>1811199
Это возражение или подтверждение? Непонятный какой-то гринтекст.
Аноним 19/09/20 Суб 23:19:51 #287 №1811206 
>>1811204
Щас бы на дваче подтверждать что-то.
Аноним 19/09/20 Суб 23:21:01 #288 №1811207 
>>1811199
любой строковой итератор мань, хватит исходить на говно, включи хоть немного серого вещества и поубавь ненависти к обществу за то что ты такой и все у тебя получится
Аноним 19/09/20 Суб 23:22:36 #289 №1811209 
code.png
2020-09-19-2322091920x1080scrot.png
>>1803801 (OP)
Почему пикрелейтед код не вызывает редирект?
Например я обращаюсь по сокращенной ссылке hui
>127.0.0.1:5000/hui
В бд на short_url = 'hui' возвращает original_link='2ch.hk', это все проверял.

В итоге ссылка меняется на
>127.0.0.1:5000/2ch.hk
А результат на пике 2
Аноним 19/09/20 Суб 23:23:24 #290 №1811210 
>>1811207
>ряя ебанутый вариант, который работает только со строковыми итераторами, лучше нормального варианта, который работает только со списками строк
Аноним 19/09/20 Суб 23:24:03 #291 №1811211 
>>1811206
Ну так а в чём суть возражения? Что не склеит нестроковые объекты? Ну выпадет эррор, и чо? А вот обязать любой итерируемый объект реализовать метод join — вот это пиздец. Особенно если мой объект генерирует нестроковые объекты, которым этот join и даром не сдался.
Аноним 19/09/20 Суб 23:25:25 #292 №1811213 
>>1811210
ну все мань, питон нелогичный и вообще говно, мой тебе совет, хочешь логичности иди в js
Аноним 19/09/20 Суб 23:25:35 #293 №1811215 
>>1811211
>А вот обязать любой итерируемый объект реализовать метод join
В питон не завезли реализации по умолчанию?
Аноним 19/09/20 Суб 23:26:43 #294 №1811218 
>>1811215
завезли, но тебе не логично
Аноним 19/09/20 Суб 23:27:42 #295 №1811219 
>>1811215
Дело не в этом. Дело в минималистичности интерфейсов. Итератор должен иметь только метод next. Если ты хочешь реализацию всего на свете прямо в стандартных типах, то тебе в руби.
Аноним 19/09/20 Суб 23:28:38 #296 №1811220 
>>1811219
>Итератор должен иметь только метод next
С этим я согласен, но речь была о списках.
Аноним 19/09/20 Суб 23:30:51 #297 №1811224 
>>1811220
А как же множества, кортежи, словари, ещё тысячи разных структур? Им всем тоже join надо? Как ты будешь объяснять пользователям почему list.join есть, а dict.join нет?
Аноним 19/09/20 Суб 23:41:23 #298 №1811229 
Поясните, смотрят ли наниматели в гитхабы вкатышей? Ну, я имею в виду ситуацию, когда ты сам явно в резюме указываешь ссылки на свои проекты.
Вот я с универа (щас мне 24) пилю всякую хуйню в опенсорс, у меня зеленый гитхаб, есть немножк звездочек от одноклассников, пры в чужие репы, есть даже работающий сервис, которым пользуется минимум с десяток мимокроков. Но так как я по натуре крайне мнительная даун-аутист короче личность, то за все время учебы не было ни одной попытки куда-нибудь вкатиться хотя бы стажером, как мои одногруппники. А теперь вот приспичило, так сказатб...

Просто гадаю, как мне резюме составить: честно, как есть - култори о том, что ещё нигде не работал, но очень люблю заниматься кодированием + ссылочки с подробным описанием проектов; либо кулсторти + "добавить" годик реального опыта в рогаикопыта...
Аноним 19/09/20 Суб 23:45:00 #299 №1811231 
>>1810998
Не, с пингом разобрался, тут cloudflare и их балансировка в помощь.
Разве у тут есть живой тренд про хайлоад?

>>1811042
Если ты про синхронизацию данных в бд то проблем не будет, будет задержка небольшая, но тут дело такое, что ты находясь в северной амуреке вряд-ли очень часто меняешь место пребывания своего и задержка в синхронизации на 10-15 секунд на тебя не повлияет. Все таки ты будешь ходить на один и тот же сервер, с высокой долей вероятности.
Аноним 19/09/20 Суб 23:46:24 #300 №1811232 
>>1811229
Если смотрят, то не особенно глубоко. Гитхаб очень легко подделать. Ты можешь файл в своём проекте как пример хорошего кода привести. Или заработать себе известность, и впоследствии работу, если делаешь что-то нужное и значимое.
Аноним 20/09/20 Вск 01:19:55 #301 №1811283 
>>1811220
У тебя хуй на списки что ли стоит? Открою тебе секрет: в метод join можно передавать не просто список а произвольный Iterable
Аноним 20/09/20 Вск 01:22:50 #302 №1811286 
>>1811283
И в чем блядь смысл доеба >>1811111 тогда?
Аноним 20/09/20 Вск 10:53:20 #303 №1811376 
Подскажите как прокинуть конфиг в дочерние модули?
В главном файле делаю следующее:
import configparser
...
config_filepath = path.join(path.abspath(path.dirname(__file__)), 'settings.ini')
conf = configparser.ConfigParser()
conf.read(config_filepath)
Всё ок, но как теперь к нему обратиться из других скриптов, которые вложены в папку?
Аноним 20/09/20 Вск 10:57:56 #304 №1811377 
>>1811376
Они, к слову, вызываются из этого главного файла. Отправлять переменную с каждым вызовом функции же не вариант, как и читать в каждом модуле конфиг заново (не dry).
Аноним 20/09/20 Вск 14:53:00 #305 №1811498 
Я правильно понимаю, что если юзер ввел неправильные данные (например, почту в невалидном виде) - нужно возвращать код 422?
Аноним 20/09/20 Вск 14:53:40 #306 №1811499 
>>1811498
400
Аноним 20/09/20 Вск 14:55:40 #307 №1811501 
>>1811499
Но запрос то верный синтаксически, а вот данные в нем невалидные
Аноним 20/09/20 Вск 14:56:53 #308 №1811503 
>>1811501
Те че-то неясно сука?
Аноним 20/09/20 Вск 16:21:59 #309 №1811596 
>>1811376
Собери функции модуля в класс. Передавай конфиг как параметр класса. Либо делай глобал и импортируй его из главного модуля.
Аноним 20/09/20 Вск 16:24:56 #310 №1811602 
>>1811498
Можешь и 422 отправить. Или 400 с описанием что не так. Главное чтобы ответ был 4хх и клиент понял что сам накосячил. Алсо, убил бы сука за валидацию почты. В ней единственное что должно требоваться это наличие собачки.
Аноним 20/09/20 Вск 16:57:46 #311 №1811631 
Подскажите, если я делаю сервис типа goo.gl, то ссылки которые нужно сокращать можно передавать просто в GET запросе после ?, типа /short?url='ccылка' или по правилам нужно делать POST запрос, а в теле запроса указывать ссылку которую нужно сократить?
Аноним 20/09/20 Вск 16:58:44 #312 №1811634 
>>1811089
Дохуя лет в питоне и тоже недоволен этой хуйней
Аноним 20/09/20 Вск 17:02:19 #313 №1811637 
>>1811209
Попробуй https://2ch.hk
Аноним 20/09/20 Вск 17:05:57 #314 №1811638 
>>1811637
Еще добавлю. Присмотрись к аргументу permanent, вместо того, чтобы использовать code
Аноним 20/09/20 Вск 17:13:30 #315 №1811645 
>>1811631
Надо POST.
1. В случае GET все ссылки пользователей окажутся в логах сервера.
2. В случае GET можно где-нибудь запостить ссылку типа /short?url= на твой сервис и какая-нибудь генерация превьюшек нагенерит тебе сокращений для левых людей, которые и знать не знали про твой сервис.
3. В случае GET ответ может закешироваться в проксях. Конечно для сокращателя ссылок это наверное не так страшно, но придумать как это может сломать пользовательский опыт можно.
Аноним 20/09/20 Вск 17:16:33 #316 №1811648 
>>1811645
Спасибо, буду делать через пост
Аноним 20/09/20 Вск 18:04:53 #317 №1811702 
>>1811634
Дохуя лет, а мозгов все нет

--> >>1811283
Аноним 20/09/20 Вск 19:43:31 #318 №1811814 
>>1811702
>Можно передавать любой итерируемый объект
Дальше че? Пусть в любом итерируемом объекте будет join, а не только в строке
Аноним 20/09/20 Вск 19:52:14 #319 №1811829 
>>1811814
>Пусть в любом итерируемом объекте будет join
Мальчик, отойди в сторону, не мешайся. Тут Большие Дяди разговаривают
Аноним 20/09/20 Вск 20:05:01 #320 №1811845 
>>1810494
у меня есть опыт работы в ойти почти в 10 лет. нас тут 300 человек на мороз выкинули через layoff. работы много. у меня бывает по 30-50 звонков в день. но многие конторы требуют coding skills, хотя я больше инфраструктуру поддерживал (DevOps я). чтобы попасть в фаанг люди сидят в leetcode по полгода. вот поэтому и интересуюсь на сколько это реально за пару месяцев поднять питон с алгоритмами.
ps: я нахожусь в швятой, да.
Аноним 20/09/20 Вск 20:13:59 #321 №1811860 
>>1811845
>чтобы попасть в фаанг люди сидят в leetcode по полгода. вот поэтому и интересуюсь на сколько это реально за пару месяцев поднять питон с алгоритмами.
>ps: я нахожусь в швятой, да.
Учитывая твой опыт, может хватить и нескольких месяцев. Все зависит от того, чем ты занимался. Может ты десять лет писал круды, и встанешь в ступор при попытке написать алгоритм сортировки.
Аноним 20/09/20 Вск 20:23:28 #322 №1811872 
>>1811860
все так. алгоритмы и питон я учил в 2013 году. все это отвалилось и забылось за ненадобностью. Спасибо, буду долбить. Другого выбора у меня нету.
Аноним 20/09/20 Вск 20:27:20 #323 №1811879 
>>1811829
Дядя, ты бы пиздовал на хабр со своим чсв
Аноним 20/09/20 Вск 21:09:57 #324 №1811909 
>>1811829
>Большие Дяди
Что ты тогда здесь забыл? Иди в джава-тред, писать абстрактные фабрики.
Аноним 20/09/20 Вск 21:14:06 #325 №1811911 
>>1811879
>чсв
кек, чсв любого прогера может пробить стратосферу, от этого не избавиться
Аноним 20/09/20 Вск 21:17:43 #326 №1811918 
Вопрос:

На мой JSON API поступает PUT-запрос, причем в нем заполнены не все поля, а только те, что нужно обновить. Функуция -
@app.route('/product/<id>', methods=['PUT'])
def update_product(id):
product = Product.query.get(id)

name = request.json['name']
description = request.json['description']
price = request.json['price']
qty = request.json['qty']

product.name = name
product.description = description
product.price = price
product.qty = qty

Так вот вопрос - как мне обработать запрос, если в запросе приходит всего одно поле? Покрывать каждое поле if-ами? if 'name' in request.json?
Аноним 20/09/20 Вск 21:23:48 #327 №1811923 
>>1811918
Очень хочется сделать что-то типа:

for i in request.json:
eval(f"product.{i} = request.json)
Аноним 20/09/20 Вск 21:31:45 #328 №1811934 
>>1811923
=request.json

Fix
Аноним 20/09/20 Вск 21:37:13 #329 №1811943 
>>1811934
Макаба разметку сьедает
Аноним 20/09/20 Вск 21:44:00 #330 №1811949 
>>1811923
вообще зависит что у тебя за фреймворк/орм

но как бэ если request.json это что-то типо дикта, а product какой-нибудь орм, то поч не сделать просто
product.update(request.json())

или если совсем тугое апи, то
for k, v in request.json(): setattr(product, k, v)
Аноним 20/09/20 Вск 21:44:38 #331 №1811952 
>>1811949
> product.update(✵✵request.json())
ауе фикс
Аноним 20/09/20 Вск 21:55:28 #332 №1811971 
>>1811949
О! Спасибо тебе, добрый человек.

Аноним 20/09/20 Вск 21:55:30 #333 №1811972 
Аноны, что можно порешать/почитать перед собесом краткого? Боюсь даже самые простые вещи напутать
Аноним 20/09/20 Вск 21:57:18 #334 №1811974 
>>1811972
на leetcode смотришь top interview question с уровнем easy
скорее всего твои интервьюеры возьмут задачи околооттуда
Аноним 20/09/20 Вск 22:38:32 #335 №1812009 
>>1811089
Хуя ебанутые )
Аноним 20/09/20 Вск 22:38:59 #336 №1812010 
>>1811974
Спасибо, анон
Аноним 20/09/20 Вск 22:39:29 #337 №1812012 
>>1811974
Я в гугл проходил интервью на контракт там хард задачи спрашивают.
Аноним 20/09/20 Вск 22:39:54 #338 №1812013 
>>1811918
>@app.route('/product/<id>', methods=['PUT'])
Что это такое?
Аноним 20/09/20 Вск 22:52:01 #339 №1812033 
>>1812009
Автор питона-то? Конечно.
Аноним 20/09/20 Вск 23:05:57 #340 №1812047 
>>1812033
Забавно, что в нескольких виденных мною книгах, охватывающих основы питона, эта и несколько других особенностей специально пояснены. Вероятно, в документации тоже.
Но куда там толпе экспертов-вкатышей. Хорошо хоть большая часть убежала к жабаскриптерам с их смишнявками, которые скоро рандомные хуи на фишки.нет будут знать наизусть.
Аноним 20/09/20 Вск 23:07:15 #341 №1812052 
>>1812047
>эта и несколько других особенностей специально пояснены.
Потому что неинтуитивны, ага.
Аноним 20/09/20 Вск 23:09:43 #342 №1812053 
>>1812052
Да, так бывает. Языку 40 лет, ебать тебя в сраку.
В питоне и так слишком осторожничают, навешивая сто дополнительных контекстов на существующие кейворды, вместо введения новых.
Аноним 20/09/20 Вск 23:12:22 #343 №1812056 
>>1812053
Таки 30, но сути не меняет.
Аноним 20/09/20 Вск 23:26:37 #344 №1812064 
>>1812053
В третьей версии сломали совместимость со второй.
Аноним 20/09/20 Вск 23:29:32 #345 №1812067 
>>1812064
На это потребовалось десять лет, причем список критических изменений весьма небольшой. И этот самый переход до сих пор не закончен. Нубы уже безальтернативно учат 3, но ровным пасанам надо знать оба.
Аноним 20/09/20 Вск 23:38:40 #346 №1812072 
>>1812013
Декоратор фласка.
Аноним 20/09/20 Вск 23:38:49 #347 №1812073 
>>1812052
>Потому что неинтуитивны, ага.
оно непривычно, но очень полезно ведь может пережевать все, что может итерироваться. а итерироватся может много чего в том числе и пользовательского

в языке где
in obj вместо obj.contains так то нормально
Аноним 20/09/20 Вск 23:44:01 #348 №1812077 
>>1812073
Причина не в этом. Есть тот же len, который опирается на дандер-методы для каждого кастомного объекта. В случае с джойном решила семантика: строковый метод - получаем строку.
Аноним 20/09/20 Вск 23:45:55 #349 №1812079 
>>1812073
>in obj вместо obj.contains
Да, кстати. По привычке пишу if jopa.__contains__(huy)
Аноним 21/09/20 Пнд 08:23:10 #350 №1812201 
Хочу писать тг ботов и вот столкнулся с декораторами. В прошлом треде анон норм пояснил так. Но, я понял, но не совсем. Понял только что такой блок экономит время и удобнее писать. Можно еще пояснить плис за дек-ы. Например как делать декоратор. Написать раз ф-ю, потом в нее заворачивать остальные, или как? Как вообще такая хуйня делается. Понял что удобно. Объявил, и пишешь только то что она должна делать, остальное где-то написано и ладно. Поясните плис. Кста сколько роликов не смотрел по дек-ы все говорят по разному и пишут. Почему это так сложна ааааа блжд.
Аноним 21/09/20 Пнд 08:46:11 #351 №1812211 
>>1812201
Изучаем пайтон том 2 глава 39 декораторы
Аноним 21/09/20 Пнд 09:25:39 #352 №1812221 

def f(x = 1):
x = x + 1
print(x)

f()
f()
f()


vs


def g(y = []):
y.append(0)
print(y)

g()
g()
g()

результат второго:
[0]
[0, 0]
[0, 0, 0]

Зин, какого хуя?
Аноним 21/09/20 Пнд 10:37:00 #353 №1812266 
>>1812221
список y он один на всех. особенность создания функций в питоне
Аноним 21/09/20 Пнд 11:29:58 #354 №1812305 
>>1812221
можешь сделать так с первой
def f(x=1):
f.__defaults__ = (x + 1,)
print(x)
Аноним 21/09/20 Пнд 12:33:01 #355 №1812365 
Сап, двач.
Недавно совсем начал изучать язык и возник вопрос , где можно было бы найти человека , который мог бы помочь с изучением, мог бы отвечать на мои тупые вопросы и направлять? Так сказать ментора.
С одной стороны не понимаю зачем это кому то может быть нужно, кроме может быть поднятия каким то образом ЧСВ, но с другой стороны наличие старшего опытного товарища крайне ускорило бы процесс вхождения в тему.
В общем, как- то криво описал, но надеюсь мой вопрос понятен.
Аноним 21/09/20 Пнд 12:37:23 #356 №1812372 
>>1812365
За менторство берут почасовую оплату, цена тебе не понравится.
Аноним 21/09/20 Пнд 13:02:55 #357 №1812403 
>>1812365
зачем тебе 1 человек если есть целый тред проффессианальных кодерков 300к наносек?задовай свои ответы
>который мог бы направлять
направляю проверяй хауди хо пайтон за час
Аноним 21/09/20 Пнд 14:12:23 #358 №1812475 
>>1811209
Анон, решил проблему? Если да, то скажи как
Аноним 21/09/20 Пнд 14:56:57 #359 №1812519 
>>1811139
ну всегда так было. во всех остальных языках семантика именно такая.
Аноним 21/09/20 Пнд 16:13:44 #360 №1812618 
image.png
jaba.PNG
посоны, а как лучше? как в жабе/c# или как на любимом питончике?
Аноним 21/09/20 Пнд 16:32:03 #361 №1812633 
>>1812618
интуитивнее выгодяти как
модуль.функция(параметры)
в питоне извернули
Аноним 21/09/20 Пнд 16:32:47 #362 №1812634 
>>1812618
на джавескрипт
Аноним 21/09/20 Пнд 17:18:43 #363 №1812673 
Снимок экрана 2020-09-21 в 20.57.37.png
Сап, программисты.
Тут такое дело.. хочу написать бота для Discord'a на питоне. И все бы ничего, но возникла одна проблема.
Необходимо создать команду, при которой бот создает голосование (Embed с реакцией). И с этой задачей я справился. Но в силу своих умственных умений, не сумел справиться со второй задачей - рандом пик участника, который нажал на реакцию (при этом еще идет таймер на минуту, дабы все успели кликнуть).
Искренне надеюсь на помощь анона.
Пик рил - часть кода, где, собственно, располагается команда.
Аноним 21/09/20 Пнд 20:35:14 #364 №1812850 
teeth.png
Делаю гуи программу, которая помимо тектовой информации с интернета загружает и отображает картинки.
Вот только делает она это каждый раз когда надо эти картинки показать.

То есть у меня есть фильм, к нему название, дата выпуска, обложка и тд.

Как это делать кешировать, чтобы каждый раз не загружать?

Аноним 21/09/20 Пнд 20:43:14 #365 №1812855 
>>1812850
Чисто предположение, можно записывать в некий файл все ссылки на загруженные картинки и если на сайте есть картинка с ссылкой которая уже есть, то брать картинку из папки с загруженными картинками. Так же можно создавать папку под все файлы конкретного url, если нужно загрузить новый урл, то создавать папку и туда все складировать, если папка с таким урлом уже есть, то брать файлы из нее
Аноним 21/09/20 Пнд 21:35:49 #366 №1812876 
>>1812855
Я тоже думал про папки.
Неужели нет другого метода
Аноним 21/09/20 Пнд 22:40:42 #367 №1812942 
>>1812876
Посмотри как браузер кеширует, мне кажется это самая простая реализация, кстати, если это твой пэт проект и ты хотел бы еще кого-то пригласить к разработке, пиши tg @yellowpearl
Аноним 21/09/20 Пнд 23:06:47 #368 №1812970 
>>1812942
Да у меня там какашка. Я сам только наполовину понимаю что я делаю
Аноним 21/09/20 Пнд 23:31:17 #369 №1812981 
Аноны, скажите пожалуйста, уже голова не соображает, я получаю POST запрос, декодирую его и все слеши и двоеточия превращаются в %3A%2F%2F, во что декодировать, чтобы в программе все нормально было, чтобы были слеши и двоеточия
Аноним 21/09/20 Пнд 23:31:47 #370 №1812983 
image.png
ХАй челики, помогите разобраться, что ту на картинке присходит
Аноним 22/09/20 Втр 00:00:32 #371 №1812996 
>>1812983

потому что str.join он принимает self!!! потому такая магия
Аноним 22/09/20 Втр 00:58:09 #372 №1813010 
>>1812983
reduce - это fold из функциональных языков программирования. Первым аргументом должна идти функция с двумя аргументами, которая возвращает объект того же типа что и оба аргумента.

str.fold - это метод с одним аргументом, но поскольку ты его вызываешь из класса, а не объекта, то self считается за еще один аргумент и используется по назначению. То есть str.join('a', 'b') превращается в 'a'.join('b'), и возвращает 'b' (второй аргумент). Так что твоя хуйня должна вывести последний элемент в массиве.
Аноним 22/09/20 Втр 01:04:12 #373 №1813011 
>>1813010
>То есть str.join('a', 'b') превращается в 'a'.join('b')
О, а вот это прикольно.
Аноним 22/09/20 Втр 05:17:35 #374 №1813042 
image.png
>>1813010
>Так что твоя хуйня должна вывести последний элемент в массиве.
нет
Аноним 22/09/20 Втр 06:20:58 #375 №1813055 
>>1813042
>нет
Да, проебался. Если строки в массиве из одного символа, то выведет последнюю, а иначе получается то, что у тебя.

А все потому, что join в качестве аргумента ожидает список, а ты суешь ему строку. Но поскольку они оба (список и строка) iterable, то оно работает, и получается, что после каждого символа во второй строке вставляется первая строка.

То есть str.join("govno", "mocha") превращается в "govno".join("mocha"), что эквивалентно "govno".join(["m", "o", "c", "h", "a"]), и получается mgovnoogovnocgovnohgovnoa.
Аноним 22/09/20 Втр 10:55:42 #376 №1813076 
Почему в Techempower джанга такая медленная?
Аноним 22/09/20 Втр 11:42:24 #377 №1813107 
>>1812981
from urllib.parse import parse_qs

decoded_url = parse_qs('https://www.google.com/search?q=url+example&oq=url+exa&aqs=chrome.0.0j69i57j0l6.2350j0j7&sourceid=chrome&ie=UTF-8')

{'https://www.google.com/search?q': ['url example'], 'oq': ['url exa'], 'aqs': ['chrome.0.0j69i57j0l6.2350j0j7'], 'sourceid': ['chrome'], 'ie': ['UTF-8']}

тип - словарь
Аноним 22/09/20 Втр 13:04:09 #378 №1813191 
>>1812673
Я не понял, что ты хочешь, но у меня сразу 2 вопроса:
1.Почему таймер поставлен на 10 сек, а не на минуту?
2. Почему ты вызываешь синхронный слип в асинхронной функции, а не asyncio.sleep?
Аноним 22/09/20 Втр 13:23:54 #379 №1813210 
>>1803801 (OP)
Как заделать авторизацию (проверку прав юзера) на серваке на aiohttp? Я как джангодаун привык что в каждом реквесте есть переменная user, с которой можно мутить что угодно, а как авторизацию имплементить в aiohttp?
Аноним 22/09/20 Втр 13:30:06 #380 №1813214 
>>1811040
Дак ты не на память показывай, а реальные данные на которых не работает. Желательно скрином
Аноним 22/09/20 Втр 14:04:55 #381 №1813245 
>>1813210
aiohttp-session
Аноним 22/09/20 Втр 14:42:30 #382 №1813257 
>>1813107
Мое приложение принимает в пост запросе ссылку, а когда мне нужно получить тело запроса его нужно декодить, в итоге все слеши и двоеточия неправильно кодировки
Аноним 22/09/20 Втр 17:07:06 #383 №1813359 
Киньте ссыль на чат в тг по джанго плис.
Аноним 22/09/20 Втр 18:06:46 #384 №1813433 
>>1813257
Версия питухона? Фреймворк какой?
Аноним 22/09/20 Втр 18:12:07 #385 №1813438 
>>1813433
Версия соси хуй, фреймворк пошел нахуй, как-то так.
Аноним 22/09/20 Втр 18:14:30 #386 №1813442 
>>1813438
Ну тогда понятно, почему у тебя все через анус работает
Аноним 22/09/20 Втр 18:17:14 #387 №1813449 
Где можно прочитать про метод формат и функцию формат на простом языке? Меня напрягают конструкции вроде "{0:,.2f}".format(данные). Хочу более лаконичное форматирование.
Аноним 22/09/20 Втр 19:54:06 #388 №1813511 
изображение.png
изображение.png
Почему так?
word_1 это строка
Причем если просто написать
search_result.append(word_1)
print(search_result)
то список выводится на экран нормально
Аноним 22/09/20 Втр 19:59:25 #389 №1813513 
>>1813511
Потому что append изменяет лист и ничего не возвращает.
Аноним 22/09/20 Втр 20:45:43 #390 №1813539 
>>1813438
Ребенок, пиздуй-ка дальше раковать в вкшечке
Аноним 22/09/20 Втр 21:28:22 #391 №1813560 
15969961402640.jpg
>>1813539
Аноним 22/09/20 Втр 22:24:10 #392 №1813615 
>>1813191
Таймер на 10 сек для теста. А второе хуй знает. 4-й день пишу бота и за 4 дня не сильно разобрался в питоне.
Аноним 22/09/20 Втр 22:36:37 #393 №1813623 
image.png
Ну ебаный в рот, слово prepend питонистам незнакомо?
Аноним 22/09/20 Втр 23:03:27 #394 №1813647 
>>1813623
>prepend
подразумевает добавление в начало чего-либо.
а теперь вопрос на сеньёра:
а где начало у деки? слева или справа?
Аноним 22/09/20 Втр 23:16:02 #395 №1813660 
>>1813615
Иди читай сначала, а потом пиши, чукча.
Аноним 22/09/20 Втр 23:16:16 #396 №1813661 
>>1813647
А ты араб или европеец?
Аноним 22/09/20 Втр 23:18:52 #397 №1813665 
>>1803801 (OP)
Змеены, а кто-нибудь разбирался в кишках tk/tkinter? Мне нужно рендерить кнопочки-курсорчики в картинку без вывода гуя на десктоп, а пользовательский ввод получать инжектом координат, эвентов и прочего мусора. Просто результатом отображения должен быть массив пикселей, который будет потом пожат и отправлен юзеру. Там можно так сделать или все гвоздями к x11/окнам приколочено?

Может, есть какая-нибудь батарейка для такого эрзац-гуя?
Аноним 23/09/20 Срд 03:45:10 #398 №1813774 
Если при создании класса, создать метод-конструктор с именем __init__ этот метод будет автоматически вызываться при возникновении каждого очередного объекта соответствующего класса.
Если я создам метод с другим именем, но тоже с двумя нижними подчёркиваниями в каждой стороны, этот метод будет тоже вызываться автоматом, или нет?
Аноним 23/09/20 Срд 05:00:07 #399 №1813787 
GRAF.jpg
Аноны вопрос по графам, а точней по алгоритму Дейксты

написал функцию
https://pastebin.com/JKJHfXyn

Она выводит все веса(или расстояния ) от начальной точки.

Вопрос состоит в том, как добавить запись самих вершин короткого пути.

Например чтобы путь от А до D выводило так - ABCD - 65
Аноним 23/09/20 Срд 05:23:24 #400 №1813789 
>>1813774
нет не будет, ели очень надо то можешь просто создать метод и вызвать его в том же ините если надо и при создании экземпляра класса он отработает,
Аноним 23/09/20 Срд 05:36:21 #401 №1813791 
>>1813789
Спасибо
ТУЛЗА Аноним 23/09/20 Срд 11:07:46 #402 №1813935 
Ест ли какая-нибудь приблуда для наглядного проектирования структур данных? Я привык сначала расписывать на бумажке все структуры, но хотелось бы автоматизации и всяких свистелок с перделками. Да ещё у меня вложенные классы, словари и всякие списки списков словарей. Нужна большая вложенность и древовидность,что не на каждую бумажку влезет.

Тружновато каждый раз это прогонять через дебаггер PyCharma - он ещё более менее показывает ту структуру, которую хотелось бы от инструмента проектирования.
Аноним 23/09/20 Срд 11:36:12 #403 №1813982 
>>1813935
uml
Аноним 23/09/20 Срд 11:39:48 #404 №1813990 
Не могу понять, зачем на хх ру объявы, на должности питониста, если есть биржи фриланса. Где можно взять додика за 500 рублей. Или когда есть готовые решения на гите. Можно взять подправить и работать дальше. Если все так просто, то почему работодатель так щепетилен в плане образования макаки и прочего, знаний алгоритмов и тд и тп. Сам яп питон прост как палка, уже все написано, каждая либо задокументирована. ТАк почему так сложно найти работу, тем более, что стеки питоне - нигде не учат. Ну нашли одного, ученого, он все сделал, набрали других, обучили. И все. Нипонимаю, объясните.
Аноним 23/09/20 Срд 11:51:46 #405 №1814006 
>>1813990
Зеленый или никогда не работал?
Аноним 23/09/20 Срд 11:55:10 #406 №1814011 
>>1814006
Нет, я не зеленый очень серьезно спрашиваю. Мне на самом деле интересно почему так. Когда можно взять однгого, он обучит остальных. Питону не учат в универах, так же как бэкенду и фронтенду. Каждый работ предлагает свою стек, нет единой унификации - те что конкретно нужно знать. Заметил - знать надо вообще все. Это просто нереально.
Аноним 23/09/20 Срд 11:57:54 #407 №1814016 
>>1814011
Питон один из инструментов не более. Как минимум нужно понимать сетевой стэк, базы данных и паттерны проектирования.
Аноним 23/09/20 Срд 12:02:12 #408 №1814026 
>>1814016
Да, все по часу на ютабе. Но работодателю этого не достаточно. В требованиях пишут знания несколько яп. Также, знание всяких фреймов. Те помимо базы что ты указал, которую можно выучить на ютабе за день, нужно знать еще овердохуя всего, и либ на питоне, и других япов. И что самое интересное, на одну задачу - овердохуя либ, фреймов, решений и тд и тп. А единой унификации нету. В итоге, хз что учить, где учить. Как вообще устроиться на работку прогером. Думаю в рашке только такая трабла. В школе и в вузах учат хуйне, но кроме дс наверное.
Аноним 23/09/20 Срд 12:05:49 #409 №1814028 
>>1814026
>Да, все по часу на ютабе. Но работодателю этого не достаточно.
Правильно что недостаточно, за час ты вообще ничего не узнаешь.
Обосрешься на первой таске, так как нет опыта и практики.
> Как вообще устроиться на работку прогером. Думаю в рашке только такая трабла.
Да конечно, проблема в стране.
Аноним 23/09/20 Срд 14:17:57 #410 №1814139 
>>1813665
чето странное выдумал.
передавать в консольку данные от удаленного процесса чтобы локально рендерился гуй?


ладно. ты смотрел guizero ?
а jupyter kernel protocol?
Аноним 23/09/20 Срд 14:53:43 #411 №1814190 
>>1814026
>Да, все по часу на ютабе
Учебник по матану можно за 2 дня прочитать, по линейной алгебре ну еще 2. Ты сразу можешь в магистратуру идти, хули 5 лет терять.
Аноним 23/09/20 Срд 14:59:16 #412 №1814201 
>>1814190
Ну да. В итоге, ни опыта, ни работы, ничего. За 5 лет технологии шагнули вперед, и вот ты знаешь, что есть матан, высшая алгербра. И появилось еще 100500 либ и еще 100500 обновилось. Ты тратишь еще 5 лет на обучение, сидя дома. Итого 10 лет, без опыта. Ты изучил все, без опыта. И снова
И появилось еще 100500 либ и еще 100500 обновилось. Ты тратишь еще 5 лет на обучение, сидя дома. Итого 10 лет, без опыта. Ты
a = 'И появилось еще 100500 либ и еще 100500 обновилось. Ты тратишь еще 5 лет на обучение, сидя дома. Итого 10 лет, без опыта. Ты '
While True:
Дальше сам уже.
Аноним 23/09/20 Срд 15:21:17 #413 №1814239 
>>1814201
Я про это и говорю, в теории все просто и понятно, пока не попадаешь на задачи из реального мира.
Аноним 23/09/20 Срд 16:27:27 #414 №1814301 
>>1813787
Так же как и веса. Для каждого neighbour записываешь node, которая дала new_distance, типа предыдущая точка на пути. Потом смотришь какая предыдущая нода у D, какая предыдущая у предыдущей и т.д.
https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
Аноним 23/09/20 Срд 16:41:06 #415 №1814307 
>>1814139

Первое не то, просто гуй-либа, а второе прям из пушки по воробьям.

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

VNC передает просто картинку, то есть моя задача - собрать гуевое окошко, передать либе координаты пользовательского курсора и эвенты нажатия мыши, отрендерить результат, отправить его по VNC клиенту.
Аноним 23/09/20 Срд 17:31:03 #416 №1814379 
Kc651HQgTA.jpg
>>1814026
>Да, все по часу на ютабе
Аноним 23/09/20 Срд 17:31:59 #417 №1814380 
image.png
Аноним 23/09/20 Срд 17:32:57 #418 №1814381 
>>1814239
Я тебе про это и пишу, решает навык программирования на питоне. То есть навык. Навык. Навыыыык. НАВЫК.
А не книги по матану.
Работодателю, любому, нужна скорость решения задачи, чтобы было быстро и качественно, исходя из этого, надо делать быстро и качественно. То что он сказал, не больше.
Вот начитался ты курсов, хуйни из вузов, матана. Пришел, тебе дали реальное задание, сделать то то и то то. Нвыка нету. Хуй пойми какие либы. Как все это собрать и тд и тп. В итоге - дверь.
Тем более в рашке, все доки до на ангельском. Пока прочитаешь, переведешь, въедешь. Набьеш скилл. Снова - дверь. Прочитал одно на русском. уже версия питона - 6,0. Снова - дверь.
Я понимаю дрочить питон, и работу на нем со школы или вуза. А не так, вместе с бейсиком или паскалем. То есть учить сразу, решать задачи, которые нужны в реальном времени. Такого на сегодняшшний день - нигде нету, ни в одном вузе и ни в одной школе.
Нет унификации, единого требования, все решается через множество япов. Алгов и тд и тп. В итоге, хуй вообще пойми что делать. Я еще понимаю, в конторе работает друг. ХОтя бы подскаже куда копать. А так пришел, дали тз, и ушел.
Аноним 23/09/20 Срд 17:38:49 #419 №1814386 
>>1814381
Так и задачи у всех разные. Подключиться к БД или запилить pool connection это навык на питоне?
А создать robust pool connection? А определить где хранить промежуточные данные в SQL или NoSQL? Хуй знает.
Ты сейчас говоришь про minimum viable project, который потом рефакторится и развивается.

Алсо, я так и работал. Дали ТЗ и предложили на выбор Java или Python. Легаси был на Java, были утечки памяти, в итоге все к хуям переписал на питухоне, потому что скорость разработки выше. Рефакторил после смены ТЗ и версий API.
Аноним 23/09/20 Срд 17:42:32 #420 №1814392 
15931986035840.jpg
>>1814380
Я в ебучей яме.
Аноним 23/09/20 Срд 17:44:20 #421 №1814395 
>>1814386
Я тащемто про обучение. Выше уже писали, что на каждый чих - уже готово решение, мб только литл разница и все. Те именно для этой разницы и нужны челики дяде. Чтобы править. А с нуля - уже тоже есть решения. Так вот. Почему бы в вузах - школах, уже не готовить птонистов. Чтобы дрочить что нужно на работе там, нарабатывать скил - чтобы быстро и качественно. А то на выходе - выучил матан, физику, химию, бейсик. И все. И нихуя. Я например, хочу вкатиться, но меня не пригалашают. Мб потому что образование не профильное. А мб боятся что я тупо зафейлю. Я например, тоже боюсь что то делать с нуля. Дадаут тз если, сразу полезу в гугл, ютаб. Это потому, что в реальной жизни все по другому чем у лутца.
Аноним 23/09/20 Срд 17:48:52 #422 №1814400 
>>1814395
А почему Java не учить? В МФТИ есть питонисты, тащемта.
Django например тупой комбайн AIO и примеров бэка на на нем овердохуя.
Какие готовые решения есть? Есть несколько систем, надо сделать адаптер, чтобы они могли общаться. Пишешь на питухоне такой адаптер. В одной системе запросы по SOAP, в другой REST.
Нужно хранить логи и промежуточные данные. Вот тебе реальная задача. Вот реальная задача.
Аноним 23/09/20 Срд 18:00:02 #423 №1814410 
>>1814400
блжд, мск. в моем мухосранске - нету такого, даже явы лол. Я про это и говорю, что дсам повезло, их могут научить, тянуть. А меня - никто не тянет, и друзей в этой сфере нету. И все вузы - еще и платные. Вот я сам и ебусь. Плюс - я не так охуенно знаю англ, на уровне со влоарем. Мониторю хх ру, там требования, ебал я в рот. Очень много надо знать, опыт, и все с нуля ебать. Этому лутц меня не учил.
Аноним 23/09/20 Срд 18:00:26 #424 №1814411 
>>1814395
> по другому чем у лутца
лутц это не питон это просто книжка по его синтаксису, хотя я более чем уверен что ты и половины ее не осилил
>готовить питонистов
обилие инфоциган явно показывает, что питонистов и так готовят
>меня не пригалашают
с таким отношением тебя даже на час просмотра зарплаты програмиста на ютубе не позовут
Аноним 23/09/20 Срд 18:01:54 #425 №1814414 
>>1814307
господи, НАХУЯ ?
в чем профит если есть X11 ?
Аноним 23/09/20 Срд 18:04:33 #426 №1814417 
>>1814411
Да нет, просто нужна работа. А на работе, в отличии от твоего маня мира требуют чтобы работа была сделана)
сори если рушу твоего лутца.
Аноним 23/09/20 Срд 18:08:05 #427 №1814422 
>>1814417
Ну лутц то про програмирование, а тебе нужна работа такая чтобы по праздникам можно было куриный доширак купить комуналку платить и на средней дешовости интернет чтобы позволял на дваче срать
Аноним 23/09/20 Срд 18:11:19 #428 №1814427 
>>1814410
ты просто сыкливый. Я пришел считай нулевый с Java Core и начальным питухоном. В итоге все на месте освоил, потому что например Лутц не учит как работать с RabbitMQ или как пользоваться ORM и нужна ли она или прямые запросы, лол.
Специальность мат методы в экономике, но я все нахуй растерял, перекатился в программирование в 29, короче 2 года только.
Никто не тянул, пиздил сначала код с SO, спрашивал там, потом начал гуглить, смотреть кто и как реализовывал какие-то задачи, потом тупо читал руководства по библиотеками, теперь еще и issues на github.
А хули делать? IT оно такое, иногда и без наставников ебашишь.
Аноним 23/09/20 Срд 18:12:34 #429 №1814429 
>>1814422
> а тебе нужна работа такая
> ты не должне жить
> ты унтерменш
> ты не человек
> ты конченный скот
> потому что я белый человек и так решил, потому что закончил мфти. А ты - нет. Я гитлер на яве, а ты - мразь на питухоне от инфоциган, на котором ездят луноходы на марсе, пашет инста и ютуб, и еще куча всякой хуеты вплоть до этой борды.

Ну глупо, рили так рассуждать.
Аноним 23/09/20 Срд 18:14:12 #430 №1814430 
>>1814427
Бд и брокеры это вообще отдельная от языка тема.
Аноним 23/09/20 Срд 18:15:57 #431 №1814432 
>>1814427
>Лутц не учит как работать с RabbitMQ
бля люто плюсую ну че ему сложно чтоле пидорасу старому а заодно и монге пусть научит и джаве скрипту ну и скл за одно куда же без него , вот же пидорас ленивый не учит нихуя
Аноним 23/09/20 Срд 18:19:11 #432 №1814435 
>>1814432
И докеру, и новому синтаксису, и новому форматированию, и рыночным отношениям, и как искать работу, и как идти нахуй, как в рашке устроится прогером, как в мухосранске найти работу на питухоне, как знать все и сразу, как написать твитер с нуля, и торнадо, и фласк, и .... и ... и вообще все и сразу. Вот сука то.
Аноним 23/09/20 Срд 18:28:32 #433 №1814450 
>>1814430
Ну не учат! Не учат жи! Как так!?
Аноним 23/09/20 Срд 18:30:10 #434 №1814453 
>>1814432
А что там с монгой? РКН заблокировали сайт с документацией и примерами? Доступ стал платным? Уууу рашка. Надо валить.
Аноним 23/09/20 Срд 18:32:26 #435 №1814460 
>>1814453
да че с ней че с ней это че с лутцом че ему трудно научить чтоли анонов желающих работать и чтоб работа была сделана и опыта еще дать и профильное образование чтоб на собеседования звали?
>Надо валить.
Кого?
Аноним 23/09/20 Срд 18:34:18 #436 №1814464 
>>1814453
Ну а вообще согласен, где это видано чтобы работать програмистом надо оказывается уметь программировать, пиздец рашка о5 дно пробивает
Аноним 23/09/20 Срд 18:47:24 #437 №1814469 
>>1814026
>Но работодателю этого не достаточно.
скажи ему этому обэмэ работадателю что ты квалифицированный специолист, у тебя такие мощные проэкты как просмтр хауди хо пайтон за час и джанго за час, и что он полный дурак раз ему этого недостаточно
Аноним 23/09/20 Срд 18:54:27 #438 №1814472 
>>1814414

Профит в том, что источником изображения для VNC является не ось, а видеозахват. То есть у меня нет ни X11 на стороне сервера. У меня там кроме картинки из устройства вообще ничего нет.

Блядь, я не хочу аттеншнвхорить, просто показать будет проще: https://github.com/pikvm/pikvm

Я сделал байду, которая изображает из себя недо-IPMI. Мне надо в VNC, в котором рисуется BIOS компа, сделать менюшку для управления питанием и подключения сменных носителей. Ну и у меня два пути: сделать расширение протокола (его согласны добавить к себе и в стандарт челы из TigerVNC, потому что проект - не хуй с горы и пользователей много), либо рисовать картинку.. Я склоняюсь к картинке, потому что протокол потом в стандарте не допилишь, а мало ли чего мне еще захочется рисовать.
Аноним 23/09/20 Срд 19:00:25 #439 №1814474 
>>1814472
Какой-то проект заброшенный был VNC на питоне с PyGame
Аноним 23/09/20 Срд 19:05:25 #440 №1814478 
>>1814474

О, вот pygame наверное подойдет. Чот я забыл про него. Спасибо.
Аноним 23/09/20 Срд 21:30:11 #441 №1814532 
Двач, как сделать выход из этого цикла? нужно, чтобы когда вводишь exit, цикл, ну или вся программа прекращала работу.

while True:
choose = int(input("would like to view: > "))
print(animals[choose])
Аноним 23/09/20 Срд 21:33:44 #442 №1814537 
>>1814532
while True:
----choose = input("would like to view: > ")
----if choose == "exit":
--------break
----else:
--------choose = int(choose)
--------print(animals[choose])
Аноним 23/09/20 Срд 21:35:56 #443 №1814538 
>>1814537
от души, не додумался, что сначала нужно делать проверку на выход
Аноним 23/09/20 Срд 21:46:18 #444 №1814545 
Какое самое лучшее решения бекенад на питоне? И где можно эти решения посмотреть или комбинации разлинчые, про фласк там или еще как-то.
Аноним 23/09/20 Срд 22:02:50 #445 №1814565 
я не пойму, почему конструкция вида

a = ['один', ',', 'два', ',', 'три']
b = ' '.join(a)
b.replace(' , ', ', ')
print(b)

выдает
один , два , три
вместо
один, два, три
с пробелами по обе стороны запятой? Как их убрать в итоге?
Аноним 23/09/20 Срд 22:04:22 #446 №1814567 
>>1814565
strip
Аноним 23/09/20 Срд 22:14:59 #447 №1814575 
>>1814567
стрип же удалит все пробелы вместо одного перед запятой
Аноним 23/09/20 Срд 22:20:19 #448 №1814581 
бля, оказывается есть разница между одинарными и двойными кавычками
Аноним 23/09/20 Срд 22:21:16 #449 №1814583 
>>1814565

>b.replace(' , ', ', ')

b = b.replace(' , ', ', ')
Аноним 24/09/20 Чтв 00:03:09 #450 №1814646 
Пацаны, те кто тут сидит, кто реально нашёл работу на Питоне? И в каком направлении? Это ваш первый язык или нет?
Аноним 24/09/20 Чтв 01:34:15 #451 №1814693 
self.PNG
Каждый метод экземпляра должен иметь первый параметр self
Объясните пожалуйста максимально доступно, как ребёнку, зачем?
Что означает строка self.name = name
Аноним 24/09/20 Чтв 01:34:49 #452 №1814694 
Питонисты, расскажите, в чём вы пишите свой код. Какая-нибудь IDE? Какая? Как вообще выглядит профессиональное использование питона? Посмотрел бы что-то типа стрима рабочего дня.
Аноним 24/09/20 Чтв 02:07:59 #453 №1814728 
>>1814694
>Питонисты, расскажите, в чём вы пишите свой код. Какая-нибудь IDE? Какая?
PyCharm + Cmder в качестве терминала + Sublime для редактирования отдельных файлов, не входящих в проект.
Аноним 24/09/20 Чтв 02:17:06 #454 №1814737 
>>1814728
Благодарствую
Аноним 24/09/20 Чтв 03:13:49 #455 №1814752 
>>1814693
>зачем?
затем, что гвидо так захотел. ни больше, ни меньше.

>Что означает строка self.name = name
self - ссылка на себя
self.name - создать в себе переменную name
self.name = name - инициализировать переменную name аргументом функции __init__
Аноним 24/09/20 Чтв 03:21:49 #456 №1814754 
>>1814752
Пожалуй даже добавлю это в код, в качестве комментария.
Спасибо!
Аноним 24/09/20 Чтв 11:15:11 #457 №1814901 
>>1814301
>>1814301
а если путей несколько? от старта идут 3-4 ветвления и к конечной точке идет столько же?
каша же получится
алгоритм чекает самое короткое расстояние и он будет скакать по всему графу
Аноним 24/09/20 Чтв 11:27:25 #458 №1814914 
>>1814694
VSCode с плагинами, Пучарм прожорливый. ГУИ для подключения к БД - DBeaver, потому что у него куча драйверов, из минусов - Java/JDBC
Аноним 24/09/20 Чтв 12:19:11 #459 №1814964 
PyPy позволяет использовать многопоточность на полную?
Аноним 24/09/20 Чтв 13:00:25 #460 №1815034 
def fahrenheit_to_celsius(fahrenheit=int(input())):
celsius = (fahrenheit - 32) * 5 / 9
round(celsius, 3)
return celsius


print(fahrenheit_to_celsius())

Почему число не округляется?
Аноним 24/09/20 Чтв 13:26:13 #461 №1815059 
>>1814532
Чел.. Ну реально..
Аноним 24/09/20 Чтв 13:34:49 #462 №1815064 
>>1814964
>Pypy won't resolve Python problems of running a single-thread each time, since it also makes use of the GIL - http://doc.pypy.org/en/latest/faq.html#does-pypy-have-a-gil-why
Аноним 24/09/20 Чтв 13:48:48 #463 №1815072 
>>1815034
наверное потому что значение в переменной не перезаписывается?

celsius = round((farenheit-32)*5/9, 3)
return celsius

Аноним 24/09/20 Чтв 14:17:47 #464 №1815080 
>>1815059
я с функциями в первый раз работаю

>>1815072
от души
Аноним 24/09/20 Чтв 14:59:24 #465 №1815105 
>>1815080
ты учти, что когда над объектом проводится операция, то либо ты в новую переменную сохраняешь, либо перезаписываешь текущую. Так-то за тебя ни интерпретатор, ни компилятор не додумает надо тебе результат сохранять или выбросить его к хуям при сборке мусора.
Ты провел операцию округления, но результат не сохранил в переменной. Учти, что питухон прожорливый, чем меньше переменных с выделением ячеек в памяти, тем проще сборщику мусора. Тем более динамическая типизация.
Аноним 24/09/20 Чтв 17:50:47 #466 №1815277 
>>1815034
Питурд задачки где-то решает, а двач ему помогай.
Аноним 24/09/20 Чтв 18:19:09 #467 №1815309 
>>1815277
решаю, на хайпер скиле, что не так?
Аноним 24/09/20 Чтв 18:44:39 #468 №1815322 
Анон поясни за функцию
def pairs(arr):
return sum( abs(a-b)==1 for a,b in zip(arr[::2],arr[1::2]) )
print(pairs([21, 20, 22, 40, 39, -56, 30, -55, 95, 94]))

что записывает в кортеж вот ето выражение abs(a-b)==1
оно же блядь логическое и с ним функция sum не должна работать

Аноним 24/09/20 Чтв 18:54:33 #469 №1815330 
>>1815322
Почему не должна. int(True)=1
Аноним 24/09/20 Чтв 19:00:41 #470 №1815333 
>>1815322
какой лять кортеж? он тебе количество пар выдает между которыми расстояние 1.
Аноним 24/09/20 Чтв 21:13:30 #471 №1815483 
Соре за тупой вопрос, только начал изучение
Дан произвольный список, содержащий и строки и числа.
Аноним 24/09/20 Чтв 21:16:04 #472 №1815486 
image.png
Соре за тупой вопрос, только начал изучение
Есть задание:
Дан произвольный список, содержащий и строки и числа.
Выведите все нечетные элементы в одной строке.

Вопрос в том, как мне сделать список, содержащий СТРОКИ и ЧИСЛА
Что не так на пикриле?
Аноним 24/09/20 Чтв 21:18:10 #473 №1815488 
Аноны, что значит этапы разработки веб-приложения?
И еще такой вопрос, кто работает, можно уточнить для чего именно пилят эти самые веб-приложения, ну примерно. Не просто же сайты, фирмам надо для чего-то же. И по стеку. Джанги хватит? Или надо фласк и батл и пирамиды всякие знать. Что посоветуете для изучения? какие связки лучше юзать или дрочить.
Например - бд sql alchemy
веб - джанго, фласк или что?
для деплоя че докера хватит? или надо дрочить ансиблы всякие?
Ну и для девопа что дрочить? датадога хватит?
Мне просто интересно, как происходит процесс создания веб приложух. С чего начинают, и тд и тп. Опыта нету просто. Читаю вакансии, пишут кто на что горазд, а что дрочить то конкретно?
А, ну для фронта что? явы хватит с хтмл и кссом?
Аноним 24/09/20 Чтв 21:40:38 #474 №1815512 
>>1815486
Можешь так:

import random
str_or_int = lambda x : str(x) if random.randint(10)<5 else x
ls = [str_or_int(x) for x in random.sample(range(1,100),10)]

Не заморачиваясь, строка, содержащая число все равно считается строкой.
Аноним 24/09/20 Чтв 21:42:08 #475 №1815515 
>>1815486
Но тем не менее твой список в порядке, может с отступами проебался где-нибудь.
Аноним 24/09/20 Чтв 21:43:03 #476 №1815517 
>>1815488
> этапы разработки веб-приложения?
там сбор требований, формулирование задач, реализация, ревью, тестирование, выкатка, мониторинг и так по кругу

> для чего именно пилят эти самые веб-приложения, ну примерно
для того чтобы приносить бабло, либо это сайты на заказ, которые делают какую-то хитрую штуку, либо внутренние тулзы для бизнеса, либо API для каких-то сервисов. 99% случаев это получить json, распарсить, положить в БД, отправить емеил, тыкнуть внешний сервис, собрать json

> Джанги хватит?
да

> какие связки лучше юзать или дрочить
django + drf
flask + sqlalchemy
aiohttp + sqlalchemy
БД либо postgres или mysql, либо mongo

> для деплоя че докера хватит?
да, но лучше потыкать в gitlab ci

> или надо дрочить ансиблы всякие
не надо

> Ну и для девопа что дрочить
elk

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

> ну для фронта что
reactjs

На самом деле знания лишними не бывают и то что ты шаришь в ансибле скажется на зп положительно. Но расписал стек который наиболее распространен сейчас
Аноним 24/09/20 Чтв 21:46:58 #477 №1815520 
>>1815517
Годно спасибо большое отдуши анон, хотя бы есть куда искать теперь и что учить, и не быть дауном на собесе. Никогда не работал в этой области, хочу иметь хотя маленькое представление вообще что это такое и как строится процесс. У меня такое впечателние, приходит начальник - сдела то, не знаю сам что, чтобы делало то не знаю что за неделю. И все. Сидишь, потом встаешь и идешь нахуй.
Аноним 24/09/20 Чтв 22:03:49 #478 №1815530 
>>1815512
А попроще никак нельзя?
Через len например
А то мне ещё лабу сдавать, я боюсь не объясню это
Аноним 24/09/20 Чтв 22:04:25 #479 №1815531 
>>1815515
Да, проебался, пофиксил уже
Аноним 24/09/20 Чтв 22:06:22 #480 №1815534 
>>1815530
Не сразу понял, что ты там список создавал, и написал про len, можешь тогда с дальнейшим решением помочь?
Аноним 24/09/20 Чтв 22:13:28 #481 №1815538 
>>1815534
Ну давай
print([y for y in filter(lambda x : isinstance(x,int) and x%2==1, ls)])
По простому циклом
for el in ls:
if(isinstance(el,int) and el%2==1):
print(el)

Интереснее циклом
for el in ls:
try:
if)(el%2==1):
print(el)
except:
pass
Аноним 24/09/20 Чтв 22:20:31 #482 №1815546 
>>1815538
Или проще
print([x for x in ls if isinstance(x,int) and x%2==1]) фильтр в принципе не обязателен.
Аноним 24/09/20 Чтв 22:28:18 #483 №1815549 
>>1815517
А по алгоритмам что посоветуешь? Или дрочить фрейм - этого хватит? Я имею ввиду - юзать уже готовые решения. Или надо будет именно все делать с нуля.
Аноним 24/09/20 Чтв 22:32:14 #484 №1815553 
>>1815538
Ты тут по-моему выводишь нечётные по значению элементы списка.
А в задании надо элементы по нечётным номерам в листе( первый, третий, пятый и т д)
или я долбоеб код не понял
Аноним 24/09/20 Чтв 22:37:06 #485 №1815556 
>>1815553
>Выведите все нечетные элементы в одной строке.
Я это понял как нечетные числа. Иначе в чем вообще смысл?
написать
for el in range(0,len(ls),2):
print(el)

или
print([ls for i in range(0,len(ls),2)])
?
Аноним 24/09/20 Чтв 22:40:18 #486 №1815561 
>>1815486
>Выведите все нечетные элементы в одной строке.

is_int = partial(lambda e, f: isinstance(f, e), int)
res = " ".join(str(e) for e in filter(is_int, rand_list) if e % 2 == 0)
Аноним 24/09/20 Чтв 22:41:24 #487 №1815562 
>>1815561
>e % 2 == 0
1 конечно жи
Аноним 25/09/20 Птн 04:35:52 #488 №1815603 
>>1815330
так в функции нет преобразования.

Аноним 25/09/20 Птн 04:38:17 #489 №1815604 
>>1815333
до sum , там генератор со значениями True и False

и как функция sum может складывать логические значения без преобразования?

Аноним 25/09/20 Птн 06:40:24 #490 №1815621 
>>1815604

In [1]: True + True
Out[1]: 2
Аноним 25/09/20 Птн 07:53:51 #491 №1815630 
sum.jpg
>>1815621
Аноним 25/09/20 Птн 08:17:08 #492 №1815638 

>>1815630

вроде вкурил, sum работает только с числовыми итерируемыми объектами , а там он генератор как раз потрошит

всем спасибо
Аноним 25/09/20 Птн 08:44:16 #493 №1815645 
>>1815549
> А по алгоритмам что посоветуешь?
задачи самого простого уровня на leetcode, мб среднего

> Или дрочить фрейм - этого хватит? Я имею ввиду - юзать уже готовые решения
Как правило поверх готовых решений ебашишь свое говно. Сложных алгоритмов нет (если ты конечно не попадешь на проект где именно алгоритмы и разрабатывают), в принципе поиск в ширину на графе или общей подстроки это самое сложное с чем может столкнуться веб-макака
Аноним 25/09/20 Птн 09:31:38 #494 №1815664 
image.png
Что-то не могу сообразить.
Есть у меня байт-строка:

bstr = b'\xd0\x91\xd0\xb0\xd0\xb9\xd1\x82\xd1\x8b'

Я её превращаю в строку:

bstr = str(bstr)
>> " b'\xd0\x91\xd0\xb0\xd0\xb9\xd1\x82\xd1\x8b' "

Как мне эту строку обрабтно перевести в байты?
Аноним 25/09/20 Птн 09:50:28 #495 №1815681 
>>1815638

Вдогонку тем, кто хочет использовать sum для логики. Есть еще две полезных функции:

In [2]: any([1, 0, 0])
Out[2]: True

In [3]: all([1, 1, 1])
Out[3]: True
Аноним 25/09/20 Птн 10:07:03 #496 №1815698 
>>1815664
У тебя же на картинке все написано есть, дебс.
Аноним 25/09/20 Птн 10:28:18 #497 №1815710 
>>1815603
кто сказал? реализация запрятана где то в сишном коде и там хз чо
но то что принимае True и считает его за 1 говорит о том что таки что то такое есть
Аноним 25/09/20 Птн 11:52:17 #498 №1815745 
Котаны, какой наиболее простой способ реализации очереди с приоритетом в Питонухе?
Аноним 25/09/20 Птн 12:09:06 #499 №1815757 
>>1815745
На Гугле забанили? На towardsdstascience.com.овердохуя статей.
queue.PriorityQueue
Аноним 25/09/20 Птн 12:20:26 #500 №1815771 
>>1815664
Отвечу сам себе.
Из строки нужно убрать b'' и применить команду encode().
В моём случае -
bstr.split("'")[1].encode()
Аноним 25/09/20 Птн 13:21:38 #501 №1815813 
Доброго, товарищи программисты, я тут пока только начинаю приобщаться к великому, и я тут с проблемой столкнулся, а я даже не понимаю в чем она заключается.

Задача:
Сколько полных часов, минут и секунд содержится в x секундах? Разложите имеющееся количество секунд на сумму из x часов + y минут + z секунд

Мое решение:
s = int(input('введите кол-во секуд: '))

x = int(s/(6060)) # це часы

y = int((s-x
6060)//60) # це минуты

z = int((s-(x
6060+y60))//60) # це секунды

print(str(x) + ':' + str(y) + ':' + str(z))

Проблема решения:
Код почему-то упорно не желает высчитать z(т.е. оставшиеся секунды) и приравнивает его к нулю. И я упорно не могу понять почему так нахуй. Буду рад вашим мыслям по этому поводу.



Аноним 25/09/20 Птн 13:36:18 #502 №1815823 
>>1815813
Ну тут только переменные, нету логики. Даже не вдаваясь - в этом причина. Нужна логика, алгоритм решения. Те сначала решить, потом закодить. А ты просто объвил переменные сделал контенацию и вывел. Этого мало.
Аноним 25/09/20 Птн 13:56:21 #503 №1815832 
>>1815813
А ты наоборот извлекай, через остатки от деления, тогда и не будет никаких проблем. У тебя деление нацело погрешность вносит.

t = int(input('...'))

ss, t = t%60, (t-t%60)/60
mm, t = t%60, (t-t%60)/60
hh = t
print("{}:{}:{}".format(hh,mm,ss))
Аноним 25/09/20 Птн 13:58:29 #504 №1815833 
>>1815832
conv = lambda x, div: (x%div, (x-x%div)//div)
ss, seconds = conv(seconds, 60)
mm, seconds = conv(seconds, 60)
hh, seconds = conv(seconds, 24)
dd = seconds

Или с лямбда-выражением. Где-то был кусок кода с аналогичной логикой, но разбивающий время до дней.
Аноним 25/09/20 Птн 13:59:58 #505 №1815834 
>>1815813
>x = int(s/(6060))
если что 60*60.

>>1815823
Мен, сори, я тебя не понял. Можно поконкретнее что ты под логикой подразумеваешь? Мне кажется, что она есть, но может у нас разные понимания дефиниций.
Аноним 25/09/20 Птн 14:04:39 #506 №1815835 
>>1815832
>У тебя деление нацело погрешность вносит.
Хм, спасибо, попробую по другому. До сих пор не понял что конкретно не так, но наверное да.
Аноним 25/09/20 Птн 14:06:37 #507 №1815837 
hours, remainder = divmod(timestamp, 3600)
minutes, seconds = divmod(remainder, 60)
return '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds))
Аноним 25/09/20 Птн 14:32:44 #508 №1815851 
>>1815813
Решил вопрос с задачей тем, что в z перестал ссылаться на переменные x и y, что выглядит максимально уебищно, но хотя бы работает! До сих пор не очевидно что я конкретно сделал не так, но похоже ответ на этот вопрос я так и не найду.

Как-то так это выглядит:
s = int(input('Сколько хотите ссать мне на лицо в секундах?: '))

x = int(s/(3600)) # це часы

y = int((s-int(s/(3600))3600)//60) # це минуты

z = int(s - int(s/(3600))
3600 - int((s-int(s/(3600))3600)//60)60) #це секунды

print('Вы хотите ссать мне на лицо: ' + str(x) + ' часов ' + str(y) + ' минут ' + str(z) + ' секунд ')


Аноним 25/09/20 Птн 14:40:07 #509 №1815856 
>>1815851
Меня волновал вопрос что именно я сделал не так в том коде, а не как решить задачу. Решить задачу - хуйня вопрос, а понять чяднт - полезно для понимания.
Аноним 25/09/20 Птн 15:20:55 #510 №1815877 
>>1815813
А, нихуя, я ошибся с формулой в минутах и попутал операции % и //. Карочи я еблан.

s = int(input('Сколько хотите ссать мне на лицо в секундах?: '))

x = int(s/(3600)) # це часы

y = int((s-x3600)%60) # це минуты

z = int((s-x
3600-y*60)%60)#це секунды

print('Вы хотите ссать мне на лицо: ' + str(x) + ' часов ' + str(y) + ' минут ' + str(z) + ' секунд ')
Аноним 25/09/20 Птн 15:33:40 #511 №1815888 
image.png
ищу roadmap для qa тестировщика
Аноним 25/09/20 Птн 16:28:08 #512 №1815958 
Посоны, я немного тупой. Подскажите, пожалуйста, нормальный гайд по rpy2.
Аноним 25/09/20 Птн 17:02:16 #513 №1816018 
>>1815888
Посмотри видео хауди хо тестирование за час
Аноним 25/09/20 Птн 17:22:23 #514 №1816054 
>>1816018
не нашел у него такой видос, мб ссылку кинешь? (шарил по каналу хауди хо)
Аноним 25/09/20 Птн 17:23:54 #515 №1816057 
>>1816054
ну значит жди пока он такой снимет :D
Аноним 25/09/20 Птн 18:16:49 #516 №1816162 
>>1815757
>>1815745
Чутка наебал, мне не просто "очередь с приоритетом" где в PriorityQueue лежат tuple вида:
(приоритет, порядковый_номер, объект)
а засовывать в очередь чистые объекты (без всяких кортежей), а сам объект уже содержит поле priority и чтобы очередь с приоритетом на основе какой-то коллбека или хрен я знает чего определила, куда положить этот объект. По итогу должен быть чистенький список с объектами, лежащими по приоритету, без всякой лишней ебени
Аноним 25/09/20 Птн 19:12:20 #517 №1816217 
Анончик, помоги тупиздню-вкатышку разобраться.
Я на работе написал небольшой скрипт, который дергает апишку. Апишка возвращает мне json с нужной информацией.
Проблема в том, что в жсоне возвращается дохуя полей, а мне нужны только нужные.
Среди них - поле 'date' которое содержит дату вида '2020-05-20T20:41:42Z', а еще есть поле 'tags', которое содержит в себе много тегов, и тип у этого поля - list.
Когда я делаю print(results['date']) - то у меня все выгружается красиво в столбик. А когда я пытаюсь выгрузить print(results['tags']), то питон пишет, что у меня KeyError: 'tags'. Собственно я и подозреваю, что это из-за того, что tags идут как список.

Как мне в конечном счете сделать принт только тегов?
Аноним 25/09/20 Птн 19:57:48 #518 №1816242 
image.png
>>1816217
Хотя нет, подумал, что чуть другую инфу надо выгрузить, но тоже не получается.
На пикрелейтеде жсон, который я получаю. Мне нужно принтить значения поля created (с этим проблем нет) и поле 360000059967 (там где 'value': 'error'). Как мне это сделать?
Аноним 25/09/20 Птн 19:58:24 #519 №1816243 
>>1816217
скинь жсон на пастбин
Аноним 25/09/20 Птн 20:06:29 #520 №1816245 
>>1816242
filter(lambda obj: obj['id'] == 360000059967, result['ticket']['custom_fields'])
Аноним 25/09/20 Птн 20:10:19 #521 №1816247 
>>1816243
https://pastebin.com/9WdXJiHe

Если что, у меня таких жсонов куча, так что я просто хочу складывать данные по полученным полям в заготовленные переменные через append, выглядит это вот так https://pastebin.com/22D4BDkM. Принтом я просто дебажу.

>>1816245
Попробовал втупую это скопипастить, но выдает ошибку KeyError тоже.
Аноним 25/09/20 Птн 20:11:45 #522 №1816248 
>>1816245
>filter(lambda obj: obj['id'] == 360000059967, result['ticket']['custom_fields'])

или
filter(lambda obj: obj['value'] == 'error', result['ticket']['custom_fields'])

хуй знает, что тебе нужно
Аноним 25/09/20 Птн 20:12:26 #523 №1816249 
>>1816248
Value туда разный может присылаться - условно говоря error, problem, report, incident, их довольно дохуя.
Аноним 25/09/20 Птн 20:21:22 #524 №1816253 
image.png
>>1816247
>выдает ошибку KeyError
хуй знает, братиш. может сегодня просто не твой день?
Аноним 25/09/20 Птн 20:24:09 #525 №1816254 
>>1816249
айдишник у поля всегда одинаковый, штоле?
Аноним 25/09/20 Птн 22:11:58 #526 №1816333 
>>1803801 (OP)
Живу в пгт на 10к живых, так вот у меня вопрос, могу ли я допустим отправить резюме в дс, пройти собес удаленно и если успешно пройду, ехать уже туда со 100% уверенностью что у меня работа есть? Просто не могу сейчас ехать и рисковать в дс, и искать работу, так как денег на месяц жизни едва хватит.
Аноним 26/09/20 Суб 10:17:56 #527 №1816499 
>>1816333
Это от работодателя зависит, но да, возможно.
Аноним 26/09/20 Суб 13:02:19 #528 №1816565 
>>1803801 (OP)
Есть питоновский модуль, там множество как функций так и классов. Хочу чтобы при вызове любой функции оттуда или любого метода класса (кроме специальных) логировалось имя этой функции/метода. Как это сделать? Вангую надо обернуть каждую функцию и каждый метод класса особым образом, но как это сделать на практике?
Аноним 26/09/20 Суб 13:09:02 #529 №1816569 
Cап

Подскажите что делает эта функция
def end_one(n):
while n > 6:
n = sum(map(lambda x: int(x)*int(x) ,f"{n}"))
if n == 1:
return True

не понятен второй аргумент в map - f"{n}"
Аноним 26/09/20 Суб 13:28:52 #530 №1816575 
>>1816569
в данном случае тоже что и str(n)
Аноним 26/09/20 Суб 13:51:44 #531 №1816595 
>>1816575
так лучше писать, чем str(n) ?
Аноним 26/09/20 Суб 15:45:05 #532 №1816778 
>>1816595
конкретно в данном случае такое написание вогнало тебя в тупик , вообще можешь пробежать глазами по ф-строкам питоновским на какой нить статье
Аноним 26/09/20 Суб 16:50:00 #533 №1816869 
А как мне фор из жабы написать на питоне?
for (int i = 0; i < 10; i++)
Аноним 26/09/20 Суб 17:05:05 #534 №1816878 
>>1816869
for i in range(0, 11):
Вообще, при любой возможности пытайся избегать циклов с итераторами, если это только не задачки на алгоритмы
Аноним 26/09/20 Суб 17:29:30 #535 №1816885 
lines = [line.rstrip() for line in open('script2.py')]

при таком открытии файла, он закроется после спискового включения?
Аноним 26/09/20 Суб 17:32:22 #536 №1816890 
>>1816878
а чтобы сделать <=?
как раз задачка на алгоритм просто.
Аноним 26/09/20 Суб 17:35:25 #537 №1816893 
Тыкаю fastapi имея опыт работы с sanic и aiohttp, как то странно они реализовали аргументы в контроллерах, семантическое определение реквеста в зависимости от тайп хинтинга
Аноним 26/09/20 Суб 18:28:04 #538 №1816912 
>>1816885
да, так как ссылки на него не будет, и после опен надо добавить ридлайнс
Аноним 26/09/20 Суб 18:28:56 #539 №1816913 
image.png
Аноним 26/09/20 Суб 19:02:14 #540 №1816940 
Абсолютно тупой вопрос:
вот есть у меня допустим публичный репозиторий на гитхабе, чтобы можно было показать кому-то. А в нем скрипт на питоне, в котором используется Api key сайта. Есть какой-то способ этот api key скрыть от посторонних? Как вообще люди делают?
Аноним 26/09/20 Суб 19:05:42 #541 №1816943 
>>1816940
Ты говоришь про гит-репозитарий, то не умеешь юзать гит?..
Аноним 26/09/20 Суб 19:13:59 #542 №1816947 
>>1816940
>А в нем скрипт на питоне, в котором используется Api key сайта. Есть какой-то способ этот api key скрыть от посторонних? Как вообще люди делают?
Все настраиваемые параметры должны быть в конфигурационном файле. Этот файл тоже является частью проекта, но перед коммитом значения логинов/паролей/ключей нужно удалить.
Аноним 26/09/20 Суб 19:35:25 #543 №1816967 
>>1816947
А как оно будет работать, если нету значений?
мимокрокодил, заинтересовавшийся вопросом
Аноним 26/09/20 Суб 19:36:56 #544 №1816969 
>>1816967
Где "нету"? Пиздуй в школу, тут серьезны дяди разговор ведут
Аноним 26/09/20 Суб 19:37:35 #545 №1816971 
>>1816967
Просто делаешь конфигурационный файл с пустыми значениями и в описании проекта пишешь, что именно нужно заполнить.
Аноним 26/09/20 Суб 19:38:31 #546 №1816973 
>>1816969
"дядя" 1999 года рождения блять

>>1816967
Данные либо в json, либо в env файле с переменными среды, они в гит не должны быть проиндексированы и хранятся локально
Аноним 26/09/20 Суб 19:41:08 #547 №1816976 
>>1816973
>они в гит не должны быть проиндексированы и хранятся локально
Конфигурацию можно и нужно добавлять в гит, просто надо удалить все значения, оставив только ключи.
Аноним 26/09/20 Суб 19:58:33 #548 №1816985 
>>1816969
я хохол, соси бибу

>>1816973
А если, припустим, нужно задеплоить бота телеграм на какой-то хероку, то его нужно для начала на репу залить. Если выложить код без токена, то он ведь не будет рабоать, не так ли?
Аноним 26/09/20 Суб 20:05:54 #549 №1816990 
>>1816985
Там разве энвы в панеле админа и через консольку настраиваются
https://devcenter.heroku.com/articles/config-vars
Аноним 26/09/20 Суб 20:56:20 #550 №1817013 
>>1816976
> надо удалить все значения, оставив только ключи
Чего блять? Хоть понял, что сказал?

>Конфигурацию можно и нужно добавлять в гит
Удачи
Аноним 26/09/20 Суб 21:01:06 #551 №1817016 
image.png
>>1817013
Он имеет ввиду оставить файл типа такого, но затереть значения у определенных ключей
Аноним 26/09/20 Суб 23:18:45 #552 №1817046 
>>1816869
int i = 0
while i < 10:
print('PYTHON_LUCHSHIY_YAZIK')
i += 1
Аноним 26/09/20 Суб 23:20:48 #553 №1817048 
>>1816912
>после опен надо добавить ридлайнс
нахуя? файл сам по себе итерабл
разве что если надо прям сразу в память прочитать
Аноним 26/09/20 Суб 23:21:41 #554 №1817049 
>>1816912
>да, так как ссылки на него не будет
только вот ось может освободить файл хуй знает когда, если его явно не закрывать
Аноним 27/09/20 Вск 00:18:20 #555 №1817085 
>>1817046
>int i = 0
бля
Аноним 27/09/20 Вск 08:10:47 #556 №1817167 
Пацаны, атас. На работе заблочили доступ к двачу. Кек. Что делать? РАБочий пека с корп впном.
Аноним 27/09/20 Вск 09:47:15 #557 №1817184 
Пол года назад занимался Питоном, забросил, сейчас снова взялся. По сути, в общем, занимаюсь им уже около полутора лет, но за весь этот огромный промежуток времени я так и не смог осилить жалкий справочник авторства Майка МакГрата. Я только читаю и переписываю кусочки кода из книги. Существуют ли какие-нибудь задачники, практики и тому подобное?
Аноним 27/09/20 Вск 10:06:53 #558 №1817189 
>>1817167
Сидеть с телебона
Аноним 27/09/20 Вск 10:28:49 #559 №1817193 
>>1817046
а если я хочу через фор, а не вайл? или лучший язык не позволяет?
Аноним 27/09/20 Вск 10:42:41 #560 №1817200 
>>1817184
У меня подобный реквест. Но я хочу задачи по рил лайф, то что требуется в конторах, офисах, фирмах. Чтобы кодить под определенные задачи. За что именно платят. А не так, решать математические задачи хуй пойми для чего.

Итак, реквест. Какие задачи будут стоять перед питонистом в офисе?
Аноним 27/09/20 Вск 10:46:53 #561 №1817203 
Есть способы собрать файл написанный на питоне для apk под андроид кроме бульдозера? Или это вообще сказка? Я не могу понять, такое комунити, тоны разрабов, и нету нормального человеческого портирования на андроид. Пачему?
Аноним 27/09/20 Вск 11:08:22 #562 №1817208 
>>1817193
>лучший язык
причем тут scratch? это тред про питон
Аноним 27/09/20 Вск 11:12:50 #563 №1817210 
>>1816869
for i in range(10):
print("Ass")

или со всеми параметрами

for i in range(0,10,1):
print("Cock")
Аноним 27/09/20 Вск 11:22:04 #564 №1817215 
>>1817210
>for i in range(10):
так оно будет < 10
Аноним 27/09/20 Вск 11:44:12 #565 №1817225 
>>1817203
Прочитал про виртульную машину бульдозера для виртуалки, но на оф сайте не могу найти образ, может кто знает? У хауди была ссылка, но не могу найти почему то, или вообще выпилили?
Аноним 27/09/20 Вск 13:51:30 #566 №1817332 
image.png
image.png
В общем уже как с полгода вкатываюсь + просто кодирую всякие штуки для себя. Проблема в том, что я за все это время так до конца и не понял, как работает механизм импортов.
Вот у меня есть такая структура проекта, точка входа находится в ./src/app.py, был добавлен alembic просто в корень.
Далее, при настройке этого алембика пытаюсь сделать импорт нужных штук, как на пике 2, на что при миграции получаю наверное закономерную ошибку импорта.
Видите ли, этот пидорас на находит модуль...
Внутри ./src и всех подпапках импорты работают прекрасно, везде есть __init__.py файлы
Чяднт? Вручную в sys.path добавлять путь(какой?) Неужели алембик криво накатил?
Аноним 27/09/20 Вск 16:01:00 #567 №1817478 
Двач, у меня горит жопа, впервые пытаюсь нормально минипроект доделать, чтобы потом его можно было любому скачать и установить все, сделал pip3 freeze, а потом как я понимаю надо удалить папку venv, чтобы все устанавливалось автоматически. git rm удалил ее полностью, в итоге еле восстановил, добавил в .gitignore потом опять все исправил и в итоге когда пытаюсь пушить на гитхаб он ругается, требует сделать гит пул, делаю, он удалят мне venv с компа, скажите в каком порядке нужно делать, чтобы локально у меня была папка venv, но на гитхабе ее не было
Аноним 27/09/20 Вск 16:12:51 #568 №1817492 
>>1817478
Если начинаешь проект, то добавляешь в гитигнор сразу, если хочешь убрать из трекинга что нибудь потом не удаляя, то git rm --cached твой файл/директори

И это, перекатите уже
Аноним 27/09/20 Вск 16:24:49 #569 №1817505 
>>1817492
спасибо, уже нашел что добавлять cached нужно
Аноним 27/09/20 Вск 18:03:05 #570 №1817594 
А как правильно открывать файлы изображений для, например, отправки куда-то?

Вот допустим такой код для отправки фото в png в телеграм, как было в одном из примеров библиотеки

update.message.reply_photo(photo = open(screenshots_path + screenshot , 'rb'))

на выходе качество получается хуже, чем когда я скинул этот же файл в чат напрямую. Более пикселизированное какое-то.
Аноним 27/09/20 Вск 21:13:14 #571 №1817733 
>>1817189
Ага, пока так и делаю. Просто не оч удобно, если хочется код почитать\проверить.
Аноним 27/09/20 Вск 21:29:00 #572 №1817743 
>>1817742 (OP)
>>1817742 (OP)
>>1817742 (OP)
>>1817742 (OP)
>>1817742 (OP)
>>1817742 (OP)
Аноним 27/09/20 Вск 21:35:55 #573 №1817749 
>>1817200
в офисе:
парсить и перекладывать по локалке экселевские таблички разные, парсить сайты конкурентов в теже таблички,
что-нить мониторить в локалке / на сайтах и мылить уведомления куда надо.

мимо креветка со скилом питониста.
Аноним 27/09/20 Вск 21:38:47 #574 №1817753 
>>1817184
сейчач много куда книг вроде "что-нибудь на Python",
(вебдев, геймдев, криптография, ML DS и прочь.)
правда на англйиском в основном.
Аноним 28/09/20 Пнд 11:02:19 #575 №1817970 
>>1817215
Так у тебя в исходном примере i < 10 дебич.
Хочешь чтобы 10 входило, делаешь range(11)
Аноним 28/09/20 Пнд 13:45:25 #576 №1818066 
>>1817970
А если у меня всё в переменной?
типа переменная A
Аноним 01/10/20 Чтв 19:23:19 #577 №1820654 
ZfQeLBYB.png
>>1816565
Ты можешь написать декоратор, но не для самого класса (чтобы не переписывать класс/переопределять методы), а для экземпляра класса. А потом по ходу выполнения функций логировать нужное с помощью атрибута __name__

Например, модуль requests:

a = requests
a.__name__ # Выведет "requests"
a.get.__name__ # Выведет "get"
comments powered by Disqus

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