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


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

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

Питон тред #67 /python/ Аноним 02/09/19 Пнд 18:27:12 14659261
aef9dc4cb286d79[...].jpg (64Кб, 640x480)
640x480
1pNm4PvawsLA-w.png (106Кб, 800x484)
800x484
fasterforloophe[...].png (33Кб, 600x250)
600x250
Тред, посвящённый языку программирования Питон

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

ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat - по идее с этого надо начинать, прежде чем вопросы задавать, но аноны бугуртят, что это говно мамонта.

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


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

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

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

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

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

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

Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылке в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
Аноним 02/09/19 Пнд 18:29:22 14659282
Аноним 02/09/19 Пнд 19:03:41 14659483
изображение.png (11Кб, 464x342)
464x342
DSC06511.JPG (2021Кб, 3226x1815)
3226x1815
DSC06512.JPG (1864Кб, 3226x1815)
3226x1815
>>1465926 (OP)
Заньюфажился в тред, котаны. Мне тут пришли няшные Node-mcu, сейчас освою учебничек ПРОХОРЁНКА и буду катать умный дом на малинке и нодах с использованием MicroPython :3
Аноним 02/09/19 Пнд 19:16:47 14659514
Сап, пр.
Питонисты джангисты, подскажите, чего почитать и посмотреть, чтоб в джангу вникнуть.
В питоне опыт есть некоторый, последние 2 года круды на экспрессе писал, а тут предстоит на проект с джангой перейти. Как не совсем обосраться?
Аноним 02/09/19 Пнд 19:20:39 14659525
>>1465892
>которые учат что-то по несоответствующей документации
>причем винят не себя, а сложнойсть фреймворка
Что за хуйню ты себе навыдумывал? Тратят попытки у него, охуеть. Второй абзац в моем посте тебе ничего не сообщил? Была попытка разобраться без гугла путём пердолинья джанги - не получилось, пошел в гугл. Вывод - не нужно пытаться что-то сделать самому пока не получил начальные знания, понимание концепции в целом.
> Пиздец. Хорошо, что таких долбоебов максимум на стажера возьмут, а потом нахуй выкинут.
Имплаин я пытаюсь вкатиться на должность, а не от нехуй делать раз через раз ковыряюсь в этом вашем питоне.
Пиздец ты инфантил, не надо так
>>1465903
>мам смотри я знаю англицкий!
Блядь, сейчас этим хвастаться такое себе - любой бомж с подворотни нынче знает английский язык, другое дело что осваивать абсолбтно новые для себя штуки легче на нативном языке для не профессиональных погромистов, конечно
Аноним 02/09/19 Пнд 20:05:23 14659686
Аноним 02/09/19 Пнд 20:16:49 14659747
Обычно я встречал только подобное:
parameter = "?rel_rhy=jingle"
req = requests.get('https://api.datamuse.com/words' + parameter)


Почему тут такой странный синтаксис?
parameter = {"rel_rhy":"jingle"}
request = requests.get('https://api.datamuse.com/words',parameter)



Как это работает? Словарь подставляет ? перед rel_rhy и = перед jingle
Аноним 02/09/19 Пнд 20:33:26 14659838
>>1465974

Если правильно понимаю вопрос, то иногда набор параметров заранее не известен, и если он у тебя в словаре, то переделать в urlencode его достаточно просто:

params = {"key1": "value1", "key2": "value2"}

url = "http://example.com?" + "&".join(["{}={}".format(p[0], p[1]) for p in params.items()])

# url = "http://example.com?key1=value1&key2=value2"
Аноним 02/09/19 Пнд 20:35:09 14659849
>>1465983

Разумеется, в реальности всё сложнее, тут не учтены запрещённые символы, вроде "+" и прочего. Поэтому напрямую этот код никто не пишет, все вызывают специальную функцию из ${framework_name}. Да и в стандартной либе это есть.
Аноним 02/09/19 Пнд 20:42:50 146598710
>>1465984
Ох, я еще больше запутался. Но спасибо за ответ.

Это же requests либа только умеет обрабатывать такой синтаксис, как я понимаю.
Эксперементировал в конкатенации со str и dict и не вышло ничего.
Аноним 02/09/19 Пнд 20:43:09 146598811
аноны, подскажите нюфагу как через срезы и простые if,for,while реализовать такую задачку: нужно преобразовать заданную строку (например coooccck) в другую строку (c1o3c3k1). как это лучше сделать?
Аноним 02/09/19 Пнд 20:46:20 146599012
>>1465988
При помощи модуля re, изучай - там в двух словах не объяснишь, у него формат вабще крайне сложный.
Аноним 02/09/19 Пнд 21:37:25 146601713
yw8nBCC.png (15Кб, 731x347)
731x347
DszL2Pt.png (3Кб, 296x99)
296x99
В Джанго (на хтмл страничке) можно как-то реализовать такой проход (пик1) по словарю без использования items()? По идее должно быть на пик 2, но нет, нихуя не работает.
Аноним 02/09/19 Пнд 22:05:25 146602814
>>1465988
Циклом пройти по строке, считая каждый раз количество повторяющихся символов и вставляя это количество после первого символа вместо всех остальных. Вставлять можно срезами+конкатенацией строк. Короче бери и делай, дальше только вместо тебя всё написать.
>>1465990
Очевидно это задача на алгоритмы, а не регулярные выражения, там даже указано, что использовать можно.
Аноним 02/09/19 Пнд 22:25:45 146603915
>>1465968
Спасибо, анон, почитаю
Аноним 02/09/19 Пнд 22:28:31 146604016
>>1465988
>как это лучше сделать?
А чем лучше операций меньше использовать, как измерять лучшесть?
02/09/19 Пнд 22:35:05 146604217
>>1465988
out = [st[0]]
num = 1
for i in st[1:]:
__if i == out[-1]:
____num += 1
__else:
____out += num
____num = 1
____out += i
out += num
out = ''.join(map(str(out)))
Аноним 02/09/19 Пнд 23:00:08 146605418
>>1465987

Лучше полагаться на то, как это делает requests сама. Конкатенация, как уже сказано, неправильно обрабатывает спецсимволы.
К тому же, конкатенация может прокатить только с get-запросом. Post ты через url не передашь, а requests сама сделает это за тебя, тебе остаётся только словарь передать вторым аргументом.
Аноним 02/09/19 Пнд 23:04:21 146605719
screen.png (2Кб, 395x81)
395x81
>>1466042

Твой скрипт ведёт себя очень странно.
02/09/19 Пнд 23:08:01 146605920
>>1466057
Сори, не запускал, видимо какой-то неявный эффект.
Аноним 03/09/19 Втр 00:10:13 146609621
Достоный перекат, ОП - хуй, но хороший такой хуй.

>>1466017
> {{ d.key.key_nested }}
Ты пишешь ерунду
Сделай просто
> {{ key_nested }}
Аноним 03/09/19 Втр 00:15:41 146610022
>>1466096
Нафига мне ключ? Мне значение нужно
Аноним 03/09/19 Втр 00:54:33 146610923
>>1466100
> Нафига мне ключ?
А нафиг ты по ключам итерируешься?
Итерируйся по значениям или ключу+значению.
Аноним 03/09/19 Втр 01:07:02 146611124
>>1466109
Ну раз спрашиваю, значит нужно. Вроде как ничего сложного и необычного в этом нет, но возможность так делать почему-то, как я понимаю, отсутствует.
Аноним 03/09/19 Втр 01:14:26 146611525
>>1466111
Потому что ты глупость пытаешься сделать.
Я уже написал, что если хочешь ключ - итерируйся по ключу, если хочешь значение - по значению, если надо и то, и то - юзай и то, и то.
Ты или свой кейс показывай(возможно тебе вообще не словарь пригодился бы) или ебись сам.
Аноним 03/09/19 Втр 01:23:35 146611626
>>1466115
Тут и ебаться не с чем. Уже сделал костылем ака .values(). Джанго говно.
Аноним 03/09/19 Втр 01:25:01 146611727
>>1466116
Лел.
Есть ещё Jinja2, попробуй её.
Аноним 03/09/19 Втр 08:36:12 146617128
Почему создание list такое долгое?
Собираю список элементов из 5к объектов за 4секунды

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

Как обрабатывают листы по 1кк элементу?
Аноним 03/09/19 Втр 08:51:48 146617729
>>1466171

Взять го?

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

Попробуй модуль array.
Аноним 03/09/19 Втр 08:54:59 146617930
>>1466177
Ну или Rust

Так вот Array не позволяет закинуть туда объекты?
Аноним 03/09/19 Втр 08:56:34 146618031
>>1466179
ну и еще у объектов переопределен метод __eq__, что увеличивает время проверки для List comprehension
Аноним 03/09/19 Втр 09:10:53 146618532
>>1466171
Списки создаются намного быстрее. Скорее всего у тебя твои объекты создаются очень медленно.

Просто список на 5k объектов будет меньше чем за миллисекунду создан.
Аноним 03/09/19 Втр 09:17:31 146619333
>>1466185
>>1466171
Посмотрел, список из 5k примитивных объектов создаётся за 8ms, а не за 1ms. Но это вместе с созданием объектов, на это ресурсы идут.

1 миллион объектов за 0.85 секунды
1 миллион словарей с одной записью за 0.32 секунды

Это на старом ноуте.
Аноним 03/09/19 Втр 13:35:09 146630334
изображение.png (9Кб, 528x336)
528x336
>>1466171
>Есть какая-нибудь быстрая альтернатива, чтобы можно было оперировать коллекцией по индексу?
Так диапазон же?
Аноним 03/09/19 Втр 13:39:18 146631135
изображение.png (32Кб, 1071x860)
1071x860
Аноним 03/09/19 Втр 14:02:27 146632436
>>1466303
>>1466311
да блеать затрахали уже
сложные объекты у меня создаются, а не единицы ебучие
Аноним 03/09/19 Втр 14:06:34 146632837
>>1466324
ну так а причём тогда тут списки?
Аноним 03/09/19 Втр 14:15:41 146633338
>>1466324

Так оптимизируй создание объектов, а списки, долбоеб
Аноним 03/09/19 Втр 15:02:41 146635639
Поясните за djangogirls и курсы от мозиллы по джанге
Аноним 03/09/19 Втр 16:54:23 146641340
Есть что почитать по поводу создания клиент-серверных приложений на питоне?
Аноним 03/09/19 Втр 19:26:56 146649441
>>1466356
> Djangogirls
Ok
> Курсы от мозилы
Хз
Чем просто книги не устраивают?
>>1466413
Есть, книги по вебу лижат на я.диске
Аноним 04/09/19 Срд 00:21:54 146663742
>>1465926 (OP)
Сап, сертификации после прохождения курсов/специализаций от coursera котируются у HRов при устройстве на первую работу джуном? Вроде же серьезная платформа
Аноним 04/09/19 Срд 00:31:53 146664143
Аноним 04/09/19 Срд 00:53:59 146665244
a = ['123', '3444', '67888']
raz = a.split()
print (raz)

AttributeError: 'list' object has no attribute 'split'
???
Чому ерор? Делаю как в примере https://younglinux.info/python/string.php
Аноним 04/09/19 Срд 01:51:15 146667845
>>1466652
> Делаю как в примере
Делаешь не как в примере. Попробуй просто подумать, что именно ты хочешь сделать? На какие части ты хочешь разбить список строк?
Аноним 04/09/19 Срд 03:30:54 146670646
>>1463789
Друг, ты питон учишь что ли????
Аноним 04/09/19 Срд 08:47:00 146674247
>>1466652
ты пытаешься сплитить список строк, а не строку.
Аноним 04/09/19 Срд 08:53:21 146674448
2019-09-04 (1).png (30Кб, 779x553)
779x553
2019-09-04.png (97Кб, 1920x1030)
1920x1030
Учусь по курсу МФТИ, решаю задачки по задавальнику. В принципе, всё шло более-менее, пока не дошёл до этого.
Единственный успех, полученный мной в задании - закрашивает только первый коридор, но в итоге код становится какой-то слишком объемным. На данный момент после первого закрашивания точка просто врезается и крашится.
Может делал кто, у меня от этих циклов голова уже кипит.
Аноним 04/09/19 Срд 09:01:22 146674649
>>1466744
Голова от циклов болит? Выкатывайся.
Аноним 04/09/19 Срд 09:03:23 146675050
>>1466746
раз подругу посадил на мотоцикл
у нее от страха break цикл
Аноним 04/09/19 Срд 09:16:54 146675451
>>1466750
Видно не туда break пихал. Спасибо.
Аноним 04/09/19 Срд 09:18:36 146675552
Аноним 04/09/19 Срд 09:24:13 146675653
>>1466755
Один из предыдущих вариантов был с break, но прерывал не там где надо.
Аноним 04/09/19 Срд 12:48:52 146681854
>>1466328
>>1466333
Переписал программу на C#
Вместо 8 секунд получил 200 мсек

