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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
pygood.png1,1 Мб, 2000x2000
PYTHON №9 1159798 В конец треда | Веб
F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/Hat

Свой код кидайте через https://repl.it/languages/python3

Книги: https://yadi.sk/d/tArKKuQu3Kejuq и ссылка на PyCharm
Книги: https://yadi.sk/d/H-00n-UG3RSQem/

Предыдущий тред >>1156174 (OP)

Python питон
2 1159848
>>1159317>>1159295

>IndexError: list assignment index out of range

Леса.png438 Кб, 570x585
3 1159893
>>1159295
Если нужно изменить оригинал:
from itertools import repeat
start_list[1:len(start_list)-1] = repeat(0, len(start_list) - 2)

Если нужен новый лист:
from itertools import repeat
new_list = [start_list[0], *repeat(0, len(start_list) - 2), start_list[len(start_list)-1]]

Пнятненько?
domovyi-sych1.jpg27 Кб, 387x496
4 1159899
Из help(dict):

> | fromkeys(iterable, value=None, /) from builtins.type


> | Returns a new dict with keys from iterable and values equal to value.


Что значит

>from builtins.type


?
2018-03-18 (1).png231 Кб, 1017x945
5 1159922
>>59798 (OP)
оп-хуй

сайтик для самых зеленых антошек
https://sites.google.com/view/pypry
6 1159941
>>1159688

>кому надо тот сам комитит


Ты я смотрю, не сильно понимаешь в менеджменте. А ведь ирония в том, что ленивые куски говна часто бывают гениальным разработчиками и чтобы им чего-то добиться, нужно, чтобы рядом были не менее гениальные менеджеры, понимающие в то же время в разработке. Классический пример - Стив Возняк, который в одно рыло сделал Apple II, но все же знают, что он бы его сам никогда не создал, всё это стало возможным, только потому что его вдохновлял Стив Джобс...

>я тебе советовал не смотреть а стриммить


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

>ленивые куски говна часто бывают гениальным разработчиками


так себе утешение

>сам никогда не создал


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

>логично сначала посмотреть


нет, если тебе просто нужна мотивация, качай обс заводи и погнал, а если тебе надо найти йобыря, посветить сракой и собрать донаты со школьников, то да, гугли, рисуй кнопочки, пердолься с оверлаями, мультистримами и тд и тп
8 1159954
>>59952
Ты снова делишь на ноль. Сначала предлагаешь стримить, а потом предлагаешь это делать ни для кого, что равносильно тому, чтобы не стримить. При этом, похоже, ни одно стримера ты сам ни разу не смотрел даже.

>кто реально хочет — тот делает


Как у тебя всё просто! Еще скажи, что мотивация либо есть, либо ее нет... Мир, блядь, не сводится к нулю и единице и мотивация вполне может описываться единичным вектором в двумерном гильбертовом комплексном пространстве, а суперпозиция с мотивациями других людей может давать интерференционную картину, где все выигрывают, даже если по отдельности вероятность каждого из них стать единицей была крайне мала...
MTFmx2It0nI.jpg69 Кб, 750x750
9 1159958
>>59954

>а потом предлагаешь это делать ни для кого


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

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

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

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

>Как у тебя всё просто!


так и есть родной

>мотивация либо есть, либо ее нет


бывают замотивированные на половину лол?

ты либо тащишься от того что делаешь, либо убеждаешь себя в этом

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

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


Запустить стрим - это нажать одну кнопку. Сама настройка занимает еще 5-10 минут. Олсо так сложилось, что я очень много стримов организовывал и провел. И в рамках хобби и по работе. В живую выступал перед аудиторией с лекциями, еще преподавал в аспирантуре. Всё это полезный опыт, но не нужно его переоценивать, более того, это вообще далеко не всем подходит, у многих вред от стресса значительно превысит любые положительные эффекты. Не говоря уже о том, что огромное время, потраченное на подготовку подачи материала, можно было бы посвятить изучению чего-то для себя нового.

>бывают замотивированные на половину лол?


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

>либо тащишься от того что делаешь, либо убеждаешь себя в этом


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

>хотят что бы ты стал лучше


Нет. Мозг и тело хотят только лениться и бесконечно сберегать энергию, удовлетворяя при этом основные первичные потребности, но не более того. И такой потребности, как саморазвитие, в нас нет и никогда не было. Ну иначе все бы становились учеными, стремились сделать великие открытия, разделяли идеи трансгуманизма и т.п. Но по факту мы имеем миллионы тупиц и единицы тех, кто пытается не быть тупым, но нихуя не понимает ни как этого добиться, ни, главное, - зачем!
11 1159982
>>59962

>Запустить стрим - это нажать одну кнопку.


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

>вред от стресса


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

>эмоциональное и профессиональное выгорание, депрессии, потеря цели в жизни, ощущение бессмысленности того, что делаешь


и почему все это? ты внутренний диалог с собой не ведешь что ле!?

>если ты еще молод, вряд-ли с чем-то подобным сталкивался


бросил институт на 2 курсе, работал фотографом днем, потом во вторую смену на складе, после первой ночи фотографирования в ночном клубе украли камеру(спустя 2 недели после покупки на лове-подарок к др) в метро тому шо уснул, потом был немножко сиджи артистом, граф дизайнером и вот теперь к 26 докатился до тридешки в риалтайме

и таки да братуха, все по изичу, кушаю ноотропы нет и мне заибись ага спойлерИРОНИЯ

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


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

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


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

>ни, главное, - зачем!


даже на ошеломляющую пропоганду в совке все было не так радужно, хоть и имело успех, я при всем уважении к заслугам предков, считаю капитализм более совершенной формой, где отвественность за мотивацию лежит на индивиде, а скажем какой нибудь илон маск пробует тебя подзадорить
12 1159987
>>59982
Я в целом понимаю тебя и твою позицию (ты хочешь быть чем-то большим чем есть). Но тем не менее, вижу, что у тебя масса заблуждений в голове. Ну вот например:

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


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


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

Однако социализация != саморазвитию. И появившееся в последнее время деление интеллекта на, скажем так, классический и интеллект социальный - прямое тому доказательство. Человек хорош только в том, в чем постоянно совершенствуется и нельзя стать лучше в программировании, тратя все свои силы на обеспечение более высокого места в социальной иерархии...

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

>считаю капитализм более совершенной формой


Ну да, вот только если глянуть как живут в самой крутой стране мира - Швейцарии, то быстро придешь к выводу, что там нихуя не капитализм, а скорее социализм! Если же посмотреть на Японию - лишь немногим менее благополучную страну, то там до сих пор чуть-ли на кастовое общество, полное условностей. Вывод напрашивается очевидный - дело не вовсе не форме как таковой, а в социуме и тех негласных и гласных договоренностях, которых соблюдаются. Индвиды же вроде Илона Маска как раз выбиваются из общей картины, потому что они никаких договоренностей не соблюдают как раз! Но ирония в том, что вряд-ли ты когда-нибудь станешь хотя бы валютным миллионером, не говоря уже о том, чтобы стать оригиналом, о котором будут говорить окружающие...
12 1159987
>>59982
Я в целом понимаю тебя и твою позицию (ты хочешь быть чем-то большим чем есть). Но тем не менее, вижу, что у тебя масса заблуждений в голове. Ну вот например:

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


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


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

Однако социализация != саморазвитию. И появившееся в последнее время деление интеллекта на, скажем так, классический и интеллект социальный - прямое тому доказательство. Человек хорош только в том, в чем постоянно совершенствуется и нельзя стать лучше в программировании, тратя все свои силы на обеспечение более высокого места в социальной иерархии...

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

>считаю капитализм более совершенной формой


Ну да, вот только если глянуть как живут в самой крутой стране мира - Швейцарии, то быстро придешь к выводу, что там нихуя не капитализм, а скорее социализм! Если же посмотреть на Японию - лишь немногим менее благополучную страну, то там до сих пор чуть-ли на кастовое общество, полное условностей. Вывод напрашивается очевидный - дело не вовсе не форме как таковой, а в социуме и тех негласных и гласных договоренностях, которых соблюдаются. Индвиды же вроде Илона Маска как раз выбиваются из общей картины, потому что они никаких договоренностей не соблюдают как раз! Но ирония в том, что вряд-ли ты когда-нибудь станешь хотя бы валютным миллионером, не говоря уже о том, чтобы стать оригиналом, о котором будут говорить окружающие...
image.png202 Кб, 284x298
13 1159990
>>59987

>понимаю тебя и твою позицию


nya ^_^

полез в дебри, сделал все сложно и загрустил, анон не надо так

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

>люди разные


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

>вот только если глянуть


то да, а если пожить там с пару лет, да еще изучить историю хотя бы лет за 500, то дааа

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

>что вряд-ли ты когда-нибудь станешь хотя бы валютным миллионером


пфф

>о котором будут говорить окружающие...


лел, я же анонимус, мне такого даром не надо
14 1159991
Пошли нахуй, вниманиебляди
15 1160010
Релевантно ли начинать учить питон в 2д18 году? Сейчас занимаюсь в порядке хобби в основном жс говном: юзерскрипты, мелкая хуйня на электроне, думаю о ноде, как о бэкенде. Понятно, что порчти всё это может и питон(qt, flask etc), но стоит ли выбирать питон? Может лучше го какой-нибудь?
Задачи: небольшие десктоп приложения, серверные вещи(бэкенды, боты, кравлеры).
16 1160027
>>60010

>небольшие десктоп приложения


На пистоне можно конечно, но будет очень хуёво. Лучше Java или C#.
17 1160028
>>60027
Ну я имел ввиду pyqt
18 1160038
>>60027

>десктоп приложения


>Java


Окстись, еретик!
19 1160058
>>60038
Только C++, только на кишку и только с молитвою
20 1160062
>>60058
Так ведь плюсы сами по себе вообще не имеют графических библиотек никаких, так что вариант еще хуже, чем ява. Что до последней - там надо как минимум мочь в MVC, иначе будет не гуй, а хуй...
Анон 21 1160077
Сап, анон. Появилась такая проблема. Возможна ли реализация вот такой 3D задачи: есть некоторая функция: S(x, y), где x - полярный угол, y - азимутальный угол. Есть вектор k который описывает сферу, т.е. координаты (k, x,y) (сферические). Эта сфера должна быть разноцветная, где цвет указывает величину S(x,y). Можно ли сделать реализацию в matplotlib и если можно, то как? Если еще короче: как привязать цвет в координатах (k,x,y) к величине S(x,y)?
22 1160088
>>1159822
Да, я как увидел reduce, я прям почувствовал, что это именно та функция которая мне нужна скорее всего из-за англ значения, потому что когда я сам пытался писать обход, у меня получалось типа {dir: [subdir1, subdir2], subdir1: [subdir1.1, subdir1.2]...}. То есть мне нужно было объединить части словаря очень хитрым способом, я за это даже не брался, потому что думал что для этого должно быть какое-то элегантное решение, ибо задача common use как мне кажется.
>>1159825

> >reduce(dict.get, ['a', 'b'], my_dict)


Да вот, в том и проблема. Я обычно для понимания по коду из примеров в терминале прохожусь, но подобную функцию так и не смог заставить работать. Однако в коде примера она работает.
Но в любом случае большое спасибо. Хорошо объяснил и пример отличный. И я наконец-то сообразил, какую роль играет там dict.get! Пиздец, прочитал описание, понял что он делает, но... Эти знания не никак не скореллировали с тем что происходит в коде. Чувствую себя идиотом, который пытается вставить куб в круглое отверстие.

Но всё ещё остался вопрос, почему list_of_keys берётся [:-1]
Всё, понял. Спасибо няш :3.
HighresScreenshot00000.png935 Кб, 1012x936
23 1160095
>>60077
так?

ты скажи чо надо или лучше сам гугли за UV пространства что бы внятно объяснить
24 1160096
uv mapping точнее, пространство то оно одно Ю и ВИ хех
Анон 25 1160097
>>60095
Построить сферу на которой цвет будет отображать значение посчитанной мною функции, которая зависит от углов.
P.S. Картинка похожа на то что нужно.
26 1160109
>>60097

>Построить сферу


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

вот на пике 16 на 32 сфера развернута, 482 итого вершины, не заибешься красить?

но вообще это голый шейдер так выглядит,
27 1160117
>>60109
В общем, да, правильнее будет покрасить. Тогда перестрою вопрос таким образом: ваши картинки (2 и 3) это грубо говоря карта, на которой цветом задана величина функции, которая зависит от координат. Вопрос 1: как привязать цвет к значению функции, а второе, как такую карту натянуть на сферу. Насчет вершин не понял вопрос: под вершиной имеется ввиду точка на карте?, если да, то вершин будет 360х360
28 1160134
Хорошо знаю жс. Хочу вкатиться в питон. Нужен ресурс где про синтаксис быстро пояснят, без воды. Дальше уже сам справлюсь. Посоветуй, ресурсов плз, анон.
30 1160137
>>60117

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


еще ни разу никто не формулировал понятие World Space Normal так точно лол

>как привязать цвет к значению функции


я без понятия, тыж программист

>как такую карту натянуть на сферу


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

так вот что бы натянуть карту нужно модель "развернуть" UV Unwrap т.е разрезать модель по заранее выбранным ребрам и все 3д вершины переложить на Х и У (U и V по нашему) а дальше интересный момент, поскольку тебе нужно 360 вершин то на полюсах придется убрать по одной вершине и тогда развертка превращается в говно, либо ее можно сделать прямоугольной, но тогда будет лютый очевидный стреч

ну и рисовать саму мапу тебе соотсвенно нужно под развертку

сколько цветов нужно отобразить и в каком качестве, анон пиши подробно чо хочешь еба
15213714163600.png240 Кб, 593x447
31 1160138
>>60135
Спасибо тебе анончик.
3.jpg476 Кб, 1920x1080
32 1160143
или вот икосфера например
33 1160176
>>60138
Это для второй версии если что. Там есть ссылка на третью.
34 1160178
В чем проблемы могут быть если стоит питон 3.4?
35 1160182
Анон а как положено, вот я позаимствовал кусок кода с сайта\гитхаба, я теперь должен указать его в исходниках?
Вначале документа? Как это должно выглядеть чтоб не моветон?
36 1160188
>>60178
async/await нет, по крайней мере.
37 1160208
>>60178
нет аннотаций типов, за константами http-кодов нужно лазить хуй пойми куда или ставить третьестороннюю писичку
38 1160222
>>60208

>нет аннотаций типов


Ее уберут в 3.7 и вернут в 4.0
39 1160225
>>60182
Смотри под какой лицензией он распространялся, от этого зависит
40 1160436
>>60178
Проблема только установить 3.5 или 3.6. Остальные проблемы надуманные.
41 1160449
>>60182
Если что-то распространённое, например реализация связного списка, можешь вообще забить на копирайт. Ну или дополнительно имена переменным заменить. Ссылку в коде хорошо держать в первую очередь для себя самого. Даже если на тебя начнут залупаться юридически, что крайне маловероятно, просто удаляешь этот кусок и пишешь заново.
42 1160452
>>60077
Использовать функцию проекции сферы на 2д поверхность (причём это может быть как в географических атласах разворот сферы, может быть текстура для натягивания в opengl, может быть как бы фотография сферы с расстояния). Далее попиксельно для всей картинки вычислять в какую точку сферы падает луч, брать её полярные координаты, вычислять S, вычислять функцию цвета от результата S (три компоненты RGB), записать цвет в этот пиксель. Для антиалиасинга советую делать пикселей больше, например в 16 раз, а потом уменьшить картинку до целевого размера.
43 1160498
Где можно ознакомиться со списком библиотек под Питон?
В основном графических.
44 1160511
>>60498
Искать. Списка скорее всего не будет, так как питон плохо подходит для графики. Есть по сути стандартная библиотека pillow, есть множество обёрток над сишными к примеру cairo, есть те которые завязаны на 3д апи (opengl), можешь хоть профессиональными рендер-движками управлять из питона в блендере. Если ты тот что со сферой возится, рисуй попиксельно, либо в numpy вычисли всё, потом переведи в pillow и сохрани как картинку.
46 1160522
>>60519
А чому pyglet в раздел GUI ко всяким ткинтеркам и прочит кутям запихнули-то, а не gamedev?
47 1160525
>>60522
Потому что он и относится к ним.
48 1160564
>>60525
Но ведь нет, у него толком виджетов-то даже никаких нет, он скорее для создания графических приложений, а не конкретно интерфейсов. Разумеется, на его базе можно что угодно сделать, и есть всякие pyglet-gui.
49 1160580
Посоветуйте ide под линукс. Может есть что то годное, кроме чарма?
50 1160581
>>60580
вскод

>годное, кроме чарма


чарм не годный
51 1160582
>>60580
спидер
52 1160584
>>60582
О, спасибо что напомнил.
53 1160586
>>60580
Очевидный emacs.
54 1160617
Аноны, нужно запилить одностраничное приложение, какой фреймворк заюзать?
Хочу попробовать что-нибудь новое и то, что в перспективе может пригодиться(хотя бы для пет прожектов).
Джанго и Фласк уже юзал много раз, сейчас вот между Пирамидой и Ботлом выбираю.
55 1160621
>>60617
aiohttp
56 1160627
>>59952

