Программирование


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
652 60 151

Питон тред №81 /python/ Аноним 27/02/20 Чтв 01:26:43 16163841
unnamed.jpg (34Кб, 900x900)
900x900
python-logo.png (9Кб, 290x82)
290x82
Предыдущий >>1604249 (OP)

Литература:
Автоматизация рутинных задач ч.2 - https://anonymousfiles.io/3CBCoy1o/ <-- тут только одна книжка. Кто может, залейте её на ЯД к остальным.
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

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

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

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

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

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

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

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

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

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

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

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

Шаблон шапки: https://dumpz.org/bqyrfCbEPA9t
Аноним 27/02/20 Чтв 01:59:39 16163922
Двач, помоги, я уже реально заебался и не понимаю что делать, есть 2 питон файла, в одном функция, пытаюсь импортировать, пишет хуй, добавил __init__.py все равно хуй, пайчарм импорт красным подсвечивает, причем даже примеры которые работают, которые я брал из интернета, не понимаю что делать
Аноним 27/02/20 Чтв 02:00:44 16163933
>>1616392
Ты бы пример импорта своего дал что ли
Аноним 27/02/20 Чтв 06:52:58 16164224
>>1616392
ты в инит заимпортируй их. а потом вызывай как из пакета.
Хотя да кинул бы хоть пример
Аноним 27/02/20 Чтв 08:21:20 16164545
Dive into Python 3 не сильно устарела? В 2009 году была издана, Python 3 тогда только релизнулся. С тех пор принципиальных изменений не было?
Аноним 27/02/20 Чтв 09:25:06 16165086
Почему дескриптор надо определять именно внутри класса? Почему не выходит определить его внутри __init__?
Аноним 27/02/20 Чтв 09:29:30 16165157
>>1616454
Принципиальных вроде как нет, но, например, завезли f-string, и после этого пользоваться всякими .format не хочется. Словари стали упорядоченными более или менее, OrderDict уже как бы и не особо нужен. Датаклассы какие-то прикрутили, альтернатива namedTuple, как я понял(а я не понял). И всякие такие мелочи. Ну вот читаешь ты свою книгу, а потом открываешь какой-нибудь код и видишь непонятные колдунства, которых в книге не было, оно тебе надо?
Аноним 27/02/20 Чтв 12:29:31 16167878
2020-02-27-1219[...].png (15Кб, 422x171)
422x171
.
Аноним 27/02/20 Чтв 12:43:26 16168289
>>1616787
--max-line-length=n set maximum allowed line length (default: 79)
Аноним 27/02/20 Чтв 12:45:38 161683410
>>1616828
Да меня скорее раздражает тот факт, что красиво уложиться в 80 колоночек не получается, особенно если используешь аннотации для типов.
Аноним 27/02/20 Чтв 12:56:49 161684711
>>1616834
А зачем укладываться в 79 символов? Это было актульано лет 30 назад. Сейчас норма 120 символов.
Аноним 27/02/20 Чтв 13:11:12 161687112
>>1616847
ну кстати в этом есть смысл. с всеми аннотациями и кучей переменных крайне сложно стало влезать
Аноним 27/02/20 Чтв 13:26:25 161689813
>>1616847
Где про это почитать?
Аноним 27/02/20 Чтв 13:30:59 161690414
Аноним 27/02/20 Чтв 13:57:22 161695715
В чём принципиальная разница между парсингом regex'ами и инструментами, вроде Beautiful Soup или Xlml? Регексы считаются более медленными?
Аноним 27/02/20 Чтв 14:00:27 161696416
image.png (6Кб, 331x102)
331x102
Аноним 27/02/20 Чтв 14:22:27 161698817
>>1616964
>Created: 05-Jul-2001
Сформулируй свой вопрос и найди более одного источника, желательно датированного не каменным веком.
Аноним 27/02/20 Чтв 14:30:55 161699618
>>1616988
Какой источник лучше пепа может быть? Ответ на стак оверфлоу? Пост на форуме питона нижних васюков? Скриншот из дискорда с твоим другом?
Аноним 27/02/20 Чтв 14:38:17 161701719
>>1616957
Регексы не учитывают человеческую тупость
Аноним 27/02/20 Чтв 14:41:49 161702120
>>1616996
Если ты хочешь строго следовать рекомендациям по написанию кода 2001 года, то никто не в праве тебя останавливать.
Только не тащи нам сюда потом свои односимвольные переменные, а то как же, больше 80 же НЕЛЬЗЯ!
Аноним 27/02/20 Чтв 14:47:25 161703421
>>1617021
Ты тему не меняй, я хочу узнать, где ты прочитал про 120.
Аноним 27/02/20 Чтв 15:07:54 161706122
>>1617034
intellij по умолчанию 120 символов, например.
https://youtu.be/wf-BqAjZb8M?t=260
Вот тут разработчик ядра Python говорит что считает 90 оптималным значением.

Какой вывод можем сделать? Длина строки решается один раз в начале проекта и вся команда этому следует. Брать больше 120 не нужно, так как в гите как раз 120 блина строки и будут переносы.
Аноним 27/02/20 Чтв 15:17:26 161708523
>>1617061
>intellij по умолчанию 120 символов, например.
Так, в иде на яве для программирования на яве 120 умолчание, при чём тут, спрашивается, питон?

>Вот тут разработчик ядра Python говорит что считает 90 оптималным значением.
Во-первых, даже близко не 120. Во-вторых, говорит, а не пишет где-то в документации. Видео на ютубе, даже с конференции, всего немногим лучше ответа на стаковерфлоу.

>так как в гите как раз 120 блина строки
На гитхабе ты хотел сказать. Подстраивать стиль написания кода под конкретный сайт, это как в 2000 подстраивать стандарт mp3 музыки под воспроизведение на myspace.


Так что? Ты где-то прочитал про 120, или ты так агрессивно отстаиваешь значения по умолчанию в intellij?
Аноним 27/02/20 Чтв 15:49:41 161714324
>>1616957
Есть реальные профиты в bs и прочем. Попользуйся и поймешь.
Аноним 27/02/20 Чтв 16:16:21 161719725
>>1617085
PyCharm основан на intellij, вот причем тут петон.
И да, повторюсь, ты можешь строго следовать устаревшим рекомендациям, главное чтобы код получался элегантным. Если у тебя получится - отлично! Но судя по твоему первому скриншоту - пока не очень выходит.
120 это общепринятое число для других языков. Какую нахуй документацию я тебе должен показать?
Аноним 27/02/20 Чтв 16:26:47 161721026
image.png (194Кб, 1920x1080)
1920x1080
ПИТОНАЧ, как мне сохранить все "match_id" в переменной? Если делаю ретюрн, то выводится только последний матч
Аноним 27/02/20 Чтв 16:28:30 161721527
>>1617197
>Но судя по твоему первому скриншоту - пока не очень выходит.
Это не мой скриншот.
>120 это общепринятое число для других языков.
Это ты тоже по видео на ютубе узнал, или колоночки на каком-то сайте посчитал?
> Какую нахуй документацию я тебе должен показать?
Да хоть какую-нибудь. Пока ты пришёл, бурлескнул про то, что "сейчас норма 120", а когда я тебя спросил, где ты об этой норме узнал, ты показал свою снобскую рожу и отправил меня искать "в интернете". После пары постов рассказов о том, что официальные рекомендации устарели, выяснилось, что "в интеренете" — это надо было длину строки по умолчанию на гитхабе и в одном IDE, на котором пайчарм основан, за золотой стандарт принять. Действительно, как это я сразу не нашёл такую очевидную и доступную рекомендацию "в интернете", и не начал мгновенно по ней действовать. Про видео, которое ты притащил, даже не говорю, там никакими 120 даже и не пахнет.
Аноним 27/02/20 Чтв 16:30:23 161721928
>>1617210
Создай список и в цикле добавляй свои "match_id" в этот список. Возвращай список.
Аноним 27/02/20 Чтв 16:30:47 161722129
>>1617197
> 120 это общепринятое число для других языков.
У меня на работе стандарт 180. Не питон. Не всегда получается уместиться из-за некоторых нюансов оформления кода.
Аноним 27/02/20 Чтв 16:30:55 161722230
>>1617210
Берёшь свой лист, или в чём ты там хочешь их хранить, с айдишниками и делаешь к нему .append(match_id)
Аноним 27/02/20 Чтв 16:33:24 161722931
>>1617222
гениально, че я додумался только, когда спросил:?) Я еще список создал в цикле и думал че каждый раз обнуляется щащащ
Аноним 27/02/20 Чтв 17:04:11 161726832
Как лучше делать?
1.
def foo(x):
if x is None:
return 0
else:
return 1
2.
def foo(x):
if x is None:
r = 0
else:
r = 1
return r
Аноним 27/02/20 Чтв 17:05:59 161727133
>>1617268
def foo(x):
return x is None ? 0 : 1
Аноним 27/02/20 Чтв 17:11:41 161727834
>>1617271
В пайтоне так работает тернарный оператор?
Аноним 27/02/20 Чтв 17:12:49 161728035
Аноним 27/02/20 Чтв 17:13:24 161728136
>>1617278
Действительно, виноват
return 0 if x is None else 1
Аноним 27/02/20 Чтв 17:17:26 161728437
>>1617229
Можешь делать ретерн генератора списков. Цикл на обязательно делать.

>>1617268
Просто return int(x is not None).
Аноним 27/02/20 Чтв 17:20:40 161728638
>>1617210
Свой докабафф пилишь?
Аноним 27/02/20 Чтв 17:35:12 161729539
https://pastebin.com/kLWj5LeW
ЧЯНТД? Почему функция для определения ключа для максимального значения в словаре работает корректно, а для минимального - нет? Как-то контринтуитивно для моей хуёвой интуиции.
Аноним 27/02/20 Чтв 17:36:42 161729640
>>1616422
>>1616393
Забыл прикрепить скрины, понял, что если писать from %файлнейм% import %скриптнейм%, то работает
Аноним 27/02/20 Чтв 17:45:28 161730241
>>1617295
Просто min/max вернут, что надо.
Аноним 27/02/20 Чтв 17:47:49 161730642
>>1616384 (OP)
Где в Джанге есть мини-туториал по обычному менеджменту данных типа CRUD? Столкнулся с тем, что в приложении приходится много создавать, модифицировать и удалять записи. Я в принципе могу это сделать, но в данный момент я нахуярил кучу view в стиле new_product (для создания записи), mod_product (для изменения), del_product (для удаления). Выглядит уебищно и громоздко, если ничего не сказать. Как это сделать изящнее?
Аноним 27/02/20 Чтв 17:54:02 161731243
>>1617302
Ну не совсем. min/max от словаря, по крайней мере, возвращает ключ, не соответствующий максимальному значению в словаре. Похоже, что min(dct) и max(dct) вообще равны min(dct.keys()) и max(dct.keys()).
Аноним 27/02/20 Чтв 18:01:58 161732344
>>1617295
Через функцию указанную в key по сути формируется новый массив из него выбирается минимальный максимальный.
У тебя для каждой функции получается условно [0, 0, 0, 0, 1, 0], для max это работает, для min просто берется первый ноль
Аноним 27/02/20 Чтв 18:03:34 161732445
>>1617312
Не так понял. Тогда:
min(d.items(), key=lambda x: x[1])[0]
Аноним 27/02/20 Чтв 19:15:09 161738046
>>1617323
Понял, о чём ты. Спасибо.

>>1617324
А вот это супер, совсем забыл о d.items(). Спасибо и тебе.
Аноним 27/02/20 Чтв 21:39:07 161748547
У нас есть двоичный numpy-массив размерностью NxM и единичный массив произвольной длины: 1xK, как записать данные из этого единичного вектора в двоичный массив максимально годным способом? Если 2D массив окажется заполненным, а в единичном векторе еще остаются данные (может быть и такое), то операция все равно сличается завершенной. Если данные в 1xK векторе закончатся раньше чем массив заполнится, то оставшиеся пробелы в нем надо заполнить неким DEFAULT значением
Аноним 27/02/20 Чтв 21:44:57 161748948
>>1617485
Для начала: как бы записать эти данные в двумерный массив? Допустим, в этом векторе 1xK данных всегда ровно хватает чтобы заполнить все NxM ячеек
Это ж numpy, поэтому полагаю надо использовать срезы или страйды (которые я в душе не ебу как юзать). Голый последовательный перебор значений в одномерном векторе при помощи цикла for нерационален, т.к. в перспективе таких записей придется делать дохрена
Аноним 27/02/20 Чтв 21:49:53 161749149
>>1617489
>Допустим, в этом векторе 1xK данных всегда ровно хватает чтобы заполнить все NxM ячеек
np.reshape(K, (N, M))
Аноним 27/02/20 Чтв 21:51:13 161749350
>>1617489
>Если 2D массив окажется заполненным, а в единичном векторе еще остаются данные (может быть и такое), то операция все равно сличается завершенной.
>срезы
np.reshape(K[:N*M], (N, M))