А вы ебитесь дальше со своими .append
Аноним 04/09/19 Срд 12:50:21 146681955
>>1466818
Был бы не криворуким, получил бы такой же результат в питухоне
Аноним 04/09/19 Срд 12:54:41 146682056
>>1466818
Зато у нас есть секс, а у тебя нет
Аноним 04/09/19 Срд 12:57:41 146682157
>>1466637
И что, в погромировании всем действительно не похуй что ты там накурсировал себе?
Это жеж как корочки из учебных центров получать
Аноним 04/09/19 Срд 13:20:40 146683558
Аноним 04/09/19 Срд 13:56:29 146686159
>>1466744
Только дошел до этого задания. Решил сходу, предыдущее задание у меня вызвало больше проблем.
Аноним 04/09/19 Срд 14:59:45 146697160
Аноны, в каком-то из предыдущих тредов была ссылка на курс каких-то задачек, но я благополучно всё проебал. Есть у кого ссылка? Буду очень признателен.
Аноним 04/09/19 Срд 15:10:23 146698861
Аноним 04/09/19 Срд 16:01:14 146703062
>>1466988
Спасибо большое. То, что надо.
Аноним 04/09/19 Срд 17:33:10 146713163
Аноним 04/09/19 Срд 17:40:49 146713764
>>1467131
можно всего один раз move_right() вызывать
Аноним 04/09/19 Срд 17:47:27 146714565
>>1467137
Первый мув райт нужен чтобы цикл начинать с проверки, а не с движения, так проще с последней клеточкой в главной линии
Аноним 04/09/19 Срд 17:49:12 146714666
>>1467145
Хотя я вижу, что прогу можно переработать, но это я где-то месяц назад делал
Аноним 04/09/19 Срд 17:50:48 146714867
>>1467145
Иногда подмывает пододвинуть кружок к стартовой точке цикла, но если пораскинуть мозгами, то почти всегда можно сразу всё в цикл пихать.
Аноним 04/09/19 Срд 17:55:19 146715168
>>1467148
Ну хз, если подумать концептуально, то цикл должен выполнять задачу внутри вот этой линии, как добраться до первой клетки в линии это не задача главного цикла. Я когда делал, нигде особо это запихивать не пытался
Аноним 04/09/19 Срд 17:55:58 146715369
Кто-нибудь добрался до задания 32? Нихуя не могу понять. Вроде все закрашиваю что нужно, но почему то не засчитывает.
И нафиг там регистр ax? В каком месте предполагается его использование?
Аноним 04/09/19 Срд 18:01:35 146716070
>>1467153
Я тот анон, который месяц назад это делал, тоже помню возникла с регистром проблема, гуглил, потому что непонятно было, что с ним делать. Но саму задачу сейчас я уже особо не помню, могу просто скинуть решение
Аноним 04/09/19 Срд 18:05:41 146716671
Аноним 04/09/19 Срд 18:05:42 146716772
>>1467160
Скин, пожалуйста. Я вроде решил её, но кружок серый, типа "нештатное завершение". Хз, что нужно. Какой-то условие не выполняю, а какое - понять не могу.
Аноним 04/09/19 Срд 18:12:43 146717373
>>1467166
Шика-а-а-ароно.
Разобрался. Только и нужно-то было счетчик поставить в уже готовое своё решение. Уффф!! Осилил таки все задачи робота.

Анон, а ты графические задачи делал дальше по курсу?
Аноним 04/09/19 Срд 18:20:21 146718374
>>1467173
Ага, я делал все задачи из первых 9 практик. В контексте сортировок даже занял второе место в общем зачёте, не хватило одного очка до первого
Аноним 04/09/19 Срд 18:21:41 146718475
Аноним 04/09/19 Срд 18:29:58 146719776
>>1467183
Оу, там еще какие-то соревнования будут? Интересно.
Аноним 04/09/19 Срд 19:14:45 146724177
А кто-нибудь работал с распознаванием QR-кодов с фотографий? Какие есть альтернативы Zbar'у? А то он потрясающе хуево распознает все с реальных снимков (причем обычным телефонным сканером подхватывается отлично).
Аноним 04/09/19 Срд 19:21:34 146724878
>>1467241
Юзал её всё ок было.
Возможно надо вначале через cv2 фоточки коректировать?
Аноним 04/09/19 Срд 19:24:59 146725079
Ребят, а поясните конкретный случай применения классов? Может подскажете какую-нибудь простеньку реальную задачу?

Просто я вот сижу читаю книгу, мануалы на ютубе - там при пояснении классов рассказывают как СОЗДАТЬ МОДЕЛЬ СОБАКИ, или подобную хуйню, с подклассами вроде КЛАСС РЕТРИВЕР(СОБАКА), а в результате тупо создают экземпляр собаки с описанием свойств - тоже самое можно просто вбить в переменную. Какая именно должна стоять задача, чтобы начать описывать объекты экземплярами класса?
Аноним 04/09/19 Срд 19:38:47 146726180
>>1467250
А КАК БУДЕТ ЛАЯТЬ ТВОЯ СОБАКА?
ТЫ СОЗДАШЬ ФУНКЦИЮ КОТОРАЯ ПРИНИМАЕТ СОБАКУ И ЛАЕТ?
Я ХОЧУ ЧТОБЫ РЕТРИВЕРЫ ДЕЛАЛИ ГАВ ГАВ А МОПСЫ РРРРРР!
Аноним 04/09/19 Срд 19:41:18 146726281
>>1467250

Класс - это не только поля, это ещё и методы. Тоже собрался вручную их вбивать?
Вообще, классы удобны тогда, когда у тебя есть несколько логически взаимосвязанных методов и есть общие переменные, которые классы могут использовать.
А с наследованием хороших примеров не ищи, их очень мало. В теории наследование удобно, а на практике используется очень редко.
Аноним 04/09/19 Срд 19:46:01 146726782
>>1467262
>>1467262
Ну тоесть грубо говоря это хранение свойств объектов + их автоматическая обработка? Но всё-же можно конкретный кейс, потому что лающую собаку я могу сделать так:
dog = ['Puttie', 3, 'Retriever]
print(dog[0] + 'make auw-auw')
Мне хочется такой пример, в котором нельзя обойтись без классов
Аноним 04/09/19 Срд 19:55:11 146728383
>>1467267

Прям такого, чтобы нельзя, нет. До появления ООП же как-то писали программы, и ничего.
Классы не дают чего-то принципиально нового, они лишь упрощают моделирование некоторых сущностей. На тех же сях вполне можно написать ряд функций, принимающих одну и ту же структуру, но по-разному с ней работающих.
Не воспринимай классы как что-то фундаментальное. Классы лишь дают новые способы сделать что-то, и всё.
Аноним 04/09/19 Срд 20:15:37 146729784
Зачем перед вызывом корутин писать await, если они всё равно до await не запускаются?
Аноним 04/09/19 Срд 20:17:08 146729985
Аноним 04/09/19 Срд 20:19:25 146730186
>>1467262
>на практике используется очень редко.
Бля, если бы. В книжках написано про синглтоны и фабрики, значит будем их везде юзать. Код стал в три раза длиннее и нечитаемым? Похую.
Аноним 04/09/19 Срд 20:36:50 146731387
>>1467301

Синглтоны и фабрики вообще не про наследование, а про оверинжиниринг. Сюда же ситуации, когда у абстрактного класса только один потомок, когда у интерфейса только одна реализация, и тому подобные.
У наследования очень мало юз-кейсов, и синтетическое их выдумывание ни к чему хорошему не приводит.
Аноним 04/09/19 Срд 20:37:51 146731488
>>1467313

Так, я забыл, что речь про питон, а не про жабу)))
Аноним 04/09/19 Срд 20:39:45 146731689
>>1467314
Да в Питоне не сильно по-другому это всё.
Причём этот оверинжиниринг -- мэйнстрим в разработке, а не косяки отдельных разрабочтиков.
Аноним 04/09/19 Срд 21:53:19 146739390
А вот смотри, анон. Я пробегаюсь циклом for по массиву данных, и на каждый итый объект данных мне нужно вернуть итое значение другого списка при соблюдении некоторых условий. Как мне в цикле указать, что мне в первой итерации нужно вернуть первое значение списка, во второй - второе и так далее?
Грубя говоря, на псевдокоде это выглядит так:
massiv = [1,2,3,4,5,6,7]
spisok = [odin, dva, tri, chetire, pyat, shest, sem]

for i in massiv:
____if i.isdigit:
_________print(spisok)

Но питон, само собой, возвращает ошибку типа.
Как мне сделать, что я хочу - вернуть итое значение списка?
Аноним 04/09/19 Срд 21:54:22 146739491
>>1467393
Хуя, чет макаба сожрала разметку.

for i in massiv:
____if i.isdigit:
_________print(spisok)
Аноним 04/09/19 Срд 21:55:03 146739692
>>1467394
for i in massiv:
____if i.isdigit:
_________print(spisok)
Аноним 04/09/19 Срд 21:56:40 146739893
a8UcAtoRQyE0FxM[...].png (5Кб, 228x100)
228x100
>>1467394
И правда сжирает. Выделил болдом итый объект списка.
Аноним 04/09/19 Срд 21:58:02 146740094
>>1467393
Пройти список по индексу
for i in range(len(list1))
----print(list2)
Аноним 04/09/19 Срд 22:00:08 146740395
изображение.png (18Кб, 812x514)
812x514
>>1467398
1) isdigit - Это строковая функция, а элементы Massive принадлежат типу данных int, тоесть он в данном случае не подходит
2) нумерация элементов списка начинается с нуля, а у тебя в массиве элементы начиная с единицы, тоесть надо сделать -1 к i из массива.
Аноним 04/09/19 Срд 22:00:32 146740496
>>1467400
Блядь, оно сжирает реально символы, ну ты понял, короче
Аноним 04/09/19 Срд 22:03:16 146740697
изображение.png (18Кб, 828x522)
828x522
>>1467398
>>1467393
Ну или если нужна проверка, что i - это целое число, а не хуй от собаки, тогда вот так
Аноним 04/09/19 Срд 22:11:08 146741198
>>1467400
>>1467403
Не, ребзя, это не то.

Вот код зафаршмачил сюда:
https://pastebin.com/3LRDm23k

Мне нужно, чтобы цикл проходился по содержимому жсона, и если там есть consumable с индексом 1 - он присваивал бы ему первое название из списка consumable_name_rus. Если с индексом 2 - то второе и так далее.
В идеале - как мне вообще сделать, чтобы цикл сам перебирал индекса консумаблов? У меня их там десяток штук, и я не хочу расписывать каждый из них через elif.
Аноним 04/09/19 Срд 22:24:56 146742399
изображение.png (47Кб, 1294x854)
1294x854
>>1467411
Я даже понятия не имею что такое джейсон, но если я тебя правильно понял - ты нихуя не понимаешь в циклах и нагородил каких-то костылей
Аноним 04/09/19 Срд 22:25:02 1467424100
>>1467393

А ты беги не по значениям massiv, а по индексам:
for i in range(len(massiv))
ну или
for i, value in enumerate(massiv)
Аноним 04/09/19 Срд 22:34:16 1467429101
Почему в Pycharm нет подсказок команд из импортируемого модуля, пока я руками не напишу первую, и только после этого меняется цвет from/import, и появляются подсказки с новыми командами?
Аноним 04/09/19 Срд 22:40:27 1467432102
>>1467423
>но если я тебя правильно понял - ты нихуя не понимаешь в циклах и нагородил каких-то костылей
Все верно.

Жсон - это JSON, похож на питоновский словарь с парой ключ-значение. Я его распаршиваю и получаю на выходе инфу - есть consumable 1 в количестве 5, consumable 2 в количестве 10 и так далее.
Для распаршивания жсона у меня уже готовы все инструменты и словари с переводом условного "consumable 1" в удобоваримые "рунные амулеты". Единственное, что мне не удается написать - это цикл, который проходит по жсону и заменяет кодированный объект на мой перевод.
>>1467424
Я уже так пробовал. Проблема-то не в том, чтобы индексировать объекты массива, а в том, чтобы под каждый объект этого массива подставить итый объект из списка spisok. Я не понимаю, как в питоне сделать spisok - т.е. чтобы для каждого i цикла брался итый объект списка.
Вторая штука - for i, value in enumerate(massiv) выглядит более правдоподобно, и если i - это элемент massiv, то как мне определить value?
Аноним 04/09/19 Срд 22:43:15 1467435103
>>1467432
> Единственное, что мне не удается написать - это цикл, который проходит по жсону и заменяет кодированный объект на мой перевод.
ну я тебе написал же цикл - по индексу в консьюмбл подбирается имя и выдаётся pcs, не подходит чтоли?
Аноним 04/09/19 Срд 22:52:58 1467440104
>>1467432
А что конкретно ты хочешь видеть в результате?
Вот получил ты
'{ "consumable": { "1": 5, '"2": 10 }}'
К какому виду тебе надо это преобразовать?
Аноним 04/09/19 Срд 22:55:17 1467443105
>>1467248
А куда именно копать? Серьезно, я гимпом игрался уже с контрастом и яркостью, даже кроппил отдельно код - вообще не видит, сука. Причем грешил сначала на питоновскую либу, но нихуя - даже zbarimg не распознал.
Аноним 04/09/19 Срд 23:01:11 1467447106
15650361466680.webm (5918Кб, 854x480, 00:00:33)
854x480
>>1467435
А, блин. Сорян, уже туплю после рабочего дня, проебался в глаза с твоим скрином. Офигенно, это то, что нужно! Спасибо и добра :3
>>1467440
Анон выше все правильно сделал. В итоге я хотел видеть это в таком виде:
рунная хуйня: 5
рунная залупа: 10
Аноним 04/09/19 Срд 23:06:37 1467454107
Короче поступил я в шарагу местную на погромизда, пришел на пару а там питон. Мне пизда? Поясните по хардкору, сложно ли освоить вот это все? Я тупой и ленивый, кста. Что меня ждёт? За сколько времени можно освоится и уровня какого-то достичь?
Аноним 04/09/19 Срд 23:07:36 1467455108
>>1467454
Я всё лето учу, мне норм
Аноним 04/09/19 Срд 23:12:18 1467461109
>>1467454

Большинство о питоне на парах могло бы только мечтать, почти у всех кресты.
Питон - очень простой язык. Если знаешь хоть что-нибудь ещё, проблем тем более не будет. Литературы по нему очень много, в том числе на русском.
Аноним 04/09/19 Срд 23:24:24 1467470110
>>1467461
А питономакаке есть смысл осваивать кгесты? Без задач, просто чтоб было, чтоб понимать писечу чуть глубже, нежели чем довольствоваться полумагическим мышлением?
Аноним 04/09/19 Срд 23:27:45 1467471111
>>1467443
Ну я ж не ванга. Скинь пару примеров своих кю-эр кодов, тоже попробую поиграть с ними.
Аноним 04/09/19 Срд 23:36:31 1467477112
>>1467470

Можно хорошо освоить сишку, этого достаточно для понимания. Кресты - очень сложные, профита мало. Сложные они из-за своих собственных абстракций, писечка тут не при чём. В принципе, можно освоить основы, но углубляться стоит, только если будешь на них потом писать.
Аноним 04/09/19 Срд 23:48:16 1467485113
>>1467477
Но питон же не си-подобный. Как изучение си даст понимание питона?
Аноним 04/09/19 Срд 23:58:18 1467486114
>>1467485
А я не про питон спрашивал, я спрашивал про писечку.
>>1467477
А что вообще почитать посоветуешь? Или нарпавления скажи, я погуглю
Аноним 04/09/19 Срд 23:59:41 1467487115
>>1467486
но, что такое писечка?
Аноним 04/09/19 Срд 23:59:42 1467488116
>>1467485