>так себе утешение


Это и не было утешением. "Гениальные кодеры бывают ленивыми кусками дерьма" близко к "ленивые куски дерьма бывают гениальными кодерами", но ни там не там нет утверждения, из которого можно понять, что если ты "ленивый кусок дерьма", то ты автоматом "гениальный кодер", которому просто нужен манагер.
57 1160631
>>60627
Вот как раз сегодня задумывался о том что импликация это не эквивалентность. Можно прикинуть: даже если 50% гениальных кодеров ленивые жопы, гениев всего 0.1%, а ленивых жоп 95%, то вероятность того что будучи ленивой жопой ты станешь гениальным кодером: 0.5 × 0.001 / 0.95 = 1/1900 ~ 0.0526%
Screenshot20180322130443.png9 Кб, 561x99
58 1160638
>>59798 (OP)
Подскажите, пожалуйста. Пытаюсь поиграться с tkinter используя pycharm но выходит пикрелейтед. Пакеты установлены в систему (Mint 18). При запуске не через pycharm импортит корректно.
59 1160641
>>60638
Вероятно, у тебя шарм криво настроен, не на то виртуальное окружение или не даже на ту версию пайтона...
60 1160644
>>60641
Вероятно. Но я не понимаю что не так. Вроде он даже видит это tkinter, но подцеплять не хочет.
61 1160645
>>60644
Сделай простой проект из проблемного импорта и print('hui') - покажи весь стек ошибок, который вылезает при его запуске...
62 1160646
Анон, есть вопросы по первой картинке.
1) Что бля вообще происходит? Я знаю про декораторы функций - этой функции, которые принимают 1 функцию и возвращают одну функцию. Я знаю про декораторы классов - это функция, которая принимает 1 класс и возвращает 1 класс. А что тут делают вот этим @Property. Это же вообще не функция, а класс. Как они используют ее в виде декоратора? Класс же даже ничего не возвращает.
2)Как работает extension? Ведь на него применяются два декоратора (где первый мне непонятен, а второй обычный декоратор функции). Но ведь декораторы работают так: @decorator def foo(): после чего создается object reference с именем foo связанный с результатом работы декоратора. Значит после @Property def extension, extension будет равен результату работы декоратора - объекту класса Property (непонятно как), а после @extension.setter def extension, extension станет равен результату работы декоратора - самому себе. Как это понимать? Второй пик для понимая, что я имею в виду.
64 1160649
>>60644

> я не понимаю что не так


>>60638

>pycharm

Screenshot20180322132926.png40 Кб, 713x613
65 1160650
>>60645
Как-то так.
66 1160653
>>60647
Даже если встроенная property работает так же как и описанная Property, то эта страница не отвечает ни на один из вопросов.
67 1160656
>>60650
У тебя похоже модуль не установлен в том виратуальном окружении, в котором запускается код из шарма. Предположу, что ты его поставил в глобал, а запускаешь в шарме в каком-то из venv-ов.
68 1160658
>>60646
Декоратор может вернуть что угодно. Да в общем-то и принять на вход что угодно. Вот только синтаксис не даст применить его через @ на что-то кроме функции или класса.

То что у тебя в книжке называется дескрипторы. Это как если бы ты переопределил --getattr--, --setattr--, сделал там много if по разным именам атрибутов, и в каждом таком if прописал какое-то кастомное поведение. То есть дескрипторы с их меджик методами вызываются непосредстенно внутренностями питона. Если хочешь посмотреть что там вернули декораторы, никто не воспрещает, возьми да сделай print(..), print(dir(..)), print(type(..)), и тайны приоткроются.
69 1160660
>>60653
По ходу класс тупо реализует методы для работы со свойством. Вложенные классы ведь никто не запрещал?
70 1160662
>>60660
В питоне всё объект.
Screenshot20180322134438.png9 Кб, 718x150
71 1160663
>>60656
Ставил, я в глобал, да. Но запускаю-то вроде тоже через Python3.5. Или нет?
72 1160666
>>60663
Вроде да, если, конечно, это правильный лаунчер.
73 1160684
>>60666
Проблема оказалась в Минте. Переустановил шарм скачав с сайта а не с менеджера в системе и все заработало.
74 1160685
>>60684
Ох уж эти ваши кривые дистрибутивы... Пользуйся арчем или генту - это единственные два линукса, где все пакеты, включая ядро, используются в неизмененном ванильном виде.
75 1160686
Блядь анон, я не понимаю!1 Сука!
Есть список из ключей подсловаря. Пытаюсь применить к нему sorted(listfromkeys), а он мне TypeError: 'dict' object is not callable.
Я уже как только не пытался, пиздец! Что з ахуйня, чё он мне пиздит? Меня уже трисёт нахуй!!!
76 1160689
>>60686
если тебе надо отсортировать словарь словарей по ключам вложенных словарей, то это можно сделать, например, так:
sorted(d.items(), key=lambda x: x[1]['key'])
77 1160693
>>60689
Мне нужен лишь список ключей для "вывода" текста. Ключи -- заголовки, но прежде чем вывести их надо отсортировать. Сам словарь сортировать мне не нужно. Просто этот грёбаный список. Я не понимаю, почему мне говорит тайперрор dict object is not callable, когда это по всем параметрам список, хоть и создан из ключей.
78 1160695
>>60693
Покажи код.
79 1160703
>>60695
Тут особо показывать нечего. Сейчас в терминале не работает то, что работает в коде. Я в ахуе короче! Просто В АХУЕ!
Вот тот код что в строке работает.
3 пик подключаем в терминале ту же базу, выполняем тот же сорт и...
80 1160706
>>60703
ЕБАААААТЬ!
Перезапустил питона в терминале и заработало. СУка ну как так? Как так то блядь? К такому жизнь меня не готовила блядь!
81 1160708
>>60685

>это единственные


щас арчовые репки с ауром уже в любом нормальном дистрибутиве с граф инстллером, манжара топчик например, можно даже сразу с и3 ВМ накатывать

>>60684
а убунтоподобные загибаются да, каканинал похуй на десктоп, они ушли за баблом на сервера
82 1160847
Что я делаю не так то, йопту? https://repl.it/repls/ForestgreenPerfumedLocations

При этом если убрать строку __slots__ то все работает нормально, но я хочу сделать с ней и не понимаю двух вещей. Почему и PyCharm и repl подсвечивают все атрибуты в __init__, говоря, что их нет в __slots__, когда это атрибуты класса дескрипторы же, а не экземпляра? Ну и почему соответственно вываливается с ошибкой "Product' object has no attribute '__id'" Понятно, что его нет, цель setter'a установить этот атрибут.
83 1160852
>>60706
Ты где-то ранее создал словарь, назвав переменную "sorted", очевидно же.
84 1160870
>>60847
Во-первых, ты нахуя в __dict__ объекта лезешь, если сам же __slots__ ему указал? Наркоман?
Во-вторых, кто там атрибуты класса, всё у тебя экземпляра же.
В-третьих, виноват name mangling (гугли), но разбираться в этой каше (я не эксперт, но я бы за такой код премию не дал) лень, но если заменить все "__" на "_", то работает нормально.
85 1160887
>>60870

>нахуя в __dict__


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

>Во-вторых, кто там атрибуты класса, всё у тебя экземпляра же.


Декораторы добавляют в класс атрибуты id, name и т.д. Питон видя в __init__ self.id, self.name ищет эти имена в словаре. А его нет. Тогда он ищет их в классе и находит их в словаре класса. Значит это атрибуты класса, не?

>В-третьих, виноват name mangling


Знаю что такое, но забыл про него. Заменил name = "__"+atr_name на name = "_{}__{}".format(cls.__name__, atr_name), все работает, спасибо.

>я не эксперт, но я бы за такой код премию не дал


Почему?
86 1160919
>>60621
Не нужно
87 1160977
Как во фласке применить before_request только к определенному роуту? Я в принципе придумал как, создать отдельные blueprint'ы для нужных мне роутов, но это хуёво с точки зрения архитектуры. Собственно, сабж.
88 1161105

>Krita is a Qt-based application. In principle, you can use any Python binding to Qt as long as it's using exactly the same version of Qt that Krita uses.


Вчера релизнулась крита 4.0, помимо всего прочего завезли питония, так что кому нехуя делать и кто хочет потискать кути5 - идите на форума и аскайте художников за реквесты

https://api.kde.org/extragear-api/graphics-apidocs/krita/libs/libkis/html/index.html

https://www.youtube.com/watch?v=fIOhd3xXv-A
89 1161120
>>59798 (OP)
Мы, питонисты,
ребята плечисты!
Нас не заманишь
goto мясистым!
Не совратишь нас
синтаксом тегов!
... На линии 8
IndentationError...
90 1161164
>>60977
Ебани декоратор и там делай, что нужно, ну или в функциональном стиле передавай в декоратор коллбэк
91 1161216
Сап аноны, знаю синтаксис но не знаю как кодить, читаю чужой код и мало что понимаю. Сам похожее написать не смогу.
Жду ваши ответы какую книгу начать зубрить.
92 1161230
>>61216
Практиковаться. Бросай книжки читать.
https://checkio.org/
https://www.practicepython.org/
93 1161266
Сап, двач, нужен совет.
Давеча оформил на Google cloud VPS, один хрен 300 баксов в подарок, а хочется потрогать писечку как она есть.
За полгода халявы глядишь чему полезному научусь, подумал я и все заверте... Сразу скажу, что опыта в программировании у меня хуй да нихуя (html и css знаю, на Javascript немного пишу для веба, php на уровне быдлокодера)

Мне нужна доступная инструкция как на платформе гугла развернуть свой веб-проект на Python и Django, (желательно с django CMS) склеить его с базой данных MySQL и сцепить его через Git с моим домашним ломанным pyCharm. как это сделать? Справки гугла не помогают (или это я такой тупой, что не могу въехать)

Допустим я хочу создать сайт (имиджборду, дейтинг, форум, поебать) я иду в Google cloud, регаю аккаунт, получаю 300 баксов на счет, на них могу позволить себе машину в 2 ядра 4 гига на полгода, окей, для обучения должно хватить, беру машину на CentOS или Debian (я хз, что лучше, посоветуйте) и тут начинается непонятная хуйня, доступ по SSH есть, команды работают, куда копать дальше? Как настроить доступ по FTP? Как сделать так, чтобы Python 3.6 работал всегда, а сервер не подсовывал мне 2.7?
Гугл юзал, вторые сутки вникаю, не выходит. До этого спокойно настраивал по мануалам VPS на шаред хосте под php, держал несколько Wordpress сайтов, проблем не было.
94 1161267
>>61266
Установить python3. Освоить virtualenv, не пользоваться пакетами дистрибутива, ставить через pip внутри этого virtualenv. Гиту достаточно наличия ssh, хотя я предпочитаю локально написанный скрипт, который делает zip файл, вливает его по scp, далее через ssh -c запускает там определённый набор команд и всё разворачивается. То есть правило хорошего тона это не держать на серваке никаких скриптов отвечающих за деплой, только голый ssh наружу.
95 1161271
>>61266
Тебе скорее в сисадминов тред с такими вопросами. В двух словах даже и не объяснить как поднять веб-сервер с пайтон-сайтом... И да, можно всё сделать руками, но сейчас как бы эра девупсов - автоматизация через системы управлениям конфигурациями, микросервисы на докере и всё такое.
96 1161273
>>61267 Бро, сразу извиняюсь, если заебываю вопросами:

>Установить python3



Установил 3.6, по запросу # python вываливается 2.7 (понимаю, что так наверное и должно быть, просто я тупой)

>Освоить virtualenv



Вот,информацию, что это - я нашел, не могу дойти, зачем это юзать и в чем преимущества.

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



не понимаю, о чем идет речь.

>ставить через pip внутри этого virtualenv.



Это ты о Django и остальных инструментах?

>Гиту достаточно наличия ssh, хотя я предпочитаю локально написанный скрипт, который делает zip файл, вливает его по scp, далее через ssh -c запускает там определённый набор команд и всё разворачивается. То есть правило хорошего тона это не держать на серваке никаких скриптов отвечающих за деплой, только голый ssh наружу.



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

Смотри, я полный нуб, о существовании Python узнал пару лет назад, месяц назад прошел курс обучения в приложении Solo learn, со стандартной библиотекой разбираюсь, как завещали.
Суть в чем: везде пишут, что Python и Django - это самые, блять, простые решения и на них веб-проект поднять легче, чем член школьника во время первой ебли, и дескать любой может не отвлекаться на тонкую настройку а СРАЗУ, блять, начинать писать код, а по итогу я луплю в консоль вторые сутки и не могу понять, как мне развернуть свой проект на сервере и иметь к нему доступ.
Есть какие-то пошаговые мануалы, ветки форумов, где это все можно в более-менее доступной форме усвоить?

Есть информация, что кодить лучше начинать с реально поставленной задачи, вот я и хочу сделать понятный мне тестовый проект, пусть он будет велосипедом и никому нахуй не нужен, зато построен в привычном для большинства программистов пайплайне.
96 1161273
>>61267 Бро, сразу извиняюсь, если заебываю вопросами:

>Установить python3



Установил 3.6, по запросу # python вываливается 2.7 (понимаю, что так наверное и должно быть, просто я тупой)

>Освоить virtualenv



Вот,информацию, что это - я нашел, не могу дойти, зачем это юзать и в чем преимущества.

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



не понимаю, о чем идет речь.

>ставить через pip внутри этого virtualenv.



Это ты о Django и остальных инструментах?

>Гиту достаточно наличия ssh, хотя я предпочитаю локально написанный скрипт, который делает zip файл, вливает его по scp, далее через ssh -c запускает там определённый набор команд и всё разворачивается. То есть правило хорошего тона это не держать на серваке никаких скриптов отвечающих за деплой, только голый ssh наружу.



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

Смотри, я полный нуб, о существовании Python узнал пару лет назад, месяц назад прошел курс обучения в приложении Solo learn, со стандартной библиотекой разбираюсь, как завещали.
Суть в чем: везде пишут, что Python и Django - это самые, блять, простые решения и на них веб-проект поднять легче, чем член школьника во время первой ебли, и дескать любой может не отвлекаться на тонкую настройку а СРАЗУ, блять, начинать писать код, а по итогу я луплю в консоль вторые сутки и не могу понять, как мне развернуть свой проект на сервере и иметь к нему доступ.
Есть какие-то пошаговые мануалы, ветки форумов, где это все можно в более-менее доступной форме усвоить?

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

>по запросу # python вываливается 2.7


python3 надо писать же.

>virtualenv


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

$ python3 -m venv myname
$ source myname/bin/activate
(myname) $ deactivate

Если тебе надо будет в скрипте запускать из venva, просто указывай путь до пайтона, который в папке myname, а не до системного.
98 1161275
>>61271
Да мне бы без объяснений лишних, просто ссылкой, куда пойти.

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

кстати, у того же гугла есть готовый солюшен под Джанго, по сути - та же ВМ на Дебиане, но с ней ровно та же история. СЛОЖНА, НИХУЯ НИПАНЯТНА.
99 1161276
Аноны, вот задумался, а если в Джанге у меня на странице будет две одинаковые формы, как мне выловить обе?
100 1161278
>>61273

>Django - это самые, блять, простые решения


На мой взгляд flask проще. Советую с него начать.

>>61275
Я разворачивал. Очень долго рассказывать что к чему... Можешь вот тут почитать: https://habrahabr.ru/post/120363/
101 1161279
>>61275
Что-то одной ссылкой не получается, вот еще вариант с нуля: https://habrahabr.ru/post/250433/
102 1161281
>>61274

>python3 надо писать же.



только что осознал собственную никчемность.

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



$ python3 -m venv myname
$ source myname/bin/activate
(myname) $ deactivate

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

>>61278

>Я разворачивал. Очень долго рассказывать что к чему... Можешь вот тут почитать: https://habrahabr.ru/post/120363/



благодарю, сейчас же попробую)
103 1161411
>>61274
Лучше использовать venvwrapper.
1460623005667.png37 Кб, 1127x685
104 1161431
Пагни нид хелп
Кто-то работал с кубернетис клиентом?
Суть в том что у меня фейлится соединение с https сервером из-за socket ssl проверки, хотя я и сконфигурил verify_ssl в False.
ВТФ???
Как-же заебало это ебучее ssl все время из-за него какие-то проблемы