А другой вариант мне лень думать.
Аноним 27/02/20 Чтв 21:54:25 161749551
Приветик, хочу написать скрипт, парсящий udp/tcp конфиги для openvpn и сортирующий их по странам/пингу
Собственно данные спарсил, получилось более 3к записей. И тут у меня встал вопрос; а каким способом это все проверять?
Неужели придется отдельно скачивать каждый файл и вытаскивать из него ip сервера для пингования?
Или может кто-то подскажет более элегантный вариант?
https://pastebin.com/nRnr3dfx
Аноним 27/02/20 Чтв 21:55:59 161749752
>>1617489
Ладно, всё равно придумал:
K.extend([ДИФОЛТ]⛧(N⛧M - len(K))
np.reshape(K, (N, M))
Аноним 27/02/20 Чтв 22:05:08 161750053
Анон, помоги разобраться, я невообразимо туплю.

Короче накидал примерную ситуацию:

import threading
from queue import Queue


def myfunc():
while True:
num = queue.get()
print(num)
queue.task_done()

mylist = []
for x in range(10):
for i in range(10):
for i in range (10):
mylist.append(i / 10)
queue = Queue()
for t in range(3):
t = threading.Thread(target=myfunc)
t.setDaemon(True)
t.start()
paths = []
for i in mylist:
queue.put(i)
queue.join()
print(len(threading.enumerate()))

в итоге получается 31 тред, вместо желаемых мной 3 (ну это понятно, эта штука в цикле), но как сделать иначе, чтобы новые треды не плодились и при этом все треды при деле были?
Аноним 27/02/20 Чтв 22:06:33 161750254
Аноним 27/02/20 Чтв 22:13:36 161750755
>>1617497
Да, катит
Не врубил правда, как и зачем вот это работает: >>1617493
После 1го решения можно взять срез из одномерного вектора как k = k[:N*M] и уже проводить операцию np.reshape(k, (N, M))

Аноним 27/02/20 Чтв 22:21:17 161751956
>>1617507
>Не врубил правда, как и зачем вот это работает
>np.reshape(K[:N⛧M], (N, M))
Сразу делает срез и с ним работает. Решейп не инплейс, так что зачем отдельной строкой брать срез заранее?
>После 1го решения
Не очень понял, первое решение >>1617491, если len(K) == N⛧M
Второе >>1617493, если len(K) > N⛧M
Третье >>1617497, если len(K) < N⛧M
Аноним 27/02/20 Чтв 22:36:29 161752857
Аноним 27/02/20 Чтв 22:40:50 161752958
>>1616384 (OP)
Джавист на связи
Понял, что не могу нормально вкатиться в Питон из-за излишне высокого интеллекта. Парню, прогающему на статическим типизированном языке и соблюдающему святые заповеди ООП банально не выйдет адекватно прогать на херне вроде Питона или ЖС. Печаль
Аноним 27/02/20 Чтв 22:42:39 161753459
>>1617495
А как ты еще хочешь данные из файлов вытащить, если не скачивая?
Аноним 27/02/20 Чтв 22:42:55 161753660
image.png (59Кб, 546x546)
546x546
Аноним 27/02/20 Чтв 23:42:43 161757961
>>1617529
Все так. Бывает надо написать что-то по быстрому, и питон это просто типа школьной арифметики 2+2. Мозг даже не успевает хоть чуточку напрячься. Ни для чего серьезного явно не подходит. Мимо плюсист.
Аноним 27/02/20 Чтв 23:43:59 161758062
images (2).jpeg (9Кб, 225x225)
225x225
>>1617529
> Джава
В твоей джаве всё может нахер полететь из-за неправильной строчки в xml, а генерики лишь приятный сахарок над кастингом в Object и обратно.
Аноним 27/02/20 Чтв 23:56:54 161758763
15795423377230.png (554Кб, 576x640)
576x640
>>1617579
>Все так. Бывает надо написать что-то по быстрому, и питон это просто типа школьной арифметики 2+2. Мозг даже не успевает хоть чуточку напрячься. Ни для чего серьезного явно не подходит. Мимо плюсист.
Аноним 28/02/20 Птн 00:03:34 161759364
>>1617587
Ленивый ты. Явисту вон сколько расписал.
Аноним 28/02/20 Птн 00:05:11 161759465
Почему
>>> True > False
>>> True
?
Аноним 28/02/20 Птн 00:10:21 161760066
>>1617594
Правда сильнее лжи
Аноним 28/02/20 Птн 00:12:06 161760267
Аноним 28/02/20 Птн 00:12:59 161760568
>>1617602
бля....
как можно быть настолько тупым как я. спасибо.
Аноним 28/02/20 Птн 01:06:50 161764169
image.png (7Кб, 457x83)
457x83
>>1617534
Блин, и правда. просто я не очень умный Ладно, на деле оказалось, что необязательно прям сохранять файл, чтобы его просмотреть.
Осталось придумать, как этот говнокод ускорить и/или прикрутить многопоточность.
Аноним 28/02/20 Птн 01:11:26 161764770
Аноним 28/02/20 Птн 01:14:36 161764871
>>1617647
За 1к запросов к сайту за 20-30 секунд его нахуй просто пошлют
Аноним 28/02/20 Птн 01:18:21 161764972
>>1617529
При желании на питоне можно писать как на джаве, просто этого делать не нужно.
Если программировать на жабе сложнее, то ты легко должен быть способен писать на языке проще. Плюшки питона типа динамической типизации делают его скорее более гибким. Дело скорее в том, что твой высокий интеллект видимо недостаточно высок, чтобы воспользоваться чем-то новым для тебя. Или привык, что когда пишешь из говна и палок, компилятор найдет все твои косяки и сообщит о них?

Как гуру ооп может пояснишь, почему в твоей жабе предпочитают использовать делегирование вместо наследования? При том что последнее одна из тех самых твоих пресвятых заповедей ооп.
Аноним 28/02/20 Птн 01:19:27 161765073
>>1617648
Ну хз, тогда можно наверно прокси для этого прикрутить?
Аноним 28/02/20 Птн 01:45:34 161765574
Прочитал пост "джависта" выше и что-то вспомнил, недавно смотрел запись с какой-то конференции по пайтону, там выступал товарищ то ли из гугла, то ли из фейсбука, то ли из инстаграма, то ли откуда - не суть, но суть в том, что по его рассказам как минимум в инстаграме уже усиленно перепиливают кодовую базу на питоне под статическую типизацию. Тащемта, как это обычно бывает, от больших компаний мода быстро расходится по индустрии, так не станет ли пайтон статически типизируемым через пару годков?
Аноним 28/02/20 Птн 01:48:04 161765775
Аноним 28/02/20 Птн 02:10:21 161766676
>>1617647
Ооо, спасибо. Очень помогло.
>>1617650
>>1617648
Да нет, 1к урлов вполне работает без прокси, просто со слипом на 0.1-0.2 мс между каждым запросом
правда в итоге получается не 30 сек канеш
Аноним 28/02/20 Птн 02:47:00 161767477
image.png (110Кб, 1789x407)
1789x407
Помогите, что я делаю не так? py-translate может запрашивать какой-то особенный реквестс?
Аноним 28/02/20 Птн 02:48:30 161767578
>>1617674
Блядь, я дебич, транслэйт не поставил зависимости, а я забыл активировать венв и понял это только на скрине.
Аноним 28/02/20 Птн 02:56:07 161767879
>>1617675
Сука, это говно ещё и не переводит нормально, я же сам смотрел код, он точно обращается к гугл транслэйту, почему у него тогда результат не такой, как в обычной веб форме
Аноним 28/02/20 Птн 02:59:07 161768080
.JPG (69Кб, 1112x830)
1112x830
Почему работает этот декоратор, если оригинальная функция принимает только позиционные аргументы, а wrapper и позиционные, и ки-ворд?
Аноним 28/02/20 Птн 03:03:27 161768281
.JPG (49Кб, 1457x431)
1457x431
>>1617680
Чтобы было понятно, что делает.
Аноним 28/02/20 Птн 03:07:06 161768382
>>1617680
>>1617682
Хотя, это, наверное, потому что в результате нету kwargs'ов.
Но тогда вообще можно ли это назвать декоратором?
Аноним 28/02/20 Птн 03:09:09 161768483
>>1617678
Пиздец, поставил другую библиотеку, а она переводит по третьему, не так как та и не так как в веб форме, что за пиздец....
Аноним 28/02/20 Птн 08:44:04 161775084
>>1617684
Дениска, ты главное не переживай так. Не думаю, что тебе критично иметь перевод точно такой же, как в вебе, так что юзай то, что удобнее и клади болт
Аноним 28/02/20 Птн 08:49:19 161775285
>>1617750
Ну знаешь, возможно это именно с моим пробным десятком текстов, но в веб форме перевод солидно лучше, прямо очень заметно. Я собираюсь ещё попробовать две вещи: разбивать текста на отдельные предложения и апи яндекс переводчика.
Аноним 28/02/20 Птн 09:00:07 161775586
>>1617649
>Или привык, что когда пишешь из говна и палок, компилятор найдет все твои косяки и сообщит о них?
Всегда так делаю, не пользоваться этой функцией языка, всё равно, что принципиально не пользоваться, например, декораторами.
Аноним 28/02/20 Птн 09:20:14 161776087
>>1617680
Всё в порядке, а почему это не должно работать?

(звёзды убираю)
@task
def foo(args):
____pring(args)

эквивалентно
foo = task(foo)
task возвращает новую функцию wrapper, поэтому дальше, когда ты пишешь
foo(a, b=100)
это уже будет реально вызов
wrapper(a, b=100)
где-то в недрах которого вызывается исходная foo

Главное, что нужно запомнить про декораторы, это что
@deco
def foo(a, k):
____pass

абсолютный эквивалент (синтаксический сахар)
foo = deco(foo)

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



Аноним 28/02/20 Птн 10:11:08 161778788
>>1617649
Кто тебе сказал что наследование - святая святых? Инкапсуляция это святая святых
Когда ты хуяришь наследование только чтоб обьеденить части кода (при том что часть методов суперкласса в принципе не юзаются), ты даун. Без вариантов
Аноним 28/02/20 Птн 10:22:57 161779189
>>1617655
? Что значит "под статическую типизацию"?
Typing это давняя фича Пистона, кто не юзает ее в крупных проектах еблан априори
Аноним 28/02/20 Птн 10:24:50 161779390
>>1616384 (OP)
Шалом, правоверные. Вкатился в питон, почитываю Лутца, прошёл курс на курсере, но не могу понять, что читать/смотреть/проходить чтобы вкатиться в датасайенс. Нашёл на курсере один курс от яндекса/мфти, так там какая-то хуйня вместо подачи материала и задания на первой неделе уровня устанавливаем питон, отсылаем скриншоты сокурсникам.
Куда воевать то ёпт.
Аноним 28/02/20 Птн 10:48:45 161780891
>>1617306
Бамп вопросу
Наплодил на каждую операцию с данными отдельный view, отдельную форму и отдельный template. Хелп, как рефакторнуть этот кал
Аноним 28/02/20 Птн 11:14:35 161782692
>>1617306
> Как это сделать изящнее?
Сделать class based view под разные типы запросов
Аноним 28/02/20 Птн 11:58:35 161785193
>>1617791
Typing уродство обычно, в том виде, как в питоне уж точно.

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

Ты как бы получаешь уродство C++, при отсутствии каких-либо плюсов языков вроде C++/Java.

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

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

Хотелось бы гибкого подхода, чтобы в коде функции можно было бы декларировать переменные каким-то типом, а можно любым типом, и чтобы в рантайме экспешен возниках, если ты пытаешься тип переписать. По идее это несложно было бы поддержать, но нет.
Аноним 28/02/20 Птн 12:18:40 161786394
image.png (94Кб, 638x359)
638x359
>>1617851
>Хотелось бы гибкого подхода, чтобы в коде функции можно было бы декларировать переменные каким-то типом, а можно любым типом, и чтобы в рантайме экспешен возниках, если ты пытаешься тип переписать. По идее это несложно было бы поддержать, но нет.
Пчел...
Аноним 28/02/20 Птн 12:19:27 161786595
У меня есть 10 чисел, нужно найти самое большое. Применяю функцию max(), окей. А если нужно найти два самых больших числа, что делать?
Аноним 28/02/20 Птн 12:22:25 161787196
>>1617865
a, b = sorted(arr)[:-2] или просто циклом проходишь и ищешь
Аноним 28/02/20 Птн 12:22:51 161787297
>>1617306
В джанге есть generic views, если у тебя примитивный круд, то должно сгодиться. Можно поискать какие-нибудь приложения-генераторы вьюх для джанги. Если тебе сойдет rest, берешь Django Rest Framework, там есть свои generic views, с ними вьюха в три строки. Где-то видел сайт django builder или как-то так, ты вводишь модель, а он тебе к ней все остальное генерирует. Можешь свой обобщенный класс вью написать, отнаследовав его от стандартного.
Аноним 28/02/20 Птн 13:42:00 161793698
Аноним 28/02/20 Птн 15:51:42 161805699
65.png (0Кб, 20x25)
20x25
38.png (0Кб, 20x25)
20x25
37.png (0Кб, 20x25)
20x25
710.png (0Кб, 20x25)
20x25
Аноны, есть пикрил изображения с цифрами, как лучше сделать классификацию цифр?
Конечно же без нейронок и прочего говна, ведь цифры довольно схожи между собой.
Аноним 28/02/20 Птн 15:56:30 1618064100
Слыхал, что multithread программирование это антипаттерн. Насколько это близко к правде, особенно касательно Питона?
Аноним 28/02/20 Птн 16:08:22 1618079101
Аноним 28/02/20 Птн 16:15:24 1618082102
>>1618056
Провести горизонтальные и вертикальные линии, посчитать количество пересечений? Помню была такая лаба в универе по теме распознавания образов
Аноним 28/02/20 Птн 17:15:13 1618128103
>>1618064
Это в первую очередь из-за опасности непредсказуемого поведения, когда потоки имеют общие данные, но в принципе можно, если ты его избегаешь, погугли Thread-safety и как оно достигается. В питоне есть GIL, поэтому одновременная работа нескольких потоков невозможна и часть проблем отпадает (как и преимуществ). В питоне его можно использовать для любых блокирующих операции, если необходимо, что бы программа в это время делала и другие действия.
Аноним 28/02/20 Птн 17:50:04 1618160104
>>1618064
Смотря для каких целей. Многопоточные программы обычно необходимость, так ты можешь обрабатывать блокирующие операции и полноценно использовать ресурсы.

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

В питоне, обычном, многопоточность ущербная и применение сильно ограничено из-за этого.
Аноним 28/02/20 Птн 18:31:52 1618197105
Уебки, люблю вас :)
Я опять вышел на связь, помогите с проблемкой, плз.

Есть такой скрипт: https://pastebin.com/0qMggbi8

Нужно, чтобы созданные треды (3 штуки) в цикле, который идет ниже, переключались на другую функцию. Они начинают с таргетом myfunc, как переключить их на myfunc2?
Аноним 28/02/20 Птн 18:57:26 1618211106
.JPG (28Кб, 1001x524)
1001x524
Такое, конечно, вряд ли где-то используется, но можно ли написать декоратор лябмда-функцией, и чтобы он и args и kwargs перехватывал? По образцу пикрелейтед.
Аноним 28/02/20 Птн 19:10:17 1618219107
.JPG (27Кб, 789x442)
789x442
>>1618211
Методом тыка оказалось, что можно.
Чёрт его знает, что тут происходит.
Аноним 28/02/20 Птн 19:26:14 1618228108
>>1618197
Ты формулируешь вопрос настолько же криво, насколько пишешь код. Хуй поймёшь, чего ты хочешь.

Попробуй запустить два цикла, в одном ты три треда myfunc запускаешь, в другом два треда myfunc2. Тогда обе функции будут кушать из одного треда.
Аноним 28/02/20 Птн 19:26:36 1618229109
>>1618228
>кушать из одного треда.
из одной очереди
Аноним 28/02/20 Птн 20:12:18 1618274110
>>1618228

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

- объявил N функций
- создал 3 треда
- первый проход цикла
    - набил очередь, треды работают с очередью
    - изменил таргет для созданных тредов
    - треды обрабатывают очередь через новый таргет
- второй проход цикла
    - набил очередь, треды работают с очередью
    - изменил таргет для созданных тредов
    - треды обрабатывают очередь через новый таргет
Аноним 28/02/20 Птн 20:24:59 1618292111
Не могу разобраться с индексом, нужно вывести сколько раз в списке встречается число. Помогите пожалуйста. В чем ошибка?

a = [int(i) for i in input().split()]
n = int(input())
for i in a:
if n == i:
print(a.index(i), end = ' ')

Вводим:
5 8 2 7 8 8 2 4
8
Получается:
111, а нужна 1 4 5
Аноним 28/02/20 Птн 20:34:26 1618299112
>>1618292
>print(a.index(i), end = ' ')
Description

Python list method index() returns the lowest index in list that obj appears.
Ты хоть читай, чем пользуешься.
Аноним 28/02/20 Птн 20:35:11 1618301113
Аноним 28/02/20 Птн 20:36:19 1618302114
>>1618292
a = [...]
x = 8
ans = [i for i, j in enumerate(a) if j == x]
Аноним 28/02/20 Птн 20:39:29 1618306115
>>1618292

Все правильно, ты берешь индекс 8, он тебе возвращает ближайший. То что эта 8 из конца листа - нихуя не значит.
Аноним 28/02/20 Птн 20:41:31 1618311116
>>1618211
> можно ли написать декоратор лябмда-функцией
Зачем?
Аноним 28/02/20 Птн 20:42:27 1618313117
>>1618311
Такое задание. Видимо, на чистую теорию.
Аноним 28/02/20 Птн 21:25:30 1618362118
>>1618299
>>1618301
>>1618302
>>1618306
Спасибо. Я нихера так и не понял правда, просто по курсу enumerate еще не было. Поэтому старался делать в рамках изученного.
Аноним 28/02/20 Птн 21:29:47 1618367119
>>1618362
>Я нихера так и не понял правда
.index() не та функция, которую ты должен использовать. Она делает совсем не то, что ты думаешь она делает. Если хочешь совсем тупо, то делай тупыми методами:
a = [int(i) for i in input().split()]
n = int(input())
for i in range(len(a)):
if n == a:
print(a, end = ' ')
Аноним 28/02/20 Птн 21:45:58 1618378120
>>1618367
Хорошо, буду более тщательно разбираться.
Аноним 28/02/20 Птн 21:54:38 1618382121
>>1618378
Там индексы потерялись
>>1618367
>if n == a[ i ]:
>print(a[ i ], end = ' ')
Аноним 28/02/20 Птн 22:08:35 1618392122
Аноним 28/02/20 Птн 22:33:55 1618413123
>>1618219
А теперь попробуй в функцию засунуть принт и посмотри как она выполняется
Аноним 28/02/20 Птн 22:42:08 1618420124
>>1618082
Спасибо, попробовал - отлично работает, только на 3 и 8 иногда проебывается, буду лечить.
Аноним 28/02/20 Птн 22:45:00 1618426125
Оригинал: She's just an apprentice of mine. I thought we'd share a drink as business partners for old times' sake.
веб форма гугл переводчика: Она просто моя ученица. Я думал, что мы поделимся напитком в качестве деловых партнеров ради старых времен.
py-googletrans: Она просто ученица моей. Я думал, что мы бы поделиться напитком в качестве деловых партнеров в старые добрые времена.

Ну короче я понял, что перевести нормально даже мелкие куски простого текста полностью свободно, без всяких ключей к апи и прочего, просто невозможно. Можете не пытаться, если вам придёт в голову.
Аноним 28/02/20 Птн 23:07:55 1618452126
856974ac7069bd0[...].jpg (37Кб, 500x281)
500x281
Зацените план: делаю игру на Unity через IronPython.
Аноним 28/02/20 Птн 23:08:07 1618453127
>>1618413
Не понимаю, что ты имеешь в виду. В "foo"? Что ей принтить?
Аноним 28/02/20 Птн 23:12:45 1618459128
>>1618211

>>1618453
Да, твой декоратор не выполняет функцию
Аноним 28/02/20 Птн 23:16:46 1618464129
>>1618459
ЯННП.
Получается, это и не полноценный декоратор вовсе? Или, если учитывать, что это сделано через лямбду, то это нормально?
Аноним 28/02/20 Птн 23:18:17 1618467130
>>1618459
Если что, задание сформулировано так - "написать лямбда-декоратор, сохранив его в переменную".
Аноним 28/02/20 Птн 23:22:05 1618468131
>>1618464
Это декоратор, но ты его не совсем правильно юзаешь в первой лямбде должна быть функция, а не аргументы, что бы ты мог ее вызывать, а так же если добавить еще лямбду, то можешь и аргументы засунуть

lambda_deco = lambda func: lambda args, kwargs: func(args, kwargs)
Или так
lambda_deco = lambda my_arg: lambda func: lambda args, kwargs: [func(args, kwargs), my_arg]

@lambda_deco('test')
def a(args, *kwargs):
____print('Hello')
____return args, kwargs