Подумал, что под "писечкой" подразумевается ЭВМ, а не питон.

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

Но это всё философская хуита. Думать нужно скорее о том, будешь ли использовать си для решения каких-то задач, например, для написания расширений для питона. Если таких задач нет, то и толку от изучения тоже не будет.
Аноним 05/09/19 Чтв 00:00:52 1467489117
>>1467487
Я слишком глуп для того чтоб развернуто тебе ответить. Ну писечка просто же ну, не понимаешь чтоли?
Аноним 05/09/19 Чтв 00:04:05 1467492118
>>1467486

По C? K&R - лучшее, что есть для начала. Неустаревающая классика.
По крестам не подскажу, но точно не Страуструп (наисложнейшая книга, уж точно не для тех, у кого питон - основной).
Аноним 05/09/19 Чтв 00:11:38 1467495119
>>1467471
Только что сгенерил код и распечатал его, сфоткал на телефон в хуевом качестве, и все распозналось.
Потом обратил внимание, что проблемные фотки были бОльшего разрешения (8256 x 5504). Попробовал уменьшить до 2048 по длинной стороне, и... все задетектилось отлично. Похоже, слишком большие изображения хуево распознаются. Непонятно, правда, почему.
Но спасибо тебе энивей, буду пробовать ресайзить перед распознаванием, хотя это какой-то пиздец, как по мне, если честно.
Аноним 05/09/19 Чтв 00:31:21 1467498120
>>1466678
>>1466742
Да, точно, потом увидел что так делать нельзя.

Тащемта, делаю лабу. Не знаю с чего начать.
Задача.
Получен массив строк data. Разделителем полей является знак табуляции.
1. Напиcать код функции "цена", которая будет выводить название и розничную цену товара заданного цвета "цвет".
При запуске программы будет вызвана основная функция main. Все остальные функции будут вызываться из нее. Цвет вводится с клавиатуры.
2. Проанализировать исходные данные. Изучить их структуру и определить, как получить доступ к искомым данным.
В приведенной задаче необходимо получить название, цвет и розничную цену. Эти данные содержатся в каждом элементе списка – строке, состоящей из полей, разделенных знаком табуляции. Для решения задачи необходимо перебирать в цикле
элементы исходного массива-списка и с каждым элементом производить следующие действия: получить значения полей из строки, используя метод split, необходимая информация находится в полях с индексами 1 (название и цвет) и 3 (цена), необходимо извлечь цвет из поля и сохранить эту информацию в новый массив для дальнейшего использования.

Ну вот я и пытался применить split к списку.

Сейчас что имею:
data = ['1000 QW 2000 2200 QopEw 12 12112', '1001 BW 2001 2300 QopEq 13 12113', '1100 DW 2700 2900 QSFEA 16 12113']
N = len(data)
for i in range(N):
g = data.split()
print(g)
Принт мне выводит итый элемент списка data, но элемент этот стоит последним.
Т.е. я хотел в g вытянуть итые элементы.
Аноним 05/09/19 Чтв 00:41:48 1467499121
>>1467498
1) Ты можешь for row in map(str.split, data): ...
2) Ты можешь это же, но явно: rows = [e.split() for e in data]; for row in rows: ...
3) Либо ты можешь просто for line in data: row = line.split(); ...

Вот range() тебе тут точно не нужен, ты не в Си.
Аноним 05/09/19 Чтв 00:50:46 1467505122
изображение.png (38Кб, 1422x776)
1422x776
Аноним 05/09/19 Чтв 00:55:13 1467508123
>>1467505
> count += 1
for index, item in enumerate(data, 1):
Аноним 05/09/19 Чтв 00:55:25 1467509124
>>1467505
Кажется то, что нужно! Спасибо, анон :3
Аноним 05/09/19 Чтв 00:57:31 1467510125
>>1467508
Интересная конструкция, постараюсь запомнить.
Аноним 05/09/19 Чтв 01:04:21 1467513126
>>1467495
Ну и хорошо, антош. Пиши если что.
Аноним 05/09/19 Чтв 01:41:28 1467527127
>ForeignKey
>ManyToManyField
Как понять?
Мне что теперь, бросать все и бежать учить SQL? Или пока и так сойдет?
Если можно, поясните в кратце как оно работает?

Аноним 05/09/19 Чтв 08:09:35 1467586128
>>1467527
>Мне что теперь, бросать все и бежать учить SQL?
Что-нибудь про основы БД прочитать очень надо бы.
Аноним 05/09/19 Чтв 09:06:40 1467603129
Хочу научиться мультипроцессингу и регекспам, но чет сложно, сук.
Аноним 05/09/19 Чтв 09:10:13 1467607130
>>1467603

Хуйня, учится за день.
Аноним 05/09/19 Чтв 11:06:14 1467675131
Долбанный синтаксис, смысл вообще в него углубляться?
Аноним 05/09/19 Чтв 12:32:47 1467694132
>>1467675

Это у питона-то долбанный синтаксис? Да это псевдокод по сравнению с остальными.
Аноним 05/09/19 Чтв 12:35:01 1467696133
>>1467694
не в плане плохой/хороший, а в плане что углубленное изучение его вообще нафиг ненужно. написал на листочке повесил возле ПК делов
Аноним 05/09/19 Чтв 13:16:19 1467708134
Hi 2ch, такой трабл, я когда сохраняю в Atom (ctrl+S) выскакивает окно консоли, и когда запускаю (f6) тоже выскакивает пустое окно консоли, а потом консоль с выполняемой программой. Что за дичь пацаны?
Я определил, что это действует на всех файлах.py в одной папке. Также когда открываю файл с этой папки, то выскакивает консоль, а потом прячется.
Аноним 05/09/19 Чтв 16:18:34 1467788135
>>1467708
А ещё окно консоли выскакивает произвольно (или не совсем произвольно) - когда создаю новый файл, открываю, меняю код
Аноним 05/09/19 Чтв 16:20:13 1467791136
>>1467788
Перелазий на пайшарм
Аноним 05/09/19 Чтв 16:33:44 1467804137
>>1467791
Но раньше такого не было... Как можно по нормальному его переустановить?
Аноним 05/09/19 Чтв 17:05:31 1467822138
Ребят, чёт не соображу, а нахуя классам нужен оператор with? Что он позволяет сделать?
Аноним 05/09/19 Чтв 17:06:24 1467823139
>>1467822
Контекстный манагер нахуя нужон?
Аноним 05/09/19 Чтв 17:13:20 1467832140
>>1467823
Ну, да?

Ну тоесть я правильно понимаю, что прописав в классе __exit__ и обратившись к нему через with - можно сделать класс, который при возникновении ошибки успеет что-то сохранить, но следом программа всё-равно вывалится с ошибкой?
Аноним 05/09/19 Чтв 17:15:14 1467833141
>>1467832
> который при возникновении ошибки успеет что-то сохранить
В целом - да.
Аноним 05/09/19 Чтв 17:18:57 1467834142
>>1467833
Есть более широкое применение?
Аноним 05/09/19 Чтв 17:20:50 1467838143
>>1467834
> Корректная обработка окончания работы;
> Лаконичный синтаксис начала/окончания работы.
Вроде всё.
Аноним 05/09/19 Чтв 17:21:29 1467839144
>>1467838
Ну и как бы под капот, в эти все методы ты можешь вставить различный функционал. Но это очевидно.
Аноним 05/09/19 Чтв 17:24:52 1467848145
>>1467838
>Вроде всё.
Ну ясно. Тогда, пожалуй, углубляться в понимание этого не буду, просто сохраню в голове ссылочку на метод, на случай, если всё-таки пригодится.

>>1467839
А как правильно вызвать with относительно Класса, чтобы активировать методы enter и exit? У меня в книге приведена такая конструкция:
with MyClass():
____print('Выполняем')
____MyClass.calc(2, 0)
выглядит как-то супер-коряво

Аноним 05/09/19 Чтв 17:30:58 1467858146
>>1467848
>____print('Выполняем')
>____MyClass.calc(2, 0)
это тот язык который заявлял что beautiful is better than ugly
лол
Аноним 05/09/19 Чтв 17:31:53 1467860147
>>1467858
Алло, клован, это наглядный пример написанный учеником.
Аноним 05/09/19 Чтв 17:32:53 1467861148
>>1467848
>with MyClass():
> ____print('Выполняем')
> ____MyClass.calc(2, 0)
Супер хуйово.
Норм выглядит так:
>with MyClass() as your_class:
> ____print('Выполняем')
> ____your_class.calc(2, 0)
Аноним 05/09/19 Чтв 17:34:50 1467863149
>>1467861
Да ну это понятно, просто суть не меняется вроде, и получается что конструкция вызова экземпляра класса слишком длинная, почему бы тогда просто было не ввести метод __exit__ который срабатывает в случае аварийного завершения работы без всяких там with? Нахуя этот with?
Аноним 05/09/19 Чтв 17:38:25 1467866150
>>1467863
> который срабатывает в случае аварийного завершения работы без всяких там with
Как деструктор в сях? Логично, да. Но тут вот так.
Вопрос почему стоит задать лично гвидо или тем, кто трудится над новыми релизами пистона.
Ну так, на мой скудный ум - в сях ты сам за собой подчищать должен, тут же работает сборщик мусора. Хочешь ловить ошибки - лови их в коде, который юзает твой класс.
Аноним 05/09/19 Чтв 17:44:13 1467871151
>>1467822
Он позволяет не забыть освободить ресурс, который тебе больше не нужен.
В С++, например, оператора with нет, потому что нет сборки мусора и деструктор объекта автоматически вызывается когда объект выходит из области видимости. В языках же со сборкой мусора так нельзя, потому что на объект может быть неучтенная ссылка из каких-то ебеней, и освобождение ресурса будет только при сборке мусора, которая происходит в неопределенный момент. Для определенности тебе нужен либо with, либо вызывать освобождение ресурса вручную.
Аноним 05/09/19 Чтв 17:47:31 1467875152
>>1467866
Да нет, with не лично гвидо придумал, это общая для языков со сборкой мусора тема. Либо with, либо try/finally, либо и то и другое вместе.
Собственно with это такой try/finally, в котором в finally-блоке вызывается финализатор.
Аноним 05/09/19 Чтв 17:48:30 1467877153
>>1467871
Извини, не совсем понял, поясни пожалуйста, каким образом with освобождает ресурс вызванного через него класса? Я же ньюфаг
Аноним 05/09/19 Чтв 17:48:44 1467879154
>>1467875
> with не лично гвидо придумал
Не знал, спасибо за инфу.
Я просто ничего кроме питона/с не тыкал.
Аноним 05/09/19 Чтв 18:09:22 1467890155
>>1467877
Ну допустим у тебя есть файл. Ты пишешь
def peka(yoba):
_f = open(....) #взял ресурс
_f.write(yoba)
_f.close() #освободил ресурс
Допустим, f.write бросает исключение. С этим исключением ты отвалишься куда-то вверх, а f.close вызван не будет. Хуево. Поэтому надо писать
def peka(yoba):
_try:
__f = open(....) #взял ресурс
__f.write(yoba)
_f.close() #освободил ресурс если нет исключения
_except error as e:
__f.close() #освободил ресурс если есть исключения
raise e

Так себе конструкция. Поэтому придумали try/finally блок. Он выполняется всегда, не смотря ни на что.

def peka(yoba):
_try:
__f = open(....) #взял ресурс
__f.write(yoba)
_finally:
__f.close() #освободил ресурс

Все заебись. Даже если f.write вызывает исключение, finally будет выполнен всегда. Но finally с ЕДИНСТВЕННЫМ объектом встречается тоже часто. Поэтому можно навернуть еще больше сахара:
def peka(yoba):
_with open(...) as f:
__f.write(yoba)

Естественно при этом будет вызываться не close(), а что-то более абстрактное.
Аноним 05/09/19 Чтв 18:33:23 1467903156
>>1467890
Анон, не пинай, я всё-равно до конца не понимаю

>Допустим, f.write бросает исключение. С этим исключением ты отвалишься куда-то вверх, а f.close вызван не будет. Хуево.
Но ведь программа мигом отвалится, и будет уже похуй - был ли вызван f.close, или не был? ну, по крайней мере в плане высвобождения ненужных ресурсов

>Даже если f.write вызывает исключение, finally будет выполнен всегда. Но finally с ЕДИНСТВЕННЫМ объектом встречается тоже часто. Поэтому можно навернуть еще больше сахара:
Так а что сделает with, если применять его с классом? Закроет класс? Но ведь класс и без того закроется, если не будет ссылок на него, а если ссылки есть - закрывать нельзя. Поудаляет атрибуты класса? Но ведь они сами поудаляются опять же если нет ссылок, и наоборот если ссылки есть - удалять нельзя. Не понимаю. Не понимаю что делает with и в какой момент он это делает
Аноним 05/09/19 Чтв 18:47:31 1467910157
123.png (222Кб, 584x506)
584x506
Аноним 05/09/19 Чтв 18:49:42 1467911158
>>1467903
>надеясь на то, что пистрон закроет его в правильный момент
Аноним 05/09/19 Чтв 18:58:50 1467914159
>>1467903
>Но ведь программа мигом отвалится
с хуя ли?
может, ты где-то выше поймаешь этот эксепшен и будешь работать дальше
а потом еще раз попытаешься с этим файлом поработать. а он не закрыт. хуй знает, что там твоя имплементация в этом случае делать будет
Аноним 05/09/19 Чтв 19:02:21 1467918160
>>1467914
>>1467910
Аноны, я не спрашивал про with в отношении open файла, я спрашивал про приаменение with в отношении классов, и как он поможет сберечь ресурсы
Аноним 05/09/19 Чтв 19:05:01 1467922161
>>1467918
А в чем принципиальное отличие?
Аноним 05/09/19 Чтв 19:06:33 1467923162
>>1467922
В том, что класс как объект должен сам закрываться если него больше нету ссылок, и не должен закрываться если ссылки на него есть
Аноним 05/09/19 Чтв 19:08:15 1467925163
>>1467923
А, ну простите, извиниите. Залажу обратно под шконку
Аноним 05/09/19 Чтв 19:09:12 1467926164
>>1467925
Не-не, я может и не прав и не так понимаю, так что можешь пинать меня если уверен в своих словах
Аноним 05/09/19 Чтв 19:19:23 1467931165
>>1467923

