Этого треда уже нет.
Это копия, сохраненная 26 мая 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №115 /python/ 1967018 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #115

Предыдущий: >>1954138 (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
2 1967041
Че там по питону 4 есть какие-нибудь задумки? Что вообще планировали в него выкатить?
3 1967054
Переписал одну веб-тулзу для работы через async, получил 60%-ое уменьшение времени исполнения, охренел и до конца не понимаю, как это работает.
Скрипт по сути что делает: принимает некий текст, сплитит его по заданному ключу, посылает запрос на API, сообразно с ответом оттуда переделывает кусок сплитнутого текста, потом джойнит эти куски текста из массива в строку и её возвращает. При этом await, естественно, к запросу на API присобачен. Спрашивается, как так получается, что куски текста по итогу оказываются склеенными в нужном порядке, если запросы на API, без которых невозможно начало их переделывания, посылаются не по порядку? ЯННП.
4 1967058
>>67054
Лучше бы код скинул, конечно, но вероятно джойнит куски он в конце, когда все ответы получены, а запросы из-за асинхронности делает по сути одновременно
5 1967059
>>67041

>Че там по питону 4 есть какие-нибудь задумки? Что вообще планировали в него выкатить?


Питон 4 не планируют выкатывать вообще. В этом нет необходимости. Будет 3.10, 3.11, 3.12 и так далее.

Цель третьего питона была даже не в том, чтобы много нового принести, а в том, чтобы убрать мешающее старое.

Сейчас это не актуально.
6 1967061
Что такое Хуки и для чего нужны? Обёртка для чего? Зачем?
7 1967063
>>67058
Вероятно-то оно вероятно, но хотелось бы понимать, что это за вундерваффе.
Сейчас я ещё больше удивился, потому что рераны теперь показывают вдвое большее время исполнения. Хотя, тут, может, API искусственно снижает пропуск.
Код не покажу, потому что там жесть.
8 1967084
>>67063
Выполняешь через asyncio.gather? Возвращает в том же порядке, в котором и передавал. В этом и фишечка
9 1967092
>>67059
Он мечтает чтобы как в жабе. 8, 10/11/ хуяк 15
CI/CD ? 10 1967099
Приветствую, питоняч!

Подскажите вот какую вещь.
У меня есть приложение на flask.
Оно развернуто на VPS с Ubuntu, с использованием Gunicorn и Nginx. Классика, крч.

На сейчас я просто делаю git push со своего ПК, потом на VPS nginx stop и git pull.

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

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

Я видел разные статьи по CI/CD пайплайнам, но, как я понял, это даёт только автоматический git push после прохождения тестов. А это не совсем то.

Подскажите что гуглить, что посмотреть.
Спасибо!
11 1967112
>>67099

>Подскажите что гуглить


Zero downtime deployment, blue-green deployment, rolling update without sms and registration
12 1967117
>>67054
Разные коннекшены под каждый запрос. Хоть сто раз перекрути порядок, всё вернётся через колбэки как надо.
13 1967119
>>67061
Хуками чего только не называют. Обычно это такой костыль сбоку, позволяющий вызвать твой код в какой-то ситуации.
14 1967123
>>67099
Тебе нужна хитрая прокся, nginx скорее всего только в платном варианте плюс так умеет. В момент деплоя подняты две версии одновременно и прокся все новые конекшены переваливает на новую версию. Дальше ждёшь когда старые конекшены отвалятся и гасишь старую версию. В кубернетесе эта херня из коробки есть, даже без nginx plus.
15 1967131
>>67112
>>67123
Спасибо!
16 1967141
>>67059

>а в том, чтобы убрать мешающее старое


Поэтому в либах до сих пор проверка на версию питона идет?
17 1967179
А правда что Bottle быстрее Flask? Стоит ли пересаживаться на него?
18 1967183
>>67179
Хорошо пошутил.
19 1967191
>>67179
Тебе стоит хоть на что-то пересесть с маминой шеи.
20 1967193
>>67018 (OP)
почему питон связывают со смей если его назвали в честь монти пайтона?
21 1967202
>>67193
А почему MySQL связывают с дельфинами? Это просто маскот, съеби нахуй.
22 1967203
>>67018 (OP)
На связи фуллстек макака: питон (aiohttp/sanic) + жс (ангуляр)
9 месяцев назад вкатился, сейчас думаю менять работу чтобы не застрять на одном месте (и апнуть зп конечно же). Как посоветуете выбирать проекты, чтобы не продаться за дешево или не сесть за неликвидное гавно?
буду также идти фуллстеком пока либо только в бэк, как получится
23 1967208
>>67179
If you want new sensations, just use Bottle. © Guido van Rossum
24 1967213
>>67203
Ангуляр и питухон? Это где такое просят?

Общался тут по поводу нейронки, ребята на Django/Flask все нахуячили и продают. Я хуй знает что советовать. У меня одни ожидания, а по факту FastaAPI который я более менее знаю нахуй никому не всрался. Сижу пердолю интеграции-эмуляции.
Смотри че там у Яндекса по стеку, они питон любят.
25 1967217
>>67208
Этот чорт больше не имеет право голоса. Лучше бы посмотрел как perl 6 делался. Никаких секс утех с совместимостью. Просто новый язык, а гвидо не смог так
26 1967220
>>67202
Почему ты такой грубый?
27 1967224
>>67220
очевидно почему, ты тупой.
28 1967232
>>67217
Заебись сделался - пятый за это время помер, а эта хуйня никому не нужна изначально.
29 1967237
>>67232
Так дело не в том, что он используется в 3 местах, а в том, как язык был сделал.
30 1967244
>>67237
Так между этими фактами есть прямая связь.
31 1967246
>>67213
статистика по ХХ за неделю, ДС
6 вакансий «sanic»
25 вакансий «fastapi»
47 вакансий «aiohttp»
52 вакансии «asyncio»
97 вакансий «flask»
184 вакансии «django»
2 247 вакансий «python»

Причём в случае fastapi и некоторых других там больше через запятую.

Джанго свой индустриальный фреймворк, это одна песня.

Flask по-прежнему популярен только потому, что у асинхронных фреймворков ПОКА тяжеловато с ORM, соответственно там сложно делать что-то, что использует сложные SQL базы под собой.

Вот когда логика больше не на SQL завязана, тогда асинхронные фреймворки уже стреляют прилично.
32 1967249
>>67246

> у асинхронных фреймворков ПОКА тяжеловато с ORM


Есть асинхронная sqlalchemy...
33 1967250
>>67224
ну ты и бык, ну ты и торч!
34 1967254
>>67249
Официальная пока в стадии бета-тестирования, версия 1.4.

Есть какие-то левые оболочки, где асинхронные интерфейсы к синхронной алхимии, то есть там через thread executor как-то это поддержано всё.
35 1967257
>>67244
Нет прямой связи. Людям хочется юзать что-то простое. Перл с первого взгляда никогда не был простым, хотя на деле не сложнее крестов, просто с парой фич.
Ты даже не запустишь простой пример perl 6 на perl 5
Зато в питоне в модулях вставки
if sys.version_info >= (3, 0)
вот это современно, вот это классно.
36 1967261
>>67257

>Зато в питоне в модулях вставки


>if sys.version_info >= (3, 0)


Если модуль старый, то что делать, тогда актуально было.

То есть проблема в том, что пытались поддерживать две ветки сразу.
37 1967263
>>67257
Без этого бы не было уже произошедшего массового перехода на 3. (который даже так происходил весьма туго)
Пиздец, как можно этого не понимать?
38 1967272
>>67018 (OP)

>PyCharm


>$86 first year


Спасибо, но нет.
39 1967274
>>67272
Это говно еле развивается
40 1967278
>>67274
Альтернативы ему?
41 1967280
>>67278
VScode на электроне, Sublime (платный), Atom(платный), VIM(учишь дольше чем питон)
42 1967282
>>67261

>две ветки сразу


Вот про это я и говорю.
43 1967284
>>67280

>Sublime (платный)


На уровне:
-Заплати, плиз.
-Пошел нахуй.
-Ладно. Но я потом еще спрошу.
44 1967286
>>67280

>на электроне


Что это значит?
45 1967298
>>67286
Вместо нативной программы делают бандл хромиума с скриптами на жс. Жрет ресурсы оно соотвтетствующе.
46 1967329
>>67280
А вот я и вижу дегрода с плутора извилинами который не может спиратить Professional PyCharm / WebStorm
47 1967330
Аноны, хелп, у меня уже жопа горит, проблема с джанго, я частенько переделываю модели и проблема возникает, когда я начинаю делать связи, например, если сначала сделал модель через внешний ключ, а потом поменял на 1к1, либо наоборот, ххочу сделать миграцию, удаляю все строки из таблицы заранее, потом мейкмиграшонс, он говорит что для уже созданных записей нужно прописать дефолтное значение, но записей нет, я перепроверяю, потом вписываю рандомное значение и у меня получается сделать миграцию, потом я пытаюсь ее применить, но теперь джанго говорит, что я дурак, потому что теперь у этих несуществующих строк несколько дефолтных значений и не дает применить, иногда помогает удалять миграции и создавать заново, иногда приходилось тереть бд, но это ведь не нормально, подскажите какие хинты использовать и как это фиксить, а то я устал танцевать с бубном каждый раз
48 1967333
>>67329
Сейчас бы хвастаться пиратством говноподелия.
49 1967337
>>67333

>Чем же там "гавно"?


>АХАХАХ ДА ТЫ ЖЕ ЖИДБРЕЙНС ЮЗАЕШЬ)) ГОВНА НАВЕРНУЛ АХАХАХА


>Нет, ты нормальным языком можешь пояснить, что там не так?


>ЯРЯЯЯ СЛИЛСЯ! СЛИЛСЯ! ГОВНОПОДЕЛИЕ ЗАКУПИЛ И СЛИЛСЯ АХАХАХА

50 1967346
>>67330
Господи за что, есть таблица в бд, но в ней нет колонки id, я удалил миграции, создал заново инитную, в ней написано что у таблицы есть id, пытаюсь мигрировать, но колонка не создается, в бд не появляется, пишет что все окей, дропнул таблицу, все равно пишет все окей, все нормально, как с этим бороться?
51 1967348
>>67337
Это говно не умеет активировать интерпретатор на удаленной машине, если она на Windows. Нахуй надо. И для каждого языка своя среда.
52 1967349
>>67337
Поясняю.
Индексация проекта отжирает кучу ресурсов.
Фоновые процессы работаю, которые мне не нужны.
Полное отсутствие модульности. Вот поебать что ты не пользуешься встроенным db navigator, т.к. он убогий, он будет висеть.
Без принудительной ревалидации кеша - никуда.
Порой просто не в состоянии найти модуль в проекте.
Ломается модуль - ломается ide.
Ну и самый смак. 90% этих иде содержат один и тот же функционал. Ты скачиваешь одно и тоже, за исключением автокомплита и анализатора, которые теперь выносят в ls для любых редакторов, для любых языков.
53 1967350
>>67348

>интерпретатор на удаленной машине


>если она на Windows


Проблемы админского говна любого нормального разраба не ебут. Обмажься своим вимом, отойди в сторонку и не мешай Big Guys разруливать проблемы
54 1967380
Я могу проверить наличие какого-то элемента массива с помощью if some_element in list:
Какой самый лучший способ перебрать несколько элементов для проверки, кроме if some_element in list and other_element in list and another_element in list?
55 1967382
>>67380
all(x in [None, 'a', 'ooo', 'qwe'] for x in ['1', 'b'])
56 1967383
>>67380
>>67382
И есть еще any
Догадаешься думаю для чего
57 1967391
>>67346
В общем судя по всему это просто баг, до сих пор не понимаю как именно иногда получается создавать pk на onetoonefield, но чаще джанго начинает ругаться что id столбца нет и самый простой вариант это назначть дефолт и убрать в файле миграции этот дефолт и потом мигрировать
58 1967400
>>67350

>JetBrains


>BigGuys


>На каждый язык та же хуйня на жаве что и IntelliJ


>неоптимизированный комбайн тащит за собой логику для Java IDE


>ряяя топчег за свои деньги


говна наверни, макака
Ты из тех "у меня на локальной машине работает, мне норм".
59 1967520
С ооп проблемы. Можно ли создавать неограниченное количество экземпляров классов? Или как-то хранить их данные.
Создал класс с init методом. Дальше в коде делаю так
card = Bank(a, b)
(a,b - инпуты) А можно ли сделать, чтобы если я заново ввожу этот инпут (в вайл тру) то создавался новый экземпляр, а не перезаписывался старый.
60 1967528
>>67520

>(a,b - инпуты)


Я перепутал строки. Там рандомные цифры
61 1967531
>>67520
Ты хуйню какую-то спрашиваешь.
Обьясни задачу, а не свои идеи, как её решить.
62 1967538
>>67531
да я уже понял, что хуйню пытаюсь заливать.
Надо было словари подключить, а не хуйнёй стадать
63 1967595
Аноны, есть задача в которой мой сервис на дрф должен выдавать ответы только по пермишшонам на аутентификацию, есть сайт на который сервис будет встраиваться и на нем реализована какая-то аутентификация, какой самый обычный способ связать эти 2 сервиса? Очевидно нужны токены, есть возможность в джанге вообще перееопределить юзера так, чтобы сохранялись только токены и если человек передает токен в заголовках, то получает ответ? Пока туплю и приступать не сегодня к реализации, поэтому лениво прошу вас подсказать, может можно как-то заменять request.user на токен автоматически при каждом запросе?
64 1967633
>>67272
>>67337
Comunity версии для очень и очень много хватает с головой, новичкам для изучения уж точно
65 1967660
>>67232
>>67217
Perl 5 жив, последнее обновления вот было в январе этого года, более того, пилят новою версию Perl 7, которая будет продолжать традиции пятой версии, а Perl 6 переименовали, теперь это Raku, слишком уж другой язык получился.
66 1967743
Нужен совет умных людей.
Есть класс один.
class A:
_pass

class B:
_def __init__(self, args, *kwargs):
__self._own = A()

Мне нужно не меняя класс A, дополнить его, чтоб везде, где он использовался, он был расширен парой методов и переопределены пара существующих.
Наследоваться, дополнить и заменить везде не могу по причине, что не могу поменять импорты. Выносится в отдельный модуль.
67 1967747
Планирую вкатиться в SOLID, какие подводные?
68 1967751
>>67743
Манки-патчинг.
def hui(self):
pass
module.A.method = hui
69 1967753
>>67747
Тимлид умрет.
70 1967762
>>67751
И везде, где будет
from x import A
b = A()
b.method()
Будет работать?
71 1967764
>>67762
Да, импортируй его у себя, замени, а потом последующие импорты уже берут оттуда.
72 1967773
>>67753
Он под скрамом
73 1967782
>>67179
Нет, не быстрее. Твоя бизнес-логика перекроет на несколько порядков быстродействие фреймворка. Хоть ты на чистом си напиши фреймворк с миллионами попугаев в секунду, всё это быстро станет ненужно.
cmd и python. Помогите ради довольства Всевышнего Велосипеда 74 1967786
Суть в том, что я пытался сделать bat файл (нужно, чтобы экономить время), в котором есть 3 сценария:
1) открытие cтандартной IDLE для питона
2) открытие пыхчарма
3) открытие индусского учебника

В общем виде bat файл выглядит вот так:

call "C:\Users\Nananan\Desktop\IDLE (Python 3.8 32-bit).lnk"
call "C:\Users\Nananan\Desktop\ A_Byte_of_Python_Rus_2.01.pdf"
call "C:\Users\Nananan\Desktop\PyCharm Community Edition 2020.1.2.ink"

Но открывается только IDLE, хотя остальные пути прописаны в таком же синтаксисе. При этом добавляя про оставшиеся два путя, что не они являются внутренней или внешней командой. Как сделать так, чтобы все 3 сценария запускались?
75 1967829
>>67786
Там явно не call, а что-то другое было всегда.
Алсо, используй всякие шорткаты для путей вместо полного, разные %шиндовс% там есть и т.д.
76 1967846
>>67829
Это операторы cmd, я понимаю. Я уже юзал несколько, но 0 КПД. Мб дело в самих файлах. Хз. Помогите кто-нибудь
77 1967859
>>67538
Какие словари?! Во-первых есть NamedTuple, во вторых
BankFactory:
objects:List[Bank]=[]
@classmethod
def create_new_obj(arg1, arg2):
bank = Bank(arg1, arg2)
objects.append(bank)

Nested/inner class или просто импорт, похую
class Bank:
def __init__(a,b)
self.a=a
self.b=b
Дальше просто вызываешь BankFactory.create_new_object(a,b)
78 1967863
>>67846
За 5 сек нагуглил, всё работает.
Не ленись.
79 1967941
>>67751
А вот и нихуя

>>67743
Не слушай предыдущего, он не в курсе что биндинг методов работает не так
Тебе нужен types.MethodType

def my_method(self): pass

a = MyClass()
a.instance_function = types.MethodType(my_method, a)
80 1967956
>>67123
Подобное можно и на обычном нжинксе реализовать, довольно просто. Сам так на РАБоте сделал для проекта, полет нормальный.
81 1967964
Давно собирал себе инфу, но еще актуальна, кому надо берите, сам сейчас учусь по этому плану.
https://github.com/DefaultPerson/wefwgfwweg/wiki/Вебразработка,-стек-python,-django,-flask,-js
Ну и если план говно обосрите и предожите как исправить.
82 1967980
>>67941
Причем тут инстанс, если ему класс нужно изменить.
83 1967997
>>67964
Для себя подчерпнул пропущенные моменты, спасибо, правда есть мнение, что лучше после изучения питона перед бд, вебом, фреймворками и гитом изучить линукс, очень много проблем отпадет, вспоминаю как на винде ебался с mysql по началу, страшно представить, какие-то окна непонятные, какие-то подключения и тоже самое с гитом, пока не понял что такое терминал было страшно с гиту подступать. Так же читать книги в запой я думаю очень глупо, сначала учишь основы, узнаешь в общих чертах о возможности(типа асинхронность), а уже когда придет подходящая задача идешь в документацию и гуглишь всю реализацию. А читать с нуля книги, кроме укуса питона не стоит имхо, это скорее справочники, особенно забавно где-то видел в начале книги страниц 49 по импортам в питоне, а человек скорее всего даже пару месяцев не будет вообще ничего импортить и в итоге забудет напроч
84 1968007
>>67956
У нгинкса проблема в том что если апстрим недоступен, нгинкс падает полностью. И dns resolve апстримов присходит только один раз при запуске/перегрузке конфига. Уж лучше траефик какой-нибудь.
85 1968014
>>67997
Ну я и указал что книги можно не читать, я вообще обычно пролистываю и записываю важные части, не особо вдумываясь, чтобы потом прочитать и понять. С линуксом радикально решил, переехал на коляску сначала, сидел на ней месяц, потом накатил арч+i3 и поебался с настройкой, думаю файлик как че делал тоже на гит запилю.
86 1968038
>>68014
Хз на счет настроек, я один раз накатил убунту и в ней хватает всего абсолютно, разве что грузится дольше винды по ощущениям, так что всем начинающим советую просто ставить 2-ю ось убунту и копаться в терминале, станет гараздо понятней и как ос работают и как с программами можно взаимодействовать
87 1968042
>>68038
Ну хуй знает.
Десктопный линупс это ебля с установкой-драйверами и с иксами. Самое бесполезное практикующему девелоперу.
А что ты потом запустил тот терминал, что путти, разницы нет.
Запускаешь себе виртуалбокс бриджем и дрочи тот линукс сколько влезет без лишней шелухи.
88 1968120
>>67119
Чем отличается от декоратора тогда?
89 1968131
>>68120
Хук это не обёртка, это совсем другое.

Обёртка это декоратор. Или middleware в терминологии веб-фреймворков. Декоратор подволяет сделать с данными, которые куда-то передаются, перед вызовом, и с результатом после. При этом функция, которую ты вызываешь, ничего про твою деятельность не знает, это не её забота.

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

Декоратор - снаружи. Хук внутри.
90 1968145
>>68120
А их нужно сравнивать? Регистрация хука может быть выполнена в виде декоратора. Хук чаще всего это такой слот, в который ты можешь вставить свой код, но слово общее и точного определения нет. Примерно из той же оперы что entity, helper, handler, слова которые почти ничего не значат.
image.png21 Кб, 646x486
91 1968162
Есть вот такая хрень сорри за скрин, выдаёт последние сделки с биржи, как можно реализовать нахождение двух похожих чисел из разных словарей в диапазоне +-1%?
92 1968164
>>67280

>VIM(учишь дольше чем питон)


Неправда. Чтобы просто редачить текст с минимальным конфигом - достаточно одного/двух вечеров. в моем случае правда потребовалась неделя, ибо у меня деменция.
Делать из вима полноценную ide затея конечно сомнительная. Очень многие люди просто накатывают вим плагин поверх любимой идешки. У меня вот и вскод и пичарм с вим плагинами. Зачем? -Быстрые замены, удаления, правки текста и вот это вот все... Ещё на сервере править конфиги вимом куда удобнее, чем нано. Многие вещи в нем сделаны действительно очень классно, рекомендую кароч!
93 1968299
На coursera годный курс по вкату?
94 1968365
Как вкотиться в удаленку на питоне и есть ли вообще шансы найти её при условии, что знаю питон и джанго/фласк?
95 1968367
>>68365
без джса, реакта, вью и прочей поебени этой
96 1968506
>>68365

>Как вкотиться в удаленку на питоне и есть ли вообще шансы найти её при условии, что знаю питон и джанго/фласк?


Без бекграунда в офисе почти никак, джуны на удаленке нахуй не нужны
97 1968568
>>68506
Какие шансы вкатиться туда?
98 1968574
>>68506
я работал в веб-студии, хорошо шарю в вебе как сеошник, верстала и тестер.
или ваще вкатиться в пхп и ларавельку и через месяца 3-6 уже брать заказы на апворке и быть миллионером?
99 1968788
X=1 , y=1 , все объекты в питоне имеют уникальный id,, так какого хуя у них id одинаковый(x,y)
100 1968906
>>68788
Типа, ты пишешь, что x = 1 и y = 1, а потом удивляешься id(x) == id(y) возвращает True? Дело в том, что числа в питоне это неизменяемые объекты, он не создает две разные единицы, обе переменные, x и y, они ссылаются на один и тот же объект, число 1. Вот если ты напишешь x = [] и y = [], то id(x) == id(y) будет False, потому что списки это изменяемые объекты, и питон два раза создаст новый список.
image.png4 Кб, 169x137
101 1968911
>>68906
Угадаешь, почему так происходит, можешь взять с полки пирожок
102 1968912
>>68788
Вм при старте инициализирует часто используемые числа, вроде до 250 или где-то так. Попробуй с большими - такого не будет.
image.png80 Кб, 944x745
103 1968951
Что я собственно делаю не так? Почему оно ещё self просит ввести?
104 1968965
>>68951
Там сложнее с тем, как область видимости устроена. Почитай про mro и т.п.

Суть в том, что у тебя есть переменая класса, например balance

У тебя есть объект, класс Bank. Это тоже объект, у него есть свои переменные, balance и другие.

Ты используя этот класс создаёшь новый объект
b = Bank()
например

Это другой объект типа Bank, у него свой набор переменных.

Если в b у тебя не определена переменная balance, и ты обращаешься к ней, то питон сначала лезет в переменные b. Он видит, что переменной с таким именем не определено. Тогда он дальше лезет уже в класс Bank, и берёт переменную оттуда.

То когда ты записываешь в переменную, пишешь код
self.balance = 100
то питон смотрит объект b, и если там нет этой переменной, то он не лезет наверх, а создаёт переменную с таким именем в объекте b
105 1968967
>>68951

>card = Bank


Это штука делает не то, что ты хочешь
106 1968973
>>68965
>>68967
Попробовал сделать Bank.create_card() Но тоже не то
107 1968977
>>68973
Метод не статический, тебе нужен уже существующий объект
108 1968982
>>68973
Лол, пиздуй читать про ооп, а не угадывай.
Тебе нужен classmethod и другая логика.
109 1968984

>1968982


Да, ты прав, просто в одном проекте чёт написал на ооп, но сам не до конца понял, как это работает
110 1968989
>>68973

>Bank.create_card()


Тебе надо почитать про объекты в питоне. Доля магии есть, вот с наследованием, разрешением имён и т.п.

В целом же всё просто.
вот у тебя есть класс Bank
class Bank:
....
____def print_balance(self, text):
________print(text, self.balance)

my_card = Bank(balance = 10000)

И my_card, и Bank это объекты

запись
my_card.print_balance(some_text)
эквивалентна записи
Bank.print_balance(my_card, some_text)

в обоих случаях происходит одно и то же, вызывается функция
print_balance
первым элементом, который self, передаётся my_card, дальше остальные параметры.

Дальше начинается магия питона, что происходит, если в self не определена какая-то переменная. Тогда он лезет в другие объекты, чтобы её достать для чтения.

Если ты хочешь записать что-то в переменную именно класса, а не объекта, созданного из класса, то тебе надо обращаться как
Bank.balance = 666

Изнутри объекта ты можешь делать что-то вроде
self.__class__.balance = 6666

Лучше про это почитать, чтобы лучше понимать, что происходит там. Не понимая ООП не освоишь.
110 1968989
>>68973

>Bank.create_card()


Тебе надо почитать про объекты в питоне. Доля магии есть, вот с наследованием, разрешением имён и т.п.

В целом же всё просто.
вот у тебя есть класс Bank
class Bank:
....
____def print_balance(self, text):
________print(text, self.balance)

my_card = Bank(balance = 10000)

И my_card, и Bank это объекты

запись
my_card.print_balance(some_text)
эквивалентна записи
Bank.print_balance(my_card, some_text)

в обоих случаях происходит одно и то же, вызывается функция
print_balance
первым элементом, который self, передаётся my_card, дальше остальные параметры.

Дальше начинается магия питона, что происходит, если в self не определена какая-то переменная. Тогда он лезет в другие объекты, чтобы её достать для чтения.

Если ты хочешь записать что-то в переменную именно класса, а не объекта, созданного из класса, то тебе надо обращаться как
Bank.balance = 666

Изнутри объекта ты можешь делать что-то вроде
self.__class__.balance = 6666

Лучше про это почитать, чтобы лучше понимать, что происходит там. Не понимая ООП не освоишь.
111 1968992
>>68951

>card = Bank


Пиздец, питонотред - сборище самых тупых долбаебов. Даже не какие-то непонятные/странные ошибки.
112 1969036
>>68992
Тоже с этой хуйни проиграл
Насмотрятся рекламы от айти инфоцыган на утубах, а потом лезут сюда
113 1969085
>>68007

> У нгинкса проблема в том что если апстрим недоступен, нгинкс падает полностью.


Антош, антош, смотри шире.
+ Не совсем так

>Уж лучше траефик какой-нибудь.


Юзай, никто ж не запрещает. Чем-то, наверное, и трафик лучше.
114 1969091
Вы используете 2 монитора? есть возможность поставить 2-й, но до сих пор не понимаю как это на практике пригождается, подскажите
115 1969097
>>68951
Долбоеб, ты фишинг сайт сооружаешь что ли? Нахуй тебе ввод карты и баланс.
116 1969100
>>69097
А не плохая идея, но нет
https://hyperskill.org/projects/109/stages/591/implement
117 1969110
>>68951
card = Bank()
118 1969116
>>68992
Даже обидно, сам недавно забыл в одном месте скобки поставить и минуту не мог понять в чем дело
119 1969117
>>68989
да там и переменные класса используются, он явно решил не читая ничего про ооп начать практику делать, потом будет вопрос про то почему когда он создает 2 карты, то баланс у них общий
120 1969119
>>69117
Я пока до sql не дошёл планировал в txt файле держать данные
121 1969127
>>68911
Здесь нечего угадывать, del только разрывает связь между переменной и объектом, пока не случится сборка мусора, объект никуда не денется, и питон считает, что если его можно использовать, то почему бы не использовать
122 1969130
>>69100
ладно, за мат извени
123 1969341
Аноны, вопрос по автоматизации: есть пиратка ABBY Fine Reader, хочу сделать из нее что-то вроде автоскана(в реальном времени) для сабов на экране и чтобы это все еще работало в offscreen/background ( на заднем фоне вообщем). Гугл советует использовать библиотеку Pyautowin. Сам вопрос: это вообще осуществимо? Или в программах обычно лочат такие вещи еще на этапе разработки?
124 1969355
>>68145

>entity


Это ведь значит сущность, структура клиента иногда.
125 1969360
Подскажите что-нибудь годное про ООП почитать
126 1969519
>>68299
там дохуя курсов, на какой именно глаз положил?
могу расписать если это из тех курсов что я видел
127 1969745
>>69519

>там дохуя курсов, на какой именно глаз положил?



Начал проходить Python for Everybody, пока нравится.

>могу расписать если это из тех курсов что я видел


Какие там еще годные есть?
128 1969753
Приветствую вас шипящии, начал смотреть лекции Тимофея хирьянова по питону, вроде весьма интересно , но как думаете стоит ли оно того или мне сразу пойти скачать курсы от отиса и налегать на них ?
129 1969774
tkinter
130 1969788
>>69753
Что за мода выискивать какие-то ЛУЧШИЕ курсы? Смотри эти, потом посмотришь другие.
131 1969910
Двач, как можно рисовать скриптами? Какие есть варианты? Задать размер холста, линии там рисовать, квадраты, точки.
132 1969956
Сам, только начал изучать, в качестве среды решил использовать Atom подключенный к Git, всё правильно делаю?
133 1969959
>>69127

>пока не случится сборка мусора


А что, питон останавливается для сборки, как жаба?
134 1969976
>>69956
бери vscode лучше или тормозной spyder или pycharm
135 1969977
>>69959
любой язык со сборкой мусора останавливается
136 1969979
>>69753
Есть и лучше курсы по питону университетские, но всё зависит от твоего уровня программирования.

Хирьянов по основам программирования и алгоритмов, на питоне, но не про питон.

Если программировать более-менее можешь, более-менее можешь решать задачи уровня easy, то лучше смотреть на курсы именно про питон.
типа такого:
https://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW
137 1969982
>>69979
Спасибо , запишу на будущее, думаю пока досмотрю лекции хирьянова , основы я не очень хорошо знаю хотя при этом простые задачи могу делать , просто набор функций по большей части одинаков но не все понимаю как именно работает хотя после стольких лет образования на электрика по цепям рза понимаешь что обычно сильно углубленные знания и не требуются в работе
138 1969989
>>69977
Только вот в пистоне объекты вычищаются сразу по счетчику, там нет глобальной остановки как у жабы
139 1969999
>>69745
там есть основы питона, погружение в питон (неоч), ООП, создание веб на питон, птион для анализа данных и т.п.
ты как я понял начал курс от буржуев?
140 1970008
>>69999

>ты как я понял начал курс от буржуев?



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

>>69999

>создание веб на питон, птион для анализа данных



Эти уже закинул "на потом", а вот основы питона что-то не могу найти.
141 1970018
Аноны, хочу поставить на рабочий копм Jupyter Notebook, чтобы ковыряться в данных несколько быстрее, но есть сомнения. Я не понимаю как работаю веб-приложения вообще, и как работает Jupyter Notebook тоже только в общих чертах и боюсь, что случайно скомпрометирую корп.инфраструктуру. Как случайно не открыть портал в открытые интернеты?
142 1970034
>>70008
https://www.coursera.org/learn/python-osnovy-programmirovaniya
тут упор на программирование.
дается несколько роликов по возможностям и 30+ задачек.
и так каждую неделю.
рассчитано на начинающих так как когда дается задание то предполагается что ты будешь его решать именно теми средствами, про которые рассказали в видео, без всяких читов типа библиотек и методов.
Математики там прилично, задачи в основном на математику
143 1970035
>>70018
джупитер ноутбук работает в браузере вроде. по крайней мере я работал с ним в браузере прямо на одном из курсов
144 1970079
>>69910
PIL.Image.from_bytes()
145 1970083
>>69341
у питухона свои OCR есть и возможно лучше. тем более можешь сразу парсить с экрана
147 1970162
>>70018
Чтобы открыть портал надо жопу порвать, пожтому не бойся, просто веб интерфейс в браузере и все
148 1970215
>>67018 (OP)

>Книжки, новое собрание


Eric Matthes - Python Crash Course (2016)pdf - есть более свежая версия 2020 года, можно найти в вк по документам.
149 1970243
>>70018
Он по умолчанию на локалхосте открывается, ничо не скомпрометируешь, с трудом представляю себе корп-структуру где вася мог бы порт в интернет выставить, тем более случайно
150 1970363
>>69355
Ну и что значит сущность? Что угодно может быть сущностью.

>>69085
Ну я заебашил траефик себе в кубер чтобы можно было нормально proxyless services поднимать, стало хорошо. У траефика кастрация в другом месте правда и он не для всего, статику не умеет раздавать например. В итоге нгинкс внутри подов на локалхосты ходит, а траефик как ингресс. Видимо настало время дорасти до haproxy.
151 1970365
>>69910
Раз https://docs.python.org/3/library/turtle.html
Два https://pillow.readthedocs.io/en/stable/reference/ImageDraw.html
Три это вообще SVG генерить, там обычный XML

Зависит для чего тебе.
152 1970366
>>69956
Достаточно хорошо. Но атом уже пару лет как не развивается, хотя и вполне работает. Вся разработка ушла в vscode. Гит я бы всё-таки сначала из консольки поучился с гитбуком, гуи не сильно упрощают работу с ним.
1.png571 Кб, 1918x856
153 1970368
Подскажите, че там у него происходит в классе RegisterPage? Я почитал про то, что делает супер, типа вызывает метод родительского класса. Но что он накодил все равно недопер. Не понимаю, что делают передаваемые в этот метод аргументы. Ну и в общем этот класс, если честно.
154 1970375
>>70368
Ну очевидно он туда автологин вставил. Можешь снести нафиг весь этот метод, у тебя будет регистрация без автологина. super уже давно можно без всякой хуйни писать return super().form_valid(form)
155 1970382
>>70375
А, ну то есть то, что он написал это то же самое, что просто super()? Типа сразу логинит после регистрации, а если юзер не создался, то там эта функция оригинальная сама что-то пизданет.
156 1970390
>>70382
Там нет если. Оригинальная функция отработает в любом случае. Но если юзер создался, то дополнительно залогинит.
157 1970424
Анончик, допустим, у меня в директории лежат пакеты одного приложения для разных платформ, pip может выбрать из этой директории подходящий и установить его? С pypi же выбирает нужный. Не могу найти как это сделать.
158 1970434
https://www.youtube.com/watch?v=dOO3GmX6ukU

Ппц вместо того чтоб статическую типизацию завезти какую-то хуйню выдумывают. Он будто кончает когда эту парашу юзает
159 1970436
>>70434
Блоггер тоже хочет кушать, че ты.
160 1970453
>>70424
pip не умеет выбирать пакеты в директориях, но ты можешь прямо указать какой файл-пакет установить.
161 1970455
Бляяя, а можно как то в атрибутах класса сохранить ссылку на внешний словарь? Что бы менять значения внешнего словаря, а не внутреннего.
Типа я передаю в конструктор класса словарь, и класс будет менять значения этого внешнего словаря, а не какого то своего локального.
162 1970466
>>70434
Во как, в статически типизированных языках значит валидацией входных данных принципиально не занимаются.
163 1970469
>>70455
Какую проблему ты решаешь? Звучит как ехал костыль через костыль чтобы сложить 2 + 2.
164 1970475
>>70469
Ну есть пайплайн. Там идёт векторизация через tf-idf. Хочу после векторизации сохранить размерность полученной матрицы, для этого пишу кастомный трансформер, куда хочу передать внешний словарь, что бы сохранить в него размер матрицы.
165 1970479
>>70455

>а можно как то в атрибутах класса сохранить ссылку на внешний словарь?



Можно

dickt = {'ti':'huy'}

class Kostilik:
def __init__(self):
self.dickt = dickt

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

class MatrixSize:
x=0
y=0
166 1970483
>>70475
Насколько ты контролируешь пайплайн? В этом пайплайне нет какого-то хранилища артефактов, пусть даже в виде словаря? Тупая труба, вышло из первого, вошло во второе? Даже если так, почему по этой трубе не может идти словарь со всеми матрицами и размерностями?
167 1970530
>>70483
Это просто пайплайн из ск лёрна
>>70479
А я чот так сделал и изменения во внешнем словаре не появились
168 1970531
>>70530
Хотя нет, стопе, я передавал словарь в конструкторе.
Можно сделать без такой зависимости, как у тебя?
169 1970571
Есть набор корутин, которые надо выполнить, некоторые нужно выполнять в определенном порядке, так как там берутся необходимые данные для работы следующей корутины. На некоторых при ошибке нужно валить весь набор исполняющихся корутин. Есть ли какая-нибудь либа, которая позволяет декларативно описать эти зависимости? Заебало императивно это дрисню описывать.
170 1970586
>>70531
Какой зависимости дурень? Создай объект хранилище до инициализации объекта из конструктора и все. Иди учи CS, хуйню какую-то хочешь, пайплайны у него блять
171 1970587
>>70571
Есть, asyncio в официальной документации все описано
172 1970590
>>70587
Тки место
173 1970598
>>70571
Ты лучше пример приведи, какой код есть, и примерно как ты хотел бы.
Вот то, что ты описываешь, выглядит так
try:
____data1 = await foo1(data0)
____data2 = await foo2(data1)
____data3 = await foo3(data2)
____data4 = await foo4(data3)
except:
____something

Тебе это к чему преобразовать надо?
делать вложенно
await foo4(await foo3(await foo2(await foo1(data0))))
пожалуй не очень эстетично, но так
А что хочешь ты?
174 1970602
>>69091
И на работе, и дома стоят 2 монитора. На одном пишешь код, на втором проверяешь его работу. Если, конечно, ты не консольную утилиту делаешь какую-то. А так второй монитор может пригодиться разве что мультики смотреть или музыку переключать, например
175 1970603
>>70598
Примерно так, только некотрые корутины независимы от выполнения других.

Примерно так хочу
image.png10 Кб, 517x193
176 1970606
>>70603
Отклеилось
177 1970620
>>70606
https://stackoverflow.com/questions/41794205/how-to-set-name-for-asyncio-task

Инкапсулируй корутину в кастомный класс, опиши поведение, опиши от чего зависит и дальше на основе шаблона поведения создавай логику. Чё ещё надо, Вась?
178 1970624
>>70620
Я спрашивал есть ли готовые менеджеры для такого, так педалить свое придется
179 1970631
>>70606