Нет, подключится к HTTP я не могу
105 1161446
Анон, я понимаю, что скармливая путь os.path функциям в питоне в виде строки, мне надо или использовать raw string или эскейпить все \ как \\. Но почему при выводе этих путей Питон сам их зачем-то эскейпит как \\?
106 1161450
>>61411
Ни в коем случае не лучше.
107 1161451
>>61446
Потому что у тебя Ш1ИДОШ5 вместо операционной системы.
108 1161452
>>61451
И чо? Сама шинда в cmd пишет пути с одним \
109 1161471
начал копать фляжку, как организован ввод переменных? где читать? Есть у меня html страница, в ней форма, как запилить что эта форма принимает переменную? Подскажите, дальше как по маслу пойдет.
110 1161486
>>61471
Ты ебанутый? В шапке книги про все это есть, надеюсь, ты хотя бы про методы http запроса знаешь?
111 1161519
>>61452
Ну эскейпит и эскейпит, тебе жалко, что ли? Это только в интерактивном эскейпит, если что, а print(s) всё ок отображает.
Что интересно, s.__repr__() заэскепит те слеши, которые служили эскейпом изначального, превращяя r'\a' в \\\\a, лол.
112 1161520
>>61519
эм, превращая, уж простите.
113 1161541
В PyCharm'e есть что для создания GUI? Например, создания форм Qt.
114 1161553
Sup чешуйчатые.
Есть словарь, значения элементов которого тоже словари. Более того значения значений элементов словаря тоже словари. Такой вот многомерный массив.
Выглядит примерно так:

Словарь1

|Элемент 1
|Лист1
|Лист2
|Лист3
|Элемент 2
|Лист1
|Лист2
|Лист3
|Лист4
|Элемент 2
|Лист1
|Лист2
-------------------------
|Элемент n
|Лист1
|Лист2
|Лист3
|Лист4
|Лист5

Вопрос в следующем: Как взять по одному листочку на каждой конечной ветке, таким образом получить множество длиною в количество родительских ветвей листьев? Более того нужно перебрать все возможные комбинации взятия листьев при незнании ни количества ветвей, ни количества листьев, т.е. при неизвестном количестве вложенных циклов.
Гугл говорит через рекурсию, но как это запилить сложна, сложна, непонятна
114 1161553
Sup чешуйчатые.
Есть словарь, значения элементов которого тоже словари. Более того значения значений элементов словаря тоже словари. Такой вот многомерный массив.
Выглядит примерно так:

Словарь1

|Элемент 1
|Лист1
|Лист2
|Лист3
|Элемент 2
|Лист1
|Лист2
|Лист3
|Лист4
|Элемент 2
|Лист1
|Лист2
-------------------------
|Элемент n
|Лист1
|Лист2
|Лист3
|Лист4
|Лист5

Вопрос в следующем: Как взять по одному листочку на каждой конечной ветке, таким образом получить множество длиною в количество родительских ветвей листьев? Более того нужно перебрать все возможные комбинации взятия листьев при незнании ни количества ветвей, ни количества листьев, т.е. при неизвестном количестве вложенных циклов.
Гугл говорит через рекурсию, но как это запилить сложна, сложна, непонятна
115 1161649
У меня у одного бомбит от того что в РФ так мало вакансий на змее? При этом в штатах или ЕС их гораздо больше в % соотношении.

В моей мухосрани-миллионнике открыти 10 вакансий на пайтоне, 50+ на пхп, 30+ на джаве. Что за херня, аноны?
117 1161665
>>61649
В миллионом мухосранске в котором я живу не одной вакансии на питоне.
118 1161670
Сап, питонисты. Подскажите, каким образом можно составить изображение по пикселю, которые поступают последовательно из ком порта? Формат и разрешение известны.
119 1161671
>>61670
https://pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.frombytes
Либо putpixel циклом вызывать, что очень медленно, зато универсально.
HOEC029gJMX8x6BSCx7eqUhLepvHHCIMZgng-piAR4.jpg29 Кб, 480x287
120 1161673
>>59798 (OP)
Прочитал теорию из книги "Автоматизация рутинных задач..." Свейгарта. Через треть книги начинаются примеры автоматизации, и я в них жестко спотыкаюсь, зависая на каждой строке в попытках понять, зачем оно и почему работает. Плюс очень неудобно из-за того, что электронный формат. Сама книга очень дорогая, жаба душит полторы штуки отдавать, хотя кажется полезной.
Можете подсказать какую-нибудь книжку, которую вот реально не жалко купить, и чтобы она охуенно все расписывала. Типа Лутца вашего, но их же у него много. Есть что-то универсальное?
121 1161674
>>61673
Книги не нужны.
122 1161676
>>61674
Нужны. Всегда хорошо иметь под рукой мануал в бумажном виде с загнутым уголком на нужной странице.
123 1161679
>>61649
Ну хочешь иди работай на пхп. Что тебе ещё сказать? К сожалению кроме питона нужно знать ещё очень и очень много других вещей, и эти вещи часто повторяются где бы ты ни работал, базы данных например.
124 1161680
>>61676
Освой grep и текстовые заметки в md/txt/rst, или гуголь и стековерфлоу/заметки в браузере. Намного быстрее чем любая бумага.
125 1161682
>>61652
Хорошая статья. В очередной раз убедился в том, что нужно учить не язык, а программирование и уметь продать свой труд.

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

А на одном лишь питоне сложно будет.

Повторю то, что я уже много раз говорил.
Первый язык должен быть ассемблер, потом изучаете Си, дальше C++ или Java. Ну а потом можно и скриптовые языки типа Питона или Руби. Понятно, что это не такая четкая схема 1->2->3->4, но что-то типа того.

Ну а битарды и дальше могут продолжать свои "Питон клевый молодежный язык..."
126 1161683
>>61674
Двачую, документация питон, гугл примеры использования, всё уже в интернете.
127 1161685
>>61680
То есть по факту я переношу то, что уже есть в книге, на цифровой вариант, который у меня уже и так есть и в котором неудобно ориентироваться. Хорошая идея.
128 1161686
>>61682

>Первый язык должен быть ассемблер, потом изучаете Си, дальше C++ или Java. Ну а потом можно и скриптовые языки типа Питона или Руби


Хороший совет для тех, кому уже за 20 и они решили попробовать себя в программировании. Дескать, ребята, потратьте еще пару лет на теорию, потом что-нибудь предпринимайте.
129 1161688
>>61673

>Автоматизация рутинных задач..." Свейгарта


>Сама книга очень


бесплатная, вот тут https://sites.google.com/view/pypry/ есть видос где индус ее вместе с тобой будет проходить

>>61674
+

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

>>61683
просто иногда надо снять стресс, вытащить наружу свою проблему и поделиться её с понимающим аноном
130 1161690
>>61686

>Хороший совет для тех, кому уже за 20


Мир жесток. Работай хоть уборщиком, но асм изучи. Пока ты не понимаешь, как работает проц, ты не программист, а так, быдлокодер.
Но я соглашусь, что асм надо изучать еще в школьные годы. Я сам его изучал, когда мне было 14 лет. Тогда еще был жив васм.ру (сейчас он переродился). wasm.ru - это реинкарнация assembler.ru. А ньюфаги и не слышали.

Потом на одном лишь асме кодить надоело и я начал использовать C. Писал разные утилитки, драйвера для Windows XP. Помню изучал серию статей Four-F по написанию драйверов под WinNT.
Ну а потом начал больше писать на C++ и Perl. Потом ушел из перла и начал вместо него использовать питон. Но скриптовые языки у меня использовались как вспомогательные, а не основные. Если думаешь, на чем писать в продакшен, то выбирай джаву. Ну а для души asm/C++/python.
131 1161694
>>61690

>Пока ты не понимаешь с ходу что здесь написано, 0111001101101111011100110110100100100000011010000111010101101001001000000110001001101001011001000110110001101111, ты не программист, а так, быдлокодер.

132 1161697
>>61688

>бесплатная, вот тут https://sites.google.com/view/pypry/


Зачем мне, я ее и так читаю. Сказал же, треть книги осилил. Но бэктречить по pdf-файлу, который является сканом, дюже неудобно.
133 1161703
>>61694
011100110110111101110011011010010010000001110011011000010110110100100000011001010110001001100001011011100110000101110100
134 1161705
>>61694

>0111001101101111011100110110100100100000011010000111010101101001001000000110001001101001011001000110110001101111


Надеюсь, ты это хотя бы сгенерировал, а не писал от руки?
135 1161706
Почаны, кто-нибудь использовал Gevent в хайдлоаде, как оно, много ли нынче геммороя? Собираюсь делать приложения для анализа кремлеботов и сисянботов и нужно будет собирать из интернета большую биг дату
136 1161707
>>61706
Почаны, кто-нибудь использовал Молоток в плетении из бисера, как оно, много ли нынче геммороя? Собираюсь делать поклейку из бумаги и картона и нужно будет много ватманов и ножниц.
137 1161708
>>61690

>>Пока ты не понимаешь, как работает проц, ты не программист, а так, быдлокодер.


Блять, вот прям досконально изучать АСМ нахуй не надо, только ознакомиться. Всё равно писать на нем скорее-всего не придётся. Если охота понять как железо работает, лучше не ебаться а ассемблером, а Архитектуру компьютера от Таненбаума почитать, а ассемблер там будет, в целях нужных количествах для ознакомления.
138 1161710
>>61708
Поссал тебе на голову.
139 1161714
>>61705
яж НАСТОЯИЩЕЙ, никак некоторые
graph.png14 Кб, 508x424
140 1161718
>>61553
Элементарно жи.
Шаг 1. Напиши хотя бы просто рекурсивный обход одной ветки, чтобы получить на выходе список ['a', 'b', 'c', 'd'].
Шаг 2. Заметь, что до точки 'c' обе линии одинаковы, и лишь на c расходятся, значит на этой точке нужно дублировать имеющийся на тот момент список ['a', 'b', 'c'], добав далее к одной копии 'd', а к другой — 'e' (разумеется, рекурсивно вызвав функцию обработки следующего элемента).

Ну и если всё правильно написано, дальше магия сама всё за тебя сделает.
141 1161738

>Параметры print()


>...


>flush – если задано значение True, поток принудительно сбрасывается в файл. Значение по умолчанию: False.


Кто-нибудь, объясните, что это значит. Нахуя нужен этот флаш?
Безымянный.jpg91 Кб, 553x222
142 1161739
https://repl.it/repls/ScientificUnimportantCategories
А как бы ты это сделал, анон? Мне не нрав, что я сначала хуярю целый генератор, чтобы потом применить на него any(), но как по-другому в функциональном стиле сделать я не знаю. (без него сделал бы обычный for который или выбрасывался бы с False, как только встречает неверный символ, или в конце возвращает True).
И как уместить это все в 25 строк?
144 1161749
>>61738
Если ты будешь писать по одному символу, то каждый раз перезаписывать целый сектор на диске размером 512/4096 байт очень дорого. Поэтому всё-всё-всё буферизуется и накапливается в достаточном количестве чтобы записывать один раз. Иногда по одному символу выводить всё-таки нужно, например точечки в терминал для прогрессбара, или для чятиков по TCP передавать маленькие куски текста немедленно, не накапливая на полноразмерный пакет. Вот для этого flush.
145 1161750
>>61739
https://repl.it/repls/EverlastingPlainEllipses

>И как уместить это все в 25 строк?


Не писать десятистрочные докстринги к однострочной функции, название которой и так очевидно.
146 1161752
>>61749

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


>Вот для этого flush



Вот, тогда следующий вопрос:
Я гуглил побуквенный вывод на экран, и там в примере был этот flush. Я удалил из кода flush, и все работает абсолютно так же:
https://repl.it/repls/ClumsyFirebrickCompilerbug

Так в чем цимес?
147 1161753
>>61750
Во, в одну строку решил всё. https://repl.it/repls/LinenGeneralConfig
148 1161754
>>61752
Только что запустил этот код в ipython и оно ждёт, затем выплёвывает всю строку разом. Эта штука в браузере не полностью эмулирует реальные ОС.
149 1161755
>>61752

>Так в чем цимес?


Очевидно в том, что кто-то другой где-то принудительно вызывал flush, или stdout без буфера в шелле открыт. В интерактивном режиме питон точно вызывает его, например.
15156997232120.png64 Кб, 734x1108
150 1161756
>>61690

>очередные манятеории о том, кто такой настоящий программист, когда на швитом жападе давно разделили российского ПРОГРАММИСТА на три категории

151 1161758
>>61754
Ааа, вон оно что. Понятненько. В той ветке форума, где я это гуглил, что-то такое тоже писали, а я недоумевал, что у меня все норм в repl.it
А можно тогда сразу вопрос: у меня там end='' стоит, так вот, если я попытаюсь после этого текста вбить еще одну функцию print(), то второй текст будет на этой же строке, что и первая. Как это починить?
152 1161759
>>61753
Бля, охуенно, спасибо не знал; что; в; Питоне; можно; делать; ;
153 1161760
>>61758
end по умолчанию '\n'. print каждый раз добавляет к выводимой строке end, а между аргументами вставляет пробелы.
154 1161762
>>61758

>второй текст будет на этой же строке, что и первая. Как это починить?


>Я не вылил воду из стакана, и когда я начию в него лить из новой бутылки, перелевается через край. Как починить?


Ты дурак или что?
155 1161764
>>61760
Это понятно и не решает моей проблемы.
>>61762
Ну, так и как закрыть кран, чтобы вода не лилась дальше?
156 1161766
>>61764
Решу твою проблему за $20.
157 1161767
>>61766
Перевел. Теперь отвечай.
158 1161769
>>61764

>Ну, так и как закрыть кран, чтобы вода не лилась дальше?


Ты путаешь. Кран открывает когда ты вызываешь print(). По-дефолту после вызова каждого принта меняется стакан (end="\n"). Если ты делаешь end="", по под краном остаётся тот же стакан, поэтому при следующем вызове print'а вода льётся в тот же стакан.
Догадаешь, как поменять стакан самому?
159 1161770
160 1161774
>>61770
Нет, ты дебил. Успехов.
161 1161775
>>61774
Ты просто завидуешь моей находчивости.
162 1161778
>>61756
Поясни?
163 1161785
>>61652
>>61665
>>61679
>>61682

Я наверное не правильно сформулировал бугурт. Мне больше не понятная причина, почему галеры не используют змею для веб-проектов при всех его плюсах?
164 1161786
>>61756
>>61708
>>61694
Я вам не собираюсь ничего доказывать, но скажу вам следующее.
Если у вас не базы (т.е. фундаментальных знаний), то не удивляйтесь, что вас не будут брать на работу. Это нормально, что студентов без знаний не хотят брать в уже наработанный коллектив.
Но даже если вас возьмут на работу, то максимум, что вам светит - это миддл. Это будет вашим потолком в том случае, если вы скрипткидди. Не плачьтесь потом на имиджбордах, что нет работы.
165 1161789
>>61786
В кои-то веки адекват на моих двачах.
166 1161792
>>61778
Там есть
1) Programmer - должен писать код, тесты, документацию, выбирать наилучшее решение согласно заданию.
2) Software engineer - это программер + немного аналитик + немного архитектор + общение с заказчиком\проджект менеджером.
3) Computer Scientists - разработка и оптимизация алгоритмов + умение кодить, но не обязательно так же хорошо, как программер

Даже SE нельзя назвать тем, кто должен знать asm, сишку и прочую низкоуровневую шелуху, все зависит от специальность, а именно python\c++\java\js\еще какой нибудь язык developer. Какому нибудь шарписту вообще не важно, как именно работает процессор на уровне asm команд. Не пытайтесь стать универсалом, который знает ВСЕ. it слишком разнообразно, что бы уместить все в голове.
167 1161796
>>61786
доширачная зелень приходит сюда что бы ее подбодрили и задали вектор, а не послали нахуй дрочить основы четверть жизни, обозвав унтерменьшом

ведешь себя как занудный старпер, вот рилли, нахуй грузить зеленых ебалой!? или ты думаешь когда анон с дошика перекатится в рестораны с чеком под 10к, и устанет от этого, он сам не догадается дрочнуть фундамент ? ? ? если нет, то он не помидор, и никогда им не будет даже с четвертьвековыми основами
168 1161798
>>61792
единственный адекват среди шизофреников-максималистов
169 1161799
>>61798
>>61789
Что-то много адекватов собралось, аж страшно.
170 1161800
>>61792
Это все хуета, которая используется менеджментом для составления бумажек. В реале есть просто программисты, которые пишут
1) низкоуровневый код (микроконтроллеры, embedded, ОСи etc)
2) прикладники
3) Ворлд Вайд Въеб и прочие скрипткидди.

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

Вообще, developer - они в строительных компаниях работают. А нормальные люди себя называют programmer. Даже термин software engineer уже постепенно впадает в немилость.

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

Мимо 29лет кун
171 1161801
>>61799

>аж страшно


тому шо ты мракобес
172 1161802
>>61786
Как бы чтение Таненбаума, которого я предлагал и даст фундаментальные знания по работе железа, причем даже на более низких уровнях, чем уровень архитектуры команд. Или ты предлагаешь страдать ненужной хуйнёй и учиться досконально разбираться во всех изъёбствах ублюдочной x86-64 или какую ты там ещё архитектуру для изучения предлагаешь?
173 1161805
>>61802
Ты хоть одну архитектуру на среднем уровне то знаешь? Помог тебе твой Таненбаум?
174 1161806
>>61801
Нет, я программист.
175 1161808
>>61800

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


Кто сам-то? Пруфы того, что ты охуеней тех, кто придумал все это есть?
176 1161809
>>61808
Он же написал:

>29лет кун


Это СРАЗУ же ставит все точки над i, и его мнение — закон.
177 1161810
>>61808
Какие тебе пруфы нужны? Пачки денег в подвале? Паспорт США с супом?

Если ты еще не понимаешь, что вся эта терминология не используется программистами, а используется менеджментом для составления бумаг наверх, то что я могу сделать?

>>61809
Тот меня называл старпером.
178 1161813
>>61810

>Если ты еще не понимаешь, что вся эта терминология не используется программистами, а используется менеджментом для составления бумаг наверх


А у нас ее программисты используют
179 1161814
>>61805
Как бы я низкоуровневым программированием не занимаюсь, потому на АСМ не пишу, нахрен мне это не надо. Но в случае чего, ассемблерные листинги читать могу и что там происходит понимаю. (Пришлось кстати однажды с этим поебаться, так как в одном проекте компилятор в определенных условиях лютую хуйню выдавал, которая не работала)
Я тебе о том, что чтобы понимать, как в принципе работает ДВС не нужно уметь перебирать конкретный мотор батиной девятины.
180 1161815
>>61810

>меня называл старпером


ты же не подумал что это как то коррелирует с возрастом?

насколько надо быть умным и одаренным ПРОГРАММИСТОМ что бы с такой неистовой силой отрицать чужое мнение и выставлять свое, как единственно правильное и возможное!?
181 1161819
>>61815

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


Я просто сказал, что думаю. Еще раз, антош.
Тут есть два типа людей:
1) имеют базу и работают.
2) плачутся, что им не дают.

>>61814
Ты не можешь найти работу?
182 1161823
>>61819

>Ты не можешь найти работу?


Нет, с работой у меня всё норм. Просто покоробили заявления о том, что зелёному неприменно нужно учить ассемблер иначе он нахуй не нужен
183 1161825
>>61823
Желательно изучить. Но если ты не имеешь времени это сделать сейчас, то можешь сделать потом.
184 1161826
>>61825

>Желательно изучить


Зачем?
185 1161827
>>61826
Затем же, зачем знать основы электричества при проводке проводов для создания новой розетки.
186 1161828
>>61819

>Тут есть два типа людей:


1) работники, работают с тем что имеют
2) нытики, всегда будут ныть

это типы личности антош иди почитай гороскоп и не пытайся кого-то сделать лучше это бесоплезно
187 1161829
>>61827

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


что ж ты такое пишешь содомит, аргх
188 1161830
>>61827
Вот я пишу такой на жабе\шарпе, работаю с абстракциями, какая разница для меня что там jvm\clr процессору выдает?
189 1161832
>>61826

>Зачем?


Это основы основ. Даже если ты изучаешь питон, то тебе нужно изучить, как работает его виртуальная машина (которая тут называется интерпретатором).

>>61828

>это типы личности антош


Соглашусь. Я никого не пытался менять. Просто выразил свое мнение на вопрос, почему у него нет работы. А в итоге началась бомбежка.
190 1161833
>>61832

>Просто выразил свое мнение на вопрос, почему у него нет работы


Ты привязал это к знаниям низкоуровневых языков, а не к типу личности
191 1161834
>>61833

>Ты привязал это к знаниям низкоуровневых языков, а не к типу личности


И из-за этого случилась бомбежка?
192 1161835
>>61832

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


Зачем? >>61830
193 1161837
>>61835
Затем, что если ты не знаешь, что под капотом, то ты не программист. Твой потолок - это мидл, но с возрастом тебя уже не будут брать никуда.

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

А вот у тебя, видимо, нет желания разбираться, что там за этими абстракциями. Это значит, что ты плохой программист. Хороший программист смотрит вглубь.
194 1161838
>>61837

>то ты не программист


Определение программиста в студию
195 1161840
>>61838
Определение спроси у своей мамы. Твоя мама всегда лучше знает, что для тебя лучше.
196 1161841
>>61840
Какое же ты ЧСВшное мудло, божечки мои.
197 1161842
>>61841
Что мама сказала?
198 1161843
>>61840
Вот сделали конкретные определение с разделением обязанностей >>61792
Если ты не можешь составить такое же четкое определение в рамках своего понимая настоящего программиста, то ты не можешь говорить о том, кто такой настоящий программист, а кто нет
neon14.jpg1 Мб, 1400x933
199 1161845
>>61832

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


ок, но на том же примере с УКЛАДКОЙ кабеля для ПИТАНИЯ предварительно СМОНТИРОВАННОЙ розетки, мне вовсе не обязательно знать что по жилам кабеля протекает направленный поток заряженных частиц, все что нужно знать — так это не браться голыми руками за два оголенных провода, вот и всё

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

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

но не надо этим засирать голову доверчивому анону, он сюда приходит пушо здесь все его друзья, а они его так жестко наебывают, не надо так занудная хуила блядь
200 1161846
>>61845
Я просто ответил анону, почему ему не дают.
201 1161847
>>61830
Например для того, чтобы потом не охуевать и не ломать голову из-за чего у приложения в продакшене время от времени случаются дикие провалы по производительности, да такие, что приложение половину запросов в эти моменты проёбывает. (Тру стори из реальной практики, было такое. jit промахивался с предположениями относительно большого куска кода, а потом при промахе, деоптимизировал его и вываливал в интерпретацию)
202 1161848
>>61846

>ему не дают


БЛЯТЬ НИ РАЗУ НЕ ЗА НЕЗНАНИЕ СУКА ЕБАННОГО АСМА И УСТРОЙСТВА Х86 ебанный ж ты по голове перестань уже нагло врать и подменять понятия, все равно что с телками, ты будешь говорить анону с двача что ему не дают за всратое ебало, сука я понел ты траллируешь нас, а мы блять горим, больной ублюдок
203 1161849
>>61848
Ты не программист если не знаешь, что такое Scale-Index-Base.
204 1161851
>>61849

>Ты не программист


я девелопер, мне главное что бы работало, сносно работало, а чо там как там, я узнаю по ходу решения задачи, благо в рокетсаенс я не лезу
205 1161853
>>61851
На стройке работаешь? Прораб или раб?
206 1161857
>>61853
геймдевелопер же, но и таджика от кыргыза отличить сумею, а прорабы достойнейшие из людей, зарабатывают деньги тяжелым трудом, один таджик четверых руснявых алканов стоит, и яму под септик выкапывает за день

и я вообще не понел откуда такой негатив к ручным профессиям? конкретно мне для воссоздания виртуального мира нужна информация из реального, пусть не вся она релевантна, но знать наверняка это невозможно, так что иди нахуй комрад
207 1161891
Друзья, с помощью Celery можно раскачегарить requests на полную катушку?
208 1161907
>>61690
>>61786
>>61800

>Ворлд Вайд Въеб и прочие скрипткидди


>>>1161837


>твой потолок - это мидл



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

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

>Потратил молодость


он ведь не тян что бы переживать но толстый пиздец это стыдоба да
210 1161920
А какая книга по питону есть для нуфага в программировании с задачами после каждой главы?
211 1161923
>>61920
Я и мой питон, Педро Урдемалеса
212 1161924
>>61923
Заквакал аж.
213 1161933
>>61907

>Потратил молодость на изучение ассемблера, молодец.


Довольно равномерно развивался по всем фронтам. Завидуй.
14836318569190.png128 Кб, 600x600
214 1161937
>>61907

>Потратил молодость


SOOOQA
215 1161944
Питонисты/пайтонисты/питонеры, поясните, среди вас действительно есть фрилансеры способные заработать денег с помощью пайтона, или это все троллинг уровня 300кк/наносекунду?
216 1161945
Ну че вы тут за срач развели. Настоящий программист это тот, который в течении года клавиатуру защищал и пиксели в зеленый цвет красил, чтобы красиво было. Не служил не программист.

А теперь помоги мне с домашним заданием нет. Вот нужно из кучи файлов отсортировать те, которые ещё не протухли. Я думаю взять текущее время time.time() и в цикле итерировать файлы, брать у каждого os.getmtime(), находить разницу с текущем и делить на количество секунд в сутках. Вот про секунды вопрос. Я хотел написать разница_в_секундах//(246060). И подумал. Питон будет это произведение считать каждый раз для каждого файла? Это нехорошо. Тогда может написать разница_в_секундах//86400. Но Питон про читаемость и понятность кода, а что это за 86400 такие? Тогда может вне цикла определить секунд_в_сутках = 246060, а в цикле писать
разница_в_секундах//секунд_в_сутках? Как максимально красиво и pythonic way?
217 1161947
>>61945
БЛЯТЬ ЕБАНАЯ РАЗМЕТКА СУКА. вместо 246060 должно быть 24 умножить на 60 умножить на 60.
218 1161949
>>61944
Если твои знания и опыт ограничены питоном и его фреймворками, то у меня для тебя плохие новости.
219 1161952
>>61907

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


Если посмотришь на мои посты, то в начале я даже не троллил, а вполне серьезно говорил. Но когда я столкнулся с непонимаением и неадекватом, то почему бы не потроллить?
220 1161954
>>61945
>>61947

>вместо 246060 должно быть 24 умножить на 60 умножить на 60.


Все говно анон, иди ка лучше поучи хаскель
221 1161955
>>61949
Я наслушался охуительных историй от друга моего друга, который затирает, что он успешный мамин фрилансер на пайтоне. Я чую пиздеж. Как его вывести на чистую воду?
222 1161956
>>61955

>Как его вывести на чистую воду?


Ректальным нагреванием
223 1161958
>>61955

>Как его вывести на чистую воду?


А зачем его выводить на чистую воду? Ты ему начинай втирать, что у тебя каждый день новая телка, а он потратил молодость на свой питон. Пусть его теперь дрочит.
224 1161966
Поясните за щёку, пожалуйста, на примере последовательности Фибоначчи:
если я указываю верхний предел последовательности и пишу
element = first_element + n
t_list.append(element)
first_element = n
n = element
То всё вроде нормально и в списке наибольшее число меньше указанного предела.
Однако если я напишу
element = first_element + n
t_list.append(element)
first_element, n = n, first_element + n

То наибольшее число выходит за границы предела.
Почему так?
225 1161975
>>61954

>Все говно анон


А как тогда надо?
226 1161977
>>61966
Всё, вопрос снят.
227 1162042
Аноны, как мне нормально написать код? Думаю вы поймете что я хочу сделать :
from threading import Thread
def func(number):
print('add',number)
t3, t4 = Thread(target=func, args=[4]), Thread(target=func, args=[4])
t1, t2 = Thread(target=func, args=[4]), Thread(target=func, args=[4])
t1.start(), t2.start(), t3.start(), t4.start()
t1.join(), t2.join(), t3.join(), t4.join()
228 1162048
Есть сайт на джанго с большим количеством зарегистрированных людей. Как система будет распределять ипользование urllib клиента, ?
229 1162049
Надо заменить в списке чётные элементы на 1, а нечётные на остаток деления индекса этого элемента на 5.
https://ideone.com/aMQxTx
Что не так?
230 1162059
>>62042
a = [Thread(target=func, args=[4]), Thread(target=func, args=[4]), Thread(target=func, args=[4]), Thread(target=func, args=[4])]
for th in a:
a.start()
for th in a:
a.join()
231 1162060
>>62049
У тебя как бы в y значение лежит, а не индекс.
232 1162061
>>62059
fix. th вместо а, конечно же
233 1162062
>>62059
Тогда уж
a = [Thread(target=func, args=[4]) for i in range(4)]
234 1162075
>>62042

>from threading import Thread


Зачем так писать?
235 1162077
>>62062
>>62061
А есть какое-то по-лучше решение? Я думал в многопоточности, можно как-то по-другому изъебнуться
236 1162080
>>62075
А какая разница? Результат-то один и тот же
237 1162082
Так ты спроси конкретно что ты хочешь, а не "как сделать нормально?"
238 1162083
>>62082
Хочу изъебнуться красиво, что-бы 10 потоков не писать на 10 строк. >>62062 Этот анон передал что я хотел. Но я все таки думал что там можно по-другому это реализовать
239 1162087
>>62080
Тут в прошлом треде один многомудрый анон втирал за склонность разработчика к лени. Зачем писать два лишних слова? А если тебе нужны две функции? Три? Будешь их через запятую перечислять?
240 1162098
>>62087

>Зачем писать два лишних слова?


Чтобы потом сэкономить и писать Thread, вместо threading.Thread, например.
241 1162129
Господа, я тут получил свое первое тестовое задание и понял, что ничего не умею. А суть вот в чем: есть JSON https://pastebin.com/emW0CQjd

И есть 3 csv файла, которые имеют следующую структуру: https://pastebin.com/6JqT94DA

Задача написать скрипт который будет считывать данные из всех csv и обновлять мой исходный JSON файл.

Сделанные шаги:
1) Считать все csv-файлы
2) Создать либо список списков, где базовым элементом будет строка параметра либо словарь с ключом-названием документа.
3) Найти общие строки-параметры для 3 юзеров
4) ???
5) Загрузить это всё обратно в JSON без потери изначальной формы (Так бы я уже давно просто поменял всю структуру json'a под юзеров, но увы).

Так вот, я реально не понимаю, что мне делать. Строить страшные конструкции с миллионом if и for кажется убогим вариантом, да и скорее всего я что-то упущу. Может быть тут есть какое-то более приемлемое решение?
2018-03-25 01-30-06 Pastebin.com - Heavy Load Warning  ( - [...].png528 Кб, 824x834
242 1162133
>>62129
Ты даже хост нормальный выбрать не можешь...
243 1162135
>>62133
Похоже сегодня не мой день.
believer.jpg68 Кб, 312x516
244 1162138
>>62129

>тестовое задание

245 1162148
Допустим есть сервер на фласке. На сервере хранится 3 скрипта. В этих скриптах - GET запросы к серверу. Как убедиться, что GET запросы были отправленны именно со скриптов, именно от пользователя, который эти скрипты скачал с сервера, а не например через какой-то онлайн сервис по генерации запросов? Верификация по айпи - хуета, так как у пользователя может быть динамический ойпи, кастомные хэдеры можно так же подменить, или вставить в тех же онлайн сервисах. Есть ваще исходы какие-нибудь?
246 1162152
>>59798 (OP)
Как долго с пхп укатиться на питон? Стоит ли? Тяжело работу найти?
247 1162157
>>62148
Шифрование с помощью открытого и закрытого ключа было изобретено в 1976 году Уитфилдом Диффи и Мартином Хеллманом (под влиянием работ Ральфа Меркле). Они основаны на том, что на принимающей и отправляющей стороне рассчитывается т.н. односторонняя функция, и отправитель и получатель передают друг другу два числа, позволяющие получить ключи для шифрования.

Дальше сам гугли.
248 1162162
>>62152

>Как долго с пхп укатиться на питон?


Чай, не Хаскель, быстро схватишь.
249 1162180
>>62098
Считается, что так тяжелее воспринимать код.
02116b456e8e5303a3145436bbf45aaai-1835.jpg69 Кб, 600x450
250 1162193
Господа, посоветуйте пожалуйста гайдов/туториалов/инструкций по созданию Django проекта. В библиотеке в шапках смотрел, там только справочники. Нужен именно пошаговый гайд для долбоебов, я так лучше воспринимаю, а уж потом углубляюсь в документации.
252 1162202
>>62180
Далеко не всегда и не везде, тем более если значение очевидно и понятно и без префикса модуля.
Да даже тот же

>from x import •


используется в стандартных библиотеках иногда.
253 1162218
>>62194
Огромное спасибо!
254 1162221
>>62129
Вкатываюсь и попытаюсь это сделать, если нормально объяснишь, что тебе нужно. Потому что я пока не понимаю. Для каждой строки csv надо найти, есть ли команда с заданными модулем, тестом и функцией, и если да, добавить в параметры этой команды юзера (который указан только в имени самого csv), а если нет - создать? Так что ли?
PK1MwxwtSYp7i0anzGx3A6MiPtrtq0AG0ZToXd57s.png690 Кб, 569x721
255 1162230
Today I learned, что в питоне есть аналог Logo. Сижу, рисую разноцветные лабиринты, как в детстве.
256 1162234
Блять, я тупой. Я не понимаю функцию def. Почему в одних примерах пишут, например, def function(): ..., а в других def function(time)? Почему в первом случае скобки пустые, а во втором там стоит переменная? Что, если в во втором случае я задефайню функцию, но переменную напишу другую? Как это, блять, работает?
257 1162235
>>62221
Верно. Если дословно:
Изменения могут быть следующие:
1) Добавлена новая команда
2) Удалена команда
3) Изменена команда (стала доступна для другого набора пользователей, перенесена в другой модуль, изменена вызываемая функция)
258 1162257
>>62230
Покажи. Подобный аутизм можно даже в трядэ в майнкрафтах либо через аддон opencomputers, либо генерируя непосредственно NBT не запуская игру. Залипнуть можно надолго, но все эти алгоритмы с плотным размещением очень уж нетривиальные.
259 1162260
>>62234
def это не функция, а ключевое слово языка, позволяющее определять функции. То что в скобках ты напишешь собственно полностью под твоим контролем. Можешь много параметров затребовать, можешь ни одного, в чём проблема-то?
260 1162262
>>62235
Ну вот как я себе это представляю. Вложенных циклов дохуя, да, но if'ов вроде нормально. Не представляю, как без них можно проверять наличие команд и прочей шелухи. Другие аноны тоже оцените если можете.
https://repl.it/repls/EthicalAbandonedMachinecodeinstruction
лолирую с имен, которые repl генерирует
261 1162263
>>62180
Вот таких как ты я чёт готов душить и расстреливать. Гугл не авторитет. Если у тебя файлы больше 1000-2000 строк, там да, это помогает. Но с другой стороны, такие большие файлы уже можно бы и поразбивать. Ещё бывает названия импортируемых фунции слишком generic лучше переименовать from os.path import exist as file_exists.
262 1162267
>>62162
Хаскель не такой уж сложный.
264 1162286
>>61541
Бамп вопросу. Есть ли в PyCharm средства для разработки GUI?
265 1162292
>>62269
Ну допустим, есть веб сервис в котором зарегистрированные люди могут работать по api с другим сайтом, людей больше чем 1. Для работы с api другого сервиса, нужен будет http клиент
266 1162294
>>62286
Нету , для работы с pyQt есть божественный Qt дизайнер, в котором рисуются формочки у wxpython тож есть какой-то дизайнер и у Gtk тож есть дизайнер
267 1162303
>>62263