Это не совсем верно. Сборка мусора происходит не сразу после того, как не осталось ссылок, а по одному лишь компилятору ведомому алгоритму. То, что на объект не осталось ссылок, не вызовет его финалайзер сразу же. Это тебе не c++.
Поэтому и приходится юзать эти конструкции, что на финалайзер нельзя полагаться.
Аноним 05/09/19 Чтв 19:20:32 1467932166
>>1467931
Ладно, хорошо. Учту. Но заниматься таким, как я понимаю, надо уже в очень крупных проектах, где за расходом ресурсов надо следить?
Аноним 05/09/19 Чтв 19:20:42 1467933167
>>1467926
Не знаю почему аноны делали упор на ресурсы.
Но как упрощение восприятия кода: видишь with, знаешь что что-то открывается и закрывается - тратишь меньше времени на восприятие. Работа с объектом визуально выделена отступами, что так же упрощает понимание.
Во-вторых, ты запихал в __enter__ то, что ты делаешь до, в __exit__ что делаешь после, надеюсь не нужно объяснять, что это пишется один раз, а далее ты уже работаешь с with не задумываясь про пре и пост действия. Очевидно, что объект не обязательно удаляется после работы с ним.
Хули развели срач тоже не понимаю, есть такая конструкция в петоне, пользуйтесь если надо, а если не надо идите нахуй не пользуйтесь.
Аноним 05/09/19 Чтв 19:27:28 1467937168
>>1467933
>Но как упрощение восприятия кода: видишь with, знаешь что что-то открывается и закрывается - тратишь меньше времени на восприятие.
Вот это понял, спасибо.

>Хули развели срач тоже не понимаю, есть такая конструкция в петоне, пользуйтесь если надо, а если не надо идите нахуй не пользуйтесь.
Ну так я хочу понять, какие именно функции удобно и полезно использовать, для этого прошу тут какие-нибудь реальные кейсы применения.
А вабще, подобные вопросы не возникали у меня после прочтения Укуса питона. Сейчас читаю книжку от Прохорёнка, которая прям как по списку проходится по многим возможностям питона - вот тут вопросы то и начинают возникать. Например, была глава про самописные итераторы на базе функции - хорошо, тут всё понятно, может пригодиться. Сейчас вот дошёл до самописных итераторов на базе класса - вот тут возникает вопрос - нахуя? Конструкция гораздо сложнее, выполняет то же...
Аноним 05/09/19 Чтв 19:28:58 1467939169
>>1467933
Двачую этого. Например, в документации питона есть пример, где с with автоматически сохраняется и восстанавливается состояние графического контекста. Или, например, with может автоматически блокировать общий ресурс для эксклюзивного использования. Это удобный сахарок, вот и все. Можно без него, но с ним код читаемее.
Аноним 05/09/19 Чтв 19:32:05 1467941170
Аноним 05/09/19 Чтв 19:33:47 1467944171
>>1467932

В любых проектах надо следить. Вот не закроешь ты файл или порт в одном потоке, а в другом он понадобится, и будет ошибка. К тому же, например, файл может не записаться, пока его не закроют. Короче, не следя за ресурсами ты обрекаешь себя на появление трудноуловимых ошибок.
Аноним 05/09/19 Чтв 19:33:48 1467945172
>>1467933
>Не знаю почему аноны делали упор на ресурсы.
>Но как упрощение восприятия кода: видишь with, знаешь что что-то открывается и закрывается - тратишь меньше времени на восприятие.
Это что-то называется ресурсом.
Аноним 05/09/19 Чтв 19:36:33 1467950173
>>1467945
> Это что-то называется ресурсом.
>>> with html.bold() as fragment:
... ____print('Hello', file=fragment)
<b>Hello</b>
Что тут называется ресурсом?
Аноним 05/09/19 Чтв 20:03:01 1467967174
>>1467932
Скорее это не про крупные проекты, а про библиотечный код. В больших проектах в любом случае будут свои библиотеки для нужд проекта, а малых не обязательно.

Это относится и ко многим другим конструкциям языка.
Аноним 05/09/19 Чтв 20:09:51 1467968175
>>1467950
Какой-то стейт внутри html, который будучи не освобожденным все поломает.
Аноним 06/09/19 Птн 00:58:33 1468192176
c4a.jpg (8Кб, 238x192)
238x192
https://pastebin.com/bPV7AMtD

Хлебушек снова выходит на связь.
Нужно в автора засунуть книгу, когда пробую сделать это, вставив в него:

book = models.ForeignKey('Book', on_delete=models.SET_NULL, null=True)

то выдает такую вот ошибку

catalog.Author.book: (fields.E303) Reverse query name for 'Author.book' clashes with field name 'Book.author'.
HINT: Rename field 'Book.author', or add/change a related_name argument to the definition for field 'Author.book'.
catalog.Book.author: (fields.E303) Reverse query name for 'Book.author' clashes with field name 'Author.book'.
HINT: Rename field 'Author.book', or add/change a related_name argument to the definition for field 'Book.author'.

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

Почему так происходит? Помогите.
Аноним 06/09/19 Птн 10:43:22 1468313177
Привет ребята, есть проблема с Atom, недавно начал глчючить: выскакивает консоль просто так и исчезает. Это происходит само по себе (во время работы), когда сохраняю, когда отрываю файл. Пробовал удалить (удалял всё - включая файлы в AppData) но это не помогло. Кто знает из-за чего это может быть, как исправить?
Аноним 06/09/19 Птн 11:28:53 1468357178
try:
text = input('Enter something --> ')
except E0FError:
print('Why you did E0F')
except KeyboardInterrupt:
print('You canceled an operation.')
else:
print('You entered {0}'.format(text))
Аноним 06/09/19 Птн 11:30:34 1468361179
>>1468357
Почему этот код не показывает, то что после except, а отвечает на исключения, как обычно?
Аноним 06/09/19 Птн 11:36:07 1468368180
>>1468361
потому, что else сработает только если не будет исклюений. Добавь finaly - оно сработает в любом случае.
Аноним 06/09/19 Птн 11:44:37 1468376181
>>1468361
В EOF должна быть буква, а не 0.
Вызов KeyboardInterrupt не получается в PyCharm (ctrl - c), вместо этого выделяет строку в консоли
Аноним 06/09/19 Птн 12:16:20 1468397182
15352315031902.mp4 (525Кб, 360x360, 00:00:12)
360x360
>>1468192
А разве в BookInstance не должно быть отношение один с одним, а не один со многим. Это же, как я понял, копия книги. Попробуй поменять на OneToOneField.
Аноним 06/09/19 Птн 12:38:02 1468409183
>>1468397
Он вообще ебанутый.
Запись в таблице Books это и есть блядь инстанс, т.е. экземпляр книги. А он ебашит отдельную таблицу для этого.
Аноним 06/09/19 Птн 12:58:22 1468417184
This Is America[...].mp4 (9918Кб, 1280x720, 00:01:15)
1280x720
>>1468192
Наверное проблема в related_name. То есть у тебя и в Авторе метод book_set и в Инстансе book_set.
Аноним 06/09/19 Птн 13:31:21 1468432185
tenor.gif (232Кб, 480x360)
480x360
>>1468397
https://developer.mozilla.org/ru/docs/Learn/Server-side/Django/Admin_siteside/Django/Home_page
>Добавьте встроенный список перечня Book в представление списка Author , используя тот же самый подход, который мы применили для Book/BookInstance.
В уроке никаких оне ту оне фиелдов мне не давали, а значит и в задачке он не нужон.

>>1468409
Это типа статус книги, и вообще не мой мопед, ну. Ты чего такой агрессивный?

>>1468417
Релатед наме не помогает, и в уроке о нем ничего не говорили.

Аноним 06/09/19 Птн 13:32:43 1468436186
>>1468313
Будь ваннаби макопидором как я, используй саблим!
Аноним 06/09/19 Птн 17:14:53 1468666187
api.png (22Кб, 757x745)
757x745
code.png (25Кб, 1154x542)
1154x542
Сап, помогите

Нужно допустим взять date, date_epoch и maxtemp_c из апи сайта погоды, но maxtemp_c в "day": {}, как его оттуда взять? Что я не так сделал? Если удалить ["day"] и maxtemp_c то программа работает правильно

А так выдает ошибку:
line 11, in get
forecast_data = data["forecast"]["forecastday"]["day"]
TypeError: list indices must be integers or slices, not str

Аноним 06/09/19 Птн 17:43:23 1468694188
>>1468436
оба пидора, и атомщики и саблимщики. Есть только VS Codium
Аноним 06/09/19 Птн 17:44:47 1468696189
>>1468357
ну ты ибан))
делай так...

try:
__text = input ('enter...')
except:
__print('SERVER GOT SOME ERROR ALARM ALARM')
Аноним 06/09/19 Птн 17:45:55 1468699190
>>1468666
forecast_data = data["forecast"][0]["forecastday"]["day"]

могу ошибаться, проверять не буду
Аноним 06/09/19 Птн 18:18:12 1468748191
>>1468666
Ты всё напутал. Дай код на пастбин.
Аноним 06/09/19 Птн 20:16:50 1468909192
>>1468694
Хуйня ваш вскод. Попробовал его, попробовал атом - вернулся на саблайм.
Аноним 06/09/19 Птн 20:17:43 1468910193
>>1468909
Лучшая среда разработки под пайтон очевидно пайшарм.
Аноним 06/09/19 Птн 20:22:54 1468918194
14878806850160.jpg (43Кб, 750x562)
750x562
>>1468432
>Релатед наме не помогает
В смысле не помогает, блять ? А ну кинь, чё ты там настрочил.
Аноним 06/09/19 Птн 20:34:19 1468933195
Аноны, как вы живете с исключениями? Понадобилось мне воспользоваться модулем winreg, и весь код стал состоять из сплошных вложенных try: winreg.DoSmth(); somefunc() except OSError. Возвращало бы оно None - никаких проблем бы не было. Что почитать, чтобы научиться вместо этой лапши из try писать что-то читаемое?
Аноним 06/09/19 Птн 20:42:38 1468944196
>>1468910
> пайшарм
Для больших проектов возможно. Но для мелких - слишком перегружен, отовсюду лезут эти ебучие подсказки-костыли, как будто я не знаю аргументов у print'а.
Аноним 06/09/19 Птн 20:44:05 1468946197
>>1468933
Ну как бы очевидно, что данные на входе нужно проверять. Уже внутри можешь без трая крутить данными, но лишняя перестраховка никогда лишней не будет.
Аноним 06/09/19 Птн 20:49:24 1468955198
>>1468918
...
class Author(models.Model):
"""
Model representing an author.
"""
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
date_of_birth = models.DateField(null=True, blank=True)
date_of_death = models.DateField('Died', null=True, blank=True)
book = models.ForeignKey('Book', on_delete=models.SET_NULL, null=True, related_name = 'book_blyat')
...

>Reverse query name for 'Book.author' clashes with field name 'Author.book'.
HINT: Rename field 'Author.book', or add/change a related_name argument to the definition for field 'Book.author'.
Аноним 06/09/19 Птн 20:50:39 1468956199
>>1468944
Можно подумать ты знаешь аргументы всего и вся. Да и следуя твоим же словам - аргументы принта нужны людям которые большие проекты пилят? Нет?
Всё чем перегружен пайшарм - комфортом пользования, написание кода без лишних телодвижений, вплоть до встроенного SSH
Аноним 06/09/19 Птн 20:52:18 1468959200
>>1468910
Откуда у бедного вкатывальщика возьмутся деньги на нормальную пекарню и лицензию питоншарма?
Аноним 06/09/19 Птн 20:54:20 1468965201
>>1468959
так пайшарм комьюнити бесплатный, ты чего? Да и поломаный везде где хочешь лежит
Аноним 06/09/19 Птн 20:55:27 1468966202
>>1468956
Мне проще доки покурить по конкретному вопросу, чем терпеть эти выскакивающие подсказки на все случаи жизни.
Аноним 06/09/19 Птн 20:56:06 1468968203
>>1468965
Не хочу камунити, хочу нормальный пгодукт изкаропки
Аноним 06/09/19 Птн 21:10:27 1468998204
Анон, посоветуй книгу или что-нибудь для написания бота в телеграмме и не только. Заранее спасибо.
Аноним 06/09/19 Птн 21:13:05 1469006205
>>1468998
Документация telebot?
Тоже недавно ебался с этим, ниче не получилось. Буду читать. Английский уровень говно говна. Буду сидеть с переводчиком, значится.
Аноним 06/09/19 Птн 21:14:44 1469012206
Аноним 06/09/19 Птн 21:59:17 1469061207
Сап анон. Нужна админка для типа_FAQ с древовидной структурой.
раздел1
|подраздел1
|статья1
|статья2
|подраздел2
|статья1
|статья2
раздел2
|подраздел1
|статья1
|статья2
|подраздел2
|статья1
|статья2

Подскажите, пожалуйста, есть какое-то готовое решение?
Аноним 06/09/19 Птн 22:00:20 1469064208
image.png (38Кб, 400x510)
400x510
>>1469061
ебаная макака блядь, минус разметка. пикрил дерево
Аноним 06/09/19 Птн 23:00:04 1469106209
Аноним 06/09/19 Птн 23:12:46 1469116210
>>1469106
Нет, мне нужен питоний вариант с хранением в БД, чтобы другие сервисы могли в эту БД залезать и дергать ЖСОН. жсон будет генерить editorjs
Аноним 07/09/19 Суб 01:40:29 1469182211
Новый точечный [...].jpg (16Кб, 695x79)
695x79
Новый точечный [...].jpg (17Кб, 698x117)
698x117
Последние пару дней сидел на codewars и стал стараться уложить любое решение в одну логическую строку.
На работах тоже принято так делать? Как разбивать строки так, чтобы было максимально читаемо?
Аноним 07/09/19 Суб 02:11:07 1469188212
>>1469182
>ряя пистрон читаемость кокок
>будем выёбываься и сокращать что было как у настоящих прогромистов!
Аноним 07/09/19 Суб 02:26:27 1469189213
>>1469182
> На работах тоже принято так делать?
Только если навредить хочешь.
> Как разбивать строки так, чтобы было максимально читаемо?
Как с функциями примерно. То есть разбить действия построчно так, что бы на одной строке выполнялась одна логическая группа действий(форматирование / лист-компрехэншн / and etc.).
> стал стараться уложить любое решение в одну логическую строку
Зачем?
Аноним 07/09/19 Суб 02:38:43 1469191214
>>1469189
>зачем
Так в топовых решениях
>одна логическая группа действий(форматирование / лист-компрехэншн / and etc.).
Я гуглил длинные лист компрэхэншены, и судя по ответам на стаковерфлоу https://stackoverflow.com/questions/311588/how-to-indent-python-list-comprehensions люди делают примерно такие штуки, как у меня во втором пике.
Аноним 07/09/19 Суб 02:43:30 1469193215
>>1469191
> Так в топовых решениях
Так у тебя цель какая? Пистон выучить/скилл прокачать или заниматься спортивным погромированием?
> как у меня во втором пике.
Второй пик - Ок.
Стаковерфлоу даёт самое простое и рабочее решение, интегрировать его в проект и улучшить - твоя задача.
Я бы не юзал компрехеншены с вложенностью больше 2 и тебе не советую. То же самое с обилием условий.
Аноним 07/09/19 Суб 03:03:17 1469200216
>>1469193
Так в спортивном программировании вообще нет разницы, как что выглядит и сколько занимает логических строк.
А топовые решения там просто такие, которые собрали много флажков 'clever' и 'best practices', поэтому и повторяю.
>компрехеншены с вложенностью больше 2
То есть мне лучше сумму от генератора вынести в отдельную функцию? Понял, там где-то такие решения тоже были
Аноним 07/09/19 Суб 03:10:26 1469202217
>>1469200
Как я уже писал, всё зависит от твоих целей. Если спорт - похуй на красивость. И тут больше нечего тебе подсказать, по крайней мере мне.
> То есть мне лучше сумму от генератора вынести в отдельную функцию?
Как я уже написал, второй пик выглядит более-менее ок ещё. Там как раз вложенность 2 (условие ж не считается). Я бы добавил развернутый коммент с пояснением работы данной йобы и всё. Но смотри в начало, насчёт твоей цели.
Аноним 07/09/19 Суб 03:34:23 1469207218
Аноним 07/09/19 Суб 08:15:54 1469226219
00001.png (21Кб, 628x189)
628x189
>>1469200
Не очень существенно, но в целом более читаемо, если локальная функция будет определена.

Ещё твой код можно оформить в фунциональном стиле через filter, это имеет смысл, если выносить генератор в отдельную функцию. Я бы скорее вместе с проверкой на равенство вынес
https://ideone.com/7RBLrr

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

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

Хороший стиль какие-то тестовые и контрольные значения приводить.
Аноним 07/09/19 Суб 11:50:15 1469301220
Безымянный.png (23Кб, 1029x317)
1029x317
Нормально ли, что автоформаттер так переносит ? После круглых скобках? Руками бы я так не делал, зачем?
Аноним 07/09/19 Суб 12:30:15 1469319221
>>1469301
Нормально, смотри PEP8.
Аноним 07/09/19 Суб 12:55:14 1469330222
>>1469319
ладно, спасибо. У одного у меня бобмануло такое форматирование, значит
Аноним 07/09/19 Суб 13:20:54 1469336223
>>1469301
смотрится хуевы, лучше, чтобы каждый параметр на своей строке был
Аноним 07/09/19 Суб 13:28:12 1469338224
>>1469182

Нет в этом ничего хорошего, читаемость дропается в ноль.
Можно вообще всю программу написать в одно выражение, но смысл? Код должен быть читаемым, а не "О ,смотрите, я могу сжать 10 понятных строк в одну длинную".
Аноним 07/09/19 Суб 18:57:02 1469531225
>>1469226
Спасибо, я о решении с filter() тоже думал, но это, понятное дело, только если выносить проверку в отдельную функцию.
Я так понимаю, это должно быть удобно, если в будущем потребуется как-то изменить условие.
>пример один привести, как считается
Вообще должно быть достаточно понятно, если к проверке прикомментить 'example: 89 == 81 + 92'
Я, кстати, где-то читал, что в коде вообще комментов должно быть по минимуму, или вообще не должно быть, типо всё понятно из самого кода. Но в случае с однострочниками это имеет смысл? Тогда в моём первом пике нужно прикомментить, например 'example: "Bad" - > "2 1 4"'
>>1469338
Ну как я понял из треда, у меня пока ещё нормально. В первом это одно логическое действие -- форматирование строки, во втором мы просто по заданному диапазону собираем список элементов, удовлетворяющих условию, если условие пояснить, то остальное тривиально.
Аноним 07/09/19 Суб 19:01:55 1469535226
Аноним 07/09/19 Суб 21:03:16 1469579227
Чем лучше координаты векторы представить: списком или кортежем?
Аноним 07/09/19 Суб 21:25:05 1469589228
c4a.jpg (8Кб, 238x192)
238x192
За сколько примерно осваивается фреймворк уровня джанго?
Я же заебался блядь нахуй, спокойно саморазвиваться в сериалах советуйте годноты уже не могу - иногда монитор разъебать хочется из за того что некоторое количество вещей просто так в голове не укладывается а ведь так уютно было когда основы пистрона учил
Аноним 07/09/19 Суб 21:28:58 1469592229
>>1468918
Короче, получилось, но, как оказалось оно нахуй мне не нужно было, лол.
Аноним 07/09/19 Суб 21:29:03 1469593230
>>1469589
Мне чет вообще питон разонравился, когда начал пытаться в веб-программирование на нем - PHP для этого оказывается в разы удобнее.
Аноним 07/09/19 Суб 21:35:08 1469601231
Аноним 07/09/19 Суб 21:36:17 1469603232
>>1469593
Пхп анально ограничен вебом, что демотивирует, так что пистрон первым языком самое то, я считаю
Аноним 07/09/19 Суб 21:40:09 1469607233
>>1469589
Что конкретно вызвало затруднения? сам учу питон сейчас, интересно какие сложности у других
Аноним 07/09/19 Суб 21:47:33 1469611234
333.png (68Кб, 306x856)
306x856
>>1469607
Стыдно сказать, завтыкал на генерации ссылок, и вообще во всем этом url говне
Вылез в джангу сразу после того как освоил основы пистрона, от того и проблем с продвижением дохуя. Но ничего, по ходу дрочева в джанге осваиваю всякие классные штуки о которых в моей мурзилке по пистрону ничего не говорилось.

Сейчас на 7 части пикрилейтеда, оставил на завтра
Аноним 07/09/19 Суб 21:48:32 1469612235
>>1469601
Щас уже все не вспомню, давно на питоне был проект, но мне дико не хватало всякой мелочи типа isset, empty, ??, ?:
И еще были какие-то вечные проблемы с подключением модулей - pycharm видит, питон не видит. Иногда просто были ситуации, когда не ясно, как их вообще подключать. Скорее всего это было из-за кривой архитектуры проекта, но все же.
Аноним 07/09/19 Суб 21:50:07 1469613236
>>1469612
В любом случае знание питона тебе ничем не мешает.
С каого языка начинал погромировать?
Аноним 07/09/19 Суб 21:50:15 1469614237
>>1469603
Угу, сам щас этим страдаю, потому что однотипные проекты на пыхе уже подзаебали, надо валить в другие направления, но вот куда, пока не ясно.
Аноним 07/09/19 Суб 21:52:36 1469615238
>>1469613
Сначала был десктоп на C++/MFC, потом десктоп на Java/Swing, потом заразился PHP и на нем просидел аж 5 лет. Щас по сторонам смотрю, куда можно сбежать.
Аноним 07/09/19 Суб 21:54:53 1469616239
>>1469615
Когда вырсту стану таким же охуенным как ты
Аноним 07/09/19 Суб 21:59:04 1469618240
>>1469607
А ты где, и на чем втыкаешь?
Аноним 07/09/19 Суб 21:59:22 1469619241
Аноним 07/09/19 Суб 22:03:58 1469620242
>>1469618
Начал с курса МФТИ, сделал всего робота, сейчас перекатился на курсеру - слушаю уже второй курс по Python for Everybody Specialization, там про структуры данных питона.
Пока вкуриваю как волшебным образов таплы превращаются в листы и обратно.
Аноним 07/09/19 Суб 23:36:48 1469642243
>>1469611
Чо за курс? Поделись ссылкой, братанон.
Аноним 08/09/19 Вск 00:01:12 1469651244
Аноним 08/09/19 Вск 03:04:30 1469707245
>>1469579
Если тебе координаты вектора не надо менять после того, как он создан, то кортежем.

Считай просто так, что список - это переменная, а кортеж - константа. Если тебе не нужно менять координаты вектора после того, как вектор создан, то кортеж, если же у тебя какая-то динамичная система, то или список, или какая-нибудь другая структура.
пужлет Аноним 08/09/19 Вск 04:14:44 1469717246
logo.png (10Кб, 210x210)
210x210
кроме криво работающей демки рисующей кубики майнкрафта на этом говне есть стоящие трехмерные проекты?
всё время хочется вкатиться, но хочется поковырять готовые проекты, посмотреть на говнокод а я люблю говнокод... особенно на питоне... покажи мне говнокод других, попугаться
Аноним 08/09/19 Вск 08:55:07 1469757247
>>1469182
хороший код это не тот, который записан в одну строчку.
Хороший код, это когда он читается новичком, как будто код сошел со страниц учебника
Аноним 08/09/19 Вск 08:55:39 1469758248
>>1469717
Python Это сугубо 2д-графика и 2д-тян
Аноним 08/09/19 Вск 08:57:31 1469759249
>>1469182
>>1469758
Ну и by the way
return не должен содержать логических операций
Аноним 08/09/19 Вск 08:58:25 1469760250
PEP8:

Be consistent in return statements. Either all return statements in a function should return an expression, or none of them should. If any return statement returns an expression, any return statements where no value is returned should explicitly state this as return None, and an explicit return statement should be present at the end of the function (if reachable).
Аноним 08/09/19 Вск 09:38:45 1469766251
>>1469592
Заебись, так и живем.
Аноним 08/09/19 Вск 11:11:32 1469806252
Аноним 08/09/19 Вск 11:40:38 1469817253
>>1469760
И почему так? Чем им возврат тру-фолзов не нравится?
Аноним 08/09/19 Вск 11:46:19 1469822254
>>1469301
>>1469817
я тут возмущался, почему такой перенос параметров - норма
Аноним 08/09/19 Вск 12:26:57 1469848255
>>1469822
Отключи пепку и протабулируй нормально, будь мужиком
Аноним 08/09/19 Вск 12:47:15 1469852256
>>1465926 (OP)
Какая лучшая современная подробная книжка по питону для полных новичков?
Аноним 08/09/19 Вск 12:52:34 1469853257
>>1469758
2д графика на пайтоне точно такая же как и 3д - биндинг для сишной либы
Аноним 08/09/19 Вск 12:55:39 1469854258
>>1469852
Э байт оф пайтон 2.0 неплоха.
Аноним 08/09/19 Вск 13:42:06 1469876259
>>1469852
Швитой Эрик Мэтиз - неблохо поясняет за основы.
Только не вздумай джангу по нему учить :3
Аноним 08/09/19 Вск 13:53:34 1469884260
1019869028.jpg (149Кб, 891x1200)
891x1200
1.png (202Кб, 684x690)
684x690
2.png (314Кб, 705x699)
705x699
3.png (337Кб, 688x700)
688x700
>>1469852
Алсо попробуй этого клована.
Много картинок, схемочек, свистоперделочек. Стильно нет, модно, молодежно!
Аноним 08/09/19 Вск 14:35:14 1469910261
>>1469852
Новичку не нужно ничего подробного, это хуйня, больше 200 страниц не бери. Укус питона почитай, потом покодь что-нибудь, там в конце укуса есть ссылки на список задачек + задачки на разных сайтах порешай, или какой-нибудь курс приглянувшийся попроходи. Потом уже что-то подробное читай
Аноним 08/09/19 Вск 14:39:42 1469913262
>>1469852
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
Аноним 08/09/19 Вск 15:00:29 1469921263
>>1469913
А можно с вашей пастой поговорить?
Аноним 08/09/19 Вск 15:13:57 1469925264
Аноним 08/09/19 Вск 15:42:26 1469936265
>>1469921

Я попробую.
Dive into python подходит только для тех, кто переходит с другого языка и хочет как можно быстрее вкатиться. Для новичка не подойдёт.
Аноним 08/09/19 Вск 15:51:19 1469943266
>>1469936
Против "Погружения", стандартной библиотеки и PEP8 ничего не имею. А вот советовать не самые мощные веб-серверы я бы не стал. Рекомендую uWSGI позади nginx.
Аноним 08/09/19 Вск 16:17:36 1469954267
>>1469936
>для тех, кто переходит с другого языка и хочет как можно быстрее вкатиться

Сейчас бы в 2019 не знать пару языков и не пользоваться божественным VS Code, для написания всех программ мира
Аноним 08/09/19 Вск 17:13:27 1469972268
аноны, пытаюсь считать с клавы список, затем преобразую его в множество, и снова пытаюсь его преобразовать в список. в итоге получаю TypeError: 'list' object is not callable . гугол грит шо так надо преобразовывать, а ошибки связанной со мной ваще нет. в чем может быть проблема?
кодик тут https://pastebin.com/dVRkqEgd
Аноним 08/09/19 Вск 17:25:47 1469976269
>>1469972
У тебя где-то раньше ошибка https://ideone.com/lLUat2
Скорее всего ты как-то переопределил list - например есть переменная с таким именем
Аноним 08/09/19 Вск 17:32:44 1469978270
Снимок.PNG (13Кб, 649x351)
649x351
>>1469976
да, только то в том что в jupyter notebook эта прога чистая. то есть там только эти 6 строчек, больше ничего нет
Аноним 08/09/19 Вск 18:11:51 1470000271
>>1469972
Разбей m = [i.lower() for i in input().split()] на несколько действий. Увидишь где ошибка.
Аноним 08/09/19 Вск 18:13:38 1470001272
>>1470000
но проблема то только в том что почему то в разных интерпритаторах программа ведет себя по разному. на идеоне вон спокойно работает
Аноним 08/09/19 Вск 18:23:30 1470010273
>>1469978
не верю кидай полный скрин. 100% ты переопределил лист
Аноним 08/09/19 Вск 19:43:17 1470032274
>>1470010
забей анон. ноутбук мозги ебурил. я его перезапустил и он заново почему то нормально заработал. хуй знает че ему надо было
Аноним 08/09/19 Вск 20:04:57 1470041275
>>1470001
> но проблема то только в том что почему то в разных интерпритаторах программа ведет себя по разному.
Так идеон это какая-то веб хуита, ты локально через консоль у себя загоняй и смотри работает или нет.
Аноним 09/09/19 Пнд 16:43:02 1470448276
Часто вижу, что в вакансиях, связанных с экспериментальными исследованиями, спрашивают Python.
Может кто сталкивался, какие примерно задачи с его помощью обычно решают, для обработки данных вероятно?
Аноним 09/09/19 Пнд 17:32:56 1470483277
>>1470448
Нейросети, большие данные, матвычисления - вот это вот
Аноним 09/09/19 Пнд 18:49:49 1470529278
>>1470483
Ого.
Но я не о вакансиях "программист" или "математик", а про узких специалистов из других областей. Физики или инженеры, например.
Аноним 09/09/19 Пнд 18:58:15 1470540279
>>1470529

Ну а на чём ещё всякую матановую скриптоту писать? На матлабе?
Аноним 09/09/19 Пнд 18:59:19 1470544280
>>1470529
просят подержать стол пока серьезные дяди пишут код на R
Аноним 09/09/19 Пнд 19:07:40 1470556281
Я там в прошлом треде писал, что на собес ходил и всё хорошо прошло, ждал собеса с директором.
Так вот, дирик меня отхуесосил и отказал.
Держу в курсе.
Аноним 09/09/19 Пнд 19:12:40 1470560282
Аноним 09/09/19 Пнд 19:28:53 1470573283
>>1470556
Расскажи, что там было, пожалуйста
Аноним 09/09/19 Пнд 20:09:31 1470588284
>>1470556
Печально, чувак. Поделись стори хотя бы: и выговоришься, и может чего анон подчерпнёт для себя.
Аноним 09/09/19 Пнд 20:13:26 1470591285
объясните тупому,для чего исп aiohttp?
Аноним 09/09/19 Пнд 20:28:26 1470600286
Как сделать так, чтоб заместо 403 отсылало на логин в джанге?
Аноним 09/09/19 Пнд 21:21:59 1470631287
>>1465926 (OP)
Поучился полгода, устроился на галеру. Узнал от коллег про эликсир, прощерстил тырнет, пописал пару примерчиков. Язык то топовый. Планирую уговаривать других что-нибудь написать на нем на работке.

Что сами думаете?
Аноним 09/09/19 Пнд 21:24:29 1470633288
>>1470631
Че знаешь? Как устроился?
Аноним 09/09/19 Пнд 21:29:51 1470638289
>>1470631

Инопланетный синтаксис, уговаривать людей переучиваться будет сложно.
Аноним 09/09/19 Пнд 21:30:21 1470639290
Посоветуйте максимально сжатый, но тем менее содержащий самое нужное гайд/курс/видос по джанго
Аноним 09/09/19 Пнд 21:31:36 1470640291
>>1470633
js, vue, django, flask, asyncio, tornado, +- docker тыкал и jenkins. Ну и базовый набор с гитом и постгресом.
Аноним 09/09/19 Пнд 21:32:31 1470642292
Аноним 09/09/19 Пнд 21:33:05 1470645293
>>1470642
Само собой. Зачем говорить то, что знаешь сам язык?
Аноним 09/09/19 Пнд 21:33:24 1470646294
>>1470631
> про эликсир
ты эликсирошизик из руби треда?
Аноним 09/09/19 Пнд 21:34:32 1470650295
>>1470646
Рубипидоры настолько тупые, что уже в эликсирошизиков превращаются?
Аноним 09/09/19 Пнд 21:35:34 1470654296
>>1470645
Фреймворки можно и без языка пердолить
Аноним 09/09/19 Пнд 21:53:00 1470681297
.jpeg (5Кб, 147x150)
147x150
Пацаны, в Питоне есть нормально сериализуемые датаклассы? Не хочу дрочиться с __init__, не хочу ебаться с проблемами с nested сериализацией.

Хочу написать нужные поля, указать их тип, собрать из них любую иерархию вложенности и без проблем все это сериализировать и десериализировать. NamedTuple имеет проблемы с nested сериализацией, по SO попробовал пару решений то одно вылезет, то другое. Это же простейшая задача - запилить классу и без писички мисички их сериализовать, которая решена в других языках с полпинка. Почему в Питоне это так сложно и как сделать правильно?
Аноним 09/09/19 Пнд 22:38:02 1470708298
Аноним 09/09/19 Пнд 22:52:19 1470727299
>>1470708
Спасибо, стоило написать про новые датаклассы с 3.7 - про них я читал, но они с 3.7 только, а слесарьфлоу работает с максимум 3.6.
> может и выйдет что-то
Пиздец, как же я ору временами с Питона - не мочь нормально в такие простейшие вещи как классы и рекурсивный проход по дереву объекта (сериализованного объекта) нахуй.
Аноним 09/09/19 Пнд 22:59:44 1470735300
>>1470727

Чего ещё ждать от динамически типизированного языка. Тут не городят новые типы на каждый чих, а всегда юзают dict и пох.
Аноним 09/09/19 Пнд 23:08:17 1470748301
>>1470591
Асинхронный веб-фреймворк.
Очевидно что для веба.
Аноним 09/09/19 Пнд 23:12:36 1470756302
>>1470681
Есть встроенный модуль pickle, он умеет питоновские объекты превращать в поток байтов и обратно. Но ето опасно.
https://docs.python.org/3/library/pickle.html

Есть стандартные модули json, csv чтобы преобразовывать в соответствующие форматы, ну с собственными объектами придется чуток поднапрячься. Вообще много всего в стандартных либах есть
https://docs.python.org/3/library/markup.html
https://docs.python.org/3/library/persistence.html
https://docs.python.org/3/library/fileformats.html

А можешь посмотреть и на сторонние инструменты
https://github.com/marshmallow-code/marshmallow
Аноним 09/09/19 Пнд 23:13:14 1470757303
>>1470560
>>1470573
>>1470588
20 минут разговора с ЧСВ-дириком и всё.
Из общения он узнал что я в основном работал один и никогда в паре с тестироващиками, это и стало причиной отказа, по крайней мере судя по фидбэку.
Я не унываю, аноны, просто обидно что было такое приятное собеседование(побеседовали на около-питоновское), а вот так всё кончилось.
Аноним 09/09/19 Пнд 23:13:40 1470758304
>>1470735
> Чего ещё ждать от динамически типизированного языка
Удобства? Как например удобно работать со всякими нампаями и пандасами.
> Тут не городят новые типы на каждый чих, а всегда юзают dict и пох.
А контракт между микросервисами описывать на использованном клочке туалетного словаря? Типичный же кейс - по сваггер спецификации сгенерить классы (или наоборот), сериализовывать данные на входе и выходе в них, в тестах описать контракты в моках и пануватi. Не, это не пайтон вей. Пайтон вей - написать вручную классы, обсираться из-за несоответствия, обсираться все равно из-за сериализации, а с нормальным моком веб сервера просто пойти нахуй или поднимать в тестах фласк из говна и палок с роутами для моков.
Аноним 09/09/19 Пнд 23:13:47 1470759305
>>1470591
Челы подумали, что в традиционных тредах легко наступить на грабли, и продвигают асинхронщину. А asyncio - хуйня, чтобы написать асинхронный веб-сервер.
Аноним 09/09/19 Пнд 23:15:35 1470761306
>>1470757
> ЧСВ-дириком
Зато сэкономил себе время и не будешь работать с неприятным тебе человеком.
> я в основном работал один и никогда в паре с тестироващиками
Его поинт в том, что ты у нас домашний не командный игрок и все вытекающие отсюда проблемы.
Аноним 09/09/19 Пнд 23:21:30 1470770307
>>1470756
> Но ето опасно.
> Warning The pickle module is not secure against erroneous or maliciously constructed data. Never unpickle data received from an untrusted or unauthenticated source.
> JSON
Ну это просто пушка!
> json
Работает нормально только со словарями. Десериализовать в класс начинаются боль и питон.
> А можешь посмотреть и на сторонние инструменты
> https://github.com/marshmallow-code/marshmallow
Выглядит интересно, спасибо, посмотрю.
Аноним 09/09/19 Пнд 23:24:32 1470773308
>>1470761
> Его поинт
Я его понимаю, но от этого менее обидно не становится.
Я ж блять не отбитый на голову, не зашуганный, нормально общаюсь с коллегами и могу работать вместе, но.
С фронтэндерами/мобильниками/ML работал жи.
Аноним 09/09/19 Пнд 23:28:32 1470776309
>>1470773
Ну это ты считаешь, что ты не сыч и будешь участвовать в скрам-приседаниях. А со стороны того манагера выглядит, что поток соискателей и поди залезь каждому в голову и выясни правда это или нет.
Аноним 09/09/19 Пнд 23:31:49 1470778310
Аноним 10/09/19 Втр 01:29:29 1470809311
Мне какжется, или фреймворки омакакивают?
Аноним 10/09/19 Втр 05:57:28 1470849312
>>1470809
ыыы омакакивают у у у мартышки кодеры говнокодеры ыыыы
Аноним 10/09/19 Втр 07:08:48 1470853313
>>1470758
Тому що пайтон для веба не нужен.
Аноним 10/09/19 Втр 08:33:16 1470866314
>>1470809

Не кажется, но ты ожидал другого? Фреймворки создают, чтобы облегчить и ускорить работу программиста, автоматизировать при возможности. Если хочешь именно кодить, просто потому что тебе это нравится, то рынку ты не нужен. А фреймворки для гуманитариев нужны.
Так и живём, так и катимся в светлое коммунистическое будущее , блеать.
Аноним 10/09/19 Втр 08:34:33 1470867315
>>1470853

Ага, лучше уж php, куда питону-то с ним тягаться.
Аноним 10/09/19 Втр 08:46:33 1470871316
Аноним 10/09/19 Втр 09:23:02 1470881317
>>1470871

Угу, ведь сайты-визитки и лендинги - это такой уберхайлоад, что с ним только php справится, как же иначе-то.
Аноним 10/09/19 Втр 09:47:05 1470888318
>>1470759
поверх него ставят джангу или пишут только на нем?
Аноним 10/09/19 Втр 09:54:50 1470892319
>>1470888

Только на нём, это считай отдельный фреймворк.
Аноним 10/09/19 Втр 10:08:15 1470899320
>>1470881
Если питоша даже с сайтами-визитками не справляется, то о чем тут вообще говорить.
Аноним 10/09/19 Втр 10:10:10 1470900321
>>1470892
а батарейки там есть?
Аноним 10/09/19 Втр 10:41:25 1470915322
>>1470853
Я написал CV алгоритм для детекта некоторых вещей. Как на вход алгоритма будут попадать картинки? Даже асинхронщина требует сериализации.
Аноним 10/09/19 Втр 12:27:33 1470962323
>>1469884
это же второй питон
Аноним 10/09/19 Втр 12:27:57 1470964324
>>1469884
это же второй питон

Аноним 10/09/19 Втр 13:11:44 1470986325
15675273417070.jpg (68Кб, 720x510)
720x510
привет двачик
Помогити, мне нужно из React, используя Axios отправить файл на Django-Rest, но не просто отправить, а создать какой-то пользовательский вью, чтобы пропарсить этот файл xls и полученные данные записать в базу. Наведите меня на что-нибудь, чтобы я понял, как это сделать
Аноним 10/09/19 Втр 13:49:03 1471003326
>>1470915
Что такое асинхронность? Какие задачи? Что читать, где применять?
Аноним 10/09/19 Втр 14:32:49 1471031327
>>1465926 (OP)
Програмач, стоит задача писать данные в базу (mysql).

Данные заполняются юзером при запуске скрипта. Они имеют строгий формат (некоторые поля должны быть a-Z, некоторые только числовые), но юзеры бывают тупые (могут совать неподходящие символы в данные, типа символов перевода строк или пробелы) или даже саботажники.

Чем такие вещи фильтруются-валидируются в питоне?




Аноним 10/09/19 Втр 14:38:18 1471035328
>>1471003
Это когда на снежной горке ты пускаешь своего ребенка по ледяной дорожке, но не смотришь что внизу и вообще забываешь о нем навсегда как только ты отправил его вниз.
Аноним 10/09/19 Втр 14:45:19 1471041329
Аноны, как записать символы в матрицу по столбцам?
Вообще не понимаю, хотя бы алгоритм
Аноним 10/09/19 Втр 15:12:12 1471055330
>>1471041
Каждые n символов делаешь перевод строки.
Аноним 10/09/19 Втр 16:04:16 1471086331
>>1471035
Нет, это не полноценная асинхронность, ты описываешь схему с очередью задач без переключения. Как в JS, если без async/await.

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

Питон про нормальную асинхронность, и в JS она тоже уже давно потдержена.
Аноним 10/09/19 Втр 16:40:50 1471109332
Аноним 10/09/19 Втр 16:43:36 1471112333
>>1471109
Есть актуальный мануал по джанге на русском?
Кроме документации.
Помню, читал что-то оче годное, но по старой версии.
Аноним 10/09/19 Втр 16:53:38 1471123334
c4a.jpg (8Кб, 238x192)
238x192
1.png (27Кб, 739x268)
739x268
2.png (46Кб, 814x302)
814x302
Хлебушек снова выходит на связь, например.
Впорос по {{ form }}:
А вот я хочу заместо renewal date (пик 1) видеть кастомное название, кириллическое, например, но не хочу превращать код в "хуй = пидр жопа водка балалайка ельцин".
Как реализовать?
Аноним 10/09/19 Втр 16:54:56 1471126335
>>1471109
где асинхронность?
Аноним 10/09/19 Втр 16:56:25 1471127336
Аноним 10/09/19 Втр 16:56:53 1471128337
а для джанги обязатнлен линукс?
Аноним 10/09/19 Втр 16:57:30 1471129338
Аноним 10/09/19 Втр 16:58:22 1471130339
Аноним 10/09/19 Втр 17:00:16 1471136340
Аноним 10/09/19 Втр 17:03:30 1471139341
джанго лучше рельс?
Аноним 10/09/19 Втр 17:04:26 1471140342
Аноним 10/09/19 Втр 17:12:15 1471144343
maxresdefault.jpg (48Кб, 1104x562)
1104x562
Аноним 10/09/19 Втр 17:12:50 1471145344
Аноним 10/09/19 Втр 17:12:56 1471146345
>>1471086
Ты нихуя не понимаешь, но объяснять бесплатно мне лень.
Аноним 10/09/19 Втр 18:36:33 1471208346
>>1471145
Чому?
Вроде ж просто написали что будут плавно переходить на асинхронность и всё ок.
Аноним 10/09/19 Втр 18:37:38 1471209347
Аноним 10/09/19 Втр 18:46:21 1471222348
>>1471139
не, хуйня. изучай рельсы
Аноним 10/09/19 Втр 18:46:51 1471223349
>>1471145
будет пушка, третье пришествие пыхона!
Аноним 10/09/19 Втр 18:55:32 1471235350
>>1471209
Ну да, всё-таки кодовая база большая, но что поделать?
Аноним 10/09/19 Втр 18:57:46 1471236351
Аноним 10/09/19 Втр 18:59:05 1471239352
Аноним 10/09/19 Втр 19:02:28 1471244353
>>1465926 (OP)
В прошлом году вышел python 3.7, в этом году выходит python 3.8, видимо, в следующем году выйдет python 3.9, что, в 2021 грядет python 4?
Аноним 10/09/19 Втр 19:05:12 1471250354
Аноним 10/09/19 Втр 19:05:31 1471252355
Закономерный шаг.
Синхронные фреймворки перестали быть нужны, они не обеспечивают максимальную утилизацию ресурсов.
Как апач перестал быть нужен со своими потоками, уступив молодым асинхронным серверам, так и фреймворки туда же уйдут.
Если хотят выжить - придется усидеть на двух стульях.

Я джангу давно не использовал, а вот распиливать Джанго монолиты на микросервисы на aiohttp уже приходилось.

Хз, выгорит, что у них или нет.
Аноним 10/09/19 Втр 19:07:52 1471256356
>>1471252
на простых сайтах еще долго будут
Аноним 10/09/19 Втр 19:09:37 1471257357
Блядь, я только сегодня джангу осилил, а вы мне тут еще какую -то асинхронность тащите.
Охуели в край уже, сука!
Аноним 10/09/19 Втр 19:11:16 1471263358
>>1471256

Для простых сайтов есть вордпресс.
Аноним 10/09/19 Втр 19:12:54 1471267359
Аноним 10/09/19 Втр 19:28:12 1471289360
>>1471252
> Джанго монолиты на микросервисы на aiohttp
Распиливаем на работе сейчас NodeJS монолит на aiohttp/tornado микросервисы. Я когда узнал об этом - охуел.
Аноним 10/09/19 Втр 19:29:56 1471294361
>>1471031
Как и везде, вот ты считал данные, а перед тем, как что-то еще дальше с ними делать, тебе надо их проверить, и если проверку они не проходят, то дальше их не передавать, а пользователю предъявить, мол, чо за хуйня, нормальные данные давай. Если есть графический интерфейс, то можно прям такие поля в форме сделать, что неправильные данные просто не вводятся, например, сделать так, что буквы в числовое поле просто не будут вводиться, но полностью проверку в коде это не заменяет.
Как проверять? Если случай простой, можно и ручками, вон у строки есть методы всякие, там isalpha, isnumeric, isspace, count, и многие другие, еще есть стандартный модуль re для регулярных выражений, можешь регулярками проверять, в конце концов, строки это итерируемый объект, можешь просто посимвольно пройти и проверить.
Если ты уже используешь какой-то фрэймворк для своих целей, может, там уже есть свои спецсредства для валидации. Хочешь специальных фрэймворков для валидации данных, есть и такие
https://github.com/vinta/awesome-python#data-validation
Аноним 10/09/19 Втр 19:33:05 1471303362
>>1471257

Почувствуй, каково писать на js.
Аноним 10/09/19 Втр 19:33:45 1471305363
>>1471128
Нет, не обязателен. Но полезен и приятен.
Аноним 10/09/19 Втр 19:35:45 1471308364
>>1471289
>aiohttp
как к нему прикрутить БД?
Аноним 10/09/19 Втр 19:48:42 1471327365
>>1471308
Через ОRМ или aio-psycopg2(или типа того).
У нас первый вариант, т.к. до записи в БД данные хранятся в кафке и всё ок.
Аноним 10/09/19 Втр 19:49:44 1471329366
>>1471327
насколько там мерзкая орм?
Аноним 10/09/19 Втр 19:52:17 1471332367
>>1471235
Использовать гораздо более подходящие для асинхронных неблокирующих веб-серверов go и jvm-языки там, где производительности блокирующих веб-приложений уже недостаточно.
Аноним 10/09/19 Втр 19:52:36 1471333368
>>1471329
Смотря какую выберешь.
Можно pewee обмазаться, можно aiopg(похожа на алхимию).
Аноним 10/09/19 Втр 19:53:38 1471334369
>>1471332
Круто, но вопрос и статься о том, куда и как будет двигаться синхронная Django.
Аноним 10/09/19 Втр 19:58:49 1471343370
казуалка на 2 игрока
js(noda)+ aiohttp+DB
все верно?
Аноним 10/09/19 Втр 20:01:10 1471346371
>>1471334
> куда и как будет двигаться синхронная Django.
Продолжать в будущее, а куда еще? Использование неблокирующей асинхронщины оправдано только при высоких нагрузках в приложениях, где треды большей частью времени сычуют в blocking io. Во всех остальных случаях это или лишний геморрой, или тот же blocking, если дристануть подливой и нечаянно блокировать тред.

Проще говоря, для большинства питоновебприложений все это нахуй не всралось и вполне хватает настроенного wsgi с каким-нибудь gunicorn и отсайзенным количеством воркеров с name_your_favorite_web_framework
Аноним 10/09/19 Втр 20:05:05 1471350372
>>1471257
>>1471303
Чаю. В JS не успел написать компонент на фреймворк нейм, а он уже успел устареть, абандониться контрибьюторами и удалиться из npm.
Аноним 10/09/19 Втр 20:05:22 1471351373
>>1471346
Где геморрой-то, когда async/await уже запилен
Аноним 10/09/19 Втр 20:09:51 1471354374
>>1471350

Я лять 7 лет назад использовал ангулар, я сейчас использую ангулар, чуть позднее, ну пусть будет лет пять назад, я использовал express и не стесняюсь его иногда забрать сейчас.
Где быстро меняющееся it?
Аноним 10/09/19 Втр 20:11:18 1471357375
>>1471351

Писать стало легче, а дебажить - нет.
Аноним 10/09/19 Втр 20:31:44 1471367376
>>1471357
Дебажить просто логами нужно, а не дебаггером
Аноним 10/09/19 Втр 20:47:15 1471374377
>>1465926 (OP)
Почему джава господа и рубисты получают на порядок больше питонистов? С чем это связано?
CV и ML в рассчет не берем.
Аноним 10/09/19 Втр 20:50:22 1471377378
>>1471374
1. Пруфы
2, На яве - тырпрайз==дорохо, за руби ничего не могу сказать.
Аноним 10/09/19 Втр 21:01:19 1471384379
>>1471367

Ооо, пыхер, vardumpа хватит для любого случая? Круть)
Аноним 10/09/19 Втр 21:04:14 1471385380
Аноним 10/09/19 Втр 21:06:42 1471387381
>>1471384
Какой я тебе пыхер, маня. Все хорошие разработчики дебажат логами. Потому что лог
1. Выдает тебе срез стейта.
2. Работает в асинхронной, многопоточной и любой другой среде.
3. Намного меньше проблем с воспроизводимостью.

Сначала криворукие привыкают к дебаггеру, а потом ноят о том, что асинхронный код - сложна.
Аноним 10/09/19 Втр 21:07:35 1471388382
>>1471374

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

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

А популярность руби последние годы помножилась на ноль, зато в глаза бросаются зп вакансий в америкосские конторы, которым нужны мидлы/сеньеры. Там руби ещё более менее жив, ибо много легаси говна было создано в последний стартап бум.
Аноним 10/09/19 Втр 21:12:50 1471394383
>>1471387

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

Но отказываться от дебаггера? А ты отказаться от использования рук не хочешь? Это откат в каменный век разработки.
Аноним 10/09/19 Втр 21:57:35 1471425384
>>1471367
Дебажить нужно дебаггером. Логи для саппорта и разбора инцидентов. Невозможность нормально поставить брейкпоинт где угодно это пиздец.
Аноним 10/09/19 Втр 21:59:05 1471426385
Аноним 10/09/19 Втр 22:33:30 1471445386
>>1471333
Пиви разве работает асинхронно?
Аноним 10/09/19 Втр 22:53:07 1471454387
>3.5 релизнули 4 года назад
>нормальной асинхронной orm так и не завезли, пиши запросы руками
>асинхронные фреймворки представляют из себя набор "напиши все сам, вот тебе роуты и библиотеки с 10 звездочками"

>до сих пор нет нормальных либ для data definition, вот тебе 2.5 мертвых библиотеки, остальное сами пиши
>интрепретатор мы оптимизировать не будем, скорость НИНУЖНА
>местный ООП представляет из себя цирк с конями
>нормальные треды тоже не нужны
>сам язык используется для прототипирования или требует жутких костылей для нормального прода

Но если бы где нибудь было лучше и за это бы платили, то я бы свалил
Аноним 10/09/19 Втр 22:57:17 1471456388
>>1471454

Интересно, есть ли язык, к которому нет длинного списка претензий?
Аноним 10/09/19 Втр 22:58:43 1471457389
Аноним 10/09/19 Втр 23:00:29 1471459390
>>1471140
Ну хуй с ним с ельциным. Практика встраивания кириллицы в код существует, или это пиздец какой нехороший тон?
Аноним 10/09/19 Втр 23:05:29 1471462391
Аноним 10/09/19 Втр 23:05:56 1471463392
>>1471459

А зачем? Есть же i18n.
Аноним 10/09/19 Втр 23:07:32 1471464393
>>1471462
>>1471463
Че я пистрон учу чтоб пердолиться чтоли?
Аноним 10/09/19 Втр 23:08:49 1471465394
А, я думал опять какой то костыль предлагают
Аноним 10/09/19 Втр 23:41:56 1471479395
Короче, вы меня нихуя не поняли сам виноват
Проблему решил добавлением label, о котором в моей мурзилке ничего не говорилось
Аноним 10/09/19 Втр 23:50:49 1471485396
>>1471250
>3.10 же, ну.
Почему 3.10, если нынешний 3.7, а не 3.07?
Аноним 11/09/19 Срд 00:02:54 1471492397
>>1471445
peewee-async
Проебланил немого
Аноним 11/09/19 Срд 00:04:10 1471493398
>>1471485
Потому что версионирование такое позволяет
Аноним 11/09/19 Срд 00:09:19 1471496399
>>1471456

Как кое-кто говорил: "Есть два типа языков: одни все ругают, а на других никто не пишет".
Аноним 11/09/19 Срд 00:11:16 1471498400
>>1471485

Потому что число после точки в версии - это не дробная часть или что-то вроде того, а совершенно отдельное число, никак не связанное с первым. Это всё равно, что писать, например "3; 7".
Аноним 11/09/19 Срд 00:56:18 1471515401
>>1471454
Питон не про многопоточность (GIL GIL PIDOR) и промышленное программирование. Питон про скрипты (админов и сетевиков), различные алгоритмы и прототипы.
Тащемта говоря, не заинтересуйся питоном научное сообщество и примазавшиеся шлимазлы и не будь в питоне всякие DS, CV и ML, то был бы Питон где-то подле Руби, только подальше от веба (потому что рельсы удобнее джанг) и поближе к админам, которые решили забыть про регулярные выражения Перл и выучить хотя бы один язык программирования.

Но в этом нет ничего плохого. ЯП это просто инструменты для своих задач и ничего не мешает применять различные языки для различных задач, где они наиболее эффективны. Глупо ограничивать себя один ЯП и мужественно превозмогать те вещи, которые в других языках делаются с полпинка.
>>1471456
Есть. Полтора. Котлин, который обожают все, кто на нем писал, и Раст который после Крестов почти как Котлин для ведроебов с ограничением ихней 6 джавы 150 летней давности.
Аноним 11/09/19 Срд 01:20:30 1471518402
>>1471515
>Питон не про промышленное программирование
Сука, я сейчас сижу на проекте, где мы делаем высоконагруженную апликуху и сильной повязкой на финансовых вопросов. Единственный плюс это скорость написания фич, как только стартап выстрелил начили все ОПТИМИЗИРОВАТЬ и возникает ощущение, что нахуй пистон выкинем.
Аноним 11/09/19 Срд 01:33:25 1471522403
Аноним 11/09/19 Срд 03:22:53 1471553404
>>1471518
Ухухухухухуху
Я каждый раз питонистов спрашиваю, в чем кайф и смысл питона.
Все в один голос отвечают: охуенно быстрое прототипирование. А потом, мол, мы перекатываем на нормальные языки.
Ну, ок, а в чем проблема прототипировать сразу на целевом языке?
Это, блядь, не самолет, который сперва надо из говна вылепить, чтобы посмотреть, чо получится.
Аноним 11/09/19 Срд 03:24:05 1471555405
Аноним 11/09/19 Срд 05:11:09 1471583406
>В том и смысл вышки - получить фундамент. Стеку тебя не научат, да. Образование слишком консервативная вещь, редкий препод угонится за изменениями стека со своей программой обучения.
Так что стек за тобой, а фендамент за вышкой. Плюс, анон как и всякий человек, ленив, а значит вероятность самостоятельного изучения фендаменталки - 0,1%.
Хочу получить фундамент без вуза регистрации и смс.
Вышкобоги, накидайте запросов для гугла
Аноним 11/09/19 Срд 06:15:07 1471585407
Ребят, вопрос от нуфага:
возможно не только к питону относится
Как я понял, нет смысла пытаться сделать так, чтоб программа, которую я написал кодв случае неверного ИНПУТА рестарталась, ведь это делается уже в других прогах, видимо. Ибо try except работает только один раз, после второго неверного инпута все крашится.
Я зря с этим морочусь и создаю лишнюю головную боль? Или надо до конца пилить?
Например делаю задание про месяца года и ввожу не число, а букву "а". В первый раз try/except говорит "введите число, а не название", а во второй раз все вырубает.
Аноним 11/09/19 Срд 07:17:38 1471592408
>>1469012
Видимо, писать бота
мимо
Аноним 11/09/19 Срд 07:29:16 1471595409
>>1471585
Делай input в цикле, который не прервётся, пока ты не введёшь корректное значение. Разумно такой ввод в отдельную функцию вынести, если надо вводить несколько значений.

def my_input():
while True:
try:
value = int(input())
except:
print('stuppid monkey')
continue
else:
return value
Аноним 11/09/19 Срд 07:30:57 1471596410
>>1471595
Ого, спасибо, анон. Домой приеду попробую.
Аноним 11/09/19 Срд 07:44:24 1471600411
>>1471346
>Продолжать в будущее, а куда еще? Использование неблокирующей асинхронщины оправдано только при высоких нагрузках в приложениях, где треды большей частью времени сычуют в blocking io.
В тредах много гемора с блокировками, которые тебе самому надо выставлять, асинхронщина в этом плане проще.

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

Но сокетов и подобного нет, проще синхронно жить, без корутин и без потоков.
Аноним 11/09/19 Срд 07:47:19 1471602412
>>1471595
А continue что делает? Как pass пропускает что ли?
Аноним 11/09/19 Срд 07:48:14 1471604413
>>1471289
Сам переписываю софтину с node.js на asyncio+aiohttp. Но это шило на мыло, везде асинхронщина, в ноде она чуть проще и понятнее, просто сам js как язык говно, хотя может даже быстрее.
Аноним 11/09/19 Срд 07:50:12 1471605414
>>1471553
Быстро сделали мвп, быстро нашли клиентов и начали делать деньги, теперь можно и расслабиться, грамотное проектирование заняло бы гораздо больше времени. А тут проект уже приносит прибыль, скорость внедрения фич начинает уступать надёжности в продуктовом плане и пора что-то менять
Аноним 11/09/19 Срд 07:51:34 1471606415
>>1471602
Да, ничего, индийский код просто. Проще так будет:

def my_input():
while True:
try:
return int(input())
except:
print('stuppid monkey, try again')

Аноним 11/09/19 Срд 07:56:20 1471608416
>>1471553
В питоне ты как раз делаешь грамотное проектирование, быстро и прозрачно. Вот если вдруг станет актуально сильно разгонять, то может потом придётся полностью или частично на другие платформы переходить и разные кривые хаки придумывать. Но для этого надо, чтобы взлетело, и чтобы в твоей задаче это было актуально.
Аноним 11/09/19 Срд 07:58:54 1471609417
>>1471606
Наверное идиотский вопрос задам, но все же, на всякий случай.
Вот у меня получается мои месяцы тоже функцией идут
Мне вот функцию с неверным инпутом под нее засунуть или уже после запуска самих месяцов ставить? Или до них? Или вообще похер?
То есть:
def mesyaci() :
.... тут хуйня всякая
.... def netotinput() :

Так?
Аноним 11/09/19 Срд 08:07:22 1471613418
>>1471553
на рельсах еще лучше
а потом сваливают на скалу
Аноним 11/09/19 Срд 09:05:58 1471627419
>>1471129
Очевидно, что надо только по актуальным версиям. 1.9 неактуальна
Аноним 11/09/19 Срд 09:06:31 1471628420
Аноним 11/09/19 Срд 09:38:45 1471640421
Выбирал между "Django 2 в примерах. Меле" и этой книгой.
В итоге выбрал книгу Дронова (хоть и не люблю многостаночников).
Книга оказалась хорошей, это не первая книга автора по Django. Предыдущая была слабей, как по подаче материала так и по решениям которые автор приводил.
Аноним 11/09/19 Срд 10:23:57 1471654422
>>1471627
Чего там неактуального? Сейчас 2.2.5 используют
Аноним 11/09/19 Срд 10:27:19 1471659423
>>1471654
Куча всякой мелочи изменилось, но умеренно.

Самое принципиальное, что сильно изменилось, это обработка url
Аноним 11/09/19 Срд 10:31:10 1471662424
>>1471659
Для вката 1.9 актуален, урл после 1.8 меняли
Аноним 11/09/19 Срд 11:21:37 1471675425
>>1471555
Войтивайти, плз.

> дизморальщики
Ты дурак? Никто не говорит, что Питон не нужен. Питон нужен. В своих задачах где он хорош. Где он не хорош, питонистам следует расширить экспертизу и выучить и использовать другие языки, а не мужественно превозмогать авгиевы конюшни.
Аноним 11/09/19 Срд 11:26:20 1471679426
>>1471600
Как только ты уходишь от модели запрос-ответ и начинает работать с каналами и потоками данных, тут-то нужно съебывать с Питона.
Аноним 11/09/19 Срд 11:27:05 1471681427
Почему комментарии внутри функций сделаны через """ hui """ ?
Почему нельзя использовать обычный оператор комментария # hui ?
Аноним 11/09/19 Срд 11:30:13 1471684428
>>1471681
>Почему нельзя использовать обычный оператор комментария # hui ?
Ты ведь даже не пробовал?
Аноним 11/09/19 Срд 11:30:49 1471687429
>>1471681
Тебя, блядь, просто забыли спросить, извини.
Аноним 11/09/19 Срд 11:31:17 1471688430
>>1471684
Я посмотрел курс по диагонали перед тем как его пройти.
Почему-то """ такой комментарий """ там считается дефолтным для функций
Аноним 11/09/19 Срд 11:34:47 1471694431
>>1471681

Потому что это докстринг, а не коммент, блеать. Для документации нужно.
Аноним 11/09/19 Срд 11:36:13 1471696432
>>1471694
>докстринг, а не коммент
Ачоакакаяразница?
Аноним 11/09/19 Срд 11:37:55 1471700433
>>1471688
>>1471696
Ты можешь из коментариев кода генерировать документацию, там уже есть разница между видами коментов
Аноним 11/09/19 Срд 11:40:38 1471705434
>>1471696

А ещё ты можешь использовать докстринг для многострочных комментов, если ты упоротый.
Аноним 11/09/19 Срд 11:47:28 1471711435
>>1471700
Круто, спасибо

>>1471705
А что тру питонисты используют для многострочных комментариев?
Аноним 11/09/19 Срд 11:54:32 1471714436
>>1471711

Тру питонисты начинают каждую строку многострочного комментария с #. В любой ide это делается автоматически или одним хоткеем.
Аноним 11/09/19 Срд 14:06:33 1471770437
>>1471553
>Это, блядь, не самолет, который сперва надо из говна вылепить, чтобы посмотреть, чо получится.
MVP
PROOF OF CONCEPT
Аноним 11/09/19 Срд 14:13:14 1471773438
>>1471714
>или одним хоткеем.
Ctrl + V
Аноним 11/09/19 Срд 14:47:11 1471782439
Аноним 11/09/19 Срд 15:20:39 1471798440
Сап двач, ньюфаг выходит на связь, короче суть такая, есть задача классиечская на проверку правильности скобок, поэтому мне нужен стек, могу конечно и сам написать, но я думаю в питоне уже есть своя реализация. Как она называется?
Аноним 11/09/19 Срд 15:23:47 1471800441
>>1471798

Нет её, слишком узкоспециализированно. Да и в пять строк пишется же.
Аноним 11/09/19 Срд 15:24:27 1471802442
>>1471800
Не может такого быть, ты походу и сам ньюфаг ебаный и не знаешь нихуя!
Аноним 11/09/19 Срд 15:26:49 1471804443
Ха, я нашел
from collections import deque
from queue import LifoQueue

обе эти хуйни подойдут

все, вопрос закрыт.
Аноним 11/09/19 Срд 15:29:05 1471806444
>>1471804

Так тебе только дек нужен был? В это и стандартный list умеет.
Аноним 11/09/19 Срд 15:32:04 1471808445
>>1471806
Да все иди нахуй, все уже поняли, что ты хуесос ничего незнающий.
Аноним 11/09/19 Срд 15:38:46 1471815446
>>1471808

Ууух, сколько эмоций. Смотри, не забывай лекарства свои принимать.
Аноним 11/09/19 Срд 16:07:13 1471829447
>>1471798
Бля, я понимаю, что я кормлю жирноту, но тот стек, что в этой задаче нужен это одна ебаная переменная
Аноним 11/09/19 Срд 16:09:41 1471830448
Аноним 11/09/19 Срд 16:12:39 1471832449
>>1471829

Если несколько типов скобок, то не прокатит.
Аноним 11/09/19 Срд 16:24:09 1471841450
Посоны, а кто-нибудь может мне помочь с ткинтером? Написал небольшой парсер файлов игры, и нужно через ткинтер забубенить вызов функции отрисовки и перевода содержимого файлов, но никак не могу догнать, как это сделать среверс-инженирить похожие проги не получилось
Не хочется тут палить код, так что телега fakeaccount123123
Аноним 11/09/19 Срд 16:26:42 1471844451
>>1471832
Ну можно вложенный счётчик сделать, на который будет переходить при другом виде скобок. Их всего три вида, там значит и так никаких особых проблем не будет
Аноним 11/09/19 Срд 16:30:03 1471846452
>>1471844
Ну сделай, а мы посмеемся посмотрим
Аноним 11/09/19 Срд 16:38:24 1471848453
>>1471844

Не, не получится. Так можно учесть нужное количество скобок, но закрывать их можно в произвольном порядке, и это пройдёт проверку.
Аноним 11/09/19 Срд 16:39:49 1471849454
>>1471846
Да ну, это некрасиво получится.Но вообще реально, я сейчас прикинул. Ну ладно пусть список вместо переменной, всё равно алгоритм на несколько строчек.
Аноним 11/09/19 Срд 16:45:00 1471855455
>>1471848
Мне в голову пришёл такой функциональный стиль, когда встречая скобку другого вида рекурсивно вызывается та же функция, но уже считающая по другой скобке, я бы так сделал.
Аноним 11/09/19 Срд 16:46:25 1471856456
>классическая задачу на проверку скобок, чтобы наработать навык работы со стеком
>нет, хотим изъебываться на ровном месте.
Аноним 11/09/19 Срд 16:58:36 1471862457
>>1471855

Ты изобрёл рекурсивный спуск :D
Аноним 11/09/19 Срд 17:21:07 1471870458
Аноним 11/09/19 Срд 17:40:44 1471873459
Аноним 11/09/19 Срд 17:41:09 1471874460
>>1471862
Нормальная тема, я ещё не проходил всякие синтаксические алгоритмы
>>1471870
В питончике это RecursionError: maximum recursion depth exceeded
Аноним 11/09/19 Срд 18:23:03 1471892461
Аноним 11/09/19 Срд 18:33:11 1471898462
>>1471892
Задача, проверить корректно ли открыты и закрыты скобки. Случай с одним видом скобок:
(()()) - корректно
(()))(() - некорректно
но для этого достаточно одной переменной.

Интереснее с несколькими видами ([{<>}])
([(])) - некорректно
Тут уже стек нужен, но в питоне это совсем просто, можно обычный список в качестве стека использовать
Аноним 11/09/19 Срд 19:06:38 1471914463
c4a.jpg (8Кб, 238x192)
238x192
Покончил с основами джанги йеей!, ага.
Ну вот запилю я сейчас свой первый говноблог, а дальше что? Накидайте идей для пет прожекта, где я смогу реализовать весь функционал фреймворка, чтоб можно было его ковырять и допиливать в ходе изучения остального стека
Аноним 11/09/19 Срд 19:07:47 1471915464
>>1471898
Такое на собеседованиях спрашивают?
Аноним 11/09/19 Срд 19:08:45 1471918465
15655688197250.png (1647Кб, 3840x2160)
3840x2160
Аноним 11/09/19 Срд 19:13:45 1471923466
Аноним 11/09/19 Срд 19:15:45 1471924467
Аноним 11/09/19 Срд 19:18:43 1471927468
>>1471915
Такое спрашивают, когда изучаешь базовые алгоритмы и структуры данных. Тащемта, если не знаешь такого, ты по умолчанию дебил унтерменш и для всего юзаешь списочки ака массивы
Аноним 11/09/19 Срд 19:21:47 1471929469
>>1471927
А че я то сразу, я вообще бомж и полтора месяца назад начал вкатываться
Аноним 11/09/19 Срд 19:24:11 1471933470
>>1471929
Я так и понял анон, поэтому и написал бяку, чтоб ты навернул алгоритмы и структуры данных.
Аноним 11/09/19 Срд 19:26:40 1471937471
>>1471933
Кидай почитать чего, только без выебонов.
Мурзилку какую-нибудь базовую, для понимания предмета в целом. Потом расширю когданибудь
Аноним 11/09/19 Срд 19:53:36 1471963472
>>1471937
Algorithms in a Nutshell George T. Heineman, Gary Pollice & Stanley Selkow

Грокаем алгоритмы

Т.Кормен - Алгоритмы. Построение и анализ
Аноним 11/09/19 Срд 20:32:10 1471978473
Аноним 11/09/19 Срд 20:50:07 1471986474
>>1465988
import itertools
s = "coooccck"
result = "".join(["{}{}".format(k,len(list(g))) for k, g in itertools.groupby(s)])
Аноним 11/09/19 Срд 21:47:46 1472022475
Sunset.jpg (383Кб, 1686x1710)
1686x1710
Аноны, помогите. Стоит задача:
Использовать алгоритм bfs для нахождения кратчайшего пути. Алгоритм тут(