Этого треда уже нет.
Это копия, сохраненная 18 ноября 2019 года.

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

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

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

Книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem
Очень много книжек: https://drive.google.com/drive/folders/13YaFijvuH4dtv-PjUKVWLQ7ZIqXIfCLK

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/
https://pastebin.com/
https://pyfiddle.io/
https://www.codepile.net/
#######################################
Вопросы-ответы:
А стоит ли читать Лутца, том номер 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/ (нужно знать ангельский или уметь пользоваться переводчиком)

Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
2 1494201
>>1494152
попробуй json.dumps(... , ensure_ascii=False)
3 1494203
>>1494145

>Сохраняю данные в json, кириллица выводится вот так


>" \u0413\u0430\u043b\u043e\u0448\u0438", что с этим делать?


>>494201
4 1494207
>>494203
Все правильно, в файле у тебя записана строка как набор юникод-символов, при печати она конвертируется в utf-8 или что там у тебя.
5 1494267
Месяц назад выучил питон и джанго за месяц же, теперь почти нихуя не помню спасибо тебе, вовклассик, блядь
Ага, чтоб освежить память нужен хороший курс по джанго, о пока из нагугленных на русском языке вижу только уроки от мозиллы.
Может есть че у вас?
видеоуроки сразу нахуй
мимо тот самый нубас
6 1494285
>>494267

> выучил питон


За месяц можно с нуля японский выучить. Но не программировать научиться.

>>494267

>чтоб освежить память нужен хороший курс по джанго


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

Просто реализуй их учебное приложение.
7 1494417
>>494285

>За месяц можно с нуля японский выучить


死ぬダウン。
За месяц. А не пойти бы тебе нахуй? Обрыганец с двощей.
8 1494422
>>494267
Хз насчёт мозилловского курса. Я вот пару недель назад тыкался в нём и несколько штук были out of date, так что пришлось тутор переделывать самому.
Так что двачую вот этого и реквестирую хороший тутор по Джанго, чтобы освежить в памяти всю хуйню.
9 1494425
>>494285

>За месяц можно с нуля японский выучить. Но не программировать научиться.


Где я писал что научился программировать?
Блядь, за прделами пыхатреда одни быдланы-илитисты сидят.
10 1494438
>>494422
Там вроде весь курс по 1.9. Мне нормально было когда использовал его на свежей джанге, например. Хочется другой почитать, и не хочется лезть в дебри офф мануала, хочу чтоб за ручку меня водили.
11 1494452
Че там щас актуально на питухое для веба? Все та же джанга? Мож че поудобнее есть?
12 1494456
>>494452
Если расшифровать код на латиницу можно анализировать psx аналог исходного слога или оно само распознает иллюстрации к печати ?
13 1494472
>>494452
Что конкретно тебе нужно и чем тебя не устраивает Джанга?

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

Но современные тренд в том, чтобы делать сайты как приложения, реактивные, с потоковым обменом данными и т.п. Нужна нормальная асинхронность. Это уже не для Джанги. В тренде асинхронные фреймворки, вроде aiohttp и tornado. Про торнаду не знаю, aiohttp массу асинхронных возможностей даёт, но немного кривоват, есть такое. И к Джанге прилагается коробка с кучей функционала (ORM, админка, управление пользователями и другое), а aiohttp почти как OEM.
14 1494483
>>494438
Так в официальном туториале тебя и водят. Пиздец двощеры, им разрабы дают хорошие официальные руководства - нет, не хочу, хочу чтобы индусы с медиума мне в рот какали.
Screenshot372.png48 Кб, 1365x695
15 1494707
16 1494921
Фух только что доделал тестовое задание, наговнокодил знатно, но функционал вроде реализован, вообще могут позвать на собес даже если тестовое не очень?
17 1494922
>>494921
В теории возможно всё.
Снимок экрана 2018-09-07 в 16.57.20 (2).png669 Кб, 1920x1080
18 1495289
>>494130 (OP)
Народ, есть у кого на примете хороший ресурс с дачами, чтобы разные разделы python затронуть? Хотелось бы некий аналог https://hyperskill.org/
20 1495307
Ух, запилил парсинг тредов и полнотекстовый поиск по ним. Сделал небольшую таблицу для вопросов/ответов.
Небольшой уютный сайтик почти готов.
21 1495329
Сап двач, реквестирую видева по джанге ну туториал, дайте годноты на русском, спасибо.
JeviBaUZCGU.jpg276 Кб, 1400x934
22 1495408
>>495290
Слыхал о нём, но сейчас не мог вспомнить название. Опробую, спасибо!
23 1495409
>>495307
На чём пилил?
24 1495419
Как на питоне сделать принт, чтобы в новую строку писались только 2 символа?

he
ll
o
wo
rl
d
25 1495458
>>495409
Flask/postgres/celery/aiohttp
Сейчас все в uwsgi+nginx оберну, куплю доменное имя и https прикручу.
26 1495460
>>495329
На русском нет. Есть только книга на русском и доки на русском.
27 1495605
>>495329
Олег молчанов.
28 1495615
Знакомый забашлял бабла в GeekBrains и пошел туда на курсы, в конце там еще и сертификат дают. Насколько валидна эта тема? Профит будет?
Screenshot 8.png14 Кб, 437x221
29 1495671
30 1495707
Какие перспективы у Питона в игростроении?
Инб4 визуальные новеллы и пасьянс.
sage 31 1495738
>>495615
Ору
32 1495768
>>495738
С чего это?
33 1495776
>>495707
Никаких. Только как скриптовый язык.
34 1495784
Привет, двачеры
У меня есть вопрос
Нужно спарсить ссылку на изображение
Структура изображений каталоге
<a href=a class=b>
<img src=url>
</a>

Как мне с помощью bs4 в питоне создать условие на парсинг:
Ищи тег img с классом b, и вощвращай мне значение атрибута src?