>Гугл не авторитет


А PEP8?
268 1162304
>>62257
Черепашка.
import turtle
draw = turtle.Pen()
for i in range (5, 500, 5):
draw.forward(i)
draw.left(90)
269 1162305
>>62292
Нужен. urllib/requests блокирующие клиенты, то есть у тебя будет тредпул ограниченной размерности. Можешь ещё перейти на асинхронные дилды. Можешь соединения с определёнными сервисами тоже не закрывать раньше времени.
270 1162309
>>62303
В pep8 не рекомендуют кастрировать язык. Если это так хуёво импортировать отдельные классы из модуля, напиши гвиде пеп пропозал вырезающий это из языка к ебени матери.
271 1162311
>>62304
No module named 'tkinter'
Ай.. у меня питон собран без поддержки tk. Но забавно, прямо в стдлибе.
272 1162314
>>62309
Рекомендуется абсолютное импортирование, так как оно обычно более читаемо и ведет себя лучше (или, по крайней мере, даёт понятные сообщения об ошибках) если импортируемая система настроена неправильно (например, когда каталог внутри пакета заканчивается на sys.path):
273 1162315
>>62311

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


А то!
2018-03-25133527.jpg67 Кб, 756x708
274 1162317
275 1162318
>>62262
Пытаюсь разобраться, пока у меня появляется "-f" в параметре user. Наверно, что-то делаю не так.
276 1162323
>>62314
Что ты понимаешь под абсолютным импортированием? Покажи примеры по каждому пункту в стиле говно|охуенно:

>более читаемо


>ведет себя лучше


>даёт понятные сообщения об ошибках


Ну и непонятные заодно напиши.

>импортируемая система настроена неправильно


Надо что-то настраивать ещё?

>каталог внутри пакета заканчивается на sys.path


Это как?
277 1162324
>>62262
name ведь наверняка уникальным должно быть
278 1162330
>>62262
Если бы я оценивал твой код, на тестовом задании бы собес и закончился.

Во-первых, пытаешься работать с параметрами командной строки напрямую вместо argparse, во-вторых, парсишь csv руками вместо стандартного модуля => не знаешь стандартную библиотеку.

(линтер я не включал - лениво) комментарии не по pep, строки совсем не 80 символов => понятия о code-style не имеешь.

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

>original = json.load(fin)["commands"]


На кой ты здесь поломал оригинальную структуру? чтобы потом в конце дампить `{"commands": original}`?

>if len(sys.argv) > 1:


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

>user+".txt"


все что угодно - join, f"", %, format, но только не конкатенация строк плюсиком

>...


по поводу структуры кода и возможности его переиспользовать и говорить не приходится.
279 1162331
>>62323
Это выдержка из PEP, блять. Вопросы к составителям.
280 1162336
>>62042
threadPool используй
281 1162347
>>62267
Что такое монада?
282 1162348
>>62330

>argparse


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

>стандартный модуль csv


Я знаю про него. И опять - зачем он тут? В скинутом примере csv максимально простой, предполагаю, что остальные выглядят так же. Как и применение argparse это мне кажется пушкой по воробьям. Зачем?

>комментарии не по pep, строки совсем не 80 символов


В смысле не по пеп? 2 пробела от самого кода, #, пробел, комментарий. PyCharm завещал так делать. Та же PEP8 в Pycharm'е говорит про строки в 120 символов.

>по поводу самого кода


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

>На кой ты здесь поломал оригинальную структуру?


Оригинальная структура представляет из себя словарь с одним единственным айтемом. И нафига мне его через всю программу тащить, когда можно тащить сам айтем? чтобы везде в остальной программе не писать original["commands"]

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


Тогда придется писать что-то типа sys.exit() или как он там. Лишняя строка, не?

>все что угодно


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

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


Ну а ты как бы сделал? Я думал нахуярить coroutine'ов и сделать pipeline раз я их только выучил, хуле и нет, но конечная цель - поиск совпадений name,function,module все равно пришлось бы делать во вложенных циклах. По-другому я не придумал.

Надеюсь на конструктивный ответ.
лейбниц.jpg275 Кб, 1200x1481
283 1162349
>>62318

Вечная неделимая частица.
285 1162371
>>62348

>argparse


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


Как минимум, чтобы я мог сделать `./main.py --help` не заглядывая в код.

>стандартный модуль csv


>Я знаю про него. И опять - зачем он тут? В скинутом примере csv максимально простой, предполагаю, что остальные выглядят так же. Как и применение argparse это мне кажется пушкой по воробьям. Зачем?


Затем, что писать собственные велосипеды стоит в контексте саморазвития, во всех остальных случая стоит использовать готовые решения. В данном случае это готовое решение есть в стандартной библиотеке и не несет какого-то оверхеда. Помимо этого решение c argparcse/csv предоставляет гибкость и простоту расширения, чего нет в твоем коде.

>комментарии не по pep, строки совсем не 80 символов


>В смысле не по пеп? 2 пробела от самого кода, #, пробел, комментарий. PyCharm завещал так делать. Та же PEP8 в Pycharm'е говорит про строки в 120 символов.


> for command in original: # looking for command with same name,module and function


Сдается, что кто-то здесь пиздит (и, 121 символ, что даже твой pycharm должен подчеркнуть как code-smell)

>по поводу самого кода


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


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

>На кой ты здесь поломал оригинальную структуру?


>Оригинальная структура представляет из себя словарь с одним единственным айтемом. И нафига мне его через всю программу тащить, когда можно тащить сам айтем? чтобы везде в остальной программе не писать original["commands"]


working_chunk = original["commands"]
from ... in working_chunk:
pass
json.dump(original)

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


>Тогда придется писать что-то типа sys.exit() или как он там. Лишняя строка, не?


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

>все что угодно


>Зачем эти ненужные усложнения? Когда нужно вывести большую красивую строку - делаю их. Но тут то зачем?


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

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


>Ну а ты как бы сделал? Я думал нахуярить coroutine'ов и сделать pipeline раз я их только выучил, хуле и нет, но конечная цель - поиск совпадений name,function,module все равно пришлось бы делать во вложенных циклах. По-другому я не придумал.


см пункт про декомпозицию и обработку исключений (что по сути есть разделение приложения на функциональные слои)

>Надеюсь на конструктивный ответ.

285 1162371
>>62348

>argparse


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


Как минимум, чтобы я мог сделать `./main.py --help` не заглядывая в код.

>стандартный модуль csv


>Я знаю про него. И опять - зачем он тут? В скинутом примере csv максимально простой, предполагаю, что остальные выглядят так же. Как и применение argparse это мне кажется пушкой по воробьям. Зачем?


Затем, что писать собственные велосипеды стоит в контексте саморазвития, во всех остальных случая стоит использовать готовые решения. В данном случае это готовое решение есть в стандартной библиотеке и не несет какого-то оверхеда. Помимо этого решение c argparcse/csv предоставляет гибкость и простоту расширения, чего нет в твоем коде.

>комментарии не по pep, строки совсем не 80 символов


>В смысле не по пеп? 2 пробела от самого кода, #, пробел, комментарий. PyCharm завещал так делать. Та же PEP8 в Pycharm'е говорит про строки в 120 символов.


> for command in original: # looking for command with same name,module and function


Сдается, что кто-то здесь пиздит (и, 121 символ, что даже твой pycharm должен подчеркнуть как code-smell)

>по поводу самого кода


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


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

>На кой ты здесь поломал оригинальную структуру?


>Оригинальная структура представляет из себя словарь с одним единственным айтемом. И нафига мне его через всю программу тащить, когда можно тащить сам айтем? чтобы везде в остальной программе не писать original["commands"]


working_chunk = original["commands"]
from ... in working_chunk:
pass
json.dump(original)

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


>Тогда придется писать что-то типа sys.exit() или как он там. Лишняя строка, не?


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

>все что угодно


>Зачем эти ненужные усложнения? Когда нужно вывести большую красивую строку - делаю их. Но тут то зачем?


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

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


>Ну а ты как бы сделал? Я думал нахуярить coroutine'ов и сделать pipeline раз я их только выучил, хуле и нет, но конечная цель - поиск совпадений name,function,module все равно пришлось бы делать во вложенных циклах. По-другому я не придумал.


см пункт про декомпозицию и обработку исключений (что по сути есть разделение приложения на функциональные слои)

>Надеюсь на конструктивный ответ.

286 1162372
>>62347
Монада, если не вдаваться в анальные глубины общей алгебры, является удобным паттерном для функциональных языков. Монады позволяют набирать последовательные цепочки вычислений, тем самым гарантируется строгий порядок выполнения. Особенно это полезно для вызова сайд-эффектов, получается по сути императивный код на основе чисто функционального, где в общем случае порядок вычислений заранее неизвестен.
287 1162385
>>62372
Нехуя не понял, что такое монада. Можно на примерах?

мимо
288 1162394
>>62348

>Я знаю про него. И опять - зачем он тут? В скинутом примере csv максимально простой, предполагаю, что остальные выглядят так же. Как и применение argparse это мне кажется пушкой по воробьям. Зачем?


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

>>62371

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


А вот тут мне уже стало интересно. Покажи, как ты это делаешь.
289 1162412
>>62353
Интересная структура, но когда я прописываю в одном из txt какие-нибудь другие имена, то они не добавляются.
290 1162413
>>62385
Тебе нужно сначала осознать что в ФП средах порядок выполнения не определён. В ФП ты не описываешь последовательность действий вроде возьми то, сложи туда, возьми это, перенести туда. В ФП ты сразу пишешь что тебе надо вот эти две коробки в таком порядке, а компилятор/рантайм тебе уже сами додумывают как это размотать в нужную последовательность действий и где что когда выделить в памяти.

Допустим у тебя есть такой код:

print(sin(sqrt(2)))

Вот это хороший пример вычислений зависимых по цепочке. Рантайм сможет это посчитать только в единственной возможной последовательности: сначала двойка, затем корень, затем синус, затем print.

Но что если функции никак друг от друга не зависят, а в цепочку их слепить надо? Например

print('lol') затем print('kek') затем print('ayy')

Вот тут-то и нужны монады. Делаешь print('lol') bind print('kek') bind print('ayy'), получаешь выражение наподобие print(sin(sqrt(2))) с единственно возможным порядком выполнения. При этом нагромождения от тебя скрыты и ты видишь только красивый чистый синтаксис.
291 1162422
>>62385

>Нехуя не понял, что такое монада. Можно на примерах?


потому что он хуйню спизданул, http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html

>>62394

>Покажи, как ты это делаешь.


Зависит от ситуации, в этом скрипте достаточно было бы:
def handle_line(line):
# разбираешь строку, бросаешь по необходимости исключения

if __name__ == '__main__':
for line in file:
try:
handle_line(line)
except CriticalCustomException as ex:
print(ex, file=sys.stderr)
sys.exit(1)
292 1162432
>>62413
прими разупорина уже, наркоман.
и погугли функциональный и декларативный подходы
293 1162434
>>62422
Тут мало по экцепшенам. Ты отдельные классы создаешь или один? Сколько параметров в классе и как это определяешь?
На какой уровень вложности процедур надо расчитывать в try/except блоках?

Если у тебя есть github, то скинь ссылку.
294 1162436
>>62412

>в одном из txt


там один txt
295 1162440
>>62432

>Common declarative languages include those of database query languages (e.g., SQL, XQuery), regular expressions, logic programming, functional programming, and configuration management systems.



Эм. Ты меня похвалил так или я чего-то не понял?
296 1162451
>>62436
Ну вот я его изменяю(название функции, например), а итоговый json файл остается таким же, каким был в оригинале.
297 1162475
>>62434
У меня в гите смотреть особо не на что, лучше посмотри код опенсорсных проектов - сильно полезнее будет (начать можно с той же django).
А по поводу остального, классы нужны если есть состояния(если их нет или можно избежать, то функциональщина может быть предпочтительнее), декомпозировать на классы нужно в соответствии с логикой, обязанностями и общей моделью/структурой приложения; количество параметров рекомендуют делать не больше семи.
А по поводу вложенности процедур в try/except каких-то особых ограничений я не знаю, по крайней мере я не вижу проблем в том, чтобы оборачивать в try/except рекурсивные функции. Другое дело, что лучше не размазывать обработку ошибок по всему коду, а делать это в одном специальном месте.

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

>>62440
Не похвалил. Неопределенный порядок вычислений есть в каком-нить прологе или при выполнении sql, а в лиспах/хаскелях/кложурах (и либах добавляющих функциональщину к питону, php, js, java) порядок вычисления вполне себе конкретный, а примеры, которые ты написал в >>62413 - дичь полная.
image.png220 Кб, 668x581
298 1162567
Почему второй вариант работает настолько медленнее?
299 1162590
>>62567
Потому что в первом варианте итерация происходит на уровне сишного кода, во втором на уровне питонов. Никто бы не делали эти ваши нампи если бы вот так скорость не прирастала.
300 1162595
>>62567
Магиче сишечки.
Но ты не очень честно сделал, на самом деле, потому что единичный доступ по нампиевским массивам медленнее, чем к родным списочкам раза в полтора: https://repl.it/repls/PaleSnivelingSpreadsheet
301 1162596
>>62475

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


Вот это уже реально дичь. Нахуй тогда монады нужно-то? Вычисления могут быть детерминированными, то бишь повторяться одинаково при одинаковых входных данных и фазе луны. Но это не рассчитано на то чтобы какие-то задроты вроде тебя в уме разворачивали весь граф вычислений и писали код подглядывая в исходники ghc.
302 1162606
>>62060
Пофиксил на List4[y], только вот при n = нечётное число, выдаёт ошибку IndexError: list index out of range
304 1162610
Анон помоги мне потушить пердак. https://pastebin.com/1w0AWjjY
Какого черта меняются значения в listnew_? Я нигде не просил этого.
Выглядит будто при передаче листу listnew_ значения list_, собственно передачи значения не происходит, а как будто передается только указатель и ссылаются оба на одно и тоже.
Иначе как объяснить такое поведение? И как это исправить?
305 1162612
>>62610

>Выглядит будто при передаче листу listnew_ значения list_, собственно передачи значения не происходит, а как будто передается только указатель и ссылаются оба на одно и тоже


Ты не поверишь.
306 1162614
>>62610
Открой для себя is, id(..), list.copy, dict.copy, set.copy, import deepcopy.
308 1162622
>>62619
Ой, промазал. Это ему >>62610
Ну вы понели.
309 1162633
>>62606>>62049
Бамп вопросу
310 1162636
>>62612
>>62614
>>62619
Спасибо аноны.
Вам не кажется, что это является эталоном зашквара?
Как вообще можно было до такого додуматься? Что поведение базового оператора зависит от контекста его вызова (в случае целых чисел, например, работает иначе). Стало быть python это не тот язык на котором можно просто писать, а нужно сидеть и пердолиться в изучение какие еще операторы в каких разных контекстах проявляют не ожидаемое поведение и где ждать подводные камни? Нах так жить посоны?
Можно ли это как-то отключить, директивой какой-нибудь и т.п.?
извините, у меня бомбануло
311 1162637
a = b
b = a
питоноиды
312 1162641
>>62636
Просто у питона наглухо упоротый синтаксический сахар
b = 4 это обёртка для b = int(4) или как то так я уж не знаю как там точно в интерпртитаторе хуярится
314 1162644
Напомните ещё раз дебилу как получить индекс массива в питоне?
315 1162645
>>62644
Индекс элемента массива
Ну точно дебил
316 1162647
>>62645
index
317 1162648
>>62647
массив.index(x) ?
318 1162650
>>62648

>массив.index(x) ?


Да?
319 1162655
>>62644
Мы вообще книжки не читаете? Это основы блядских основ.
320 1162657
>>62636
>>62641
Блядь, они плодятся. Какая нахуй обёртка над int(4), что ты несёшь, это ты упоротый сахар, блядь. Уже потратил на тебя полночи, ты опять начинаешь.

>>62636

>Вам не кажется, что это является эталоном зашквара?


Это является эталоном работы с памятью через указатели.

Иди читай ветку от >>1158870 пока тред не смыло. А так же про указатели, референсы, значения, lvalue, rvalue и ещё что-нибудь полезное.
321 1162659
>>62655
Блядские основы мне почему-то не помогают.
Вот объясни, почему при
list4 = [1, 2, 3, 4, 5, 6]
----for y in list4:
------if list4.index(y) % 2 == 0:
---------print(list4[y])

Он мне выдаёт 2, 4, 6?
Индексация же с 0 начинается. Т.е. должен выдать 1,3,5.
Или я опять чего-то не понимаю?
322 1162661
>>61945
Зоделай константу seconds_in_sutkah = 24 60 60
323 1162662
>>62659

>Или я опять чего-то не понимаю?


Во-первых, ты не понимешь, что далет

>for y in list4


Во-вторых, ты не понимаешь, что ты вообще делаешь.
Нахуя, спрашивается, ты обходишь в цикле массив по его элементам (по порядку), а потом берёшь индекс элемента? Почему сразу по циферкам от 0 до длины списка не пройтись?!

>print(list4[y])


На этой строке ты принишь y-тый элемент списка. y — значение элемента списка, а не его индекс, который ты только что проверил на чётность.

первая итерация:
y = 1
index(1) % 2 == 0
list4[1] # 2 потому что это второй элемент списка
324 1162664
>>62659
Дело в том, когда ты используешь метод for:

>for y in list4


, то за y он берет не индекс 0, а первое значение в списке, то есть 1.
325 1162672
>>62662

>Во-первых, ты не понимешь, что далет


>Во-вторых, ты не понимаешь, что ты вообще делаешь.


Возможно. Именно потому хочу понять и разобраться.
Мне надо чётные индексы заменить на, например, какое-нибудь фиксированное значение.
>>62664
Дело в том, когда ты используешь метод for:
То есть for не использовать?
326 1162673
>>62636
Такое поведение абсолютно у всех по крайней мере динамических языков: PHP, Lua, Javascript, Perl, Ruby. Посмотри на это с другой стороны, вдруг у тебя есть структура размером 4Гб, потом ты делаешь какую-то элементарную мелочь и все 4Гб автоматически копируются. Ещё вдруг ты захочешь закинуть куда-то далеко в код структуру, но при этом иметь на неё ссылку и время от времени читать. Как такое сделаешь? Явно указатели будешь брать? Истина в том, что поведение copy на деле нужно ооочень редко.

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


А как иначе? 2 + 2 это далеко не то же самое что [2] + [2] или '2' + '2'. Кстати говоря, операторы наподобие + не изменяют структуры, а порождают новые. Изменяют структуры inplace вызовы методов например list.remove, list.clear, list.append.
327 1162678
Можно как то из mint удалить встроенный второй пистон и накатить третий?
328 1162680
>>62672

>То есть for не использовать?


Использовать. Но по-другому. Иди прочитай ты ну хоть какой-нибудь туториал о циклах в питоне, в самом деле.
329 1162682
>>62678
Накатить третий можно. Удалив второй обязательно что-нибудь сломаешь.
330 1162688
>>62682
А конфликта версий не будет? Сложно же вроде сразу два пистона иметь
331 1162691
>>62688
Ни в коем разе. Устанавливаются в две разные папки (по номерам версий) в корневом каталоге диска, вызываются отдельными экзешниками.
332 1162692
>>62688
нихуя сложного.
это называется инвайронмент
управляется либо через pip либо через conda
вообще всю подобную херню по смене версий надо доверять пакетным менеджерам. Очень удобная штука. Всё для людей
333 1162694
>>62688
Да можешь хоть портабельный взять и распаковать у себя в /home/ ничего не устанавливая.
334 1162697
>>62680

>Использовать. Но по-другому.


А можно просто ткнуть в ошибку и написать как правильно?
335 1162702
>>62697
Так ты не научишься.
336 1162703
>>62702
Ну, мам!
А если серьёзно, пердолиться с этой проблемой и тщетно искать ответ я могу неделями.
Я пришёл с вопросом, и хочу получить на него прямой ответ.
337 1162705
>>62697
Тебе уже ткнули. for x in lst перебирает элементы, а не индексы.

>написать как правильно?


Ну введи ж ты в гугл python loops tutorial, первые же пара ссылок приведут куда надо и расскажут, что там и как. Ладно бы тебе нужно было срочно сделать, тогда бы дали ответ, но так-то нахуя? Ну напишут тебе тут наебал, не будет тут ответа, дальше что? Ты завтра с очередной такой же дебильной проблемой прибежишь.
338 1162711
>>62703
Проблема в том, что твоя задача по факту не имеет смысла. У тебя есть массив, из которого ты пытаешься получить значение индекса, чтобы на его основе вызвать элемент массива. Масло масляное, ни добавить ни прибавить. Нахуя это вообще? Это как если бы пошел срать, но предварительно надевал на себя свитер, а потом снимал его тут же. Хотя можно было бы сразу пойти срать без свитера.
339 1162714
>>62705>>62711
Спасибо.
Всё оказалось проще, чем я думал.
340 1162736
Посоны, есть ли строковая функция, которая яаляется обратной repr()? Мне нужно убрать экранирование из строк в файле, пока решил задачу костылем из print -> subprocess. Т.е. в файле изначально сохраняются строки вида "\nt\ty", а мне нужно, чтобы он выглядел как при print("\nt\ty")
image.png773 Кб, 1368x981
341 1162764
спасибо антошеку за контриб ^_^
image.png16 Кб, 467x398
342 1162765
потом заверстаю

кстати под линами змейка другая лел

кому интересно вот линкаhttps://sites.google.com/view/pypry/
343 1162794
>>62736
https://repl.it/repls/RelievedNervousMarkuplanguage

Алсо,

>обратной repr()


eval. Ты не совсем правильно понимаешь, что делает repr.
344 1162816
>>62736
.encode('ascii').decode('unicode_escape')
345 1162841
>>62353
>>62262
Пусть и с опозданием, но спасибо вам, аноны!
346 1162843
>>62636
Блжад. Ты и при инте передаешь ссылку на инт. Вот только изменить значение по ссылке ты не можешь, поэтому присвоение нового инта просто меняет ссылку
image.png1 Кб, 123x85
347 1162882
Я думал, что я понял все про object reference, но похоже нет. Вначале object reference b указывает на двойку. После первого a.append(b) в a хранится b - object reference на двойку. Потом после b=3 object reference b указывает на тройку. После второго a.append(b) в списке a на 0 и 1 местах хранится один и тот же object reference указывающий на одну и ту же тройку. Почему я получаю [2, 3]?
ab.png11 Кб, 186x416
348 1162885
>>62882
В питонах всё есть объект. Объекты хранятся в памяти и не имеют имён, только адрес, тип, значение, refcount. Твои a и b это только имена, которые ссылаются на адреса с объектами. Можешь считать что текущий контекст выполнения это такой dict с именами-строками (попробуй vars(), globals()). Кстати refcount это оно и есть, сколько имён привязано к конкретному объекту. Когда оно становится 0 сборщик мусора его автоматически удаляет из памяти.
349 1162886
>>62885
текущий контекст выполнения мань
351 1162893
>>62882
Во-первых, 2 и 3 - неизменяемые объекты в пайтоне. Во-вторых, ты сначала установил ссылку b в одно значение и его добавил в список, потом установил в другое значение и уже другую ссылку добавил в список - получился список из двух разных ссылок на два неизменяемых значения. Как бы ты теперь не модифицировал значение ссылки b, в списке у тебя сейчас хранятся ссылки на неизменяемые 2 и 3, а не на b. Как правило такого поведения мы и ожидаем...

Вот другой пример: >>62885 - здесь сначала создают две ссылки на изменяемый объект, а потом в один из объектов дважды добавляют одну и ту же ссылку на изменяемый объект. Т.к. добавлена ссылка на изменяемый объект, то теперь изменение b приведет к изменению элементов списка a... и теперь это вряд-ли тот, эффект, которого мы хотим!
352 1162894
>>62890
и где ответ на вопрос?
353 1162895
>>62886
>>62894
Съеби, мелкобуквенное насекомое.
354 1162897
>>62885
Про пример со списком в списке помню. Чет пиздец туплю.
>>62893
То есть в a.append(b) я добавляю в список не само b, которое может указывать на разные ссылки т.е. на разные объекты, а ту ссылку, с которой b связанно в момент выполнения append'а? А чем тогда является само b?
355 1162900
>>62636

>Стало быть python это не тот язык на котором можно просто писать, а нужно сидеть и пердолиться в изучение какие еще операторы в каких разных контекстах проявляют не ожидаемое поведение и где ждать подводные камни?


Просто нужно выучить, какие типы - мутабельные, а какие - нет.
356 1162901
>>62897
b - это ссылка на неизменяемый объект!
In [1]: b = 2
In [2]: a = []
In [3]: a.append(b)
In [4]: id(b)
Out[4]: 140615934922848
In [5]: id(a[0])
Out[5]: 140615934922848
abb3.png4 Кб, 248x144
357 1162902
>>62897

>ту ссылку, с которой b связанно в момент выполнения append'а


Именно! Само имя в структурах данных нигде не фигурирует.
Например если ты добавил что-то в массив, то по старому имени из этого массива уже не взять, только по индексу. Смекаешь?
ab4.png8 Кб, 323x161
358 1162903
Снимок экрана 2018-03-26 в 12.51.15.png25 Кб, 499x326
359 1162906
>>62902

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

Снимок экрана 2018-03-26 в 12.54.41.png7 Кб, 377x66
360 1162907
>>62906
то есть
Снимок экрана 2018-03-26 в 12.55.19.png8 Кб, 374x79
361 1162909
>>62907
тьфу бля
362 1162911
>>62906
Ты когда выйдешь из контекста где у тебя определены a b, то всё, имена a b станут недоступны. Только безликий массив c с индексами. Объекты внутри себя уже определяют свои собственные именные контексты. И опять же, если забрать значение атрибута объекта и куда-то его передать, то там куда передали никогда не узнают что когда-то это называлось например a.n.
363 1162915
Все, понял, спасибо за ответы.
364 1162991
>>62371
Анон, надеюсь ты ещё здесь и посмотришь а может кто и другой, кому интересно помочь вкатывальщику измененую версию:
https://repl.it/repls/GiganticCompatibleWebsphere

>Как минимум, чтобы я мог сделать `./main.py --help`


Теперь можно

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


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

>Сдается, что кто-то здесь пиздит


А как надо писать комментарии? На том же pythonworld.ru в теме про ПЕП8 говорят про два пробела, #, пробел, коммент. Поставил ограничение на 80 строк что за ебанутое соглашение. со 120 намного лучше было

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


Сделано. Разобрал все на столько, на сколько можно. За команды теперь отвечает отдельный класс, который можно менять как хочешь, проверка модулей, имен, функций, юзеров и добавление юзеров делается его методами, которые можно изменить. Все проходит через охуенный pipeline, любую остановку которого можно изменить, чтобы принимать другие файлы не .csv например или добавить ограничения на них. Кто хочет может получать ошибки в консоль, кто хочет в лог, кто хочет может изменить error_handler чтобы делать с ошибками что угодно. Можно так же изменить функцию составления новых имен для файлов или поиска .csv в папках например чтобы игнорировать папки с началом "donttouch"

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

>from ... in working_chunk:


Вот это кстати не понял. Попытался погуглить но выдает from import или yield from, о которых я знаю. А что ты сделал не понимаю.

Вопрос, так и надо было? Или слишком много? Количество ебучих строк увеличилось в 7 раз. Семь блять. Мне кажется я сделал что-то совсем не то. И писал я это 5 часов с перерывами и прочим но все же Может потому, что только учусь и охуенные сеньоры сделали бы это за 5 минут, но я очень заебался писать это, получать порцию говна в лицо, и переписывать, чтобы его на вентилятор не бросало и чувствую себя немного пиздец тупым. И как вообще догадаться о таком на собесе надо? Ведь анону дали задание сделать бумажный самолетик. Я накатал 30 строчный бумажный самолетик, который делает именно то, что от него просят. А после твоих сообщений сделал ебучий 200000000 строчный звездолет.

Ещё вопрос про "поменяй условие в обратную сторону". Вот во многих местах сделал это, и вроде бы получается даже красивее, но приходиться кидать break и continue. Ещё когда в 7 классе нас учили Паскалю, кто-то сказал мне "continue, halt, break, go to для пидоров". Насколько это правда и насколько правильно я использовал их в своем коде?
364 1162991
>>62371
Анон, надеюсь ты ещё здесь и посмотришь а может кто и другой, кому интересно помочь вкатывальщику измененую версию:
https://repl.it/repls/GiganticCompatibleWebsphere

>Как минимум, чтобы я мог сделать `./main.py --help`


Теперь можно

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


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

>Сдается, что кто-то здесь пиздит


А как надо писать комментарии? На том же pythonworld.ru в теме про ПЕП8 говорят про два пробела, #, пробел, коммент. Поставил ограничение на 80 строк что за ебанутое соглашение. со 120 намного лучше было

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


Сделано. Разобрал все на столько, на сколько можно. За команды теперь отвечает отдельный класс, который можно менять как хочешь, проверка модулей, имен, функций, юзеров и добавление юзеров делается его методами, которые можно изменить. Все проходит через охуенный pipeline, любую остановку которого можно изменить, чтобы принимать другие файлы не .csv например или добавить ограничения на них. Кто хочет может получать ошибки в консоль, кто хочет в лог, кто хочет может изменить error_handler чтобы делать с ошибками что угодно. Можно так же изменить функцию составления новых имен для файлов или поиска .csv в папках например чтобы игнорировать папки с началом "donttouch"

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

>from ... in working_chunk:


Вот это кстати не понял. Попытался погуглить но выдает from import или yield from, о которых я знаю. А что ты сделал не понимаю.

Вопрос, так и надо было? Или слишком много? Количество ебучих строк увеличилось в 7 раз. Семь блять. Мне кажется я сделал что-то совсем не то. И писал я это 5 часов с перерывами и прочим но все же Может потому, что только учусь и охуенные сеньоры сделали бы это за 5 минут, но я очень заебался писать это, получать порцию говна в лицо, и переписывать, чтобы его на вентилятор не бросало и чувствую себя немного пиздец тупым. И как вообще догадаться о таком на собесе надо? Ведь анону дали задание сделать бумажный самолетик. Я накатал 30 строчный бумажный самолетик, который делает именно то, что от него просят. А после твоих сообщений сделал ебучий 200000000 строчный звездолет.

Ещё вопрос про "поменяй условие в обратную сторону". Вот во многих местах сделал это, и вроде бы получается даже красивее, но приходиться кидать break и continue. Ещё когда в 7 классе нас учили Паскалю, кто-то сказал мне "continue, halt, break, go to для пидоров". Насколько это правда и насколько правильно я использовал их в своем коде?
365 1163005
>>62991
Я это не запускал, но выглядит очень круто. Пойду читать про coroutine и все в этом духе. Походу придется повременить с вкатыванием, я ещё слишком low level оказался
366 1163007
>>62991

>Вот это кстати не понял. Попытался погуглить но выдает from import или yield from, о которых я знаю. А что ты сделал не понимаю.


Он опечатался, там for, конечно же. Суть в том, чтобы иметь original, который настоящий оригинал, а для сокращения кода, если тебе постоянно к одному и тому же ключу обращаться, вынести его в новую переменную, с которой и работаешь (так, как ты работал с original в своём коде).

>кто-то сказал мне "continue, halt, break, go to для пидоров".


Это сказал пидор. %Ну, разве что goto можно понять%%.
В питоне приветствуется наименее индентированный код, то есть лучше в if пихать условие выхода, а сам код потом на том же уровне, что и до этого. Сравни два варианта: https://repl.it/repls/InsidiousTiredCharacters
Если кода много, а не один принт, то второй выглядит гораздо приятнее.

>А как надо писать комментарии?


Я не уверен, но, вероятно, комментарий на строке с двоеточием лупа комментарий не очень хорошо делать.
367 1163009
>>62991
А зачем тебе тут корутины? Ты один раз читаешь/пишешь в файл же, нигде в I/O не простаивает код без дела (пока оба не загрузишь всё равно ж ничего не сделать).
368 1163018
И какого хера говорят про сложность и непонятность сишных указателей с крестовыми ссылками, когда в питоне все эти изменяемые и неизменяемые типы не менее простые, а скорее даже более путанные?
369 1163020
>>63018
В сишке тебе ещё надо следить когда сделать free. Ну ещё там ебанутые spiral rules в которые умеет полтора аутиста.
370 1163023
Суп питуносы. Я все ещё пишу бота в телегу 3 дня работал, простой, да.
В общем каким-то образом мои тесты внезапно иногда вешают систему, и я не могу узнать в чём причина.

Каков выход из данной ситуации? А именно как обезопасить головную систему стабильный debian он таких внезапных падений?

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

Wich way os right?
371 1163027
>>63023
Никак не обезопасить. Компутер другой взять.
372 1163062
анончик. умеет ли питоняня base64 скушать и красивые слова и предложения мне потом показать?
373 1163064
>>63023
поменять прослойку хе - хе
374 1163066
>>63062
import base64
base64.b64decode(b'0JrQvtCz0LTQsC3QvdC40LHRg9C00Ywg0YLRiyDRgdC/0YDQvtGB0LjRiNGMINC80LXQvdGPLCDRh9GC0L4g0Y8g0LvRjtCx0LvRjiDQsdC+0LvRjNGI0LU6INGC0LXQsdGPINC40LvQuCDQudC+0LHRgz8g0K8g0L7RgtCy0LXRh9GDLCDRh9GC0L4g0LnQvtCx0YMuINCi0Ysg0YPQudC00LXRiNGMINC4INC90LjQutC+0LPQtNCwINC90LUg0YPQt9C90LDQtdGI0YwsINGH0YLQviBZT0JBIEVUTyBUWS4=').decode('utf-8')
375 1163069
>>63066
нормально нормально всё для людей гоблинов
376 1163070
>>63069
Смотри, аккуратно, там байты а не строки, всё на сишке с максимальной скоростью сделано.
377 1163071
>>63070
щито?
Внимание, увага 378 1163136
Андрей Светлов (создатель aiohttp), жестко раскатал самый производительный питон веб сервер , абаSanic. Будьте осторожны, при использованиии этой перделки на продакшене

https://www.reddit.com/r/Python/comments/876msl/sanic_python_web_server_thats_written_to_die_fast/
379 1163143
>>63136
Автор одного новоиспечённого веб-дилдака разобрался чуть лучше в матчасти автора другого новоиспечённого веб-дилдака и не поленился провести ревью. HTTP ахуительно сложный, что тут сказать.

>производительный


Бгагага. Покажите мне хоть одного человека, который реально упёрся в производительность фреймворка на практике.
380 1163145
Хотя я кажется понял.. У саника почти 9к звёзд, у айо 4к. Вот где собака порылась-то.
381 1163146
Анон поясни в чём может быть проблема.
Есть установленный модуль natsort. В PyCharm при его импорте подчёркивает красным типа нет такого модуля. Запускаю в терминале всё работает, есть такой модуль. Ну работает и хуй с ним, подумал я.

Загрузил всё это дерьмо на heroku, прописал в зависимостях natsort, и угадай что? Хуй! Нет такого модуля. Как быть?
382 1163148
>>63146

>Анон поясни в чём может быть проблема.


Проблема в том, что ты чухан.
383 1163149
Перепиливаю парсер на случай, если urlretrieve не сможет сохранить некоторые пикчи. Наткнулся на следующую проблему. Допустим, код такой:
req_img = requests.get(image_url)
image = open("{}/files/pics/{}".format(settings.MEDIA_ROOT, image_url.split('/')[-1], "wb"))
image.write(req_img.content)
image.close()

В другом скрипте - всё норм, в консоли - всё норм. Запускаю этот скрипт:
IOError: [Errno 2] No such file or directory: '/Path/to/media/files/pics/2d240494067091ebacb8838a847fdb38.jpg'

Хотя по идее он должен сам этот файл создать. Папки /Path/to/media/files/pics/ существуют, вбиваю в файловый менеджер путь из ошибки - переходит. ЧЯДНТ?
384 1163150
>>63146
Там venv или как? Мб еботня с интерпретатором
385 1163151
>>63149
У тебя 'wb' уходит в format, а не в open.
386 1163152
>>63151
Блэт, точно, в глаза ебусь. Спасибо!
387 1163154
>>63150
Ну зависимости там устанавливаются по файлу requirements.txt. Который в свою очередь создаётся из venv.
388 1163158
>>63154

> Который в свою очередь создаётся из venv


А запускаешь то из-под него?
389 1163160
>>63007

>Он опечатался


Окей, понял

>В питоне приветствуется наименее индентированный


Хорошо

>>63009
А разве сопрограммы используются только для асинхронных кодов, которые работают с другими медленными программами? Я думал это вообще functional style и можно использовать, чтобы делать красивую логику программы. Вот в моем примере есть эта труба и есть остановки, на которых как-то фильтруются данные. Все просто, понятно и красиво.
390 1163165
>>63158
Тут даже хз. Зависимости же устанавливаются на виртуальную машину на сервере heroku. В общем я ещё в этом не особо силён, не могу ничего по этому поводу сказать
391 1163166
>>63165
Хуярь тогда логи установки на pastebin и сюда ссылку.
Можешь ещё для интереса выхлоп с which python3 показать
392 1163170
>>63166

>which python3


which python, разумеется
393 1163210
>>63170
https://pastebin.com/D3H7KmC3

which python я полагаю нужно на серваке прописать? Ещё не пердолился с ssh, там есть возможность но ещё не разбирался. Сейчас покопошусь.
На моей машине в venv which python:
/home/username/PycharmProjects/HogeBot/hb_virtualenv/hb_env/bin/python
394 1163211
>>63170
Дело ещё в том, что вместе с natsort устанавливается telebot, в import он идёт выше natsort'a, и его импорт проходит без проблем. Собственно что-то всё-таки в самом модуле, ибо в pycharm он подчёркнут красным, хоть и запускается в терминале, но при попытке запустить из PyCharm даёт ошибку.
395 1163224
>>63170
Мда. Зашёл в баш heroku. Оттуда бот запускается (хотя только после переустановки pyTelebotAPI. В консоли питона natsort импортируется. В рот ебал
coroseq.png20 Кб, 702x408
396 1163310
>>63160

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


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

>Я думал это вообще functional style


Даже если бы это он и был, нафига тебе эта функциональщина? Илитарием побыть?

>есть остановки, на которых как-то фильтруются данные.


В каком плане остановки? Процессор не простаивает во время фильтрации. У тебя каждая итерация каждой корутины будут идти по очереди. https://repl.it/repls/MatureFarawayModule

>Все просто, понятно и красиво.


Красивенько, согалсен, и так-то малаца, но вот начсёт первых двух применительно к этой задаче я бы поспорил.
Твой код приходится читать с конца в начало: в пайплайн передался путь -> смотрим, что такое этот пайплайн -> validate_csv -> там какому-то ресиверу что-то отсылается -> возвращается в вызов validate_csv, смотрим что ему было передано -> extract_from_csv -> там то же самое -> update_commands. А вот вызываются они все последовательно.

Вот у тебя запускаются несколько корутин, ресиверсы всякие, ты туда-сюда сообещния с данными передаёшь, причём в заранее известном порядке всё происходит. Но зачем? Ты с тем же успехом мог бы вместо receiver.send() сделать обычный вызов функции: https://repl.it/repls/FussyObedientEmacs
(пикрелейтед сравнение последовательности вызовов, видно некоторое сходство.)
Немного говнокод, потому что я старался внести как можно меньше изменений в твой.

Это лишь моё мнение, разумеется, и местные сеньоры и сеньоритты вполне могут оказаться правее.
397 1163335
>>59798 (OP)
Двач-помогач, тут нужно интерфейс для одной проги запилить, мб кто знает годные гайды по pyqt5? В гугл могу, но хорошего материала как-то не нашёл
398 1163388
сап двач советач
посоветуйте пожалуйста годную статью по созданию приложения командной строки на питоне, где обьясняется как работать с аргументами командной строки. желательно по англицки. но на русском тоже сойдёт если годнота.
400 1163391
>>63390
блять спасибо
401 1163438
>>61775
Объясню для дауна.
Понятно, ты в цикле доливаешь в один и тот же стакан, а потом хочешь плеснуть в другой.
Но ведь есть простой и сверхочевидный (для не-дауна) способ: когда цикл закончится начни следующую команду с перевода каретки замены стакана.
402 1163446
>>61770
import time

text = 'Now thinking...'
for i in text:
time.sleep(0.1)
print(i, end = '')
print()
403 1163479
>>59798 (OP)
Аноны, помогмте! Можно ли как-то с pyinstaller вшивать батники в готовый ЕХЕшник и оттуда их, соответственно, запускать?
404 1163644
>>63438
Я практически то же самое и сделал же, просто вместо пустой строки переместил последний символ. Я-то думал, это можно было в той же строке сделать, так сказать, подставить сразу новый стакан на следующей строке, а вы подставили второй стакан, чтобы туда капнуло последний раз, и после этого идете брать третий.
405 1163646
>>63438
>>63446
Сюда тоже.
406 1163648
>>63644

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


Нет, это ты капнул последний раз (точкой) и поменял стакан. В нашей аналогии перенос строки это смена стакана. print() не делает ничего, кроме переноса строки.
print("abc") == print("abc\n", end="") == print("abc", end=""); print().
И третьего стакана никто не берёт, откуда ты это выдумал?

>Я-то думал, это можно было в той же строке сделать


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

>просто вместо пустой строки переместил последний символ.


И зачем? В следующий раз, при получении неизвестной тебе строки, тоже сделаешь for i in string[:-], а после лупа print(string[-1])?
407 1163649
вкатываюсь.
Подскажете позязя, как из строки
"sfdsfsdfsfsjiaud ifu afu afual"
взять все что находится между двумя звёздочками?
сэкономите мне целый день чтения аноны)))
408 1163650
>>63649
строка

>"sdsdsqqadsdadarra"

409 1163654
>>61792
Ни один из них не являются программистами. Уже хотя бы потому, что никто из них не создаёт программы, откуда пошло название.
Это кодер, ПМ и, скажем, архитектор (или дизайнер). А программист это они все вместе.
410 1163657
>>63649
regex.

Ну или говнокод, всегда есть способ — https://repl.it/repls/RobustLeadingOrigin
411 1163660
>>63648

>И третьего стакана никто не берёт, откуда ты это выдумал?


Третий стакан — это новая строчка с принтом.
Вот вы пишете:
1. print(i, end = '', flush = True)
2. print()
А третий стакан:
3. print('New string')
То есть три раза один хуй надо писать.
Но я вас понял, спасибо за пояснения. Вообще я ожидал, что print() выведет лишний пустой абзац, и придется еще и с этим ебаться. Оказалось, что не казалось.
412 1163664
>>63657
спасииибо
413 1163668
>>63660

>А третий стакан:


Так ты откуда и что считаешь-то, ёба? "New String" зальётся во второй стакан, и только после этой строки подставится третий. В твоём коде всё то же самое ведь, ещё раз говорю. Твои print('.') вне лупа это то же самое, что print('.', end="") в лупе с последующим print() вне лупа.

>придется еще и с этим ебаться. Оказалось, что не казалось.


С чем ебаться?
414 1163674
>>63668

>Так ты откуда и что считаешь-то, ёба?


Первый стакан: принт, входящий в фор, основной принт, так сказать.
Второй стакан: принт без нихуя, в который сливается последняя капля end=''. Как с члена стряхнули напоследок.
А третий да и все остальные — все, что принтится после.

>В твоём коде всё то же самое ведь, ещё раз говорю


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

>С чем ебаться?


Да я думал, придется видоизменять до уровня print('', end='\n'), но это одно и тоже, да и пустой абзац там никак не мог появиться.
Важнооооо 415 1163760
Бродяги, расклад такой. Есть проект на Джанго. Нужно расфасовать статические файлы по канонам DRY. В проекте много app в которых используются файлы из bootstrap фреймворка и так же самодельные файлы css/js. В корне основного приложения сделана директория templates , в которой будут находится части шаблона, которые будут вызываться во всех app, также в корневой директории есть static в которой все файлы из bootstrap. В каждой app есть своя директория static , в которой находятся самодельные статические файлы, которые относятся только к этому app. Короче, как грамотно сделать, чтобы не приходилось много копипастить файлы bootstrap
416 1163770
>>63760
Как насчёт просто не копипастить файлы бутстрапа? В чём проблема?
417 1163852
>>63674

>Второй стакан: принт без нихуя, в который сливается последняя капля end=''. Как с члена стряхнули напоследок.


>А третий да и все остальные — все, что принтится после.


НЕТ. Почему ты такой дурак? Или изъясняешься очень криво. Принт без нихуя, следующий за принтом с end="", делает только перенос строки. Т.е. он добавляется \n к первой строке / убирает первый стакан (подставляя второй для последующих принтов). Следующий за этим принт нальёт текст во второй стакан.
Перенос строки (смена стакана) всегда находится в конце строки. Так что, когда напечатана "целая" строка текста, она имеет в коцне перенос строки. То есть, смена стакана всегда производится не перед наливаением воды, а после. Как посуду ты помешь не перед едой, а после, чтобы потом, когда захочется есть, тарелка была чистой.

>Так а нахуй ты тогда так категорично заявлял


Потому что ты хуйню какую-то, а не решение сделал. В чём была твоя проблема? Нет переноса сторки. Что нужно сделать? Очевидно, просто сделать перенос строки. Но ты пошёл каким-то ебическим путём с распиливанием исходной строки текста.
418 1163853
>>63852

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


, что заставляло думать, что ты нифига не понимал ни собственно проблемы своей, ни того, как print работает, хотя это несколько раз повторяли.
362008semi-dash-grimdarkartist-colon-gordonfreeguyococ+only[...].png544 Кб, 1280x1237
Ши-Лунофаг 419 1163857
Уф, опять этот противный оранжевый...
Но относительно живой, и где не жалко показаться дураком.


Относительно отучил основы питона, кое-как понял суть ООП, запил пару говнокодов, которые порой выручают в повседневной жизни.
Куда идти дальше? Пытаюсь уже которую неделю освоить ХГУЙ, но после пары часов ошибок вся мотивация пропадает. Мог бы решать на codewars или ещё где задачи на алгоритмы, но...
Язык первый был ещё cpp, но его забросил из-за личных переживаний. Начал именно этот учить в связи с разработкой одной игры на pygame. Будто между шагами понимания базы и написанию гуёв должна быть ещё ступень, которую пропускаю.
Куда поворачивать?
420 1163862
>>59798 (OP)
Привет сап.
Учусь на втором курсе относительно неплохого вуза.
На данный момент по программе идёт с++, до этого был Паскаль и с.
Стоит ли потихоньку скатываться в питон?
Кресты потихоньку надоедают.хотя в Питоне меня выбешивает отсутствие фигурных скобок для обозначения блока кода, привык, наверное
Не прошу советовать с чего начинать и етц.
Нужны лишь советы по типу за и против, т.к. если что я сам шапку на гите прочитаю.
421 1163863
>>63857
Ты в чём ГУИ пишешь? Там что не гуи под питон, сплошное ООП, туда и копай. Ещё event driven программирование, наверное.
422 1163874
>>63862
Ты можешь не потиху скатываться, а попробовать написать что-то небольшое, но до конца рабочее на питоне. Если понравится, будешь продолжать. Не понравится - питон пригодится, чтобы какой-нибудь скриптик для себя написать.
423 1163925
>>63874
А что на нём можно написать?
инб4 всё
Хотя лучше так: что на нем делается проще, чем на крестах?
424 1163927
>>63925

>что на нем делается проще, чем на крестах?


Э... всё что угодно? ЛОЛ!
425 1163929
>>63925
сам процесс разработки другой. Более динамичный. Ты как будто бы превращаешься в макаку.
426 1163930
>>63927
Т__Т
427 1163931
>>63930
Код можно запускать через MinGW? Я просто в VS Code пишу.
428 1163953
Анон, подскажи функцию для отслеживания очередности выполнения кода.
429 1163956
>>63953
print
430 1163957
>>63310

> Не медленными, а ожидающими чего-то


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

>даже если бы это он и был, нафига тебе эта функциональщина?


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

>В каком плане остановки?


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

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


Принял, подумаю над этим.

Спасибо за ответ, чет вчера ещё прочитал но не ответил сам.
431 1163969
>>63863
Пробовал tkinter, pyqt, kivy, остановился на последнем.
432 1164032
Недавно спрашивал в каком то из тредов на каком языке лучше писать, так сказать, "для себя". Т.к. уже шарился в питоне, на нем пока и сижу на уровне хелоуворлдщика. Так вот, возник такой вопрос, как рациональнее всего пользоваться классами? Хоть убейся не могу я в них въехать, в них и в магические методы. Написал простенькую игрушку, текстовую стратегию. Суть в чем - есть деревня, каждый ход (ход это день) происходит случайное событие - увеличивается количество жителей, умирает человек, ничего не происходит, случайный прохожий (его можно принять к себе или прогнать, если принять, то он может совершить диверсию и убить n человек до того, как будет убит) и нападение. В нападении реализовал простенькую боевку, 2 стойки со стороны игрока (оборона, атака) и 3 со стороны компьютера (оборона, атака, бездействие). Есть еще несколько ресурсов, такие как золото, за которые покупать войска и крестьян, еда, которую потребляет народ и войско. Ну, и как уже понятно, каждый ход игрок продумывает что ему сделать в поселении - нанять солдат, крестьян или пропустить ход. Сижу сейчас, пытаюсь оптимизировать код, а чет не врубаюсь в принцип. Примерно так
433 1164035
>>64032
В твоем примере я бы ожидал увидеть класс деревня, в котором есть список объектов (вероятно, тоже классов) - жителей и методы - события. Это модель.

Реализация модели заключается в создании объекта класса и обращению к его методам и пользовательскому вводу.

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

ХЗ, понятно ли я объяснил...
434 1164044
>>64032
Класс хорошо создавать когда какой-то набор данных у тебя кочует всей пачкой из функции в функцию.

Магические методы ни для чего более не нужны, кроме как для неявного вызова в естественных для питона конструкциях. Например определяя --enter--, --exit-- ты сможешь объект использовать в конструкции with. Определяя --add-- сможешь делать сложение obj + obj. Собственно потому они и называются магические. Остальное пишешь явно с именами которые тебе нужны.
435 1164049
>>64032
Прогай и понимание придёт. На это может потребоваться 1 год.
436 1164053
>>64044

>Определяя --add-- сможешь делать сложение obj + obj



Объясни пожалуйста. Я хочу сравнить два объекта, но не их адреса а именно что логически объект одно и то же, что мне для этого надо сделать? Так же если я хочу чтобы образцы класса который я написал можно было сравнить таким макаром. Как мне это нужно написать?
438 1164059
>>64058
большое спасибо
kit2.jpg45 Кб, 538x348
439 1164082

>unittest


>модуль из стандартной библиотеки


>assertEqual вместо assert_equal


Пиздец. Да, я знаю что интерфейс унаследован от Жавы, но блять, нахуя было наследовать камелКейс, когда в Пиздоне другой стандарт именования методов?
Как, блять, с этим жить?
py..png570 Кб, 1920x1040
440 1164086
Что делать, анон?
inb4: менял кодинг на UTF-8 в котором раньше и работал - не помогло
7f6cbe259aad67aa1520a9c531cd4be1.jpg270 Кб, 1024x768
441 1164091
>>64086

> 2k18


> Ш1ИДОШ5


> шрифтопроблемы

442 1164092
>>64086
попаболь
443 1164096
>>64091
Ну так портируй весь Adobe на линукс, мань. С радостью перекачусь на какой-нибудь Арч или Дэб
444 1164110
>>64091
Windows хорошая ОС. Там есть асинхронное файловое IO вместо невнятного обрезка которым никто не пользуется. Там нет этого глупого безальтернативного fork, который копирует весь процесс, потом на его месте раскочегаривает новый в большинстве случаев, удаляя всё что было от предыдущего.
445 1164118
Хочу начать учить питон в 2К18 году, какие подводные камни?
446 1164120
>>64118

>Документация на английском


>нужна лицензионная IDE для работы с джанго


>дохуилион библиотек


>из них 20-30% либо с багами, либо с недописанной документацией


>пикрил >>64086


>дохуя документации на 2.7, а вот на тройку ещё только на английском


>отвесты с стэковерфлоу придётся адаптировать с 2.7 на 3, если только их не ответили тебе


Как-то так...
447 1164124
>>64118
Ах да. Ещё ты научишься пользоваться консолькой винды, а так-же можешь найти серию познавательных книг по питону и сетевой безопасности, 2016-2018 годов in english, of course
448 1164132
>>64120

>на английском


Не проблема.

>на 2.7, а вот на тройку ещё только на английском


Через 2 года заканчивается поддержка, 2. Попахивает пиздежём. Ну разве что главный аргумент в том, что англюсик.

>нужна лицензионная IDE для работы с джанго


Куплю версию с китайским сервером лицензирования, если ты про пайчарм.
449 1164133
>>64110

> Там есть асинхронное файловое IO вместо невнятного обрезка которым никто не пользуется


Проиграл на всю квартиру. Что ещё спизданёшь?
450 1164143
>>64132
Анон, не у всех с инглишем хорошо. Я очень часто сталкивался с моментами, когда мои коллеги по проекту или тиммейты не могли в английский. Всё-же, делаю поправку и на это.
Лол, когда ты в последний раз писал что-то незнакомое на незнакомой библиотеке? Я конечно только джун, но даже разговорный инглиш меня не спасал в некоторых случаях. Теперь веду vocabulary заточенный конкретно под меня. Крч, иногда это полный пиздейшен, хоть в петлю лезь

>Куплю версию с китайским сервером лицензирования, если ты про пайчарм.


Да вот блядский пайчарм маслины баги ловит. Там выше пикрил про это и я лишь надеюсь что поможет переустановка. Словами не передать, каким маленьким было моё очечо когда я прикинул что кодинг может из-за автосейва похерить весь проект, над которым я откровенно ебался в мозг последние недели две нейронка-пилот для KSP. Благо Atom показал что всё норм.
451 1164148
Как функции subprocess выполняют команды, которые им передают? Они вызывают команндную строку (cmd на шинде) и дают их туда или как?
452 1164151
>>64133
Ты для начала погугли, а потом проигрывай. Самое нормальное оно как раз в винде.
453 1164154
>>64148
Командная строка, cmd, bash, shell, whatever — сами являются процессами-интерпретаторами, как и питон. Subprocess дёргает апи системы чтобы спавнить процессы. А уж что запускать решаешь ты, можешь просто прогу стартнуть, можешь cmd.
454 1164155
>>64143
Это твоя хуйня с кодировкой там? Скинь файл, можешь порезать его, если не секьюрно, попробую пошаманить.
455 1164158
>>64086
А как ты негра сделал в ide ?
456 1164159
>>64155
А что толку? Это во всём пайчарме. Причем, с момента когда я его в последний раз закрыл, ничего не менял в IDE. То есть это именно тот случай когда оно само даже на вводе нихуя не отображается нормально.
457 1164160
>>64143

>не у всех с инглишем хорошо


Для них существует 1С.

>>64132

>Попахивает пиздежём


Так и есть, за всё время работы ещё ни разу не встречал проблемы кроме некроёбов на < python3, разумеется. Всё, что нужно, уже есть на 3.

>>64120

> недописанной документацией


Исходники ты захочешь ещё, я гарантирую это
458 1164163
>>64120
Ну и в добавок

>нужна лицензионная IDE для работы с джанго


Если ты действительно зарабатываешь разработкой, то 9$ в месяц - не деньги.
459 1164179
>>64082

>нахуя было наследовать камелКейс, когда в Пиздоне другой стандарт именования методов?


камелКейс - лучший метод наименования. Прув ми вронг.
460 1164184
>>64179
Кекнул с верблюдоеба.
461 1164185
>>64179

>камелКейс - лучший метод наименования. Прув ми вронг.


що то говно, шо это говно
462 1164186
>>64184
Орнул_с_подчеркнутого_дауна
Ol1FcSN1lkhDVhsQ0g52jbq4fuMz0l3loWb2u7Len5o.jpg50 Кб, 423x734
463 1164187
>>64179
>>64184
Ой, блять, не начинайте.
464 1164206
>>64185
но андескор всё таки говнянее
kit1.jpg54 Кб, 538x372
465 1164216
>>64179
Да похуй блять, вебрлюд или андерскоры, главное чтобы их не миксовали, хотя бы в стандартной, сука, библиотеке.
466 1164217
>>64187
clojure-style
467 1164296
Питонач-помогач, знаешь ли ты какие-нибудь статьи по тестированию на джанге? В частности, интересует такая схема: беру тестовую базу, по ней прогоняю тесты. Нужна информация по структурированию тестов отдельного приложения. Т.е. беру я, например, из этой базы несколько моделей и прогоняю их по всем тестам. Как лучше это организовать?
Был час в гугле, там дают только базовую хуйню, про структуру маловато инфы
468 1164309
>>64217
два-чаю-этому
469 1164327
>>64217
При чём тут кложур? Это же в самых бородатых лиспах ещё придумали.
470 1164334
А зачем питон нужен?
471 1164337
Попалось тут:
if i (остаток от деления) 0O11 == 0:

Что за 0O11?
473 1164353
>>64343
шёл 2к18 год, а Питон всё так жке не умеет складывать 0,1 в единицу.
474 1164354
>>64353
Может ты нам назовёшь место, где от этого страдает процесс разработки?
475 1164358
>>64354
Вовсе не мешает, надо все в интеджерах считать, это любого языка касается, не 1.48 рубля, а 148 копеек, не 1.4 см а 14000000000000000 микрон, и так далее.
bateman.jpg30 Кб, 584x413
476 1164359
>>64353
Высрал хуйню в тред и хорошо так стало, аж по штанине потекло, да?
477 1164361
d = {}
d[True] = 2
d[1] = 3
print(d[True])
478 1164366
>>64359
>>64354
Как же пичот, больная тема видимо у питонистов.
479 1164368
>>64366
"Пичот" только у залётных типа тебя, все остальные уже давно привыкли к даунам.

Алсо, питонисты, только я один никогда не сталкивался с проблемами из-за этого?
480 1164369
я не понял, сложение приоритетнее разности что ли? 0_о
481 1164371
>>64369

>>> 2 - 3 + 1


0
482 1164372
>>64368
Ещё один подорванный.
image.png13 Кб, 439x183
483 1164375
>>64372
Тогда что это?
484 1164376
бля >>64375 --> >>64371
photo.jpg52 Кб, 900x900
485 1164377
>>64366

> у питонистов.


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


> абсолютно все ЯП имеют проблемы с точностью флоатов


> у питонистов


От тебя воняет уже.
486 1164379
>>64375
Хуйня какая-то, видимо
487 1164381
>>64377
У ассемблера нет проблем с базовой арифметикой.
скачанные файлы.jpg8 Кб, 300x168
488 1164382
>>64381
Ага, ведь ассемблер складывает числа не процессором как убогие языки, а МАГИЕЙ.
489 1164387
>>64382
хелловорд 64 битный статически линкованый на асме весит 352 байта, сколько байт весит питоно или даже C-хеловорд?
490 1164389
>>64387

>питоно


22 байта
491 1164390
>>64389
Скомпилированный - 118 байт.
492 1164397
>>64387
Обоссал буквального байтоеба.
493 1164429
>>64375
Записки идиота какого-то, очевидно. Либо ты не прочитал сопровождающее описание, где он приводит оправдания, почему не смог написать по два слова на строку. Сложение ассоциативно, а вычитаение это всего лишь сложение с отрицательным числом, так что между ними в принципе и разницы-то нет, переставляй как хочешь.
494 1164454
>>64151
Специально для тебя нашёл пасту, сохранённую в 2009 году из дискуссии в /c/ нульчана.

> то, что все это будет тратить системные ресурсы, время и трафик.


Видишь ли, ввиду того, что архитектура Винсока слоистая, любая операция в принципе проходит по каждому сервис-провайдеру (LSP).
Естественно, в таких условиях создание сокета (а при ассепте как раз создаетс еще один сокет) это весьма долгая операция. Для этого МС придумала все эти ваши костыли с кондишнал ассепт и *Ex() функции.
В БСДе же принять и сбросить коннект будет весьма и весьма быстро (как кстати и создать поток. На винде потоки создавать тоже относительно долго).

> IOCompletionPort.


Говно этот иосп. Потому что он полностью оправдывает свое название - ИО комплешн порт. Если бы ты удосужился почитать о всех фишках kevent, ты бы понял, что эта штука гораздо функциональнее и быстрее чем твой IOCP, который, кстати, еще и с нихеровым оверхедом.

> Ты не против в том же треде показать аналог виндового xperf?


Ты не понял, что я имею ввиду. Я не собираюсь меряться с тобой всякими апишками. Я просто сказал, что все ОС какбы разные (sic!) и апи у них тоже какбы разные.
Другое дело, действительно ли это полезные апи, или это просто костыли, чтобы заставить систему работать сносно. Это о примере выше.
495 1164471
>>64086
у меня такое было когда я установил LibreOffice
18-neuroplasticity.jpg36 Кб, 640x300
496 1164472
>>64082
assert
497 1164479
>>62688
pyenv or virtualenv
498 1164509
>>64454

>kqueue


>I've used them in the past to detect when when actions happen on a file (or within a hot folder). I don't believe they can be used for "reading" and "writing" files, though.



>epoll


>epoll only makes sense for file descriptors which would normally exhibit blocking behavior on read/write, like pipes and sockets.



А вот IOCP может. В никсах только обрубок в виде http://man7.org/linux/man-pages/man7/aio.7.html который нигде как надо не работает и тупо блокирует. Файл дескриптор который для файлов и "файл дескриптор" который для сокетов в ядрах никсов оказывается очень разные вещи.
sage 499 1164538
>>64377

>оправдывает собственную уёбищность тем, ШО У ДРУГИХ ТОЖЕ ЕСТЬ БАХГИ

500 1164563
Правильно ли я понимаю, что допустим, для парсера вебмок нет смысла прикручивать многопоточность? Так как в 1 потоке будет качаться на максимальной скорости, а например с 5 потоками скорость будет резаться

При условии что сервер отдает с не меньшей скоростью, чем скорость моего канала
501 1164565
>>64509
Ты совсем у мамы дурачок, да? Для файлов есть inotify.
502 1164578
>>64563
Смысл есть, но из-за GIL тебе придется ебаться с multiprocessing
503 1164582
>>64578
Но в туториалах пишут что threading нормально работает с сетевыми интерфейсами, GIL не мешает
504 1164583
>>64582
Ну тогда тебе остается только грамотно всё реализовать, чтобы не упереться в ограничения...
505 1164593
>>64565
Напиши асинхронный http сервер сохраняющий файлы через PUT, удаляющий через DELETE и выдающий содержимое через GET. Без aiofiles. В качестве бенчмарка 10к очень медленных клиентов со скоростями уровня WAP/dialup. Тогда приходи и ещё поговорим.
506 1164597
>>64563
Браузеры обычно держат небольшой конекшен пул под каждый домен, чтобы не останавливаясь качать в моменты затупа HTTP1. Для HTTP2 больше одного конекшена вообще не нужно, там мультиплексирование. Многопоточность тебе нужна если делаешь на блокирующих вызовах. Можно альтернативно взять aiohttp.
507 1164598
>>64593
Маня не слышала про мои DMA?
Блядь, пиздец ты дискуссию ведёшь, с одной темы прыгаешь на другую, не удалось в одном уесть - сразу про другое. Такое ощущение, что я на хуёвом собеседовании, ещё скажи, что ты мне перезвонишь.
508 1164601
>>64598
Ну это ещё кто из нас с темы на тему прыгает. Факт остаётся фактом: в асинхронном питоне файлового IO нет и не будет. Большей частью именно из-за несовершенства ядер.

Список твои аргументов:

>на kqueue тоже можно сокеты и он может потягаться с виндовым iocp


>есть inotify, можно знать когда кто-то другой трогал файл



Я же тебе конкретно ткнул в http://man7.org/linux/man-pages/man7/aio.7.html , а ты продолжаешь прикидываться ебобо как ни в чём не бывало. Даже наводящую задачку придумал, нихуя, эффекта ноль. DMA блядь, пиздец, что несёт, вообще охуеть. То что ты немного почитал про интерфейсы ядер и DMA это похвально, но ты точно переоцениваешь уровень своих знаний.
509 1164615
ПЕРЕКАТ ПЕРЕКАТ ПЕРЕКАТ ПЕРЕКАТ
ПЕРЕКАТ ПЕРЕКАТ ПЕРЕКАТ ПЕРЕКАТ
ПЕРЕКАТ ПЕРЕКАТ ПЕРЕКАТ ПЕРЕКАТ

>>1164614 (OP)
>>1164614 (OP)
>>1164614 (OP)
изображение.png305 Кб, 931x554
510 1164617
>>64158
win+R
pip install africa

import africa as afr
x = afr.people.male.crying_negro_man
print jpg(x)
13180259788126.jpg33 Кб, 251x249
511 1164678
>>64593

> Без aiofiles


loop.run_in_executor
512 1168329
Как взять через запрос API получить файл в JSON-нотации и сохранить в CSV?
513 1183646
Киньте годную шпрагалку по Питону в виде картинки для начинающих!
Тред утонул или удален.
Это копия, сохраненная 17 мая 2018 года.

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

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