>>1618467
А, если так, то все норм, декоратор не обязан вызывать функцию
Аноним 28/02/20 Птн 23:22:59 1618471132
>>1618468
А еще макака сожрала звездочки, ну ты понял, где они
Аноним 28/02/20 Птн 23:52:25 1618490133
>>1618420
Попробуй горизонтальную линию в нижней половине, типа под соединением восьмерки или центральной засечки тройки.
Аноним 28/02/20 Птн 23:58:08 1618493134
>>1618468
>>1618471
Сложновато, но принцип понятен. Спасибо.
Аноним 29/02/20 Суб 03:08:11 1618549135
>>1618490
Просто добавил больше примеров, вроде как лучше стало.
Еще буду логику улучшать и улучшать, спасибо, антош.
Аноним 29/02/20 Суб 03:46:24 1618553136
image.png (73Кб, 1229x655)
1229x655
>>1618549
Подкрутил тут, подправил там, теперь все заебис.
Аноним 29/02/20 Суб 12:37:59 1618712137
>>1618292
Метод a.index(i) возвращает индекс первого попавшегося числа i вот оно и выводит тебе постоянно первую 8. Нужно делать проход цикла по индексу.
Аноним 29/02/20 Суб 16:08:29 1618921138
Питоны, как вы развивали в себе способность составлять программу? Т.е. логику - алгоритм, типа того. Я к примеру могу что-то нагуглить, разобраться как оно устроено, даже понимаю что программа делает. Но вот с нуля самому сообразить пока трудно, постоянно делаю какую-то громоздкую хуйню. Это со временем приходит по мере гугления/изучения? А то недавно только начал учить, чувствую себя совсем умственно отсталым.
Аноним 29/02/20 Суб 16:12:06 1618929139
>>1618921
Хочу написать программу, которая будет сама за меня писать программы. Я только деньги со сберкнижки буду снимать.
Аноним 29/02/20 Суб 16:23:12 1618942140
>>1618929
Ну не траллируй, я действительно недавно начал только изучать. Просто к примеру есть какие-то маленькие кусочки кода которые я могу писать по памяти, но что-то сложное уже начинает ломаться, тупить и выдавать пиздец. Вот и хочу узнать, стоит ли тратить время именно на то, чтобы любой код уметь писать по памяти начиная с самого малого, или лучше охватывать разные алгоритмы более обширно, а потом уже возвращаться и подгугливать какие-то конкретные детали?
Типа - ну вот тут вот вычисляется самая маленькое значение из списка, тут вот происходит поиск, но в целом не иметь возможности написать это все самому по памяти, но знать в принципе что программа делает при чтении и понимать общий принцип построения логики. Так возможно продолжать изучение, или все нужно постепенно изучать досконально?
Аноним 29/02/20 Суб 16:26:16 1618948141
>>1618942
Если я правильно понимаю, отдельные модули программы надо делать независимыми, а уже потом объединять их вместе по предварительно намеченной схеме программы
Аноним 29/02/20 Суб 16:39:42 1618976142
Хочу написать небольшой парсер для блога, который будет новые посты пересылать в тг. Вопрос в хранении id последнего поста. Хранить в текством файле или есть еще какие способы? не прикручивая бд
Аноним 29/02/20 Суб 16:44:21 1618987143
Как в питоне вызвать выполнение батника, чтобы он и скрипт выполнялись параллельно?
Аноним 29/02/20 Суб 16:45:03 1618988144
>>1618987
через subprocess или os.spawnv
Аноним 29/02/20 Суб 16:46:43 1618992145
>>1618976
Если у тебя программа будет работать всегда (а она должна это делать по сути), то тебе достаточно одной переменной
Аноним 29/02/20 Суб 17:57:36 1619035146
Хэй погромисты, а свойства классов(гетеры, сетеры и делетеры) наследуются и их в наследнике же можно изменить будет?
Аноним 29/02/20 Суб 18:17:21 1619052147
Для каждого воркера multiprocessing открывает новый интерпретатор. Правильно ли я полнимаю, что если через subprocess запустить несколько питоновских скриптов, то это будет параллельное выполнение?.. (можно даже работу с общим ресурсом памяти запилить - через очереди и сокеты)
Аноним 29/02/20 Суб 18:25:04 1619059148
Снимок экрана 2[...].png (16Кб, 642x86)
642x86
Аноним 29/02/20 Суб 18:26:32 1619062149
image.png (346Кб, 1172x659)
1172x659
Аноним 29/02/20 Суб 18:34:13 1619071150
>>1619052
> Правильно ли я полнимаю, что если через subprocess запустить несколько питоновских скриптов, то это будет параллельное выполнение
Да, правильно, параллельное и независимое. Но только всё-таки это надо делать через Pool и Process модуля multiprocessing.

Кстати модуль поддерживает и shared объекты уже "из коробки".
Аноним 29/02/20 Суб 18:38:44 1619076151
Аноним 29/02/20 Суб 18:53:37 1619098152
Почему PyPy мало кем используется и не заменил собой CPython в качестве стандартного интерпретатора Питона? Он же намного производительнее, включается в себя jit-компиляцию и поддерживает адекватную многопоточность! Че за хня?
Аноним 29/02/20 Суб 19:34:15 1619164153
>>1619076
>Работа идёт
Билда трешки до сих пор нет, двушка не обновляется, но коммитов дохуя, что они там делают?
Аноним 29/02/20 Суб 19:34:48 1619165154
>>1619164
>что они там делают?
Дрочат друг другу.
Аноним 29/02/20 Суб 19:40:40 1619169155
Аноним 29/02/20 Суб 19:44:33 1619172156
>>1619169
А почему само python-овское общества не сделает упор с cpython'a на pypy?
Аноним 29/02/20 Суб 19:45:53 1619175157
Я опять с тупизмом начального уровня пришел. Помогите пожалуйста понять принцип решения.

a = [int(i) for i in input().split()]
for i in range(1, len(a)):
if a[i - 1] * a > 0:
print(a[i - 1], a)
break


1. Почему в range указана 1
2. Почему в условии a[i - 1]
Пробовал в range писать 0, а в условии a[i+1], но это не работает. Не ясно только по какой причине.
Аноним 29/02/20 Суб 19:47:49 1619177158
>>1619172
>python-овское общества
Это кто? Чуваки из PSF пилят cython за донаты, энтузиасты свое за меньшие донаты, обычным прогерам поебать, им за это не платят.
Аноним 29/02/20 Суб 19:51:39 1619183159
Аноним 29/02/20 Суб 19:55:15 1619190160
>>1619175
Потому что это писал аутист
Забудь это решение и используй for elem in a как белый человек там эта единица вообще по приколу стоит
Аноним 29/02/20 Суб 20:00:59 1619200161
>>1619190
Просто сишку из человека не вывезти.
Аноним 29/02/20 Суб 20:02:20 1619203162
Аноним 29/02/20 Суб 20:06:25 1619209163
>>1619203
Они cpython пидорят, зачем им так распылятся, ведь кто-то это уже делает за них.
Аноним 29/02/20 Суб 20:10:18 1619211164
>>1619190
Спасибо. Я почему решил уточнить, данный вариант выделили разработчики ресурса, где эта задача размещена. То есть изначально рекомендуется делать именно так (возможно лишь в рамках изученного). Естественно, я бы до такого не додумался.
Аноним 29/02/20 Суб 20:18:33 1619216165
>>1619098
Уже написали, поддержка версий, расширений и т.п.

Кроме того, просто не всегда pypy будет работать быстрее. PyPy работает хорошо там, где много итераций простых циклов, а где-то он реально проигрывает в производительности. Аналогично и с Cython, где-то он хорош, но и проблемы с ним есть.

Далеко не везде проблемы производительности актуальны. Какая разница, у тебя проц загружен на 5% или на 0.5%?

В общем когда актуально, тогда и надо думать. И такие решения есть, которые позволяют ускорить при необходимости. При этом всегда можно распределить, часть функционала одной машиной исполнять, часть другой, пересылать данные потом упакованные pickle или классическими форматами.
Аноним 29/02/20 Суб 21:29:41 1619281166
Есть очень простой скрипт, выдающий только пару строк текста на выходе. Каким инструментом превратить его в приложение? Просто чтобы два раза кликнуть - и выводилось окно с этими строками.
Аноним 29/02/20 Суб 21:55:24 1619295167
В Джанге за каким-то хреном постоянно повторяется имя приложения во вложенных папках типо: myproject/myapp/templates/myapp - вот нахера надо 2 раза писать myapp? Папка templates же и так внутри этого приложения лежит
Аноним 29/02/20 Суб 22:09:23 1619308168
Недавно в python.
Ловлю исключение except pycurl.error.
Как в в блоке try самостоятельно выбросить pycurl.error?
Аноним 29/02/20 Суб 22:12:57 1619310169
Аноним 29/02/20 Суб 22:13:05 1619311170
Аноним 29/02/20 Суб 22:20:26 1619320171
>>1619295
>myproject/myapp/templates/myapp - вот нахера надо 2 раза писать myapp? Папка templates же и так внутри этого приложения лежит
Што? При чем вложенность папок к темплейтам? И нейминг ты любой можешь сделать для теймплейтов
Аноним 29/02/20 Суб 22:21:18 1619322172
>>1619211
>выделили разработчики ресурса
Что за ресурс?
Аноним 29/02/20 Суб 22:26:37 1619329173
>>1619320
>И нейминг ты любой можешь сделать для теймплейтов
Естественно, но не в этом суть

>При чем вложенность папок к темплейтам
Потому что везде вижу как внутрь тех же темплейтов вставляют еще одну папку, имя которой дублирует имя приложения
Аноним 29/02/20 Суб 22:30:45 1619336174
Аноним 29/02/20 Суб 22:38:49 1619344175
>>1619329
>Потому что везде вижу как внутрь тех же темплейтов вставляют еще одну папку, имя которой дублирует имя приложения
А, ты в этом смысле, так так понятнее же. Смотри, у тебя есть десяток приложений, у каждого свои темплейты, структурируя по различным папкам ты получаешь аккуратные папки с темплейтами для приложений, или не структурируешь и получаешь мешанину.
Аноним 01/03/20 Вск 01:24:49 1619528176
>>1619175
1. Потому что смотрят на письку и его соседа слева. Чтобы у первой письки был сосед слева надо начинать со второго. У второго индекс 1 (у первого 0)
2. это сосед слева.
3. потому что улетает за границу в правой части, надо ещё len(a) - 1 делать.
Аноним 01/03/20 Вск 10:58:16 1619653177
В Django потребуется хранить что-то типа односвязного списка значений. Внутри Topic мы добавляем новые Entry и их порядок обязан сохраняться. Мы можем передвинуть Entry на любую новую позицию и это должно сохраниться, то есть их нельзя сортировать по дате добавления. Как такую фичу реализовать в Джанге? Как с одной Entry грамотно передать ссылку на другую и потом пройтись по ним всем?..
Аноним 01/03/20 Вск 13:29:19 1619778178
flask + vuejs: неправильно же вставлять в jinja шаблоны vue переменные типа {{ data }}?
Типо как правильно vue с flask подружить
Аноним 01/03/20 Вск 13:40:29 1619794179
>>1616384 (OP)
Откуда pip подгружает пакеты, если я говорю ему например pip install numpy? На каком сервере он находит этот билд numpy? Как они туда попадают? Могу ли я вручную скачать откуда-то архив этого билда, не устанавливая его?
Аноним 01/03/20 Вск 13:44:11 1619797180
>>1619778
Выкинуть нахуй шаблонизатор и сделать на фласке только апишку
Аноним 01/03/20 Вск 13:44:50 1619798181
Аноним 01/03/20 Вск 13:46:59 1619805182
>>1619798
А как пакеты попадают туда? Могу написать свой yoba_module_maxx_power_ownage и забросить туда чтоб каждый мог его установить и насладиться моим ахуенным кодом?
Аноним 01/03/20 Вск 13:51:00 1619808183
>>1619805
Пчел, в интернетах все давно расписано, ты можешь загуглить такую тривиальную вещь сам.
Аноним 01/03/20 Вск 13:54:32 1619811184
Аноним 01/03/20 Вск 13:55:51 1619813185
>>1619811
да, потому пупя засрат нерабочей хуитой, которую приходится фильтровать в поисках чего-то годного.
Аноним 01/03/20 Вск 14:01:45 1619817186
>>1619811
Хуле там нет хотя б ограничения на количество звезд?
Аноним 01/03/20 Вск 15:34:55 1619877187
>>1619817
О, кармадрочерство.
А пользователь либы авансом должен поставить звезду? Через пип-то он установить её не может, только вручную.
Аноним 01/03/20 Вск 15:42:48 1619884188
>>1619817
Количество звезд это нихуя не показатель, вон неработающее говно залайкали только из-за красивого графика с тестами
https://github.com/squeaky-pl/japronto
Аноним 01/03/20 Вск 15:49:28 1619892189
>>1619797
Спасибо, я так и представлял, просто уточнил
Аноним 01/03/20 Вск 16:14:41 1619906190
Аноним 01/03/20 Вск 16:28:25 1619920191
>>1619794
>Могу ли я вручную скачать откуда-то архив этого билда, не устанавливая его?
pip download package
Аноним 01/03/20 Вск 16:36:36 1619927192
Изучаю превозмагаю тут ооп и попутно пишу телехрамм бота для.. ну просто пишу и все.
В общем есть небольшой класс, представляющий из себя множество ключевых слов и операций над ним. И есть событие, которое должно работать с содержимым этого множества. Но оно тупо не работает, т.е событие вроде как обращается к классу, но при этом в нем ничего не сохраняется и не выводится. И дебаггер это все почему-то не отлавливает по брейкпоинту, я не могу посмотреть как там и где сохраняются данные. Чяднт?
https://pastebin.com/XKdskWgs
не смотрите на регулярку, это не мем
Аноним 01/03/20 Вск 16:45:34 1619941193
8a4.jpg (30Кб, 316x202)
316x202
Суп питонач. Как вы разбирались в коде, который вы не понимали при изучении? Вот к примеру сейчас разбираюсь с алгоритмом Дейкстры, мне понятна в целом концепция его работы и то, как он работает, и даже то, почему он может не работать. Но вот его сопроводительный код для меня слишком сложный и я не могу написать его самостоятельно, и разбить на меньшие фрагменты чтобы понять его кусками тоже не получается. Что делать?
Кажется если я так и дальше буду пропускать малопонятыне моменты без углубления, я вообще ничего не выучу.
https://dumpz.org/a2PXepQwS3TY
Аноним 01/03/20 Вск 17:00:27 1619952194
Лучше дочь шлюха, чем сын питонист
Аноним 01/03/20 Вск 17:01:14 1619954195
Аноним 01/03/20 Вск 17:05:28 1619959196
>>1619952
лучше дочь шлюха, чем сын который приходит в питон-тред с вялыми попытками кого-то затралеть
Аноним 01/03/20 Вск 17:16:13 1619967197
Аноним 01/03/20 Вск 17:18:50 1619968198
Аноним 01/03/20 Вск 17:32:04 1619977199
image.png (11Кб, 464x182)
464x182
Антоны, как можно перетасовать эти два массива так, чтобы порядок элементов в них был одинаков?
Мне нужно получить рандомный порядок картинок, но текстовые файлы во втором массиве должны совпадать с ними
Аноним 01/03/20 Вск 17:38:06 1619984200
Бля, установил интерпретатор 3.8 в виртуальную среду, начал по новой ставить пакеты для Джанги и во время загрузки psycopg2 вылетела вот эта залупа: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools и нихера не устанавилось, че это за дичь? Visual C++ 14.0 подавно стоит
Аноним 01/03/20 Вск 17:47:03 1619989201
>>1619977
Хотя, по идее, нахуй мне второй массив с .txt, если я просто могу заменить расширение
Аноним 01/03/20 Вск 17:50:15 1619995202
>>1619984
Скорее всего эта проблема из-за того, что psycorp2 ещё не работает с пистоном 3.8
У меня такая же залупа была с numpy, пришлось ставить под 3.7
Аноним 01/03/20 Вск 17:52:08 1620000203
>>1619989
Питонотред настолько хорош, что что-бы получить решение даже не нужно дожидаться чужого ответа
Аноним 01/03/20 Вск 17:53:12 1620002204
>>1619995
>psycorp2 ещё не работает с пистоном 3.8
А знаешь почему я вообще 3.8 в эту среду поставил?)) Потому что функция django.contrib.admin.register не работает в 3.7 - когда я вставляю туда свою модель чтобы зарагестрировать ее Python крашится нах (да, сам интерпретатор), судя по тому что говорят на форумах: https://www.reddit.com/r/django/comments/e5m7zv/accessing_admin_is_crashing_the_server/это именно из-за приколов 3.7
Аноним 01/03/20 Вск 18:02:14 1620009205
>>1620002
Вот теперь познал что значит "ебля с версионированием"
Аноним 01/03/20 Вск 18:03:35 1620012206
>>1620002
Собери версию из гита, там вроде работает
Аноним 01/03/20 Вск 18:05:27 1620018207
>>1620000
Ага, особенно учитывая то, что я не знаю питона.
Вот только чому я не додумался до этого раньше...
Аноним 01/03/20 Вск 18:19:59 1620030208
>>1620018
Кстати, Аноны, а теоретически возможно такое, что те два вызова glob.glob могли дать мне разный порядок файлов и при записи я бы получал расхождение между картинкой и текстовым файлом?
Аноним 01/03/20 Вск 18:43:21 1620052209
78080872547.png (10Кб, 1036x121)
1036x121
3647578025858.png (3Кб, 428x117)
428x117
>>1620002
Ты как регистрируешь?
Я видел:
django.contrib.admin.register
django.contrib.admin.site.register
django.contrib.admin.sites.register
ебаные разные версии Джанги...
Что из этого вообще использовать? В коде вроде юзаю django.contrib.admin.site.register - работает, но когда пытаюсь отдельно импортировать в консоли эту функцию - пишет что модуля site вообще не существует (есть только sites, где register нет). Че это бля такое?
Аноним 01/03/20 Вск 18:53:21 1620063210
Есть ли какой-нибудь способ визуализировать код в виде одной большой таблицы или схемы? Знаю есть типа таких - http://www.pythontutor.com/visualize.html#mode=display
Но хочется чтобы это все было в еще более развернутом виде и не так скомкано
Аноним 01/03/20 Вск 20:21:31 1620171211
Хм, а вот стоит у меня Питон 3.7.0 как его апгрейднуть до 3.7.6 но не до 3.8? pip upgrade же самую последнюю версию поставит
Аноним 01/03/20 Вск 20:24:06 1620175212
Помогите советом, на чём сайт сделать.
Вводные такие:
1) знаю питон, не знаю всякие пхп и джаваскрипты, поэтому питон
2) на фласке сайты уже делал, но в этот раз контейнтом будет наполнять человек, далёкий от программирования, поэтому нужна cms, соответственно, джанго (не ошибаюсь ли в этом пункте?)
3) писать cms с нуля это такое, поэтому прошу совета, какую лучше взять, чтобы можно было по быстрому написать пару шаблонов страниц и потом наполнять это дело текстом и картинками.
Всякие хтмл и ксс знаю.
Аноним 01/03/20 Вск 20:24:12 1620177213
>>1620171
Пип не ставит питон
Если из под винды, то идешь на сайт и качаешь нужный билд
Если линух, то просто указываешь нужную версию пакета
Аноним 01/03/20 Вск 20:39:11 1620204214
Надо бы мне в виртуальную среду поставить notebook чтоб легче было в консоли работать, но когда я поставил pip install notebook, эта херь поставила мне еще и овердохуя всякого говна (в том числе tornado, pywin32 и еще какая-то муть), сомневаюсь что хотя бы половина нужна для работы notebook. Как его поставить по человечки с минимумом пакетов?
(есть еще jupyter и jupyterlab - но то же самое говно)
Аноним 01/03/20 Вск 20:44:06 1620218215
Аноним 01/03/20 Вск 20:45:23 1620221216
>>1620218
>не знаю всякие пхп и джаваскрипты
Возможно, в обозримом будущем меня уговорят прикрутить туда всякое. Поэтому питон.
Аноним 01/03/20 Вск 20:47:40 1620225217
>>1620177
Если бы у него был линух, то у него все сопутствующие пакеты были бы пересобраны под самый последний питон в репозиториях, так что тут уточнять ни к чему было.
Аноним 01/03/20 Вск 20:53:08 1620232218
>>1620225
Хехе
Арч уже равно линупс?
Аноним 01/03/20 Вск 20:56:36 1620239219
>>1620225
>Если бы у него был линух, то у него все сопутствующие пакеты были бы пересобраны под самый последний питон в репозиториях, так что тут уточнять ни к чему было.
Я не думаю, он ебанашка, которая сидит на ролинг-релиз дистрах без возможности, установки прошлых версий пакетов, в дебианоубунтах и красношляпах все нормально
Аноним 01/03/20 Вск 21:02:01 1620250220
>>1620232
>>1620239
Вы прочитали, что я написал?
>сопутствующие пакеты были бы пересобраны под самый последний питон в репозиториях
На линуксах, если ставить из реп (как ты и должен делать, потому что там за тебя и слюнки подотрут), то всякие доп. библиотеки будут собраны под версию пистона, которая в репах. В репах 3.5? Вся шелуха тоже под 3.5.
Аноним 01/03/20 Вск 21:04:36 1620254221
>>1620250
Зочем в питухоне пол линем что-то ставить из реп когда есть venv?
Аноним 01/03/20 Вск 21:04:37 1620255222
>>1620250
Нет, старые билды нахуй не выкидывают, это не арч
Аноним 01/03/20 Вск 21:08:04 1620261223
>>1620254
Ну видишь, анон не справился.
Аноним 01/03/20 Вск 21:10:02 1620266224
>>1620255
Выкидывают-выкидывают. Сначала называют old stable, а потом выкидывают вместе с релизом.
Аноним 01/03/20 Вск 21:11:14 1620267225
>>1620266
>Сначала называют old stable
Ты странный если тебе внезапно понадобились пакеты старше олдстейбла
Аноним 01/03/20 Вск 21:12:31 1620271226
>>1620261
Пусть как нормальный поцан asdf ом питон нужной версии ставит, а пипом свои пакеты.
Аноним 01/03/20 Вск 21:13:52 1620272227
>>1620267
>только в арче выкидывают
>везде выкидывают
>ой, а зачем тебе выкинутые пакеты? ты странный
Аноним 01/03/20 Вск 21:15:03 1620275228
>>1620272
Контекст был про различие минорных версий на 2-3 релиза
Аноним 01/03/20 Вск 21:20:40 1620282229
>>1620275
Я тебе просто объясняю, что перестают поддерживать старые версии везде. Где-то быстрее, где-то медленее. Если тебе нужна какая-то конкретная версия, то её может в определённый момент не оказаться ни в актуальном арче, ни в актуальном дебиане, ни даже в ещё поддерживаемом центосе.
Аноним 01/03/20 Вск 21:27:30 1620289230
Аноним 01/03/20 Вск 21:29:33 1620293231
>>1620030
Может быть
>Whether or not the results are sorted depends on the file system.
Аноним 01/03/20 Вск 22:01:01 1620334232
Аноним 01/03/20 Вск 22:10:38 1620352233
Аноним 01/03/20 Вск 22:22:27 1620371234
>>1620352
Ебана, а каковы подводные если я буду совмещать MongoDB и Postres в одном проекте?..
Аноним 01/03/20 Вск 22:58:20 1620410235
Аноним 01/03/20 Вск 23:59:16 1620482236
Высокопроизводительные сетевые клиенты на Пистоне на овер9к параллельных коннектов - фантазии или реальность? Или проще не мучать жопу и перевкатиться в какой-нибудь более подходящий язык?
Аноним 02/03/20 Пнд 00:16:49 1620500237
Аноним 02/03/20 Пнд 00:58:57 1620513238
А какими были ваши первые проекты? Интересно было бы узнать с чего здешний анон начинал.
Аноним 02/03/20 Пнд 01:02:11 1620515239
>>1620513
Ты про рабочие или про петы?
Аноним 02/03/20 Пнд 01:08:20 1620518240
>>1620515
Вообще про пет-проекты, но и про рабочие тоже можно рассказать. Любая информация будет полезна.
Аноним 02/03/20 Пнд 02:07:58 1620555241
>>1620518
1. Бот для инсты.
2. Автоматические тесты на селениуме.
3. Сайт на джанге.
мимодругойанон
Аноним 02/03/20 Пнд 02:12:26 1620556242
>>1620555
>Сайт на джанге.
Внутренний портал газпрома? Сраничка "Я и моя сраная кошка"?
Аноним 02/03/20 Пнд 02:14:44 1620557243
>>1620556
Нет, для бухгалтеров штуку в которой учет средств вели, серых я так понимаю.
Аноним 02/03/20 Пнд 02:18:15 1620558244
>>1620555
Что за бот? Под свои нужды писал?
Аноним 02/03/20 Пнд 02:19:44 1620559245
>>1620558
Да, искал по локации и тегу, лойсал фотки.
Аноним 02/03/20 Пнд 02:30:18 1620563246
>>1620518
Сервис с вебмордой на джанге и микросервисным ядром для работы с фотостоками, свалил через год, сейчас работаю на букмекерсий стартап
Аноним 02/03/20 Пнд 08:42:24 1620642247
312312.png (18Кб, 721x192)
721x192
Анончики, помогите, пожалуйста, срочно
Аноним 02/03/20 Пнд 09:11:38 1620666248
Аноны, за месяц нужно запилить нейросеть на питоне, подскажите литературу, желательно, чтобы по проще прдавалась инфа. Лучше на русском, хотя и англ подойдет. Нейросеть если что по классификации кредитов.
Аноним 02/03/20 Пнд 09:23:54 1620673249
Как сделать так чтобы мое приложение на Джанге независимо от пользователей каждые 30 секунд проводила опрос стороннего ресурса? Очевидно что нужен некий endless loop, это только асинхронными методами можно запилить?
Аноним 02/03/20 Пнд 09:44:44 1620694250
>>1620673
Есть такая штука в джанге как management command, по сути скрипт джанги, просто запускаешь его по крону каждые 30 секунд. Но вообще все используют celery, и ты так делай.
Аноним 02/03/20 Пнд 10:13:53 1620708251
>>1620694
>celery
Гуд, усвою. По факту он в Джанге может выполнять прикладную асинхронность связанную с тасками? И даже никаких asgi и 3й версии Джанги не нужно?
Аноним 02/03/20 Пнд 10:17:58 1620711252
крайне идиотский вопрос (мне, только начавшему читать и любопытному, интересно):
Не сравнивайте логические типы с True и False с помощью ==:
Аноним 02/03/20 Пнд 10:18:18 1620712253
>>1620711
почему не сравнивать с помощью ==?
Аноним 02/03/20 Пнд 10:24:33 1620716254
>>1620712
Это опасно. Можно лишиться девственности.
Аноним 02/03/20 Пнд 10:25:44 1620717255
>>1620712
Ну вот смотри, если ты пишешь if bool == True:
То почему бы не написать if (bool == True) == True: ?
Аноним 02/03/20 Пнд 10:32:33 1620722256
>>1619653
Первое что приходит в голову:
Добавить два поля для id следующего и предыдущего Entry и реализовать методы create, delete, next, insert и так далее. То есть тупо реализовать все что нужно, прямо в модели.
>>1620708
По celery я тебе ничего рассказать не могу, не разбираюсь, потому как сам не пользуюсь. По асинхронности в джанго - тоже самое, они там что-то анонсировали в третьей версии, но я так и не понял что там можно асинхронно, а что нет. Похоже, что просто прикручивают django channels. Сижу на старой версии, жду когда сокеты завезут.
Аноним 02/03/20 Пнд 10:44:44 1620732257
>>1620722
>По асинхронности в джанго - тоже самое, они там что-то анонсировали в третьей версии, но я так и не понял что там можно асинхронно, а что нет.
Насколько я понял, они добавили поддержку ASGI и декораторов асинк_ту_синк и синк_ту_асинк. А 3 версия сейчас будет проходная, т.к. они планируют полностью перевести фреймворк на асинхронность к 4 версии, где-то на хабре была подробная статья про это
Ну и их старый роадмап
https://www.aeracode.org/2018/06/04/django-async-roadmap/
Аноним 02/03/20 Пнд 10:59:53 1620763258
>>1620666
Бамп. Неужели никто машинным обучением не интересуется?
Аноним 02/03/20 Пнд 11:04:07 1620775259
>>1620712
Потому что Большие Дяди юзают is
Аноним 02/03/20 Пнд 11:05:12 1620781260
>>1620717
Потому что менее понятно. А в bool == True: сразу видно, что тип булев, должен быть правдой. Меньше надо помнить.
Аноним 02/03/20 Пнд 11:08:08 1620788261
>>1620775
is может быть и вредно, если bool на самом деле, например, int. Или придётся писать if bool(int) is True:
Аноним 02/03/20 Пнд 11:18:52 1620809262
>>1620788
Большие Дяди принципиально юзают только True и False. Никаких None или int
Аноним 02/03/20 Пнд 12:50:26 1620915263
Подскажите, если мой гитхаб состоит из курсовых работ времен шараги это пожалуй надо скрыть и парочки ботов для телеги. Причем один бот достаточно продвинутый (фриланс заказ) интернет магазин с кнопочками и постгрес бд. А другой модный-асинхронный, c вебхуком и парсингом. То это можно показывать как "проекты" для вката джуном в бекенд?(хотя на самом деле меня больше интесует работа с бд и автоматизация)
Или такое даже смотреть никто не будет?
Аноним 02/03/20 Пнд 13:26:20 1620958264
>>1620915