Пробовал findAll("a", {"class":"b"} но вернул только пустые значения
35 1495857
>>495615
Он лох, на сертификаты вкатывальщика никто не смотрит
36 1495864
>>495857
>>495615
По факту вся это раздатая ебень для околовкатывальщиков - отдельная индустрия. Кто не может делать деньги в Ойти делает деньги на вкатывальщиках
37 1495874
>>495864
Старый добрый инфо-наебизнес
38 1495916
>>495615
Ты тот самый заводчанин, который всё хотел пойти на курсы какие-нибудь? Начал сомневаться в покупке?
39 1495933
Как сделать так чтобы потоки выполняли одну функцию одновременно, без расхождений, или есть что-то для более удобного одновременного выполнения?
40 1495938
>>495707

> визуальные новеллы


На этом, пожалуй, и всё.
Но если задаться целью то можно 2д игори делать.
41 1495939
>>495933
Ты уже определись. Как тебе одновременно и что значит "без расхождений"?
42 1495943
>>495939
Есть цикл, и два потока выполняют этот цикл, мне нужно чтобы итерации цикла в 1 потоке совпадали с итерацией цикла во 2 потоке
43 1495946
>>495943
Меняй архитектуру либо же пытайся прикурить сигналы/очереди к потокам своим. То есть настрой общение между ними, что бы поток 1 знал о состоянии потока 2. Но пересмотреть архитектуру - более правильное решение, как по мне.
44 1495947
>>495946
Я просто не вижу других вариантов, нужно обрабатывать несколько циклов одновременно, иначе никак.
45 1495948
46 1495973
>>495947
Что конкретны ты пытаешься сделать и зачем тебе многопоточность?
47 1495988
>>495938
>>495776
Питоноподобный язык использовался в Unity до недавнего времени.
48 1495991
>>495988

> Питоноподобный язык использовался в Unity до недавнего времени.


Там подобие JS было. Да и то его ещё с бородатых версий рекомендовали не использовать, пока не выпили окончательно.
49 1496004
Твердо и четко, фласк или джанго?
50 1496009
>>496004
И то и то.
51 1496010
williamsmile.png504 Кб, 560x403
52 1496016
Знаю: Django, Django Rest Framework, немного aiohttp asyncio (опыт на продакшене), pytest, сталкивался со всякими редисами-реббитами (но без тонкой настройки), могу написать простенький docker-compose.yml

Что мне еще надо для того чтобы получить свои 160к по приезду в Москву?
53 1496017
>>496016
Пока можешь получить лишь писькой по фейсу
54 1496018
>>496016
БД и куча опыта.
55 1496026
>>496018

>БД


Создавать/редактировать постгресные вьюхи на лету через код пойдет?
А еще я раскурил оконные функции

>куча опыта


2 года в норм конторах (ci/cd код-ревью, продуктовые, головной опыт не в Росии, так что у меня еще и англ разговорный) (всякие студенческие подработки не учитываем)
56 1496034
>>496026

> Создавать/редактировать постгресные вьюхи на лету через код пойдет?


Нет.
Надо уметь проектировать модели.
И нахуярить архитектуру приложения.
Если ты собрался не на галеру, то твой английский не важен.
2 года не так уж много, если честно. Проанализируй рынок труда.
CI/CD конфиги сам писал? Что по тестированию? В докер заворачивал приложение своё? Постгрес в докере запустишь или на железке?
57 1496041
>>496034

>CI/CD конфиги сам писал?


нет

>Что по тестированию?


на одном проекте юниттест, на другом-питест
моки-хуеки, все дела.

>В докер заворачивал приложение своё?


Конечно, с самого первого пет-прожекта.

>Постгрес в докере запустишь или на железке?


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

А еще я могу в типизацию.
58 1496050
>>496016

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


Научиться кодить? Я бы тебе максимум 50к заплатил за такие знания. А точнее их отсутствие.
59 1496052
>>496050
Я Большой Дядя с большой писей, черт ты галимый
"Заплатил бы" - будешь шлюхам рассказывать, сынуля. Тон блять нормальный подбери
60 1496057
>>496041

> нет


Есть куда расти.

> на одном проекте юниттест, на другом-питест


> моки-хуеки, все дела.


Ты писал? Смог бы с нуля накидать план тестирования и реализовать?

> Ну понятно что по-хорошему надо на железе


На той же где и веб-приложение?

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


Есть куда расти.

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


Схуяли?

> А еще я могу в типизацию.


Можно я тебе отсосу?

Поясню кратко про что я:
Что бы получать 3к$+ тебе надо быть самостоятельной единицей. Принёс манагер бизнесс-требования и дал тебе платёжную карточку. Ты по бизнесс-плану накидал архитектуру приложения и спроектировал модели, потом пошёл на amazon/DO и купил там серваки под веб-приложение, если надо, ещё и под БД отдельный сервак купил(ну или у DO взял в аренду их постгрес и не паришься). Написал приложение, написал тесты для него, что бы спать спокойно(да, есть тестироващик, но я бы надеялся на себя). На гитхабе/гитлабе/битбакете настроил пайплайн. Подключил сентри. Настроил голый сервер с убунтой/дебианом под свои нужды. И это только начало пути, ибо дальше идёт поддержка, расширение и обновление.
61 1496059
>>496057
Ну про постгрес я погорячился, ибо тебе надо аргументированно выбрать БД, ведь может тебе типа КликХауса или Монги что-то надо, к примеру.
62 1496061
>>496052
Если ты не знаешь своей цены и что надо учить, то ты ещё не готов для нормальной работы. У нас таких как ты долго не держат. Если 2 года пинал хуи и потом идёшь на двачи спрашивать что ещё надо знать, то сразу всё понятно. Ты где-то на уровне студента, прочитавшего пару книжек и не понимающего что ему надо будет в реальных условиях знать.
63 1496074
>>496057

>Ты писал?


Ну а как в 2к19 без тестов? Я просто ревью не пройду. Ты про юниты или ты мне предлагаешь на селениуме пописать? С ним у меня был конечно опыт, но я не очень-то стремлюсь быть человеком-оркестром.

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


Ну а что там сложного? В идеале тестируем вообще все, но самое главное чтобы были функциональные тесты (реже надо рефакторить чем юниты) на самые основные функции, чтобы они ломались с большой вероятностью если что-то где-то неправильно. Пишем имиджборду - значит по-любому надо тестировать end-to-end создание нового треда с картинкой. Это будет 80% результата за 20% работы.

>На той же где и веб-приложение?


Я видел оба варианта на продакшене.

>Есть куда расти.


Я по-максимому хочу срезать углы. Типа не учить фронтенда, и т.д.

>Схуяли?


На своих петпроджектах обрабатывающих 1 запрос в час все мои базы работали прямо из докера.

>Можно я тебе отсосу?


Ну а я для кого старался?

>3к$+


Падажжи, это через годик, сейчас пока что 2к$+

>надо аргументированно выбрать БД


Мы собираем температуру по метеостанциям по всей стране? Если да - кликхаус (на отдельном микросервисе-мобирателе, как дополнение к основному постгресу), если нет, то постгрес. Монго не нужен, в постгресе есть джсонб с индексами.
64 1496083
>>496074

> Ну а как в 2к19 без тестов?


Сложно, но практикуют некоторые, вот и спрашиваю.
Я не про селениум, не ссы.

> Я по-максимому хочу срезать углы. Типа не учить фронтенда, и т.д.


Ну CI/CD это всё же бэкэндовская задача, с фронтом всё ясно то.

> все мои базы работали прямо из докера.


А, ты про это.
65 1496094
>>496083

>у CI/CD это всё же бэкэндовская задача, с фронтом всё ясно


У меня было в планах кубернетесы изучить. На что время лучше потратить?
66 1496107
>>496057

>Поясню кратко про что я:


>Что бы получать 3к$+ тебе надо быть самостоятельной единицей. Принёс манагер бизнесс-требования и дал тебе платёжную карточку. Ты по бизнесс-плану накидал архитектуру приложения и спроектировал модели, потом пошёл на amazon/DO и купил там серваки под веб-приложение, если надо, ещё и под БД отдельный сервак купил


Ты про каких-то фрилансеров фуллстеков пишешь, которые в одном лице совмещают бэк, фронт, спецов по данным, тестеров, девопсов и менеджеров.
В реальности за такое не очень готовы платить, когда готовы, идут в ООО какое-нибудь или у себя команду специалистов собирают.
67 1496131
>>496057
бред какой-то
кому такой кадр нужен, никто не поверит что он в одного все это сделает
photo2019-10-1402-52-45.jpg13 Кб, 431x203
68 1496152
>>495973
Секвенсор, надо расставлять точки на дорожке и чтобы на где точка стояла игрался звук, допёр только до того чтобы каждую такую дорожку в отдельном потоке прогонять через цикл фор в поиске места где звук играется
69 1496155
>>496152
Я же тебе писал туториал в ньюфаго треде, а ты его заигнорил.
70 1496173
>>495671
Красиво.
71 1496214
в общем очередной вкатывальщик репортинг ин. в моем зажопье пока лишь 5 вакансий на питонщика ВООБЩЕ, про джунов я молчу. так вот ответили лишь 3, и лишь 1 компаха готова пригласить. ив самой вакансии и на собесе сказали что возможно придется изучить ruby и соответственно ruby on rails. так вот: стоит ли туда идти или вообще лучше не соваться т.к. это кал ебаный?
72 1496215
>>496107
Ну нахуй, что из этого выходит за грани бэкэнда?
Если говорить все же о небольшой компании, т.к. у большой, чаще всего свое железо и его покупать не надо, нужно лишь отправить письмо.
>>496131
Чому?

Аноны, не поверите, везде где был на собесах и везде где работал, спрашивали именно про это. Тесты/ci/cd/git/DB/Unix/docker. И не только лишь галеры были, но и продуктовые компании.

>>496094
Кубернетосы ок, тоже надо. Но как по мне - я бы потратил время на ковыряние чистого линупса и траблшутинга. Что бы у тебя не вызывало проблем настройка чего-то вне докера, а так же решение различных траблов с системой.
73 1496216
>>496214
Че умеешь, че знаешь? Мне как вялому вкатывальщику с мухосраней интересно, например
74 1496222
>>496216
ну питон соответственно, sql, джангу и фласк (есть пара сайтов в портфолио на том и на том), html css соответственно чтобы это вывести. пока что на этом все.
75 1496224
>>495419
a = "mochagovno"
for index in range(len(a[::2])):
print(a[index2: index2+2])
76 1496226
>>496224
>>495419
Разметку рот ебал
https://ideone.com/ShXufb
77 1496227
>>496222
Чет изявое какое то
78 1496232
аноны в чем прикол эликсир и феникс фреймворков?
79 1496234
>>496227
ну да. просто не ебу че еще надо на самом деле. читал книги по питону, по алгоритмам. хуй знает че еще надо. но видимо надо, раз меня там лишь одни готовы пригласить
80 1496244
>>496234
Я бы пошел туда, похуй, даже за еду сидел бы там. Опыт бесценен.
81 1496385
>>496234
Redis, postgres, celery
82 1496392
чёт ваша кроссплатформа опять обосралась

https://2ch.hk/news/res/6125057.html (М)
83 1496396
>>496392
Ты наверно и не читал.

>в то время как в документации на glob указано, что порядок вывода не гарантируется

84 1496401
Сегодня пришло письмо от конторы 'тестовое передано тимлиду', госпаде как же мне страшно, я же так хуево там все сделал, теперь сидит ржет надо мной и говорит 'не такого мы не возьмем', а потом еще и всем коллегам покажет тип 'смотрите какую хуйню настрочил аххах'
85 1496403
>>496214
Мне бы тобой быть, у меня 2 вакансии всего, в одну 2 дня назад отправил тестовое жду ответа, хотя уверен что будет отказ, а во вторую вакансию нужен опыт + вышка ничего из этого у меня нет понятно хотя я все равно им кину, выбора то нет.
86 1496434
>>496403

>Мне бы тобой быть


не говори так никогда. я жил во время учебы в такой залупе где вообще нет никаких айти контор и нет никаких курсов даже чтобы чему то научиться. сейчас кнч получилось съебать из своего дальнезалупинска в другой усть-пиздинск, где с этим делом получше, но все же будь у меня возможности во время моего обучения то дал бы по съебам с шараги сразу же и пошел кодить
87 1496439
>>496214
мне кажется в твоём приложении выбирать не приходится
алсо имо рельсы перспективнее джанги которая вообще недоразумение какое-то
руби алсо няшнее питона
88 1496441
*положении
89 1496454
>>496439
и чем же ? джанго у всех на слуху и пиздато из за того что там вообще все есть из коробки. если не ошибаюсь то даже в пхп чтобы прикрутить админку надо поебстись, в то время как в джанге она прикручивается одной консольной командой. а в рельсах что? алсо какие есть проекты известные сделанные на рельсах?
90 1496469
Бля, под виндой при включении длинных имен файлов на сколько они могут быть длинными? Или это баг питона? Проверяю существование файла, он не выкидывает эксепшен, но при попытке создать кидает. Причем руками через проводник с этим именем создаётся. Ну и ебень же. Пофиксить можно?
91 1496475
>>496454
github? twitch? airbnb? кек
сколько тебе лет?
92 1496494
>>496475

>github? twitch? airbnb?


чет нагуглить не могу. видел только инфу про твиттер. скинь ресурс

>сколько тебе лет?


а это так важно?
93 1496545
>>496215

>Ну нахуй, что из этого выходит за грани бэкэнда?


Всё почти

Ты описал скорее админа-девопсника, а не программиста-бэкэндера.

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

В твоей схеме подразумевается, что у тебя девопс и программист в одном лице и других айтишников в фирме нет. Это несерьёзно.

Бэкэндер - это программист, который занимается в первую очередь программированием и реализует лишь часть функционала. Ему надо взаимодействовать с другими равными себе, с фронтовиками, админами, другими бэкэндерами. Работать на том, что есть, убеждать в каких-то своих решениях и технологиях и т.п.
94 1496573
>>496434
Я из пгт на ~15к человек, там нет такого понятия как программист вообще, ток комплюторщик который меняет картриджи в принтере и получает дай бог 10-15к. Я как матери сказал что программистом буду устраиваться, она сказала 'госпади это же нищета зачем тебе это?', благо щас в миллионик переехал.
95 1496576
Вообщем я прошел собес в веб-студию, но они там работают с битриксом и владелец скинул мне курс пройти, и через неделю к ним идти уже работать, но щас подвернулся вариант получше, уже питонистом, как сообщить работодателю с первого места, повежливее, что я не пойду к ним работать? Сам он мужик неплохой, как то жалко его так опрокидывать, не могу же я сказать что нашел другую контору.
96 1496577
>>496576
Так и скажи. Чем подробнее объяснишь ему тем больше добра ему сделаешь, потому что он узнает больше информации об окружающем мире и ему будет легче жить.
97 1496585
>>496577
Я не смогу сказать что нашел место лучше, это жестковато, есть какие-то еще варианты, чтобы мы оба не сильно расстроились?
98 1496587
>>496576
>>496577
Ты же бы не хотел чтобы тебя в работе отказывали молча? Гораздо лучше когда тебе объясняют, что именно ты не умеешь, и каких скилов тебе недостает до желаемого заработка.
99 1496589
>>496585

>смогу сказать что нашел место лучше, это жестковато, есть какие-то еще варианты, чтобы мы оба не


ЭТО БИЗНЕС

Безнес это как война, просто тут убивать нельзя.

Не говори ему, что его предложение о работе "херовое", это конечно обидно. Скажи детально что ты взвесил все плючы и минусы. Что другие технологии тебе интересны и т.п.
100 1496601
>>494130 (OP)
Сап, прогромач, вкатываюсь в прогинг, какую расцветку для IDE посоветуете? Тему надо брать темную, это я знаю, а какую подсветку синтаксиса намутить, чтоб было удобно и приятно глазу? Скиньте 16ричные коды цветов сюда
101 1496619
>>496589
>>496587
Ладно вывалю ему все как есть завтра.
102 1496628
>>496576
>>496619
Аноны правы, просто скажи, что нашёл более интересное для себя направление, в котором ты бы хотел развиваться. Это нормально. Это даже когда ты с работы сваливаешь нормально, к этому обычно адекватно относятся.

Оскорбительно тогда, когда ты говоришь, что нашёл место, где всё тоже самое, но только условия лучше, платят лучше или сама фирма лучше. Особенно если для тебя люди уже что-то сделали и ты что-то пообещал.
103 1496639
>>494130 (OP)
Други, как в Пистоне сделать так, чтобы при достижении неким атрибутом определенного порога экземпляр класса автоматически удалялся?
Допустим self.count превысил значение 10, значит этот объект self должен удалится
104 1496676
>>496639
В __new__ сделай счетчик. И если достигается 10, то объект не создавай новый класс. Т.е. не вызывай super(...).__new__(args, *kwargs)
105 1496677
>>496601

>Тему надо брать темную


Кто тебе это сказал? Темную ночью или вечером хорошо. Светлую днем хорошо.
107 1496713
>>496684
Ёпт, к чему такие сложности? Хуле не выйдет нормально удалить к чертям экземпляр?
108 1496732
>>496713
Зачем тебе его вообще удалять? Сделай декоратор, который чекает атрибут и посылает нахуй, если условие не выполняется.
109 1496733
>>496732
Генерируется большое количество подобных объектов, будет и удобнее с точки зрения юзера и с точки зрения производительности если ненужные объекты будут попросту удалятся автоматом как только счетчик переполнится
Смотрел на метод __del__ но хуй знает как через него заставить сборщик мусора гарантированно утилизовать экземпляр
110 1496743
>>496733

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


Поехавший что-ли? Кто тебя такому говнокоду научил?
111 1496750
>>496733
Оставь это сборщику мусора
112 1496752
>>496743
В С++ с деструктором бы прокатило

>>496750
Я хочу сам вызвать этот сборщик и сказать ему что убирать. С weakref, возвращаемой методом __new__ было прикольно, но смотрится по-уебански конечно
113 1496822
>>496752
Постоянно создавать объекты и удалять - это пиздец говнокод. Это где угодно плохо. Просто пустая трата ресурсов. ООП придумали не для того чтобы под себя срать.
114 1496829
>>496752

>Я хочу сам вызвать этот сборщик и сказать ему что убирать


Сборщик вызывается gc.collect(). Любой del объект не удаляет, а помечает на удаление.
Смысла в таких действиях нет. Если твой объект хранит какой-то большой ресурс, типа numpy-массива на гигабайт, то достаточно просто сделать self.massiv = None. Если объект маленький - то проще просто забить.
С++ ты из питона все равно не сделаешь, он в любом случае медленный.
115 1496835
>>496822
И как тогда решать подобную проблему? Создать двухстороннюю очередь с приоритетом и удалять с левого края элементы, когда подходит их черед?
116 1496838
Как получить информацию от целери, сколько таск памяти использует сейчас? Короче у меня такая проблема: целери много памяти использует. Одновременно воркер одну таску обрабатывает. Как можно узнать сколько памяти потребляется? Брать каждый воркер, по pid смотреть процесс, смотреть через psutil потребляемую память и у воркера запрашивать имя таска?
Короче инфа нужна примерно такая:
worker1 - task1 - 572Mb memory
worker2 - task7 - 41Mb memory
worker7 - task3 - 2Mb memory
worker12 - task1 - 112Mb memory
117 1496865
>>496835
Что такое "их черёд"?
Вот у тебя какой-то один объект работает с другим объектом, вызывает его методы и т.п. Ты предлагаешь, чтобы в какой-то момент рабочий объект уничтожался? И что должны делать те, кто с ним в этот момент работал?

Ты хочешь чего-то другого.
Тебе нужно держать специальный менеджер, в которым ты регистрируешь объекты, которые работают с дефицитным ресурсом. Скажем это сетевые соединения, кеш-память или что-нибудь ещё.
Объекты сигнализируют, что они живы и менеджер это учитывает. В момент Х менеджет вызывает для ненужных объектов специальный метод, и они сбрасывают кеши или закрывают соединения. Либо менеджер сам это делает.
118 1496866
>>496838

>Брать каждый воркер, по pid смотреть процесс, смотреть через psutil потребляемую память и у воркера запрашивать имя таска?


Это извращение. Посмотри скорее в сторону tracemalloc
https://docs.python.org/3/library/tracemalloc.html
119 1496884
>>496866
В таком случае я сырой дамп памяти получу и не смогу привязать значение памяти к конкретному воркеру.
120 1497272
В чём смысл моржового оператора из 3.8 версии? Это типо макросов из си? Если мы присваиваем выражение переменной, то потом это выражение будет выполняться каждый раз, когда мы эту переменную будем использовать? В ней будут разные значения тогда, разве это питоник вэй?
1568268869123527740.jpg67 Кб, 529x667
121 1497299
>>494130 (OP)
Ну что, питухонщики, ваше говно теперь официально превратилось в Паскаль

Новый оператор := позволяет присваивать значения переменным внутри выражений. Например:

if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
122 1497302
>>497299
Go в паскаль превратился ещё раньше.
Что характерно, в самом паскале так сделать нельзя, там даже цепочек присваиваний нет, лол.
123 1497307
>>497302

>Go в паскаль превратился ещё раньше


Петухун мало того, что оказался жалкой ООП пародией на Перл, так теперь зашкварился ГоПаскалем
124 1497309
>>497299

>присваивать значения переменным внутри выражений


В С/Java/Perl да и в остальных это было всегда, тут преподносится как достижение
125 1497312
>>497309
С чего вдруг чейнджлоги стали списком достижений?
126 1497314
>>497312

>чейнджлоги стали списком достижений?


Т.е. ввести новый оператор, это так, чейнджлог? Вы там кукухой поехали?
127 1497317
>>497314
Это ты поехал. Почему вдруг про := серишь, а про / даже не вспомнил?
128 1497318
>>497317

>про / даже не вспомнил


А с ним что? Я про него не знаю
129 1497322
>>497299
О, уже вчера официальный релиз 3.8 произошёл.

Про этот оператор давно известно было, что введут. Больше всего не хватало этой возможности. Реально не хватало. Теперь питон это язык богов, ещё только с GIL как-нибудь разобраться бы.
130 1497342
Вопрос нуба в треде. Допустим, я постепенно, медленными шагами пытаюсь учить Питон (не в сложности дело, просто мало времени и плохо его распределяю). На работе пару раз в месяц взаимодействую с богомерзким экселем, и ковыряю операции, которые выполнились бы куда быстрее, напиши я скрипт. Но я не умею его написать и думаю, стоят ли того потраченные на это килочасы времени, если я в дальнейшем вряд ли собираюсь связывать жизнь с экселем. По идее помогут как пример того как решать проблемы и т.д.?
131 1497350
>>497342
Питон очень лёгкий, это явно не килочасы. Польза-то будет, не одним экселем питон жив.
132 1497363
>>497299
Сахар же, нет?
14937640476370.jpg2,3 Мб, 1260x1680
133 1497377
>>497299
Благословим же господа Гвидо, что нам не надо выделять память под переменную, если она не None.
134 1497378
>>497350
Спасибо, анон. День хуевый, бугурчу на все и вот в минуту слабости подумалось, что нахуй.
135 1497384
аноны, а вот такой вам вопрос от нюфага: есть же всякие курсы где типо по окончанию изучения ты создаешь например какой то свой проект (аля выпускная работа) который типо у тя идет в портфолио и тебя с ним направляют к работодателю. так вот вопрос: как вы думаете что это за хуйня?
136 1497388
>>497322
Тут многие не умеют в асинхронность, а ты про какие-то операторы.
137 1497389
Поясните за новый оператор /
Что-то не очень понимаю смысл его.
138 1497390
>>497388

> Тут многие не умеют в асинхронность, а ты про какие-то операторы.


Пойдём выйдем, я тебе ебало разобью.
139 1497391
>>497322
теперь стало проще хуяроить однострочники
140 1497410
>>497389
Это дополнительные ограничения на передачу аргументов в функцию.

Вот ты определяешь функцию как
def foo(name, name2):
do_something()

потом ты ещё можешь вызвать как
foo('Ivan', 'Pupkin')

а можешь как
foo(name='Ivan', name2='Pupkin')

или
foo('Ivan', name2='Pupkin')

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

def foo(name, /, name2):
говорит о том, что ты name2 не может передавать с указанием имени аргумента.

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

Оператор "*" в параметрах, это явное требование указывать имена аргументов, куда более полезная, но он уже давно введён, даже не помню когда.
141 1497418
самофикс
>>497410

>def foo(name, /, name2):


>говорит о том, что ты name2 не может передавать с указанием имени аргумента.


говорит о том, что name нельзя передать с указанием имени аргумента, только позиционно. Чтобы name2 нельзя было, надо писать
def foo(name, name2, /):
но тогда и name тоже нельзя, конечно. Позиционные всегда первыми идут.
мем.gif5,7 Мб, 320x240
142 1497423
>>497384
бампец
143 1497429
>>497418
А, понял. Какая-то очень специфичная штука, как мне кажется.
Пригодится, если например, у тебя api принимает аргументы именованные, а тебя петух клюнул переименовать. А сторонние сервисы не хотят менять имена. Ну не знаю, стоит ли оно вообще того.
144 1497430
>>497423
>>497384

> как вы думаете что это за хуйня


Это чтобы тебя на курсы заманить, не более того.

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

Направить тебя может направят, но не возьмут. Работодатель хорошо понимает, что за этими проектами ничего нет.
145 1497441
>>497429
Мне тоже кажется, что очень специфичная. Может полезно иногда, чтобы за стилем оформления кода следить, чтобы не использовали лишний раз именованные переменные, сбивать может, когда код читаешь.

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

Может быть полезная штука, но пока реально не сталкивался, чтобы явно не хватало. А вот ":=" не хватало очень сильно.
146 1497449
>>497430
то есть платные курсы сосут по всем фронтам у свободной инфы, докам, книжечкам, и /pr/ ? я правильно понимаю?
147 1497465
>>497377
Гвидо всё.
148 1497483
>>497449
Не обязательно, они приличными могут быть. Но только никакие платные курсы никаких гарантий не дадут. Программистами за несколько месяцев не становятся. Да и не всем дано в принципе.
149 1497488
>>497465
Это был его последний вздох.
Возвращаюсь на perl + c++
150 1497491
>>497441
Во многих языках есть аналог :=, только обычно это просто =
Никогда не понимал в срачах аргументов "это не pythonic way". Да кого ебет какой этой вэй, если это удобнее.
151 1497601
>>497491
на мой взгляд это идет перпендикулярно питоновскому дзену. далеко не улучшает читабельность, а наоборот плодит сложности.
152 1497620
>>497601
В чем ухудшается читаемость-то?
if func():
для тебя тоже не читаемо что-ли?
Если следовать дзену, то можно остановиться в развитии. Даже комитет c++ понял это.
153 1497636
>>494130 (OP)
Ребзя, что сейчас на петоне пишут? Стоит вкатываться?
мимо диван
154 1497676
1
155 1497677
Реально на питухоне запилить маленький скрипт, который будет позволять одним щелчком мыши открывать определённый набор программ и браузер с нужными вкладками? Заебало каждое утро на работе запускать скайп-хуяйп и прочие штуки. INB4 автозапуск прог на винде: просто хочу потренироваться в питонировании применительно к своей офисной бытовухе.
156 1497688
вопрос очень прост: современные GUI под питон?
Нравится идея с HTML, но конечно гемор некий тоже есть. Можно конечно не "современные", лишь бы была хотя бы базовая мультиплатформенность и внешний вид уровня Battle.net, Steam и в этом духе, как щас пишут на Java.

В общем, я все равно сейчас ищу, а что скажут опытные господа?
157 1497690
158 1497692
>>497690
да, как вариант. Но интересно именно мнение тех, кто лично писал интерфейсы, на чем писал, какие выводы сделал.
159 1497887
Там это, новый пихон подвезли: https://2ch.hk/news/res/6139972.html (М)
160 1497908
>>497887
Ебать ты быстрый. Быстрее Питона.
161 1497926
>>497636
Бекенд, дата саенс, различная скриптота вроде девопса.
Даже если основной твой язык будет не питон, от питона всё равно будет немало пользы.
162 1497932
>>497677
Это пишется настолько элементарно, что вообще не интересно.
import os
os.system("прога1")
os.system("прога2")

Придумай задачу получше.
163 1497942
Кароч сегодня позвонили с конторы, которой я тестовое отправлял, менеджер сказал что тимлиду понравилось, но по техническим причинам они в данный момент не ищут работников, но вакансия снова откроется где-то в начале-середине ноября, так вот что это такое вообще это нормально? Компания крутая у нее офисы в дс сам я из миллионика и заграницей есть очень хотел бы туда попасть, но не знаю как поступить дальше сычевать и ждать когда пригласят или пойти куда-то работать?
164 1497946
>>497908
Ну не стукай, всего два дня прошло. Для меня интерпритатор залочен был, только сейчас освободился.
165 1497948
>>497942
Жди, ближе к выходным позвонят (и снова скажут, что очень понравилось).
166 1497957
Теперь если вставить где-то моржовый оператор, то скрипт не заведется на всех прошлых версиях третьего питона?
167 1497966
>>497957
Не заведётся, конечно.
168 1497970
>>497957
Ну попробуй вставить себе моржовый клык и подойти к мамке, узнает ли она своего сына, сможет относиться к тебе так же как раньше?
169 1497983
В Пеетоне нет инкрементов!
170 1497995
>>497983
Ужас!
171 1498004
>>497983
Как это нет??????
http://ideone.com/0vdURg
172 1498062
насколько хорош и устойчив к нагрузкам aiohttp,пытался в swoole-гавнина с кучей подводных
или node.js,
173 1498124
Гайс, смотрите, есть цель: написать бота, который будет участвовать в чате на сайте, просто здороваться, говорить что-то и всё. Сайт написан не на питоне, чат тоже. Есть возможность это реализовать своими силами? Селениум мб тут поможет?
Доступ к сайту и помощь обеспечат, если что, но мне это не очень поможет, тк я не знаю языка, на котором оно всё написано, и меня интересует выполнить задачу без внедрения в код сайта.
174 1498136
>>497942
Хех, чувствую, к началу-середине ноября им понадобится ещё одно "тестовое".
performance.png18 Кб, 1766x748
175 1498143
>>498062
Надо всё на асинхронные альтернативы переводить. А иначе отсос.
176 1498145
>>498124

>Селениум мб тут поможет


Да, и AutoIt
177 1498147
>>498143
для большинства задать и по старинке можно
178 1498156
Расскажите, как свои саблаймы прокачивали. Я поставил sublimeREPL, но для разных виртуальных окружений приходится в кей биндингс менять путь. Есть какие-то более модные способы?
179 1498191
>>498156
vim + python-mode
15711717407560.jpg99 Кб, 720x450
180 1498199
>>498191
Можно не надо
181 1498216
>>498156
PyCharm Community Edition. Супер мощно, опенсорсно и бесплатно
182 1498235
>>498124
PySide2 - это привязка к Qt, самая новая и официально поддерживаемая разработчиками. В комплекте идет qtdisigner, в нем можно накидать форму, а в питоновском файле писать только логику для нее. Можно использовать документацию Qt, она у них очень хорошая.
https://wiki.qt.io/Qt_for_Python

WxPython - это привязка к WxWidget. Тоже хорошая вещь, там стараются использовать нативные виджеты системы, поэтому приложение будет гармонично смотреться на разных ОС. Так же есть возможность накидать форму в спец приложении, а в питоновском файле писать только логику.
https://wxpython.org/

Tkinter из стандартной библиотеки малость устарел, но для небольших вещей довольно-таки неплох

Это из того, что пробовал. А так вариантов очень много, включая возможности использовать веб-технологии для десктопа

https://github.com/vinta/awesome-python#gui-development

https://python.libhunt.com/categories/290-gui
183 1498244
>>498216
Там же вроде какие-то ограничения на поддержку html и js.
184 1498249
Какие есть варианты собрать портабельное приложение на питоне со встроенным интерпретатором? Я не говорю про компиляцию в бинарь, просто чтоб можно было притащить на флэхе и запустить скрипт.
185 1498261
>>498249
PyInstaller
image.png12 Кб, 332x217
186 1498264
Есть один текстовый файл. В него поступают данные в формате списка, где элементы равны 'число' + '\n'. Иногда '\n' нет, и нужно что бы тогда '\n' добавлялось в конец элемента списка при обработке файла. Как это сделать? сука голову сломал
187 1498275
>>498264
a = a.rstrip() + '\n'

это удалит и \n, и пробелы справа
если нужно сохранить пробелы, но вдруг, то
rstrip('\n')
188 1498276
>>498275
a[k] = a[k].rstrip() + "\n"

i съедается как разметка
189 1498277
>>498216
На моём ноутбуке пайчарм открывается две минуты, заебало, я же помню, что в этом треде когда-то обсуждали редакторы и были аноны, которые себе саблайм настроили
190 1498279
>>498261
А как с pyinstaller собрать так, чтобы на хостовой машине можно было без установки питона нужной версии работать? Вот чтобы и интерпретатор питона в экзешник?
191 1498287
>>498264
а если в одну строчку всё решение, то
b = [s.rstrip() + '\n' for s in a]
192 1498291
>>498287
>>498264
точнее для твоего ТЗ
[str(s).rstrip() + '\n' for s in a]
но ты это и сам понял
9znNHFo5YUA.jpg101 Кб, 538x807
193 1498309
Питоны, пытаюсь смоделировать на коленке фласк сервер с клиентом.
Они работают параллельно: клиент посылает запрос с json'ом, сервер что-то отправляет в ответ - значение или тоже json.
Не пойму, так или не так? Что доделать?
https://ideone.com/YKwKqF
194 1498313
>>498136
Думаешь они за счет меня какой-то таск закрыли?
195 1498317
>>498291
>>498275
>>498287
Спасибо, господа.
196 1498367
>>498249
pex
shiv
197 1498456
>>498309
о, а я тебя помню
Ты неправильно юзаешь target. В target передаётся ссылка на вызываемую функцию, а ты передаёшь ссылку на результат вызова функции. Объяви две функции, в одной принть результат send_data, а в другой - просто вызывай app.run(). Затем укажи эти функции в rarget.
198 1498457
>>498279
pyinstaller -F zalupa.py
199 1498499
>>498309
Пиздец. Во-первых, requests уже протух и это говно не надо использовать. Во-вторых, зачем тебе Фласк, если есть простые и быстрые клиент/сервер aiohttp?
200 1498501
>>498456
"Это так мило.
Спасибо, как-то так?
def f1():
--app.run(host= '0.0.0.0',debug=True)

P1 = Process(target=f1)
P1.start()
P2 = Process(target=send_json({"title":"Read a book"}))
P2.start()

> в одной принть результат send_data


>принть


A это зачем?
201 1498502
>>498499

>зачем тебе Фласк


Для прототипирования.
202 1498506
на hexlet норм курсы?
203 1498512
>>498501
Вроде того.

send_json, конечно. С ним аналогично, его вынести в функцию f2(), её передать в target.

Можно и не принтить, но ты же хочешь увидеть, что сервер вернул нужные данные?
204 1498514
>>498512
>С ним аналогично, его вынести в функцию f2(),
Т.е. функция в функции?

> ты же хочешь увидеть, что сервер вернул нужные данные


И куда это ставить? В f2?
Untitled.png44 Кб, 779x559
205 1498516
Молю, вас скажите что они хотят от меня. Не могу перевести условия задач.
206 1498517
>>498516
4-е задание и в 3-ем последнее предложение

>Caller should do the printing


что это значит? вызывающий должен сделать печать. Печать чего блядь?
207 1498529
>>498499
А что использовать вместо requests?
208 1498548
аноны, реквестирую вашу помощь. прислали задание на питонщика-тестировщика. и вот такая последовательность: создать бд в оракл, затем зарегать ее в datasunrise, затем создать правило маскиннга с маскировкой первых двух символов строки, далее уже написать код проверки корректности работы этого правила маскинга, и потом еще написать код проверки того что в списке events появилось событие маскировки, а внутри сохранились замаскированные данные. все это надо выполнить в виде python скрипта. так вот вопросы: где найти хоть какую то инфу по этой дата санрайз и по маскингу и стоит ли ваще так ебаться ради этой галеры и обещаний в 35 килорублей?
209 1498549
>>498548
это наёбка. ты щас сделаешь они тебе перезвонят, потом, ага. нахуй шли сразу, портофлию испытательный срок и пусть нахуй идут.
210 1498578
>>498549
в плане наебка? объясни, анон, прошу. а то я нюфаг и во всем этом не очень догоняю
211 1498581
>>498578
ты делаешь дохуясложное задание, они используют твою программу. вот и всё. ну бывает что тупо нужна программа на раз, а на программиста денег нет, тогда и создают вакансию с тестовым заданием.

ну у тебя может и не наёб зарплата низкая, обычно на таких должности ещё обещают 300кк в наносек, чтобы задроты упорнее кодили
212 1498582
>>498578
а вообще тесты это хуйня. у тебя должно быть портфолио твоих шидевров и вот по ним в первую очередь должны ориентироваться. а не давать тебе тестовые бесплатные проекты на неделю.
213 1498588
>>498581
вот и я тоже так думаю. в этом и трабл.
>>498582
я его пока что допиливаю чтобы на гитхаб залить и затем уже в свое резюме. так что это оки
214 1498589
У меня есть простой сервер с сайтом на сокетах. Я его запускаю, и начинаю в браузере что-то делать, переходить по страницам там и всё нормально, браузер коннектится и присылает обычные хедеры с запросом и урл.
Но если подождать минуту ничего не делая и обновить страницу, то браузер коннектится и присылает пустую строку, так и должно быть? Что это и зачем?
215 1498590
>>498588
ну и шли их нахуй. эта ёбаная россия нищая где работодатели издеваются натурально над своими работниками. здесь везде будешь постоянно не соотвествовать и всё вечно будешь недостоин. шли нахуй страну эту ёбаную.
216 1498592
Аноны, насколько мой код говнокод? Можно ли как-то это записать с использованием меньших количеств переменных, с меньшим использованием циклов или нормально? Да я знаю про find и прочие встроенные для строк функции, у меня цель была писать на максимально самопальных функциях.

Только не кидайтесь безпричинно гавном типа "твой код гавно потому что ты пидор" тыкайте пальцем где именно я проебался и как можно было бы проще.
217 1498595
>>498589
Ну то есть не пустую строку, а набор байт, который мне отображается как b''. Ну и после этого ещё раз коннектится, но уже с запросом. Это типо хром мониторит, работает ли ещё сервер? А почему он сразу этого не делает, а только после простоя?
218 1498602
>>498595
питоаноны подскажите что это значит.

[i for i in array[1:] if i > a]

особо интересно что такое i for i / [1:]
219 1498603
>>498602
это цикл какой-то сложный со сравнением. а скобки стоят в контексте чего? или они сами по себе?
220 1498604
>>498603
там впереди еще массив куда этот массив погружается типо:

someArray = [i for i in array[1:] if i > a]
221 1498607
>>498604
В массив войдут все элементы из array, начиная с первого индекса(по русски -- со второго элемента), которые больше, чем а
222 1498610
>>498607
Заебись, чотко.
223 1498611
>>498610
Короче, гугли list comprehension и slices.

А вопрос про хром так и остаётся. В панеле разработчика вот эти коннекты пустые не отображаются, только нормальные запросы
224 1498613
>>498581
Шедевр спиздить можно, а тестовое проверяет твои знания или способность быстро разобраться с задачей, которую ты первый раз видишь.
225 1498615
>>498613
тест можно и по проще дать, а не проект недельный.
226 1498616
>>498613
да с предыдущими тестовыми то у меня так и было, где рили проверяли мои знания и вот задачу которую первый раз видишь
>>498615
удваиваю этого. хрюша как раз сказал что задание на неделю рассчитанно))
227 1498646
>>498592
У тебя не количество слов с буквой E считает, а количество букв E в тексте. Нужно пофиксить.
228 1498679
>>498615
Ну можно попроще, но тестовое это нормальная процедура.
229 1498706
>>498679
нормальная, но никогда в виде тестового выступает какой-нибудь охуительный недельный проект. это плевок в ебало. это как придёт допустим человек дальнобойщиком устраиваться, а ему скажут: ну ты съезди в один раз на 2000км, бенз и всё остальное за своё счёт и мы посмотрим устраивать тебя или нет.
230 1498707
>>498679
это как блядь на завод прийдти и тебе скажут "ну ты это отработай неделю у нас бесплатно, а мы посмотрим и решим брать тебя или нет"
231 1498717
Так нужно же эти тестовые задания себе на гитхаб выкладывать, разве нет? Был бы ещё один проект, легче было бы устраиваться
232 1498720
>>498717
Зависит от требований. Гитхаб вкатывальщиков мало что говорит, потому что ты все это спиздить мог
233 1498724
>>498720
А история коммитов? Её конечно можно подделать, но это муторно, вставлять кусками.
Да и чего тогда все говорят про то, что необходимы свои работающие проекты?
234 1498729
>>498724
Ты можешь спиздить вообще весь проект полностью заменив имя в коммитах одной командой

>https://stackoverflow.com/questions/750172/how-to-change-the-author-and-committer-name-and-e-mail-of-multiple-commits-in-gi



>Да и чего тогда все говорят про то, что необходимы свои работающие проекты?


Иллюзия
https://habr.com/ru/post/350912/
235 1498740
>>498707
Лол такая практика много где приветствуется, про бесплатную стажировку слышал? ты там месяц за бесплатно работать можешь.
236 1498749
>>498592
Чо, даже split() нельзя юзать?
237 1498752
>>498592
А теперь вставь в инпут вот такую строку и чекни "abc deeeeeeeee hui.!"
Untitled.png9 Кб, 1305x198
238 1498757
>>498740
так я не стажёр и не ньюфаня какой-то.

>>498749
вот пофикшенная версия. он хорошо список сделал, но проебался с подсчётом слов с буквой E
239 1498763
>>498757
lower() используй. Все равно ты в конце не вводишь строку.
240 1498765
>>498763
зачем?
241 1498776
>>498765
Чтобы считало слово с "е" и с "Е". "End me" засчитает только одно слово.
242 1498781
>>498776
Так это ты мне не скажи, а ему. Я просто посмотрел на его код и переписал по-своему. С подключением string
243 1498783
>>498757

>так я не стажёр и не ньюфаня какой-то.


То есть у тебя есть уже опыт работы и тебе дают тестовое лол?
image.png127 Кб, 1215x860
244 1498785
У вас тут соревнование по однопроходным алгоритмам? Вот вам чисто однопроходное решение, без сохранения элементов в строку-слово.
https://ideone.com/tHncr3
245 1498803
>>498724
Ещё более муторно разбираться со всем этим "проектом" и коммитами.

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

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

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

>>498581

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


Это надумано, никто не сделает адекватно в рамках тестового законченную конечную программу.

Но другой вариант есть. Вот я не умею работать с Оракл, может в проекте вдруг понадобилось. Начинать разбираться самому тяжело. Как поступить? Можно раздать тестовые задания под якобы открытую вакансию, посмотреть на идеи и подходы к решению. Можно ещё кого на собеседование пригласить, пусть расскажут идеи какие-то, свои подходы к решению, можно непонятные вопросы задавать. Потом всех послать и уже работать самому, получив какой-то багаж идей и подходов. Так практикуется.
246 1498812
>>498785

> цикл


> однопроходное


Что?
247 1498815
>>498812
Однопроходный алгоритм -- это когда по вводным данным один раз проходит, дурашка. В таких алгоритмах главный плюс -- можно входные данные не сохранять. То есть вообще. Мы, например, можем не давать строку функции, а вводить каждый раз просто по одному символу, и эти символы нигде не будут записываться.
правда я в моём алгоритме сделал под строку, когда в конце проверяю, последний ли это элемент. По нормальному эта проверка должна происходить каждый раз, когда поток информации кончается.
248 1498817
>>498812
давайте вот щас не будете срачь здесь начинать и придираться к словам как на этих форумах погромистких с дегенератами. я сразу говорю что я не он кому это писал.

На днях видел один топик http://www.cyberforum.ru/cpp-beginners/thread2221660.html, уебан там какой-то указал что в строках при сравнении А > a, хотя на самом деле a > А. Ему сказали мол ты не прав и пруфы дали, так этот пидрила как и подобает компьютерному чсвшному задроту сказал "ряяя это писали домохозяйки у меня всё правильна" в итоге ему под конец темы объяснили что этот гнидёншь обосраный и он это таки признал. Как же такие кадры бесят, которые начинают к словам придираться, споры какие-то устраивать хотя сами просто эникейное гавно которое общается так будто он серый кардинал над нашим миром. Уебал бы всех погромистов которые начинают эти ебанутые споры.
249 1498818
>>498817
запятую в конце ссылки удалите, если не открывается. я проебался со вставкой.
250 1498819
>>498817
ещё этот уебан всех обосрал в конце что все виноваты в чём-то. как же бесят подобные, ему блядь в лоб прямо тычешь пруфом, а он "А НЕТ А ЭТО НЕПРАВИЛЬНО ИДИОТЫ ДЕБИЛЫ ПИСАЛИ" сука с ноги бы в щи этому задроту.
251 1498826
>>498757

>твой код гавно потому что ты пидор



>>498592

>тыкайте пальцем где именно я проебался и как можно было бы проще.


Например используй регулярки
получить все слова
words = re.findall(r"\w+", text)
дальше можно отфильтровать вхождения с "e"
первый вариант
e_words = [w for w in words if "e" in w]
или так
e_words = list(filter(lambda w: "e" in w, words))
или просто тупо сосчитать
count = 0
for w in words:
if "e" in w:
count += 1

>>498592

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


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

зачем у тебя new_text заполняется?

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

Если именно так ТЗ ставить, то тебе надо завести счётчики
total_words = 0
total_e_words = 0
current_word_length = 0
current_word_e_entries = 0

дальше цикл по буквам из потока.
for letter in stream:
if letter in " \n'\".,-;()[]0123456789":
if current_word_length > 0:
total_words += 1
if current_word_e_entries > 0:
total_e_words += 1
current_words = 0
current_e_words = 0

аналогичную проверку надо не забыть сделать и по окончанию цикла.

Ещё твой print лютый пиздец, нельзя так строки форматировать
print("Your text contain {} words, of which {} words contains 'e'".format(total_words, total_e_words))
251 1498826
>>498757

>твой код гавно потому что ты пидор



>>498592

>тыкайте пальцем где именно я проебался и как можно было бы проще.


Например используй регулярки
получить все слова
words = re.findall(r"\w+", text)
дальше можно отфильтровать вхождения с "e"
первый вариант
e_words = [w for w in words if "e" in w]
или так
e_words = list(filter(lambda w: "e" in w, words))
или просто тупо сосчитать
count = 0
for w in words:
if "e" in w:
count += 1

>>498592

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


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

зачем у тебя new_text заполняется?

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

Если именно так ТЗ ставить, то тебе надо завести счётчики
total_words = 0
total_e_words = 0
current_word_length = 0
current_word_e_entries = 0

дальше цикл по буквам из потока.
for letter in stream:
if letter in " \n'\".,-;()[]0123456789":
if current_word_length > 0:
total_words += 1
if current_word_e_entries > 0:
total_e_words += 1
current_words = 0
current_e_words = 0

аналогичную проверку надо не забыть сделать и по окончанию цикла.

Ещё твой print лютый пиздец, нельзя так строки форматировать
print("Your text contain {} words, of which {} words contains 'e'".format(total_words, total_e_words))
252 1498828
>>498817
Там же всё просто. a>A потому что аски код строчной буквы больше аски кода заглавной. О чём спорить-то?
253 1498830
>>498828
на скринах видишь, дебил просто отказывался это принимать говорил врёти.
254 1498832
>>498817
>>498819
Ты переработался, тебе пробздеться надо. Вот смотри какая скромная школьница в начале видоса в с++ вкатывается
https://youtu.be/u_ij0YNkFUs
255 1498839
>>498832
это на видео у тебя бьёрн страуструп? алсо перед вкатом в си хорошо бы было хотя бы уметь переводить двоичное число в десятичное и обратно.
256 1498841
>>498512
Ты ещё тут?
257 1498842
>>498199
Тогда, emacs с соответствующими плагинами
258 1498844
Приветствую. Почему в первом случае f.readlines() выводит заполненный список, а во втором случае пустой список?
259 1498845
>>498277
Еще есть Atom и VS Code
260 1498851
>>498839

>хорошо бы было хотя бы уметь переводить двоичное число в десятичное


Не знаю о чём ты, я закрыл видео, когда натрапик ушёл из кадра.
я на с++ только в вузе писал и теперь слушать про него даже не хочется
261 1498853
>>498851
трапик*
262 1498856
>>498851
мужик похож на бьёрна страуструпа он создатель C++ один из немнгих нормальных людей в айти и не занимается самопиаром как всякие торвальдсы-хуёрвальдсы. реальный специалист и не вниманеблядь с чсв. он ещё книгу к своему языку написал очень годную.
263 1498858
>>498844
Указатель смотрит на конец файла, ведь ты уже его прочел readlines'ом.
264 1498859
>>498845
Я уже настроил как получилось. Поставил ide внутри саблайма Anaconda, хотя я из её возможностей почти всё поотключал. В принципе удобно работается, открывается моментально, жрёт где-то 100 мб оперативы
265 1498869
>>498858
Сорри, не совсем догнал. Можешь подробнее, пожалуйста?
14447488720180.webm1,6 Мб, webm,
540x360, 0:24
266 1498875
>>498841
Я не знаю, как заставить это говно нормально работать.
Чтобы клиент нормально слал ссаный жсон, а сервер ему отдавал.
https://ideone.com/EjMSnY
Поможите, чем можите.
image.png8 Кб, 444x131
267 1498889
>>498869
Где красным подчеркнуто, у тебя вычитывается весь файл, указатель на позицию в файле указывает на его конец, читать больше нечего. Когда ты делаешь f.readlines в конце, считывается 0 байт.
268 1498890
>>498875
очередной сайтаделатель веб погромист.