class CustomTask(Task):
def __init__(depends=[], coro=coro, results):
self.name = ''
async def execute(self, results_pool):
cur_tasks = asyncio.Tasks()
args =[]
for t in tasks:
if t.name in depends and t.done:
args.append(next((r[1] for r in results_pool if r[0]==t.name)
output = await coro(*args)
results_pool.append((self.name, output))

class TaskPool:
gathered_results=[] # ('task1', 'tobi_pizda')
tasks = []
180 1970632
>>70624
Так спроси у Гугла, еблан
https://github.com/aio-libs/aiojobs
181 1970636
>>70631
В коде явно объебался, но суть ты понял. Там кстати есть done callback, можешь через asyncio Lock, Event управлять.
182 1970639
>>70636
>>70624
Ещё и мимо.
На done call back ты можешь например из цепочки сразу вызывать нужную тебе корутину и т.д. не хочешь не реализуй, мне похуй. Готового из коробки нихуя нет. Вместо того чтобы подумать, ты ноешь в разделе
183 1970642
>>70639

>ноешь в разделе


Шиз, я только спрашивал есть ли готовое решение, что бы не писать костыль, вместо этого ты на меня сагрилился "хули ты не гуглишь", хотя сам потом понял, что готового решения нет, а aiojobs решает только часть задач и нужно самому писать.
184 1970649
>>70632

>aiojobs


Не для таких задач

>>70606
>>70624

>Я спрашивал есть ли готовые менеджеры для такого, так педалить свое придется


Мне не понятно, как data flow устроен и как его формально прописать. То есть в каких-то случаях у тебя одна корутина возвращает данные, другая корутина использует данные от двух других корутин, и т.п.

Здесь может быть очень много извращённых логик. И их надо как-то формализовать. Вот как ты это запишешь?

Может быть такой подход для реализации логики.
допустим, есть функции
data1 = foo1
data2 = foo2,
data3 = foo3,
foo2 и foo3 выполняются независимо
data4 = foo4(data2, data3)
а вот foo4 нужны данные от foo2 и foo3
и дальше схожая логика

Вот чтобы параллельность реализовать, надо использовать механизм очередей.
foo4 принимает на вход очередь, queue4, в которой кортежи или словари вида
('data3', data3)
('data2', data2)
надо помнить, что порядок произвольным может быть

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

Это просто принцип построения. Не знаю решений для этого, но закодировать тут пару десятков строчек, наверное.

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

Под свою логику можно сделать удобное решение.
184 1970649
>>70632

>aiojobs


Не для таких задач

>>70606
>>70624

>Я спрашивал есть ли готовые менеджеры для такого, так педалить свое придется


Мне не понятно, как data flow устроен и как его формально прописать. То есть в каких-то случаях у тебя одна корутина возвращает данные, другая корутина использует данные от двух других корутин, и т.п.

Здесь может быть очень много извращённых логик. И их надо как-то формализовать. Вот как ты это запишешь?

Может быть такой подход для реализации логики.
допустим, есть функции
data1 = foo1
data2 = foo2,
data3 = foo3,
foo2 и foo3 выполняются независимо
data4 = foo4(data2, data3)
а вот foo4 нужны данные от foo2 и foo3
и дальше схожая логика

Вот чтобы параллельность реализовать, надо использовать механизм очередей.
foo4 принимает на вход очередь, queue4, в которой кортежи или словари вида
('data3', data3)
('data2', data2)
надо помнить, что порядок произвольным может быть

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

Это просто принцип построения. Не знаю решений для этого, но закодировать тут пару десятков строчек, наверное.

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

Под свою логику можно сделать удобное решение.
185 1970656
>>70642

>Шиз, я только спрашивал есть ли готовое решение


Мне кажется, что слишком специфичная задача, чтобы под неё было готовое решение. Слишком много вариантов логики. При этом руками сделать несложно совсем, не сложнее, чем потом декларировать на каком-то птичьем языке эти зависимости.
186 1970660
>>70649

>То есть в каких-то случаях у тебя одна корутина возвращает данные, другая корутина использует данные от двух других корутин, и т.п.


Я думал сделать какой-нибудь объект, который записывал все возвращаемые в виде словарика с ключем по имени таска и доступный для каждой исполняемой корутины.
187 1970669
>>70642
Шизик тут только ты, который читает документацию по диагонали и не видит готовые решения указанные в ней.
Callback ничего не возвращает, но триггерит запуск другой корутины, exception перехватывается. Если хочешь инкапсуляции логики, а не говнокод на 50 строк при увеличении количества тасков, то делай объекты и методы. Заебали такие "ыыы хачу в лоб, питон жи проста. А где готовое решени ыыыыааа а где либа? Питонгавно"
188 1970671
>>70669
А хотя нет, оставайтесь такими даунами, хоть на срыночке не пересечемся
189 1970676
Что в питоне нужно выучить, чтобы от зубов отскакивало?
190 1970678
>>70669
Питонотреды, ожидание:

>Есть ли готовое решение для этой задачи?


>Нет, пиши сам, можешь это заюзать попробовать.


>Ок



Реальность:

>Есть ли готовое решение для этой задачи?


>КАКОЙ ЖИ ТЫ ТУПОЙ БЛЯДЬ, ВОТ ЖЕ ВСЕ ОПИСАНО, ЧТО ЗНАЧИТ ЛИБА НЕ ПОДХОДИТ ДЛЯ ЗАДАЧИ?!?!? НУ ТЫ И ДЕБИЛ, ВОТ ЖЕ КОД, ХОТЯ МЕНЯ НИКТО НЕ ПРОСИЛ ЕГО ПИСАТЬ, СМОТРИ КАКОЙ Я ОХУЕННЫЙ, ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ, ЧТО ЗНАЧИТ МЕНЯ НИКТО НЕ ПРОСИЛ!?!?!?!! МНЕ ВООБЩЕ ПОХУЙ НА ВСЕ, БЫДЛЫ ТУПЫЕ

191 1970684
>>70678
Чего ты подрываешься? Это же имиджборд. Сюда могут писать аноны разного уровня компетентности и адекватности, и никакого контроля, почти никакого, нет.

Но ты сам сформулировал свою задачу очень нечётко. Долго вникать в твою задачу и додумывать, что тебе нужно, желания не хватает у большинства. Вот тебе неадекваты и отвечают поэтому.
192 1970689
>>70678
Нормально ты порвался что тебе не дали готовое решение.
193 1970719
>>70678
Ебать неосилятор закукарекал.
194 1970795
>>70678

>Неадекваты


>Не объяснили на пальцах, вот же суки


>Я жи проста вкатывальщик с хотелками чтобы написали за меня


>Пачиму меня не берут, у меня опыт 1 год в питонотредах


Нахуй иди, серьезно. Ладно бы реально на баг какой нерешаемых нарвался или спросил по поводу направления поиска решения проблемы, но ты просто выблевал хотелку без кода и сел ждать когда тебе выдадут решение.
Если сказали в документации читать читай документацию, значит ты что-то упустил. Но вы же рветесь на ровном месте и вместо того чтобы загуглить паттерны на коллбеках ведёте себя как ебучие заказчики. Ты платишь? Нет.
195 1970802
>>70795

>сел ждать когда тебе выдадут решение


Я просил за меня код писать или что?
196 1970808
>>70795

>Если сказали в документации читать читай документацию, значит ты что-то упустил.


Сказать "читай доки" может любой ламер, желающий возвыситься. Даже если в доках ничего нет. Обычная история. Польза нулевая от таких.

А для такой задачи в доках ничего нет, как раз такой случай.

Можно обсудить идеи, как вот такую задачу решать.
197 1970813
>>70808
Ещё один.
Вот, блять пальцем покажу куда смотреть. Нет там ничего, пиздец просто...

done()
Return True if the Task is done.

A Task is done when the wrapped coroutine either returned a value, raised an exception, or the Task was cancelled.

result()
Return the result of the Task.

If the Task is done, the result of the wrapped coroutine is returned (or if the coroutine raised an exception, that exception is re-raised.)

If the Task has been cancelled, this method raises a CancelledError exception.

If the Task’s result isn’t yet available, this method raises a InvalidStateError exception.

exception()
Return the exception of the Task.

If the wrapped coroutine raised an exception that exception is returned. If the wrapped coroutine returned normally this method returns None.

If the Task has been cancelled, this method raises a CancelledError exception.

If the Task isn’t done yet, this method raises an InvalidStateError exception.

add_done_callback(callback, *, context=None)
Add a callback to be run when the Task is done.

This method should only be used in low-level callback-based code.

See the documentation of Future.add_done_callback() for more details
197 1970813
>>70808
Ещё один.
Вот, блять пальцем покажу куда смотреть. Нет там ничего, пиздец просто...

done()
Return True if the Task is done.

A Task is done when the wrapped coroutine either returned a value, raised an exception, or the Task was cancelled.

result()
Return the result of the Task.

If the Task is done, the result of the wrapped coroutine is returned (or if the coroutine raised an exception, that exception is re-raised.)

If the Task has been cancelled, this method raises a CancelledError exception.

If the Task’s result isn’t yet available, this method raises a InvalidStateError exception.

exception()
Return the exception of the Task.

If the wrapped coroutine raised an exception that exception is returned. If the wrapped coroutine returned normally this method returns None.

If the Task has been cancelled, this method raises a CancelledError exception.

If the Task isn’t done yet, this method raises an InvalidStateError exception.

add_done_callback(callback, *, context=None)
Add a callback to be run when the Task is done.

This method should only be used in low-level callback-based code.

See the documentation of Future.add_done_callback() for more details
198 1970817
Тут все что нужно этому шизику вплоть до простого метода "что сделать если завершилась корутина и есть хоть какой-то результат".
199 1970834
>>70813
Долбоеб, я спрашивал готовое решение для данной задачи, если бы мне нужно было написать, я бы это сделал. Это как на просьбу посоветовать тулзу для парсинга сайтов предлагать urllib с html.parser вместо реквестов с бьютифол супом.
200 1970836
>>70834
Да сучий ты ж потрох. У тебя уже реализовано в самой библиотеке, тебе не надо low level design создавать, просто блять используй методы.
И это будущие чьи-то коллеги?

>Не хочу писать код, хочу пыщ пыщ и в продакшн и 300к в наносекунду

image.png140 Кб, 481x280
201 1970839
>>70836
Я если что уже 2 года работаю

>Да сучий ты ж потрох. У тебя уже реализовано в самой библиотеке, тебе не надо low level design создавать, просто блять используй методы.


Что реализовано? Тебе написали, что готового решения нет и нужно собираться все это, причем есть вещи над которыми нужно подумать, куда собирать результаты функций, что бы они были отовсюду доступны, как грамотно организовать шатдаун всего пула и т.д. Но нет, ты брюзжишь слюной и орешь ВОТ ТЕБЕ ТРИ ФУНКЦИИ, ЭТО ВСЕ ЧТО НУЖНО, а тут речь про грамотную организацию.
202 1970841
>>70813
Дебил, и кому нужен твой add_done_callback? Ты вообще думать умеешь?

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

С таким же успехом можно было бы и await coro() сделать.
203 1970849
>>70839

>Нужно подумать


Очень полезный навык, ну может ещё через 2 года появится и напишешь в софт скиллс "сначала думаю, потом спрашиваю хуйню". Куда собирать? У тебя кортежей нет? Не реализован хэшмэп из коробки?
Graceful ahutdown в 5 строчек делается, но ты опять будешь ныть "не из коробки".
Советовать BS4 не буду если там надо найти тэг, который будет на второй строчке, потому что lxml умеет делать это инкрементно, а так ты весь объект тащишь.
204 1970853
>>70841
gather у тебя Гвидо украл? Опять же это написано в документации к asyncio.
205 1970864
Питонач помоги. Короче есть у меня метод литерали одна строка — ретурн, убирающий юникодовские спецсимволы типа \u3000 \u2028:
return line.replace(u'\u3000', u' ') отрабатывает нормально
return line.replace(u'{}'.format(charcode), u' ') все идет по пизде

Я думал, что может дело в очередности типа как с++ и ++с или я просто неправильно написал, но print(line.replace(u'{}'.format(charcode), u' ')) в консоли отрабатывает как надо.
206 1970865
>>70853
Ты достал, вот совсем достал. Ты какой-то бот, который по ключевым словам выдаёт какой-то бесполезный ответ. Только с агрессий. Тебе подлечиться надо, а не бросаться на людей здесь.

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

То, что анон просит, штатными средствами не решается, здесь решения на базе каталов, паттернов pub-sub нужны. pub-sub ты такими способами не сделаешь. Это в общем случае. Хотя ХЗ, что анону надо, он не сказал, это я за него додумываю.
207 1970936
>>70865
Давай сокеты и брокер ещё подтянем, когда есть примитивный синхронизатор и Queue. Сразу ебашим Redis или MQTT, да.
Ещё раз говорю, есть Event, есть Lock. В чем проблема создать ивенты для зависимых Task и на их основе создать логику? И чего там нет на верхнем уровне? Low level это select/epoll. Тут же и методы и все дано, нет хочу усложнить. Любители Django знакомятся с asyncio и охуеваю что готовенького ничего нет.
Ладно, add done callback не то, https://overcoder.net/q/407597/python-asyncio-adddonecallback-с-асинхронным-определением
У человека так же задача, после одной корутины запустить следующую по выполнению первой.
Решение в Гугле
208 1970971
>>70936

>У человека так же задача, после одной корутины запустить следующую по выполнению первой.


Это вообще не задача, для этого и есть оператор await
result_1 = await coro_1()
await coro_2(result_1)
и никаких коллбэков, конечно, не нужно. async/await как раз нужны для того, чтобы избавиться от колбэков и чтобы не было callback hell, как это бывает в JS.

Вот проблемы начинаются, когда логика нетривиальная, например от result_1 зависит несколько функций. А ещё хуже, если они зависят ещё от result_2, которая считается другой корутиной, независимо - вот здесь уже никакой gather не поможет.

На этом этапе и начинается переизобретение MQ с разными стратегиями. Надо смотреть на конкретные задачи и конкретные проблемы, чтобы предлагать решение.
209 1970984
>>70971
Ты уже выдумываешь другой кейс, когда loop.run_forever(), без выхода. Этот же шизик указал, что он хочет все в пуле делать, но со schedule.
Ты же начинаешь искусственно усложнять условия первоначальной задачи.
Что значит избавиться, когда он тут нужен в одном месте для запуска цепочки других тасков? При чем тут JS, если речь про Python? Ах да, весна пришла.
Pub/sub нужны тогда и только тогда, когда нет иного механизма передачи данных:
1. Микросервисы
2. Исполнение кода на удаленном сервисе
3. Все разбито на процессы, так как CPU bound так много, что нет смысла все делать асинхронкой и нет выхода из цикла кроме как с ошибкой.
210 1970990
>>70984

>Pub/sub нужны тогда и только тогда, когда нет иного механизма передачи данных:


pub/sub это архитектура для взаимодействия между задачами в приложениях с конкурентностью. Как и очереди, только это более продвинутые варианты очередей.

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

Такая же история и с очередями.
211 1970998
>>70971
На пальцах объясняю. Тебе надо исполнить все корутины и исключить блокировку.
Coro1, coro2, coro3 производят какие-то результаты
сoro4 зависит от результата coro2, coro5 зависит от результата coro3.Если я правильно понял шизоида, то надо выполнить одновременно первые 3 корутины и не ожидать конца из выполнения. Прописав кастомный callback ,если корутина 2 выполнится раньше чем корутина 3, то должен быть передан результат выполнения, передана как аргумент в coro4 и запущено исполнение.
Тут стратегия принятия решения: если первая зависимая корутина возвращает exception, тогда весь процесс прекращается. Шлется [t.cancel() for t in asyncio.Task.all_tasks] и выход sys.exit(1) например.
Все просто. Для этого надо напрячь мозг и описать стратегию, инкапсулировать логику в объектах, а не писать спагетти код
212 1971042
>>70998
Всё-таки ты немного неадекват.

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

Во-первых, это спагетти конкретное. Это довольно большой лишний код. Ты туда передаёшь синхронную функцию, хотя по логике тебе скорее понадобится асинхронное поведение, тебе корутина нужна.

>тогда весь процесс прекращается. Шлется [t.cancel() for t in asyncio.Task.all_tasks]


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

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

Иначе бы не писал такие вещи.

По делу, основной паттерн в современном конкурентном программировании это pub/sub. Частный случай очереди.

У тебя одна задача что-то посчитала, опубликовала результат в очереди. Те, кому этот результат нужен, слушают это очередь, и как только туда что-то поступило, начинают свою работу.

Вот так и достигается декларативность. Работает это и в рамках одного процесса (asyncio/threading), и на системах с несколькими машинами и большим количеством микросервисов.
image.png8 Кб, 395x129
213 1971045
Вот так норм писать или для этого есть специальная штука?
215 1971056
>>71046
спасибо
216 1971085
>>71042
Писал, пишу и буду писать.
Ты долбишься в глаза, где я говорил о add done callback? Я предложил отказаться нахер от этого варианта и написать свой. Это просто блять название, сечешь?
Так я хуй знает надо ему обработать это exception и продолжить выполнение или нет. Речь шла о прерывании, ты опять додумываешь кейсы за него.
Какая блять синхронная функция если
def callback(task, result):
if not task.exception():
loop.run_until_complete(coro3(result))
Все! Сделай класс-обертку и применяй к любой корутине, добавь туда логику и готово решение. Используй где угодно.
Нет ты тащишь паттерны, пытаешься натянуть сову на глобус. Один раз создать класс обёртку, добавить туда exception handler для обработки исключений каких надо и все. Или ты снова мне про паттерн pub/sub будешь затирать и снова кейсы выдумывать? Смирись, все делается меньше чем за 30 строк кода.
16035766884110.png56 Кб, 289x267
217 1971088
>>71085

>Запуск run_until_complete в работующем лупе

218 1971089
>>71042
И все посты не про самоутверждение. Что тот анон, что ты сами не понимаете что должно в итоге получиться.
Ну куда мне до вас сеньоров-лапшичников двухлетних
219 1971090
>>71088
Все я низменный червь проебывающийся в синтаксисе, уел.
Извините сеньор помидор, больше сюда не зайду.
220 1971092
>>71090
Может быть ты заметил, что это ломает твою логику с добавлением в калбек, так как ты не можешь засунуть туда асинхронную таску
221 1971129
Всем привет! Поставили задачу запилить тест Фреймворк для тестировщиков. Тесты 90% api. Я с питоном особо не работал, но почитал что request библиотеки и pytest хватит почти для всего.
Вопрос. С чего вообще начать фреймворк? Я полагаю нужно сделать ООР с методами логина и прочей ботвой отдельно от самих тестов?
Где-то можно шаблон какой-то найти? Вот прям с самого старта чтобы сделать логин, какую-то базовую проверку токена, ну и тд. Спасибо.
222 1971134
>>71129
Запили сначала с десяток тестов как они должны быть. Затем то что повторяется выноси в фреймворк.
223 1971276
>>71045
Лол, это ты содажешь функции с названими хуй, пизда? ну ты рофлишь
224 1971282
>>67018 (OP)
Правда ли что Джанго - тупиковый путь в плане работы и после него маловероятно что залезешь во что-то иное?

сейчас работаю на стеке фласк / aiohttp есть ли смысл перекатываться в джанго?
225 1971289
>>71282
Зависит от того, что ты делаешь. На прошлой работе джанга была нужна только как гейтвей с орм и шаблонизатором для вызова микросервисов.
226 1971318
>>71276
Альфач пишет те имена функций, которые хочет
227 1971340
Прошу помощи. Произвожу парсинг игр с GOG'а и (о, ужас!) название некоторых из них НА РУССКОМ, а мне нужно только на ангельском. Как фиксить?

парсю отсюда: https://www.gog.com/games/ajax/filtered?mediaType=game&page=1&sort=date
код: https://ideone.com/myAPvO
228 1971346
Аноны, можно ли через пайчарм редактирвать код на удаленном сервере, то что запускать через деплоемент можно я уже в курсе, хотел бы именно полностью удаленно запустить папку с проектом и там спокойно копаться и редактировать, это вообще возможно?
229 1971364
>>71346
А нахуя? Ты гитом пользоваться не умеешь?

Проще тогда без пайчармов на сервере редактировать файлы, если уж так прет
230 1971373
>>71318
А как же мантра питона что названия функций должны быть понятны?
231 1971379
>>71373
Это вообще то для любого языка актуально. Название функции должно давать предстваление о том, что эта функция делает

Т.е. функция def fuck_ops_mom() не должна тебе отсасывать
4.png56 Кб, 946x712
232 1971383
>>67018 (OP)
Недавно писал сюда, и мне помогли, потому попробую ещё раз.

С горем пополам построил я по 3 спискам координат график, который делает контурный рисунок поверхности методом триангуляции. И всё бы хорошо - только вот всратый он, как моя жизнь. Поэтому надо мне область под кривой закрасить - а она не хочет. Собственно, пример на картинке - plot.fill даёт неудовлетворительный результат, как я с ним не мучился, а between я не знаю, как тут применить.
233 1971394
>>71379
Кстати этому пацанчику с экстремальными названиями функциями нужно запилить игру на пайгейме где функция хуй реально будет отрисовывать хуй, а функция пизда - пизду.
ну и полирнуть функцией фак для запуска процесса.
234 1971400
>>71346
Tools / Deployment, гугли как настроить
Потом в Python Интерпретаторы вроде надо добавить SSH Interpreter
235 1971411
>>71340
Скорее всего виновата кука gog_lc
>>71346
Если уж vscode так умеет, то pycharm точно должен уметь.
236 1971472
>>71411
Спасибо, указал в параметрах сессии cookies= {'gog_lc': 'RU_RUB_en_US'}, помогло
237 1971517
Есть пгшная функция, которая возвращает set of refcursors

Вопрос: как через sqlalchemy вытянуть таблицы из этого набора курсоров?
238 1971736
Поясните, питонисту нужен ли линукс? Ставил его пару раз и у меня просто физическое отвращение к нему, из-за того, что всё не как на винде.
239 1971749
>>71736

>Поясните, питонисту нужен ли линукс?


Уметь с ним работать нужно любому разработчику. Использовать в качестве основной операционной системы - нет.
240 1971750
Прмерно за сколько времени можно стать джуном по питону? Уделять готов 2-3 часа в день. Имеются базовые знания программирования. И можете посоветовать гайл или что то подобное? Что вообще должен знать джун?
241 1971751
>>71749
А что подразумевается под "имением работать"?
Часто вижу это требования в вакансиях.
Если я через терминал могу спуллить код с гитхаба и подредактировать его в nano - я уже умею пользоваться линуксом или ещё нет?
242 1971758
>>71751

>Если я через терминал могу спуллить код с гитхаба и подредактировать его в nano - я уже умею пользоваться линуксом или ещё нет?


В принципе да, если не пугаешься консоли и способен быстро учиться. Работают с линуксом в основном девопсы, а разрабам хватит основ.
243 1971772
>>71751
Это называется на уровне пользователя, то есть ты можешь более-менее спокойно пользоваться базовыми возможностями командной строки, ходить по каталогам, копировать-удалять, архивировать-разархивировать, фильтровать вывод, редактировать файлы (не обязательно vim), там команды find, grep, top, ps, kill. Запуск команд из командной строки. Плюс установка софта через apt, работа с ssh, ну и понимание каталогов /etc, /var, /opt.

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

Админские навыки это уже другое.

Бывает ведь народ, который может работать исключительно в окнах винды (может даже довольно прилично, с хорошим пониманием на админском уровне), командная строка даже видны для них мрак, соответственно если они попадают в линуксовое окружение и необходимость работать через консоль, они просто рассыпаются.
244 1971800
>>71318

>Альфач пишет те имена функций, которые хочет


Истинная правда.
Вот делает чувак модуль logging для стандартной библиотеки питона. Не портирует либо под питон, а именно чисто питонячья стандартная библиотека.

И срёт на весь PEP8, не удосуживаясь даже от camelCase к питонячьим стандартам перейти
https://docs.python.org/3/library/logging.html

И ничего. Стандартная библиотека.
245 1971814
>>71772
Ну так-то командная строка шинды это та ещё хуйня - или убогий cmd из времен дос, или норкоманский павершелл. Можно получить отвращение к такому способу работы с системой.
246 1971840
>>71800
У меня кстати подгорает, подскажите, в чем проблема сделать logging.info(*list), почему нужно блять передавать либо f string, либо str(str(a)+str(b)), либо формат, нет бы сделать как в принте, идеал же
247 1971843
Впервые задеплоил проект на сервер и даже с доменным именем, заинтересовало что за магия происходит, когда вводишь домен в браузере, мы бежим в днс, оттуда получаем айпи, а уже на nginxe он просто денаит все подключения, пока явно не пропишешь сервер нейм? Нгинкс ведь никак не сообщает днсу о том что у него в конфиге появилась эта строка. Кстати вопрос, я сегодня часа 1,5 ебался с gunicorn сокетом, в итоге забил и просто на локалхосте запустил, ебля с сокетом вообще нужна?
248 1971851
>>71843
Когда ты вводишь домен в браузере, он посылает его в заголовке Host, чтобы можно было хостить дохуя доменов на одном сервере.
249 1971872
>>71843
dns тебе по домену выдаёт ip

В заголовке http указан хост

В nginx ты прописываешь правила для хостов, там же ты можешь настроить хост по дефолту, он сможет обрабатывать левые домены.
250 1971900
>>71851
Но по сути он тупо делает запрос к вебсерверу, точнее делает запрос на порт, а уже если ътот хост есть в роутерах нгинска, то запрос проходит, верно?
251 1971902
>>71134
Это понятно. А сам фреймворк есть шаблон какой-то? Логин идёт через вебдрайаер пакет? Я просто в этом особо не шарю. Спасибо. Есть ли есть какая-то ссылка на репо или гайд было бы круто.
252 1971906
Как вкатиться в гуи?
Хочу простенькую галерею сделать, чтобы брать лист урлов на картинки из апи и показывать галерею этих картинок в окошке
253 1971908
>>71900
Всё работает на tcp/ip. Трафик в интернете идёт по ip адресам, tcp соединения устанавливаются по ip адресам.

Твой компьютер устанавливает tcp соединение с сервером, с nginx. На этот момент nginx знает только твой ip адрес. Как соединение установлено, так идёт общение по http протоколу.

В заголовке http пакета, что высылается на сервер, есть поле
Host: www.some.host.net
и другие поля, потом пустая строка, и дальше какие-то данные, например POST данные.
nginx смотрит на это поле Host, и дальше смотрит свои конфиги, что делать с этим хостом.
Конфиги хранятся обычно в каталоге
/etc/nginx/site-avaible

там есть секции
server {
listen 80;
listen 443 ssl;
server_name my_server.com;
}
которые отвечают за настройки разных вебсерверов, которые обслуживает nginx. Вот там и прописывается, как обслуживать конкретный сервер.

В принципе ты можешь любой домен прописать, а у себя на локальной машине переопределить для него DNS. То есть твой nginx может обслуживать google.com, но тебе надо будет ещё сделать запись в файле hosts (есть и linux, и в windows), чтобы со своего компьютера ты по имени гугла попал на твой сервер, а не оригинальный гугловский. Правда только по http, по https не получится, потому что браузер уже электронные подписи проверяет.

Там же, в настройках одного из серверов, ты можешь прописать
listen 80 default_server;
listen [::]:80 default_server;

этот блок настроек будет отвечать за случай, когда ты заходешь напрямую по ip адресу, либо по доменному имени, которое в настройках забыл прописать.
253 1971908
>>71900
Всё работает на tcp/ip. Трафик в интернете идёт по ip адресам, tcp соединения устанавливаются по ip адресам.

Твой компьютер устанавливает tcp соединение с сервером, с nginx. На этот момент nginx знает только твой ip адрес. Как соединение установлено, так идёт общение по http протоколу.

В заголовке http пакета, что высылается на сервер, есть поле
Host: www.some.host.net
и другие поля, потом пустая строка, и дальше какие-то данные, например POST данные.
nginx смотрит на это поле Host, и дальше смотрит свои конфиги, что делать с этим хостом.
Конфиги хранятся обычно в каталоге
/etc/nginx/site-avaible

там есть секции
server {
listen 80;
listen 443 ssl;
server_name my_server.com;
}
которые отвечают за настройки разных вебсерверов, которые обслуживает nginx. Вот там и прописывается, как обслуживать конкретный сервер.

В принципе ты можешь любой домен прописать, а у себя на локальной машине переопределить для него DNS. То есть твой nginx может обслуживать google.com, но тебе надо будет ещё сделать запись в файле hosts (есть и linux, и в windows), чтобы со своего компьютера ты по имени гугла попал на твой сервер, а не оригинальный гугловский. Правда только по http, по https не получится, потому что браузер уже электронные подписи проверяет.

Там же, в настройках одного из серверов, ты можешь прописать
listen 80 default_server;
listen [::]:80 default_server;

этот блок настроек будет отвечать за случай, когда ты заходешь напрямую по ip адресу, либо по доменному имени, которое в настройках забыл прописать.
254 1971965
255 1971967
>>71840
Создаёшь экземпляр объекта
logger = logging.getLogger() переписываешь методы где подаёшь *args на вход. Вот и сделал. Есть же обертки logging которые и сразу окрашивают строки для StreamHandler или формат сразу в JSON.
256 1971969
Аноны, есть теоретический вопрос:
Есть веб-сайт, с base auth(на нжинксе), на сайт захожу под хттпс(соответственно по доменному имени). Первый вход норм, все работает, но затем, на 3-4 запрос к серверу(начинаю ходить по ссылкам на веб-сайте), начинается бесконечная загрузка в бровзере и в результате ошибка, что соединение разорвано. Если захожу на сайт по ИП, то все норм.
На сервере связка Nginx+certbot/flask. В какую сторону смотреть и как гуглить проблему?
257 1972002
>>71969
Смотри network в консольке браузера, какой конкретно запрос ломается. Ещё логи сервака посмотри.
258 1972033
>>67018 (OP)
>>1962060 (OP)
Сап аноны.
Много раз пытался вкатываться в python впрочем это мог бы быть любой другой язык и постоянно сталкиваюсь с одной и той же проблемой.

Я не вижу практического применения навыкам. Дохожу до той границы, когда материал уже довольно сложен для понимания, и требует усилий для освоения ну во всяком случае для меня , а куда это всё применить непонятно. Ну вот я причитал три книги, уже знаю основные конструкции языка, но всё ещё не пойму где это может пригодится, могу только сидеть и писать условные калькуляторы круглыми сутками.
259 1972053
>>72033
Ну сделай типовую хуйню посложнее, тетрис, например.
260 1972071
>>72053
эээ..пук-среньк в этом и кроется основная проблема, я непонимаю где переход, вот от этих всех назначить переменную-кинуть экспешен-написать функцию в сделать что-нибудь полезное.
261 1972072
>>72033
У меня мотивация поднялась, когда я веб фреймворки начал изучать. Помню как охуел, когда в браузер первый раз вывел {"status": "ok"}
Ух бля
262 1972073
>>72071
Начни делать как получается, а там увидишь применения.
263 1972096
>>72072
>>72073
Возможно я что-то не то читаю. Сколько книг не открывал, в них алгоритмизация-констркции языка. Как перейти от этого к прикладным задачам решительно не понимаю. Вот я высрал условный скрипт в консоли, на этом мои полномочия всё.
vWAAAgP-E-A-960.jpg81 Кб, 640x640
264 1972097
>>72096

> в них алгоритмизация-констркции языка


Если нужны дополнительные либы - читаешь документацию и пилишь.
265 1972195
>>72033
У тебя экзистенциальный кризис или вкат негладко проходит? Возможно тебе просто надо уже перестать поглощать материал и ебошить практику. Только не калькуляторы, а что-нибудь посложнее. Веб-сервис, гуи приложение, сложное консольное приложение, спарсить что-нибудь, csv банковской выписки обработать. Правильно тетрис посоветовали, арканоид можешь ещё заебашить.

> причитал три книги


А, ну да, бросай читать, хватит уже, пора кодить.
изображение.png289 Кб, 500x283
266 1972225
>>72195
Скорее первое.

>Веб-сервис, гуи приложение, сложное консольное приложение, спарсить что-нибудь, csv банковской выписки обработать.



Вот в этом то и беда, я не могу понять, как от моих манипуляций с коносолю, перейти к гуи\веб.
267 1972238
268 1972242
>>71908
Ох, спасибо, я даже забыл о том что там соединения происходят, много чего уточнил. Вообще почему-то теории продвинутой в интернете не так много, одни объяснения для мимочелов
269 1972245
>>71967
Так это вручную делать, еще и на каждом проекте, мое возмущение о том что в модуле эта очевидная возможность нереализована, я из-за этого раньше понять не мог почему json из ответа не логируется, оказалось нужно передавать строго строку и только одну
270 1972247
>>72033
А я вот перешел на новый уровень как раз и только стал осознавать как часто приходится юзать базу, обычные работы со строками юзаю постоянно, преобразования типов, структуры данных, тоже думал юзлесс хуйня, а на практике все очень нужно, даже потоки оказались не бесполезными как я думал в питоне
271 1972252
>>72096
Ты начни гуглить классику просто, типа как сделать тетрис на питоне, посмотри библиотеки, которые используются, я так полагаю проблема в том, что ты не понимаешь как пользователь может взаимодействовать с кодом, ответ: веб приложения, гуи, консоль, выбери то что хочешь, изучи условно как в консоле передавать флаги и аргументы и вот у тебя уже консольное приложение, ставь цель какую-то, типо спарсить информацию о 100500 тайтлах с какого-нибудь сайта, посмотри как это решается, почитай про асинхронность умловную и сделай парсер, а потом все эти знания на самом деле пригодяться на настоящей практике
272 1972255
>>72225

> как перейти


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

Насчёт полезности это сложный вопрос. Обычно тренируются на заведомо бессмысленных пет-проектах, которые сделать просто по приколу, потому что можешь. А вот дальше многие и за всю жизнь неспособны разродиться чем-то полезным собственной задумки, и просто тупо работают по найму/контрибутят в чей-то софт, так что это норм.
273 1972260
Скиньте максимально понятный гайд или конкретный пример по парсингу на питоне с комментариями
ПОЖАЛУЙСТА, УМОЛЯЮ, ХОСПАДЕ
274 1972264
>>72260
Деньги вперед.
image.png611 Кб, 800x484
275 1972270
>>72264
ПРОШУ
image.png628 Кб, 640x480
276 1972272
>>72270
Денег не вижу.
Отказано.
277 1972285
>>72272
Таки поддерживаю.
278 1972287
>>72260
Умоляю, пидорасы, позвольте вкатиться
А.Б.Усманов.jpg69 Кб, 700x450
279 1972289
>>72285
>>72287
Отказано.
Запрещаю.
image.png320 Кб, 1920x1080
280 1972366
Кто шарит, написал бота в телеграмме с клавиатурой, сначала он отвечал на /info, выводил на экран клавиатуру в сообщении, после нажатия на ДА появлялись кнопки под полем ввода, но они уже не выводили никакой инфы, хотя должны. А при второй попытке написать боту, он вообще перестал что-либо отвечать. Вопрос: в чем ошибка-то вообще
281 1972373
>>72366
Да.
image.png1,2 Мб, 1920x1080
282 1972380
>>72366
дополнение. После команды /get_info стал выводить кнопки, но ответ на них не даёт. Как фиксить?
283 1972382
>>72380

>Как фиксить?


Просто и без задней мысли.
284 1972383
>>72382
спасибо, папаша
285 1972450
Народ... Django.. Есть модель вида - (город, адрес, номер дома, слаг). Хотелось бы получать слаг вида - /город/адрес-номер,
слагифай формирует все - город-адрес-номер. Хотелось что бы при обращение lockalhost:8000/город фильтровать адреса по городам. Подскажите как лучше и красивей это сделать, через функцию или класс контролер
286 1972473
Закатывайтесь в чатик - https://vk.me/join/AJQ1d0GhERv8lLTr4LJ1tuqO
287 1972501
>>72225
Попгули квикстарт для aiohttp/fastapi
288 1972570
>>67380
Некропост, но мне доставляет так:
if not {\search-items} - {\container}:
____ # все элементы из search_items найдены в container
289 1972572
>>72570
Сраная макаба
Вместо бэкслэша звездочка офк
290 1972578
>>72570
Можешь пожалуйста на примере расписать. Твой синтакс не читается вообще.
291 1972582
>>72570
Если большие структуры, то хуевато.
Алсо, словарные keys и values уже умеют в сетовые операции.
292 1972590
Как в говносинке архивом-то скачать? Нельзя было на яндекс тот же залить новый набор книг?
293 1972614
>>72590
напиши скрипт
294 1972616
>>72450
Просто два слага.
295 1972635
>>72614
Если б я умел такое, книги б не качал...
296 1972636
Периодически листаю разные проекты на гитхабе для самообразования. Иногда куски кода нравятся как написаны. Прямо. хочется сохранить. Пока ничего не придумал, кроме как пихать в блокнот с подписью, что это и откуда взято. Но это никак не структурировано.

Никто не сталкивался? Кто как хранит, если хранит?
297 1972657
>>72473

>Закатывайтесь в чатик


>vk


Нет, товарищ майор, нет.
298 1972678
>>72366

почему не пизданул сразу в ООП?
было бы проще потом пидорасить других ботов
299 1972680
>>72636
делаю скришншоты
ведь я я ебанутый
300 1972687
>>72680
Ну так вообще даже базово искать невозможно.
301 1972708
Пытаюсь освоить джангу, охуеваю от того, что даже ради самых базовых вещей приходится лезть в командную строку и IDE. И это 2021 год? Говно какое-то.
302 1972762
>>72636
у меня отдельный репозиторий для такого.
А вообще вроде есть github gist, но не знаю как это работает.
303 1972779
>>72678
не разбираюсь в этом. первый мой микро-проект. если есть, что почитать по ооп, буду признателен
304 1972820
>>72252
>>72501
спс, звучит как что-то полезное
problem.png49 Кб, 1466x324
305 1972839
Кто-нибудь понимает, почему abs() здесь возвращает ноль?
306 1972840
>>72839
Вернее было бы так спросить: почему abs() здесь при вызове скрипта из консоли возвращает ноль, а при тестировании того же куска кода в интерпретаторе - нужное значение? ЯННП.
307 1972847
>>72839
>>72840
А, всё, сори - sorted() не хватает. Долбился в глаза минут сорок.
308 1972880
>>72708
Каких базовых, клоун?
309 1972899
>>72708

>Надо код писать


>Надо команды выполнять


Перекатывался на Node, там голова болит от зависимостей и размера node_modules, бросай этот сраный Питон.
310 1972907
Как щас дела с веб разработкой на пистоне под винду? Докер в каком состоянии? Есть ли аналоги pyenv?
Как вкатился на работу, пересел на убунту. 3 месяца уже сижу и все никак не могу привыкнуть, хочу вернутся обратно.
311 1972910
>>72779
а, я думал может ты на постоянной основе мутишь. что почитать это в инете есть инфа, советовать не могу.
прост с классами удобнее повторно использовать код
312 1972941
Что лучше использовать .reverse или [::-1]?
313 1972955
>>72941
Это вообще разная хуйня. reverse модифицирует список, -1 копирует итераблю в обратном порядке. Есть ещё reversed, который итератор в обратном порядке.
Последнее лучше всего, если тебе не нужна именно копия.
314 1973090
>>72907
Докер нативный на hyper-v, но нужна Pro версия. pipenv точно работает, но poetry в разы лучше, обязательно наверни. Чем убунту не нравится тебе я хуй знает, а частенько деплою bare metal на ubuntu LTS и соответственно на ней и сижу. Чего не хватает на линуксе? Может подскажу аналоги.
8fc14ae7dc83.png185 Кб, 231x333
315 1973281
Анон объясни, что происходит. Личинка админа в моем лице, хочет учить питон для скриптов. Начал смотреть видосы на ютубе как чел пишет скрипты, так вот там чел задает пустую переменную
files = []
И добавляет метод, который предполагает туда сбор названий файлов которые находит цикл. Далее он хочет примернить к каждому элементу записанному в files другой метод через цикл и внезапно он пишет просто конструкцию вроде
for file in files:
При этом никакой переменной file до этого не создавалось. Мне непонятно как интерпретатор сам понимает, что file это каждый отдельный элемент добавленный в files, если ранее в коде это никак не обозначено. Я раньше немного php ковырял, когда открываю код на пыхе хотя-бы понятно примерно что происходит, а код на питоне выглядит как какая-то ебучая магия.
316 1973292
>>73281
Потому что это конструкция языка, которая работает определенным образом. На каждом витке цикла к текущему элементу цепляется алиас.
Вообще, если что-то не понятно, то идеальный вариант это смотреть документацию по синтаксису, там обьясненен именно синтаксис и все его возможные элементы, а не что тебе хуй в книжке или видяшке пожелал изложить.
Например, для фор https://docs.python.org/3/reference/compound_stmts.html#the-for-statement
сашко-фокин.jpg38 Кб, 604x410
317 1973499
>>73292
Там все на английском. Да я знаю, что без английского в it никак, но тяжело сцука.
318 1973529
>>73281
это не переменная это список, сначал он в список кладет, потом изменяет.

>При этом никакой переменной file до этого не создавалось.


это локальная переменная создается в скоупе итератора на каждом проходе, существует только внутри = текущему проходу итератора по объекту, я питон тоже не знаю.
319 1973540
>>73529

>это локальная переменная создается в скоупе итератора на каждом проходе


Ну смотри, у тебя есть files, в который записываются строки. Потом эта переменная передается в конструкцию
for file in files
files имеет вид: hui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txt
В пыхе тебе нужно с помощью регулярного выражения задать по каким критериям ты будешь вытягивать строки. Здесь же получается, каждый hui.txt сам вытягивается как file.
320 1973552
>>73540
это скорее особенности реализации конкретного языка под капотом.
321 1973557
>>73540
Какой ужас!

files имеет вид ['hui.txt','hui.txt','hui.txt','hui.txt','hui.txt','hui.txt','hui.txt','hui.txt','hui.txt'] (и это не строка, а список)
Кстати, не матерись
Думаю, теперь тебе понятно, откуда в file будет hui.txt
Если бы files было как ты написал, то там по букве в file клалось.
322 1973574
>>73529
Ну и на кой хуй ты лезешь, если не знаешь.
https://ideone.com/BQQ7vt
323 1973578
>>73557

>Если бы files было как ты написал, то там по букве в file клалось.


если по строке то надо писать реализацию как итерировать, в зависимости от того какое представление строк в языке.
324 1973581
>>73574
вложенный список? серьезно?
325 1973583
>>73581
Нет, отсутствие блочных скоупов и нихуя там не создается.
326 1973584
>>73557

>и это не строка, а список


Я тоже так думаю, просто в пыхе , насколько я понял\помню, если ты собираешь названия файлов в переменную они по умолчанию записываются как string, и у тебя выходит что-то вида 'hui.txt' . 'hui.txt' .'hui.txt' .'hui.txt'
А тут выходит какой-то список, при этом это даже не array. Ну я говорю, что мои познания в коде на уровне шимпанзе, поэтому я не понимаю как это работает.
327 1973586
>>73583

> отсутствие блочных скоупов


воистину говно
328 1973589
>>73586
сколько нам открытий чудных
329 1973590
>>73589
я всегда честно думал что он там есть
330 1973597
>>73590
Я читал, раньше и компрехеншены протекали, с какой-то версии пофиксили, лол.
F0247D27-350D-4967-A1DB-8A9D58A00FE8.jpeg79 Кб, 480x853
331 1973750
332 1973752
>>73281
for file in files: это можно написать иначе

file = None # бесполезное объявление, чтобы тебе было привычнее
files_iter = iter(files)
while True:
..try:
....file = next(files_iter)
..except StopIteration:
....break
..# тело цикла

Так понятнее? Попробуй print(vars()) в любом месте кода написать. Увидишь что переменные это банальный словарь имя-значение. Их не нужно объявлять заранее, сразу присваиваешь x = 5 и понеслось.
333 1973755
>>73583
>>73586
Нахуя козе баян? Слабо написать развёрнутый rationale как в пепах?
334 1973757
>>73590
Они есть, class, def, компрехеншены образуют скоупы. В питоне не принято писать портянки из одной функции на 1000 строк. Единственное неудобство это загрязнение модульного скоупа предвычислениями, но это тоже решается либо функцией, либо del.
335 1973779
>>73757
Речь не о том. Посмотри, какие скоупы в том же си.
336 1973812
2 дня кряхтел мозгами как реализовать функцию, а сегодня наконец сел и написал и когда все сработало я минут 5 не мог перестать расплываться от счастья. Аноны, вы тоже получаете дикий кайф от проганья? Это проходит со временем?
337 1973818
>>73779
Я именно об этом и говорил. В луа есть do block похожий, в js циклы и такие же блоки образуют скоуп. В питоне ещё есть with, который не совсем про скоупы, но выполняет часть семантики скоупов в других языках. Возможность написать n вне цикла, а потом внутри цикла, это же поощрение говёного кодстайла, тебе ещё выяснять придётся какой это n. Если кому-то сильно зудит что переменная не освобождается, есть del.
338 1973848
Друзья, поделитесь гайдом, как на Дженкинсе сделать CI своих тестов на питоне на сервере?
339 1973959
Нашел на гите такой вот роадмап по пайтону. https://github.com/GnuriaN/Python-Roadmap
Что думаете? Меня смущает, что там чел советует курсы. Насколько я слышал, курсы по программированию это что-то вроде бизнес тренингов. Я ранее код не писал, собственно вопрос, лучше по книгам учиться?
340 1973971
Питоны, 32битная версия питона вообще используется или это уже редкость? Вы в своих проектах ее поддерживаете, пакеты под нее собираете?
341 1973973
>>73959
Курсы для совсем нубов. Если можешь читать и организовать себе практику то книги лучше.
342 1973993
>>73959

>лучше по книгам учиться?


Книги не научат тебя бест практик и не будут дрочить по pep8, да и в целом по дзену питона.
343 1974038
>>73993

>Книги не научат тебя бест практик и не будут дрочить по pep8, да и в целом по дзену питона.


А курсы научат? Я думаю лучший способ конечно найти ментора, но не думаю, что кто-то захочет просто так тратить на меня время.
344 1974048
>>73971
Тебе зачем это?
345 1974049
>>73993

>по дзену питона


Бесполезная хуита, которая сопротивляется удобным фишкам. Из-за гвидо съебал от этих тупых ивалидов, кто давясь слюной защищал дзен.
Сроду не следовал этому. Как удобнее/эффективнее/проще/нужно по ситуации - так и делаю
346 1974051
>>73959
Очень хлипкий.
У го действительно хороший роадмап, хотя и устареет скоро. А здесь расписывается несколько абзацев какуд среду разработки поставить. Еще, блять, советует сразу две идеи держать. Ну нахуя?
Актуальные веб фреймворки, брокеры очередей, орм - где всё это и это только под веб.
https://github.com/Alikhll/golang-developer-roadmap
347 1974057
>>74048
Хочу уговорить в проекте не поддерживать x32 версию, потому что лень. Но аргументов особых нет. А тут глянул на github action который питон устанавливает, в нем, например, уже забили болт на x32. Вот мне и интересно стало, как вообще с этим дело обстоит.
348 1974072
>>73971
На линухе для внутреннего скриптинга поддерживается и для десктопов. Если пилите серверную приложуху, то нахуй не нужно.
349 1974097
>>74057
Бери и говорил, что идет повсеместный отказ от x32 приложений и всё. Легаси трудно будет выпиливать, обновлений не будет и т.д.
350 1974232
Захотел разбить большую функцию на несколько, возникла проблема: в каждой микро функции нужно несколько одних и тех же переменных, причем одна функция конвеером затрагивает другие и приходится одно и то же передавать, как это решать, это сильно плохо? Использовать объекты, чтобы передавать только его и его полям обращаться просто? Если передавать словарь, то кажется не очень красиво будет. Либо это значит, что я хуйню понаписал и надо переписывать все?
351 1974249
>>74232
Ну никто не запрещает. После рефакторинга так и вышло. 2 функции принимают один и тот же аргумент. Можно конечно консолидировать в один метод, но нахера?
352 1974272
>>74232
Скорее всего последнее. Покажи код.
353 1974273
>>74232
Замыкание или класс/словарь/контекст/etc в принципе замыкание это то же самое.

> Complex is better than complicated.



Выбирай меньшее из зол. Раньше ведь всё равно было хуже.
354 1974286
>>74232

>Использовать объекты, чтобы передавать только его и его полям обращаться просто?


Эти функции сделать его методами и в конце каждого метода возвращать self, тогда можно будет строить цепочки методов уровня GentlemanUdachi.ukral().vipil().v_turmu().
355 1974405
>>74038

>А курсы научат?


Смотря что за курсы, но у нормальных в основном акцент на этом.
356 1974422
>>74049

>Сроду не следовал этому. Как удобнее/эффективнее/проще/нужно по ситуации - так и делаю


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

Дзен - это устная договоренность между всеми кодерами работающим с эти языком. Никто конечно и в жизни не запрещает никому вести себя как мудак, но это моветон. Для этого есть другие языки.

По этому при собесах я отдам предпочтение тому, кто прошел курсы, чем тому, кто вкатился именно в питон по книгам. Код намного приятнее читать. И уж лучше такого джуна доучу, чем переучивать книжного.
Это конечно не абсолют, и там и там есть нормальные и не нормальные, но примерно 80 на 20 по моим субьективным наблюдениям.
357 1974445
>>74422

>По этому при собесах я отдам предпочтение тому, кто прошел курсы


Ты хоть чуть чуть эти курсы видел изнутри? Куча народу, препод даун с зп 30к рублей и абсолютно похуистичное отношение, когда нихуя непонятно.
358 1974447
>>67018 (OP)
Анон, правильно ли я понимаю, что "Дронов Владимир - Django Практика создания Web-сайтов на Python" это кал, а не книга и вкатываться с её помощью бессмысленно?
359 1974454
>>74445
Видел. Есть крутые курсы и это не гикбреинс и не скилбокс, но не буду писать, так как меня обвинят в рекламе)

И там сидят преподы не на фул зп, а чисто как подработка.
360 1974455
>>74454

>а чисто как подработка


И нахуя им это? Только если это при какой-то компании, где самых толковых хантят
361 1974468
>>74422
Может тебе еще и лямбды трудны для понимания и ты везде их выпиливаешь в короткие функции?
362 1974491
>>74422
In [1]: data = [1, 3, 5, 7, 9, 11, 13, 15]
In [2]: print(list(filter(lambda x: (x % 3 == 0), data)))
Тебе наверно очень трудно будет прочитать то, что выше? И ты создашь отдельный список, куда в итерации будешь пихать результат?
363 1974646
364 1974670
Аноны, посоветуйте альтернативу Хероку для апи и бд. Эта хуета вымораживает постоянными ошибками, не смотря на хуеву кучу тестов и абсолютное отсутствие причин для возникновения таковых. Платно, бесплатно, поебать, лишь бы не связываться с этим дерьмом.
365 1974706
Всем привет, в чем отличие flask-security от flask-login?
366 1974712
Анчоусы, на pytest пытаюсь сделать фикстуру, чтобы по включению одной кнопки (булин) можно было печать или не печатать.
Пример. Есть юнит тест, который возвращает в stdout что-то. Есть конфигурация теста, где есть настройка типа printout - True. Нужно в конфтест файле прописать такую ботву, что если настройка Фалс, то не печатает, а если тру, то печатает. Как такое запилить?
367 1974744
Здравствуйте, мне нужно запускать питон скрипты через питон скрипт. Типа:

[Start run_all.py]

[Go to Dir /root/main]
[Run main.py - argument]
[Wait 80 sec]

[Go to Dir /root/test]
[Run test.py - argument]
[Wait 80 sec]

[End. ]
[Kill all process]

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

Как это делать? Я только Паскаль учил.
368 1974756
>>67018 (OP)
Есть ли книжки по созданию telegram ботов? Или только документация?
369 1974792
>>74744
Python run_all.py && cd /root/main && python main.py.
Ну ты понял
370 1974804
>>74756
читаешь апи и пишешь
371 1974815
>>74491

>print(list(filter(lambda x: (x % 3 == 0), data)))


Пока filter возвращал список, а не итератор, я именно так и писал, но на сегодняшний день print([x for x in data if x % 3 == 0]) и ближе к PEP8, и лаконичнее. Конструкция "x for x in data" конечно способна вызвать реакцию "ачё вообще)", но это дело привычки. Как list(filter()). Главное обсудить с коллегами, как писать, и закрыть вопрос.
372 1974818
>>74804
Если знаешь можешь помочь? Нужно чтобы бот каждый определенный день присылал уведомление и в то же время можно
было запрашивать у него другие функции, для этого нужна многопоточность, да? Я просто с ней еще не связывался, учусь только, поэтому не шарю
373 1974819
>>74818
Не нужна многопоточность
374 1974838
>>74422

> Если ты что-то пилишь для себя, то вопросов ноль.


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

> print(list(filter(lambda x: (x % 3 == 0), data)))


Вот это, вот, вообще хрестоматийный пример того, как не нужно использовать пайтон.
375 1974849
>>74838
Ну-ка напиши "по-человечески"
376 1974868
>>74838
Функциональное программирование топ.
377 1974869
>>74849

>Напишите функцию, выводящую список целых чисел от 1 до 100, но вместо каждого числа, кратного 3, она должна выводить «Fizz», а вместо каждого числа, кратного 5, выводить «Buzz». Вместо чисел, кратных и 3, 5, программа должна выводить «FizzBuzz»; все остальные числа должны выводиться без изменений.


[(lambda n: { 1: n, 6: "Fizz", 10: "Buzz", 0: "FizzBuzz" }[n4%15])(n+1) for n in range(100)]
Сосай)))
378 1974878
>>74869

>>NameError: name 'n4' is not defined


Сасай))))))
379 1974893
380 1974944
Аноны, можно найти как нибудь меньшее из 3 чисел, без циклов, условий if и функций?
381 1974956
>>74756
Есть, Д. Кнут "Искусство программирования"
382 1974986
Посоветуйте годный список вопросов на мидла
383 1975058
>>74849
>>74815

> [x for x in data if x % 3 == 0]



>>74868
В специально отведённых для этого местах, вроде Haskell'а - вполне.
384 1975071
>>74455
Любовь к делу плюс подработка)
385 1975074
>>74646
Нет не степик)
386 1975109
>>74422
ну кстати да, прикол курсов в том что там именно с самого начала заставляют учить хороший тон, чтобы не было всякого пиздеца
хотя даже курсы не помогают часто.
некоторые кодят так, словно блядь они ебашат от балды, никакой логики, структуры.
просто набор рандомного кода, который работает, но непонятно как и при этом еще может выкидывать всякие побочные эффекты ебовые, лол
387 1975117
>>73281
file это переменная в листе files в данную итерацию, т.е. если у тебя первая итерация то file равно первой переменной из files,вторая итерация-вторая переменная и т.д., тоже самое работает со строками и т.д., с числами используется range.
388 1975166
>>75109

>прикол курсов в том что там именно с самого начала заставляют учить хороший тон


Речь про какие-то конкретные курсы или о ситуации в целом?
Я вот вкатывался, просто изучая популярные репозитории с множеством звездочек на гитхабе, лол. Да, конечно это нихуя не гарант чистого, структурированного кода, но если у проекта много контрибуторов и он популярный, то скорее всего разрабы используют какой-то общий для всех кодстайл и пепы.
И вкатывался я сразу в веб на aiohttp/fastapi/sanic, а не с православных джанги/фласка. Вот недавно скачал курс по этой самой джанге. От otus, вроде. Ну полная хуйня на мой взгляд, сразу же не понравилось. Вроде 20 год, свежачок, а ведущие тратят часов 10-15 на устаревшие практики из древнего мира, типа фуллстека на одном фреймворке в монорепе с деплоем через ручную загрузку файлов на сервер. Никакого докера и прочих дев тулзов; хотя по идее, к этому почти сразу нужно приучать. Так вот кстати и не могу подружиться ни с джангой, ни с её рест частью - отторгает. Работу щас немного проблемно искать из-за этого.
389 1975173
>>75166
У всяких либ зачастую код весьма говнист в угоду универсальности.
390 1975180
>>75166
ну на кусере те курсы что я видел там сразу же поясняют за пепы и как не стоит делать и т.п.
Это те курсы где преподы с универов
391 1975183
>>67018 (OP)
как скачать все книги с sync'а?
392 1975250
>>75180

>Это те курсы где преподы с универов


Это должно придавать значимости?
393 1975265
>>75250
Наоборот же, преподы это хуи-теоретики, не имеющие опыта разработки.
394 1975278
>>75250
нет, прост они дрочат академически а не ебошат отсебятину типа -я так делую ёпта, и ты так делай.
>>75265
ну так курсы тебя не познакомят с опытом разработки.
они дают теорию и направление, а опыт разработки уже самостоятельно будешь получать.
например чел пояснил какими путями можно реализовать программу и какие есть паттерны.
и даются задания на реализацию.
оценка идет по результату работы.
То есть никто не мешает тебе конечно напердолить как хочешь, хоть в 1000 строк пиздануть вместо 100.
но это уже будет твой опыт личный.
А если не слушать что говорят и делать как сам хочешь - можно привыкнуть и хуярить горы непонятного кода на постоянной основе, такой себе опыт разработки.
к тому же, как говорят, на собесах как раз таки проверяют как ты хуяришь код, типа в конторах часто есть свои порядки как писать, и если ты ебашишь от балды то это неприемлемо.
ну это конечно мое мнение с дивана, может я неправ.
395 1975300
>>75278
Есть курсы, где помимо наставника есть ревьюверы, которые тебе дают фидбек по твоему коду)
396 1975318
>>75300
Ну в курсере тоже можешь обращаться в телеграм там и т.п. или на форуме спрашивать.
там кстати есть и задания которые сокурсники оценивают.
Но там обычно от балды ставят сразу зачеты, ибо им лень проверять, лол.
397 1975327
>>75300
Плати мне, я могу ревью твоего говна под названием код проводить
398 1975338
>>75300
Ага, по личному желанию перебрать тонны говнокода, вести лекции, слушать вопросы долбоебов вместо того, что бы в конторе код писать и все наивысшего качества
399 1975351
>>75338
Есть такая черта как твердолобость. Друг, никого не хочу оскорблять, но попробуй посмотреть на разные вещи, во первых под разных углами, а во вторых отличной от твоей точки зрения. Тем более ты работаешь в той области, где каждый год приходится изучать что-то новое, чтобы оставаться на плаву.
код.png52 Кб, 1653x520
400 1975407
Привет, мне тут помощь нужна, буду очень признателен, если подскажите. Есть бот на библиотеке telebot, который парсит новости с сайта с помощью bs4. Моя задумка в том, чтобы записывать url новостей, которые бот спарсил, в отдельный текстовый документ, это я сделал. Но в случае их наличия в документе он должен не выводить их, а выводить только новости, которых ещё не было. В случае же полного отсутствия новостей с новым url бот должен вывести сообщение о том, что новостей нет. Целый день голову ломаю, ничего не могу придумать. Даже какая-то новодка бы была очень полезна, только недавно начал учить язык. Вот так сейчас выглядит отрывок кода:
401 1975410
>>75351
Хорошо, покажи мне хоть один курс с преподавателями не-долбоебами, которые не смогли вкатится и не при какой-то фирме, которая выпускников потом себе берет.
402 1975428
>>74792
Ну, я вообще не программист. В общем я выебал мозг знакомому программисту и он мне сделал.

Там просто ос.систем и тайм.слиип
403 1975429
>>75407
Для этого лучше годится тот же sqlite.
А для твоего варианта, делаешь comps_news словарем и ключом url.
Потом просто делаешь comps_news.keys() - news_note и получаешь сет новых, по нему итерируешь и достаешь из словаря.
404 1975431
>>75429
Алсо, можно вообще не городить огород, а делать всё в цикле for item in items
405 1975436
Есть пара файлов file1.py и file2.py
В одном из них хочу сделать относительный импорт
from .file1 import function1

Но получаю ошибку
ImportError: attempted relative import with no known parent package

Если бы я делал
from file1 import function1
Все бы работало.

Перечитал первые ссылки в гугле и так и не понял как это работает.
Пробовал создать файл __init__.py но проблему это не решает.
Пробовал делать точку входа if __name__ == '__main__':

То ли, надо какую-то структуру проекта указать.

Объясните пожалуйста, что нужно сделать чтобы заработал относительный импорт.
406 1975437
>>75429
>>75431
Большое спасибо за подсказки ^^
408 1975451
>>75441
Я читал это. Стена невнятного текста через гугл транслейт. Объясни как мне сделать чтобы заработало.
И как надо делать.

И я вообще решил что нужно делать такой импорт, потому что, так делают во всяких джангах. И мне также надо делать.
409 1975488
>>75451

У тебя PyCharm? Ну делай через from проект.файл import *
410 1975505
>>75488
Ты зачем ему хуевые практики сходу прививаешь?
411 1975518
>>75505

>Ты зачем ему хуевые практики сходу прививаешь?



Ну по другому же он не хочет.
412 1975524
Посоветуйте книги по КРАСИВОМУ программированию на Питоне.
413 1975526
>>72762
Есть, но он публичный.
414 1975540
>>75524
Он и так красивый, если ты хуйней не занимаешься.
Снимок экрана 2021-03-23 в 20.46.00.png90 Кб, 2176x880
415 1975544
>>75451
Первым делом делаешь виртуальное окружение.
Таким образом у тебя будет корень проекта в путях. Тогда ты сможешь делать такие импорты
416 1975552
>>75524
pepe8
417 1975556
>>75540
Попробуй читать, что написано. Просьба не о красивом языке, а о красивом стиле. Говнокода от вьетнам-стайл до 8"Б"-стайл на питоне - полон гитхаб.
image219 Кб, 693x847
418 1975558
>>75552

>pepe8



Я чуть о другом.
image.png4 Кб, 257x146
419 1975565
>>67018 (OP)
Блять анончики я наверное совсем тупой раз не могу настроить вскод. Крч смотрите ситуацию, скачиваю вскод, скачиваю питон.exe , потом в вскоде устанавливаю питонское расширение и как бы все. потом ввожу условно код типа пика и во встроенной консоли ничего не появляется, ни запроса на введение икса ни чего то еще, то есть программа как бы запускается там виддно в терминале но какие то действия нельзя выполнить, объясните пожалуйста что я вообще не так делаю инб4: учишься кодить
420 1975575
>>75558

>pepe


>галстук без лягушонка


Протестую.
421 1975583
>>75565
Ладно, я дегенерат надо было вывести принт функции, но с другой стороны почему в видеоуроке который я смотрел пользуясь другим редактором не надо вводить print и он сам запрашивает число а в вскоде надо ух ебать мне времени понадобилось чтобы допереть до этой мелочи
422 1975586
>>75583
Можно ссылку на видеоурок?
423 1975605
>>75586
https://youtu.be/DvsCUI5FNnI
там где то с 1:07:00 начинается в конце видео практически
изображение2021-03-23215838.png5 Кб, 396x95
424 1975614
sq-sql1.png23 Кб, 753x435
425 1975617
426 1975651
>>75617
Пусть даст сотню тысяч пар рисунок-копия с оцененным процентом, и я решу эту задачу за косарь.
427 1975654
петян, есть 50000 вызовов функции числодробилки, она вроде там местами через numpy ебашит. в среднем выполняется по 15 милисекунд за вызов. всё про всё минут 10-15 занимает. какая распараллелизация вычислений нынче в моде? cuda и всякий gpu я не могу себе позволить, так что майнить моцарта буду на cpu
428 1975655
>>75617

>5000 руб за проект.


этих денег не хватит даже чтоб тебя хуй послать.
429 1975699
>>75654
Да по процессу на ядро, ничего не изменилось. 15 миллисекунд на вызов, numpy "местами" - кажется, сейчас выгоднее потратить время на оптимизацию (подойдет ли numba?). Быстрый код на питоне - это такой код, который как можно реже и на как можно больше долгое время отдает управление коду не на питоне.
430 1975710
>>75583
Потому что в видеоуроке редактор (IDLE) после запуска файла переносит тебя в режим REPL, в котором ты вводишь команду, а она сразу же исполняется. Это интерактивный режим для набросков и быстрых тестов, который например включается, когда ты запускаешь питон из командной строки.

В VSCode включается исполнение файла, где ты сам контролируешь, когда просить у пользователя ввод (функция input) и когда делать вывод (функция print). После того как программа завершается, интерпретатор выключается, процесс завершается. В интерактивном режиме такого не происходит, и выход нужно запросить отдельно (закрыть окно, нажать комбинацию клавиш, вызвать специальную функцию и т. д.)
431 1975749
>>75428
Ну покажи код хоть.
432 1975758
>>67018 (OP)
Знатоки, подскажите если знаете - этот https://ideone.com/f3kWZ4 код нормально выполняется на сайте, но довольно странно выполняется в убунте. В убунте получаю вот такой результат:

# echo '1' | python3 pytest1.py
STDIN=1

RES=1Z
Z

С чем это может быть связано?
433 1975762
>>75758
echo добавляет ньюлайн
делай echo -n
434 1975801
>>75544
А вот виртуальное окружение, это типа хорошая практика, да?
435 1975804
https://ideone.com/0k8Vqa
Есть способ захватить переменные в функцию по значению, а не по ссылке? Я не знаю как это называется в вашем языке.

Не очень приятный в использовании код получается, если вручную эту проблему решать.
436 1975807
>>75804
Этот код с добавлением лямбд функций в список в методе класса происходит, не в глобальном пространстве, естественно.
437 1975839
>>75617
>>75614
import cv2
438 1975841
>>75614
>>75617
Ты тоже можешь подать объявление на фриланс биржу и попросить сделать что-то серьёзное за три копейки. Да, таких там большинство.

Или это ты и подал?

Кстати, как тут анон поживает, который за 800 долларов проект делал? Сделал уже?
439 1975866
>>75565
легко, у тебя скачан питон? если да зайди в настройки и выбери интерпритатор, в винде лежит в %appdata%, после перехода в аппдату переходишь в каталог выше, там либо в локал либо в другой папке папка питона,тебе нужен python.exe
440 1975868
>>75524
Кнута и "Чистый код".
Например logging для питухона написан вопреки pep8 и здравому чмыслу
441 1975870
Забыл про сайт refactoting.guru там хорошие примеры паттернов
image.png32 Кб, 452x278
442 1975875
Ой челы, да полная хуетень все эти ваши чистые коды, паттерны хуятерны, не ебите голову этим говном, учите лучше пепы
Чем чаще я смотрю исходники популярных либ, тем больше убеждаюсь в этом
Какой нибудь SOLID ещё ок, но это достаточно интуитивная вещь
443 1975929
>>75875
Так тут говно потому что все методы в одном классе вместо расширения, лол. Паттерны у него говно
444 1975947
В чом я не прав? На третьем пике вы можете видеть что задание с первого не выполнено. Почему так?
445 1976025
>>75947
^[189](\d{7})$
446 1976118
Приветствую всех.
Меня тут жизнь зафорсила на изучение питона и мне понравилось.
Хочу для удовольствия сделать несложное приложение с интерфейсом, работающее на Windows. Через что это делается, что мне для этого нужно знать кроме базового синтаксиса питона?
Я понимаю, что этот язык обычно используется для других дел, но сейчас интересно именно с таким поебаться.
Спасибо!
447 1976125
>>76118
Kivy, KivyMD(Material Design)
448 1976134
>>75410
Далее идет простыня текста человека, которому заплатили за рекламу. Можно не читать.

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

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

А в конце HR будут давать тебе фидбэк по твоим собесам, будут вылизывать твое резюме до тех пор, пока ты не устроишься.
Я не знаю откуда они вылезли, но по мне так всё идеально. Не знаю как на практике.
449 1976136
>>75524
import this
450 1976137
>>75762
Спасибо, и впрямь добавляет.
451 1976177
>>76134
Скиллбокс лучше.
452 1976200
>>76134
А в чем беда читать книги, смотреть бесплатные курсы, а корочку получить в каком-нибудь говне типа СИНЕРГИИ?
453 1976224
>>76200

>а корочку получить в каком-нибудь говне типа СИНЕРГИИ


Достаточно любой заочной дистанционной вышки
В синергии говорят часто кидают на последних курсах
454 1976243
>>76224
Ну, я и подразумевал заочные дистанционные вышки, синергия просто как пример совсем уж лютой параши. Раз уж общество требует от тебя корочку, то можно её просто где-нибудь пассивно получить. Всё равно в России не существует централизованного высшего образования по направлению разработки. Чистая математика - может быть, вполне. Учитывая достижения на олимпиадах различных. Но "айти образование" в РФ - это пиздец.
455 1976263
>>76224

>В синергии говорят часто кидают


Как эта залупа вообще до сих пор существует? Они же без гос.аккредитации.
456 1976365
>>76263
вроде бы гос. аккредитация у них есть
изображение.png40 Кб, 782x402
457 1976387
458 1976389
>>76200
Выше уже писалось, что питонистам важно, чтобы import this соблюдался. Быстрее научить с нуля писать читабельный, технологичный код, чем переучивать уже набившего руку спеца. В общем наверно холиварная тема, но я согласен с предыдущими сообщениями на эту тему. Те, кто сумел по книгам прийти к дзену, еще большее уважение.
459 1976403
>>76389

>import this


Там все настолько расплывчато и со столь свободной трактовкой, что при обсуждении кода выйдет победителем самый гуманитарный среди всех разработчиков.
image.png9 Кб, 510x356
460 1976417
>>67018 (OP)
Как на Пистоне смержить 2 отсортированных массива? (чтоб получился другой отсортированный массив). Есть дефолтное решение как на скрине, а в либах есть че-то подобное?
461 1976456
>>76417
sorted(nums1+nums2)
462 1976460
>>76456
Неплохо, но неэффективно
У тебя уже 2 Array отсортированы, а ты херишь это когда вместе их склеиваешь
463 1976466
>>76460
В твоей задаче в любом случае будут потери на дополнительную сортировку. Это самый лаконичный вариант.
464 1976475
>>76403
В смысле расплывчато??? Ты пишешь импорт зис и получаешь список правил. Что расплывчатого?
465 1976526
>>76475

>Явное лучше, чем неявное.


Одним этим правилом можно всю питонячью магию обосрать
466 1976538
>>76466
На какую дополнительную?
sort сработает быстрее только потому что он на си реализован, и собственный алгоритм слияния будет тормозить из-за того, что интерпретатор питона вместо скомпилированного кода. При больших числах это сказывает и f начинает догонять g.
В первой строчке количество элементов, во второй время выполнения - код на третьем пике.

А если прикрутить нумбу, то собственный алгоритм обгоняет без каких-либо шансов твой sort, потому что sort тут не нужен от слова совсем.

На самом деле я не верю что в питоне нет функции для слияния сортированных массивов которая уже как sort скомпилирована - а я просто её не знаю.
467 1976539
>>74447
Да.
468 1976548
>>76538
Вот ещё нашёл: https://habr.com/ru/post/510970/
Получается просто из-за ограничений языка полный sort быстрее всего оказывается.
469 1976596
>>76025
Спасибо

Скажите, на сколько достоверна эта паста:

Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты
470 1976638
>>67018 (OP)
Поясните за setup.py
Когда он нужен? Я ведь могу просто добавить нужную мне версию либы в requirements.txt и потом установить все через pip install -r requirements.txt
471 1976674
>>76638
Это вариант системы поставки. Как гугл будет запускать твой проект, когда купить его у тебя? python laba1.py? Хуй там. Хочется установить и запускать как нормальный пакет https://python-packaging.readthedocs.io/en/latest/command-line-scripts.html#the-console-scripts-entry-point
472 1976759
>>76118
Начни с tkinter, если прям базово знаешь питон.Эээхх, помню свой калькулятор на ткинтере...
473 1976863
>>76025
Поясни тупому, почему ты цифры поставил в группу () и зачем обозначил конец строки $?
474 1976883
>>76863
Группы
r = match(regex, string)
r.group(2)
Выдает значение второй группы сразу. В документации написано, но всем похую. $ конец строки
475 1976915
>>75947
Поясни ньюфагу, что это за приложение?
476 1976916
>>76915
>>75947
А всё, в заголовке скриншота увидел, что Сололёрн
477 1976917
>>76638
Вот чтобы ты мог "просто добавить нужную версию либы в requirements.txt и потом установить все через pip install -r requirements.txt" разработчику этой самой либы может понадобиться setup.py.
478 1976938
>>76243
>>76224
Что за синергия и почему кидают?
>>76134
У яндекса курсы прикольные, но мне не понравилась тема что на тренажере у них например ты написал код, и он блядь работает.
но проверку не проходит. Я один раз охуел не понимал как такое возможно.
потом оказалось что нужно было писать путь к файлу на чтение, как указано в задании.
при том что блядь без указания пути в коде файл читался прекрасно.
Вот это ОЧЕНЬ ХУЕВО, уровень низкий.
479 1976942
>>76938

>Что за синергия и почему кидают?


Вузик самого паршивого качества, где никто нихуя не делает. Кидают потому, что на последнем курсе тебе просто могут не выдать диплом/отчислить/спиздить деньги
480 1976986
>>76942
Пиздец, как их еще не закрыли за такую срань?
481 1976991
>>76986
У них просто направления не аккредитованы или как это называется, причем направление киберспорт что забавно аккредитовано, страшно подумать какие направления хуже чисто если по названию судить. А вуз частный а не государственный
482 1976994
>>76991
А. я такие вузы кстати помню были в начале нулевых, у нас даже был вузик, состоявший полностью из пидорнутых с подобного универа преподов, а декан был бывшим директором такого вуза.
их пидорнули как раз потому что не было у них никаких аккредитаций и лицензий.
483 1976997
Господа, столкнулся со странной проблемой.
На одной виндовой машине использую скомпилированные pyinstaller'ом скрипты, и в какой-то момент они перестали работать.
Вылезает ошибка

PermissionError: [Errno 13] Permission denied: 'files_list.txt'

на строке открытия файла

f = open(filesList,'w')

Я как бы не полный дурак, читать умею. Все права выставлены правильно, запуск от имени администратора не помогает.
Смущает то, что при запуске .py-файла все отрабатывает хорошо. Что за ебаный нахуй?
484 1976998
>>76917
Видел как в проекте одну новую либу одновременно занесли в requirements.txt и заделали setup.py файл. Нахера?
485 1977003
сап, двач
хочу написать свой интерпретатор для fim++ на питоне
в ходе размышлений понял, что мне надо как то создавать функции. Функции самые простые. можно, конечно, прибегнуть к кодогенерации в отдельном файле, но это какой-то костыль.
потом я вспомнил, что все в питоне есть объект, и начал копать в класс function, который должен быть ключом к решению моей задачи. Так вот, у меня несколько вопросов.
1) где можно посмотреть исходник этого класса
2) может быть, я снова занимаюсь хуйней, и у этого класса есть какой-то супер конструктор, в который можно передать код функции и он вернет экземпляр?
3)пока копался в этом классе, нашел конструктор этого класса, но вызывается он максимально неудобно: def test(): pass; test.__class__ . Вопрос: можно ли сделать это другим способом?

по сути, мне нужно посмотреть на исходники, дальше, наверное, я сам разберусь, но может кто-нибудь уже решал такую задачу
486 1977005
>>76997
А атрибут "только чтение" снят?
487 1977009
>>77005
Да, снят.

Вообще, только что решил проблему. Добавил экзешник в белый список ебаного Аваста и все заработало. Сука, я чуть кукухой не поехал из-за этой хуйни.
488 1977025
>>77003
вопрос снят, можно использовать eval и compile
489 1977027
>>77025
на самом деле, не снят. Compile создает файл с кодом, я хочу этого избежать
490 1977029
>>77003

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


...
Через def функции создаются, ты о чем вообще?

>>77025
Нет, это поднимает другие вопросы. Какой к херам eval и compile? Ты отменного говнокода что ли навернуть решил?
Функция это объекта класса у которого определены методы __call__ и __get__ - пили и модифицируй как тебе угодно
491 1977030
фласк или джанга? Что еще есть и что чаще используется работоблядями? Надо в ближайшем будущем искать галеру, посоветуйте
492 1977033
>>77030
Учил джангу. Вкатился на Торнаду и аиохттп. Для себя пилю на sanic/fastapi. Скоро буду менять галеру, вообще похуй на какой фреймворк - все однохуйственно
493 1977036
>>77029
да я понимаю это, а еще я опечатался, не eval, а exec. я хотел создавать функции на лету, но, возможно, это плохая идея. да и через exec тоже какая-то хуета получается. наверное стоит сначала создать все функции, а потом уже исполнять программу. в проектировании компиляторов, интерпретаторов я не силен вообще, мне в унике дали таск такой, приходится что-то придумывать
494 1977060
Аноны. что значит "душить своего питона"?
я в тот тред зашел?
еще говорят про какой то "нопитон"?
типа - держу нопитон уже три дня, полет нормальный.
495 1977072
>>76596

>Скажите, на сколько достоверна эта паста:


Известная паста, но очень старая. Религию из PEP8 делать не надо. Tornado/Gevent устарели, вместо gevent сейчас asyncio. Вместо Tornado другие асинхронные фреймворки.

А хайлоад и технологии это как раз всякие Apache Hadoop и другие модные слова, вот их надо изучать и понимать.
496 1977107
>>77030
Джанго сложнее, по этому я бы с нее начал. Потом бы пощупал фласк.
mQWIORMTDvQ.jpg162 Кб, 811x608
497 1977339
Подскажите, парни: есть список списков. Его нужно интегрировать в словарь так чтобы вложенный список стал парой "ключ:значение" и каждый первый элемент внутри вложенного списка стал ключом. Как корректней это сделать?
Например:
есть условный список списков:
main_list [
[word1, word2],
[word3, word4],
[number1, word5]
]
нужно чтобы он стал словарём:
main_dict {
'word1': 'word2', 'word3': 'word4', number1: 'word5'
}
пик_рандом
изображение.png3 Кб, 411x137
498 1977341
>>77339
Примерно так, да?
Очень сложный код, да.
499 1977343
>>77341
Странно, у меня выдаёт такую ошибку. Первый элемент недостаточной длинны?
ValueError: dictionary update sequence element #0 has length 0; 2 is required
500 1977347
>>77343
Покажи код
501 1977350
Пытаюсь разобраться и накатать парсер конфига:
import re
import json

filepathw = "/home/test.json"
filepath = "/etc/nginx/conf.d/hosting.conf"
data = []
dom = None
result = None
parser_dict = {}

with open(filepath, 'r') as conf_line:
for conf_lines in conf_line:
description = conf_lines.strip().split(None, 1)
dom = description
data.append(dom)
parser_dict = dict(data)
print(parser_dict)

with open(filepathw, 'w') as file_write:
json.dump(parser_dict, file_write, indent = 4)
502 1977351
>>77347
>>77350
Ну и собственно он забирает список списка и мне нужно сделать из него словарь
Screenshot 2021-03-24 at 18.46.50.png18 Кб, 314x396
503 1977367
В чем суть переноса скобок отдельно? Знаю что во всяких других языках это норма. Но выглядит нечитабельно же.
Почему многие их пишут как в нижнем варианте?
изображение.png7 Кб, 883x90
504 1977369
>>77343
Значит у тебя список не такой, как ты указал в прошлом посте.

>>77350
И код твой довольно бессмысленный, если ты json файл не прикрепляешь, не говоря уже про то, что ты никак не используешь то что у тебя json файл, а не просто файл.

Если у тебя пустая строка в начале файла, то он всегда будет на ней падать. Или если там фигурная скобочка и больше ничего нет.

У меня ноль идей, почему ты не написал print(data) и не посмотрел что за кашу ты там считываешь, а вот писать список вручную в посте >>77339 тебе не лень.
505 1977383
>>77367
Когда переменная обозначается больше чем 1-2 символом, то читабельно
506 1977388
>>77383
Нет. Последний перенос сбивает с толку.
507 1977409
>>75875
Недавно в радиоте этот солид обсирали, как раз за то что каждый его по-своему понимает и за то что применять его хоть как-то можно разве что в жаве. Паттерны хуйня. Можешь считать что property, classmethod, декоратор, дескриптор — это тоже паттерны. Они у каждого языка свои. В хаскеле всякие лифтинги с линзами паттерны. Те паттерны про которые все слышали по сути все из жавы или шарпа.
508 1977410
>>76538
Подскажи плиз где или чем ты измеряешь скорость справа на пиках?
509 1977428
>>77410
Код с третьей картинки же.
t1=time()
...
t2=time()
return t2-t1

Там есть модуль timeit - используй лучше его. Я просто не питонист и было впадлу вникать как тут измеряют производительность нормальные люди, или как передать в timeit не просто функцию, а ещё и аргументы к ней без строки - потому просто большие числа поставил, чтобы время выполнения было сопоставимо с точность time()
Если бы я писал что-то на питоне - я бы настроил под него kcachegrind, просто потому что мне оче нравится картинки из него.
510 1977498
>>77339

> чтобы вложенный список стал парой "ключ:значение" и каждый первый элемент внутри вложенного списка стал ключом


{item[0]: item[1:] for item in main_list}
511 1977545
>>77388
Ты еще слишком мал и не видал больших залуп
Слушай больших дядь, раз еще не подрос
512 1977642
Веду проект на DjangoCMS. Через Filezilla скачал main.css, внёс небольшие правки, загрузил обратно и теперь проект выдаёт 502 на всех страницах. Что делать?
513 1977662
Кароч, я нуфаня, только прочитал первую книжку по питону, и решил в качестве проверки знаний выполнить CS50 лабу(https://cs50.harvard.edu/college/2021/spring/labs/6/). Все написал сам, кроме вывода (ну и формулы расчёта вероятности). И вот с выводом чёт меня заклинило.
key=lambda team: winners[team]
Что конкретно эта лямбда делает? Ну, те я понял, что она сортирует ключи по их value, вместо алфавитного порядка, но может мне кто объяснить как это работает?
Алсо, поч дебагер отказывается видеть файл? Сам по себе скрипт прекрасно отрабатывает, но вот дебагер VSCode работать отказывается.
514 1977710
>>77428

>я бы настроил под него kcachegrind, просто потому что мне оче нравится картинки из него.


Есть пособия по этому:
https://julien.danjou.info/guide-to-python-profiling-cprofile-concrete-case-carbonara/
Но это не даст тебе построчного анализа, сколько какая строка работает. Но для какого-то анализа может быть полезно.

timeit так себе вариант, слишком синтетический для очень ограниченных случаев.
515 1977847
>>76538

> если прикрутить нумбу


Можно, в принципе, что угодно прикрутить - вопрос целесообразности. Если речь идёт о каких-то двух несчастных массивах в пределах тысяч элементов, не вижу никакого смысла использовать что-то, кроме sorted() или ".sort". Дальше уже можно задуматься.
517 1978707
>>77367
Потому что так удобнее редактировать список и меньше конфликтов в гите. Ещё после тройки надо запятую поставить и будет как надо.
518 1991505
Ребят такой вопрос, нужно сделать сайт что то на подобие R-keepera, Что нужно сделать что чтобы можно было заходить сразу под 4 пользователями, Кассир, Оффициант, Администратор, и Бармен. И все работало в режиме реального времени, например если официант сделал заказ - то заказ пришел кассиру сразу, а он пробил заказ на кассе и заказ отправился бармену на готовку например. Можно ли реализовать такое в Django и как такое делать? Через многопоточность? Есть советы что почитать по этому поводу
Тред утонул или удален.
Это копия, сохраненная 26 мая 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски