Этого треда уже нет.
Это копия, сохраненная 13 августа 2020 года.

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

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

Предыдущий: >>1647702 (OP)
Литература:
Автоматизация рутинных задач ч.2 - https://anonymousfiles.io/3CBCoy1o/ <-- тут только одна книжка. Кто может, залейте её на ЯД к остальным.
Ещё книжки: 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/ (нужно знать ангельский или уметь пользоваться переводчиком)

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

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

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

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущая версия (№85) здесь: https://dumpz.org/c6qHxAwADZYW
2 1656867
>>56865 (OP)

>Да, смотри на фреймворк Kyvi


Бля, добавить всего две строчки и обосраться
Kivy
исправленный шаблон https://dumpz.org/cAaW2nPySYyy
.png16 Кб, 369x325
3 1656877
>>56865 (OP)
Какой самый лучший способ разделить словарь на части по n элементов, исключая преобразования в список? То, что у меня получилось, выглядит как-то всрато.
4 1656880
>>56877
Тебе именно итератор нужен?
Вообще глянь модуль itertools, там много чего интересного:
https://docs.python.org/3/library/itertools.html
5 1656881
>>56880

>Тебе именно итератор


fix, генератор
chunk.png23 Кб, 379x300
6 1656889
>>56877
Я бы оформил так
По сути тоже самое, просто не понятно, зачем ты лезешь в эти низкоуровниевые вызовы iter-next, когда в словаре есть встроенные итераторы именно для этого.
7 1656891
8 1656947
Помогите, пожалуйста, доделать код. Подскажи как через ввод вписать в f, цифры, а не текст.
Дан файл f, компоненты которого являются целыми числами. Найти позицию последнего числа, не превышающего числа b
https://repl.it/@allpickan/Python-3-9
9 1656969
PyCharm Professional стоит своих денег? Насколько я понимаю, основная фишка там - это интеграция с БД из коробки, или что-то там ещё есть? Можно ли комфортно жить на Community Edition?
10 1656973
>>56969

> Можно ли комфортно жить на Community Edition?


В плане вебдева.*
11 1656979
>>56973
Вроде в Community поддержки других языков нет, например JS. Хотя не знаю, не пользуюсь.
12 1657006
>>56969
Жить можно и на вскоде.
Там же у них есть триал, попробуй его.
Мне в начале очень сильно помогал пучарм именно платная версия, когда сам научился все делает и без его плагинов, то перешёл на вскод/обычную версию.
image.png69 Кб, 1429x637
13 1657018
О какой в данном примере ошибке идёт речь? Я понимаю что изменчивость переменных в коде это плохо, но в данном примере как ошибка может быть, я не понял. Это надо специально ведь в функцию лезть и менять её.
15 1657023
>>57018
2 пропускается.
16 1657031
>>57023
А, окей.
17 1657055
В олимпиаде по информатике принимало участие несколько человек.
Определите и выведите средние баллы участников олимпиады в 9 классе, в 10 классе, в 11 классе.
Информация о результатах олимпиады записана в файле, каждая строка которого имеет вид:
фамилия имя класс балл.

Аноны, посоветуйте как лучше хранить данные в таком случае:
Сделать класс с полями:
1) Номер класса - число
2) Оценки - лист

Или сделать словарь с ключами 9, 10, 11, а элементами будут списки, и в эти списки добавлять оценки?
Или без разницы чем пользоваться - хоть двумерным массивом? Как бы вы поступили?

Преподаватель с курсеры советовал посмотреть на named tuple, но я как я понял из документации модуль collections не поддерживается и будет выпилен в следующих версиях. Ему на смену пришел collections_abc , но там я ничего не понял.
18 1657062
Аноньчик, как нормально управлять модулями python? Ну чтобы разные среды были. Это только venv?
Аннотация 2020-04-13 155919.png3 Кб, 211x102
19 1657076
Помогите ньюфане пожалуйста.
В файле test несколько строчек, но с данным кодом выводится только вторая. ЧЯДНТ?
Если вместо цикла for юзнуть read() то все в порядке
https://dumpz.org/b6ZAQ8BSn4be
20 1657077
>>57055

имеется в виду, что эти классы (https://docs.python.org/3/library/collections.abc.html#collections-abstract-base-classes) перемещены в новый модуль, и из коллекшнса их выпилят

никто популярную либу убивать просто так не будет, сломав кучу кода
так что с говном типа всяких ткинтеров, асинкоров и итертулсов пайтон 3 останется навсегда
используй неймфажный тупль, самое то
21 1657078
>>57076
for line in handle это уже итератор, тебе не нужен readline вообще.
22 1657080
>>57055

еще можешь выебнуться перед одноклассниками и заюзать dataclasses, но это в твоем случае то же самое, по сути
23 1657081
>>57076
Да, и если без лупа делать копипастой чтения-печати, тоже все работает.
24 1657083
>>57078
Отлично, спасибо!
25 1657091
Посоветуйте учебник, а лучше онлайн курс с практическими заданиями, где бы с самого начала объяснялась структура языка, а не просто "чтоб считать строку сделай это".
26 1657098
>>57091

вот тут все базовые аспекты языка с самых основ и до ооп, да на неплохой и интересной практике
https://www.coursera.org/learn/interactive-python-1
https://www.coursera.org/learn/interactive-python-2
27 1657109
>>57098
А есть, где сразу начинают с ООП? Я уже уил немного плюсы, не хочется тратить время на жевание воды.
28 1657116
>>57109

вот интересный онгоинг, который не требует знаний каких-то либ, при этом сразу ебашит тебя лицом в ооп и programming language theory

https://ruslanspivak.com/lsbasi-part1/
29 1657121
Как проверить, является ли данная строка url-адресом или нет?
30 1657122
>>57080
Спасибо, посмотрю что за dataclasses.

>>57077
Спасибо.
32 1657137
Заметило что в джанге мои url выглядят так: http://127.0.0.1:8000/thispost/(4)
Что это за херня со скобками? Раньше таких скобок не было (во второй версии джанго). С чего они вообще появились? В чем их смысл бля?
Снимок экрана 2020-04-13 в 20.26.54.png63 Кб, 868x514
33 1657141
Пишу реализацию протокола для одной железяки, которая шлет данные через tcp. Прочитал вот такую штуку в документации к протоколу: "Следует обратить внимание, что TCP/IP – потоковыи протокол, т.е. для прикладного серверного ПО не существует пакетов уровня TCP/IP. Чтение из сокета TCP/IP – чтение потока баит, а не чтение пакетов. Пакеты протокола Galileosky являются пакетами прикладного уровня, для корректного их разбора серверное ПО должно выделить буфер и осуществлять сборку пакета. Ни в коем случае нельзя полагаться на то, что одна операция чтения из сокета вернет полныи пакет протокола Galileosky. Полныи пакет Galileosky может быть получен после выполнения нескольких последовательных операции чтения, между ними могут быть временные промежутки, это связано с особенностями работы протокола TCP/IP."

Поясните, что значит "выполнение нескольких последовательных операции чтения"? То есть написать await reader.read(1024) как на скрине не прокатит? (для примера сократил код)
34 1657160
>>57141
Просто нужно дожидаться получения пакета полностью и тогда уже обрабатывать, а не считал-обработал.
Очевидно, должна быть длинна в заголовках или какие-то маркеры конца.
35 1657164
>>57160
У пакета первый байт - заголовок, следующие 2 - размер пакета, затем тело и последние 2 байта - контрольная сумма. То есть должно получиться что-то типа этого?

package_size_raw = await reader.read(3)[1:]
package_size = int.from_bytes(package_size_raw, 'little')
package = await reader.read(package_size)
checksum = await reader.read(2)
36 1657165
>>57164

>следующие 2 - размер пакета


самофикс - размер тела пакета
37 1657166
>>57164
Ну вот у тебя while True, лови там новые пакеты, и как только размер уже полученного достигает того что из заголовка, отправляешь на обработку. И т.д.
38 1657170
Вообще, там есть readexactly. Вполне возможно, что он эту логику как раз реализует. Т.е. exactly читаешь хидер, и потом exactly длинна пакета.
39 1657188
>>57141
Смотри в чём дело, и это актуально для всех языков программирования. Когда на сокет клиента приходит какой-то пакет данных, система сразу отдаёт ему столько, сколько может.

Но данные по сети идут по частям, они дробятся, это нормально.
Ты когда делаешь recv/read или что-то ещё, можешь получить только часть пакета, а можешь и весь, как повезёт.

Число в скобках означает максимальный размер пакета.

В сети идут отдельные ip пакеты, и размер каждого обычно MTU, который примерно 1500 байт вместе с заголовком. Поэтому если ты шлёшь пакет в 2 килобайта, он скорее всего будет разбит.

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

Как с этим работать: собирать всё в буфер, и как поймёшь, что к тебе пакет целиком пришёл, так и отправляешь его на обработку.
40 1657193
>>57116
Спс

мимоньюфаня
41 1657196
>>57141
Ребзи что за шрифт у господина девелопера ?
42 1657198
>>57164
мне кажется так надо - ставиль read(2000), после каждой операции пришедшие данные добавляешь в буфер.
следующей строчкой, если размер буфера больше минимального (3-5 байтов), вычисляешь размер, и если буфер больше этого размера, вырезаешь из него пакет и отправляешь на обработку.
43 1657207
>>57166
>>57188
>>57198
Спасибо большое, именно то что нужно! А по сколько байт лучше разбивать куски, которые собираются в буфер?
>>57196
JetBrains Mono, он стандартный в новой версии pycharm
44 1657210
>>57207
Забыл добавить - в доке написано что максимальная длина пакета 1000 байт
45 1657220
>>57207

>А по сколько байт лучше разбивать куски, которые собираются в буфер?


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

В любом случае потом отправишь в буфер, а буфер уже обрабатываешь.
15585230311010.jpg38 Кб, 466x499
46 1657239
Выбираю между Джанго и aiohttp. Задание создать обычный, не самый навороченный REST API. С Джанго опыт есть (1год), работал года 3 назад. Но сегодня я взглянул на бенчмарки и мне показалось, что его лучше вообще не трогать. Или может быть Фласк? И вообще питон как серьезный веб инструмент, стоит рассматривать в 2020?
47 1657244
>>57239
Сколько сотен тысяч запросов в секунду будет, серьезный бизнесмен?
48 1657248
>>57244
Да нисколько в общем то. Просто делать нечего на карантине. Решил запилить, что нибудь хардкорное на питоне в свободное время. Комплекс неполноценности перед борщехлебами
49 1657256
>>57077
А если у меня есть namedtuple1 с полями Field1, Field2, Field3, то могу ли я через цикл
for field in (Field1, Field2, Field3):
__ namedtuple1.field.append(1)
Получать доступ к объекту в этом поле? Например если у меня в полях лежат списки. В словаре такой подход возможен, в тут ошибка потому, что field в теле цикла не заменяется на значение из (Field1, Field2, Field3)
Или пользоваться словарями и не ебать мозг?
50 1657259
Привет анон
Хочу написать сервак на питоне для анонимного чата. Опыт в питоне хороший (тк в основном под написание протоколов для связи с контролерами его юзал), но серваки пишу первый раз
идея норм или лучше сразу смотреть в сторону шарпов/крестов/жавы? какие камни? понятно что си++ проебу в скорости, но где, например, будет четка граница нагрузки, после которой можно будет с уверенностью сказать: "все, пиздец, на справляется"
спасибо
51 1657278
>>57259
Если выбирать между джавой и шарпами, то определённо питон. Не знаю как там работа с сокетами в плюсах но подозреваю с плюсами питону не тягаться. Но если тебе не столь важно какой язык выбрать, есть более специализированные языки для реал-тайм приложений, которые будут в разы быстрее плюсов.
52 1657283
>>57259

> "все, пиздец, на справляется"


Когда юзеры поймут что гроб-гроб-пизда.
Но ты ж понимаешь что этого не произойдет.
Хочешь познать пистон с этой стороны - пиши свой серв.
Советую чекнуть торнадо.
53 1657286
>>57283

>торнадо


говно
54 1657307
>>57278

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


это какие?
55 1657319
>>57307
Erlang, Elixir, Go.
56 1657332
>>57259

> понятно что си++ проебу в скорости,


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

Хайлоад большая тема. Там много всего, и не только от одного языка программирования всё зависит, но и от MQ, баз, балансировщиков нагрузок и прочей хрени.

Порядок величин такой, что 1000 клиентов и на одном потоке вытянуть можно, это ещё не хайлоад.

Тебе надо изучать асинхронное программирование с asyncio, и какой-нибудь фреймворк вроде aiohttp.
57 1657338
>>57283
Торнадо в 2020? Зачем?
58 1657351
>>57121
перейти по ней с помощью requests, возвращая код запроса и ловя эксепшны
все гениальное просто
59 1657358
>>57286
Чому?
>>57338
Что не так?

Вполне себе успешно юзают данный инструмент.
60 1657361
>>57358
Технически устарел.
Вот тут объяснение есть:
https://habr.com/ru/company/avito/blog/435532/

>>57358

>Вполне себе успешно юзают данный инструмент.


Был актуален раньше, пока не развилась штатная асинхронность в питоне. Сейчас скорее поддерживают старое, сложно мигрировать скорее всего.
61 1657367
>>57361
Почитаю, окей. Уже как-то читал, надо освежить.

Был пару месцев назад на собесе в одной локальной, продуктовой компании, gurtam, искали повидло на сервер их, так вот, вполне себе активно юзают торнадо т.к. им нужен постоянный конект.
62 1657379
>>57367
Вангую, там легаси-говно (возможно даже на 2.7 лол)
63 1657380
Почаны, помню как спортмастер в начале этого года активно набирал себе бэкендеров на Питоне, Го и Жабе
Что с ними всеми сейчас случилось, интересно
64 1657381
>>57379
Пистон 3, кстати, но код очевидно содержит легаси ибо не вчера они появились.
Исходя из их слов у них там микросервисы, так что была надежда на то, что новое пишется на 3,6+, все таки.
65 1657383
>>57380
Пошли на колбасу.
wtf.png36 Кб, 893x545
66 1657386
67 1657394
>>57358

> Вполне себе успешно юзают данный инструмент


Конечно юзают, все легаси не перепишешь.
68 1657425
>>57278
>>57283
>>57286
>>57307
>>57319
>>57332
>>57338
>>57351
>>57361

>


>>57367
Чуваки, вы топ, очень крутые ответы (надеюсь всех выделил, если что сорян)
ПОнял что мой вопрос делитанский и что оч много не знаю
Куда примерно посмотреть/почитать что-нибудь по теме?
122.PNG35 Кб, 619x691
69 1657485
Помогите плез, не понимаю задание. Особенно первую строчку
70 1657501
>>57485

>Особенно первую строчку


10^0 % 13 == 1
10^1 % 13 == 10
10^2 % 13 == 9
10^3 % 13 == 12
Дальше первой строчкм не читал.
71 1657505
>>57256
"for field in namedtuple1"?
72 1657516
Комрады подскажите че почитать чтоб решить задачу. Мне вот надо например установить сетапы сторонней проги запакованной в архив, плюс установить в определённое место тобишь прописать имя в окна и все дела, потом в проге ещё прогнать действия. Где такие прикладные вопросы расписаны?
73 1657521
Нужен архитектурный совет.
Пишу приложуху на Kivy и вроде бы треды нормально запускаются и работаю.
Нахуя столько возни в питоне вокруг async ?
Если приложение не серверное, нормально же будет запускать в треде опросы и вычисления ?

Питон и мобильную разработку пока знаю плохо, но в целом не новичок
74 1657527
Вот вам в качестве рекламы Kivy приложение Собянин.apk
https://dropmefiles.com/Koc5p
Просто сканирует все qr-коды, которые видит и выкладывает на экран.

как же я заебался просто его компилить из гитхаба!
очень мало инфы в инете и приходится постоянно экспериментировать и думать
75 1657590
>>57516
я не одмин, но возможно chocolatey тебе поможет. а именно инструкции для мейнтейнеров, как там пилить собственные сценарии установки
76 1657598
>>57527

>заебался просто его компилить


>очень мало инфы в инете



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

Все равно намного лучше чем джаву дрочить ради не очень то важных преимуществ.
78 1657666
>>57521

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


Если тебе удобно с тредами - то нормально. И с сетями в тредах нормально рабоать, раньше ведь работали.

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

Исключительно кому как удобнее. По мне с тредами гемор большой, тем более, что в питоне они производительность не увеличивают из-за GIL. А все эти thread-save, синхронизации и т.п. гемор и грабли, поэтому я асинки очень люблю.

Но надо ещё чтобы либы асинхронность поддерживали.
79 1657678
>>57666

> По мне с тредами гемор большой,


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

Непонятно, короче.
80 1657730
сап, двач.
рискуя вызвать пену изо рта или горение жеппы у бывалых обывателей, задам вопрос, который наверняка вам задавали. так вот, решил я, значит, изучать питон, понимая в программировании чуть менее, чем ничего. какие актуальные книги/методы есть для полных чайников на 2020 год? какую версию питона надо осваивать? шапку читал, там слишком много книг. посоветуйте одну плез
п.с. английский не знаю. дурак. буду осваивать по пути.
думаю учить на первых порах как хобби, ну а далее - если зайдет - может стану работать.
спасибо, анон. посылаю вам лучи добра
81 1657735
82 1657741
>>57730
книги - скучно. чтобы не бросить, попробуй степиковский курс.
там два курса.
задания - атас! С книгой не идёт ни в какое сравнение
83 1657745
>>57741
https://stepik.org/course/67/promo

(Я, правда, сам не пытался это проходить, а сразу начал сразу с курса посложнее)
84 1657753
>>57678

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


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

Программирование с async-await по сути тоже самое, но только точки переключения потока исполнения прописаны явно и особых мест для сюрпризов нет. Сильно меньше, чем с тредами.

Во многих языках треды имеют смысл, поскольку они распараллеливают вычисления. Но не в питоне, где треды реально в один поток выполняются.
85 1657769
>>57666

>Просто все задачи сложные с взаимодействием с пользователем,


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

Зачем этим шизикам понадобился отдельный класс Clock и еще какая-то отдельная поддержка asyncio ?
86 1657772
>>57116
Спасибо
спрашивавший анон
87 1657777
>>57769
ну в принципе я осознаю, что если я наговнокодю в своем отдельном потоке бесконечный цикл, то скорее всего зависнет все приложение.
На начальных этапах это не очень страшно.

Короче, феномер упорного развития асинхронных фрейворков в питоне - ответ на глобальный лок, который GIL ?
88 1657804
>>57777
Асинхронщина проще, быстрее и легковеснее тредов, вот и всё.
89 1657814
>>57804
я не понимаю почему.
Всю дорогу я писал линейные алгоритмы Если - ТО - ИНАЧЕ, и теперь вдруг начать думать в виде Машины Состояний?

может я неверное понимаю питоновскую асинхронщину? Предприняты какие-то серьезные улучшения?
90 1657818
>>57814
какая машина состояний ты о чем вообще?
91 1657825
>>57814
Ну посмотри async await.
92 1657827
>>57818
ну допустим для сервера HTTP это когда ты вынужден постоянно отдавать управление другому коду, хранить промежуточные состояния типа : чтение первой строки, чтение заголовков, чтение тела запроса, отправка клиенту.

то есть, вот https://ru.wikipedia.org/wiki/Автоматное_программирование

или все значительно проще?
а что происходит если написать бесконечный цикл по ошибке?
93 1657833
Вротебал переустановил пучения на коммьюнити версию хуйпойми какие шрифты стали какой фрит стандартный на пуперверсии другой разве или чото уже накрутил блять ?
16BED29F-3811-4CD5-AB31-6776E4047787.jpeg2,6 Мб, 4032x3024
94 1657835
Не такого точно не было, Ребрик скажите какие шрифты у вас по дефолту стоят, у меня вот эти пидорские с новой версии а какие были ?
95 1657842
>>57777

>Короче, феномер упорного развития асинхронных фрейворков в питоне - ответ на глобальный лок, который GIL ?


Сейчас во всех языках развивается асинхронность, обычно через async-await или близкое, общий тренд последних лет пяти.

Минус многопоточности в том, что переключение потоков происходит в случайный момент времени. Это накладно, надо контекст какой-то сохранять, и это проблемы создаёт по thread-safe, и переключаться потоки могут не туда, куда надо.
96 1657843
>>57827
О чём ты? В некотором роде у тебя и синхронный код - самая настоящая машина состояний.

Асинки как раз позволяют тебе писать код, который глазами этой ветки исполнения синхронный. Или многопоточный, но с заранее обозначенными точками, где может переключиться исполнение на другой поток. Очень удобно.
97 1657854
>>57505
Точно, ты прав.
for field in namedtuple1:
_field.append()
98 1657861
>>57842

>Сейчас во всех языках развивается асинхронность, обычно через async-await или близкое, общий тренд последних лет пяти.



Вообще не понятно почему. Выглядит как возвращение windows 3.11
Точечные применения я могу понять, но зачем навязывать для всех приложений и языков?
99 1657870
>>57861
В большинстве случаев треды использовались не по назначению, там, где были какие-то блокирующие операции, а не где нужно было распараллелить вычисления.

Асинки не призваны заменить многопроцессность, это разные вещи, причём как раз работа с большим количеством процессов очень хорошо стыкуется с асинхронностью.
100 1657877
Бля народ я даун я опять забыл как переименовать что угодно в пучарме
101 1657880
>>57777
Нет, асинхронность для лучшей работы с сетью, чтобы не блочить воркер когда мы идём за данными в базу или по api.
102 1657882
>>57877
Там ещё сверху появляется две строчки одна текущая вторая во что хочешь переименовать напомните хоткейс
103 1657890
>>57882
Ну помогите это не гуглится ноль шансов я уже искал это однажды
104 1657897
>>57880
имхо, хуйня получилась.
я в nginx + lua с тем же успехом ебенейше эффективные приложения делал. он переключается при любом вызове api nginx.
105 1657900
Хелпайте , питонисты. Ебусь с этим уже час. Менял путь уже в PATH все равно не работет. Недавно сменил имя пользователя, но не могу поставить обратно и пытаюсь решить эту проблему. Так же не устанавливается PIP , хотя другие версии питона работают
image.png98 Кб, 666x410
106 1657903
>>57900
Также не изменить папку, помогите
107 1657904
>>57900
Пришло время поставить visual studio code или komodo ide.
108 1657906
>>57903
Попробуй от администратора запускать
Безымянный.png27 Кб, 1634x633
109 1657907
>>57906
Делал , тоже самое выдает
Вот путь
110 1657909
>>57904
было бы это удобно , работал бы там
111 1657918
>>57897
Какой смысл от игрушечных примеров, реализовать с помощью select событийный цикл не так сложно, только без синтаксического сахара и нормального api это не применимо в продакшене.
112 1657932
>>57918
Я делал на селектах что-то для продакшеша, на втором питоне ещё (такой был в проекте), но это ненормально. Так можно один какой-нибудь цикл реализовать для ожидания данных на сокетах, не больше.

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

И по взлёту популярности питона последние годы видно, что многим по душе пришлось.

Конечно, не во всех задачах актуально. Но там, где сервисы какие-то, которые обслуживают много задач, с разными источниками данных работают, это очень актуально.
113 1657938
>>57932

> С ними пишешь асинхронный код как дышишь, надо только мозги перестроить по асинхронное проектирование.


То есть, придется помучатся.
Не, пока пока не вижу смысла погружаться в это ради гуев.
114 1657962
>>57938

>То есть, придется помучатся.


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


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

Так что разумно. Qt и tkinter вроде пока напрямую не поддержали.
115 1657992
>>57938

>надо только мозги перестроить под асинхронное проектирование


Асинк это типа как просто как современная альтернатива синхронному кодингу с ограниченным применением
Или можно в принципе реально перестроиться и писать любые проекты (хотя бы свои домашние) в асинхронном стиле?
116 1658012
>>57992
Не всегда понятно зачем, что проекты делают? Если исполнение чётко последовательное, то не нужно. Если есть ветви исполнения, параллельность и т.п., то можно. Про гуи не скажу.

Вообще очень полезно освоить асинхронное программирование, это современный тренд во всех языках. Хуже не станет.
117 1658149
>>56865 (OP)
Положим у меня есть картинка, на картинке числа. Числа крупные, многоразрядные. Мне нужно что бы питон брал эти числа и складывал каждый разряд в список, в соответствующий индекс.
Пример:
Число на картинке: 125 436 874
list = [1, 2, 5, 4, 3, 6, 8, 7, 4]

Ну или просто, чтоб распознавал цифры и сохранял прямо сразу числом в какую-то переменную, я просто не знаю как будет проще. В идеале нужно что бы при смене числа на картинке он мог регистрировать это и дальше действовать по условию. У меня такое ощущение, что это можно организовать в 10 строчек, просто нужно знать нужные команды из стандартных либ. Если это так, то скажите просто какие, я и сам смогу.
118 1658158
Ребят как переименовывать в пучарме только не через ф6 а по другому ? Комбинация вызывающая две строки сверху ? Скажите плез
119 1658164
>>57835

> а какие были ?


Вроде бы Monaco
120 1658165
>>58158
ctrl + R?
121 1658174
>>58149
ну охуеть вообще.
давай ты предметную область опишешь подробнее?
это что за ебанутость? делаешь решатель домашки по матеше для второго класса?

Хочешь распознавания - мучайся с распознаванием. Но это непросто и конечно же срабатывает не каждый раз.
122 1658177
>>58149
на читай, вроде приличная статья.
https://nanonets.com/blog/ocr-with-tesseract/

если у твое брата совсем хуевый почерк, можешь этот тессеракт перетренировать.
123 1658226
>>58012
слушай, может быть все дело в том, что питоне есть хороший оператор yield , а в других языках эта концепция неразвита?
этот ваш asyncio основан на yield ?
124 1658227
>>58165
Господи храни тебя
125 1658230
>>58226

>yield


Это есть даже в пыхапе.
Ты явно переоцениваешь его удобство.
126 1658238
import requests
from bs4 import BeautifulSoup as BS

def save ():
with open('parse_info.txt', 'a') as file:
file.write(f'{comp["title"]} -> Price: {comp ["price"]} -> Link: {comp["link"]}')
def parse ():
URL ='https://www.avito.ru/sankt-peterburg/doma_dachi_kottedzhi'
head ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'
}
global comp
pageObj = requests.get(URL, headres = head)
soap = BS(pageObj.content, 'html.parser')
items = soap.findAll('div', class_ = 'item__line')
comps = []

for item in items:
comps.append({
'title': item.find('a', class_= 'snippet-link').get_text(strip = True),
'price': item.find('div', class_= 'snippet-price-row').get_text(strip = True),
'link': item.find ('a', class_= 'snippet-link').get('href')
})

for comp in comps:
print(f'{comp["title"]} -> Price: {comp ["price"]} -> Link: {comp["link"]}')
save()
parse()

ОШИБКА
Exception has occurred: TypeError
request() got an unexpected keyword argument 'headres'
File "C:\Users\Harkaman\Desktop\Parser\Parser.py", line 15, in parse
pageObj = requests.get(URL, headres = head)
File "C:\Users\Harkaman\Desktop\Parser\Parser.py", line 31, in <module>
parse()


=============

Пытаюсь запарсить авито , но получаю такую хуйню. Поскажите , что делать. python 3.6.4
126 1658238
import requests
from bs4 import BeautifulSoup as BS

def save ():
with open('parse_info.txt', 'a') as file:
file.write(f'{comp["title"]} -> Price: {comp ["price"]} -> Link: {comp["link"]}')
def parse ():
URL ='https://www.avito.ru/sankt-peterburg/doma_dachi_kottedzhi'
head ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'
}
global comp
pageObj = requests.get(URL, headres = head)
soap = BS(pageObj.content, 'html.parser')
items = soap.findAll('div', class_ = 'item__line')
comps = []

for item in items:
comps.append({
'title': item.find('a', class_= 'snippet-link').get_text(strip = True),
'price': item.find('div', class_= 'snippet-price-row').get_text(strip = True),
'link': item.find ('a', class_= 'snippet-link').get('href')
})

for comp in comps:
print(f'{comp["title"]} -> Price: {comp ["price"]} -> Link: {comp["link"]}')
save()
parse()

ОШИБКА
Exception has occurred: TypeError
request() got an unexpected keyword argument 'headres'
File "C:\Users\Harkaman\Desktop\Parser\Parser.py", line 15, in parse
pageObj = requests.get(URL, headres = head)
File "C:\Users\Harkaman\Desktop\Parser\Parser.py", line 31, in <module>
parse()


=============

Пытаюсь запарсить авито , но получаю такую хуйню. Поскажите , что делать. python 3.6.4
127 1658240
>>58238

>headres

128 1658241
>>58240
import requests
from bs4 import BeautifulSoup

#def save ():
# with open('parse_info.txt', 'a') as file:
# file.write(comp)
def parse ():
URL ='https://www.avito.ru/sankt-peterburg/doma_dachi_kottedzhi?cd=1'
HEADERS ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}

response = requests.get(URL, headers = HEADERS)
soap = BeautifulSoup(response.content, 'html.parser')
items = soap.findAll('div', class_ = 'item__line')
comps = []

for item in items:
comps.append({
'title': item.find('a', class_ = 'snippet-link').get_text(strip = True),
'price': item.find('span', class_= 'snippet-price.snippet-price-vas').get_text(strip = True),
#'link': item.find ('a', class_ = 'snippet-link').get('href')
})

global comp
for comp in comps:
print(f'{comp["title"]} -> Price: {comp ["price"]}')

parse()

Я уже передал , теперь другая ошибка
Exception has occurred: AttributeError
'NoneType' object has no attribute 'get_text' в price
128 1658241
>>58240
import requests
from bs4 import BeautifulSoup

#def save ():
# with open('parse_info.txt', 'a') as file:
# file.write(comp)
def parse ():
URL ='https://www.avito.ru/sankt-peterburg/doma_dachi_kottedzhi?cd=1'
HEADERS ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}

response = requests.get(URL, headers = HEADERS)
soap = BeautifulSoup(response.content, 'html.parser')
items = soap.findAll('div', class_ = 'item__line')
comps = []

for item in items:
comps.append({
'title': item.find('a', class_ = 'snippet-link').get_text(strip = True),
'price': item.find('span', class_= 'snippet-price.snippet-price-vas').get_text(strip = True),
#'link': item.find ('a', class_ = 'snippet-link').get('href')
})

global comp
for comp in comps:
print(f'{comp["title"]} -> Price: {comp ["price"]}')

parse()

Я уже передал , теперь другая ошибка
Exception has occurred: AttributeError
'NoneType' object has no attribute 'get_text' в price
129 1658254
>>57833

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



это что-то на языке питонистов?
130 1658310
>>57900
Тебя не смущает, что у инсталлятора нет достаточных прав?
Устанавливай для всех юзеров в папку С
Screenshot113.jpg118 Кб, 1160x910
131 1658491
Кто-нибудь пользуется komodo ide? (Она больше не ворованная, а бесплатная)
Хочу начать писать по pep8 и не могу включить линтер в ide.
Остальные два линтера на картинке работают, но заебешься за ними следить.
132 1658503
>>58491
ладно, отредактировал код этой ебанутой тулзы. Вроде проверяет.

теперь я дохуя pep8-совместим!
133 1658533
Зачем объявлять один класс внутри другого?.. С целью чего это делается?
134 1658535
>>58533
прост. Почему бы нет? Инкапсуляция.
135 1658536
>>58533
официальное объяснение будет звучать примерно так: тебя это ебать не должно
136 1658540
>>58533
Если он вне это класса не нужен, то нахуя выносить?
137 1658554
object.__dict__
Что эта хрень делает? Двойная звезда "раскрывает" словарь это я знаю, но в чем смысл всей этой конструкции, в особенности метода __dict__ (почему-то без скобок и без аргументов)
138 1658555
>>58554
Бля, проебалась двойная звезда перед object.__dict__. Ну вы поняли...
139 1658557
>>58533
Ещё можно делать "фабрику классов" и возвращать этот класс для дальнейшего использования.
140 1658559
>>58554
Это не метод, а словарь

https://docs.python.org/3/library/stdtypes.html#object.__dict__

object.__dict__
A dictionary or other mapping object used to store an object’s (writable) attributes.
141 1658659
>>58557
для этого не нужен класс внутри класса
142 1658663
Начал читать про эти ваши алгоритмы.
Есть список и есть массив.
Список необходимо использовать тогда, когда нам нужно удалять и добавлять туда данные, совершенно понятно, почему в данном случае тут сложность O(1)
Массив нужно использовать когда нам необходимо получать доступ по индексу, но суть в том что в питоне я также могу получить доступ к списку по индексу
list = [1, 2, 3]
print(list[0])
Тогда почему доступ к элементу в массиве - O(1), а в списке O(n)?
143 1658677
>>58659
Класс внутри класса это как сон внутри сна
144 1658678
>>58663
Потому что ты не врубаешься в dinamic array, static array и linked list
Буквально в прошлом треде вроде это обсуждалось
да, list - это не linked list, тебя наебал сам Гвидо
145 1658682
>>58663
именно поэтому питон не стоит брать как первый язык

массив - это структура данных
список - абстрактный тип данных

в питоне списки реализованы поверх массивов, такие дела и сложность там O(1)

https://wiki.python.org/moin/TimeComplexity
146 1658688
>>58682
жс-макаки прекрасно без этой белиберды дедовской обходятся
147 1658689
>>58678
В питоне list это динамический массив?
148 1658693
>>58689
да

зачем задавать вопросы на сайте для школьников, когда есть подробный ответ на stackoverflow?

https://github.com/python/cpython/blob/e5014be0497d06d78343623588a80f491a6f7b74/Objects/listobject.c#L22
149 1658703
>>58693
Потому что я могу, какие проблемы?
150 1658704
>>58703

ты приходишь за знаниями к долбоебам
151 1658709
>>58704
Ты понимаешь, что ты сейчас сам себя только что долбоебом навал?
мимо
152 1658710
>>58709
а как называть людей, которые отвечают дегенератам на дваче?
153 1658714
>>58710
ну тут соглы
154 1658747
Питон хуже пидарства, во всяком случае так показалось после си.
155 1658753
>>58747
Но почему ты называешь си пидарством?
156 1658762
Зачем в try.. нужны секции finally и else?
Код из else можно перенести вниз try, а finally вовсе снизу вне блоков написать?
Я ещё могу понять else - чтобы исключение в else обрабатывалось внешним обработчиком ошибок вне моего except, но какой смысл в finally?
157 1658766
>>58762

> finally вовсе снизу вне блоков написать


Подумай сам, если код в finaly зависит от того, выполнится ли try - то при переносе кода вниз - ты можешь выполнять операции с None, или городить очередные проверки
158 1658780
>>58762
finally выполняется всегда, в том числе если исключение не было перехвачено, или было перезапущено. Соответственно код, который вне try-except-finally в этом случае вызван не будет.
изображение.png4 Кб, 182x232
159 1658798
>>58780

>перезапущено


Вот так что ли? Оно выводит 1-2-4.
Если исключение пробрасывается выше в else/except секции?

>>58766

>ты можешь выполнять операции с None


Да вроде бы не могу если я понял о чём ты, try же не создаёт новую область видимости
160 1658812
>>58798

>Вот так что ли? Оно выводит 1-2-4.


Да, у тебя не печатается 3, в этом и отличие с finally

Обычно конструкция не такая, а try блок находится внутри какой-то функции. А внешние try блоки уже не в этой функции, а где-то сильно выше в коде, откуда функция-метод вызывается.

Исходное назначение finally главным образом в том, чтобы корректно и во всех ситуациях закрыть какие-то ресурсы, которые ты открыл в try-блоке.
161 1658871
>>58677

как карп в пакете в пакете
162 1658880
Не знаю, туда ли пишу, но спрошу тут. Есть папка с osu! osu.ppy.sh и оттуда надо вытащить музыку. Примерная структура такова: osu!/Songs/42048 RYO - Shuffle Heaven/audio.mp3
Возможно расширение файла отличается от песни к песне, сейчас оно всё в десятигиговом архиве. Надо сделать: скопировать audio.mp3 (чтобы решить проблему расширений надо будет wildcard какой-нибудь?), в другую папку, переименовать его в название папки без цифры в начале. Задача совсем простая, но я не программист. Подскажите, что делать? Простой цикл for? Библиотек кроме os не надо? Питон не знаю, насколько сложно будет?
163 1658889
Посоны посоветуйте в чем делать GUI , по халявнее по проще .
164 1658891
>>58889
Electron
165 1658895
>>58889
WinForms
166 1658897
>>58762

>Код из else можно перенести вниз try


Сам-то понял, что сказал?

>finally вовсе снизу вне блоков написать


Скажу больше: иногда вообще юзается только конструкция из try и finally. Каково? потому что finally может гарантированно закрыть некий ресурс
CodeuXjIDViuSU.png84 Кб, 1366x729
167 1658924
Доброго дня всем. Помогите плез, как увеличить шаг вырезки при повторении цикла? Как видите mass[x] + mass[x:: +1] не работает
168 1658930
>>58924

>увеличить шаг вырезки


на 5-10 см, без смс и регистрации
У тебя ж есть еще переменные помимо x, Алеша! Увеличивай
169 1658938
>>58930

>на 5-10 см, без смс и регистрации


Забавно

> еще переменные помимо x


Не понял...
170 1658958
>>58924
чтото странное делаешь. почему бы не показать весь код? намерения не ясны.
тут у тебя ругается на то, что ты собрался складывать одно число int и срез.
4aEzCzMoUco.jpg151 Кб, 617x446
171 1659000
172 1659043
>>58880
бамп?
174 1659078
>>59076
Ого спасибо...
175 1659256
>>56865 (OP)

>Вот, пожалуйста, та же самая программа, но переработанная под язык Python:


Это шо, сикп пиздон?
176 1659272
>>59256
Нет. Иди скобки дрочи.
177 1659316
>>57903
виндоблядь должна страдать
178 1659360
>>59076
Ну и зачем ты за него всё написал? Может ему бы понравилось и он мог попытаться вкатиться.
179 1659382
>>59360
С короной этих вкатывальщиков уже некуда девать.
Надо перепрофилировать заводы по сжиганию фотографов.
180 1659410
>>59272
Ну тогда ладно сикп питон я нагуглил вот https://wizardforcel.gitbooks.io/sicp-in-python/content/
181 1659451
>>59382
После короны на оборот количество говнокодеров вырастет .
182 1659457
>>56865 (OP)
Есть желающие за деньги на карантине тупой не сильно женщине за деньги дистанционно физическая локация спб через дискорд/скайп/tmv etc попреподавать немного питон? Напишем какой-нибудь парсер для соца или еще какую нибудь хуйню ненужную. Одной скучно, основы погромирования вроде есть, работаю в айти.
стучите сюда если вдруг кто то хочет dvao&MchfANUSrambOoDlerPUNCTUMr:gju или сюда в тг @poplaval
183 1659461
>>59457
Тащмайор, я понимаю, норматив минимум 10 человек в месяц, но не надо
184 1659598
Аноны, я че то туплю. Почему когда я запускаю .py через консоль открывается пучарм? Я хотел бы скинуть свой скрипт другим людям, и чтобы им не ставить ИДЕ просто скачать питон, поставить библиотеки через пип и запустить скрипт.
Или просто пусть откроют его через IDLE?
185 1659604
>>59598
Потому что ты дурачок и сменил ассоциацию на пичарм.
При нормальной установке всё будет работать как надо.
186 1659606
>>59604
А как диссоциировать? Вдруг консоль понадобится.
187 1659621
>>59606
Можно запускать py script.py
А так надо копаться в реестрах-хуестрах. Ну или переустанови шиндовс питон, он поставит обратно свои.
188 1659647
>>59598
Ты точно пишешь python example.py и у тебя открывается pycharm, а не открываешь файл через консоль?
189 1659680
Есть список экземпляров класса, помимо этого эти же экземпляры лежат в двух словарях помеченные определённым образом.
Как организовать удаление экземпляра из списка и всех словарей? Ставить метку в экземпляре, и элементы с меткой удалять при обходе каждого из этих контейнеров?

>>59606>>59598
Батник же положи рядом, и всё.
Открываешь свойства файла, там есть "приложение", меняешь его с пучарма на python.exe
image.png23 Кб, 615x80
190 1659739
Я вас категорически приветствую.
На выходе из функции получается dict с ключами name и description
Аутпут некрасивый.
Как сделать так, чтобы выводилось исключительно name и description без скобок, имен ключей и так далее, только значения?
type(output_movie) - dict
С меня канистра чая!
191 1659741
>>59739
уже пофиксил аутпут :)
pooldog.jpg31 Кб, 399x676
192 1659748
БЛЯДЬ
Не работает в этом киви абсолютно нихуя! не могу больше.

https://github.com/kivy/plyer/issues/500#issuecomment-595756815

Что этот пидор тут форкнул? как правильно его наработки взять ?
193 1659789
>>59739
.values что ли
194 1659821
>>59789
нет, иное решение
output_movie['name'], output_movie['description']
2.png270 Кб, 1212x856
195 1659850
Зачем нужны 2 и 3 строчки? Разве первая не делает то же самое, что и третья, включая в себя то, что делает вторая?
196 1659855
>>59850
низачем, просто кто-то вот так написал, показалось ему что-то или впадлу было норм сделать

лучше просто оставить import tkinter as tk
а from tkinter import * не делать никогда
197 1659863
>>59855
Понятно. Это вообще из платного курса Дударя скрин. Ну я за него не платил
198 1659905
>>59863
легаси говно бывает и похлеще
199 1659915
>>59863
Думал его курс посмотреть по Python, или Django, и он там так косячил будто неделю назад сам только их изучил (имею в виду бесплатные уроки на ютубе)
200 1659918
>>59850
первая импортирует tk, позволяя вызывать функции типа tk.ttk.shit()
ты не сможешь вызвать ttk.shit() без префикса "tk.", потому что ttk определен внутри tk
чтобы таки смочь, автор импортировал ttk, и теперь в коде можно делать ttk.shit()

третья импортирует всё подряд, включая ttk, так что с ней вторая строчка не имеет ссмысла, но бездумно импортировать всё подряд считается плохо, так как засирает неймспейс и может заоверрайдить какой-то другой функционал, поэтому такие звездочки на позднем этапе заменяют на то, что во второй строке - импорт индивидуальных классов и модулей. либо вообще оставляют один верхний уровень и вызывают всё через.длинную.череду.точек()
201 1659921
>>59850
ебать, почему не киви?
202 1660034
>>59647 >>59680
Ну да, я долбоеб получается и открывал файл. Сейчас написал через py scriptname и заработало. Спасибо за помощь.
203 1660224
Не работает pylint в VSCode в virtualenv. Ниже settings.json виртуального окружения. Кто-нибудь сталкивался с этим?

{
"python.pythonPath": "django_libraryenv\\Scripts\\python.exe",
"python.linting.pylintPath": "django_libraryenv\\Scripts\\pylint.exe",
"python.linting.pylintEnabled": true,
"python.linting.enabled": true,
"emmet.includeLanguages" : {"django-html": "html"},
"[django-html]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "HookyQR.beautify"
},
"python.linting.pylintArgs": ["--load-plugins", "pylint_django"]
}
204 1660320
>>59918
А это не вредно так писать? Ну типа это не вставляет один и тот же код много раз?
.png49 Кб, 675x486
205 1660391
>>60320
нет
screen.png21 Кб, 559x690
206 1660433
сап двачик родной, извините, ради бога, что я к вам такой обращаюсь, препод задал залупу, а я ни в зуб ногой (я ексель-макака, нахуй мне питон не нужен). Курс по питону идет всего вторую неделю, на лекциях одно, а на дз хуй разберешь что. мож кто поможет ? юзаем анаконду, если это имеет какое-то значение https://pastebin.com/eEGECbVM тут образец
207 1660793
>>60433
отчисляйся
208 1660895
>>60433
Что поможет? Написать все за тебя бесплатно?
Срыгнись.
2MgOcyUoaXE.jpg134 Кб, 720x731
209 1660909
>>60895
я просил написать все за меня? так шо съебись, омежка
210 1660935
>>60909
и кто сказал бесплатно
211 1660941
>>60433
Код говно, в условии нихуя не ясно, у тебя 6 часов что бы переписать условие нормальным текстом и я помогу тебе с кодом.
212 1660953
>>60941
смотри, условия как и код писались индусом, скажи что именно непонятно, попробую разобраться или по крайней мере спросить у препода. Нужно сделать модель симуляции морского порта, в порт заходят корабли трех классов с разной вероятностью и разной временем загрузки\разгрузки. есть еще такой код https://pastebin.com/fXwtC5b9 но не думаю что разница велика
213 1660955
>>60895
Но! Мне (>>58880) же написали. Правда я сам хотел, да и задача простая.
214 1660956
>>60433
Ну что там сложного-то? Пишешь реализацию очереди, потом симулираешь день за днём:
1 прибыл корабль? ставим в очередь
2 есть корабль на разгрузке? нет: берём из очереди
3 уменьшаем ему остаток разгрузки
4 считаем корабли в гавани
215 1660961
>>60953
Бля. Я делал такое, это ж симулятор очереди. Ищи короче на CodeWars симулятор очереди ну или похуй что угодно со словом очередь вбивай и там будет похожее
216 1660965
>>60956
Скажи, имеет смысл в этом коде копаться, или проще написать все с нуля самому?
>>60961
оп-па, это уже интересно, ща гляну, дякую
217 1660968
>>60965

>Скажи, имеет смысл в этом коде копаться, или проще написать все с нуля самому?


У тебя задание написать самому.
caa54d923fa381c2f1bcdc5d1b3c6593-flor.detail.gallery.jpg66 Кб, 493x600
218 1660971
Все, разобрался, все спасибо за наводки
219 1660973
>>60433
Ничего не понял, надо сделать симуляцию, через random()?

Зачем тут numpy и прочее?

Разгружают одновременно только один танкер?

Для выборки с предписанными вероятностями в питоне есть специальные функции в стандартной библиотеке random
Например, получить корабль случайным образом
random.choices(['super', 'medium', 'small'], [0.4, 0.35, 0.25])
аналогично интервал
random.choices([3, 4, 5, 6, 7], [0.15, 0.25, 0.35, 0.15, 0.10])
220 1660975
>>60973

>Разгружают одновременно только один танкер?


да

>Зачем тут numpy и прочее?


так уж у нас заведено, что на паре объясняют только нампай, а дз дают на работу с пандас или вот например с радномом, при этом не объясняя что такие библиотеки вообще существуют
221 1660977
>>60973
numpy в примере был использован чтобы например сгенерировать время обслуживание корабля, которое увеличивается по экпоненте
222 1661041
Вроде научился кое-как пользоваться пистоном и его либами в прикладных задачках (ну или гуглить решения на стековерфлоу)
А теперь хочу реализовать какой-нибудь велосипед, чтобы начать понимать, как вообще проектируется софт и библиотеки.
Например - асинхронный серва чок какой-нибудь! Но беда, я не знаю, что мне теперь читать по этой теме...
Знаю очень поверхностно, как работает http, сокеты ну и asyncio офк. Нужно больше теории, как там внутри устроены эти веб фреймворки и как можно закодировать свой простейший аналог?
223 1661057
>>60975

>так уж у нас заведено, что на паре объясняют только нампай


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

Но знать про такие модули всё равно полезно. Полезны модули random, statistics, itertools - там много чего полезного и интересного. Функционал оттуда часто для учебных задачек дают, проделать самостоятельно полезно, но для продакшен кода штатные библиотеки очень полезно освоить.
224 1661061
>>61041

>Нужно больше теории, как там внутри устроены эти веб фреймворки и как можно закодировать свой простейший аналог?


При развитых макака-скиллах можно закодировать и не понимая. Но имхо лучше разобраться, хотя бы с принципами asyncio и http. Потом легче будет.
225 1661102
>>61041
Я бы почитал статейки уровня 'from scratch', вот пару примеров:
https://defn.io/2018/02/25/web-app-from-scratch-01/
https://github.com/hzlmn/diy-async-web-framework
Только аккуратней с этим, потом ты полезешь ковырять tcp и далее по наклонной. Это как с проном: не успел оглянуться, а уже смотришь русское домашнее.
226 1661157
>>61102
Оо, спасибо
Это прям то, что нужно!
227 1661205
>>59748
Это ты ещё не пробовал OpenCV с киви познакомить. Я так 2 недели проебал, очнулся, а у меня уже андроид студио, глаз дергается, и Java ко мне сзади пристраивается. Больше к этому говну (kivy) не подхожу.
228 1661378
Норм начинать изучение питона на code.basics? Прошел больше половины, вроде все норм. Но это проект от хекслета, а его тут вроде как хуесосят, непонятно почему.

Какие книги после этого сайта прочесть? Укус питона начал, вроде норм, но там нет упражнений после каждой темы как обычно бывает в старых книгах по программированию.
229 1661399
>>61378

>Но это проект от хекслета, а его тут вроде как хуесосят, непонятно почему.


Да потому что нахуй не нужны все эти курсы ебучие. Основы легко можно и самому выучить, решая задачки на codewars/leetcode/hackerrank, попутно гугля нужные алгоритмы и разбирая решения от других участников. Выхлопа получишь в несколько раз больше, чем способны дать любые курсы.
И книги по питону для вкатыша тоже нахуй не нужны. Их стоит начинать читать, когда уже имеешь базу и интересуешься конкретными паттернами, например.
230 1661411
Анон, подскажи, как описать питонное апи (не рест) на более человекочитаемом и отдельном от кода уровне, чем в docstring. Слышал про IDL, но хз, что это и что с ним делать
231 1661425
>>61411
Не совсем что что тебе нужно. Если хочешь документацию, есть генераторы документации - пишешь в коде комментарии специального вида, а по ним потом специальная программа с генерирует документацию в удобном формате, там html, pdf, что хочешь. С питоном часто используют sphinx
https://www.sphinx-doc.org/en/master/
232 1661428
>>61425

>Не совсем что что тебе нужно.


*Не совсем ясно, что тебе нужно.
233 1661476
>>61399

> основы можно легко изучить codewars/leetcode/hackerrank


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

> разбирая решения от других участников


зачастую участники данных ресурсов соревнуются в том, чтобы ужать всё решение в одну строчку, так что обучение на их примерах - прямая дорога к говнокодингу

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


а каким образом ты получишь базу? или по-твоему это априорное знание? я тоже сторонник обучения на практике, но перед этим все равно нужно изучить необходимый минимум теории из курса, статьи, книги или видосика на ютубе
234 1661477
>>61399
Видел у Лутаца очень много упражнений, сам книгу не читал и не советую, т.к. на мой взгляд, там слишком много воды. Но упражнения можно брать и оттуда
235 1661478
>>61378
Видел у Лутца очень много упражнений, сам книгу не читал и не советую, т.к. на мой взгляд, там слишком много воды. Но упражнения можно брать и оттуда
3074319116332059934619608111513765377212416o.jpg1 Мб, 1919x1809
236 1661512
Вопрос:
Как пройти список с обратной стороны без использования len? Может срез какой-нибудь соорудить?
И есть ли в этом вообще вычислительная польза, если список огромный, а нужный элемент скорее всего ближе к концу?
237 1661515
>>61512
Нашел[::-1]
238 1661516
>>61515
Так ты свой OCHE BOLSHOY SPISOK копируешь в обратном порядке.
Есть итератор reversed.
239 1661517
>>61516
То есть [::-1] создаёт новый список, а reversed не создаёт?
240 1661518
>>61517
Да.
241 1661520
>>61518
Интересно, что за энтузиаст именно так решил.
А почему тогда срез быстрее работает (если верить интернету)?
242 1661521
>>61520
Как так? Слайсы решают задачу извлечения значений из списков. Реверсед решает задачу обратного итерирования.
Работает не быстрее https://ideone.com/g5MmEK
Плюс проеб по памяти.
243 1661522
>>61521
Просто раньше думал что срезы - это что-то вроде обращения по индексу, а когда вызываешь функцию от чего-то, то интуитивно она должна возвращать новый объект.
Благодарю. Важная инфа на будущее.
244 1661531
>>61522
Можешь баловаться в интерактивной сосноли - там сразу видно результат.
245 1661563
>>61476
Кстати, я классы еще не изучал. Чем они от функций то отличаются?
246 1661590
>>61205
Пробовал.
Ну на десктопе работает. Я просто не знаю что мне делать с этим opencv.
изображение.png5 Кб, 292x239
247 1661748
>>61521
Тупла быстрее через ::-1, чем через reversed, кстати, что я с ней не делаю. И ещё она работает хуже листа, что странно, впрочем, не первый раз подобное замечаю.
Я только создание контейнера вынес из функции - замеряются лишь обращения.

Научите массивы numpy использовать. Хули они медленнее в шесть раз работают - если у них прибит тип и размер гвоздями? Я бы понял ещё в два - из-за того что у них природа апитонная, но не в шесть же мать их.
248 1661753
>>61748

>Научите массивы numpy использовать. Хули они медленнее в шесть раз работают - если у них прибит тип и размер гвоздями?


У них дорогая инициализация, конвертация из питона в np массив, на это идёт основное время. Вообще код покажи лучше.
изображение.png5 Кб, 251x237
249 1661767
>>61753
Без инициализации и конвертации, просто обход.
https://ideone.com/sWoY9V
Вот с этими числами, а то идеон не пропускал мои. Тут вообще почти в 10 раз замедлилось.

Что любопытно - если использовать np.arange, то работает быстро. А если np.array(range()), то сразу замедляется - хотя массивы полностью совпадают во всех значениях.
250 1661877
>>61767
Модуль dis ответа не даёт, с его точки зрения тут вообще разницы нет, код извлечения данных из np прописывается как-то в более низкий уровень.

Мне кажется, что тут просто идёт постоянное преобразование типов из кишков np в данные питона. Вот это и занимает много времени. np для этого не предназначен совсем. С такими библиотеками другой принцип работы, как с сервисами, ты должен минимизировать количество операций с ними. Ты записываешь туда данные, потом библиотека сама с ними что-то делает, используя специальные функции.
251 1661902
>>61877

>ты должен минимизировать количество операций с ними


Угу, операции над нумповскими массивами нумповскими функциями несравнимо резвее, чем списки.
А вообще это костыль тот ещё - нужно в самом деле минимизировать количество операций с этим, другими словами использовать другой язык, который лучше подходит для обработки массивов данных, чем скриптованное говно без типизации. Вышеупомянутая numba хорошо работает с массивами (чуть ли не лучше чем встроенные нумповские операции), на крайний случай.
252 1661956
>>61902

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


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

Си для таких вещей хорош и удобен.
253 1662092
Чет давно не заходил со своей платиной. Ну шо вкатывальщики, как там успехи? Все еще надеетесь найти петушиную веб галеру за пределами дс? хех)
254 1662177
Чем пистон лучше ноджс? Какие задачи он решает лучше? Кроме простоты синтаксиса и прочей хуеты для я девочек?
255 1662232
>>62177
Любую задачу можно решить на любом языке, если язык доступ к системе имеет.

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

Гибкая система передачи параметров в фукции, сравни это с тем, что в JS.

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

Хорошо налаженное межпроцессное взаимодействие.

Масса вещей делается в питоне просто и красиво, а в JS это превращается в страшный код с кучей затычек и уязвимостей.

А в остальном, на ноде тоже можно писать, жить можно.
256 1662246
>>62232
Но почему тогда нода такая популярная?
257 1662247
>>62246
Ты поменьше всяких петухой с ютуба слушай.
258 1662248
>>62246
Ты поменьше всяких петухов с ютуба слушай.
259 1662260
>>62248
Конструктивно
260 1662271
>>62177
Учу питон, мне нравится синтаксис всем кроме одной вещи - выделение блоков пробелами. Как по мне скобки удобнее и нагляднее.
261 1662301
>>62177
На питоне можно очень быстро слепить проект и он будет как-то там даже работать, чтобы показать заказчику.
А потом всё равно переписать под ноду как-то так оно обычно и бывает
Ибо нода куда более гибкая и быстрая относительно любых пистоновских веб-фреймворков
262 1662306
>>62301
Ты в слове Java ошибок наделал.
263 1662324
>>62301
Да но нода = JS, а JS - говно. Почему бы сразу не написать на асинхронном питоне
264 1662326
>>62246
потому что один язык для фронта и для бэка. Я пока ещё не видел ни одного чистого бэкенд разработчика на ноде, все так или иначе пришли с фронта
265 1662344
>>62324
Вот и я не понимаю. Он так прекрасен и всеми любим. Но как спросишь, то все сводится к красивому синтаксису
266 1662352
>>62324
Вот когда броузеры нативно начнут питон поддерживать, тогда и будет тебе асинхронный питон
678982782.png12 Кб, 710x296
267 1662358
Бля, ребят, кто с Postgres ебался, хелпаните
Еще больше месяца поставил себе PostgreSQL в качестве основной БД в одном из Джанговских проектов. Там когда в settings.py задаешь настройки, надо помимо прочего указать пароль ('PASSWORD'), что это блин вообще за пароль? Где я могу его изменить?.. Я управляю своей БД через pgAdmin, там есть мастер-пароль для входа но это не он... Где и как можно этот пароль для БД поменять?
268 1662364
>>62358
Ну так добавь юзера.
Скорее всего, суперюзером нельзя так подключаться, только локально через консоль.
269 1662371
>>62358
Ты пишешь пароль юзера, которого ты указываешь так же в настройках. Если не знаешь пароль postgres то в pgAdmin или в Shell создай нового юзера с нужными правами и на этот раз не проебись с паролем.
Или другой способ погугли как узнать его пароль (но так как ты задал сюда вопрос, я так понимаю, ты не понял, как это сделать)
А еще советую из settings выносить такие данные в отдельный .env
7257852875287.png48 Кб, 1008x653
270 1662387
>>62371

>из settings выносить такие данные в отдельный .env


?
У меня на данный момент так: есть json файл, из которого я достаю этот пароль а также secret_key (на пике переменная POSTGRESS_PASSWORD это значение из десериализированного json). Это норм?

По теме: >>62358 в pgAdmin нашел эту фичу (блин, что-то я больно редко консолью пользуюсь, и часто полагаюсь на сторонний софт, боюсь мне это акнется)
271 1662424
Пытаюсь в L-системы, не могу в ветвление. Как поместить черепаховы координаты и угол в список, а потом извлечь оттуда, когда в правилах '[' и ']' соответственно?
https://ideone.com/EX1Fxz
image.png8 Кб, 370x159
272 1662426
Пытаюсь тут во всю обмазываться питоновскими штучками
Как можно сократить этот код?
Зачем? -Не хочу инициализировать пустой дикт, хочу сразу вернуть результат.
Знаю, что можно просто вернуть генератор, но конкретно этот пример с енумом и диктом почему-то не получается адекватно под него переписать... И ещё мне интересны другие варианты, с функцией map, например?
273 1662431
а, понял, в назначении позиции не по имени черепаху назвал (и раньше надо, и ручку поднимать-опускать ещё). держу в курсе
>>62424
image.png6 Кб, 706x61
274 1662432
>>62426
Как вариант.
275 1662436
>>62387
Я думал у тебя все в settings лежит. Да так я думаю без разницы, где ты настройки хранишь, можно даже в .py
На счет этой фичи, в любом случае надо знать пароль. Я бы на твое месте попробовал этого суперюзера удалить в админке, и создать нового такого же. Просто хз, есть ли такая возможность..
276 1662447
>>62301
В чем же гибкость ноды? Про скорость работы все далеко не однозначно, так как зависит от дохуя чего.
277 1662450
Есть инструкции по тому, как менять пароли в постгресе.
Суть в том, что надо в конфиге, что называется
pg_hba.conf
выставить параметры, которые позволяют логиниться с локалхоста без пароля, после рестартануть сервис, зайти, поменять пароль и включить защиту заново
параметр для этого trust называется.

Точную инструкцию не дам, но она находится в гугле за три минуты.
278 1662451
>>62450
А не проще зайти под пользователем postgres в psql?
279 1662454
>>62352
Ты фронт от бэка отличаешь, вкатывальщик?

>>62301

>переписать под ноду


Разочарую тебя, но ноде как и питону далековато до топов. Пыха давно держит олимп первенства в бэке
280 1662455
>>62326
Я разрабатывал на ноде, не переходя с фронта. Нода довольно удобная штука и функциональная, хорошая платформа, просто сам JS как язык ущербен, нельзя с питоном сравнивать совсем.

Нода реально удобна была для сетевых сервисов за счёт того, что вся на асинхронных коллбэках построена.
281 1662456
>>62451
Тогда тебе встречный вопрос: как изменить пароль для этого юзера? И как создать нового юзера?
282 1662457
>>62326

>один язык для фронта и для бэка


чел, ты ничего не знаешь ни о жс, ни о бэкенд разработке
283 1662458
>>62456
Alter user и create user
284 1662459
>>62451
Не пустит так просто. Это известная проблема, сам с ней сталкивался, ничего не помогало, но вот такие решения сработали.
285 1662460
>>62459
У тебя рут есть? С хуяли не пустит?
286 1662461
>>62454
Тебе по-моему скучно и ты хочешь боянистые споры очередной раз поднять.
287 1662462
>>62460
Сама СУБД тебя просто не пустит в настройки базы. Но имея рут пароль, ты можешь изменить параметры доступа через файл pg_hba.conf.
288 1662463
>>62462
Зачем там что-то менять? Зайди под рутом, потом под постгрес и выполни команды в psql.
289 1662466
>>62358
Кстати, это пароль не для конкретной БД. И не для самой PostgreSQL. Это пароль твоего юзера (в данном случае "postgres") для подключения к серваку (а их может быть много внутри твоей Postgres)
290 1662467
Пиздец, развели сто постов споров.
Достаточно почитать мануал. Зачем вобще в постгрес лезть наобум?
Юзайте рабоче-крестьянский мускл или вообще скулайт.
291 1662469
>>62467

>мускл


для быдла

>скулайт


для скота
292 1662476
>>62455
Сейчас бы считать асинхронный колбэки за плюс, когда во всёх нормальных языках стараются уйти от этой хуйни)))0))

> чел, ты ничего не знаешь ни о жс, ни о бэкенд разработке


Ну давай, тел ми мор.
293 1662496
В Django надо бы иногда генерировать url-ссылки на другие страницы моего ресурса, они должны выглядеть как-то так: http://myresource/slug-field, визуально на странице они должны выглядеть именно так а также быть гиперссылками (тег <a>) и редиректить юзера при нажатии
Вопрос: как их адекватно создавать? Я знаю быдлоспособ: вручную прописать название ресурса myresource, но так у адекватов дела не делаются, это одна из причин почему были придуманы темплейты и джанго-тег url. Создать сами ссылки с его помощью: href="{% url %}" - не проблема. Проблема динамически прописать имя ресурса
294 1662497
>>62496
Как-то так. Но с зашкварным прописыванием имени ресурса вручную:
<p> The possible url you are searching for is: <a href="{% url 'randomapp:redirect_view' slug_var %}">http://myresource/{{slug_var}}</a> </p>
295 1662501
>>62496
def get_absolute_url(self):
return reverse("tag_detail_url", kwargs={"slug": self.slug})
Возможно это то, что тебе нужно, можешь как-нибудь изменить под себя
P.S. Метод класса models
296 1662752
Сколько времени понадобится чтобы освоить?
297 1662783
>>62752
Час и ещё минута на покурить останется.
https://youtu.be/fp5-XQFr_nk
14305130449540.webm203 Кб, webm,
480x360, 0:04
298 1662784
E3e8Rlx3pRXvf27f7IeZgQcfZEEBLDLckV4a41YlI-g.png3 Кб, 316x58
299 1662802
>>56865 (OP)
Ананасы, с клиент-серверными приложениями незнаком, необходимо запилить два приложения:
1) Сервис, который будет находиться на одной машине, занимать какой-то порт и принимать REST-запросы.
2) Простенькая форма на другой машине, которая будет по клику отсылать REST-запросы к вышеозначенному сервису по его адресу.

Подскажите, пожалуйста, либы (кроме PyQt для формы, его знаю), которые надо курить, от чего отталкиваться, в общем.
300 1662806
>>62802
Ах да, первый сервис, соответственно, будет после приема отсылать какие-то данные обратно на форму, из которой производился клик.
301 1662820
>>62783
Это не троллинг?
302 1662831
>>62802
requests
303 1662844
Какая есть литература для изучения третьего пистона, с упором на практику? Лутц и Dive Into Python вышли почти 10 лет назад, хочется актуальных знаний. Или я ошибаюсь и эти книжки довольно актуальны? Лутца осилить могу, воды не боюсь
304 1662854
>>62831
И только? Вау, погляжу, как это будет работать, спасибо.
305 1662857
>>62844
В издании 19 года много пишется про разницу между 2.x и 3.x, и изучается конкретно 3.x
306 1662874
>>62467
В постгрессе есть удобный для меня инструмент postGIS. Есть ли аналоги для други СУБД?
307 1662878
>>62802
tornado
Screenshot2020-04-20-14-42-33-448udk.android.reader.jpg1014 Кб, 1080x2340
308 1662879
>>62844
Я читал Stepik параллельно листая книжку Седер Экспресс-курс. ( Хороша уже тем, что честно в первой главе обьясняет почему питон -говно )
Если ты уже программировал, то нафига эта вода?
309 1662884
>>62857
Ты про Лутца? В шапке нашел издание 2019 года, а Dive Into Python - нет
310 1662897
Делаю задания на code-basics. Зашел с другого компа, логинюсь - пишет неправильно имя\пароль. Делаю восстановить пароль - пишет такого пользователя нет. Я думаю что за хуйня.

А у этих долбоебов оказывается проверка почты сделана чувствительной к регистру. Как такую хуйню могли сделать программисты, продающие курсы?
311 1662915
>>62884
Да, про него
312 1662921
У меня тут такой вопрос, я раньше писал на шарпе, для учебки, щас учу питон для себя и не очень понимаю, когда нужно юзать геттеры и сеттеры, а когда достаточно оставить поле пабликом. Может кто-нибудь рассказать, кто чего придерживается?
313 1662925
>>62921

>геттеры и сеттеры


Ты эту хуйню в шарпе оставь
314 1662930
>>62925
А неправильные значения чисто try - except обрабатывать?
315 1662935
>>62879

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


какого года это говно?

Истинные проблемы пистона в другом: производительность, ебля с версионированием, отсутствие адекватной многопоточности, хрупкость архитектуры (присущая любым динамическим языкам)
316 1662940
>>62921
У паблика всегда приоритет, но в случаях когда атрибут действительно должен быть приватным, можно поставить сеттер; геттеры есть смысл ставить при комплексной обработке объекта (очевидно)
Хуярить на каждый чих get_voltage(self) или set_voltage(self, volt) - даунизм
годный вариант обозначать геттеры/сеттеры через декоратор property
317 1662947
>>62935
2019.
Ну же это правда, библиотеки сначала пишутся на си и на яву, а уже потом на питон.
для первого взгляда достаточно тех проблем, которые в книге уже перечислены.
318 1662949
>>62925
в шарпе вообще-то геттеры и сеттеры не используются, там тоже property
319 1662954
>>62949
Я это и имел в виду
>>62940
Понял, спасибо
Про декораторы уже узнал, пока гуглил об этом всем инфу, в любом случае, спасибо
320 1662959
>>62947

> Ну же это правда, библиотеки сначала пишутся на си и на яву, а уже потом на питон.



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

Для того чтобы узнать сколько библиотек существует для языка достаточно посмотреть количество репозиториев на гитхабе с количеством звезд > 2k
Спойлер: python в топ 2
321 1662965
>>62820
конечно троллинг, как ты за минуту покурить успеешь, только если невзатяг
15552705388210.jpg77 Кб, 600x800
322 1662983
>>62959
А зачем ты по одному гитхабу делаешь выводы об индустрии ?
Да, гитхаб - единственный достоверный инструмент, но он же не покрывает данные об остальных api.
любая хренюшка, железячка или сервисочек изначально выпускает закрытые api на яве и вероятно, на Си.Тут другая культура.

Ну, мне так кажется.

В любом случае, это второстепенный вопрос.
323 1662984
Аноны, что выведут два этих говнокода?
324 1662998
>>62949

>в шарпе вообще-то геттеры и сеттеры не используются


Я, похожу, работаю в каком-то неправильном проекте.
325 1663002
>>62984
ты что запустить не можешь и пришел с этим срать в тред?
вообще охуели.
326 1663004
>>62984
Зачем ты это спрашиваешь?
327 1663006
>>63002
>>63004
Я вас проверяю :)
328 1663012
>>63006
ты не я, я никого не проверяю
329 1663018
>>63012
Это ты не я, не лезь.
330 1663020
>>62998
Видимо. Зачем использовать методы геттеры и сеттеры, если есть свойства?
331 1663031
>>63020
Разве свойство не задается { get; set; } ?
332 1663039
>>63031
да, но обычно просто говорят "свойства", геттеры и сеттеры - специальные методы для получения значения (getValue, setValue)
333 1663043
>>62983

>вероятно, на Си


Низкоуровневая параша для дров и МК. Говорю как чувак, когда-то писавший на нем
334 1663051
>>63039
Хм, ну ладно.
335 1663071
>>62983
Си порой используется вместе с питоном, например для того чтобы вызвать системные библиотеки из кода как будто это функции питона.
336 1663116
Аноны, насколько безопасно работать с БД через треды?
337 1663118
>>63116
Через локи
а вообще через треды с БД никто не работает, не зависимо от языка, есть специализированные БД, которые это позволяют также есть несколько конкурентных операций как в той же postgres (особая директива CONCURRENT). Целиком на многопоточность хуй перейдешь, скорее всего что-то наебнешь
338 1663134
>>63118
Просто столкнулся с https://github.com/aio-libs/aiomysql/issues/150 где я так понимаю, что один из разработчиков предлагает прикрутить работу с БД через ThreadPoolExecutor. Насколько эта идея будет хороша?
339 1663154
>>63134
Полноценной многопоточности там все равно не будет. Не ебу что происходит в майскл, в постгресе имитируется многопоточность засчет кеша и снэпшотов: https://www.postgresql.org/docs/9.1/mvcc-intro.html
Улучшение производительности канешн будет, но не думаю что стоит ожидать всемогущие Треды, бустящие скорость чтения/записи в n раз
340 1663158
Ахахаблядь

https://wonderland.v8.1c.ru/blog/uluchsheniya-v-sintaksise-yazyka-1s-dlya-raboty-s-asinkhronnymi-funktsiyami/

вы там что, ебнулись со своими асинками? что дальше ? qbasic.exe будет поддерживать асинки?
341 1663165
>>63134
ThreadPoolExecutor используют чтобы вызвать синхонный код из асинхронного.

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

Если через него, то твой запрос будет обслужен в отедльном треде, при этом твоя корутина не залочится на этом месте, а просто передаст контекст управления (если здесь что-то непонятно, то тебе нужно почитать что-нибудь об асинхронности). в другую корутину
342 1663175
>>63154
Понятно, спасибо.
>>63165

>Если через него, то твой запрос будет обслужен в отедльном треде, при этом твоя корутина не залочится на этом месте, а просто передаст контекст управления (если здесь что-то непонятно, то тебе нужно почитать что-нибудь об асинхронности). в другую корутину


Я понимаю, но вопрос в том, насколько безопасно так делать. Т.е. асинхронные либы я так понимаю, организованы так, что если 2 пользователя одновременно кинут запрос на добавление данных - либа разрулит этот вопрос. Но что будет если такое же произойдет, когда я кину одновременно 2 запроса через треды. но с синхронной либой для работы с БД, как советуют в той проблеме на гитхабе
343 1663179
>>63175
успокойся, в mysql все нормально. В том числе настоящий MVCC.
этот чувак хочет клиентскую асинхронность ради решения клиентских задач, а не чтобы серверу было легче.
344 1663186
а, прочитал этот issuie.
ну он же closed, нафига ты их читаешь?
Конечно, там в обсуждении не понятно был ли ОП просто криворуким пидором или есть реальная проблема в библиотеке, но закрытые issue читать не нужно.
345 1663187
Господа, у меня к вам вопрос по поводу рекурсивных функций и многопоточности. Сам не программист, но по админским делам пишу всякие скрипты.
Суть такова: есть потрясающе кривое стороннее API, из которого надо брать информацию. Сделал для этого дела несколько однотипных функций, которые проходят запросами, вызывая себя же, если не дошли до конца. Типа пагинации - не знаю, как оно правильно называется.
И все бы хорошо, но последовательно выполняются довольно долго, т.к. информации дофига.
Решил попробовать потоки и запустить их параллельно. Получилось что-то типа такого:

thread1 = Thread(target=self.db_jobs_update())
thread2 = Thread(target=self.db_orders_update())
thread3 = Thread(target=self.db_customers_update())
thread1.start()
thread2.start()
thread3.start()
thread1.join()
thread2.join()
thread3.join()

Но работает все равно последовательно. Предполагаю, что затык именно в рекурсивности. Если я прав, то куда лучше в этом случае копать?
346 1663192
>>63175
Вообще есть специальные либы известные, aiopg и asyncpg, предназначенные для работы с постгрей через асинкио.

Асинхронность тут нужна для того, чтобы не блокировать выполнение кода, пока база обрабатывает запрос. Ровным счётом та же история, что и сетевыми запросами. Всё безопасно, об этом заботится сама СУБД, вообще в норме там к одной СУБД много клиентов одновременно подключается. Для атомарности группы запросов и придуманы транзакции.
347 1663197
>>63179
Понял, спасибо, анон
>>63186
Закрыли нихуя не объяснив, последним ответом сказав, что мб реализуют когда-нибудь.
>>63192
Я понимаю про либы, то issue как раз для асихронной либы под MySQL было. Спасибо за разъяснение работы СУБД
348 1663203
>>63187

>thread1 = Thread(target=self.db_jobs_update())


Я почти не умею в питоновскую асинхронность с его граблями из-за GIL. Но что у тебя здесь? Что возвращает self.do_jobs_update() -- это фабрика, что возвращает метод?

Выглядит так, как будто ты сначала считаешь результат, а потом вызывает Thread с результатом. Смущает то, что target должен по определению быть callable, ты должен был бы исключения словить.
349 1663204
>>63203

>питоновскую асинхронность


fix, многопоточность. Асинхронность наше всё
350 1663209
>>63203
Вот я долбоеб. Действительно, если указать таргет просто как название функции без скобок, то работает замечательно.
Братишка, спасибо тебе!
15846186256000.png187 Кб, 707x447
351 1663220
>>63197

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


шизиков и дебилов полно. вливайся в опенсорс!
352 1663240
Что нужно знать миддлу? Если задрочил уже миллион бегинер курсов. Я для себя накидал:
Джанга/фласк/торнадо
Метапрограммирование
Асинхронность/многопоточность

Что добавить?
353 1663273
>>63240
Добавь жабу например.
Никому твой питон не всрался, если ты не датасаентист или околотого.
Питухон это для студентов и школьников и по быстрому скрипты накидать. Деньги за это не платят.
В вебе со своей тормознутой джангой питухон на самом деле тоже не нужен. Твердо и четко, не нужен.
354 1663277
>>63273

>Добавь жабу например.


Тем более не нужна. Уже даже давно официально прекратили поддержку Java-applet, и разработчики жабы, и браузеры.
355 1663278
>>63277
какие сука аплеты)))) Ты из 2005 пишешь? явахуе, лучше сиди тихо за умного сойдешь
356 1663281
>>63240
Торнадо выкинь, уже 2020 как никак, если, конечно, ты не хочешь работать с легаси. Обрати внимание на sanic и aiohttp
Фласк тоже можно выкинуть, очень малый процент компаний используют его в проде, потому что ни батареек джанговских ни производительности
Многопоточность в питоне тоже не в ходу, но знать как всё работает нужно.

Добавь Docker, PostgreSQL, Redis, Celery с RabbitMQ (или другой очередью, но эта самая популярная)
357 1663285
>>63281
Спасибо, анон!
358 1663460
Всем привет. Я ньюфаг, делаю тут задание небольшое, гляньте плз, норм написал или говно? Работает вроде, кроме случая с "кривым html" конечно.
А так задание просто найти текст в теге с определенным классом, который точно один такой на странице и в тексте только слова разделенные одним или несколькими пробелами.
5.png51 Кб, 1047x608
359 1663465
>>63460
А, ну ещё проверять надо если тег или класс не найден, вот так добавил.
360 1663469
>>63460
re.findall(r'\S+', text) тогда, хотя это не принципиально.
Но что-то слишком простая задачка. Суп точно можно использовать?
361 1663472
>>63469
Да, вообще всё что угодно можно, любой язык итд.
Я просто увидел на hh вакансию "стажер бекэнд-разработчик" неоплачиваемое, без трудоустройства, прост так. Ну откликнулся, написал эйчару в телегу (там было написано написать ей), она мне кинула ссылку на канал, сказала ознакомтесь пока, чем мы занимаемся. А там организация какая-то обучает типа дизайнеров, копирайтеров итд и ни слова про какую-либо разработку вообще. Она мне не пишет, вакансию удалили, ну я и забил.
И сегодня она мне написала, типа ну что, вы почитали? Я говорю, что что-то там ничего похожего на эту вакансию нет, и она мне отвечает, что вот мы хотим запилить "application tracking system", чтобы как-то там автоматизированно принимать резюме от этих дизайнеров и копирайтеров, ещё и через телегу. Я говорю, что это всё круто конечно, но что в этом стажер будет делать? И она отвечает: "мы ожидаем, что он решит эту задачу", лел. Я сказал, что я врядли такое сам запилю вам и она мне вот это задание выслала, сказала глянуть и завтра сказать, как я буду браться или нет.
Но да, чет сомневаюсь, что их задача хоть близко к этому тесту стоит. Хотя я ничего и не теряюи не получаю.
362 1663483
>>63460
fclose
>>63472
Щас бы че-то бесплатно делать
363 1663504
>>63483
не за бесплатно а за коммерческий опыт (:
364 1663518
>>56865 (OP)
Такое дело: мне надо бы перенести питон и часть либ на комп, в котором в принципе нет доступа к интернету (pip не сработает). Как мне это лучше сделать?
365 1663527
>>63518
Там где есть инет пишешь pip download, полученные файлы переносишь куда нужно,а там уже pip install :имя файла:
366 1663533
>>63504
Братик это развод
367 1663538
>>63504
Это не коммерческий опыт. Какой же он коммерческий, если ты ничего не зарабатываешь? И проект не коммерческий, ты не работаешь в индустрии, не взаимодействуешь с теми, кто умеет работать, не учишься у них.

Тебя просто запрягают на какую-то небольшую задачку забесплатно. Такой же пет-проект.

Всё-таки за такое хоть чего-то должны платить. Ну если тебе, конечно, просто не интересно что-то сделать чисто для тренировки и без отдачи. Так и формируют мировоззрение у прослойки, что зачем платить, всегда можно найти кого-нибудь, кто за бесплатно ради опыта сделает.
368 1663539
>>63518
В принципе достаточно, чтобы на другом компе был установлен питон той же версии, на него скопировать целиком папку с virtualenvs.

Более правильный пусть, это сохранить нужные пакеты в виде файлов
pip download package1 package2
их перенести и там через pip поставить

Разберись с virtualenv, если ещё не разобрался, для твоих задач очень нужно.
369 1663636
>>56865 (OP)
ЖЫР: форк Python 2 с новым синтаксисом и бэкпортом фич из Python 3
https://github.com/naftaliharris/tauthon
370 1663670
Начал учить питон, сам не программист. Тут в телеге по питону задачку подкинули. Попробовал решить сам - получилось. А вот какое решение на сайте канала.

Сильно хуже получилось при условии что я даже про функцию max ещё не знаю? (Сам решение с канала понял не до конца)

Сама задача:

Наибольшее произведение четырех последовательных цифр в нижеприведенном 1000-значном числе равно 9 × 9 × 8 × 9 = 5832
Screenshot117.jpg21 Кб, 495x337
371 1663679
Да что ж за пиздец то там происходит в этом Киви?
372 1663681
>>63670
В целом то же самое, просто чуть другие конструкции.
373 1663696
>>63670
Оба решения так себе.
То решение, что с max, как минимум ужасно глобальными переменными. Создают две функции, и при этом используют глобальные переменные, это зашквар. При этом перегружено.

То решение, что без max, не на питоне написано. Эти while в связке с i += 1, это не питон, вот это надо чистить. Но мне оно больше нравится из этих двух.
374 1663703
>>63696
Это глобальные константы, а не переменные, что совершенно не одно и то же.
375 1663706
>>63703
В данном контексте ничуть не лучше. Это очень и очень дурной стиль делать функцию зависимой от глобальных констант. И очень дурной стиль выносить то, что по сути переменные, в глобальные константы.

Как, например, будет выглядеть код, если ты хочешь протестировать набор строк, а не одну? Будешь перезаписывать константы?
376 1663708
>>63696

> Эти while в связке с i += 1, это не питон, вот это надо чистить.



Всмысле не питон? А что это? Когда-то давно только чистый С учил.

Как лучше решить эту задачу на питоне?
377 1663712
>>63706
FizzBuzz Enterprise Edition.
378 1663713
>>63708
не питон в том смысле, что тут так не принято, предпочитают делать не i+=1 а использовать интерфейс итераторов

твое решение (слева) норм
379 1663714
>>63712
тестировать функцию ты как будешь?
380 1663717
>>63714
Разверну дженкинса, естественно.
381 1663718
>>63713
Я в книге укус питона увидел что так все делают (+= -= и другие).

Алсо проясните вот что. Я после того как вычислил длину строки string пытался сделать всю строку как int(string). Но на моменте temp = temp * string питон слал меня нахуй.

Почему из числового набора нельзя взять конкретную цифру? Ведь каждая цифра по идее отдельный символ, не?
1.png32 Кб, 403x357
382 1663719
>>63708
Ты пишешь в стиле Си на питоне. В данном случае надо явно использовать range

Как вариант. Не знаю, можно ли сделать более читаемым условие в range, вместо этого len - n + 1

Вопрос, как реагировать, если на входе строка короче 4
383 1663720
>>63717
причем тут дженкинс
код самого теста какой у тебя будет
384 1663721
>>63718
мы нихуя не поняли что тебе прояснить
385 1663722
>>63718
В строке ты имеешь доступ к отдельным символам
string
но ты должен помнить, что отдельный символ - это тоже строка, а не отдельный тип char как в Си и не число.
Где-то намудрил с преобразованием типов или не преобразовал типы.
386 1663723
>>63720
Ну как при чём? Как ты вообще без CI что-то делать будешь? Плохой стиль.
387 1663724
>>63719
я думаю если ставить цель охуеть по итераторам и пайтон магии то можно вот так:

https://pastebin.com/garavsik
388 1663725
389 1663727
>>63719
Что значит явно использовать range?

У тебя ошибка, i:i+4 не будет работать, надо i:i+n. По идее строка и число может быть любое, я забыл сделать проверку что n > string.
390 1663728
>>63721
Почему из числа a = 12345 я не могу взять a?
391 1663731
>>63725
О чём вы?
Код, который приведён на канале, говно. Авторы сами не умеют программировать, Си-анон лучше пишет. Не нужно на этом канале учиться, надо другое место найти.

Я бы посоветовал Си-анону книжку Intermediate Python, в шапке в хранилище она есть, на русском языке, меньше 100 страниц. Там как раз про конструкции питона специфичные, которых нет в других языках.
392 1663732
>>63727

>i:i+4 не будет работать, надо i:i+n


Да, признаю, тупой косяк, не покрытый тестами.
393 1663733
>>63731

>Код, который приведён на канале, говно. Авторы сами не умеют программировать, Си-анон лучше пишет. Не нужно на этом канале учиться, надо другое место найти.


все так Анон
чувак с дженкинсом просто тролит
394 1663735
>>63727

>Что значит явно использовать range?


В смысле что в этом случае скорее всего надо использовать range. Или какой-нибудь другой специфичный итератор, наверняка в itertools что-нибудь есть для этого, но заведомо не while в том виде, как у тебя.
395 1663737
>>63735
А чем плох while? Это же базовая вещь, которая везде норм работать будет.
396 1663743
>>63731

>Intermediate Python


так а на русском это как будет называться?
397 1663746
>>63737
Читаемость ухудшается и логика кода страдает, дополнительные строки кода, которые требует внимания.

Ну тебя тут сначала i=0, потом сам while, потом отдельно i+=1
Фактически ты имитируешь сишный for(i=0; i<xxx; x++), в сях тоже было бы неправильно такой while вместо for делать. Три строчки кода вместо стандартной одной.

Просто это дурной стиль, так работает, но, реально ты имитируешь итератор стандартный. while нужен тогда, когда у тебя i увеличивается уже как-то более хитро в теле цикла, когда стандартными средствами ты не можешь обойтись.
398 1663747
>>63743
Так файл называется. А сама книга на русском.
7bf329cbb6ff243919f1ff121a7677e3.jpg15 Кб, 512x288
399 1663752
Ловите илитное решение. https://ideone.com/cn4tNa
400 1663754
>>63747
ясно. выглядит охуенно, как раз то чего мне не хватало. спасибо, анон!

чем удобно читать .epub на виндовом десктопе? calibre - какая-то крайне странная программа
401 1663762
Питонач, как мне подружить джангу с vue.js? и вообще нахуя мне это нужно?
402 1663763
>>63731

> Не нужно на этом канале учиться, надо другое место найти.


Я чёт вспомнил как на яндексе учился практикум или что-то типа того на петон разработчика, и я написал код в меньше строк, чем правильный ответ в задании. В итоге начал искать группу ВКантакте про петон, взял рандомного чувака и спросил, что за хуйня происходит, он сказал что в яндексе сидят имбецилы.
Что происходит?
в питон так и не вкатился
403 1663764
>>63746
Понятно. А итератор - я так полагаю, это функции, которые с каким-то шагом выполняют действия? Ну тут мои полномочия все, пойду дальше книгу читать, походу я до стандартных функций питона ещё не дошел.
404 1663766
>>63763
Ты каложуй, вот что происходит.
405 1663767
>>63762

>джангу с vue.js


Смотря что тебе надо - если маленький кусок, можешь просто скриптом подключить и сделать что надо. Если полноценный проект с СПА - собираешь нодой проект на Вью, указываешь путь на index.html и раздаешь сам фронт как статику. Сам вью общается с беком через запросы к нужным url'ам бека. там чуть сложнее, но это в кратце

>вообще нахуя мне это нужно?


Более красивый и разнообразный фронт, чем на стандартных темплейтах; универсальный бек- можешь написать любой другой фронт
406 1663770
>>63767
а производительность можно с такого подхода увеличить? Если джанга не всю херню будет делать, а только бек? Где можно почитать ,как сделать этот полноценный проект с спа? и что такое это спа ?
407 1663773
Такой тупой вопрос - а с помощью питона можно в теории сделать поиск по какому-то конкретному новостному сайту не имея к нему доступ? Ну там поиск ключевых слов по странице/названиям ссылок на странице?
408 1663774
>>63773
можно.
409 1663789
>>56865 (OP)
Вот объясните нубу, как правильно выбрать архитектуру для своего проекта? Допустим, я хочу сделать что-то типа MUD с помощью бота в телеге. Нужно ли мне для этого писать сервер, api? Или достаточно простозахардкодить функции в боте?
410 1663817
>>63789
Подскажите какую функцию юзать, заебался тупить.
Дана ебанина из символов: c512a26bb447cfe571af077d45c8adf40ef6abd945b4b1184479339dd9d23aa3a50050a13983f84bd9f3a5786662ffd93b285e047e3fc53cbf50cfa29d2638bd

Надо получить разбитие по 8 символов, чтоб выводилось в столбец:
c512a26b
b447cfe5
71af077d
45c8adf4
0ef6abd9
45b4b118
4479339d
d9d23aa3
a50050a1
3983f84b
d9f3a578
6662ffd9
3b285e04
7e3fc53c
bf50cfa2
9d2638bd

Как эту ебанину сделать, у меня мозг с жтими циклами атрофировался.
411 1663831
>>63754
Чекни stduviewer, в универе всю литературу в нем открывал.
412 1663836
>>63817
Делай срез на 8 символов, добавляй его в новый список и удаляй эту часть из строки а цикле.
413 1663839
>>63817
sosi = 'c512a26bb447cfe571af077d45c8adf40ef6abd945b4b1184479339dd9d23aa3a50050a13983f84bd9f3a5786662ffd93b285e047e3fc53cbf50cfa29d2638bd'
for i in range(0, len(sosi), 8):
print(sosi[i:i+8])

>>63770
SPA - single page application, читай в гайдах и прочих уроках. С СПА - это было как пример, можешь написать используя любой другой подход.
414 1663848
>>63839

>single page application


объясни, а для чего нужен Django REST framework? Вот делаю я допустим борду, типа двача и чем, он будет полезен? прост пишу проектик свой, не борду и думаю какой стек максимально круто юбзать, чтобы потом и показать было не стыдно. Пока что сделал модели для бд, другие штрихи навел
415 1663857
>>63848

> для чего нужен Django REST framework


Чтобы сделать РЕСТ без всякой лишней ебанины
кэп

>чем, он будет полезен


Тем, что ты разделяешь свой сайт на 2 сущности. Захочешь фронт поменять - меняешь только фронт, захочешь мобильное приложение - пилишь только фронт.
Именно DRF дает тебя дохуилион различных возможностей, чтобы ты не писал свой костыль для каждого пука. Хочешь регистрацию - вот тебе хуйня в 3 строки, хочешь быстро выдавать данные - вот тебе сериалайзер, вот вьюшка и т.д.
416 1663861
>>63857
понял, спасибо, броу! Это апи, через которое все мои штуки буду работать.
417 1663864
>>63817
Тебе надо просто вывести по 8 символов или где-то их еще хранить?
418 1663867
>>63839
3 атрибута у range? Это как и нахуя?
419 1663872
>>63867
Очевидно потому что могу
420 1663873
>>63867
Там та же нотация, что в слайсах.
421 1663877
>>63867
3-ий аргумент - шаг в range, а нахуя додумай сам
422 1663926
>>63839
Спасибо, а то я дебич
423 1663975
pandas
424 1663992
Как сделать, чтобы Python загружал свои модули не из папки например /usr/local/lib/python3.8, а из например zip-архива?
425 1664048
>>59457
Тьотя покажите ваш бэкэнд...
426 1664051
>>63992

> из зип-архива


Использовать библиотеку для архивации, распаковать в $TEMP (лялекс) или %TEMP% (шиндовс) и импортировать либу оттуда не вариант?
мимо не умею программировать
427 1664052
Помогите выбрать направление плез. Мне сейчас 18 лет и хочу либо в геймдев, либо что-то с вебом. Только без рофлов, по серьезному.
428 1664081
>>64051
Я скорее изнасилую дом престарелых, чем так сделаю.
429 1664094
>>64081
А ты думаешь библиотеку в зип архиве можно прочесть, не распаковав? Как ты себе это представляешь?
а как ты дом изнасилуешь...
430 1664106
>>64052

>хочу либо в геймдев


>без рофлов


Выбери что-то одно. А так выбирай ML.
431 1664108
>>64094
Можно ли не в %TEMP%, а в память процесса распаковать? Я просто хочу один экзешник чтобы в нем все было.
432 1664122
>>64108

> Можно ли не в %TEMP%, а в память процесса распаковать?


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

> Я просто хочу один экзешник чтобы в нем все было.


У вас там такая хорошая документация в петоне https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.read мне очень нравится. Вот эта штука распаковывает в оперативу.
Илм просто pip install auto-py-to-exe эта программа умеет компилировать (компилировать ли, учитывая что это питон?) весь твой код в один exe и я так пынемаю библиотеки там будут, но тебе лучше самому потестить.
433 1664128
>>64122
А как сделать, чтобы уже Py_Initialize() брал эти файлы из оперативы, а не с твоего рам-диска?
434 1664131
Что поштудировать из фронт-энда (жс), чтобы адекватно представлять себе фулл-стак разработку в вебе? Синергию бэка и фронта так сказать
Глубоко залезать смысла нет, но чтобы была возможность строить годную обвязку вокруг restful бэка? в жс-треде какие-то дегроды сидят и ничего толкового не советуют
435 1664139
>>64131
читай книгу чувака из джаваскрипт ру, а потом офф доку любого фрейма. тот тред js мертв, там одни собаки гнилые. А тут интеллектуалы, которые всегда помогут советом/ответом
436 1664153
>>64108
Pyinstaller, не?
437 1664162
>>64052
на геймдев мало вакансий и питон там не нужен
438 1664167
>>63460
ебать, если такие "тестовые" дают вкатышам, то нахуя я сижу и дрочу всякие постгресы с редисами...
пойду тоже украду сделаю классное резюме и начну спамить всем подряд!
439 1664174
>>64167

>пойду тоже


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

Программа должна считать, сколько раз в строке S встречается подстрока "12". Какой оператор надо вставить вместо многоточия? Вводите ответ без пробелов.
https://ideone.com/SxBeg6
441 1664181
>>64180
Я понимаю, что там будет p = ..., и это все, что я понял
442 1664183
>>64180
string.count('12')
443 1664185
>>64183
Мне именно тот код дополнить надо, если бы я сам писал, то так бы и сделал
444 1664187
>>64180
>>64185
p = S.index('12')
ненаход дает -1, на что и проверка.
445 1664189
>>64187
Т.е. find, лол.
446 1664196
>>64187
>>64189
Не допер сразу. Видимо, пора спать уже
Спасибо
447 1664273
Сап. Захотелось написать Game of life, с возможностью паузы и добавления новых живых клеток мышкой. Но так как гуи я почти не делал и вообще дно в этом плане, то есть пара вопросов:
1. На чём будет проще всего написать: PyGame, PyQt, Tk или вообще EasyGui какой-нибудь?
2. Я вот понимаю, что для игры нужна будет сетка, какой-то двумерный массив или что-то в этом духе. В голове я понимаю как это работает, типа вот каждая клетка в сетке отдельно работает, проверяется на живую/мертвую и тд и тп. Но у меня никак не складывается в голове реализация всего этого. Как это поле показать на экране? Как сделать так, чтобы каждая клетка на этом поле отдельно реагировала? Вот реализацию вообще не могу понять, как ни стараюсь.
448 1664283
>>64153

>Pyinstaller, не?


Дык он делает так же, как мне анон выше советовал - просто распаковывает все в темпы.
449 1664291
>>64273
Ситуация хранится и обрабатывается в структуре, потом отрисовывается на канвасе или там на каких-то контролах.
Клики можно ловить и получать координаты.
450 1664292
Я тут писал про перенос пакетов Питона: >>63518

В общем, запилил виртуальную среду и перенес папку venv с одного пк на другой (оба под виндой). Только вот как мне добавить эту виртуальную среду в PyCharm?.. После меню add new environment он мне кидает какую-то ошибку SDK и заодно утверждает что это Питон 2.7 (хотя он 3.7 ...)
Как подключить эту venv в качестве интерпритатора проекта?
451 1664296
>>64283
Я не советовал, я просто предположил, что так можно
452 1664299
>>64292
Ты ебанутый? Ну вот честно, папки он блядь переносит. Виртуальное окружение это не та вещь, где ты можешь просто перенести папку и думать что все будет окей. По твоему когда ты устанавливаешь пакет он просто разархивируется? Нет. Он конкретно под твою систему устанавливается, пишет всякие константы, которые зависят конкретно от твоей машины. Я тебе более того скажу, если ты venv передвинешь из одной папки в другую он сломается. Так что давай, кабанчиком скачиваешь все пакеты и локально их устанавливаешь и сюда больше не пишешь свои тупые вопросы.
453 1664303
>>64292
Ебать ты, я прям представил себе линуксоида который добавляет файлы в /usr/bin чем-то кроме пакетного менеджера
454 1664309
>>64292
Vscode автоматом новые env подхватывает, хы
455 1664315
>>64299

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


Открой для себя опции --relocable и, для некоторых других случаев, --alwayas-copy.

--always-copy недостаточно для полной переносимости, хоть там в окружение очень много чего копируется, но если та же версия питона в системе установлена, но переноситься должно.

Это неправильный путь, конечно.
456 1664382
Посоны, твердо решил носить Черный Пояс, но его от него меня отделяет совсем чуть чуть - я не могу установить модули от codewars!

как это дерьмо задумано?

Вот дока : https://github.com/Codewars/codewars.com/wiki/Codewars-Python-Test-Framework-V2

захожу на страничку и вижу шаблон задания :
def create_phone_number(n):
#your code here

внизу есть шаблон тестов:
Test.describe("Basic tests")
Test.assert_equals(create_phone_number([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]), "(123) 456-7890")
Test.assert_equals(create_phone_number([1, 1, 1, 1, 1, 1, 1, 1, 1, 1]), "(111) 111-1111")
Test.assert_equals(create_phone_number([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]), "(123) 456-7890")
Test.assert_equals(create_phone_number([0, 2, 3, 0, 5, 6, 0, 8, 9, 0]), "(023) 056-0890")
Test.assert_equals(create_phone_number([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), "(000) 000-0000")

как локально эти же строки протестировать?
делаю так :
import codewars_test - без ошибок
Ну а как создать объект? или у них тут метод класса ?
или они вообще пидоры и тестируют старым фремворком которому два года?
15533354161420.mp4879 Кб, mp4,
1920x1080, 0:03
457 1664386
ебал короче маму их. скачал и слепил модуль отсюда https://stackoverflow.com/questions/40996317/codewars-python-tdd-offline

что у них там происходит? не могут новичкам сделать документацию?
458 1664457
Немного не по теме вопрос.
Допустим я изменил файл_1 и файл_2.
Как я в комментарии к коммиту могу написать отдельно, что я сделал в файле_1, и отдельно, что я сделал в файле_2?
Или придется их по-отдельности коммитить?
459 1664461
>>64457
разумеется, единое изменение в разных файла не следует коммитить двумя коммитами в разных файла.
коммит - смысловая единица развития кода.
460 1664463
>>64457
Сначала создаешь отдельную ветку для изменений первого файла, называешь ветку как рефакторинг_файла_имя_файла, в нее заливаешь изменения этого файла. Так же поступаешь со вторым файлом.
Потом объединяешь ветки, в коммите пишешь причину объединения как общую суть твоих изменений.
В итоге мержишь изменения в мастер.

Я понимаю что по началу может показаться довольно сложным, но лучше сразу привыкать так делать, чтобы на работе не бояться работы с гит.
461 1664469
>>64461
>>64463
Спасибо огромное ^^
image.png3 Кб, 362x112
462 1664470
Почему после точки не выдает методы экземпляра объекта в автодополнение?
463 1664501
>>64470
Pylint стоит?
464 1664507
>>64463
ты тралишь?
и что потом происходит с этим ебическим набором бесполезных имен веток ? они не мешаются в дальнейшем?
Почему нельзя просто ебануть коммит в dev?
465 1664549
Есть скрипт, проходящийся по текстовому файлу регексами, находящий нужные фразы и записывающий их вместе с их координатами (просто индекс первого символа строки) в текстовом файле внутрь массива. Есть ли питоновские библиотеки или, может быть, встроенный функционал, позволявший бы теперь взять - и заменить найденные строки на другие, мануально задаваемые?
Погуглил - немного удивился, что 100% ответов на похожие вопросы предлагают какие-то несусветные костыли, хотя, казалось бы, задача должна быть распространённой. Может, кто-то работал с чем-то подобным?
466 1664564
>>64549
replace()
467 1664580
>>64564
Мне не подойдёт, потому что replace() возвращает целиком изменённую строку, а у меня в среднем файлы на 100k символов и в каждом по 80-100 подстрок для замены. Тут нужно как-то напрямую в файле аппендить новую строку по индексу, удаляя старую.
468 1664635
>>64580
открыть файл в append моде и гулять по нему seek()?
469 1664662
В чем разница между стандартным драйвером для БД и ODBC драйвером, кроме подключения последнего через жопу?
470 1664675
>>64662
В смысле вот есть mysql-connector-python, а есть pyodbc, и никаких бенчмарков для последнего, никаких преимуществ не написано. Нахуя оно надо?
471 1664676
>>64635
Тут уже возникает вопрос, как аппендить по этой позиции.
Наверное-таки, придётся делать неэффективный костыль через replace().
472 1664739
Анонче, я не программист, но иногда по работе пишу простейшие скрипты. Сейчас чет застрял, нужна ваша помощь. У меня есть большой csv-файл с содержимым datetime - число, типа вот такого:
2020-02-14 00:00:0025
2020-02-14 01:00:0027
2020-02-14 02:00:0026

Таких значений у меня на несколько месяцев, и мне нужно посчитать среднее количество за час дня по этим данным, т.е. если 02-14 в 00:00:00 было 25, а 02-15 в 00:00:00 было 35, то по итогу за время 00:00:00 мне нужно иметь 30. Как это сделать?
473 1664741
>>64739
\t откуда-то вылезло, там пробел:
2020-02-14 00:00:00 25
2020-02-14 01:00:00 27
2020-02-14 02:00:00 26
474 1664751
>>64739

> среднее количество за час дня


Нихуя не понял
475 1664757
>>64751
Ну в дне 24 часа, каждому часу соответствует некое количество. В 00:00 часов - 20, в 01:00 час - 25 и т.д.
У меня таких дней несколько, и мне нужно посчитать среднее значение за каждый час суток с учетом всех дней.
Чего блядь.webm173 Кб, webm,
640x360, 0:01
476 1664765
>>64757

>В 00:00 часов - 20, в 01:00 час - 25 и т.д.

477 1664767
>>64757
using System;
using System.IO;
using System.Linq;

namespace laba1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var data = File.ReadAllLines(@"c:\dev\data.txt").Select(x => x.Split().ToArray()).GroupBy(x => x[0])
.Select(x => Tuple.Create(x.Key, x.Average(y => long.Parse(y[2])))).ToArray();
foreach (var datum in data) {
Console.WriteLine($"{datum.Item1}, {datum.Item2}");
}
}
}
}
image.png89 Кб, 565x1605
478 1664772
>>64765
Бля, кто здесь тупой, ты или я?
Есть пикрелейтед таблица. Нужно получить среднее от суммы рядов 1, 25, 49, 73, 97 - это будет среднее количество в 00:00 каждого дня.
Нужно получить среднее от суммы рядов 2, 26, 50, 74, 98 - это будет среднее количество в 01:00 каждого дня.
Нужно получить среднее от суммы рядов 3, 27, 51, 75, 99 - это будет среднее количество в 02:00 каждого дня.
image.png45 Кб, 1054x466
479 1664774
>>64772
Тогда так
using System;
using System.IO;
using System.Linq;

namespace laba1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var data = File.ReadAllLines(@"c:\dev\data.txt").Select(x => x.Split().ToArray()).GroupBy(x => x[1])
.Select(x => Tuple.Create(x.Key, x.Average(y => double.Parse(y[2])))).ToArray();
foreach (var datum in data) {
Console.WriteLine($"{datum.Item1}, {datum.Item2}");
}
}
}
}
480 1664780
>>64774
Я не знаю си, мне знаком только питон.
image.png28 Кб, 979x512
481 1664783
>>64780
Это C#, у меня нет интерпретатора питона под рукой. Но это решение твоей проблемы, бро
482 1664802
>>64783
Ладно, спасибо, прогоню им.
image.png17 Кб, 517x362
483 1664830
>>64739
Что-то вроде этого.
484 1664837
>>64830
Спасибо за помощь, но там нет date и time, это одна колонка datetime напрямую из БД, т.е. идет 2020-04-14 00:00 | 24.
485 1664838
>>64837
Я обосрался, там сплит по пробелу. Тогда все правильно. Спасибо!
486 1664842
@dataclass -- это как в других языках struct?
487 1664872
>>56865 (OP)
Летом будет год как вкатился в backend разработчики, стек Python/Django/Postgresql, опытные анончики посоветуйте куда дальше двигаться, как быстрее стать мидлом? Пока могу по ТЗ написать сервис (Rest/Soap) или модуль какой-нибудь, есть опыт интеграции с разными сервисами. Куда двигаться дальше?
488 1664902
>>64507

>и что потом происходит с этим ебическим набором бесполезных имен веток ?


Зачем их хранить? Удаляешь.
489 1664909
>>64872

>как вкатился в backend разработчики


>>64872

>как быстрее стать мидлом


А чего не сеньером сразу после школы \ завода \ нужное подчернуть?
490 1664978
>>64842
это как в других языках dataclass
491 1664992
>>64580
re.sub()
492 1665000
>>64549
Ну блин, тут безотносительно Питона как бы. У тебя есть координаты кусков в файле, которые надо заменить на что-то другое. То есть в принципе у тебя задана последовательность кусков из исходного файла оставить-заменить-оставить-заменить-оставить. Просто пробегаешь их в цикле последовательно. То, что оставить, пишешь во второй файл, вместо того, что заменить, пишешь во второй файл то, на что заменить.
493 1665009
>>56865 (OP)

Бот телеграма BotFather

ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None))

В Код писал соксы и прочее не помогало особо.

TLS 1.2 Как то ещё может быть связана?
494 1665021
>>64580

>Тут нужно как-то напрямую в файле аппендить новую строку по индексу, удаляя старую.


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

Решение тебе уже предложили, поточно читать и записывать в новый файл. Но, если у тебя файлы ВСЕГО по 100к символов, но проще всё в памяти делать. Блин, это и 20 лет назад было проще, когда у компов было в 1000 раз меньше оперативки, чем сейчас.
495 1665031
>>65009
Удаленному хосту что-то не понравилось и он закрыл сокет. Может версия протокола не понравилась, тут надо как-то логирование сделать и посмотреть. В реализациях TLS там же вроде настраивается, какие протоколы можно использовать.
496 1665073
>>64167
Да это тестовое для бесплатного задания за нихуя. Прост я сам не умею себе задачи придумывать, а так хоть мотивация небольшая будет пописать код, будто я рил погромист. Хотя она всё ещё не ответила, мб и его хуево сделал, лел.
497 1665081
>>65073
Лел, прямо сейчас ответила, мб в треде сдит.
Написали, что вместо result = re.sub(' +', ' ', text).strip().split() можно было бы использовать просто result = text.split() и что я не догадался выводить какое-нибудь уникальное сообщение, когда в теге вообще нет текста. И что писать "Код не валиден" не красиво.
Так что не заслужил бесплатного задания.
498 1665134
Посоветуйте чат-бота для твича. Пробовал twitchio - нихуя не получилось его запустить. Данные все верные указываю, на них не ругается, но ругается на тайм-аут соединения и что к каналу подключиться не может.

Сойдут и боты с самым базовым функционалом.

Алсо, что лучше использовать из виртуального окружения - virtual env или pip env? Последний не понял как настраивать в PyCharm, в консольке вроде настраивается, pip файлы создаёт.
499 1665201
>>65009
Ты хоть через прокси это делал?
500 1665234
>>64549
А ниче что есть re.sub ?..
501 1665240
>>64767
ебать дотнетчик порвался.

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

Но как же intertools.groupby и прочие ?
2chfreqwords.png1,6 Мб, 1288x1288
502 1665304
На моём любимом питончике спарсил комменты с двача и сделал облако слов, пиздец двачеры дегенераты...
503 1665327
>>65304
Заебись плакат/обои получатся. Сделай облако в формате 16:9. А можешь спарсить только /pr?
504 1665360
>>65304
типичный пример хуевого датасаенса, нет фильтров слов-паразитов.
505 1665365
Программач, нужен совет.
Сам не программист, но для автоматизации всяких разных процессов изучил питон и писал всякие консольные скрипты на чистой функциональщине. Потом стал добавлять гуй для удобства пользователей: сначала tkinter, потом перебрался на QT из-за необходимости поддержки драг-н-дропа в интерфейс.
Собственно, пока функций было не особо много, то сильно не заморачивался, и использовал один класс, куда сваливал и работу с интерфейсом, и свои функции. Но комбайн разрастается, и стало понятно, что куча функций в одном классе/файле - это не очень удобно.
Парадигма ООП мне еще не до конца понятна, и пока раздумываю, можно ли фигачить какие-то универсальные классы для своих нужд.
Т.е., чисто для примера: при нажатии на кнопку происходят определенные запросы через API, затем идет обработка локальных файлов, потом обмен с sqlite, а потом вывод информации в интерфейс.
Как бы это все более-менее удобно реализовать с минимумом геморроя? Делать отдельные классы для работы с АПИ и БД с набором функций в них? Функции довольно захардкоржены, т.к. не очень получается для работы с разными апи использовать универсальные методы, ибо один сервис требует получение ключа одним способом, другой - другим и т.д.
Или есть смысл описания функций в отдельных файлах с последующим подключением?

Немного сумбурно описал все, но, надеюсь, будет в целом вопрос понятен.
506 1665367
>>65365

>изучил питон


громкое заявление, на самом деле. Скажем так, поставил и немного разобрался с возможностями.

*фикс
507 1665371
>>65304
Чем парсил?
Каков объем запарсенного контента?
Сколько заняло времени?
Сталкивался с временным баном по IP из-за превышения числа запросов?
508 1665388
>>65365
Почитай про MVC и прочие деления логики. Многое уже придумали за тебя.
Для работы с классами тебе нужно представлять какой-то элемент программы, как объект, вот у тебя есть интерфейс, у него могут быть только такие-то поля, свои методы и открытые методы, внутри в интерфейсе тоже что-то может быть, а вся работа программы заключается во взаимодействии между различными классами, каждый из которых предоставляет свой API.

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


Кнопка может быть экземпляром всех кнопок в интерфейсе, он дает запрос другому классу (можно использовать events для этого), экземпляр класса реагирует, внутри себя шаманит (приватные методы), и отдает что надо
509 1665401
>>64872
soap?
На нем что-то кроме дремучего легаси есть?
510 1665410
>>65371
делал запросы через requests к api двача, миллион сто тысяч комментов со всех бордов из 5 миллионов возможных, парсил часа два, tqdm предскаызвал 20 часов. банов небыло хуярил запросы без задержок вообще, но запросы медленно и так шли, примерно 1 запрос за 2,2 сек. а мне надо было 20к запросов отослать.
>>65360
Да пахую вообще, там было сколько то стоп слов но нахуй оно мне надо фильтровать контент для двачеров
>>65327
могу, может быть ночью сделаю если не забью
511 1665415
>>65410
Почему асинхронку не юзал через aiohttp?
512 1665433
>>65415
я не умею вообще не знал
513 1665436
>>65415
я не умею вообще не знал не думал, по быстрому написал, запустил и пошел пельмешки готовить
514 1665444
>>65415
Потому что за столько запросов асинхронщиной его бы забанили нахуй
515 1665510
Можно ли в Джанго поместить одно приложение внутрь другого (командой manage.py startapp)?
517 1665746
>>65738
Мое почтение!

Ради лулзов запарсь еще /dev
518 1665751
>>65746
ахаха кек, ладно
519 1665767
>>65738
Можешь сгруппировать явные синонимы и убрать глаголы? Ничего не понятно об обсуждаемом из этих картинок
520 1665775
>>65746
Там же на имгуре остальные

>>65767
Могу конечно, но как нибудь потом, а может и нет
521 1665803
>>64838
освой pandas, там есть парсер дат при загрузке файла, и еще дохуя функций для работы со временем
522 1665873
>>65240
Шарповский linq это питоновские comprehensions и sqlalchemy
524 1666060
>>65304
Сурс в студию.
image.png218 Кб, 679x864
525 1668414
Уважаемые, программисты, нужна ваша помощь. Есть 3 задания, которые нужно сделать на пике. Так как я в программировании вообще не шарю прошу вас, сделать это. Не за бесплатно, конечно. Есть всего 700 рублей.
526 1669515
>>68414
Выглядит просто, стажеру дата саинтисту такое можно дать как тестовое
527 1679086
>>68414
это же на уровне шкило
528 1681648
>>65775
Как?
530 1689656
>>81778
Спасибо!
Тред утонул или удален.
Это копия, сохраненная 13 августа 2020 года.

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

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