а щем ваш славик промышляет? А ОН САЙТЫ ДЕЛАЕТ))))
269 1498893
>>498890
Мимо, малыш.
Но если не можешь подсказать, не смею тебя задерживать.
270 1498895
>>498893

>малыш


за углом поссышь
271 1498898
>>498889
Теперь понял, спасибо. А чтобы обратно каретку в начало файла сдвинуть что нужно, заново файл открыть?
272 1498899
>>498875
Выкинь уже это говно и запили на aiohttp.
273 1498901
>>498898
Можно сделать f.seek(0)
274 1498902
>>498899
С ним ещё разбираться.
Мне надо чтобы написанный код заработал.
275 1498910
можно ли для повышения производит сайта соединить допустим 5 aiohttp?
276 1498912
>>498910
Нет.
277 1498913
>>498912
жаль
278 1498915
Я однажды 5 aiohttp
279 1498916
5a6e7df1.jpg43 Кб, 799x602
280 1498931
Запилил простеньки файловый сервер на фласке для картинок. Работает локально, раздаю порно картинки. Пока тянка сидит сериал смотрит,я иду передернуть в туалет.
Еще думаю для mp4 и webm раздачу сделать и вообще буду доволен. Даже на гитхаб залью.
281 1498938
Вот там выше анон не знает как во фласке json отправить, а у меня другой вопрос: Можно ли как-то через tcp сокеты отправить json так, чтобы браузер сразу понимал, что это json?
Нужно как-то json в байты закодировать, я так понимаю, не знаю как
282 1498941
>>498916
Ну где вы, гуру фласка?
283 1498947
>>498938
Всё, разобрался с тупым вопросом, я просто в командах jsona запутался
284 1498953
>>498875
Передавай в target ссылку на функцию, а не результат её вызова.
Вместо
P1 = Process(target=start_server())
Нужно:
P1 = Process(target=start_server)
Так же с P2.

И ещё кое-что. Так как у тебя потоки запускаются почти одновременно, почти наверняка сервер ещё не запустится, а клиент уже пытается ему послать запрос. Конечно, вывалится исключение. Решение в лоб - перед P2.start() добавить задержку, скажем, так: time.sleep(1).
285 1498954
>>498938
HTTP-сервер работает поверх TCP-сокетов. Соответственно, тебе нужно написать свой HTTP-сервер с нуля, который сам будет обрабатывать запросы и слать в ответ что угодно, хоть json в виде байтов. Вопрос, конечно же, теоретический? Писать свой веб-сервер - не самое простое дело, да и не самое полезное.
286 1498955
>>498953
127.0.0.1 - - [17/Oct/2019 hh:mm:ss] "POST /api/v1.0/projects HTTP/1.1" 404 -
287 1498970
>>498954
Это я знаю, да и я уже написал. Просто он у меня отправлял html простые, а мне захотелось отправлять json как тот анон. Я вообще так и сделал, сначала кодирую словарь в json через json.dump() потом json в байты через .encode() и прилепляю байты к хэдэру.
288 1498973
>>498955
На сервере нет такого роута, ты его не обрабатываешь. Ты обрабатываешь только /api/add_message/<uuid>

Например, можно слать такой запрос, ответ будет успешным:
def send_json():
____return requests.post("http://127.0.0.1:5000/api/add_message/123", json={"title":"Read a book", "mytext":"foobarbaz"})
289 1498977
>>498973
Спасибо.
У тебя будет ещё минут 20?
Сейчас он выдаёт:

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
foobarbaz
127.0.0.1 - - [17/Oct/2019 hh:mm:ss] "POST /api/add_message/123 HTTP/1.1" 200 -

То есть вроде как работает, но при нажатии http://0.0.0.0:5000/ в браузере нихера нет. Ведь сервер по идее тоже что-то должен выдать.
290 1498980
>>498977
Он и выдаёт, что страница не найдена. Если сервер не запустить, браузер напишет что-то типа "не удалось подключиться". Опять же потому, что роут "/" не обрабатывается.
Можно в браузере перейти на
http://127.0.0.1:5000/api/add_message/123
Тогда загрузится. Но ругнётся, что не передаёшь нужные данные.
291 1498985
>>498980
Как всё сложно.
А если у меня будет не один json, а несколько? Посылаемых друг за другом и на каждый надо дать ответ, как тогда это представить?
292 1498987
>>498970
Алсо, вот я сервер забиндил слушать все подключения, я могу подключиться к нему с самого компа и из локальной сети. Но из интернета на внешний айпи не подключается. Это браузеры отказываются отправлять запрос? Нужен какой-то особый порт для такого?
293 1498989
>>498985
Для примера можно добавить в send_json() несколько вызовов requests.post() с разными аргументами. Вариант сложнее - несколько процессов по запросу на каждый.
294 1498992
>>498987
Тут всё намного сложнее.
1. Внешний IP у тебя вряд ли статический ("белый"), их сейчас не раздают направо и налево. Твой IP - "серый".
2. Порт у тебя не "открыт". Как его открыть, можно нагуглить. Но если всё сделал, но он по-прежнему закрыт, тут только обращаться к провайдеру, зачастую это платная услуга.
3. Если ты сидишь в интернете не напрямую, а через локальную подсеть,, нужно ещё настраивать проброс портов на роутере.

В общем, намного проще найти бесплатный хостинг в интернете и выложить туда. Например, есть pythonanywhere.com
295 1498993
>>498989
Таааак, падажжи ёбана...
Вот маняклиент
def send_json():
--return requests.post("http://127.0.0.1:5000/api/add_message/123", json={"title":"Read a book", "mytext":"foobarbaz"})

Допустим я создам список словарей и циклом буду извлекать каждый словарь, превращать его в json и отправлять на сервер.
1) Цикл мне в send_json засунуть?
2) А что насчёт адреса http://127.0.0.1:5000/api/add_message/123 ?
Он на каждый post-запрос с json'ом свой должен быть? То есть в адрес надо что-то типа переменной части добавить?
3) А сервер как это будет обрабатывать? То есть его динамическим делать? И как он это отображать будет? в адресной строке? Или json'ом в ответе?
4) Хватит 2х процессов по одному на сервер и клиент? Или надо больше?
296 1498999
>>498992
Внешний порт динамический, порты открыты у меня, я уже проверял, писал на сокетах чат, в котором подключал разные компы. Они нормально подключались через внешний айпи. Там сервер был на стационарнике, а этот на ноуте, но он с линуксом, тут не должно быть файрволла, короче порт открыт должен быть.
Насчёт проброса я не понял, как я понимаю, проброс это перенаправление пакетов, приходящих на внешний айпи, роутером на какой-то определённый частный айпи в сети, но зачем мне это если мой сокет слушает всё? пусть слушает внешний айпи.
Просто я помню, что уже подобный сервер запускал, но там это всё было через приложения клиента и сервера, а тут вместо клиента у меня браузер, и я не понимаю, что изменилось
297 1499001
>>498993
1) Да
2, 3) Это на твоё усмотрение, технически вообще без разницы. Иногда делают весь api на одном и том же роуте, а потом уже парсят данные из json и производят нужные действия. Но концептуально это не совсем хорошо. Можешь почитать про REST API.
4) Если делать через цикл, хватит.
298 1499003
>>498999
Ой блядь, внешний айпи динамический*
299 1499005
>>499001
Спасибо.
Такие ещё вопросы:
1)

> "Можно в браузере перейти на http://127.0.0.1:5000/api/add_message/123 Тогда загрузится. Но ругнётся, что не передаёшь нужные данные.


Странно, get запрос у меня 500 выдаёт. Это если скопировать адрес и вставить.
2) Как удостовериться, что сервер что-то отдаёт в ответ? Тоже print поставить?
3) Касательно REST API - на что тут обратить внимание?
4) Тебя можно будет в эту пятницу/субботу тут застать?
300 1499006
>>498999
Тогда не ебу. Единственное, что могу предположить - провайдер не разрешает входящие подключения к 80 порту. Или детектит и блочит http-трафик вне зависимости от порта.
301 1499007
>>499006
фаервол
302 1499009
>>499006
У меня биндится не на 80 порт, а на произвольный, может поэтому?
303 1499010
>>499005
1) наверное, от версии фласка зависит. Но так или иначе это должен быть код 500.
2) в консоли ведь делается выхлоп, что было обращение к такому-то роуту. Если нужна ещё инфа - да, можно print добавить.
3) это просто общие принципы, их нужно в целом понимать. Ну, может, какие-то присеры глянуть.
4) возможно, но не 100%
304 1499012
>>499009
Блядь, я проверил, но да сейчас какого-то хуя тот старый сервер тоже перестал работать, пиздец, я был уверен, что он работал нормально с внешним айпи
305 1499013
>>499010
Спасибо и напослндок?
Код чуть дополнен:

l1 = [{"title":"Read a book1", "mytext":"foobarbaz1"}, {"title":"Read a book2", "mytext":"foobarbaz2"}]

def send_json():
-- for i in l1:
----return requests.post("http://127.0.0.1:5000/api/add_message/123", json=i)

Но вот при запуске выводит только foobarbaz1
Он до второго элемента не доходит. Его обновлять надо? Или как?
306 1499016
>>499012
Сука, какой же это пердолинг, у меня в роутере DMZ(открывает все порты) стояло на частный адрес стационарника, но частные адреса каким-то образом сбились, и все порты у меня были открыты на моём ксяоми. Пиздец. Поставил dmz на ноут и всё заработало.
307 1499030
Подскажите ньюфагу возможно ли в spider3 делать VENV как в пайчарме, например? Нашел в настройках, что можно только интерпретатор выбирать. Если я сделаю новую VENV в пайчарме или просто в консоли и её интерпретатор выберу в спайдере, то он будет в этой среде всё делать или нет? В интернете предлагают через фунции анаконды делать, но у меня она не стоит. Также предлагают создавать отдельные VENV и в каждой через пип ставить свой спайдер, но это тупо, т.к. он по 300Мб жрет.
308 1499040
>>498954
Не читал о чём вы, но готовые реализации HTTP серверов уже есть, смотри h2 и h11.

HTTP работает независимо от TCP. Можешь из файла брать поток для HTTP, откуда хочешь.
309 1499041
>>498999
Если у тебя подключение к интернету через NAT, через какой-нибудь роутер, то без специальной настройки, не всегда доступной, подключиться к тебе будет нельзя.

У тебя на компьютере полноценный внешний IP? Не 192.168., или не 10.?

Второе, на каком адресе ты открываешь сервер? Если в параметрах указываешь host='127.0.0.1', он же по-умолчанию иногда, то с внешнего компьютера ты подключиться не сможешь. Надо указать или '0.0.0.0', или адрес интерфейса, на которым ты слушаешь. Проще всегда "0.0.0.0", это значит, что с любого интерфейса можно подключиться.

попробуй запустить встроенный на питоне сервер
python3 -m http.server
от поднимет простейших http сервер на 8000 порту
и зайти на него из интернета
310 1499044
>>499041
Спасибо, анон, но я уже всё настроил. Я просто долбоеб, у меня были порты закрыты. [spoile] приватные адреса сбились, а на приватный адрес было в роутере включено DMZ[/spoiler]
Не понял про 10. , не знаю, что это. Айпи полноценный внешний,
192.168... тоже есть, но это приватный же, адрес устройства в локалке. Сокет я биндю на "", то есть на четыре нуля.
>>499040
Ну так-то http это просто язык хэдеров, методов и кодов, по факту можно хоть на листке сообщения передавать по правилам протокола. Удивительно, насколько там простейшие вещи применяются в написании собственного сервера. Но писать много придётся, чтобы всё было по правильному.
311 1499095
>>499013
Это потому, что происходит выход из функции сразу после первого запроса. Убери return.
312 1499112
Ну посмотрел вакансии на джунов в моей мухосрани, например, сравнил с количеством вакансий пхп, теперь хочу вкатиться в пхп.
Отговорите вкатываться в пхп.
313 1499116
>>499095
Или вынесли цикл за функцию в ещё одну функцию?
314 1499138
>>499116
Зачем? Создавать кучу однострочных функций смысла нет, тем более что она только один раз используется.
315 1499140
>>499138
А что насчёт сервера, почему он 500 выдаёт?
Разве он не должен работать и что-то в ответ выдать?
316 1499209
>>499140
Потому что он не смог обработать запрос и свалился. Не смог обработать, потому что не проверены все возможные ошибки. Например, нужно проверить, что все нужные поля есть в json, прежде чем пытаться их читать. Если нет таких полей, явно слать клиенту 400.
317 1499235
>>498235
Запоздалое спасибо!
thanks.png2 Кб, 1069x36
318 1499434
>>498826
спасибо за охуительный совет по поводу принта, вот как он работает.
319 1499437
>>498826
>>499434
а не извини, не заметил что у тебя код другой.
321 1499499
>>499209
Спасибо за помощь.
rewrite.PNG20 Кб, 655x372
322 1499544
>>498826
Спасибо, что не поленился и всё расписал для ньфани типа меня, анчоус. Я исправился как тебе, уж лучше? Насколько мой код тянет из 10?
323 1499551
>>499544
import re
words = re.findall(r'\w+', text)
e_words = [w for w in words if 'e' in w]
324 1499557
>>499551
я такого в учебнике не проходил ещё.
325 1499562
>>499557
Извени
326 1499565
>>499562
ничё старшного, главное что задание выполнил. пиздец с этими строками это самое сложное.
327 1499894
Есть ли способ сделать сериализацию некого объекта и при этом "зашить туда" все библиотеки, которые он использует?
Для того чтобы можно было запустить его на "чистом" питоне без предустановленных библиотек?
Установить на том "чистом" питоне те библитеки не вариант.

Можно ли еще сделать питоновский скрипт как экзешник?
328 1499910
>>499894

> Можно ли еще сделать питоновский скрипт как экзешник?


Pyinstaller
329 1499916
>>494130 (OP)
Надо бы вопрос про запаковку и дистрибуцию скриптов включить в шапку треда. PyInstaller хороший вариант, но далеко не единственный.
>>499910
>>498261
330 1499926
>>499030
Конечно можно, более того, в пайчарме это тоже так работает, создаешь окружение каким угодно способом, а потом в настройках среды рзработки указываешь интерпретатор из этого окружения. В пайчарме просто автоматически создается новое окружение и делаются нужные настройки при создании проекта.
331 1500024
gospoda, хочу пощупать asyncio, не подскажете интересную задачу на пару дней, чтобы это сделать? Опыт питухона огромни за плечами.
332 1500059
>>500024
веб сервер на 5кк запросов в секунду
333 1500067
>>500059
Так а чо он будет сервить? Мне просто не хочется неделю ковыряться с сопутствующими задачами, чтобы сделать скажем имиджборду. Ладно, я пока PEPы читаю и вот это

https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html
http://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html
334 1500074
>>500059
для этого есть эликсир или го
335 1500119
Как бы вы поступили в моей ситуации есть 'контора 1' и 'контора 2' вообщем контора 1 лучше и я прошел тестовое, но так получилось что вакансию закрыли, хотя мне сказали что в ноябре возможно возобновиться и мне отзвонят, я сказал ок, контора 2 сейчас ищет кандидата и я уверен что пройду туда и могу приступить к работе сейчас, хотя перспективы там похуже, так вот что мне выбрать: шанс что меня пригласят в норм контору или брать что дают?
336 1500124
>>500119
Из опыта собеседываний, я проследил для себя такую штуку: когда говорят, что что-то там возможно возобновится, "мы вас сохранили в базе и в будущем, если вакансия откроется, мы с вами свяжемся" -- это 99% значит, что никто никогда больше с тобой не свяжется.
Идти ли на херовую работу? Смотря что ты хочешь от работы и что ты из себя представляешь. Если ты начинающий, тебе нужны деньги, и для тебя без проблем сменить работу через полгода -- можешь попытаться пойти куда берут, поднаберешься опыта и свалишь потихоньку, проходя собеседования ещё будучи на рабочем месте. Если же ты ищешь работу надолго, то думаю ответ очевиден: какой смысл идти на херовую работу и через полгода оказаться в той же ситуации, потому что она заебала.
337 1500130
>>500074

>учить язык для нишевой задачи


Толсто
338 1500187
>>500130
как эти с такими задачами норм справляются
339 1500215
>>500024

asyncio в python, как верно выразился уже не помню кто -- это язык в языке. Если твой код лезет в IO -- он должен быть написан на asyncio, иначе блокирующий IO повесит тебе eventloop. Проект использует, например, boto3? Поздравляю, тебе хана но это не точно. С тем же Celery а связке с asyncio будет больно. Помни о том, что почти все asyncio-либы находятся в стадии лютой альфы, и хорошо, если в них работает нужная тебе функциональность

Будет больно на стыках синхронного кода с асинхронным. Я по началу выл с ранних этапов инициализации и финализации приложения: в первом случае eventloop ещё нет, а во 2м уже нет. Но всё решаемо

Невозможность асинхронного инита заставляет посмотреть на конструкторы заново и вынести всю асинхронную инициализацию в отдельный метод

Резюмирую. Вкатывайся, но будь готов, что придётся менять мышление
341 1500228
Есть ли норм курсы по Python на степике? Посоветуйте, решил начать вкатываться потихоньку
342 1500242
>>494130 (OP)
Нашёл в гугл диске книжку mysql for Python, с неё хорошо будет вкатываться в базы данных?
343 1500260
>>500221
это троллинг?
344 1500277
>>500242

Вкатывайся в БД через БД. Хочешь мускуль -- хорошо, раскатывай контейнер с мускулем (ниже 8 не рекомендую -- там ещё не выпилен ублюдочный автоинкремент и нет поддержки CTE) или mariadb, ставь Workbench и упярод. Тебя ждёт погружение в сказочный мир нормализации данных, профилирования запросов и особенностей транзакций
А Python предоставляет лишь биндинги
345 1500287
асинхроность-это для однопоточных систем?
346 1500291
>>500287

так тупо, что даже толсто. потрудись почитать педивикию хотя-бы
347 1500293
что лучше,node.js или aiohttp?
348 1500294
>>500277

>Вкатывайся в БД через БД.


>Хочешь мускуль -- хорошо


Эммм... Я не слежу, но мускуль всегда был самой ублюдочной реализацие РБД, даже хуже ебаного аксесса.
Зачем ебать мозги, когда есть Постгре?
Или, внезапно, мускуль решил начать реализовывать стандарты хоть немножко?
349 1500306
>>500294

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

И да, ебучий ИхSQL наконец начал соответствовать стандарту. Меня поражает, что мускуль годами (sic!) был стандартом де-факто в вебе, и до релиза 8.0 был таким унылым говном. Блять, раз всех всё устраивало, это ж сколько в мире говноедов?

Вообще у мускуля есть убер-фича -- разные движки. Хочешь логи в БД пердолить -- на тебе колоночный движок, хочешь иерархии строить -- на тебе графовое двигло. По крайней мере на их вики всё выглядит чертовски шоколадно
350 1500316
>>500277

>ниже 8 не рекомендую


Лойс. Что тебе на работке дадут, то и будешь кушать.
351 1500321
>>500293
Архитектурно node.js получше, там намного лучше асинхронность, всё встроено в язык, все библиотеки асинхронные, что в asyncio может быть довольно муторно и уродливо, в ноде элегантно и за пару строчек.

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

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

Asyncio сложнее, требует большей квалификации, входной порог заметно выше, но в целом посерьёзнее. Но может начать стоит с ноды, а потом переехать.
352 1500324
>>500321
что ты вкладываешь в понятие более серьезный?
353 1500329
>>500306
Ок, уже читаю про восьмерку. Вроде, становится получше, да.
Я махнул рукой, охуев от того, как пятерка обходилась со временными типами - когда у наллабл поля вместо налла вставлялись нули, или когда, при апдейте одного поля, опустив упоминание других (а значит, я их не хочу апдейтить), эти самые другие забивались, опять же, нулями.
Да, я знаю, что можно было вхуячить какую-то там моду в настройках, или вовсе использовать другой тип. Но это какой-то пиздец.
Про невозможность использования подселектов для вью и уебочные сообщения об ошибках на пустом месте ("не могу создать временную таблицу" при каких-то простых операциях) я уж и вовсе молчу.

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

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

Короче, этому анону насрать на проблемы репликации, и как физически устроен апдейт пары полей в записи.
Ему нужно, чтобы база нормально реализовывала стандарт и не ебала мозги. Это точно не про мускуль версии 5 (не говоря уж о более ранних)
354 1500330
>>500316
мудила, ты прочесть можешь, о чем речь идет?
какая, на хуй, работка?
355 1500335
>>500330
Да, прочитал. Был вопрос, с чего учить сиквел, ты что-то стал за версии мускуля пиздеть. Мало того, что невпопад (sql не с mysql начинают), так еще и плохой практический совет начинать с последней версии.
356 1500338
>>500329

> когда у наллабл поля вместо налла вставлялись нули



О ДА! У меня тогда жопа просто неистово полыхала.

> невозможность использования подселектов для вью



Это шаблон select from select? Или что? Вьюхи не доводилось создавать.

> временную таблицу



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

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



Хм. Шота меня память подводит, надо глянуть ещё разик

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



Да, два чаю. Тогда даже лучше firebird. Остались приятные впечатления
357 1500344
>>500324
На node.js удобно писать простые задачи, реально удобно. Компактнее и нагляднее.

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

Например, общий паттерн по обмену данными в многопоточных и асинхронных приложениях в том, чтобы через очереди это делать. У тебя одна задача слушает очередь, а другая или другие туда данные кладут. Быстро и наглядно, стройно, решает кучу проблем. В asyncio это базовый функционал, в node.js асинхронный очередей нет.
358 1500346
>>500335
Всё зависит от того, какой функционал от SQL ты хочешь освоить. Не всегда нужно что-то сложное. Может тебе и sqlite будет достаточно.
359 1500347
>>500306

>раз всех всё устраивало


LAMP
360 1500348
>>500346

Кстати даже из sqlite выпиздили эти ебучие автоинкременты, что не может не радовать
361 1500349
>>500347

В данном контексте Linux+Apache+MySQL+Python?
362 1500351
>>500349
Нет, я именно про PHP
5 версия мускуля это как раз середина нулевых.
363 1500354
>>500349
Нынче вместо апача принято обходиться нджинском. А уж в случае питона практически необходимо, nginx нужен, а апач совсем не нужен.

Потом, из Питона не очень принято напрямую базу дёргать. Типовой АД из LAMP выглядел так, что у тебя в коде куча всяких mysql_query(), в которых прямым текстом код запроса указывался, и всё это вперемешку с вёрсткой html. Нынче это bad style даже в php, а в питоне иначе сайты делают. Чаще какие-нибудь ORM используются, хотя не всегда.
364 1500359
У вас интересный диалог, но ничего не понятно. Я вообще ничего не знаю про базы данных, пока как я понял, мне нужно просто ставить постгрескьюэль или файрбирд и методом тыка в них что-нибудь сделать?
365 1500360
>>500354

Всё смешалось: люди, кони,
Ну а я бессмертный пони

Сегодня ORM везде best practice, и использование SQL в коде -- дурной тон, но не всегда говнокод. Например, django ORM в щи тупая и ограниченная. Составной первичный ключ (timeseries, attributes)? До недавнего времени хуй вам, а не составной первичный ключ.

А вот за смешивание в одном файле кода на разных языках, будь то SQL, HTML или ещё какой-нибудь НЁХ, я нещадно ебал и буду ебать
366 1500361
>>500359

Короче, пиздуешь на sql-ex ru и ебашишь. Как заебут задачи уровня `select 'helloworld' from dual`, пиздуешь на codewars, где с тебя снимут стружку. Дальше планку тебе будет задавать codewars
15427093961180.jpg81 Кб, 662x720
367 1500366
>>500347

>LAMP


Не позорься.
368 1500369
>>500366
Вы мне сейчас таки с пруфами хотите сказать что это во времена пятого мускуля было не популярно?
369 1500371
Решаю задачки на питонтьютор. Есть кто таким путём чего то добился в программировании?
370 1500373
>>500369
Это таки не являлось тем, что всех устраивало. Выбор был не велик.
371 1500374
>>500359
Ты пока не объяснил, что ты хочешь в итоге получить.

Если крутое знание SQL, то это одна история. Если умение работать с БД, то другая.

Постгрю не так просто поставить, надо быть немного девопсом или ДБА, но это к sql никакого отношения не имеет.

Если ты ничего не умеешь, то начни с sqlite. Никакого геморроя по части установки и обслуживания, так ты освоишь сами механизмы работы с БД и базовый SQL. А потом уже сядешь за серьёзные базы и серьёзный SQL, если потребуется.
372 1500375
>>500374

>Постгрю не так просто поставить, надо быть немного девопсом или ДБА, но это к sql никакого отношения не имеет.


У нас какие-то разные релизы постгреса, видимо. В убунте apt-get install postgres, в маке и винде далее далее далее готово.
373 1500376
>>500335
Повторяю, ты мудила
Иди на хуй. Работка ждет тебя
374 1500378
>>500361
>>500374
Понял, спасибо, сяду сначала за синтаксис sql и sqlite.
Хочу получить знание SQL и субд на уровне бэкэнд джуна.
375 1500379
>>500359
Тебе нужно просто взять книжку и начать ее читать.
Методом тыка делать ничего не надо.
Когда ты начнешь понимать, чем table отличается от tablespace, и что значит "релационная" в словах "реляционная БД", поймешь, как элементарные селекты херачить, тогда и будешь думать, ставить тебе БД, или не ставить.
Можно вообще ничего не ставить, взять какую-нибудь H2, там все на файлах и клиент в браузере.
376 1500381
>>500373
Ну да, конечно.
Нормальные ребята могли работать с ораклом, мс-скл, с постгресом и парой-тройкой эмбеддед-баз. На яве и .нет.
Но миллионы хуесосов выбирали пхп и мускул, "патамуштаочиньсложна".
Так что это был именно выбор. Который устраивал двоечников. Как сейчас яваскрипт и поделия на нем.
377 1500382
>>500361
На sql-ex очень хуевая постановка задач.
Хуй проссышь, чего они хотят.
Не говоря уж о том, что названия таблиц во множественном числе.
Явный признак пидараса.
378 1500383
>>500373
>>500381
Собственно, анон расписал, почему я упомянул именно LAMP.
379 1500385
>>500338

>select from select?


Да.
СТЕ же только в восьмой появились.

Причем просто в селекте можно было сделать фром селект, а во вью - хуй на рыло.
380 1500386
>>500379
Какую книжку?
381 1500387
>>500385

уъу блин. В оракле такое запросто. Любопытно, в восьмёрке пофиксили или нет
382 1500401
>>500381
Эта связка решала задачи и показывала очень хорошую производительность, недостижимую на обычных БД.

Использовали в основном базы MyISAM, которые даже без транзакций, то зато работали сильно быстрее, чем транзакционные БД.

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

Сейчас другая реальность, качество софта подросло, железо ускорилось и стало на порядок доступнее. Когда нужна высокая производительность чаще используют NoSQL подходы, когда нужно сложное хранение и выборка, сложная логика, тогда и базы соответствующие.
383 1500402
f{""} - пиздато
384 1500423
>>500401
Майисам не только без транзакций, но и без ссылочной целостности. Т.е. ты там можешь писать create constraint, но они не будут работать (по крайней мере, в ранних версиях так было).
Это не потому что "сильно быстрее", а потому что разработчики - криворукие неумехи.
Ебаный Caché появился в 1997-м, он еще быстрей, но 99% дба его не только не использовали, но даже и не слышали о нем.
Единственное достоинство мускула в начале его пути - бесплатность. Оракл по скоростям крыл его как бык овцу. Даже мс-скл, который тогда был еще сайбейзом с переклеенной этикеткой, был в тыщу раз круче.

>которые даже без транзакций, то зато работали сильно быстрее


>нужно очень много простых запросов


Видно, как хорошо ты разбираешься. Нужны запросы, поэтому без транзакций быстрее. Ок.

В общем, не позорься, просто помолчи.

Мускул - очевидное говно, данное человеку для воспитания смирения. Защищать его могут только "солнечные дети" с лишней хромосомой.

>Когда нужна высокая производительность чаще используют NoSQL подходы


Когда не смог осилить sql, испльзует NoSQL подход
Когда не смог понять, что такое 3НФ, использует NoSQL подход
Когда хранить как-то надо, а схему БД нарисовать не получается в силу слабоумия, использует NoSQL подход
Ну и еще пара ребят используют NoSQL по делу, но тут ты их не найдешь.
385 1500430
>>500423

>Когда не смог осилить sql, испльзует NoSQL подход


>Когда не смог понять, что такое 3НФ, использует NoSQL подход


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

Такие начинают лепить код и архитектуру, который потом чудовищно тормозит, ради которого надо делать сложнейшие оптимизации движка СУБД.

Вот кеши только неучи делают? А кеш как технология в принципе нарушает 2НФ.

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

НФ нужны не чтобы дрочить на них.
386 1500456
>>500344
короче,на ноде лучше забацать прототип и по ходу дела потом лучше переписать?
387 1500457
>>500376
Успешный стартапер, ты?
15396224862161.jpg191 Кб, 1920x896
388 1500489
Че, блять, этому ебаному яндексу еще нужно от меня?
389 1500494
>>500489
По-моему print должен быть внутри функции и печатать print(f' вы такой дурак ебаный {i'})
390 1500509
>>500489
А что это? Где можно посмотреть?
391 1500519
>>500489
Тебе нужно понять, что ты не высчитал сумму хронометража песен, ебло тупое. За мат извини
15396224862161.jpg191 Кб, 1920x954
392 1500562
>>500494
Пикрил - как выглядел изначально код, которыи необходимо дописать. И print вынесен за пределы функции. В подсказках черным по белому написано: Внутрь f-строки вставьте значение длины списка.
>>500519
Прочитаи внимательно задание, ебло тупое. Про хронометраж ни слова. Нужно посчитать количество песен.
>>500509
яндекс практикум
https://praktikum.yandex.ru/trainer/backend-developer/lesson/3828fc2d-6030-4853-835c-aee39545ac2c/task/8a9b56c8-3e7e-4506-80ba-5a0fc11faa74/
15396224862161.jpg152 Кб, 1920x897
393 1500571
>>500494
Я ваще хз че от меня требуется. В первом случае код тоже пашет как часы.
На вот, по твоему варианту.
394 1500581
>>500562
Прочитал куда внимательнее тебя, тупой школьник.
395 1500584
Сап, питонач. У меня возникла проблема с функцией find.
Я просто не понимаю как рассчитывать этот регистр и как найти шаг
Пересмотрел кучу видосов так и не понял. Последняя надежда только на тебя двач
396 1500585
>>500581
Где там про хронометраж?
2.PNG5 Кб, 632x68
397 1500619
Двач, почему я не могу использовать в своей программе скаченный шрифт?Я могу менять шрифт на любой другой , который был в системе раньше, т.е который я не качал самостоятельно, и все работает.Модуль pygame если что.
398 1500853
>>499551
Какой учебник?
399 1500854
image.png121 Кб, 910x739
400 1501019
Читаю automate the boring stuff with python и хочу попросить ваш оценить мое решение. На отсутствие записи в файл не обращайте внимание, там тупо open(f, 'w') и закрытие.

data = 'The ADJECTIVE panda walked to the NOUN and then VERB. A nearby NOUN was unaffected by these events.'

madlib_regex = re.compile(r'(NOUN|VERB|ADVERB|ADJECTIVE)')
matches = madlib_regex.findall(data)

for found in matches:
sub = input(f'Enter a {found}: ')
data = madlib_regex.sub(sub, data, 1)

print(data)

Спасибо.
401 1501035
>>500430

>кеш нарушает 2НФ.


Я тебе предложил не позориться, но тебе неймется.
Ну, давай, жги, хуй с тобой
402 1501112
>>501019

>На отсутствие записи в файл не обращайте внимание, там тупо open(f, 'w') и закрытие.


Задание, кажется, просит прочитать данные из файла, но не говорит, куда деть результат? В таком случае open(f, 'r'), желательно через выражение with.

Решение нормальное. Что можно улучшить:

1. Заставить это работать для большого количества данных. Для входного файла в 10-20 Гб данные можно читать кусками (главное не разорвать какой-нибудь NOUN на NOU и N) и кусками же обрабатывать.
2. Вызов madlib_regex.sub каждый раз создает новую строку. Этого можно избежать, если данные заранее разбивать на слова и хранить в списке. В целом в питоне часто можно избежать использования регулярок. Здесь все понятно, но regexps легко становятся трудными для восприятия.
3. В input всегда используется артикль "a", но случае с ADJECTIVE должен быть артикль "an".

Если от входных данных не ожидается никаких подводных камней, то сойдет и так. Тем более, в книге, я думаю, должна быть часть про то, что делать, если то и то не помещается в оперативную память.
403 1501139
>>501019
>>501112
Проще всего читать построчно.
Общий код:
1) блок запроса от пользователя NOUN, ADJECTIVE и других слов
2) вложенные open
with open('oupput.txt', 'w') as f_output:
___ with open('input.txt', 'r') as f_input:
_______ for line in f_input.readline():
___________ line = line.replace('NOUN', user_noun)
___________ line = line.replace('VERB', user_verb)

ну и там же запись в файл.
404 1501178
Итак, снова я вылажу на свет. Анчоусы, пикрил задача и ещё один моё решение к ней. Она работает, тесты прошла. Я пишу вот зачем, поясните мне как можно было бы проще сделать, может быть я какие-нибудь функции этого языка ещё не знаю, просветите как можно было бы записать это более проще и читаемее, а то я чуть мозг себе не сломал пока писал этот код.
405 1501179
>>501178
Мне также искренне жаль того анона который попытается в это вникнуть, т.к. это мой код и я его с трудом писал, хотя читаю легко, но наверное тому кто это не писал будет довольно сложно, но всё же, опытный анон, постарайся понять и пояснить мне где я обосрался.
406 1501190
>>501178
Используй срезы
407 1501191
>>501178
def remove(string1, string2):
return string2.replace(string1, "", 1)
408 1501192
>>501191
>>501178
и коммент - смотри доки на методы базовых типов.
Вот у строк есть метод replace, где в можно лимитировать число замен. В данном случае одна замена.

У питона вообще очень большой штатный функционал, и кучу всего можно сделать с его помощью.
409 1501200
>>500489
Откуда ты взял список, используемый внутри функции calc_stat в print?
Не подразумевает ли задание, что нужно использовать тот список, который передаст в переменной listened их среда? То бишь написать что-то вроде
print(f'бла бла бла {calc_stat(listened)} бла бла бла')
410 1501284
>>500489
Скорее всего надо, чтобы в коде была функция
def calc_stat(listened):
...

и только она, никакого внешнего кода. print() должен быть внутри этой функции. А платформа уже во время тестов сама будет вызывать calc_stat с разными тестовыми значениями.
411 1501333
>>501200
>>501284
Спасибо за внимание, друг, но вот тут >>500571 я пробовал делать так, как ты подсказал. Результат на пике.
Интересно, что хотя print() зашита в теле функции, при её вызове результат вычисления не отображается.
412 1501335
>>501200

Вот тут >>500562 скрин изначального задания.
413 1501355
>>500571
У тебя принт после ретёрна
414 1501357
Есть что почитать про архитектуру? Работаю год, а все еще тупой.
415 1501398
>>501357
С опытом придет, главное пили свои проекты, прокачивал скилл. Если будешь просто тачки на работе закрывать - соснешь хуйца, в перспективе.
Ничего почитать не могу посоветовать.
Хотя, если ты бээндщик, почитай из шапки книгу про микросервисы, очень интересно. Нет, не тому що это популярно, а для общего развития и понимания процессов.
416 1501416
С какой целью народ в конце 2019 года учит питон?Для какого-то обучения, прицеливается в какую специфическую область, просто потому что на слуху? Почему не какие-то другие технологии вроде ноды или го? Не траллинга ради, а информации для.
417 1501432
>>501192
>>501191
а я такого в ученбнике ещё не проходил, но спасибо, replace возьму на заметку.
418 1501436
>>501192

> смотри доки на методы базовых типов.


ещё раз огромное тебе, спасибо, анон. мне бы ещё документацией научиться пользоваться, а то я ей пользуюсь только в случае если мне из гугла результат выпадает.
419 1501438
>>501416
1. Простой
2. Востребован
3. Куча библиотек
420 1501442
>>501416
Потому что кому-то просто нравится погромирование, кто-то им занимается просто потому что интересно, а не потому что востребован и 300кк, всё иди нахуй.
421 1501444
>>501438

>2. Востребован


Сомнительный пункт. В какой-то момент из-за хайпа питонщиков стало слишком много и те же зарплатки или рейты на фрилансе просели сильно. Ну разве что за копейки в виде 70к в год докапывать за индусами легаси.
422 1501452
>>501444

>хайпа


в школу пиздуй, хайпер ебучий. или на ютуб. откуда ты приполз
423 1501473
>>501444
Ну, тут ты перегнул. Это скорее у ноды с го проблемы с востребованностью, чем у питона. Хз, что там по зп, но язык в любом случае достаточно востребован, это не haskell и даже не c++.

> Python: 2834 вакансии


> Go: 586 вакансий


> Node.js: 500 вакансий

424 1501482
>>500489
>>500562
Получил ответ от техподдержки: "Пусть функция возвращает строку целиком — вызов, написанный в прекоде задачи, не изменяйте."
Чёт совсем запутался. Выручайте, братья
425 1501483
>>501473
Там у питона сильно завышенная цифра, так как во многих вакансиях его указывают как вспомогательный язык.
426 1501489
>>501416

>Почему не какие-то другие технологии вроде ноды или го


Потому что async/await в питон уже завезли.
Это сейчас самый универсальный язык, который пишется нормальными людьми, а не нодошкольниками.
427 1501494
>>501483
Окей, поищем только по названиям вакансий.

Python: 370
Go: 14
Golang: 67

Ноду искать проблематично, её часто пишут просто как "JavaScript".
428 1501496
>>501489
Ты ведь в курсе, что третий питон всего на 5 месяцев старше ноды?
429 1501500
>>501496
А ты ведь в курсе, что возраст языка != скорость его развития и количество полезных фич в нём?
430 1501514
>>501500
Да, а ты?
431 1501602
>>501473

>Хз, что там по зп


Потолок 5к у синьёра помидора в РФ. Релокетить питониста за бугор никто уже не будет, своих хватает.
432 1501625
>>501416
Потому что очень простой. На питоне даже дебил может кодить, и код будет легко читаем.
433 1501640
аноны, пытаюсь вкатиться в веб на питоне (джанго и фласк собсно). и вот в моем миллионике-зажопье таких вакансий просто ну люто мало а те что есть шлют меня nahooi. так вот вопрос: стоит ли перекатываться в нейронки с машобом (таких вакансий в 4 раза больше сам считал но при этом я понимаю что будет заеба с матаном) или же пойти учить пхп и на нем чет пытаться найти (таких вакансий в 12 раз больше тоже сам считал)
434 1501650
>>501640
переезжай из пидарашки в город для людей
435 1501652
>>501640
О еще одна жертва веба на питухоне, классика.
436 1501659
>>494130 (OP)
Ребят, я недавно вкатился в питон, смотрел только курсы на ютубе. Что нужно читать, чтобы научиться пилить ботов? К сайтам коннеткиться там .
Пока что планирую прочитать укус змеи и как то вкатываться в джанго
437 1501673
>>501650
так я и пытаюсь набить себе бабло и опыт работы чтобы нормально переехать в город для людей
>>501652
дристанул на всю квартиру

аноны, а есть еще какие советы то?
438 1501714
>>501673
Если много вакансий на пхп, то учи пхп. Я вот смотрел hh нск и тут не особо много вакансий на пхп, бэкэнд джуниоров примерно равномерно мало на питоне, пхп, сишарпе и ноде. Нет такого, что если с питоном никак, то учишь пхп и сразу куча работы.
439 1501732
>>501659
Книжки есть в гуглдиске, но ты же всё равно ничего читать не будешь. К сайтам коннектиться это типо про парсинг? По большей части можно за вечер изучить его, это хуйня. Боты на всякие игры с другой сложная и муторная хуйня, которой мало кто занимается, вот тут есть серии прикольные https://pythonprogramming.net/bot-tutorials/
440 1501748
>>501732
Буду я читать. Боты не для игр, а для сайтов. Думаешь изи?
441 1501753
Вообще тред конечно пиздецовый. Или мамкины вкатывальщики, или пиарщики курсов-хуюрсов или просто вопросы, которые за секунду находятся в гугле, что позволяет сделать вывод, что здесь не знают не только питон, но и английский. Безблагодатность.
442 1501763
>>501748
Что за "бот для сайта"?
443 1501766
>>501482
Внутри функции напиши

return f'{len(listened)}'
444 1501801
>>501753
унижай дебилов, хуле ты как маленький
445 1501804
бутылка еще проще фласка?
446 1501806
>>501804
Нормально разговаривай, долбоеб, какая ещё бутылка?
inb4 на которой ты сидишь
447 1501807
>>501806
bottle
448 1501809
>>501804
Чуть проще, да. Но фляга сама по себе несложная.
449 1501812
>>501809
еще вопрос,алхимия легко учиться?
базу по простым скл запросам знаю
450 1501819
>>501807
а чем бутылка лучше фласки, лимит есть хотя бы?
image.png202 Кб, 450x300
451 1501820
>>501112

>В таком случае open(f, 'r'), желательно через выражение with.


Мне тоже так удобнее, но в этой книге почему-то по with ничего не говорится. До этой книги читать Python Crash Course 2nd, там без with никуда.

>Заставить это работать для большого количества данных. Для входного файла в 10-20 Гб данные можно читать кусками (главное не разорвать какой-нибудь NOUN на NOU и N) и кусками же обрабатывать.



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

>Вызов madlib_regex.sub каждый раз создает новую строку. Этого можно избежать, если данные заранее разбивать на слова и хранить в списке. В целом в питоне часто можно избежать использования регулярок. Здесь все понятно, но regexps легко становятся трудными для восприятия.



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

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



Пока еще не было. Не рановато ли мне это изучать?

Конечно же спасибо большое за ответ!
452 1501826
>>501763
Ну свою деятельность на сайте автоматизировать
453 1501827
>>501763
>>501826
Покупку/продажу
454 1501831
Я просто охуеваю с этой книжки она ломает мой мозг, 3 часа я думал над тем чтобы сделать пикрил задачу. И да функция replace по задумке автора не должна использоваться, он её назвал сахарной пудрой, типа это жирно и мажорно нужно без ней обойтись, лол. Использовать можно только
len
str[j]
str[j:n]
str.find(k)

Да, да мой код гавно с костылями, вы можете лучше используя только 4 вышеприведённых инструмента? Пожалуйста, постите свои коды, я с удовольствием на них посмотрю.
1416899465484.jpg35 Кб, 362x346
455 1501841
456 1501844
>>501841
ты мне сейчас мозг сломал. а какой у тебя стаж кодинга?
457 1501845
458 1501849
>>501845
15 лет?
459 1501850
460 1501852
>>501841
>>501850
я твой код сейчас разобрал. это шидевор, спасибо огромное
461 1501874
>>501852
Какую книгу ты читаешь?

мимо
462 1501881
Сап двач, пишу небольшую программку, которая бы скачивала картинки с сайта, у него страницы устроены по типу: site.com/тутчисло (это уже ссылка на саму картинку, допустим). Мне, условно, нужно сохранить все с 1 до 20.
Я пишу:
import requests
a=int(1) #переменная для числа в ссылке
q = int(1) #переменная для числа в имени файла
while a <= 20:
f=open(r'E:\11\e' +str(q)+ ".jpg","wb") #открываю файлы для записи
ufr = requests.get("http://site.com/"+str(a)) #задаю ссылку
a = int(a) + 1
q = int(q) + 1
f.write(ufr.content)
f.close()

В итоге создаются все 20 файлов, но содержимое есть только у первого. Помогите, пожалуйста, победить.
463 1501885
>>501812
Да, изи
D51A7506-1721-472F-AA7E-E6E143AB3612.jpeg689 Кб, 3264x2448
464 1501892
>>501881
Каждый раз, когда ты в цикле открываешь файл на запись, ты его перезаписываешь
Используй конструкцию with open("имя файла", "wb") as f: и дальше твой цикл. В данном случае явно закрывать файл с помощью .close() не нужно, в этом преимущество такой конструкции
Когда объявляешь переменные не обязательно явным образом указывать их тип, достаточно просто а = 1 и а +=1 , чтоб прибавить единицу к существующему значению а
465 1501895
>>501892
А,соре, долблюсь в глаза, ты записываешь не в один файл, а в 20 разных
15493915913930.png521 Кб, 600x681
466 1501898
>>501892
Ногти грязные. А я передернуть уже хотел.
467 1501916
>>501874
How to Think Like a Computer Scientist, Learning with Python, third edition.
Только она на английском только, на русском нету.
468 1501932
Что за штука такая эти генераторы? Какого хрена при проходе с помощью os.walk() во второй раз пройтись я уже не смогу. Или вот:

>>> a = (i for i in range(2, 8))


>>> a


<generator object <genexpr> at 0x00000270527236C8>

>>> for i in a:


... print(i)
...
2
3
4
5
6
7

>>> for i in a:


... print(i)
...

>>>



Во второй раз пройтись уже не могу. Объясните, пожалуйста. Спасибо.
469 1501944
>>501881
Так а сервер-то нормально отвечает?
добавь там в цикл после реквеста print(ufr.status_code) и посмотри на ответы сервера
470 1501960
>>501841
Очевидное переполнение стека вызовов, никто количество вхождений не ограничивал.
Решается лёгким переделыванием рекурсии в динамическое программирование снизу. https://ideone.com/E6c7mj
471 1501975
Каким образом можно модифицировать байт-код модуля перед выполнением, причём реализовать это в виде вызова определённой функции в любом месте python-кода этого модуля? Желательно без помощи сторонних библиотек.
С модификацией кода отдельной функции всё предельно ясно. Со всем файлом как такое провернуть?
472 1501976
>>494130 (OP)

>В программирование есть некая возрастная дискриминация - молодые далбаебы нужны везде и всюду, старые - не очень. В основном период активности программиста - до 40-45 лет. Дальше если ты не перекатился куда-то выше или не замутил свой стартап - будет крайне печально поскольку ты никому не нужен и проще выкинуть тебя и нанять молодую обезьянку после института. Люди 40-45 лет работающие в IT редко программируют сутками, а скорее берут на себя организаторские обязаности - Тим лид, Проджект менеджер, etc.


Т.е если я вкатываюсь в 27 лет и проработаю 13-18 лет и стану тим лидом, то всё норм еще может быть?
473 1502003
>>501932
Генераторы работают только один раз, при первом вызове. Гугл в помощь.
474 1502017
>>501976
Ты еще можешь перекатиться в байтоебы, там до седых мудей можно пердеть.
475 1502320
пхп-однопоточный
нода-однопоточная и асинхронна
а питон?
476 1502353
>>501976

>Т.е если я вкатываюсь в 27 лет и проработаю 13-18 лет и стану тим лидом, то всё норм еще может быть?


Нет, не норм. Ты даун, которому интересна карьера, а не программирование.
477 1502361
>>502320
Асинхронный, многопоточность зависит от реализации.
478 1502380
>>502353
Хорошо, когда карьера и интерес к профессии совпадают. Ведь я не смогу реализовать своих интересов если не смогу реализоваться профессионально.
479 1502384
>>501753
Когда начинаешь работать, то покидаешь тред, т.к. учишься гуглить
480 1502393
>>502353
Что делать будешь в 45 без работы, но с интересом к программированию?
481 1502471
блять аноны. пытаюсь вкатиться в джангу уже целый месяц. почему вкатиться? потому что делал дважды нахуй курс по офиц докам и все время стопорилось на каком то моменте, я перелопачивал весь код и все равно нихуя ниче не работало, помимо этого пытался сделать по еще одному тутору с инета - тоже такая же хуйня, по книге - сейм щит, по видеоуроку одному - снова, далее щас нашел мега подробный блять видеокурс где для самых дебилов все - снова пиздос где у автора все ок и работает а у меня параша ебаная.в чем трабл то?
1469851553139.jpg29 Кб, 600x338
482 1502474
483 1502477
>>502471
Вангую, Питон не той версии, кириллица в пути или ещё какая подобная хуета.
484 1502483
>>502471
Пиздуй выкатываться во фласк. Для меня джанга была плавильней мозгов, а фласку схватывал на лету.
485 1502499
>>502477
а может ли сильно различаться? там уроки по джанге 2.х от сентября 2018 я щас про последний видеокурс говорю
кириллица отсутствует вообще везде
>>502483
да на фласке полторы вакансии, а жить на што то надо. алсо, у меня жопа горит с того что там нужно все самому блять прикручивать, в то время как в джанге все изкаробки
486 1502508
Одумайтесь, дебики, нет работы в питухоне на вебе. Куда вы лезете. Нет бы дрочить бигдату, они мертвую джангу ковыряют сука ору немношко
487 1502509
>>502499

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


Так если научишься/умеешь, чего гореть то.
488 1502510
>>502499

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


Это не баг, а фича. Во фласк намного легче вкатиться, но потом понимаешь, что тебе не хватает функционала, начинаешь подключать ORM, модели, аутентификацию, и вжух - изобрёл джангу. Зато разобрался по мере нужды, а не охуел от количества информации в самом начале и решил забить.
a.png6 Кб, 328x234
489 1502512
>>502508
НУ НЕТУ НА ПИТОНЕ РАБОТЫ, НЕТУ, Я СКАЗАЛ, ХУЛЕ ВЫ МНЕ НЕ ВЕРИТЕ
490 1502523
>>502512
Давай маня, приходи, когда устроишься кек.
491 1502526
>>502523
ты заебало анон. тогда по твоему нужно пхп учить для веба? или руби блять?
492 1502555
Это программа находит НОК для чисел от 1 до 20, но хотелось чуть переделать ее последний шаг , чтобы решение находилось не с помощью цикла , а с помощью рекурсии , это же тут возможно сделать
493 1502560
Блять а джанго рест фреймворк-то че еще за хуета такая. НАХУЙ. ЭТО. НУЖНО. Ебаный рот это все говно просто невозможно выучить. НА ХУ Я все это высирается. Вот чем просто джанго может не устроить, что нужно высрать еще какое-то дерьмо, которое я должен учить. Уебища прекратите это делать, вы совсем что ли там пизданулись???
494 1502564
>>502526
Да уж лучше пхп лол, чем питУХоН
495 1502571
>>502560
Ну не учи, делай рест апихи на ванильной джанге
496 1502572
Продублирую свой вопрос сюда, в ньюфаготреде мне ни на какие вопросы про сокеты не отвечают, изучаю асинхронность и пытаюсь лучше понять, как сокеты и селекторы работают, статью на англовики прочитал и она многое прояснила, но остаётся непонятность:

У меня вопрос про сокеты, вот серверный сокет получил запрос и приложение вызвало accept(), ось создала ещё один сокетный файлик под это соединение. Дальше, если приложение клиента делает send() и закладывает некоторую информацию в свой сокет, то эта информация сразу же осью перекидывается на комп сервера и там загружается в сокет соединения? И уже из сокета соединения тогда приложение может просто выгрузить эту инфу сразу через recv()? Или в сокет соединения приходит только какой-то маячок, что удалённый клиент готов отправить данные, а сама вот эта информация будет переслана по интернету только когда сервер запросит recv()?
То ест вот говорят буфер записи, буфер чтения у сокета, а где именно он физически находится?
И ещё вот в функции select() понятно какие сокеты готовы к чтению, а что значит готовы к записи? Там будут все сокеты, у которых буфер на запись не переполнен?
497 1502579
>>502555
def lcm(args):
____if len(args) == 2:
________return args[0]
args[1] // gcd(args)
____else:
________return lcm(lcm(
args[:len(args) - 1]), args[-1])
498 1502581
>>502572
Сложно говорить без указания конкретного протокола, но

>Дальше, если приложение клиента делает send() и закладывает некоторую информацию в свой сокет, то эта информация сразу же осью перекидывается на комп сервера и там загружается в сокет соединения?


Да, именно так. Не только "осью перекидывается", при передаче по сети много посредников.

> Или в сокет соединения приходит только какой-то маячок, что удалённый клиент готов отправить данные, а сама вот эта информация будет переслана по интернету только когда сервер запросит recv()?


Нет, передается все сразу. Кроме того, успешный send не гарантирует, что на приемнике был вызван recv.

> То ест вот говорят буфер записи, буфер чтения у сокета, а где именно он физически находится?


В ядре ОС. Когда блокируется вызов send, это означает, что буфер записи переполнен и необходимо подождать, пока данные из него физически окажутся в сети. Когда вызов send возвращает, это означает, что данные были переданы в буфер записи. Это важно, успешный send не означает успешную передачу данных.

> Там будут все сокеты, у которых буфер на запись не переполнен?


Эм, вроде того. Запись ведь тоже может блокировать, а значит и select имеет смысл.
499 1502582
500 1502594
>>502526
Этот грубиян отчасти прав. При хорошем знании джанги мне сложно представить фреймворк, в котором будет проще или быстрее наклепать качественный сервис, апи или сайт. Проблема в том, что это плохо масштабируется.

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

Если говорить о росте кодовой базы, то Джанго мало что сообщает об организации большого количества кода. Сервисы, DI, что-нибудь еще готовое? К сожалению, стандартные рекомендации заканчиваются "толстыми" моделями и "приложениями", из которых мало кто может извлечь пользу.

Здесь же начинает играть роль и сам язык. Когда-то скриптовые языки показали, что большие кодовые базы можно писать и без статической типизации (главное - протестировать), но теперь у нас есть языки со статической типизацией, которые выглядят почти как динамические (typescript, kotlin) - можно получить лучшее из двух миров - да еще и с non-nullable типами по умолчанию. Питон классный, но уже видно, что это не самый новй язык.

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

В то же время в бигдате у питона конкурентов намного меньше (скорее, эм, там питон и джава?) и его любят люди, которые не программисты по основной специальности (саенс и вот это вот всё).
501 1502600
>>494130 (OP)
Аноны, подскажите где можно найти простенькие задачки для практики.
502 1502603
>>502600
codewars
503 1502610
>>502594
Из веба на питоне можно перескочить в веб на другом языке типо ГОвна с минимальными потерями, особенно если микросервисы дрочил (которые на питоне и так очень удобно писать и масштабировать при правильной архитектуре), занимаясь же бигдатой перескочить нельзя.
504 1502628
>>502581
Спасибо, анон!

>Сложно говорить без указания конкретного протокола


Извини, забыл написать, обычный tcp.
506 1502874
>>502508
рельсы все тоже не сдохнут
507 1509435
>>494267
для таких как ты есть джангогёрлс
Тред утонул или удален.
Это копия, сохраненная 18 ноября 2019 года.

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

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