Ты учти что это в оба конца работает и если у тебя там будет говнокод то это сыграет даже похуже чем завал на двухмерном массиве.
Аноним 02/03/20 Пнд 15:09:21 1621040265
Кто-нибудь может поднять рейт на https://slivup.me/
Хочу скачать пару курсов а рейта нет
Аноним 02/03/20 Пнд 16:38:21 1621109266
Аноним 02/03/20 Пнд 16:41:38 1621110267
>>1621109
Или мб проще читалку купить, но это еще сложнее и выбрать и эти наверное в бумаге возьму
Аноним 02/03/20 Пнд 17:29:39 1621136268
>>1620781
Зачем это писать, если можно написать "if bool"?
Аноним 02/03/20 Пнд 17:34:04 1621138269
Аноним 02/03/20 Пнд 17:47:56 1621146270
>>1621136
Пишешь if bool Только если не нужно обрабатывать преобразования
Аноним 02/03/20 Пнд 18:01:04 1621159271
>>1621146
Погоди погоди. Приведи пример из реальной жизни, в котором реально нужно писать "if bool == True"
Аноним 02/03/20 Пнд 18:16:07 1621165272
>>1621136
Чтобы было понятнее.
Аноним 02/03/20 Пнд 18:37:09 1621177273
>>1621165
Оно и так понятно, а кому не понятно - Гвидо объяснит лично
>Don't compare boolean values to True or False using ==.
> Yes: if greeting:
> No: if greeting == True:
> Worse: if greeting is True:

Аноним 02/03/20 Пнд 18:49:04 1621182274
>>1621177
>Don't compare boolean values to True or False using ==.
А я и не сравниваю "boolean values", я сравниваю variables, а какие оно может values принимать?

Если, например, ты спрашиваешь про False? И там не False, а пустая строка? Или None?
Аноним 02/03/20 Пнд 18:51:14 1621183275
Аноним 02/03/20 Пнд 18:54:24 1621185276
>>1621182
>Если, например, ты спрашиваешь про False? И там не False, а пустая строка? Или None?
Приведи пример реального кода с такой ситуацией.
Аноним 02/03/20 Пнд 18:56:45 1621186277
>>1621185
Ты не можешь придумать ситуацию, когда False, [], и None это не одно и тоже?
Аноним 02/03/20 Пнд 18:57:48 1621187278
>>1621186
Я тебя не об этом попросил
Аноним 02/03/20 Пнд 19:00:24 1621190279
В последнее время посматриваю по рандому всякие курсы и обратил внимание, что практически в каждом при открытии файла или подключения бд они стремятся максимально быстро же закрыть. Т.е. на каждую запись в файл или запрос в базу открыть-закрыть.

Нахуя это делать?
Выглядит как идиотская экономия на спичках, учитывая прожорливость самого питона. Или есть какой-то подвох?
Аноним 02/03/20 Пнд 19:00:39 1621191280
>>1621187
У меня нет под рукой реального кода, где False, [], и None это не одно и тоже, чтобы показать тебе, так что не могу.
Аноним 02/03/20 Пнд 19:03:52 1621195281
>>1621182
>А я и не сравниваю "boolean values",
>Не сравнивайте логические типы с True и False с помощью ==:

>пустая строка
Пустая строка все еще False, ровно как и None
Аноним 02/03/20 Пнд 19:07:29 1621198282
Аноним 02/03/20 Пнд 19:08:31 1621199283
>>1621195
>Не сравнивайте логические типы
Логические значения. Логические значения бывают только True и False. А переменные могут быть не только True и False. Что не надо писать "if True == True" и так очевидно.

>Пустая строка все еще False, ровно как и None
О том и речь. У if a и if a == False будет разное поведение.
Аноним 02/03/20 Пнд 19:23:00 1621205284
>>1621191
Да я знаю, что это не одно и то же, речь то не об этом.
>>1621199
>У if a и if a == False будет разное поведение.
Никто так и не сравнивает, речь была о True.

Обычно в нормальном коде в переменной bool или её аналоге и так будет булево значение. И достаточно написать if bool
Если туда попадает всякая левая фигня, то это проблема кода уже и её надо решать.
Аноним 02/03/20 Пнд 19:37:24 1621213285
>>1621205
>речь была о True.
Подожди, то есть эта схема не универсальна даже между True и False и применяется исключитально для True?
Аноним 02/03/20 Пнд 19:42:35 1621219286
>>1621190
Имхо, нет смысла держать открытым подключение, если оно не используется. Плюс, могу ошибаться, если при открытом подключение программа упадет, это подключение может далее висеть незакрытым.
Аноним 02/03/20 Пнд 19:49:20 1621225287
>>1621213
Я обычно пишу либо if bool, если мне надо, чтобы что-то произошло, если условие выполняется
Либо пишу if !bool в противном случае
Но я не сильно опытный программист
Аноним 02/03/20 Пнд 19:56:13 1621231288
Стикер (0Кб, 512x411)
512x411
Аноним 02/03/20 Пнд 20:02:29 1621239289
>>1621219
В том-то и дело, что будет использоваться.
Если ты сразу вычитываешь или полностью пишешь файл, то да, нет смысла держать открытым.

При падении GC должен подчищать, по-моему, это в общем-то штатная ситуация для самого питона.
Аноним 02/03/20 Пнд 20:07:59 1621251290
Аноним 02/03/20 Пнд 20:09:10 1621254291
>>1621231
Я живой человек, я пью пиво по вечерам, отвянь
Аноним 02/03/20 Пнд 20:10:10 1621257292
Аноним 02/03/20 Пнд 20:36:46 1621283293
>>1616957
регексы из другой грамматики. с ними ты пойдёшь нахуй, когда захочешь вложенность победить и другие ништяковые вещи, которые даёт контекстно-зависимая грамматика.
Аноним 02/03/20 Пнд 20:43:32 1621288294
>>1619977
делай один список из кортежей через zip, а потом уже делай свою ёба сортировку по первым элементам всех кортежей.
Аноним 02/03/20 Пнд 20:44:46 1621289295
>>1621283
Пацаны, я сейчас таки допёр что regex это "Regular Expression"! Ёба, мама мне всегда говорила, что я одаренный и не зря. Скоро буду нейронки писать и 400к зашибать
Аноним 02/03/20 Пнд 20:47:47 1621291296
>>1621257
Это значит, что если напишешь так, к тебе в 12 ночи явится Гвидо и отпиздит восьмым пепом
Аноним 02/03/20 Пнд 20:51:12 1621296297
>>1620775
зачем они это делают? ведь сравнивают значение, а не тождество объектов.
Аноним 02/03/20 Пнд 20:55:04 1621303298
>>1621296
Значение эфемерно. Вот такой кастомный класс вообще всегда будет тебе выдавать True при сравнении и дальше что?
class Mine:
----def __eq__(self, other):
--------return True
Когда проверяешь ссылки ты точно знаешь что это синглтоны True или False
Аноним 02/03/20 Пнд 20:55:37 1621305299
>>1621289
рад был помочь! потом финансово поблагодаришь.
Аноним 02/03/20 Пнд 20:56:07 1621306300
>>1621289
а в каком модуле находится регулярка?
Аноним 02/03/20 Пнд 20:57:35 1621308301
>>1621303
значит такой это хуйня-объект, который эквивалентен всему. нахуя его по айди пробивать?
Аноним 02/03/20 Пнд 21:41:49 1621345302
>>1621239
>В том-то и дело, что будет использоваться.
Тогда нет никакого смысла закрывать соединение с БД, потому что коннект и аутентификация это достаточно медленная операция. С файлами тут чуть попроще, конечно.
Аноним 02/03/20 Пнд 21:59:39 1621366303
>>1621306
Как в обычном скрипте послать собственный асинхронный сигнал? Вот к примеру некая функция вернула определенное значение, значит посылается какой-то асинхронный сигнал и вызывается функция-обработчик для него. Или с помощью Celery это намутить реальнее?
Аноним 02/03/20 Пнд 22:00:51 1621368304
Аноним 02/03/20 Пнд 22:05:57 1621382305
Аноним 02/03/20 Пнд 22:31:51 1621439306
>>1621382
>Async From Sync
Ну да, по делу. Только вот мне бы единожды кинуть сигнал внутри синхронного кода и не париться. Незачем плодить async loop. Клавиатурное прерывание Ctr+C это ж тоже обработка сигнала (который уже бросает эксепшн KeyboardInterrupt). Вот реально ли сделать сигнал который реагирует на свою комбинация клавиш? Или тут без Си-прогинга не обойтись?
Аноним 02/03/20 Пнд 22:41:58 1621453307
>>1621439
>Незачем плодить async loop
Так ты и не плоди, с 3.7 можно пользоваться раном, об этом в статье тоже есть. Насчет прерывания хз
Аноним 03/03/20 Втр 01:03:33 1621559308
>>1621439
А как ты это сделаешь на Си? Ctrl+C это системный сигнал, его сама ОС генерит.

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

Просто не сделаешь. Но и на Си просто не сделаешь.
Аноним 03/03/20 Втр 01:14:14 1621561309
>>1621439
Так повесить обработчик сигнала, а потом своему же процессу послать сигнал. В чем проблема?
Аноним 03/03/20 Втр 01:17:19 1621564310
>>1621439
>Async From Sync
Там в этой части муть какая-то. Хотя не читал.

В любом месте для питона 3.5.3 и старше можно безопасно вызвать asyncio.get_event_loop(), не надо той мути для создания евент лупа. С 3.5.2 (он в дистрибутиве убунты 16.04, что печально) хитрее, поэтому лучше питон всё-таки обновить.

Для 3.7 уже больше возможностей, можно асинхронную задачу запустить просто как
asyncio.create_task()

Но всё это не имеет смысла в твоём контексте, ты реально делаешь что-то не то.
Аноним 03/03/20 Втр 02:18:42 1621593311
Для чего нужны элипсисы? Это которые ... Я прочитал, но так и не осознал зачем и для чего
Аноним 03/03/20 Втр 02:24:06 1621595312
sdafnb,msandb
Аноним 03/03/20 Втр 02:49:18 1621601313
>>1620712
Потому что для бул переменной достаточно написать "if a". Аналогично для пустых списков, нанов и прочих фолси
Аноним 03/03/20 Втр 03:01:30 1621602314
сап. нужно хранить историю изменений модели в django. точнее что-было изменено(django-simple-history) почти подходит кроме одного. в админке нужно показыать какие поля изменились. так собственно вопрос. есть еще какие нить батарейки?
Аноним 03/03/20 Втр 04:24:23 1621611315
Так посоны, чтобы в бэкграунде от основной программы, что то делать и обрабатывать это все параллельно нужно изучить мультипроцессинг, да?
Аноним 03/03/20 Втр 08:25:36 1621638316
Аноним 03/03/20 Втр 09:02:47 1621651317
>>1621561
Я про это и говорю КАК повесить обработчик кастомного сигнала?
Аноним 03/03/20 Втр 10:02:13 1621673318
Как лучше делать проверку вводимого int? Использовать isdigit() или просто поместить участок кода с приведением в try: ?
Аноним 03/03/20 Втр 10:03:48 1621675319
Аноним 03/03/20 Втр 10:54:01 1621711320
Почему Питон считается "интерпретируемым языком", если он компилируется в байт-код и выполняется виртуальной машиной? В чём вообще разница с C# и Java в таком случае?
Аноним 03/03/20 Втр 11:17:15 1621745321
7xwKtBq6bsg.jpg (110Кб, 563x554)
563x554
Сап, питонисты
Поделитесь, какой язык знаете любите/используете в петах помимо питона? Go/JS?
Аноним 03/03/20 Втр 11:24:39 1621756322
Сап, у меня есть набор данных по возрастам, хочу это отобразить на диаграмме, но данных чуть больше чем дофига. это выглядит не красиво. Хочу сгруппировать например по группам возаста например с 21 до 25 в одной группе с 26 до 30 в другой. как провести эту группировку?
Аноним 03/03/20 Втр 12:16:59 1621799323
Аноним 03/03/20 Втр 12:19:52 1621802324
>>1621675
Поставить хэндлер не проблема. Проблема заделать свой signal. Там в либе даны лишь основные сигналы (действующие на уровне ОС). Как я понял, без влезания в низкоуровневый прогинг на Си тут не обойтись
Аноним 03/03/20 Втр 12:21:35 1621806325
>>1621756
pandas.DataFrame
Весь функционал там. Сортировку проведи
Аноним 03/03/20 Втр 12:23:59 1621813326
>>1621802
Ну так системные и используй, это стандартный IPC.
SIGUSR1/2, например. Отправляются через os.kill.
Аноним 03/03/20 Втр 13:46:39 1621865327
Анончик, объясни как с виртуаленв работать.
Вот, например, в жсе - я клонирую репу с гитхаба, ставлю зависимости через npm install и они ставятся в папку с проектом.
Как это происходит с питоном? Я клонирую репу, в репе есть файл requirements.txt - как дальше мне поставить зависимости локально?
Аноним 03/03/20 Втр 13:49:18 1621871328
>>1621865
Создаешь виртуальное окружение, устанавливаешь пакеты, в пайчарме это из коробки есть
Аноним 03/03/20 Втр 14:00:49 1621881329
>>1621871
Мне нужно в шеле сначала перейте в директорию после чего создать виртуальное окружение с таким же именем как и проект?
Аноним 03/03/20 Втр 14:04:20 1621884330
>>1621881
Вообще без разницы где создавать. Тот же venv главное активировать, а работать можно откуда угодно.
Аноним 03/03/20 Втр 14:05:34 1621886331
>>1621884
Почему его можно создавать где угодно?
Аноним 03/03/20 Втр 14:10:40 1621889332
>>1621886
Может ты хочешь иметь отдельную папку, где у тебя будут все окружения, но никто не мешает тебе это в проект закинуть
Аноним 03/03/20 Втр 14:15:15 1621892333
>>1621889
А если я создаю окружение внутри проекта, то это окружение нужно в гитигнор добавлять, верно? А то я создал окружение внутри проекта и у меня появилось 500 новых файлов. И еще вопрос, есть ли какое то стандартное название для папки с виртуальным окружением внутри проекта? Или куда обычно их ставят?
Аноним 03/03/20 Втр 14:24:17 1621897334
Аноним 03/03/20 Втр 14:29:15 1621902335
>>1621892
>А если я создаю окружение внутри проекта, то это окружение нужно в гитигнор добавлять, верно?
Да
>И еще вопрос, есть ли какое то стандартное название для папки с виртуальным окружением внутри проекта? Или куда обычно их ставят?
Зависит от выбора виртуального окружения, для venv это папка с именем venv, оно в корень проекта обычно ставится
Аноним 03/03/20 Втр 15:17:22 1621941336
>>1621902
Спасибо анончик. Вроде разобрался. А ты не знаешь, в питоне случайно нету практик для сендбокса скриптов/проектов? Или это мне нужно на уровне ос делать?
Аноним 03/03/20 Втр 15:21:37 1621943337
Можно ли адекватно реализовать mutable строки в Питоне? Для множественных операция удаления/вставки/смещения, чтоб работать с одним и тем же объектом и не происходило кучи копирований/удалений? Как их лучше всего намутить? Через memoryview - реально? (хз особо не вникал, что это такое)
Аноним 03/03/20 Втр 15:37:26 1621946338
>>1621943
Если ты не собрался изменять строки больше пары мегабайт, то это не имеет особого смысла
Аноним 03/03/20 Втр 16:12:23 1621967339
>>1621946
При частых изменениях удобно работать со строками как с последовательностями и брать конкретный элемент через __getitem__. Канешн можно реализовать обертку из этого, но строки все равно будут immutable
Аноним 03/03/20 Втр 16:29:15 1621982340
>>1621967
Как диды массив из символов делай, или bytearray
Аноним 03/03/20 Втр 16:43:13 1622000341
А есть какие-нибудь модные хипсторские способы теребить коллекции?
Хочет какие-нибудь конструкции типа r['ch1','ch2'][:10]['data']. Типа взять два куста из словаря, срезать им первые 10 строк и извлечь из низ ключ 'data'. А то генератор на генераторе городить приходится.
Аноним 03/03/20 Втр 16:52:58 1622016342
>>1622000
Многоэтажный comprehension.
Аноним 03/03/20 Втр 17:17:54 1622036343
>>1622016
Так я уже. Просто просто после R это очень многословно.
Аноним 03/03/20 Втр 17:22:52 1622043344
photo2020-03-03[...].jpeg (63Кб, 500x500)
500x500
Аноним 03/03/20 Втр 17:32:49 1622053345
dasdasd.PNG (3Кб, 300x154)
300x154
Кракозяблики(мамины) почему те числа которые святые не удаляеются ??
Аноним 03/03/20 Втр 18:05:11 1622088346
2020-03-03 1803[...].jpg (85Кб, 662x971)
662x971
Йе, мой первый ГУЙ.
Аноним 03/03/20 Втр 18:49:18 1622123347
>>1622088
Что такое Гуй ? По типу Хуя ? Это заговор ? Ты вампир ?
Аноним 03/03/20 Втр 19:06:34 1622139348
Шутки шутками, пасты пастами, но может ли новичок написать свою имиджборду на джанго?
Аноним 03/03/20 Втр 19:07:10 1622143349
>>1622043
Снизу должен быть православный ИДЛЕ
Аноним 03/03/20 Втр 19:07:51 1622144350
Аноним 03/03/20 Втр 19:13:08 1622153351
Алсо, куда дальше идти курить бамбук дурачку-олимпиаднику, который знаком с Питоном уровня основ ООП по типу инкапсуляции, наследования и тп, ну еще немного всяких tkinter и прочих либ. Решил 100500 задач уровня отсортируйте говно постройте маняматрицы помогите вычислить говно и прочее, теперь хочу большего
Аноним 03/03/20 Втр 19:34:13 1622175352
>>1622153
Делать сайтики и API, очевидно. Учить Django, Django REST, asyncio
Аноним 03/03/20 Втр 19:39:36 1622185353
>>1622144
Ясно вампир не палится. Ну короче я так и думал пока я время на всякую хуйню трачу вы радуетесь и живёте вечно. Пидоры блять ебаные я же то же хочу
Аноним 03/03/20 Втр 19:41:03 1622188354
>>1622153
То чувство когда даже дурачёк знает больше тебя во много раз
Аноним 03/03/20 Втр 19:49:55 1622203355
>>1622188
Ну тащемта это уровень 11 класса - 1 курса, разве что графические либы можно заменить на numpy
Аноним 03/03/20 Втр 20:06:10 1622231356
>>1622175
А как собственно совмещаются Django (где асинхронность допилят ой как не скоро) и asyncio?
Аноним 03/03/20 Втр 20:24:42 1622253357
>>1622231
>где асинхронность допилят ой как не скоро
В середине 21 - начале 22 будет
Аноним 03/03/20 Втр 20:37:19 1622271358
>>1622253
главное не бухтеть
Аноним 03/03/20 Втр 21:14:24 1622313359
Screenshot20200[...].png (223Кб, 1440x1874)
1440x1874
Screenshot20200[...].png (190Кб, 1440x1347)
1440x1347
Как по мне - отличный вопрос для собеседования, что бы спросить у собеседующего, если надо будет.
P.s. советую анонам-новичкам подписаться на этого мужика, и на Ютубе найти видео с конференций с ним.
Аноним 03/03/20 Втр 21:31:22 1622329360
>>1622313
>мапа компактнее чем массив массивов
Да ладно!

>Как по мне - отличный вопрос для собеседования, что бы спросить у собеседующего, если надо будет.
Нет, вопрос говно, измерение пиписьки на знание вещей, которые никогда не будут использоваться
Аноним 03/03/20 Втр 21:34:36 1622331361
Кто нить пишет код в емаксе? Если да, то поделитесь конфигом плз!
Аноним 03/03/20 Втр 21:36:16 1622335362
>>1622329
Вопрос хороший, потому как именно подобный вопрос из области "хуй знает, надо продумать, поразмышлять" и ждут.

Очень хорошо что ты с лету подобрал возможную причину такого поведения.
Аноним 03/03/20 Втр 22:18:36 1622369363
>>1622331
Я не смог победить лаги линтера и забил. Тебе того же рекомендую.
Аноним 03/03/20 Втр 22:24:26 1622373364
Стикер (255Кб, 512x496)
512x496
>>1622369
>Я не смог
>Тебе того же рекомендую.
Двач. Всегда готов поддержать анона в его начинаниях.
Аноним 04/03/20 Срд 00:00:32 1622477365
Есть проект в котором не прописаны зависимости в requirements.txt. Как в таком случае ставить зависимости? Ручками прописать в файлике после чего поставить их через виртуальное окружение?
Аноним 04/03/20 Срд 00:01:42 1622479366
Аноним 04/03/20 Срд 00:02:28 1622481367
>>1622373
На самом деле, погружение в вимы-эмаксы это дохуя человекочасов. Зачем добровольно навешивать на себя такой груз?
С тем же вимом достаточно выучить по верхам чуток и охуенно себя чувствовать в любых никсах.
А дальше это очень на любителя, особенно с превращением его в ололо-IDE.
Аноним 04/03/20 Срд 00:05:08 1622487368
Screen Shot 202[...].png (116Кб, 1408x116)
1408x116
>>1622479
Что должно произойти?
Аноним 04/03/20 Срд 00:12:57 1622491369
Аноним 04/03/20 Срд 00:23:55 1622501370
>>1622481
>не учи новое, не учи! это же так сложно! я не изучил, и ты так делай!
Аноним 04/03/20 Срд 00:32:32 1622513371
>>1622501
Я изучил, дурачок. Я изучил даже ed.
Но смотря квадратными глазами на фронтенд с мильйонами хуйни для изучения, какие там редакторы ещё?
Тем более, для вкатывальщиков.
Аноним 04/03/20 Срд 00:36:35 1622518372
>>1622513
>я изучил, а ты не учи! я лучше знаю, что тебе хочется знать!
Аноним 04/03/20 Срд 00:38:12 1622519373
1353527425636.jpg (104Кб, 715x946)
715x946
Аноним 04/03/20 Срд 05:10:36 1622619374
>>1622203
Ну а я цикл for даже не прошёл ещё ну а хуля еще 10 задачек осталось ща решу и уже буду то же программировать а хуля делов то бля ёпта
Аноним 04/03/20 Срд 06:33:28 1622632375
Какие версии python u pycharm ставятся на win7 7600 без sp1 ? Установил старые, но не поддерживаются модули, т.к. pip ставит последнюю версию модуля. Шо делать?
Аноним 04/03/20 Срд 07:58:08 1622647376
image.png (3Кб, 358x85)
358x85
Короче если значение k увеличивать в теле цикла, он дальше нихуя не итерирует только до своего первого заданного значения. Почему так ?
Аноним 04/03/20 Срд 08:12:26 1622651377
>>1622647
То есть это уже оффициально всё да ? В цикле for значения range() менять смысла не имеет это уже точно ?
Аноним 04/03/20 Срд 09:07:31 1622663378
Аноним 04/03/20 Срд 09:34:25 1622668379
>>1622663
Но почему
П О Ч Е М У ?
Аноним 04/03/20 Срд 09:43:14 1622671380
>>1622668
А если уменьшать?.. подумай головой, она не только чтоб в нее кушать
Аноним 04/03/20 Срд 10:10:57 1622689381
>>1622671
Уменьшать i ? Или что уменьшать ?
Аноним 04/03/20 Срд 10:12:54 1622690382
>>1622671
Ты вопрос понял вообще ? Я меняю к в теле цикла(увеличиваю) но цикл работает только до того первого значения к не дальше.
Аноним 04/03/20 Срд 10:16:28 1622692383
123.PNG (14Кб, 633x717)
633x717
Аноним 04/03/20 Срд 10:16:58 1622693384
>>1622690
А ты уменьшай k
И посмотри на итоговый результат. Надеюсь тебя это нпведет на какие-то мысли
Аноним 04/03/20 Срд 10:17:57 1622694385
>>1622671
Вообще нериалестично сделоли. i менять незя range незя а чо делать то бля
Аноним 04/03/20 Срд 10:20:34 1622695386
ждальыы.PNG (11Кб, 566x648)
566x648
>>1622693
То же самое ты тролишь меня похоже дила нашёл да ? Конкуренции боишься ? Ажна затрясся весь денег жалко ?
Аноним 04/03/20 Срд 10:25:07 1622699387
>>1622695
очередной вкочусьвайти за месяц?
Тебе не кажется странным что любые твои манипуляции над k не отражаются на цикле? Потому что блин инициализация генератора range уже произошла и ему поебать, что ты там делаешь с k

>>1622694
ты херню несешь, for вообще не для этого, используй while

Аноним 04/03/20 Срд 10:52:31 1622725388
>>1622699
Так я и говорю почему бля не меняется ? Что за инициализация токая бля ? Ебать. Ты чо нахуй ? Да лано, не трону ебать. Не бойся.
Аноним 04/03/20 Срд 11:04:10 1622731389
>>1621884
>Тот же venv главное активировать
Скорее в проект прописать, чтобы оттуда запускался.

Активировать не обязательно, достаточно по полному пути вызывать, и автоматом будет подхватываться нужное окружение. То есть вместо того, чтобы запускать
source /home/vasya/venv/bin/activate
python hello.py

можно смело писать
/home/vasya/venv/bin/python hello.py

и всё будет прекрасно работать без предварительного активирования окружения. Для запуска из скриптов это важно, и в принципе иногда удобно, особенно если хочется в разных окружениях что-то пускать.
Аноним 04/03/20 Срд 11:10:27 1622734390
>>1622725
Не нужно тебе программированием заниматься. Не на питоне уж точно, ты пока не готов.

Почитай просто, как циклы работают в питоне, как генераторы.

У тебя вызов range(k) происходит только один раз, перед самой первой итерацией. Дальше создаётся генераторный объект, который возвращает значения от 0 до k-1, и ты на него повлиять уже никак не можешь.
Аноним 04/03/20 Срд 11:15:00 1622736391
>>1622734
Я уже понял ебать но всё равно спасибо бля внатуре от души
Аноним 04/03/20 Срд 11:30:59 1622743392
Как в Джанге вести автоматический подсчет количества строк в таблице? Добавил я новую строку с данными в таблицу - счетчик увеличился, удалил - уменьшился (создание integer аттрибута на уровне класса - хреновая затея, т.к. питоновские методы инкремента/декремента будут серьезно тормозить БД при каждом таком обращении)
Аноним 04/03/20 Срд 12:10:52 1622758393
image.png (5Кб, 329x52)
329x52
Обьясните как эта хуйня внутри скобок работает ?
Аноним 04/03/20 Срд 12:15:38 1622768394
>>1622743
Просто запросить у базы count
Аноним 04/03/20 Срд 12:23:13 1622777395
>>1622758
Каждая буква проверяется на вхождение в строчку.
Аноним 04/03/20 Срд 12:26:18 1622779396
леньработать.png (11Кб, 882x175)
882x175
Аноним 04/03/20 Срд 12:39:30 1622787397
>>1622777
Это я понимаю но как сия магия происходит ?
Я вообще не видел что бы перед for что то стояло и где про такое искать ?
Аноним 04/03/20 Срд 12:44:28 1622793398
Аноним 04/03/20 Срд 12:52:26 1622798399
>>1622787
Генераторные выражение, тебе ссылку уже привели. Одна из особенных фишек питона, которых нет в большинстве других языков.

Чаще они используются для того, чтобы списки генерить.
попробуй
s = "asdfasdfasdfgadfg"
lst = [c for c in s]
print(lst)
lst = ['<' + c + '>' for c in s]
print(lst)
lst = [c if c in 'aouie' else '_' for c in s]
print(lst)

можно использовать и в циклах, но это уже не очень принято.
Аноним 04/03/20 Срд 13:01:22 1622806400
>>1622779
>>1622793
>>1622798
Понял принял начинаю очень мощно изучать вопрос увидимся на собеседовании
Аноним 04/03/20 Срд 13:05:11 1622812401
Двощ нид хелп
Django
Надо сделать модель в которую буду заполнять поля и их сумировать и вот эту сумму вносить в модель ...
То есть есть 3 филда Int
1 - Input(x) 2 - Input(y) 3 - а в 3 филд вношку x+y (но не рукой, а что бы програмно заполнялось(надо делать кое какие расчеты) и что бы вносить в это поле можно было только редоктируя 1 и 2 фил.
То есть как я понимаю, надо засунуть функцию/метод в модель и при иницилизации модели ее вызвать и забить ее результат в филд? Как это сделать?
Аноним 04/03/20 Срд 13:05:56 1622814402
>>1622798
Есть отдельная книжка именно про такие особенности? Про всякие @, else для for, и with тоже. А то я как-то какую не возьму: "как пользоваться if", "создадим список d=[]".
Аноним 04/03/20 Срд 13:09:24 1622818403
>>1622814
Fluent python годная книга. Вроде даже перевод есть.
Аноним 04/03/20 Срд 13:12:11 1622823404
>>1622818
ай ам спикинг инглиш вери вел
Аноним 04/03/20 Срд 13:14:10 1622827405
>>1622814
Есть, документация называется. Рекомендую.
Аноним 04/03/20 Срд 13:15:27 1622828406
>>1622827
Сейчас бы документацию с книгами сравнивать.
Аноним 04/03/20 Срд 13:15:50 1622830407
>>1622827
В документации нет способов нахуевертить всяких штук, только конкретные инструменты.
Аноним 04/03/20 Срд 13:16:25 1622832408
Аноним 04/03/20 Срд 13:19:44 1622833409
Сап, други.
Я к вам с совсем нубским вопросом.
Когда очень очень давно учился в универе по спецухе программирования, изучая с++ и паскали.
Потом все это забросил, а недавно решил вспомнить былое чисто для себя, мозги размять.
Из всего за это время множества языков выбрал питона (хз почему, ну вот его).
Разобрался в синтаксисе, вспомнил кое-какие методы и алгоритмы, короче запилил несколько программок.
Но, собственно сам вопрос вот в чем:
как дальше из ide ее выпустить? Там она запускается, работает, а дальше что делать? Например скомпилить и использовать на другом компе или кому то скинуть. Погуглил это дело, оказывается это целая пляска с бубнами.
Объясните глупому какой тол тогда в этом языке, если из него дальше программу нельзя нормально сформировать? Ну или я чего то еще не понимаю, подскажите плз.
Аноним 04/03/20 Срд 13:21:22 1622834410
>>1622812
Вычисляемые поля, сигналы, попробуй погуглить сначала
Аноним 04/03/20 Срд 13:22:33 1622836411
>>1622828
>>1622830
Тихо, тихо, ребят, не триггеритесь. Книжки, так книжки.
Аноним 04/03/20 Срд 13:24:12 1622838412
>>1622833
Все твои плюсы, шарпы и жабы тоже требуют рантайм, просто он или есть искаропки, или его таскают с собой с инсталлятором.
Принцип тот же.
Аноним 04/03/20 Срд 13:25:31 1622839413
>>1622832
А, objects.count...

Другое еще хотел уточнить: SOAP API актуально где сейчас? Или в основном везде идет REST?
Аноним 04/03/20 Срд 13:26:31 1622841414
>>1622839
В ынтрыпрайзах встречается, но по-моему, уже почти легаси.
Аноним 04/03/20 Срд 13:27:07 1622842415
>>1622838
Расскажи поподробнее об этом. Я не совсем понимаю что делать.
Вот я в ide накидал. Сохранил в py файл. Как из этого сделать exe?
И почему пишут что это редко делают, что вдруг поменялось?
Аноним 04/03/20 Срд 13:30:20 1622845416
>>1622842
Из него не нужно делать ехе. Надо устанавливать питон там, где оно будет запускаться.
Ехе можно сделать, но это суть тот же питон, примотанный изолентой.
Аноним 04/03/20 Срд 13:32:51 1622846417
>>1622842
Файл легче запускать через терминал командой python -m, при условии шо питон на машине установлен канешн
На unix в 1ю строчку захуяриваешь #!<python_path> (можешь папку с виртуальной средой вместо со своей прогой таскать) и тогда файл запустится из терминала на похуй, без команды python
Если тебе надо послать твою ахуительную говнопрогу другу-ламеру, то конвертируй py2exe, в инете есть туториалы, сам этим не занимался
Аноним 04/03/20 Срд 13:36:04 1622848418
>>1622845
Хмм, а в других языках с этим проще? Зря я питон выбрал получается?

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

>>1622846
Говнопрогу именно себе, но на другой комп.

А почему так сделали? Это же пиздец неудобно. Все равно что машина, которая только в гараже может заводиться....
Аноним 04/03/20 Срд 13:39:23 1622853419
>>1622848
> Хмм, а в других языках с этим проще? Зря я питон выбрал получается?
Зря, попробуй голенг, он очень простой(проще питона) и делать экзешники в нем можно одной командой. Ну и сами программы получается на порядок быстрее питухонских
Аноним 04/03/20 Срд 13:41:20 1622854420
>>1622848
Тебе нужен интерпретатор чтоб интерпретируемый код работал, что тут странного? Точно так же как компилируемому коду необходим компилятор
Попробуй .cpp файл на похуй запустить двойным щелчком мыши
Аноним 04/03/20 Срд 13:46:29 1622857421
>>1622854
Да это понятно, вот только в си был встроен компилятор и никакой проблемы получить exe из срр не было.

>>1622853
>голенг
Что то не могу найти, можно какую то ссылку на соус откуда начать?
Аноним 04/03/20 Срд 13:50:51 1622861422
Аноним 04/03/20 Срд 13:54:50 1622864423
>>1622861
Где искать в Рахе работу на Го? И насколько это будет успешно для вкатывальщика?
Аноним 04/03/20 Срд 13:57:26 1622865424
>>1622864
>вкатывальщика
Если цель - поиск работы в Россие, то лучший вариант это не питон, и даже не го. Если опыта совсем нету - то пхп или жс. Поработаешь пару лет, потом можно будет и на любой интересующий тебя стек перепрыгнуть.
Аноним 04/03/20 Срд 14:03:00 1622867425
>>1622861
Спасибо, уже тоже набрел на тред и эти сайты.
Попробую его.

Еще пара вопросов можешь подсказать?
У Го тоже много разных IDE? Если так, то посоветуй плс хорошую?

И второй - вообще этот Го как язык нормальный? Функционал, синтаксис итд?
В питоне мне понравилось что нет кучи фигурных скобок, точек запятых в конце и кучи всякой лишней разметки. Потом еще показалось удобно как он переменные сам понимает и не приходится на каждом шагу подсказывать что тут строка, а тут интежер.
Аноним 04/03/20 Срд 14:09:20 1622869426
>>1622867
>У Го тоже много разных IDE
Рекомендую вскод с плагином.

>Го как язык нормальный?
Строгая типизация. Синтаксиз си-образный. Абстракций меньше че в питоне.
Если хочешь глянуть на синтаксис, глянь любой проект
https://github.com/trending/go
>отом еще показалось удобно как он переменные сам понимает
В голенге с этим все намного лучшее, потому что иде точно знает какой ты указал тип у переменной и сразу тебе покажет все методы.
Аноним 04/03/20 Срд 14:23:46 1622876427
https://goo.su/0Kd4

На сколько близко к правде и на кого этот список, по вашему, на среднего джуна или уже мидла?
Аноним 04/03/20 Срд 14:25:13 1622878428
image.png (110Кб, 1050x766)
1050x766
>>1622869
>Рекомендую вскод с плагином.
Оно?
Аноним 04/03/20 Срд 14:28:11 1622880429
Аноним 04/03/20 Срд 16:04:17 1622957430
>>1622139
Бамп вопросу. Есть ли целесообразность такого подхода или лучше на похапэ как жиды делать?
Аноним 04/03/20 Срд 16:04:45 1622959431
Аноним 04/03/20 Срд 16:14:34 1622970432
>>1622957
Почему нет? Что тебе мешает сделать борду на джанге? Я когда курсы смотрел там одно из ДЗ было - борда
Аноним 04/03/20 Срд 16:17:00 1622974433
Реально ли работать на бэке в трй же Джанге с юзерами исключительно через куки, не задействуя БД, если передаваемых данных мало?.. канешн БД все равно потребуется для прикладных целей, я конкретно про замену кастомных моделей куками
Аноним 04/03/20 Срд 16:22:11 1622977434
image.png (8Кб, 553x148)
553x148
>>1622880
Пытаюсь запустить свой хеллоу ворлд и вот такая залупа. Щоделать?
Аноним 04/03/20 Срд 16:25:22 1622979435
>>1622977
Не засирай тред. Тем более питоновский
Аноним 04/03/20 Срд 16:26:45 1622980436
Аноним 04/03/20 Срд 17:40:30 1623009437
>>1622977
Ливать из программирования.
04/03/20 Срд 17:46:21 1623017438
Аноним 04/03/20 Срд 18:11:30 1623052439
Аноним 04/03/20 Срд 18:14:38 1623056440
>>1623052
Саму концепцию репла все подряд пизданули из лишпов, где она много мощнее.
На потестить однострочники годится.
Аноним 04/03/20 Срд 21:21:26 1623240441
>>1622970
Я в вебе вообще ноль, но из того, что я понял - джанга скорее как конструктор по типу вордпресса, нет?
Аноним 04/03/20 Срд 22:27:09 1623352442
>>1623240
Нет просто вообще. Полу-конструктор для бэкенда, фронт часть самому придётся писать полностью, только админка есть в коробке.
Аноним 04/03/20 Срд 22:29:05 1623357443
>>1622974
Что ты хочешь в куках передавать? Ты данные можешь в сессиях хранить. Ты можешь использовать легковесную базу sqlite, если не хочешь маяться с постгресом.

Куки вообще о другом и для другого.
Аноним 04/03/20 Срд 22:38:14 1623367444
>>1623352
А что, через встроенные жинжа темплейты никто фронт не пишет?
Обязательно накручивают поверх какой-то жс фреймворк типа реакта, а джанга только для работы с бд и рестом?
Аноним 04/03/20 Срд 23:09:47 1623400445
Аноним 04/03/20 Срд 23:54:43 1623429446
>>1623367
Если что-то совсем простое можно и на темплейтах, можно к ним бутстрап, джейквери приклеить - будет лучше, если одностраничник можно хоть вью прикрутить
Аноним 05/03/20 Чтв 00:24:45 1623444447
>>1623367
Там не jinja, а jinja-подобные темплеты. Кстати лучше их заменить именно на джинджи, потом меньше проблем будет.

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

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

На базе jinja ты легко можешь сам сайт написать, но это при условии, что ты владеешь HTML/CSS/JS.

Бутстрап - спорное решение. Его разрабатывали давно, когда браузеры плохо нормальный HTML и CSS поддерживали. В результате они велосипеды убогие и кривые пилили, когда на голом HTML ты можешь сделать всё прямее и лучше. Вот в самой базе, bootstrap grid. Сейчас гриды лучше в голом HTML поддержаны, более функциональные, и уже все современные браузеры поддерживают. Вообще проблема многих таких решений.

jQuery тоже устарел. Или лучше на голом JS, или уже мощные современные фреймворки.
Аноним 05/03/20 Чтв 01:22:46 1623459448
>>1623444
А на чем можно быстро лепить симпатичные мордочки погромисту без всяких зойчатков дизайна?
Имеются в виду не сайты, а сорт оф гуи в вебе, для управления всякими штучками на бэкэнде.
Мне нравится вариант с рест апи + морда на клиенте на каком-то жирном жс фреймворке. Или есть что получше?
Аноним 05/03/20 Чтв 01:37:43 1623463449
Что почитать про написание красивого и эффективного кода? Смотрю на код других людей на гитхабе, сравниваю со своим и чувствую, будто остальным больно читать то, что я пишу.
Аноним 05/03/20 Чтв 02:16:47 1623470450
>>1623463
Clean code же, хоть и примеры на жабе.
Аноним 05/03/20 Чтв 02:23:00 1623472451
>>1619336
Это вроде неплохой сайт
А где там можно посмотреть решение от авторов?
Аноним 05/03/20 Чтв 02:41:26 1623473452
>>1619211
Это ж не ответы разрабов, а случайные ответы простых студентов
Аноним 05/03/20 Чтв 02:45:35 1623474453
>>1622758
На самом деле магия, не видел чтобы генераторы вставляли прямо как аргумент функции
Аноним 05/03/20 Чтв 02:49:24 1623475454
>>1623474
Если функция жрёт итеры, то что почему нет?
Аноним 05/03/20 Чтв 02:50:59 1623476455
>>1623474
Где ты там видишь генератор? Итерируется строка.
Аноним 05/03/20 Чтв 03:16:17 1623478456
>>1622833
Можно изи запустить питончик на heroku или pythonanywhere.

В прод питон запускается реально заёбисто: добавление всех зависимостей в requirements.txt, docker, gunicorn и nginx.
Это важные навыками для профи питониста, как впрочем и для разраба на любом другом языке.

В любом случае, настраивать весь этот ci/cd адок придётся не очень часто пытаюсь себя успокоить, настроил и хуячишь код.
Чаще приходится писать и читать бизес-логику, а это на питоне код пишется быстрее, чем на других языках.

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

Кстати, в exe тоже можно скомпилить питоновскую прогу и это не очень сложно :)


Гошечка хороша и вакансии в Москве есть и получают Гоферы больше питонистов, но мне кажется она посложнее питона из-за обязательных: асинхронщины, указателей и ссылок.
+ статическая типизация обычно замедляет разработку фич
ну и у гошечки нету django
Аноним 05/03/20 Чтв 03:19:19 1623479457
>>1623476
Кидали уже выше ссылку на спеку generator expression >1622793
там создаётся генератор в 1 строку
Аноним 05/03/20 Чтв 03:19:58 1623480458
>>1623475
я думал выражение генератор должно быть обернуто в еще одни ()
Аноним 05/03/20 Чтв 03:34:51 1623483459
>>1622876
это ж просто перепечатка видоса одного чувака https://youtu.be/9kLI6R0heTQ
Он вроде хорош в питоне, шарит

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

Не обязательно шарить за весь список, если хочешь устроиться джуном.
Если бы я составлял обязательный список, я бы точно выкинул:
1. HTML, CSS, JS - на питоне обычно апихи пишут и если тебя не взяли на fullstack, ты будешь супер мало писать фронт.
2. Асинхронность мало юзается в старых проектах, а кроме легаси джуну ничо больше не доверят :)
3. Тестирование
4. PostgreSQL - глубокое понимание не требуется, главное знать основы SQL и уметь быстро гуглить

Все эти вещи очень важны, но они не фундаментальны и быстро учатся по ходу работы и по необходимости.
Аноним 05/03/20 Чтв 03:37:20 1623485460
>>1622139
>Шутки шутками, пасты пастами, но может ли новичок написать свою имиджборду на джанго?

>написать
>сам
>на питоне

Лол, сделай просто

import django_imageboard

https://github.com/wgoode3/Django-Imageboard
Аноним 05/03/20 Чтв 07:28:53 1623519461
image.png (11Кб, 593x81)
593x81
Мне лучше сразу пытаться так писать код или лучше сначала научиться программировать хоть маленько ? А то у меня пиздец текста а у дяди вона оно как
Аноним 05/03/20 Чтв 08:01:17 1623527462
>>1623485
Слишком просто, я же хотел свой хеллоуворлд сделать
Аноним 05/03/20 Чтв 08:55:33 1623538463
>>1623527
Напиши на фласке свою имиджборду
Аноним 05/03/20 Чтв 09:01:59 1623540464
>>1623459
>для управления всякими штучками на бэкэнде
Для управления штуками в бекенде у тебя есть админка, поставляемая из коробки.
Аноним 05/03/20 Чтв 10:19:13 1623585465
Хочу написать десктопное приложения типа видеоплеера. Но как это сделать на питоне? Откуда брать форму, кнопки и как это всё программировать?
Аноним 05/03/20 Чтв 10:21:40 1623586466
>>1623585
почему на питоне?
ну а вообще очевидно тебе нужен графический фреймворк для питона, хоть тот же ткинтер
Аноним 05/03/20 Чтв 10:27:52 1623591467
>>1623519
классная картинка. Что за дядя?
Аноним 05/03/20 Чтв 10:34:30 1623593468
>>1623519
Не надо. Там ещё любят всё в comprehension заворачивать даже там, где не надо. Пиши проще. Серьёзно.
Аноним 05/03/20 Чтв 10:36:04 1623596469
>>1623585
>типа видеоплеера
Ты уверен, что справишься? Понимание работы плееров есть? Демуксинг там, декодинг, вот это всё.
Аноним 05/03/20 Чтв 10:45:52 1623609470
>>1623586
Потому-что хочу на питоне, ну то есть я понимаю что он не так эффективен в этом даже как делфи,.. Не знаю что ещё взять поэтому плеер, мб сначала мп3, а потом уже и видео.
Одному, без наставника тяжело, постоянно прыгаю с одной книжки на другую и не могу зацепиться за что-то конкретное, если можешь предложить что-нибудь - я буду только рад.

>>1623596
Не уверен, но надо с чего-то начинать.. погуглю как воспроизводить видеофайлы и т.д.

Аноним 05/03/20 Чтв 10:55:57 1623622471
>>1623609
>как воспроизводить видеофайлы
ffmpeg, если вдруг сам не найдёшь. Если не разбираешься, то лучше не берись за это. По ЦОС хотя бы что-то почитай ещё.
Аноним 05/03/20 Чтв 11:03:04 1623630472
Привет, друзья, как отрисовывать полупрозрачный слой поверх всех окон и всего интерфейса как это делают программы типа redshift или f.lux?
Я пробовал делать это при помощи wxPython, а именно wx.ScreenDC но проблема в том, что при движении курсора мыши этот слой в местах прохода стирается, меня такое положение дел не устраивает
Нашёл что-то на стэковерфлоу но не знаю как это использовать и есть ли для этого какие-то инструменты в Пайтоне https://stackoverflow.com/questions/1025412/how-does-f-lux-work
Аноним 05/03/20 Чтв 11:23:26 1623644473
Аноним 05/03/20 Чтв 11:33:46 1623659474
>>1623586
>хоть тот же ткинтер
А есть еще кроме него другие?
Аноним 05/03/20 Чтв 13:03:30 1623770475
>>1616384 (OP)
Посоветуйте материала по тестам по этому же языку. Хочу вкатится, понять что к чему и для чего нужно. Заранее спасибо, змеякi!
Аноним 05/03/20 Чтв 13:16:39 1623783476
>>1623659
Толсто
Qt как минимум
Аноним 05/03/20 Чтв 13:38:32 1623796477
Аноним 05/03/20 Чтв 13:39:19 1623797478
>>1623783
Спасибо.
А в каком то из них есть конструктор форм? Чтобы рисовать окошки-кнопочки, а не текстом их выписывать?
Аноним 05/03/20 Чтв 14:08:50 1623821479
Сегодня первый собес на позицию джанго джуна. Волнуюсь пиздец как. Какие вопросы вам задавали? Что чаще спрашивают и что стоит повторить?
Аноним 05/03/20 Чтв 14:18:19 1623836480
>>1623797
Visual Basic 6.0
Будь мужиком, ибо через код формошлепить быстрее
Аноним 05/03/20 Чтв 14:33:59 1623850481
>>1623821
Что такое сортировка пузырьком и вопрос читал ли я Кнутта.
Аноним 05/03/20 Чтв 14:51:05 1623865482
Ух бля, срачи по поводу 80 символов. Уникальная для питона тема. Не одна тысяча человекочасов на это потрачено.
Аноним 05/03/20 Чтв 14:51:27 1623866483
>>1623483
Спасибо за ответ, я уже работаю джуном, но посчитал что это видео довольно полезно, что бы выделить для себя некие направления дальнейшего развития, как по твоему, что еще можно было бы посмотреть/потыкать для этого стека, помимо того, что он озвучил?
Аноним 05/03/20 Чтв 14:52:11 1623868484
>>1621865
Уже можно pythonloc/piploc. Будет как в npm.
Аноним 05/03/20 Чтв 14:54:55 1623874485
>>1621745
Какой придётся. Допустим есть мод для майнкрафта написанный на скала, нужна скала. Другие игоры требуют луа для моддинга. Если писать с нуля то мне проще на питоне, если ускорить надо, то проще модуль на си написать для того же питона. Душа лежит к расту.
Аноним 05/03/20 Чтв 14:57:37 1623876486
>>1621711
Потому что байткод интерпретируется. Там цикл и большой свитч по опкодам. Java и C# тоже могут работать в режиме интерпретатора, но они включают JIT и на лету компилируют фрагменты байткода в нативный машинный код. Разделение на компилируемые-интерпретируемые языки не всегда чёткое в общем.
Аноним 05/03/20 Чтв 15:00:42 1623878487
>>1621673
Можно try, более строго будет использовать регекс. isdigit будет медленно и громоздко. try сработает как надо в большинстве случаев. Регекс нужен если тебе надо оставить число строкой, но при этом быть уверенным что там записано число и в точном формате, без подчёркиваний и плюсов например.
Аноним 05/03/20 Чтв 15:03:44 1623879488
>>1621611
Если тебе нужно параллельно перемалывать что-нибудь на CPU в питонячем коде, то мультипроцессинг. Любой ввод-вывод (диск, сеть) и числодробилки на си вроде numpy умеют отпускать GIL и мультитрединг будет работать.
Аноним 05/03/20 Чтв 15:07:09 1623881489
>>1621593
Это всего лишь константа, которую ты можешь использовать как специальное значение. Например задавать какие-нибудь неполные значения вот так: [4, ..., 8]. Естественно в коде тебе нужно будет самому обработать эллипсис и вставить недостающие числа.
Аноним 05/03/20 Чтв 15:11:56 1623886490
>>1623821
Что такое индексы в БД, какие алгоритмы там используются, для чего они нужны.

Почему плохо считать количество строк как len(Model.objects.all())

Чем отличаются GET и POST запросы. Почему нельзя всё делать с помощью GET.
Аноним 05/03/20 Чтв 15:32:24 1623901491
изображение.png (94Кб, 943x816)
943x816
Посоветуйте хороший учебник по питону. Сейчас читаю Think Python и такое чувство, что автор вообще не понимает, для кого создается этот учебник. Очень странная структура типа пикрелейтед (сначала применяется вызов значения по ключу, а потом рассказывают, что такое вообще есть и называется лукапом), из-за чего теряется какая-то часть понимания происходящего. Задачи по логике убивают и вместо того, чтобы условно рассказать, как выполняется задача = дается простой ответ и все.
Короче хуй знает, почему этот учебник всем советуют. Может есть какой нибудь более подробный? Советовали Diving in to Python и Лутца.
Аноним 05/03/20 Чтв 15:39:34 1623909492
Аноним 05/03/20 Чтв 16:06:55 1623932493
>>1623850
так сортировку пузырьком в 9-10 классе проходят лол
Аноним 05/03/20 Чтв 16:17:12 1623947494
Ну что, аноны, взять для копилочки треда?
https://nnfs.io/
Аноним 05/03/20 Чтв 16:23:12 1623952495
Аноним 05/03/20 Чтв 16:41:35 1623972496
>>1623901
Из тех что я читал больше всего зашел "Рамальо Лучано - Python. К вершинам мастерства", но он не совсем хорош для начинающих.
Аноним 05/03/20 Чтв 16:53:28 1623980497
>>1623947
Это в нейронкотред
Аноним 05/03/20 Чтв 16:55:56 1623984498
>>1623980
Но я думал, что местным анонам тоже было бы интересно.
Аноним 05/03/20 Чтв 17:09:11 1624012499
>>1623984
Закинуть ты можешь, но это более специфично не для языка, а для нейронок вообще
Аноним 05/03/20 Чтв 17:12:47 1624015500
Товарищи, помогите.
Нужно написать передачу данных на ардуинку с малины через блютус, на питоне.

Перерыл гугел, и что-то не нашел.
Аноним 05/03/20 Чтв 17:14:17 1624017501
>>1624015
Только циферку передать, мне будет достаточно.
Аноним 05/03/20 Чтв 17:22:17 1624028502
>>1624012
Окай, подумою, к следующему треду может и куплю.
Хуй 05/03/20 Чтв 17:48:13 1624060503
Начала изучать python пару недель назад. Есть задача.Напишите программу, которая убирает из списка повторяющиеся элементы. Программа должна запрашивать на вход слова, каждое с новой строки, пока пользователь не введет пустую строку. Затем должна выводить список без повторяющихся элементов.
Решил хотя бы вывести список
b = []
while True:
text = input()
b.append(text)
if not text:
break
print(b)
а вот как из него дубли убрать я хз что-то. Подскажите аноны добрые !
Аноним 05/03/20 Чтв 17:55:52 1624076504
>>1624060
if text not in b:
b.append(text)
Можно в конце прогнать через сет и обратно в список, например.
Аноним 05/03/20 Чтв 17:59:25 1624085505
>>1624076
Спасибо. Есть без set ?
Аноним 05/03/20 Чтв 18:00:59 1624091506
>>1624085
Ну опять же, for с тем же условием, что выше.
Т.е. закидывать в новый список только то, чего там нет.
Аноним 05/03/20 Чтв 18:11:55 1624106507
Аноним 05/03/20 Чтв 22:14:11 1624528508
>>1623878
Понял, спасибо большое
Аноним 05/03/20 Чтв 23:55:26 1624673509
Хочу сделать пару проектов на питоне, какие веб фреймоврки/либы сейчас используются в индустрии? Или можно есть что-то, на что можно обратить внимание, хотя оно и сильно используется.
Аноним 06/03/20 Птн 01:36:36 1624735510
.JPG (55Кб, 866x707)
866x707
Есть ли какой-то способ заменить выделенные две строки одним выражением в return?
Аноним 06/03/20 Птн 01:41:47 1624739511
.JPG (13Кб, 422x310)
422x310
>>1624735
Чтобы было понятно, возвращать должно было бы вот такую штуковину.
Аноним 06/03/20 Птн 01:47:22 1624747512
Стикер (319Кб, 433x380)
433x380
>>1624735
Но у тебя ретёрн ничего не возвращает, у тебя функция сама всё печатает
Аноним 06/03/20 Птн 01:49:08 1624750513
>>1624747
Мне как раз нужно, чтобы то, что напечатано через цикл, печаталось через return как целая строка.
Аноним 06/03/20 Птн 01:50:14 1624751514
>>1624750
> печаталось через return
возвращалось*
Аноним 06/03/20 Птн 01:51:15 1624752515
>>1624751
Ну возвращай темп лист, он же у тебя готовый уже.
Аноним 06/03/20 Птн 01:51:51 1624753516
>>1623947
что за реклама -_-
алсо в том же грокаем глубокое обучение вообще показано как свой нейрофреймворк сделать лол
Аноним 06/03/20 Птн 01:54:41 1624755517
>>1624752
Лист нельзя. По сути нужно вернуть многоуровневую строку, где каждый уровень - это один из вложенных в лист листов, конвертированный в строку.
Аноним 06/03/20 Птн 01:54:58 1624756518
>>1624739
"\n".join([" ".join(i) for i in k])
Аноним 06/03/20 Птн 01:56:07 1624757519
Аноним 06/03/20 Птн 01:56:22 1624758520
>>1624755
Почему нельзя? Или можешь отформатированную строку вернуть.
Аноним 06/03/20 Птн 01:57:26 1624760521
>>1624758
Потому, что там "__str__" в методе.
Аноним 06/03/20 Птн 04:46:36 1624800522
Хелп, пишу скрипт. Надо скопировать кучу файлов с ЖД на телефон/планшет, через usb, но как узнать путь до телефона, у таких устройств нет буквы!
Аноним 06/03/20 Птн 05:05:15 1624806523
>>1624800
Там можно поднять фтп, а на фтп уже легко залить.
Аноним 06/03/20 Птн 05:08:04 1624808524
>>1624753
Не реклама, просто открыл свой акк на кикстартере и там в закладках оно.
Гляну что за книга, первый раз слышу.
Аноним 06/03/20 Птн 09:49:18 1624869525
>>1624091
Что можешь сказать про такое решение ? b = []
while True:
text = input()
b.append(text)
if not text:
break
print(b)
from itertools import groupby
new_b = [el for el, _ in groupby(b)]

print(new_b)
Аноним 06/03/20 Птн 10:37:53 1624894526
Screenshot29.png (2Кб, 425x78)
425x78
Screenshot31.png (1Кб, 252x64)
252x64
ребят. почему принт может так ругаться? (я током лечусь)
Аноним 06/03/20 Птн 10:51:00 1624898527
Аноним 06/03/20 Птн 10:52:10 1624901528
image.png (5Кб, 283x89)
283x89
Аноним 06/03/20 Птн 13:02:06 1624979529
>>1624806
Чем поднять, руками? На каждом планшете? Тогда зачем python-ом копировать, если можно сразу руками. Хуйню ты какую-то сказал неподумавши.
Аноним 06/03/20 Птн 13:26:47 1624995530
>>1624800
Как ето нет буквы. Была же.
Аноним 06/03/20 Птн 14:12:08 1625019531
Аноним 06/03/20 Птн 14:18:47 1625023532
Аноним 06/03/20 Птн 14:35:36 1625028533
>>1624979
Ну проводок ты же руками подключаешь и ничего, не помер.
Надо детализировать задачу.
Аноним 06/03/20 Птн 15:00:08 1625037534
Аноним 06/03/20 Птн 15:16:47 1625048535
Зачем нужен питон, если он такой медленный? Медленнее JS, медленнее PHP, всего медленнее.
Аноним 06/03/20 Птн 15:32:01 1625065536
>>1625048
В питоне медленная математика, это да, сетевые либы написаны хорошо

>медленнее PHP
Настолько медленнее, что лавруха с гигатонной комьюнити на последней быстрой пыхе медленнее джанги
Аноним 06/03/20 Птн 15:45:02 1625074537
Почему изменяемый объект не может быть ключем в словаре? Ну изменится хеш при изменении этого объекта, и дальше-то что? Не трагедия же
Аноним 06/03/20 Птн 15:59:32 1625091538
>>1625074
Он изменится извне, а в словаре будет старый, так что ты больше не сможешь извлечь его значение.
Аноним 06/03/20 Птн 16:09:28 1625104539
>>1625074
>Почему изменяемый объект не может быть ключем в словаре?
Может, если реализуешь __hash__
Аноним 06/03/20 Птн 16:34:03 1625129540
vdfvdfvdfvdfvdf[...].PNG (25Кб, 884x770)
884x770
Cижу собираю ромбик вложенными циклами уже 2дня, если бы не ваша моральная и ментальная поддержка давно бы уже бросил всё.
Аноним 06/03/20 Птн 16:39:06 1625133541
>>1625129
А какая задача стоит?
Чего сложного?

Хотя я сюда попал не знаю как, и предпочитаю си.
Аноним 06/03/20 Птн 16:42:21 1625136542
>>1625133
Там вообще залупа. Я уверен есть простое решение но я собираю эту хуйню по кусочкам как даун. Только моральная поддержка двача и спасает. Кстате тебе маны не залить через ментальный фаллос ?
Аноним 06/03/20 Птн 16:43:12 1625137543
>>1625104
Ты не понял... я про изменяемость как таковую. Я уже писал свой лист с
__hash__(self): return 1
Все работало без эксепшнов. Вопрос в том почему изменяемые объекты в принципе не используют как ключи? Вот могу я например реализовать хеш-алгоритм по которому из всех элементов списка создается строка и потом вычисляется ее хеш
Аноним 06/03/20 Птн 16:44:14 1625140544
>>1623472
Решаешь задание, в конце выдает вариант разрабов и несколько случайных.
Аноним 06/03/20 Птн 16:56:07 1625145545
>>1625137
Потенциальная неоднозначность, ты сохранил лист как ключ и можешь изменить этот же объект в любом другом месте кода.
Аноним 06/03/20 Птн 16:56:31 1625146546
>>1623866
Привет, а какие вопросы тебе на собеседовании задавали? По каким темам гоняли? Портфель с гитхаблом просили?
Аноним 06/03/20 Птн 17:21:39 1625178547
unnamed.jpg (91Кб, 487x512)
487x512
>>1625129
Лови мой вариант.
Подозреваю, что можно вообще четенько. Я нахуевертил из того, что пока знаю.

n = 5
width = n2 + 1

for x in range(width):
sign = -1 if x > n else 1
diff = n - ((n-x)
sign)
x1, x2 = n - diff, n + diff+1
row = [' '] width
row[x1:x2] = range(x1, x2)
print(
row)
Аноним 06/03/20 Птн 17:23:05 1625181548
Анончики, есть тут те, кто уже устроен и имеет опыт, можете рассказать о необходимых знаниях и ваших повседневных задачах, желательно бы услышать истории от бэкендеров, но можно и от других.
Аноним 06/03/20 Птн 17:23:12 1625182549
Аноним 06/03/20 Птн 17:30:57 1625194550
>>1625181
Главное иметь большой мочевой пузырь. Бесплатный кофе и печеньки это как минимум + 15% к зарплате.
Аноним 06/03/20 Птн 17:44:44 1625210551
>>1625181
Ну смари малёк, одно правило. Готовь очко. ГОТОВЬ АНУС ПАДЛА.
Аноним 06/03/20 Птн 17:45:37 1625214552
Привет. Написал переписал код калькулятора, кнопки не работают. В чём проблема?

https://ideone.com/2Ub9Wv
Аноним 06/03/20 Птн 17:56:35 1625227553
>>1625214
Подозреваю, что в этом
command=cmd
Дальше не смотрел.
Аноним 06/03/20 Птн 18:07:44 1625239554
>>1625129
Дружище, тебе бы математикой позаниматься немного для развития мышления.
Аноним 06/03/20 Птн 18:15:32 1625248555
>>1623400
Пойдёт, подумал же о нём. Но во всякие одноразовые скрипты не потянешь же.
Аноним 06/03/20 Птн 18:17:28 1625250556
Screenshot2.png (337Кб, 1663x873)
1663x873
>>1625227
По видео всё верно.
> command=cmd
Как написать по-другому?
Аноним 06/03/20 Птн 18:21:47 1625252557
>>1625250
По идее, это обработчик ивентов, у тебя эта функция называется по-другому.
Аноним 06/03/20 Птн 18:32:20 1625259558
>>1625239
Кстати, как развить логику? У вас с этим все в порядке?
Аноним 06/03/20 Птн 18:34:03 1625262559
>>1623909
Спасибо за наводку. Пробежался мельком, вроде неплохо. Буду знакомиться ближе.
Аноним 06/03/20 Птн 18:51:13 1625271560
>>1625252
А, там есть лямбда. Я тупанул, лол.
Аноним 06/03/20 Птн 19:02:34 1625272561
>>1625250
В общем, я почитал детальнее, у тебя только три варианта отрабатывается
if key == "=":
elif key == "C":
elif key == "-/+":
Аноним 06/03/20 Птн 19:05:04 1625275562
image.png (55Кб, 1162x908)
1162x908
Аноним 06/03/20 Птн 19:09:54 1625278563
>>1625275
Выглядит страшненько, я думаю, можно лучше.
Аноним 06/03/20 Птн 19:13:22 1625283564
>>1625278
А как часто на практике приходится строить ромбы? Ну то есть приходит заказ на 10 ромбов вот оплата, срок неделя.
Аноним 06/03/20 Птн 19:14:58 1625285565
>>1625283
При чём тут практика? Хочется красивый код читать и писать.
Аноним 06/03/20 Птн 19:18:44 1625288566
image.png (14Кб, 602x273)
602x273
>>1625278
так лучше?

>>1625283
никогда, это чисто страдание херней, тебе в принципе на питоне особый функциональный скилл не нужон.
Век здоровья тому кто придумал ООП
Аноним 06/03/20 Птн 19:19:54 1625290567
>>1625288
>так лучше?
Естественно нет, лол.
Аноним 06/03/20 Птн 19:24:15 1625293568
111111111111.PNG (31Кб, 858x807)
858x807
Я уже не человек нахуй, я колдун бля. Осталась верхняя пирамида и демон будет призван
Аноним 06/03/20 Птн 19:26:53 1625296569
>>1625288
Челик скинь настройки своего шрифта, цветов вот этих всего такого это как ты так сделол ? Есть готовые пресеты как у тебя ?
Аноним 06/03/20 Птн 19:27:47 1625297570
>>1625296
Смахивает на дефолтный саблайм.
Аноним 06/03/20 Птн 19:28:15 1625298571
>>1625293
>>1625129
>>1625178

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

Аноним 06/03/20 Птн 19:29:58 1625300572
image.png (18Кб, 539x309)
539x309
>>1625296
Там есть пара дефолтных пресетов
Аноним 06/03/20 Птн 19:32:55 1625302573
>>1625298
В реальном коде да, а в таких быстрохаках лень сочинять.
Аноним 06/03/20 Птн 19:39:25 1625307574
>>1625288
> никогда, это чисто страдание херней, тебе в принципе на питоне особый функциональный скилл не нужон.
Вот и я о том же. Практической пользы от таких заданий никакой, если только для общего понимания и принципа работы. Это я с дивана рассуждаю.
Аноним 06/03/20 Птн 20:05:10 1625316575
fzl06roer9l11.jpg (98Кб, 640x989)
640x989
Это уже ближе к идеалу, я доволен.
https://pastebin.com/dP8EtRe6

Ещё бы гуры подтянулись и показали класс, лол.
Аноним 06/03/20 Птн 20:53:31 1625356576
>>1625316
Короче во первих вот эти квадратные скобки нельзя использовать такое я не прохоил еще и она должна быть с вершиной посередине
Аноним 06/03/20 Птн 20:56:44 1625362577
Перекатите кто нибудь, братцы...
Аноним 06/03/20 Птн 20:57:16 1625364578
>>1625356
Ну скобочки легко развернуть в цикл.
Про вершину не понял.
Аноним 06/03/20 Птн 20:58:07 1625366579
>>1625272
>>1625271
>>1625252
>>1625227
Спасибо за ответы, всё равно не понял что не так. Зацикливаться на этом не буду, лучше двигаться дальше.
Аноним 06/03/20 Птн 22:50:30 1625513580
A = {}
for w in input().split():
A[w] = A.get(w, 0) + 1
print(A[w] - 1, end=' ')

Через сколько времени вы смогли бы самостоятельно до такого додуматься? Я вот вообще не бум-бум, хотя только материал по теме прочитал. Возможно стоит чаще смотреть в чужой код, а не часами велосипед придумывать.
Аноним 06/03/20 Птн 23:16:00 1625556581
>>1625513
Со split дурацкий хак, а так всё довольно очевидно.
Или там предпологается вводить много значений?
Аноним 06/03/20 Птн 23:17:51 1625558582
>>1625556
Если ты введёшь одно значение, то оно тебе напечатоет только
0
и всё.
Оно считает и печатает одинаковый ввод, но я не очень понимаю применение этой функции.
Аноним 06/03/20 Птн 23:21:37 1625560583
>>1625558
Имело бы смысл запускать его зацикленным, а так один подход, так что я подумал, что это такой способ тримнуть ввод, лол.
Аноним 06/03/20 Птн 23:32:12 1625571584
>>1625558
>>1625556
Изначально условие было таковым:
В единственной строке записан текст. Для каждого слова из данного текста подсчитайте, сколько раз оно встречалось в этом тексте ранее.
Словом считается последовательность непробельных символов идущих подряд, слова разделены одним или большим числом пробелов или символами конца строки.

> one two one tho three
> 0 0 1 0 0

Смотришь на решение и все кажется таким очевидным, но это сейчас, до этого ступор был.
Аноним 06/03/20 Птн 23:37:14 1625582585
>>1625571
Эта задачка явно под списки и count.
Аноним 06/03/20 Птн 23:40:17 1625590586
>>1625582
Вряд ли. В общем виде "сколько раз оно встречалось" в питоне красивее всего решается через defaultdict, так что сомневаюсь, что здесь надо городить списки.
Аноним 06/03/20 Птн 23:45:41 1625598587
>>1625590
Из базовых типов оно как-то очевиднее, чем предложенное аноном решение.
Но может и под специальные, да.
Аноним 06/03/20 Птн 23:49:07 1625610588
>>1625598
Как тебе очевидно? Мне представляется, что сколько что-то встречалось естественным образом перетекает в пары объектов: Что и Сколько_раз. А это дикт. Как ты списком хочешь это представить?
Аноним 06/03/20 Птн 23:51:02 1625619589
>>1625610
Наращиваем список и считаем по ходу.
Аноним 06/03/20 Птн 23:51:08 1625620590
>>1625582
Не могу судить, но конкретно решение которое я выкладывал выше считается рекомендованным.
Аноним 06/03/20 Птн 23:52:46 1625623591
изображение.png (47Кб, 1202x726)
1202x726
>>1625571
Я тут на днях задачку решал, необходимо было вывести все слова которые НЕ повторяются. Сейчас добавил в неё буквально одну переменную и одно действие, чтобы она считала колличество повторений каждого слова, вышло пикрил
Аноним 06/03/20 Птн 23:53:06 1625624592
>>1625619
Чем наращиваем? Куда считаем? Вот у него дикт: попалось слово, он его взял в качестве ключа, и дал ему значение 1. Попалось ещё раз? Прибавил к значению 1.
Аноним 06/03/20 Птн 23:59:26 1625641593
>>1625623
Замени хотя бы свою адовую symbols на
import string
string.punctuation
Аноним 07/03/20 Суб 00:00:36 1625645594
>>1625641
Не знал такого модуля, но вабще задание надо было без подобных модулей пилить
Аноним 07/03/20 Суб 00:02:22 1625651595
>>1625645
Ну, допилился, у тебя '\' нет, например. В любом случае, не заебался кавычки и запятые ставить? Сделал бы хоть единой строкой эту толпу.
Аноним 07/03/20 Суб 00:03:09 1625653596
Аноним 07/03/20 Суб 00:09:48 1625666597
>>1625653
Надеюсь ты понимаешь, что для строк длиннее 5 слов результат станет менее интересным? Лукап по дереву словаря станет существенно быстрее, чем каждый раз бегать по всему листу с подсчётом. Надо чекнуть дефолтдикт для полноты картины.
Аноним 07/03/20 Суб 00:13:36 1625669598
Кстати, а как можно сделать, чтобы из инпута сразу в словарь добавлялось? Захотелось допустим два слова через пробел ввести, а они потом в качестве двух ключей остались. И так много раз.
Аноним 07/03/20 Суб 00:14:10 1625670599
>>1625666
При
tstr = 'one two one two three ' * 10

уже
6.746952266
11.926739449000001

Я догадывался, что так будет, да.
Аноним 07/03/20 Суб 00:19:31 1625684600
>>1625669
Ну вон через гет нормальный способ.

>>1625670
Дефолт дикт ещё даже медленне для этого оказался.
Аноним 07/03/20 Суб 00:19:40 1625685601
Познаю ООП и это чет изотерика пиздец после простой как две палки функциональщины.
Аноним 07/03/20 Суб 00:22:03 1625692602
>>1625684
>Дефолт дикт ещё даже медленне для этого оказался.
Хотя нет, на 3й знак, но побыстрее
https://ideone.com/orahSi
Аноним 07/03/20 Суб 00:28:58 1625709603
>>1625623
Пиздос, как же уебищно выглядит этот пичарм из коробки, от цвета комментариев аж глаза заболели
Аноним 07/03/20 Суб 00:33:48 1625728604
изображение.png (38Кб, 1220x618)
1220x618
>>1625641
Ну хуй с тобой, уговорил. Заменил ручной тупл на string.punctuation

Аноним 07/03/20 Суб 00:35:26 1625733605
Аноним 07/03/20 Суб 00:54:41 1625760606
>>1625684
> Ну вон через гет нормальный способ.
Добавить добавил, но два слова в один ключ переводит. Нужно сплит воткнуть, скобки или что-то еще?
Аноним 07/03/20 Суб 00:59:55 1625767607
>>1625760
>но два слова в один ключ переводит.
Два одинаковых слова?
Аноним 07/03/20 Суб 01:02:44 1625771608
>>1625767
Неа, разные. Hi Bye, например. Даже загуглить не знаю как.
Аноним 07/03/20 Суб 01:04:36 1625773609
>>1625771
Понял тебя. Естественно сплит нужен.
> Ну вон через гет нормальный способ.
Я про >>1625513 говорил. Там сплит есть, как видишь.
Аноним 07/03/20 Суб 01:08:09 1625777610
image.png (49Кб, 967x499)
967x499
>>1625733
Я для небольших скриптов использую вскод, нах этот пичарм нужен, если у тебя проект уровня laba1.py
Аноним 07/03/20 Суб 01:38:23 1625800611
>>1625773
Не могу понять куда именно сплит ставить. Без него только в таком виде работает, но это лишь один ключ.
a = {}
a = a.fromkeys([input()])
Аноним 07/03/20 Суб 01:40:41 1625806612
>>1625800
>Не могу понять
Тогда тебе ещё рано. Изучай другие темы.
Аноним 07/03/20 Суб 01:56:24 1625823613
.JPG (12Кб, 770x203)
770x203
>>1625800
Можно и без сплита. Так, например.
Аноним 07/03/20 Суб 01:57:33 1625825614
.JPG (17Кб, 678x375)
678x375
Кстати, почему здесь так странно считается len()?
Аноним 07/03/20 Суб 01:59:46 1625827615
>>1625825
А, всё, понял.
Просто два раза вызывается input().
Аноним 07/03/20 Суб 02:10:07 1625837616
>>1625825
А вообще реально через дикт компрехеншн одновременно и добавить ключи, и посчитать длину этих ключей?
Аноним 07/03/20 Суб 02:15:24 1625849617
>>1625837
Всё же уже разжевано в обсуждении.
{w:len(w) for w in split().split()}
Аноним 07/03/20 Суб 02:15:49 1625850618
Аноним 07/03/20 Суб 02:18:56 1625856619
>>1625849
А, там такая же задача была, оказывается. Не читал посты выше.
Аноним 07/03/20 Суб 05:50:03 1625894620
>>1625239
Я этим и занимаюсь , решаю задачки из codeforces
Аноним 07/03/20 Суб 05:51:10 1625895621
>>1625239
Но если книжку интересную посоветуешь для такого буду рад, желательно с практикой я если не делаю забываю сразу
Аноним 07/03/20 Суб 10:11:51 1625976622
>>1625239
А впрочем не надо, по пути пойму
Аноним 07/03/20 Суб 10:58:54 1626007623
изображение.png (61Кб, 512x512)
512x512
Сап аноны,
Не могу найти библиотеку для открытия 3d объектов.obj или .fbx для питона. Цель - вертеть 3d объект кодом и сохранять изображение в .jpg.
Буду благодарен за наводки
Аноним 07/03/20 Суб 11:14:38 1626021624
>>1626007
Я там масштабы твоей аппы не очень представляю, но почему бы просто не взять блендер и подёргать его через нативный питоний апи?
https://docs.blender.org/api/current/index.html
Аноним 07/03/20 Суб 11:31:16 1626035625
>>1626021
Насколько понимаю, я тогда буду ограничен blender'ом, а в проекте планируется также использовать opencv и в общем работа с вебкой
Аноним 07/03/20 Суб 11:46:10 1626052626
>>1626035
Ну смари малёк, первое это конечно анал. ГОТОВЬ АНАЛ БЛЕАТЬ!
Аноним 07/03/20 Суб 13:56:56 1626204627
>>1616384 (OP)
Аноны, посоветуйте материалы для вкатывания в асинхронность. Активно курю статейки и видосы по asyncio, но такое чувство, словно чего-то фундаментального не знаю, о чём в них не говорят.
Аноним 07/03/20 Суб 14:29:47 1626244628
>>1626035
>я тогда буду ограничен blender'ом
Да не обязательно.
Ты можешь гонять блендер порождённым процессом, как тут: https://www.youtube.com/watch?v=20nTx1x4nRY
Ты можешь юзать blender as module: https://pypi.org/project/bpy/
И я где-то видел ситуацию, где питон снаружи цеплялся к запущенному блендеру, делал какую-то свою работу, отключался и уходил по своим делам. Но нагуглить не смог.
Аноним 07/03/20 Суб 14:39:42 1626265629
>>1626204
Это сложная тема, её сходу не возьмешь. Нужно некоторое время и практика, чтобы прохавалось.
Аноним 07/03/20 Суб 14:45:28 1626272630
>>1626265
>её сходу не возьмешь
Тогда откуда начать вкатываться и брать идеи для практики?
Аноним 07/03/20 Суб 17:07:49 1626417631
>>1626265
Такой еще вопрос: частенько в вакансиях на бэк идут рядом Джанго и asyncio/aiohttp, но как они блин согласуются? Нормальной асинхронности в Джанге еще не скоро быть, так зачем работодателю обязательно и знание Джанги и знание асинхронок?
Аноним 07/03/20 Суб 18:39:51 1626478632
Способов писать С-код в Питоне больно дохрена. В чем разница между тем же ctypes и Cython? Что из этого профитнее, если я хочу например написать часть кода на С для оптимизации скорости выполнения?
Аноним 07/03/20 Суб 21:23:15 1626622633
sum([i2 for i in range(10000)])
Что это за синтаксис, как гуглить?
Аноним 07/03/20 Суб 21:43:28 1626655634
Аноним 07/03/20 Суб 21:50:04 1626662635
Аноним 07/03/20 Суб 21:50:06 1626663636
Ребята, я не понял. А пичиму в одну строку не выводит?
a = list('a')
if len(a) == 1:
print(a[0],1, end = '')
Аноним 07/03/20 Суб 21:52:28 1626670637
Аноним 07/03/20 Суб 21:53:54 1626674638
>>1626670
Для слитно надо sep='', а не end.
Аноним 07/03/20 Суб 22:00:01 1626687639
>>1626674
Большое спасибо за помощь.
Аноним 07/03/20 Суб 22:31:07 1626758640
Анончики есть какой-нибудь роад мап по пайтону ? я не совсем новичок, знаю теорию по реляционным бд, сетям,
линейному программированию/нелинейному, немного архитектуры, знаю sql, знаком с шарпом,
Аноним 07/03/20 Суб 23:02:59 1626813641
Посоны, вот граф.интерфейс когда Popen-ом что-нибудь вызываешь и ждешь перестает отвечать. Я понимаю почему, но как это исправить? Паралельностью (которую я не знаю)? Если да - то с чего начать? Threading?
Аноним 07/03/20 Суб 23:28:54 1626857642
>>1626813
может скинешь код?
Какую либу юзаешь для интерфейса? Многие либы и фреймворки поддерживают асинхронщину или трединг из коробки
Аноним 07/03/20 Суб 23:38:39 1626879643
а питон силенум скрипты можно запускать из под андроида?
Аноним 07/03/20 Суб 23:57:49 1626909644
>>1626417
>asyncio/aiohttp, но как они блин согласуются?
Ты на aiohttp можешь полноценный сервер написать
Аноним 08/03/20 Вск 00:02:08 1626917645
>>1626909
Нахрена в 2к20 писать свои серверы?
Аноним 08/03/20 Вск 00:04:24 1626924646
>>1626917
Ну я бек имел в виду.
Аноним 08/03/20 Вск 00:19:28 1626940647
>>1626478
Если ты хочешь писать на C, в прод, то конечно ctypes лучше. Он и поддерживается официально из коробки и выполняет именно то что ты хочешь - позволяет юзать сишный код в питоне

Но писать на Сишке...не очень интересно, поэтому есть cython, который позволяет писать почти как на питоне, но и немного как на си

Зачем вообще оптимизировать код на питончике?
Аноним 08/03/20 Вск 00:45:53 1626963648
>>1626940
>Зачем вообще оптимизировать код на питончике
Потому что я пизданутый байтоеб
Аноним 08/03/20 Вск 01:04:14 1626967649
>>1626857
tkinter. А какой смысл скидывать? Просто вот у меня например tar архивирует файлы и я жду пока он закончит чтобы получить returncode из-за этого зависает, но так с любой другой программой будет.
Аноним 08/03/20 Вск 01:17:59 1626971650
>>1626963
зато честно))

ну значит сишка для тебя отлично подходит
Аноним 08/03/20 Вск 13:20:26 1627254651
А ну перекатили быстро
Аноним 08/03/20 Вск 13:25:38 1627255652
>>1627254
Возьми и перекати. Шапка есть в шапке
Аноним 08/03/20 Вск 13:43:04 1627270653
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов