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

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

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

Предыдущий >>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/ (нужно знать ангельский или уметь пользоваться переводчиком)

Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылке в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
2 1465928
>>65926 (OP)
Бля, я мошенник, предыдущий не тот, что в шапке, а этот:

>>1459370 (OP)
>>1459370 (OP)
>>1459370 (OP)
>>1459370 (OP)
3 1465948
>>65926 (OP)
Заньюфажился в тред, котаны. Мне тут пришли няшные Node-mcu, сейчас освою учебничек ПРОХОРЁНКА и буду катать умный дом на малинке и нодах с использованием MicroPython :3
4 1465951
Сап, пр.
Питонисты джангисты, подскажите, чего почитать и посмотреть, чтоб в джангу вникнуть.
В питоне опыт есть некоторый, последние 2 года круды на экспрессе писал, а тут предстоит на проект с джангой перейти. Как не совсем обосраться?
5 1465952
>>1465892

>которые учат что-то по несоответствующей документации


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


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

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


Имплаин я пытаюсь вкатиться на должность, а не от нехуй делать раз через раз ковыряюсь в этом вашем питоне.
Пиздец ты инфантил, не надо так
>>1465903

>мам смотри я знаю англицкий!


Блядь, сейчас этим хвастаться такое себе - любой бомж с подворотни нынче знает английский язык, другое дело что осваивать абсолбтно новые для себя штуки легче на нативном языке для не профессиональных погромистов, конечно
7 1465974
Обычно я встречал только подобное:
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
8 1465983
>>65974

Если правильно понимаю вопрос, то иногда набор параметров заранее не известен, и если он у тебя в словаре, то переделать в 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"
9 1465984
>>65983

Разумеется, в реальности всё сложнее, тут не учтены запрещённые символы, вроде "+" и прочего. Поэтому напрямую этот код никто не пишет, все вызывают специальную функцию из ${framework_name}. Да и в стандартной либе это есть.
10 1465987
>>65984
Ох, я еще больше запутался. Но спасибо за ответ.

Это же requests либа только умеет обрабатывать такой синтаксис, как я понимаю.
Эксперементировал в конкатенации со str и dict и не вышло ничего.
11 1465988
аноны, подскажите нюфагу как через срезы и простые if,for,while реализовать такую задачку: нужно преобразовать заданную строку (например coooccck) в другую строку (c1o3c3k1). как это лучше сделать?
12 1465990
>>65988
При помощи модуля re, изучай - там в двух словах не объяснишь, у него формат вабще крайне сложный.
13 1466017
В Джанго (на хтмл страничке) можно как-то реализовать такой проход (пик1) по словарю без использования items()? По идее должно быть на пик 2, но нет, нихуя не работает.
14 1466028
>>65988
Циклом пройти по строке, считая каждый раз количество повторяющихся символов и вставляя это количество после первого символа вместо всех остальных. Вставлять можно срезами+конкатенацией строк. Короче бери и делай, дальше только вместо тебя всё написать.
>>65990
Очевидно это задача на алгоритмы, а не регулярные выражения, там даже указано, что использовать можно.
15 1466039
>>65968
Спасибо, анон, почитаю
16 1466040
>>65988

>как это лучше сделать?


А чем лучше операций меньше использовать, как измерять лучшесть?
sage 17 1466042
>>65988
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)))
18 1466054
>>65987

Лучше полагаться на то, как это делает requests сама. Конкатенация, как уже сказано, неправильно обрабатывает спецсимволы.
К тому же, конкатенация может прокатить только с get-запросом. Post ты через url не передашь, а requests сама сделает это за тебя, тебе остаётся только словарь передать вторым аргументом.
screen.png2 Кб, 395x81
19 1466057
>>66042

Твой скрипт ведёт себя очень странно.
sage 20 1466059
>>66057
Сори, не запускал, видимо какой-то неявный эффект.
21 1466096
Достоный перекат, ОП - хуй, но хороший такой хуй.

>>66017

> {{ d.key.key_nested }}


Ты пишешь ерунду
Сделай просто

> {{ key_nested }}

22 1466100
>>66096
Нафига мне ключ? Мне значение нужно
23 1466109
>>66100

> Нафига мне ключ?


А нафиг ты по ключам итерируешься?
Итерируйся по значениям или ключу+значению.
24 1466111
>>66109
Ну раз спрашиваю, значит нужно. Вроде как ничего сложного и необычного в этом нет, но возможность так делать почему-то, как я понимаю, отсутствует.
25 1466115
>>66111
Потому что ты глупость пытаешься сделать.
Я уже написал, что если хочешь ключ - итерируйся по ключу, если хочешь значение - по значению, если надо и то, и то - юзай и то, и то.
Ты или свой кейс показывай(возможно тебе вообще не словарь пригодился бы) или ебись сам.
26 1466116
>>66115
Тут и ебаться не с чем. Уже сделал костылем ака .values(). Джанго говно.
27 1466117
>>66116
Лел.
Есть ещё Jinja2, попробуй её.
28 1466171
Почему создание list такое долгое?
Собираю список элементов из 5к объектов за 4секунды

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

Как обрабатывают листы по 1кк элементу?
29 1466177
>>66171

Взять го?

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

Попробуй модуль array.
30 1466179
>>66177
Ну или Rust

Так вот Array не позволяет закинуть туда объекты?
31 1466180
>>66179
ну и еще у объектов переопределен метод __eq__, что увеличивает время проверки для List comprehension
32 1466185
>>66171
Списки создаются намного быстрее. Скорее всего у тебя твои объекты создаются очень медленно.

Просто список на 5k объектов будет меньше чем за миллисекунду создан.
33 1466193
>>66185
>>66171
Посмотрел, список из 5k примитивных объектов создаётся за 8ms, а не за 1ms. Но это вместе с созданием объектов, на это ресурсы идут.

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

Это на старом ноуте.
изображение.png9 Кб, 528x336
34 1466303
>>66171

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


Так диапазон же?
изображение.png32 Кб, 1071x860
35 1466311
>>66171
бiстро!
36 1466324
>>66303
>>66311
да блеать затрахали уже
сложные объекты у меня создаются, а не единицы ебучие
37 1466328
>>66324
ну так а причём тогда тут списки?
38 1466333
>>66324

Так оптимизируй создание объектов, а списки, долбоеб
39 1466356
Поясните за djangogirls и курсы от мозиллы по джанге
40 1466413
Есть что почитать по поводу создания клиент-серверных приложений на питоне?
41 1466494
>>66356

> Djangogirls


Ok

> Курсы от мозилы


Хз
Чем просто книги не устраивают?
>>66413
Есть, книги по вебу лижат на я.диске
42 1466637
>>65926 (OP)
Сап, сертификации после прохождения курсов/специализаций от coursera котируются у HRов при устройстве на первую работу джуном? Вроде же серьезная платформа
43 1466641
>>66637

Не, все хер клали.
44 1466652
a = ['123', '3444', '67888']
raz = a.split()
print (raz)

AttributeError: 'list' object has no attribute 'split'
???
Чому ерор? Делаю как в примере https://younglinux.info/python/string.php
45 1466678
>>66652

> Делаю как в примере


Делаешь не как в примере. Попробуй просто подумать, что именно ты хочешь сделать? На какие части ты хочешь разбить список строк?
46 1466706
>>1463789
Друг, ты питон учишь что ли????
47 1466742
>>66652
ты пытаешься сплитить список строк, а не строку.
48 1466744
Учусь по курсу МФТИ, решаю задачки по задавальнику. В принципе, всё шло более-менее, пока не дошёл до этого.
Единственный успех, полученный мной в задании - закрашивает только первый коридор, но в итоге код становится какой-то слишком объемным. На данный момент после первого закрашивания точка просто врезается и крашится.
Может делал кто, у меня от этих циклов голова уже кипит.
49 1466746
>>66744
Голова от циклов болит? Выкатывайся.
50 1466750
>>66746
раз подругу посадил на мотоцикл
у нее от страха break цикл
51 1466754
>>66750
Видно не туда break пихал. Спасибо.
52 1466755
>>66754
вут
53 1466756
>>66755
Один из предыдущих вариантов был с break, но прерывал не там где надо.
54 1466818
>>66328
>>66333
Переписал программу на C#
Вместо 8 секунд получил 200 мсек

А вы ебитесь дальше со своими .append
55 1466819
>>66818
Был бы не криворуким, получил бы такой же результат в питухоне
56 1466820
>>66818
Зато у нас есть секс, а у тебя нет
57 1466821
>>66637
И что, в погромировании всем действительно не похуй что ты там накурсировал себе?
Это жеж как корочки из учебных центров получать
58 1466835
>>66637
Скорее стажером.
59 1466861
>>66744
Только дошел до этого задания. Решил сходу, предыдущее задание у меня вызвало больше проблем.
60 1466971
Аноны, в каком-то из предыдущих тредов была ссылка на курс каких-то задачек, но я благополучно всё проебал. Есть у кого ссылка? Буду очень признателен.
62 1467030
>>66988
Спасибо большое. То, что надо.
64 1467137
>>67131
можно всего один раз move_right() вызывать
65 1467145
>>67137
Первый мув райт нужен чтобы цикл начинать с проверки, а не с движения, так проще с последней клеточкой в главной линии
66 1467146
>>67145
Хотя я вижу, что прогу можно переработать, но это я где-то месяц назад делал
67 1467148
>>67145
Иногда подмывает пододвинуть кружок к стартовой точке цикла, но если пораскинуть мозгами, то почти всегда можно сразу всё в цикл пихать.
68 1467151
>>67148
Ну хз, если подумать концептуально, то цикл должен выполнять задачу внутри вот этой линии, как добраться до первой клетки в линии это не задача главного цикла. Я когда делал, нигде особо это запихивать не пытался
69 1467153
Кто-нибудь добрался до задания 32? Нихуя не могу понять. Вроде все закрашиваю что нужно, но почему то не засчитывает.
И нафиг там регистр ax? В каком месте предполагается его использование?
70 1467160
>>67153
Я тот анон, который месяц назад это делал, тоже помню возникла с регистром проблема, гуглил, потому что непонятно было, что с ним делать. Но саму задачу сейчас я уже особо не помню, могу просто скинуть решение
72 1467167
>>67160
Скин, пожалуйста. Я вроде решил её, но кружок серый, типа "нештатное завершение". Хз, что нужно. Какой-то условие не выполняю, а какое - понять не могу.
73 1467173
>>67166
Шика-а-а-ароно.
Разобрался. Только и нужно-то было счетчик поставить в уже готовое своё решение. Уффф!! Осилил таки все задачи робота.

Анон, а ты графические задачи делал дальше по курсу?
74 1467183
>>67173
Ага, я делал все задачи из первых 9 практик. В контексте сортировок даже занял второе место в общем зачёте, не хватило одного очка до первого
75 1467184
>>67183
Контесте*
76 1467197
>>67183
Оу, там еще какие-то соревнования будут? Интересно.
77 1467241
А кто-нибудь работал с распознаванием QR-кодов с фотографий? Какие есть альтернативы Zbar'у? А то он потрясающе хуево распознает все с реальных снимков (причем обычным телефонным сканером подхватывается отлично).
78 1467248
>>67241
Юзал её всё ок было.
Возможно надо вначале через cv2 фоточки коректировать?
79 1467250
Ребят, а поясните конкретный случай применения классов? Может подскажете какую-нибудь простеньку реальную задачу?

Просто я вот сижу читаю книгу, мануалы на ютубе - там при пояснении классов рассказывают как СОЗДАТЬ МОДЕЛЬ СОБАКИ, или подобную хуйню, с подклассами вроде КЛАСС РЕТРИВЕР(СОБАКА), а в результате тупо создают экземпляр собаки с описанием свойств - тоже самое можно просто вбить в переменную. Какая именно должна стоять задача, чтобы начать описывать объекты экземплярами класса?
80 1467261
>>67250
А КАК БУДЕТ ЛАЯТЬ ТВОЯ СОБАКА?
ТЫ СОЗДАШЬ ФУНКЦИЮ КОТОРАЯ ПРИНИМАЕТ СОБАКУ И ЛАЕТ?
Я ХОЧУ ЧТОБЫ РЕТРИВЕРЫ ДЕЛАЛИ ГАВ ГАВ А МОПСЫ РРРРРР!
81 1467262
>>67250

Класс - это не только поля, это ещё и методы. Тоже собрался вручную их вбивать?
Вообще, классы удобны тогда, когда у тебя есть несколько логически взаимосвязанных методов и есть общие переменные, которые классы могут использовать.
А с наследованием хороших примеров не ищи, их очень мало. В теории наследование удобно, а на практике используется очень редко.
82 1467267
>>67262
>>67262
Ну тоесть грубо говоря это хранение свойств объектов + их автоматическая обработка? Но всё-же можно конкретный кейс, потому что лающую собаку я могу сделать так:
dog = ['Puttie', 3, 'Retriever]
print(dog[0] + 'make auw-auw')
Мне хочется такой пример, в котором нельзя обойтись без классов
83 1467283
>>67267

Прям такого, чтобы нельзя, нет. До появления ООП же как-то писали программы, и ничего.
Классы не дают чего-то принципиально нового, они лишь упрощают моделирование некоторых сущностей. На тех же сях вполне можно написать ряд функций, принимающих одну и ту же структуру, но по-разному с ней работающих.
Не воспринимай классы как что-то фундаментальное. Классы лишь дают новые способы сделать что-то, и всё.
84 1467297
Зачем перед вызывом корутин писать await, если они всё равно до await не запускаются?
85 1467299
>>67283
понял, спасибо.
86 1467301
>>67262

>на практике используется очень редко.


Бля, если бы. В книжках написано про синглтоны и фабрики, значит будем их везде юзать. Код стал в три раза длиннее и нечитаемым? Похую.
87 1467313
>>67301

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

Так, я забыл, что речь про питон, а не про жабу)))
89 1467316
>>67314
Да в Питоне не сильно по-другому это всё.
Причём этот оверинжиниринг -- мэйнстрим в разработке, а не косяки отдельных разрабочтиков.
90 1467393
А вот смотри, анон. Я пробегаюсь циклом 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)

Но питон, само собой, возвращает ошибку типа.
Как мне сделать, что я хочу - вернуть итое значение списка?
91 1467394
>>67393
Хуя, чет макаба сожрала разметку.

for i in massiv:
____if i.isdigit:
_________print(spisok)
92 1467396
>>67394
for i in massiv:
____if i.isdigit:
_________print(spisok)
a8UcAtoRQyE0FxMOPjB8A[1].png5 Кб, 228x100
93 1467398
>>67394
И правда сжирает. Выделил болдом итый объект списка.
94 1467400
>>67393
Пройти список по индексу
for i in range(len(list1))
----print(list2)
изображение.png18 Кб, 812x514
95 1467403
>>67398
1) isdigit - Это строковая функция, а элементы Massive принадлежат типу данных int, тоесть он в данном случае не подходит
2) нумерация элементов списка начинается с нуля, а у тебя в массиве элементы начиная с единицы, тоесть надо сделать -1 к i из массива.
96 1467404
>>67400
Блядь, оно сжирает реально символы, ну ты понял, короче
изображение.png18 Кб, 828x522
97 1467406
>>67398
>>67393
Ну или если нужна проверка, что i - это целое число, а не хуй от собаки, тогда вот так
98 1467411
>>67400
>>67403
Не, ребзя, это не то.

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

Мне нужно, чтобы цикл проходился по содержимому жсона, и если там есть consumable с индексом 1 - он присваивал бы ему первое название из списка consumable_name_rus. Если с индексом 2 - то второе и так далее.
В идеале - как мне вообще сделать, чтобы цикл сам перебирал индекса консумаблов? У меня их там десяток штук, и я не хочу расписывать каждый из них через elif.
изображение.png47 Кб, 1294x854
99 1467423
>>67411
Я даже понятия не имею что такое джейсон, но если я тебя правильно понял - ты нихуя не понимаешь в циклах и нагородил каких-то костылей
100 1467424
>>67393

А ты беги не по значениям massiv, а по индексам:
for i in range(len(massiv))
ну или
for i, value in enumerate(massiv)
101 1467429
Почему в Pycharm нет подсказок команд из импортируемого модуля, пока я руками не напишу первую, и только после этого меняется цвет from/import, и появляются подсказки с новыми командами?
102 1467432
>>67423

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


Все верно.

Жсон - это JSON, похож на питоновский словарь с парой ключ-значение. Я его распаршиваю и получаю на выходе инфу - есть consumable 1 в количестве 5, consumable 2 в количестве 10 и так далее.
Для распаршивания жсона у меня уже готовы все инструменты и словари с переводом условного "consumable 1" в удобоваримые "рунные амулеты". Единственное, что мне не удается написать - это цикл, который проходит по жсону и заменяет кодированный объект на мой перевод.
>>67424
Я уже так пробовал. Проблема-то не в том, чтобы индексировать объекты массива, а в том, чтобы под каждый объект этого массива подставить итый объект из списка spisok. Я не понимаю, как в питоне сделать spisok - т.е. чтобы для каждого i цикла брался итый объект списка.
Вторая штука - for i, value in enumerate(massiv) выглядит более правдоподобно, и если i - это элемент massiv, то как мне определить value?
103 1467435
>>67432

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


ну я тебе написал же цикл - по индексу в консьюмбл подбирается имя и выдаётся pcs, не подходит чтоли?
104 1467440
>>67432
А что конкретно ты хочешь видеть в результате?
Вот получил ты
'{ "consumable": { "1": 5, '"2": 10 }}'
К какому виду тебе надо это преобразовать?
105 1467443
>>67248
А куда именно копать? Серьезно, я гимпом игрался уже с контрастом и яркостью, даже кроппил отдельно код - вообще не видит, сука. Причем грешил сначала на питоновскую либу, но нихуя - даже zbarimg не распознал.
15650361466680.webm5,8 Мб, webm,
854x480, 0:33
106 1467447
>>67435
А, блин. Сорян, уже туплю после рабочего дня, проебался в глаза с твоим скрином. Офигенно, это то, что нужно! Спасибо и добра :3
>>67440
Анон выше все правильно сделал. В итоге я хотел видеть это в таком виде:
рунная хуйня: 5
рунная залупа: 10
107 1467454
Короче поступил я в шарагу местную на погромизда, пришел на пару а там питон. Мне пизда? Поясните по хардкору, сложно ли освоить вот это все? Я тупой и ленивый, кста. Что меня ждёт? За сколько времени можно освоится и уровня какого-то достичь?
108 1467455
>>67454
Я всё лето учу, мне норм
109 1467461
>>67454

Большинство о питоне на парах могло бы только мечтать, почти у всех кресты.
Питон - очень простой язык. Если знаешь хоть что-нибудь ещё, проблем тем более не будет. Литературы по нему очень много, в том числе на русском.
110 1467470
>>67461
А питономакаке есть смысл осваивать кгесты? Без задач, просто чтоб было, чтоб понимать писечу чуть глубже, нежели чем довольствоваться полумагическим мышлением?
111 1467471
>>67443
Ну я ж не ванга. Скинь пару примеров своих кю-эр кодов, тоже попробую поиграть с ними.
112 1467477
>>67470

Можно хорошо освоить сишку, этого достаточно для понимания. Кресты - очень сложные, профита мало. Сложные они из-за своих собственных абстракций, писечка тут не при чём. В принципе, можно освоить основы, но углубляться стоит, только если будешь на них потом писать.
113 1467485
>>67477
Но питон же не си-подобный. Как изучение си даст понимание питона?
114 1467486
>>67485
А я не про питон спрашивал, я спрашивал про писечку.
>>67477
А что вообще почитать посоветуешь? Или нарпавления скажи, я погуглю
115 1467487
>>67486
но, что такое писечка?
116 1467488
>>67485

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

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

Но это всё философская хуита. Думать нужно скорее о том, будешь ли использовать си для решения каких-то задач, например, для написания расширений для питона. Если таких задач нет, то и толку от изучения тоже не будет.
117 1467489
>>67487
Я слишком глуп для того чтоб развернуто тебе ответить. Ну писечка просто же ну, не понимаешь чтоли?
118 1467492
>>67486

По C? K&R - лучшее, что есть для начала. Неустаревающая классика.
По крестам не подскажу, но точно не Страуструп (наисложнейшая книга, уж точно не для тех, у кого питон - основной).
119 1467495
>>67471
Только что сгенерил код и распечатал его, сфоткал на телефон в хуевом качестве, и все распозналось.
Потом обратил внимание, что проблемные фотки были бОльшего разрешения (8256 x 5504). Попробовал уменьшить до 2048 по длинной стороне, и... все задетектилось отлично. Похоже, слишком большие изображения хуево распознаются. Непонятно, правда, почему.
Но спасибо тебе энивей, буду пробовать ресайзить перед распознаванием, хотя это какой-то пиздец, как по мне, если честно.
120 1467498
>>66678
>>66742
Да, точно, потом увидел что так делать нельзя.

Тащемта, делаю лабу. Не знаю с чего начать.
Задача.
Получен массив строк 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 вытянуть итые элементы.
121 1467499
>>67498
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() тебе тут точно не нужен, ты не в Си.
123 1467508
>>67505

> count += 1


for index, item in enumerate(data, 1):
124 1467509
>>67505
Кажется то, что нужно! Спасибо, анон :3
125 1467510
>>67508
Интересная конструкция, постараюсь запомнить.
126 1467513
>>67495
Ну и хорошо, антош. Пиши если что.
127 1467527

>ForeignKey


>ManyToManyField


Как понять?
Мне что теперь, бросать все и бежать учить SQL? Или пока и так сойдет?
Если можно, поясните в кратце как оно работает?
128 1467586
>>67527

>Мне что теперь, бросать все и бежать учить SQL?


Что-нибудь про основы БД прочитать очень надо бы.
129 1467603
Хочу научиться мультипроцессингу и регекспам, но чет сложно, сук.
130 1467607
>>67603

Хуйня, учится за день.
131 1467675
Долбанный синтаксис, смысл вообще в него углубляться?
132 1467694
>>67675

Это у питона-то долбанный синтаксис? Да это псевдокод по сравнению с остальными.
133 1467696
>>67694
не в плане плохой/хороший, а в плане что углубленное изучение его вообще нафиг ненужно. написал на листочке повесил возле ПК делов
134 1467708
Hi 2ch, такой трабл, я когда сохраняю в Atom (ctrl+S) выскакивает окно консоли, и когда запускаю (f6) тоже выскакивает пустое окно консоли, а потом консоль с выполняемой программой. Что за дичь пацаны?
Я определил, что это действует на всех файлах.py в одной папке. Также когда открываю файл с этой папки, то выскакивает консоль, а потом прячется.
135 1467788
>>67708
А ещё окно консоли выскакивает произвольно (или не совсем произвольно) - когда создаю новый файл, открываю, меняю код
136 1467791
>>67788
Перелазий на пайшарм
137 1467804
>>67791
Но раньше такого не было... Как можно по нормальному его переустановить?
138 1467822
Ребят, чёт не соображу, а нахуя классам нужен оператор with? Что он позволяет сделать?
139 1467823
>>67822
Контекстный манагер нахуя нужон?
140 1467832
>>67823
Ну, да?

Ну тоесть я правильно понимаю, что прописав в классе __exit__ и обратившись к нему через with - можно сделать класс, который при возникновении ошибки успеет что-то сохранить, но следом программа всё-равно вывалится с ошибкой?
141 1467833
>>67832

> который при возникновении ошибки успеет что-то сохранить


В целом - да.
142 1467834
>>67833
Есть более широкое применение?
143 1467838
>>67834

> Корректная обработка окончания работы;


> Лаконичный синтаксис начала/окончания работы.


Вроде всё.
144 1467839
>>67838
Ну и как бы под капот, в эти все методы ты можешь вставить различный функционал. Но это очевидно.
145 1467848
>>67838

>Вроде всё.


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

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

>____print('Выполняем')


>____MyClass.calc(2, 0)


это тот язык который заявлял что beautiful is better than ugly
лол
147 1467860
>>67858
Алло, клован, это наглядный пример написанный учеником.
148 1467861
>>67848

>with MyClass():


> ____print('Выполняем')


> ____MyClass.calc(2, 0)


Супер хуйово.
Норм выглядит так:

>with MyClass() as your_class:


> ____print('Выполняем')


> ____your_class.calc(2, 0)

149 1467863
>>67861
Да ну это понятно, просто суть не меняется вроде, и получается что конструкция вызова экземпляра класса слишком длинная, почему бы тогда просто было не ввести метод __exit__ который срабатывает в случае аварийного завершения работы без всяких там with? Нахуя этот with?
150 1467866
>>67863

> который срабатывает в случае аварийного завершения работы без всяких там with


Как деструктор в сях? Логично, да. Но тут вот так.
Вопрос почему стоит задать лично гвидо или тем, кто трудится над новыми релизами пистона.
Ну так, на мой скудный ум - в сях ты сам за собой подчищать должен, тут же работает сборщик мусора. Хочешь ловить ошибки - лови их в коде, который юзает твой класс.
151 1467871
>>67822
Он позволяет не забыть освободить ресурс, который тебе больше не нужен.
В С++, например, оператора with нет, потому что нет сборки мусора и деструктор объекта автоматически вызывается когда объект выходит из области видимости. В языках же со сборкой мусора так нельзя, потому что на объект может быть неучтенная ссылка из каких-то ебеней, и освобождение ресурса будет только при сборке мусора, которая происходит в неопределенный момент. Для определенности тебе нужен либо with, либо вызывать освобождение ресурса вручную.
152 1467875
>>67866
Да нет, with не лично гвидо придумал, это общая для языков со сборкой мусора тема. Либо with, либо try/finally, либо и то и другое вместе.
Собственно with это такой try/finally, в котором в finally-блоке вызывается финализатор.
153 1467877
>>67871
Извини, не совсем понял, поясни пожалуйста, каким образом with освобождает ресурс вызванного через него класса? Я же ньюфаг
154 1467879
>>67875

> with не лично гвидо придумал


Не знал, спасибо за инфу.
Я просто ничего кроме питона/с не тыкал.
155 1467890
>>67877
Ну допустим у тебя есть файл. Ты пишешь
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(), а что-то более абстрактное.
155 1467890
>>67877
Ну допустим у тебя есть файл. Ты пишешь
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(), а что-то более абстрактное.
156 1467903
>>67890
Анон, не пинай, я всё-равно до конца не понимаю

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


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

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


Так а что сделает with, если применять его с классом? Закроет класс? Но ведь класс и без того закроется, если не будет ссылок на него, а если ссылки есть - закрывать нельзя. Поудаляет атрибуты класса? Но ведь они сами поудаляются опять же если нет ссылок, и наоборот если ссылки есть - удалять нельзя. Не понимаю. Не понимаю что делает with и в какой момент он это делает
158 1467911
>>67903

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

159 1467914
>>67903

>Но ведь программа мигом отвалится


с хуя ли?
может, ты где-то выше поймаешь этот эксепшен и будешь работать дальше
а потом еще раз попытаешься с этим файлом поработать. а он не закрыт. хуй знает, что там твоя имплементация в этом случае делать будет
160 1467918
>>67914
>>67910
Аноны, я не спрашивал про with в отношении open файла, я спрашивал про приаменение with в отношении классов, и как он поможет сберечь ресурсы
161 1467922
>>67918
А в чем принципиальное отличие?
162 1467923
>>67922
В том, что класс как объект должен сам закрываться если него больше нету ссылок, и не должен закрываться если ссылки на него есть
163 1467925
>>67923
А, ну простите, извиниите. Залажу обратно под шконку
164 1467926
>>67925
Не-не, я может и не прав и не так понимаю, так что можешь пинать меня если уверен в своих словах
165 1467931
>>67923

Это не совсем верно. Сборка мусора происходит не сразу после того, как не осталось ссылок, а по одному лишь компилятору ведомому алгоритму. То, что на объект не осталось ссылок, не вызовет его финалайзер сразу же. Это тебе не c++.
Поэтому и приходится юзать эти конструкции, что на финалайзер нельзя полагаться.
166 1467932
>>67931
Ладно, хорошо. Учту. Но заниматься таким, как я понимаю, надо уже в очень крупных проектах, где за расходом ресурсов надо следить?
167 1467933
>>67926
Не знаю почему аноны делали упор на ресурсы.
Но как упрощение восприятия кода: видишь with, знаешь что что-то открывается и закрывается - тратишь меньше времени на восприятие. Работа с объектом визуально выделена отступами, что так же упрощает понимание.
Во-вторых, ты запихал в __enter__ то, что ты делаешь до, в __exit__ что делаешь после, надеюсь не нужно объяснять, что это пишется один раз, а далее ты уже работаешь с with не задумываясь про пре и пост действия. Очевидно, что объект не обязательно удаляется после работы с ним.
Хули развели срач тоже не понимаю, есть такая конструкция в петоне, пользуйтесь если надо, а если не надо идите нахуй не пользуйтесь.
168 1467937
>>67933

>Но как упрощение восприятия кода: видишь with, знаешь что что-то открывается и закрывается - тратишь меньше времени на восприятие.


Вот это понял, спасибо.

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


Ну так я хочу понять, какие именно функции удобно и полезно использовать, для этого прошу тут какие-нибудь реальные кейсы применения.
А вабще, подобные вопросы не возникали у меня после прочтения Укуса питона. Сейчас читаю книжку от Прохорёнка, которая прям как по списку проходится по многим возможностям питона - вот тут вопросы то и начинают возникать. Например, была глава про самописные итераторы на базе функции - хорошо, тут всё понятно, может пригодиться. Сейчас вот дошёл до самописных итераторов на базе класса - вот тут возникает вопрос - нахуя? Конструкция гораздо сложнее, выполняет то же...
169 1467939
>>67933
Двачую этого. Например, в документации питона есть пример, где с with автоматически сохраняется и восстанавливается состояние графического контекста. Или, например, with может автоматически блокировать общий ресурс для эксклюзивного использования. Это удобный сахарок, вот и все. Можно без него, но с ним код читаемее.
170 1467941
>>67937

> какие-нибудь реальные кейсы применения


Выбирай: https://docs.python.org/3/library/contextlib.html?highlight=contextlib
171 1467944
>>67932

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

>Не знаю почему аноны делали упор на ресурсы.


>Но как упрощение восприятия кода: видишь with, знаешь что что-то открывается и закрывается - тратишь меньше времени на восприятие.


Это что-то называется ресурсом.
173 1467950
>>67945

> Это что-то называется ресурсом.


>>> with html.bold() as fragment:


... ____print('Hello', file=fragment)
<b>Hello</b>
Что тут называется ресурсом?
174 1467967
>>67932
Скорее это не про крупные проекты, а про библиотечный код. В больших проектах в любом случае будут свои библиотеки для нужд проекта, а малых не обязательно.

Это относится и ко многим другим конструкциям языка.
175 1467968
>>67950
Какой-то стейт внутри html, который будучи не освобожденным все поломает.
c4a.jpg8 Кб, 238x192
176 1468192
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'.

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

Почему так происходит? Помогите.
177 1468313
Привет ребята, есть проблема с Atom, недавно начал глчючить: выскакивает консоль просто так и исчезает. Это происходит само по себе (во время работы), когда сохраняю, когда отрываю файл. Пробовал удалить (удалял всё - включая файлы в AppData) но это не помогло. Кто знает из-за чего это может быть, как исправить?
178 1468357
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))
179 1468361
>>68357
Почему этот код не показывает, то что после except, а отвечает на исключения, как обычно?
180 1468368
>>68361
потому, что else сработает только если не будет исклюений. Добавь finaly - оно сработает в любом случае.
181 1468376
>>68361
В EOF должна быть буква, а не 0.
Вызов KeyboardInterrupt не получается в PyCharm (ctrl - c), вместо этого выделяет строку в консоли
15352315031902.mp4525 Кб, mp4,
360x360, 0:12
182 1468397
>>68192
А разве в BookInstance не должно быть отношение один с одним, а не один со многим. Это же, как я понял, копия книги. Попробуй поменять на OneToOneField.
183 1468409
>>68397
Он вообще ебанутый.
Запись в таблице Books это и есть блядь инстанс, т.е. экземпляр книги. А он ебашит отдельную таблицу для этого.
This Is America, so Call Me Maybe (Parody Meme Video).mp49,7 Мб, mp4,
1280x720, 1:15
184 1468417
>>68192
Наверное проблема в related_name. То есть у тебя и в Авторе метод book_set и в Инстансе book_set.
tenor.gif232 Кб, 480x360
185 1468432
>>68397
https://developer.mozilla.org/ru/docs/Learn/Server-side/Django/Admin_siteside/Django/Home_page

>Добавьте встроенный список перечня Book в представление списка Author , используя тот же самый подход, который мы применили для Book/BookInstance.


В уроке никаких оне ту оне фиелдов мне не давали, а значит и в задачке он не нужон.

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

>>68417
Релатед наме не помогает, и в уроке о нем ничего не говорили.
186 1468436
>>68313
Будь ваннаби макопидором как я, используй саблим!
187 1468666
Сап, помогите

Нужно допустим взять 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
188 1468694
>>68436
оба пидора, и атомщики и саблимщики. Есть только VS Codium
189 1468696
>>68357
ну ты ибан))
делай так...

try:
__text = input ('enter...')
except:
__print('SERVER GOT SOME ERROR ALARM ALARM')
190 1468699
>>68666
forecast_data = data["forecast"][0]["forecastday"]["day"]

могу ошибаться, проверять не буду
191 1468748
>>68666
Ты всё напутал. Дай код на пастбин.
192 1468909
>>68694
Хуйня ваш вскод. Попробовал его, попробовал атом - вернулся на саблайм.
193 1468910
>>68909
Лучшая среда разработки под пайтон очевидно пайшарм.
14878806850160.jpg43 Кб, 750x562
194 1468918
>>68432

>Релатед наме не помогает


В смысле не помогает, блять ? А ну кинь, чё ты там настрочил.
195 1468933
Аноны, как вы живете с исключениями? Понадобилось мне воспользоваться модулем winreg, и весь код стал состоять из сплошных вложенных try: winreg.DoSmth(); somefunc() except OSError. Возвращало бы оно None - никаких проблем бы не было. Что почитать, чтобы научиться вместо этой лапши из try писать что-то читаемое?
196 1468944
>>68910

> пайшарм


Для больших проектов возможно. Но для мелких - слишком перегружен, отовсюду лезут эти ебучие подсказки-костыли, как будто я не знаю аргументов у print'а.
197 1468946
>>68933
Ну как бы очевидно, что данные на входе нужно проверять. Уже внутри можешь без трая крутить данными, но лишняя перестраховка никогда лишней не будет.
198 1468955
>>68918
...
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'.
199 1468956
>>68944
Можно подумать ты знаешь аргументы всего и вся. Да и следуя твоим же словам - аргументы принта нужны людям которые большие проекты пилят? Нет?
Всё чем перегружен пайшарм - комфортом пользования, написание кода без лишних телодвижений, вплоть до встроенного SSH
200 1468959
>>68910
Откуда у бедного вкатывальщика возьмутся деньги на нормальную пекарню и лицензию питоншарма?
201 1468965
>>68959
так пайшарм комьюнити бесплатный, ты чего? Да и поломаный везде где хочешь лежит
202 1468966
>>68956
Мне проще доки покурить по конкретному вопросу, чем терпеть эти выскакивающие подсказки на все случаи жизни.
203 1468968
>>68965
Не хочу камунити, хочу нормальный пгодукт изкаропки
204 1468998
Анон, посоветуй книгу или что-нибудь для написания бота в телеграмме и не только. Заранее спасибо.
205 1469006
>>68998
Документация telebot?
Тоже недавно ебался с этим, ниче не получилось. Буду читать. Английский уровень говно говна. Буду сидеть с переводчиком, значится.
206 1469012
>>68998
>>69006
А какие задачи?
207 1469061
Сап анон. Нужна админка для типа_FAQ с древовидной структурой.
раздел1
|подраздел1
|статья1
|статья2
|подраздел2
|статья1
|статья2
раздел2
|подраздел1
|статья1
|статья2
|подраздел2
|статья1
|статья2

Подскажите, пожалуйста, есть какое-то готовое решение?
image.png38 Кб, 400x510
208 1469064
>>69061
ебаная макака блядь, минус разметка. пикрил дерево
209 1469106
210 1469116
>>69106
Нет, мне нужен питоний вариант с хранением в БД, чтобы другие сервисы могли в эту БД залезать и дергать ЖСОН. жсон будет генерить editorjs
211 1469182
Последние пару дней сидел на codewars и стал стараться уложить любое решение в одну логическую строку.
На работах тоже принято так делать? Как разбивать строки так, чтобы было максимально читаемо?
212 1469188
>>69182

>ряя пистрон читаемость кокок


>будем выёбываься и сокращать что было как у настоящих прогромистов!

213 1469189
>>69182

> На работах тоже принято так делать?


Только если навредить хочешь.

> Как разбивать строки так, чтобы было максимально читаемо?


Как с функциями примерно. То есть разбить действия построчно так, что бы на одной строке выполнялась одна логическая группа действий(форматирование / лист-компрехэншн / and etc.).

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


Зачем?
214 1469191
>>69189

>зачем


Так в топовых решениях

>одна логическая группа действий(форматирование / лист-компрехэншн / and etc.).


Я гуглил длинные лист компрэхэншены, и судя по ответам на стаковерфлоу https://stackoverflow.com/questions/311588/how-to-indent-python-list-comprehensions люди делают примерно такие штуки, как у меня во втором пике.
215 1469193
>>69191

> Так в топовых решениях


Так у тебя цель какая? Пистон выучить/скилл прокачать или заниматься спортивным погромированием?

> как у меня во втором пике.


Второй пик - Ок.
Стаковерфлоу даёт самое простое и рабочее решение, интегрировать его в проект и улучшить - твоя задача.
Я бы не юзал компрехеншены с вложенностью больше 2 и тебе не советую. То же самое с обилием условий.
216 1469200
>>69193
Так в спортивном программировании вообще нет разницы, как что выглядит и сколько занимает логических строк.
А топовые решения там просто такие, которые собрали много флажков 'clever' и 'best practices', поэтому и повторяю.

>компрехеншены с вложенностью больше 2


То есть мне лучше сумму от генератора вынести в отдельную функцию? Понял, там где-то такие решения тоже были
217 1469202
>>69200
Как я уже писал, всё зависит от твоих целей. Если спорт - похуй на красивость. И тут больше нечего тебе подсказать, по крайней мере мне.

> То есть мне лучше сумму от генератора вынести в отдельную функцию?


Как я уже написал, второй пик выглядит более-менее ок ещё. Там как раз вложенность 2 (условие ж не считается). Я бы добавил развернутый коммент с пояснением работы данной йобы и всё. Но смотри в начало, насчёт твоей цели.
218 1469207
>>69202
Понял, спасибо
00001.png21 Кб, 628x189
219 1469226
>>69200
Не очень существенно, но в целом более читаемо, если локальная функция будет определена.

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

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

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

Хороший стиль какие-то тестовые и контрольные значения приводить.
Безымянный.png23 Кб, 1029x317
220 1469301
Нормально ли, что автоформаттер так переносит ? После круглых скобках? Руками бы я так не делал, зачем?
221 1469319
>>69301
Нормально, смотри PEP8.
222 1469330
>>69319
ладно, спасибо. У одного у меня бобмануло такое форматирование, значит
223 1469336
>>69301
смотрится хуевы, лучше, чтобы каждый параметр на своей строке был
224 1469338
>>69182

Нет в этом ничего хорошего, читаемость дропается в ноль.
Можно вообще всю программу написать в одно выражение, но смысл? Код должен быть читаемым, а не "О ,смотрите, я могу сжать 10 понятных строк в одну длинную".
225 1469531
>>69226
Спасибо, я о решении с filter() тоже думал, но это, понятное дело, только если выносить проверку в отдельную функцию.
Я так понимаю, это должно быть удобно, если в будущем потребуется как-то изменить условие.

>пример один привести, как считается


Вообще должно быть достаточно понятно, если к проверке прикомментить 'example: 89 == 81 + 92'
Я, кстати, где-то читал, что в коде вообще комментов должно быть по минимуму, или вообще не должно быть, типо всё понятно из самого кода. Но в случае с однострочниками это имеет смысл? Тогда в моём первом пике нужно прикомментить, например 'example: "Bad" - > "2 1 4"'
>>69338
Ну как я понял из треда, у меня пока ещё нормально. В первом это одно логическое действие -- форматирование строки, во втором мы просто по заданному диапазону собираем список элементов, удовлетворяющих условию, если условие пояснить, то остальное тривиально.
226 1469535
227 1469579
Чем лучше координаты векторы представить: списком или кортежем?
c4a.jpg8 Кб, 238x192
228 1469589
За сколько примерно осваивается фреймворк уровня джанго?
Я же заебался блядь нахуй, спокойно саморазвиваться в сериалах советуйте годноты уже не могу - иногда монитор разъебать хочется из за того что некоторое количество вещей просто так в голове не укладывается а ведь так уютно было когда основы пистрона учил
229 1469592
>>68918
Короче, получилось, но, как оказалось оно нахуй мне не нужно было, лол.
230 1469593
>>69589
Мне чет вообще питон разонравился, когда начал пытаться в веб-программирование на нем - PHP для этого оказывается в разы удобнее.
231 1469601
>>69593
Например?
232 1469603
>>69593
Пхп анально ограничен вебом, что демотивирует, так что пистрон первым языком самое то, я считаю
233 1469607
>>69589
Что конкретно вызвало затруднения? сам учу питон сейчас, интересно какие сложности у других
333.png68 Кб, 306x856
234 1469611
>>69607
Стыдно сказать, завтыкал на генерации ссылок, и вообще во всем этом url говне
Вылез в джангу сразу после того как освоил основы пистрона, от того и проблем с продвижением дохуя. Но ничего, по ходу дрочева в джанге осваиваю всякие классные штуки о которых в моей мурзилке по пистрону ничего не говорилось.

Сейчас на 7 части пикрилейтеда, оставил на завтра
235 1469612
>>69601
Щас уже все не вспомню, давно на питоне был проект, но мне дико не хватало всякой мелочи типа isset, empty, ??, ?:
И еще были какие-то вечные проблемы с подключением модулей - pycharm видит, питон не видит. Иногда просто были ситуации, когда не ясно, как их вообще подключать. Скорее всего это было из-за кривой архитектуры проекта, но все же.
236 1469613
>>69612
В любом случае знание питона тебе ничем не мешает.
С каого языка начинал погромировать?
237 1469614
>>69603
Угу, сам щас этим страдаю, потому что однотипные проекты на пыхе уже подзаебали, надо валить в другие направления, но вот куда, пока не ясно.
238 1469615
>>69613
Сначала был десктоп на C++/MFC, потом десктоп на Java/Swing, потом заразился PHP и на нем просидел аж 5 лет. Щас по сторонам смотрю, куда можно сбежать.
239 1469616
>>69615
Когда вырсту стану таким же охуенным как ты
240 1469618
>>69607
А ты где, и на чем втыкаешь?
241 1469619
>>69616
Тонко.
242 1469620
>>69618
Начал с курса МФТИ, сделал всего робота, сейчас перекатился на курсеру - слушаю уже второй курс по Python for Everybody Specialization, там про структуры данных питона.
Пока вкуриваю как волшебным образов таплы превращаются в листы и обратно.
243 1469642
>>69611
Чо за курс? Поделись ссылкой, братанон.
245 1469707
>>69579
Если тебе координаты вектора не надо менять после того, как он создан, то кортежем.

Считай просто так, что список - это переменная, а кортеж - константа. Если тебе не нужно менять координаты вектора после того, как вектор создан, то кортеж, если же у тебя какая-то динамичная система, то или список, или какая-нибудь другая структура.
logo.png10 Кб, 210x210
пужлет 246 1469717
кроме криво работающей демки рисующей кубики майнкрафта на этом говне есть стоящие трехмерные проекты?
всё время хочется вкатиться, но хочется поковырять готовые проекты, посмотреть на говнокод а я люблю говнокод... особенно на питоне... покажи мне говнокод других, попугаться
247 1469757
>>69182
хороший код это не тот, который записан в одну строчку.
Хороший код, это когда он читается новичком, как будто код сошел со страниц учебника
248 1469758
>>69717
Python Это сугубо 2д-графика и 2д-тян
249 1469759
>>69182
>>69758
Ну и by the way
return не должен содержать логических операций
250 1469760
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).
251 1469766
>>69592
Заебись, так и живем.
252 1469806
>>69707
Спасибо.
253 1469817
>>69760
И почему так? Чем им возврат тру-фолзов не нравится?
254 1469822
>>69301
>>69817
я тут возмущался, почему такой перенос параметров - норма
255 1469848
>>69822
Отключи пепку и протабулируй нормально, будь мужиком
256 1469852
>>65926 (OP)
Какая лучшая современная подробная книжка по питону для полных новичков?
257 1469853
>>69758
2д графика на пайтоне точно такая же как и 3д - биндинг для сишной либы
258 1469854
>>69852
Э байт оф пайтон 2.0 неплоха.
259 1469876
>>69852
Швитой Эрик Мэтиз - неблохо поясняет за основы.
Только не вздумай джангу по нему учить :3
260 1469884
>>69852
Алсо попробуй этого клована.
Много картинок, схемочек, свистоперделочек. Стильно нет, модно, молодежно!
261 1469910
>>69852
Новичку не нужно ничего подробного, это хуйня, больше 200 страниц не бери. Укус питона почитай, потом покодь что-нибудь, там в конце укуса есть ссылки на список задачек + задачки на разных сайтах порешай, или какой-нибудь курс приглянувшийся попроходи. Потом уже что-то подробное читай
262 1469913
>>69852
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
263 1469921
>>69913
А можно с вашей пастой поговорить?
264 1469925
>>69921
А тебе 18 есть?
265 1469936
>>69921

Я попробую.
Dive into python подходит только для тех, кто переходит с другого языка и хочет как можно быстрее вкатиться. Для новичка не подойдёт.
266 1469943
>>69936
Против "Погружения", стандартной библиотеки и PEP8 ничего не имею. А вот советовать не самые мощные веб-серверы я бы не стал. Рекомендую uWSGI позади nginx.
267 1469954
>>69936

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



Сейчас бы в 2019 не знать пару языков и не пользоваться божественным VS Code, для написания всех программ мира
268 1469972
аноны, пытаюсь считать с клавы список, затем преобразую его в множество, и снова пытаюсь его преобразовать в список. в итоге получаю TypeError: 'list' object is not callable . гугол грит шо так надо преобразовывать, а ошибки связанной со мной ваще нет. в чем может быть проблема?
кодик тут https://pastebin.com/dVRkqEgd
269 1469976
>>69972
У тебя где-то раньше ошибка https://ideone.com/lLUat2
Скорее всего ты как-то переопределил list - например есть переменная с таким именем
Снимок.PNG13 Кб, 649x351
270 1469978
>>69976
да, только то в том что в jupyter notebook эта прога чистая. то есть там только эти 6 строчек, больше ничего нет
271 1470000
>>69972
Разбей m = [i.lower() for i in input().split()] на несколько действий. Увидишь где ошибка.
272 1470001
>>70000
но проблема то только в том что почему то в разных интерпритаторах программа ведет себя по разному. на идеоне вон спокойно работает
273 1470010
>>69978
не верю кидай полный скрин. 100% ты переопределил лист
274 1470032
>>70010
забей анон. ноутбук мозги ебурил. я его перезапустил и он заново почему то нормально заработал. хуй знает че ему надо было
275 1470041
>>70001

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


Так идеон это какая-то веб хуита, ты локально через консоль у себя загоняй и смотри работает или нет.
276 1470448
Часто вижу, что в вакансиях, связанных с экспериментальными исследованиями, спрашивают Python.
Может кто сталкивался, какие примерно задачи с его помощью обычно решают, для обработки данных вероятно?
277 1470483
>>70448
Нейросети, большие данные, матвычисления - вот это вот
278 1470529
>>70483
Ого.
Но я не о вакансиях "программист" или "математик", а про узких специалистов из других областей. Физики или инженеры, например.
279 1470540
>>70529

Ну а на чём ещё всякую матановую скриптоту писать? На матлабе?
280 1470544
>>70529
просят подержать стол пока серьезные дяди пишут код на R
281 1470556
Я там в прошлом треде писал, что на собес ходил и всё хорошо прошло, ждал собеса с директором.
Так вот, дирик меня отхуесосил и отказал.
Держу в курсе.
282 1470560
>>70556

>отхуесосил


как?
283 1470573
>>70556
Расскажи, что там было, пожалуйста
284 1470588
>>70556
Печально, чувак. Поделись стори хотя бы: и выговоришься, и может чего анон подчерпнёт для себя.
285 1470591
объясните тупому,для чего исп aiohttp?
286 1470600
Как сделать так, чтоб заместо 403 отсылало на логин в джанге?
287 1470631
>>65926 (OP)
Поучился полгода, устроился на галеру. Узнал от коллег про эликсир, прощерстил тырнет, пописал пару примерчиков. Язык то топовый. Планирую уговаривать других что-нибудь написать на нем на работке.

Что сами думаете?
288 1470633
>>70631
Че знаешь? Как устроился?
289 1470638
>>70631

Инопланетный синтаксис, уговаривать людей переучиваться будет сложно.
290 1470639
Посоветуйте максимально сжатый, но тем менее содержащий самое нужное гайд/курс/видос по джанго
291 1470640
>>70633
js, vue, django, flask, asyncio, tornado, +- docker тыкал и jenkins. Ну и базовый набор с гитом и постгресом.
292 1470642
>>70640
А пистрон?
293 1470645
>>70642
Само собой. Зачем говорить то, что знаешь сам язык?
294 1470646
>>70631

> про эликсир


ты эликсирошизик из руби треда?
295 1470650
>>70646
Рубипидоры настолько тупые, что уже в эликсирошизиков превращаются?
296 1470654
>>70645
Фреймворки можно и без языка пердолить
.jpeg5 Кб, 147x150
297 1470681
Пацаны, в Питоне есть нормально сериализуемые датаклассы? Не хочу дрочиться с __init__, не хочу ебаться с проблемами с nested сериализацией.

Хочу написать нужные поля, указать их тип, собрать из них любую иерархию вложенности и без проблем все это сериализировать и десериализировать. NamedTuple имеет проблемы с nested сериализацией, по SO попробовал пару решений то одно вылезет, то другое. Это же простейшая задача - запилить классу и без писички мисички их сериализовать, которая решена в других языках с полпинка. Почему в Питоне это так сложно и как сделать правильно?
298 1470708
>>70681

Есть такая хуйня:
https://habr.com/ru/post/415829/

Но она из коробки не может в сериализацию, добавляется она, в частности, так:
https://stackoverflow.com/questions/51286748/make-the-python-json-encoder-support-pythons-new-dataclasses

Вообще, почитай о метаклассах и об аннотациях типов, может и выйдет что-то.
299 1470727
>>70708
Спасибо, стоило написать про новые датаклассы с 3.7 - про них я читал, но они с 3.7 только, а слесарьфлоу работает с максимум 3.6.

> может и выйдет что-то


Пиздец, как же я ору временами с Питона - не мочь нормально в такие простейшие вещи как классы и рекурсивный проход по дереву объекта (сериализованного объекта) нахуй.
300 1470735
>>70727

Чего ещё ждать от динамически типизированного языка. Тут не городят новые типы на каждый чих, а всегда юзают dict и пох.
301 1470748
>>70591
Асинхронный веб-фреймворк.
Очевидно что для веба.
302 1470756
>>70681
Есть встроенный модуль 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
303 1470757
>>70560
>>70573
>>70588
20 минут разговора с ЧСВ-дириком и всё.
Из общения он узнал что я в основном работал один и никогда в паре с тестироващиками, это и стало причиной отказа, по крайней мере судя по фидбэку.
Я не унываю, аноны, просто обидно что было такое приятное собеседование(побеседовали на около-питоновское), а вот так всё кончилось.
304 1470758
>>70735

> Чего ещё ждать от динамически типизированного языка


Удобства? Как например удобно работать со всякими нампаями и пандасами.

> Тут не городят новые типы на каждый чих, а всегда юзают dict и пох.


А контракт между микросервисами описывать на использованном клочке туалетного словаря? Типичный же кейс - по сваггер спецификации сгенерить классы (или наоборот), сериализовывать данные на входе и выходе в них, в тестах описать контракты в моках и пануватi. Не, это не пайтон вей. Пайтон вей - написать вручную классы, обсираться из-за несоответствия, обсираться все равно из-за сериализации, а с нормальным моком веб сервера просто пойти нахуй или поднимать в тестах фласк из говна и палок с роутами для моков.
305 1470759
>>70591
Челы подумали, что в традиционных тредах легко наступить на грабли, и продвигают асинхронщину. А asyncio - хуйня, чтобы написать асинхронный веб-сервер.
306 1470761
>>70757

> ЧСВ-дириком


Зато сэкономил себе время и не будешь работать с неприятным тебе человеком.

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


Его поинт в том, что ты у нас домашний не командный игрок и все вытекающие отсюда проблемы.
307 1470770
>>70756

> Но ето опасно.


> 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


Выглядит интересно, спасибо, посмотрю.
308 1470773
>>70761

> Его поинт


Я его понимаю, но от этого менее обидно не становится.
Я ж блять не отбитый на голову, не зашуганный, нормально общаюсь с коллегами и могу работать вместе, но.
С фронтэндерами/мобильниками/ML работал жи.
309 1470776
>>70773
Ну это ты считаешь, что ты не сыч и будешь участвовать в скрам-приседаниях. А со стороны того манагера выглядит, что поток соискателей и поди залезь каждому в голову и выясни правда это или нет.
310 1470778
311 1470809
Мне какжется, или фреймворки омакакивают?
312 1470849
>>70809
ыыы омакакивают у у у мартышки кодеры говнокодеры ыыыы
313 1470853
>>70758
Тому що пайтон для веба не нужен.
314 1470866
>>70809

Не кажется, но ты ожидал другого? Фреймворки создают, чтобы облегчить и ускорить работу программиста, автоматизировать при возможности. Если хочешь именно кодить, просто потому что тебе это нравится, то рынку ты не нужен. А фреймворки для гуманитариев нужны.
Так и живём, так и катимся в светлое коммунистическое будущее , блеать.
315 1470867
>>70853

Ага, лучше уж php, куда питону-то с ним тягаться.
317 1470881
>>70871

Угу, ведь сайты-визитки и лендинги - это такой уберхайлоад, что с ним только php справится, как же иначе-то.
318 1470888
>>70759
поверх него ставят джангу или пишут только на нем?
319 1470892
>>70888

Только на нём, это считай отдельный фреймворк.
320 1470899
>>70881
Если питоша даже с сайтами-визитками не справляется, то о чем тут вообще говорить.
321 1470900
>>70892
а батарейки там есть?
322 1470915
>>70853
Я написал CV алгоритм для детекта некоторых вещей. Как на вход алгоритма будут попадать картинки? Даже асинхронщина требует сериализации.
323 1470962
>>69884
это же второй питон
324 1470964
>>69884
это же второй питон
15675273417070.jpg68 Кб, 720x510
325 1470986
привет двачик
Помогити, мне нужно из React, используя Axios отправить файл на Django-Rest, но не просто отправить, а создать какой-то пользовательский вью, чтобы пропарсить этот файл xls и полученные данные записать в базу. Наведите меня на что-нибудь, чтобы я понял, как это сделать
326 1471003
>>70915
Что такое асинхронность? Какие задачи? Что читать, где применять?
327 1471031
>>65926 (OP)
Програмач, стоит задача писать данные в базу (mysql).

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

Чем такие вещи фильтруются-валидируются в питоне?
328 1471035
>>71003
Это когда на снежной горке ты пускаешь своего ребенка по ледяной дорожке, но не смотришь что внизу и вообще забываешь о нем навсегда как только ты отправил его вниз.
329 1471041
Аноны, как записать символы в матрицу по столбцам?
Вообще не понимаю, хотя бы алгоритм
330 1471055
>>71041
Каждые n символов делаешь перевод строки.
331 1471086
>>71035
Нет, это не полноценная асинхронность, ты описываешь схему с очередью задач без переключения. Как в JS, если без async/await.

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

Питон про нормальную асинхронность, и в JS она тоже уже давно потдержена.
333 1471112
>>71109
Есть актуальный мануал по джанге на русском?
Кроме документации.
Помню, читал что-то оче годное, но по старой версии.
334 1471123
Хлебушек снова выходит на связь, например.
Впорос по {{ form }}:
А вот я хочу заместо renewal date (пик 1) видеть кастомное название, кириллическое, например, но не хочу превращать код в "хуй = пидр жопа водка балалайка ельцин".
Как реализовать?
335 1471126
>>71109
где асинхронность?
336 1471127
>>71112
Антонио Меле
337 1471128
а для джанги обязатнлен линукс?
338 1471129
>>71112
Есть по 1.9, надо?
340 1471136
Есть такое еще. Иногда приятно почувствовать себя девочкой
https://tutorial.djangogirls.org/ru/
341 1471139
джанго лучше рельс?
342 1471140
>>71123
Babel PyBabel
maxresdefault.jpg48 Кб, 1104x562
343 1471144
344 1471145
https://habr.com/ru/post/461493/
какая то костыльщина
345 1471146
>>71086
Ты нихуя не понимаешь, но объяснять бесплатно мне лень.
346 1471208
>>71145
Чому?
Вроде ж просто написали что будут плавно переходить на асинхронность и всё ок.
347 1471209
>>71208
на это уйдет годы
348 1471222
>>71139
не, хуйня. изучай рельсы
349 1471223
>>71145
будет пушка, третье пришествие пыхона!
350 1471235
>>71209
Ну да, всё-таки кодовая база большая, но что поделать?
351 1471236
>>71222
почему?
352 1471239
>>71236
Просто Я СКОЗАЛ.
353 1471244
>>65926 (OP)
В прошлом году вышел python 3.7, в этом году выходит python 3.8, видимо, в следующем году выйдет python 3.9, что, в 2021 грядет python 4?
354 1471250
>>71244

3.10 же, ну.
355 1471252
Закономерный шаг.
Синхронные фреймворки перестали быть нужны, они не обеспечивают максимальную утилизацию ресурсов.
Как апач перестал быть нужен со своими потоками, уступив молодым асинхронным серверам, так и фреймворки туда же уйдут.
Если хотят выжить - придется усидеть на двух стульях.

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

Хз, выгорит, что у них или нет.
356 1471256
>>71252
на простых сайтах еще долго будут
357 1471257
Блядь, я только сегодня джангу осилил, а вы мне тут еще какую -то асинхронность тащите.
Охуели в край уже, сука!
358 1471263
>>71256

Для простых сайтов есть вордпресс.
359 1471267
>>71263
и они тоже
360 1471289
>>71252

> Джанго монолиты на микросервисы на aiohttp


Распиливаем на работе сейчас NodeJS монолит на aiohttp/tornado микросервисы. Я когда узнал об этом - охуел.
361 1471294
>>71031
Как и везде, вот ты считал данные, а перед тем, как что-то еще дальше с ними делать, тебе надо их проверить, и если проверку они не проходят, то дальше их не передавать, а пользователю предъявить, мол, чо за хуйня, нормальные данные давай. Если есть графический интерфейс, то можно прям такие поля в форме сделать, что неправильные данные просто не вводятся, например, сделать так, что буквы в числовое поле просто не будут вводиться, но полностью проверку в коде это не заменяет.
Как проверять? Если случай простой, можно и ручками, вон у строки есть методы всякие, там isalpha, isnumeric, isspace, count, и многие другие, еще есть стандартный модуль re для регулярных выражений, можешь регулярками проверять, в конце концов, строки это итерируемый объект, можешь просто посимвольно пройти и проверить.
Если ты уже используешь какой-то фрэймворк для своих целей, может, там уже есть свои спецсредства для валидации. Хочешь специальных фрэймворков для валидации данных, есть и такие
https://github.com/vinta/awesome-python#data-validation
362 1471303
>>71257

Почувствуй, каково писать на js.
363 1471305
>>71128
Нет, не обязателен. Но полезен и приятен.
364 1471308
>>71289

>aiohttp


как к нему прикрутить БД?
365 1471327
>>71308
Через ОRМ или aio-psycopg2(или типа того).
У нас первый вариант, т.к. до записи в БД данные хранятся в кафке и всё ок.
366 1471329
>>71327
насколько там мерзкая орм?
367 1471332
>>71235
Использовать гораздо более подходящие для асинхронных неблокирующих веб-серверов go и jvm-языки там, где производительности блокирующих веб-приложений уже недостаточно.
368 1471333
>>71329
Смотря какую выберешь.
Можно pewee обмазаться, можно aiopg(похожа на алхимию).
369 1471334
>>71332
Круто, но вопрос и статься о том, куда и как будет двигаться синхронная Django.
370 1471343
казуалка на 2 игрока
js(noda)+ aiohttp+DB
все верно?
371 1471346
>>71334

> куда и как будет двигаться синхронная Django.


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

Проще говоря, для большинства питоновебприложений все это нахуй не всралось и вполне хватает настроенного wsgi с каким-нибудь gunicorn и отсайзенным количеством воркеров с name_your_favorite_web_framework
372 1471350
>>71257
>>71303
Чаю. В JS не успел написать компонент на фреймворк нейм, а он уже успел устареть, абандониться контрибьюторами и удалиться из npm.
373 1471351
>>71346
Где геморрой-то, когда async/await уже запилен
374 1471354
>>71350

Я лять 7 лет назад использовал ангулар, я сейчас использую ангулар, чуть позднее, ну пусть будет лет пять назад, я использовал express и не стесняюсь его иногда забрать сейчас.
Где быстро меняющееся it?
375 1471357
>>71351

Писать стало легче, а дебажить - нет.
376 1471367
>>71357
Дебажить просто логами нужно, а не дебаггером
377 1471374
>>65926 (OP)
Почему джава господа и рубисты получают на порядок больше питонистов? С чем это связано?
CV и ML в рассчет не берем.
378 1471377
>>71374
1. Пруфы
2, На яве - тырпрайз==дорохо, за руби ничего не могу сказать.
379 1471384
>>71367

Ооо, пыхер, vardumpа хватит для любого случая? Круть)
380 1471385
>>70681
https://pydantic-docs.helpmanual.io
Умеет изкаробки генерить json schema и вроде как даже с вложенностью
381 1471387
>>71384
Какой я тебе пыхер, маня. Все хорошие разработчики дебажат логами. Потому что лог
1. Выдает тебе срез стейта.
2. Работает в асинхронной, многопоточной и любой другой среде.
3. Намного меньше проблем с воспроизводимостью.

Сначала криворукие привыкают к дебаггеру, а потом ноят о том, что асинхронный код - сложна.
382 1471388
>>71374

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

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

А популярность руби последние годы помножилась на ноль, зато в глаза бросаются зп вакансий в америкосские конторы, которым нужны мидлы/сеньеры. Там руби ещё более менее жив, ибо много легаси говна было создано в последний стартап бум.
383 1471394
>>71387

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

Но отказываться от дебаггера? А ты отказаться от использования рук не хочешь? Это откат в каменный век разработки.
384 1471425
>>71367
Дебажить нужно дебаггером. Логи для саппорта и разбора инцидентов. Невозможность нормально поставить брейкпоинт где угодно это пиздец.
385 1471426
>>71385
Спасибо.
386 1471445
>>71333
Пиви разве работает асинхронно?
387 1471454

>3.5 релизнули 4 года назад


>нормальной асинхронной orm так и не завезли, пиши запросы руками


>асинхронные фреймворки представляют из себя набор "напиши все сам, вот тебе роуты и библиотеки с 10 звездочками"



>до сих пор нет нормальных либ для data definition, вот тебе 2.5 мертвых библиотеки, остальное сами пиши


>интрепретатор мы оптимизировать не будем, скорость НИНУЖНА


>местный ООП представляет из себя цирк с конями


>нормальные треды тоже не нужны


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



Но если бы где нибудь было лучше и за это бы платили, то я бы свалил
388 1471456
>>71454

Интересно, есть ли язык, к которому нет длинного списка претензий?
389 1471457
>>71456
Бейсик.
390 1471459
>>71140
Ну хуй с ним с ельциным. Практика встраивания кириллицы в код существует, или это пиздец какой нехороший тон?
391 1471462
392 1471463
>>71459

А зачем? Есть же i18n.
393 1471464
>>71462
>>71463
Че я пистрон учу чтоб пердолиться чтоли?
394 1471465
А, я думал опять какой то костыль предлагают
395 1471479
Короче, вы меня нихуя не поняли сам виноват
Проблему решил добавлением label, о котором в моей мурзилке ничего не говорилось
396 1471485
>>71250

>3.10 же, ну.


Почему 3.10, если нынешний 3.7, а не 3.07?
397 1471492
>>71445
peewee-async
Проебланил немого
398 1471493
>>71485
Потому что версионирование такое позволяет
399 1471496
>>71456

Как кое-кто говорил: "Есть два типа языков: одни все ругают, а на других никто не пишет".
400 1471498
>>71485

Потому что число после точки в версии - это не дробная часть или что-то вроде того, а совершенно отдельное число, никак не связанное с первым. Это всё равно, что писать, например "3; 7".
401 1471515
>>71454
Питон не про многопоточность (GIL GIL PIDOR) и промышленное программирование. Питон про скрипты (админов и сетевиков), различные алгоритмы и прототипы.
Тащемта говоря, не заинтересуйся питоном научное сообщество и примазавшиеся шлимазлы и не будь в питоне всякие DS, CV и ML, то был бы Питон где-то подле Руби, только подальше от веба (потому что рельсы удобнее джанг) и поближе к админам, которые решили забыть про регулярные выражения Перл и выучить хотя бы один язык программирования.

Но в этом нет ничего плохого. ЯП это просто инструменты для своих задач и ничего не мешает применять различные языки для различных задач, где они наиболее эффективны. Глупо ограничивать себя один ЯП и мужественно превозмогать те вещи, которые в других языках делаются с полпинка.
>>71456
Есть. Полтора. Котлин, который обожают все, кто на нем писал, и Раст который после Крестов почти как Котлин для ведроебов с ограничением ихней 6 джавы 150 летней давности.
402 1471518
>>71515

>Питон не про промышленное программирование


Сука, я сейчас сижу на проекте, где мы делаем высоконагруженную апликуху и сильной повязкой на финансовых вопросов. Единственный плюс это скорость написания фич, как только стартап выстрелил начили все ОПТИМИЗИРОВАТЬ и возникает ощущение, что нахуй пистон выкинем.
403 1471522
>>71518
Мировая практика.
404 1471553
>>71518
Ухухухухухуху
Я каждый раз питонистов спрашиваю, в чем кайф и смысл питона.
Все в один голос отвечают: охуенно быстрое прототипирование. А потом, мол, мы перекатываем на нормальные языки.
Ну, ок, а в чем проблема прототипировать сразу на целевом языке?
Это, блядь, не самолет, который сперва надо из говна вылепить, чтобы посмотреть, чо получится.
405 1471555
>>71518
>>71522
>>71553
Идите нахер, дизморальщики
406 1471583

>В том и смысл вышки - получить фундамент. Стеку тебя не научат, да. Образование слишком консервативная вещь, редкий препод угонится за изменениями стека со своей программой обучения.


Так что стек за тобой, а фендамент за вышкой. Плюс, анон как и всякий человек, ленив, а значит вероятность самостоятельного изучения фендаменталки - 0,1%.
Хочу получить фундамент без вуза регистрации и смс.
Вышкобоги, накидайте запросов для гугла
407 1471585
Ребят, вопрос от нуфага:
возможно не только к питону относится
Как я понял, нет смысла пытаться сделать так, чтоб программа, которую я написал кодв случае неверного ИНПУТА рестарталась, ведь это делается уже в других прогах, видимо. Ибо try except работает только один раз, после второго неверного инпута все крашится.
Я зря с этим морочусь и создаю лишнюю головную боль? Или надо до конца пилить?
Например делаю задание про месяца года и ввожу не число, а букву "а". В первый раз try/except говорит "введите число, а не название", а во второй раз все вырубает.
408 1471592
>>69012
Видимо, писать бота
мимо
409 1471595
>>71585
Делай input в цикле, который не прервётся, пока ты не введёшь корректное значение. Разумно такой ввод в отдельную функцию вынести, если надо вводить несколько значений.

def my_input():
while True:
try:
value = int(input())
except:
print('stuppid monkey')
continue
else:
return value
410 1471596
>>71595
Ого, спасибо, анон. Домой приеду попробую.
411 1471600
>>71346

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


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

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

Но сокетов и подобного нет, проще синхронно жить, без корутин и без потоков.
412 1471602
>>71595
А continue что делает? Как pass пропускает что ли?
413 1471604
>>71289
Сам переписываю софтину с node.js на asyncio+aiohttp. Но это шило на мыло, везде асинхронщина, в ноде она чуть проще и понятнее, просто сам js как язык говно, хотя может даже быстрее.
414 1471605
>>71553
Быстро сделали мвп, быстро нашли клиентов и начали делать деньги, теперь можно и расслабиться, грамотное проектирование заняло бы гораздо больше времени. А тут проект уже приносит прибыль, скорость внедрения фич начинает уступать надёжности в продуктовом плане и пора что-то менять
415 1471606
>>71602
Да, ничего, индийский код просто. Проще так будет:

def my_input():
while True:
try:
return int(input())
except:
print('stuppid monkey, try again')
416 1471608
>>71553
В питоне ты как раз делаешь грамотное проектирование, быстро и прозрачно. Вот если вдруг станет актуально сильно разгонять, то может потом придётся полностью или частично на другие платформы переходить и разные кривые хаки придумывать. Но для этого надо, чтобы взлетело, и чтобы в твоей задаче это было актуально.
417 1471609
>>71606
Наверное идиотский вопрос задам, но все же, на всякий случай.
Вот у меня получается мои месяцы тоже функцией идут
Мне вот функцию с неверным инпутом под нее засунуть или уже после запуска самих месяцов ставить? Или до них? Или вообще похер?
То есть:
def mesyaci() :
.... тут хуйня всякая
.... def netotinput() :

Так?
418 1471613
>>71553
на рельсах еще лучше
а потом сваливают на скалу
419 1471627
>>71129
Очевидно, что надо только по актуальным версиям. 1.9 неактуальна
420 1471628
>>71127
И как он, годный?
421 1471640
Выбирал между "Django 2 в примерах. Меле" и этой книгой.
В итоге выбрал книгу Дронова (хоть и не люблю многостаночников).
Книга оказалась хорошей, это не первая книга автора по Django. Предыдущая была слабей, как по подаче материала так и по решениям которые автор приводил.
422 1471654
>>71627
Чего там неактуального? Сейчас 2.2.5 используют
423 1471659
>>71654
Куча всякой мелочи изменилось, но умеренно.

Самое принципиальное, что сильно изменилось, это обработка url
424 1471662
>>71659
Для вката 1.9 актуален, урл после 1.8 меняли
425 1471675
>>71555
Войтивайти, плз.

> дизморальщики


Ты дурак? Никто не говорит, что Питон не нужен. Питон нужен. В своих задачах где он хорош. Где он не хорош, питонистам следует расширить экспертизу и выучить и использовать другие языки, а не мужественно превозмогать авгиевы конюшни.
426 1471679
>>71600
Как только ты уходишь от модели запрос-ответ и начинает работать с каналами и потоками данных, тут-то нужно съебывать с Питона.
427 1471681
Почему комментарии внутри функций сделаны через """ hui """ ?
Почему нельзя использовать обычный оператор комментария # hui ?
428 1471684
>>71681

>Почему нельзя использовать обычный оператор комментария # hui ?


Ты ведь даже не пробовал?
429 1471687
>>71681
Тебя, блядь, просто забыли спросить, извини.
430 1471688
>>71684
Я посмотрел курс по диагонали перед тем как его пройти.
Почему-то """ такой комментарий """ там считается дефолтным для функций
431 1471694
>>71681

Потому что это докстринг, а не коммент, блеать. Для документации нужно.
432 1471696
>>71694

>докстринг, а не коммент


Ачоакакаяразница?
433 1471700
>>71688
>>71696
Ты можешь из коментариев кода генерировать документацию, там уже есть разница между видами коментов
434 1471705
>>71696

А ещё ты можешь использовать докстринг для многострочных комментов, если ты упоротый.
435 1471711
>>71700
Круто, спасибо

>>71705
А что тру питонисты используют для многострочных комментариев?
436 1471714
>>71711

Тру питонисты начинают каждую строку многострочного комментария с #. В любой ide это делается автоматически или одним хоткеем.
437 1471770
>>71553

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


MVP
PROOF OF CONCEPT
438 1471773
>>71714

>или одним хоткеем.


Ctrl + V
439 1471782
>>71773

В голос
440 1471798
Сап двач, ньюфаг выходит на связь, короче суть такая, есть задача классиечская на проверку правильности скобок, поэтому мне нужен стек, могу конечно и сам написать, но я думаю в питоне уже есть своя реализация. Как она называется?
441 1471800
>>71798

Нет её, слишком узкоспециализированно. Да и в пять строк пишется же.
442 1471802
>>71800
Не может такого быть, ты походу и сам ньюфаг ебаный и не знаешь нихуя!
443 1471804
Ха, я нашел
from collections import deque
from queue import LifoQueue

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

все, вопрос закрыт.
444 1471806
>>71804

Так тебе только дек нужен был? В это и стандартный list умеет.
445 1471808
>>71806
Да все иди нахуй, все уже поняли, что ты хуесос ничего незнающий.
446 1471815
>>71808

Ууух, сколько эмоций. Смотри, не забывай лекарства свои принимать.
447 1471829
>>71798
Бля, я понимаю, что я кормлю жирноту, но тот стек, что в этой задаче нужен это одна ебаная переменная
448 1471830
>>71829
Удачи.
449 1471832
>>71829

Если несколько типов скобок, то не прокатит.
450 1471841
Посоны, а кто-нибудь может мне помочь с ткинтером? Написал небольшой парсер файлов игры, и нужно через ткинтер забубенить вызов функции отрисовки и перевода содержимого файлов, но никак не могу догнать, как это сделать среверс-инженирить похожие проги не получилось
Не хочется тут палить код, так что телега fakeaccount123123
451 1471844
>>71832
Ну можно вложенный счётчик сделать, на который будет переходить при другом виде скобок. Их всего три вида, там значит и так никаких особых проблем не будет
452 1471846
>>71844
Ну сделай, а мы посмеемся посмотрим
453 1471848
>>71844

Не, не получится. Так можно учесть нужное количество скобок, но закрывать их можно в произвольном порядке, и это пройдёт проверку.
454 1471849
>>71846
Да ну, это некрасиво получится.Но вообще реально, я сейчас прикинул. Ну ладно пусть список вместо переменной, всё равно алгоритм на несколько строчек.
455 1471855
>>71848
Мне в голову пришёл такой функциональный стиль, когда встречая скобку другого вида рекурсивно вызывается та же функция, но уже считающая по другой скобке, я бы так сделал.
456 1471856

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


>нет, хотим изъебываться на ровном месте.

457 1471862
>>71855

Ты изобрёл рекурсивный спуск :D
458 1471870
>>71855
Быдыщ stackoverflowerror
460 1471874
>>71862
Нормальная тема, я ещё не проходил всякие синтаксические алгоритмы
>>71870
В питончике это RecursionError: maximum recursion depth exceeded
461 1471892
>>71856
Чеза скобки блядь
462 1471898
>>71892
Задача, проверить корректно ли открыты и закрыты скобки. Случай с одним видом скобок:
(()()) - корректно
(()))(() - некорректно
но для этого достаточно одной переменной.

Интереснее с несколькими видами ([{<>}])
([(])) - некорректно
Тут уже стек нужен, но в питоне это совсем просто, можно обычный список в качестве стека использовать
c4a.jpg8 Кб, 238x192
463 1471914
Покончил с основами джанги йеей!, ага.
Ну вот запилю я сейчас свой первый говноблог, а дальше что? Накидайте идей для пет прожекта, где я смогу реализовать весь функционал фреймворка, чтоб можно было его ковырять и допиливать в ходе изучения остального стека
464 1471915
>>71898
Такое на собеседованиях спрашивают?
466 1471923
>>71918
ролл
467 1471924
>>71923
кек
468 1471927
>>71915
Такое спрашивают, когда изучаешь базовые алгоритмы и структуры данных. Тащемта, если не знаешь такого, ты по умолчанию дебил унтерменш и для всего юзаешь списочки ака массивы
469 1471929
>>71927
А че я то сразу, я вообще бомж и полтора месяца назад начал вкатываться
470 1471933
>>71929
Я так и понял анон, поэтому и написал бяку, чтоб ты навернул алгоритмы и структуры данных.
471 1471937
>>71933
Кидай почитать чего, только без выебонов.
Мурзилку какую-нибудь базовую, для понимания предмета в целом. Потом расширю когданибудь
472 1471963
>>71937
Algorithms in a Nutshell George T. Heineman, Gary Pollice & Stanley Selkow

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

Т.Кормен - Алгоритмы. Построение и анализ
474 1471986
>>65988
import itertools
s = "coooccck"
result = "".join(["{}{}".format(k,len(list(g))) for k, g in itertools.groupby(s)])
Sunset.jpg383 Кб, 1686x1710
475 1472022
Аноны, помогите. Стоит задача:
Использовать алгоритм bfs для нахождения кратчайшего пути. Алгоритм тут(https://pyfiddle.io/fiddle/ef79dbfc-a65f-456d-84e7-e114716ebb32/?m=Saved fiddle). Мне нужно вывести его длину и все точки, через которые он проходит. Длину я подсчитываю, а как записывать вершины, через которые прошёл - не понимаю. Подскажите, что нужно добавить.
476 1472025
>>72022

>Подскажите, что нужно добавить.


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

Совет: решения утром эффективны лучше всего.
477 1472053
>>72022
Зачем городить свой поиск пути?
478 1472055
>>72022

??????? ?????????????? ???????? ???? ?????? ??????, ???????? ????????? (?????????) ??????. ?????, ????? bfs ?????????????? ??????? ??????? ? ???? ?? ??? ???? ??????? ???????? 3.
480 1472081
>>71963
Спасибо, запилю свой говноблог для закрепления пройденогоматериала и обмажусь этими твоими алгоритмами
481 1472084
>>71841
Бамп, посоны.
482 1472254
С пылу, с жару, после собеса с яндиксом по скайпу:
AAAABBCC -> A4B2C2
+
https://pastebin.com/eSfEPVP0

Я уже и забыл как подобное решать, пиздец. 40 минут мучений над двумя ебаными задачами.
Благо собеседующий сам на пистоне лишь немного пишет, поэтому в паре моментов не доебался.
483 1472257
>>72254
С анаграммами совсем просто.
Создаёшь словарь, где ключём будет отсортированное слово, а значением - список слов-перестановок
дальше идёшь по входящему списку
for word in input_words:
sorted_word = sorted(word)
if sorted_word in ana_dict:
ana_dict[sorted_word].append(word)
else:
ana_dict[sorted_word] = [word]

в итоге получаешь словарь списков.
484 1472260
>>72257
Я решил через Counter & defaultdict.
486 1472274
>>72254
Первая задача:
https://ideone.com/yiLs2b

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

Вообще, наверное это такие примитивные задачки, чтобы понять, что перед тобой не случайный человек. На стрессе наверное нормально дёргаться и тупить. На самом деле очень много ведь случайных, кто и такое не решит, но пытаются куда-нибудь устроиться.
487 1472276
>>72254
Ты главное не сказал, после этих задач на какое-нибудь дальнейшее собеседование зовут? Или не понравилось, как ты решал?
488 1472289
>>72274

> чтобы понять


Думаю да, и на ждуна и на мидла одно и тоже.

>>72276

> Ты главное не сказал


Ну я ж написал, что собес только закончился, соответственно результатов пока нет. Да думаю что не прошёл, ну и похуй.
Я ему про рэбит и распределённые вычисления, а он мне "а запили как мне анаграммы", забавно.
490 1472303
>>72302
Тредом ошибся.
491 1472363
>>65926 (OP)
Помогите, кто разбирается в tkinter. Необходимо в окне вывести символ с индексом и символ со степенью(на пике пример, где v с индексом, а метры в кубе). Я пока что придумал только делать одну строку одним шрифтом, затем записывать вторую строку делать ее шрифтом меньше и сдвигать вверх на пару пикселей для степени и сдвигать вниз для индекса(на второй пикче как это должно быть, но для этого приходится дописывать 2 строчки дополнительные и еще перебирать координату х, чтобы подогнать тройку эту), но может есть другой способ?
493 1472389
>>71918
Ролю нет
494 1472391
>>72257
Сортировать каждое слово это, наверное, довольно долго, быстрее будет проверять через перевод слова в set символов
495 1472396
>>72391
Тот редкий случай, когда можно вспомнить о frozenset().
496 1472398
>>71606
>>71595
В общем, либо я ебанутый, либо лыжи не едут, но у меня получилось тоже самое. Точнее я сначала поебался еще, но ни к какому решению это не привело, буду дальше смотреть что, да как.
497 1472399
>>72391
А как же повторяющиеся символы?
В твоём методе "балл" и "бал" будут анаграммами.
498 1472431
>>72387
О, точно. Вроде использую юникод для греческих и латинских букв, а про индексы и не подумал. Спасибо за помощь.
499 1472445
Чё ваще нужно знать в этом питоне знать, чтобы галеру найти?
Программированием не увлекался особо. Так немного поковырял недельку. Бота для телеги написал. Парсер для вк захуярил.
Функцианала не много, чисто для себя делал, но при желании могу много плюх накрутить.
Этого ведь мало для трудоустройства? Или там где без опыта работы берут именно такие и нужны? Чё вы там учите такого годами?
500 1472448
>>72445
хуй знает, я так вакансии полистал - там везде всякая разная хуйня - базы данных, вёрстка, и прочая хуйня, которая к питону не относятся, какие-то определенные модули/фреймворки. Тоесть при трудоустройстве нужен обычно не только язык программирования - а стак технологий которыми ты владеешь.
501 1472453
>>72448
Мне даже просто не понятно, где для чувака без опыта работы граница того, чем он владеет. Вот например могу я те же простые запросы делать. Могу ли я говорить, что знаю бд?
502 1472455
>>72453
Ну я бы сказал, что базовые знания по БД имею. А так - сам хз как правильно на работу устроиться - тоже ньюфаг.
503 1472475
Есть ли ваще смысл в этих ваших модных асинк-либах или ими пользуются ради того чтобы пользоваться? Реал настолько профитно как все любят писать на всяких сайтах сомнительного содержания или можно забить хуй на эту асинхронность и писать как диды?
504 1472486
>>72475

Пока что можно жить без них, но игнорировать становится всё сложнее с каждым днём.
505 1472504
>>72475
>>72486
Да уже в них смысл есть, причём немалый.
На собес спрашивают активно, не в первую очередь, правда.
Но конечно же их не стоит учить в первую очередь, всё же для синхронных либ сопутствующие батарейки лучше развиты и спрос на них высок.
>>72445
Выбери область в которую хочешь катиться, и тогда анон подскажет стек примерный.
506 1472561
Аноны, как насчёт небольшого конкурса?
Игра запиленная на PyGame
Пилите игру, прогресс разработки заливаете на гит(любой сервис), аноны оценивают и победителям приз, к примеру 200$(рубли/битки and etc. в эквиваленте).
1. Тематика любая;
2. Пара отдельных направлений - 2D и 3D(в каждом направлении свой победитель и свой приз);
3. Поощрительные призы за не призовые места, но за код/душу/музыку/анимацию and etc;
4. Уже ведёшь разработку? Похуй, можешь принять участие. Главное - активность.
5, Со сроками определимся, но как по мне, хватит - 2-3 месяца.
Есть желающие принять участи?
507 1472562
>>72504
Меня на собесе минут 40 спрашивали о работе асинхронных библиотек, плюсах, минусах, работе с синхронными либами, как избегать таких ситуаций и т.д. А на деле у них там из асинхронщины только задачи в очередь кладутся. Я тогда знатно пригорел. Ну нахуя вы дрочить на собесах так, словно у вас неебически мутированный стек и вы прям на С дописываете комплекты к либам, когда на выходе имеется обычный json, crud и очереди?
508 1472563
>>72561
Почему pygame?
509 1472565
>>72561
Такие конкурсы же делают в гд. Да и тут по факту половина работы дизайнерская, и странно это pygame'ом и вообще питоном ограничивать
510 1472568
>>72563
Хм, можно расширить до Kivy/PyQT.
Но мне кажется, что разрабы на Kivy будут в неравных условиях.
Хотя, можно разделить призы ещё и по платформам.
>>72565

> Такие конкурсы же делают в гд


Там конкурсы на быструю разработку встречал только, а тут немного другое.

> Да и тут по факту половина работы дизайнерская


Да, но есть куча готовых ассетов, поэтому вай нот?

> странно это pygame'ом и вообще питоном ограничивать


В этом и суть. На пайгейме не очень много свежих и играбельных игр есть, почему бы не оживить немного?
sage 512 1472882
>>72561
Сколько платишь? Сколько предоплата?
513 1473413
>>65926 (OP)
Помогите с проблемкой. Осваиваю ООП. Написал код с графическим интерфейсом, который проводит определенные расчеты, на пике часть от этой программы. Сейчас решил представить этот код в виде классов. Создал класс с постоянным полем, который содержит строчки, необходимо вывести эти строчки в главном окне, но если внутри класса передавать аргумент root, то выдаёт ошибку. Каким образом засунуть эти строчки в главное окно? Вот ссылка на код, если надо https://pastebin.com/LgtTquDE
514 1473526
>>73413
ООП на примере Python - плохой выбор. Но дело твоё.
Когда присваиваешь непосредственно внутри определения класса, ты создаёшь статическое поле. Тебе же нужно создавать его в экземпляре. Короче, присваивай все поля в конструкторе.
class LabEnt:
.def __init__(self, root):
..self.labels = Label(root, ...)
...
a = LabEnt(root)
515 1473545
>>73526

> ООП на примере Python - плохой выбор


Python - один из тех языков, в которых ООП не сломан.
516 1473630
>>72303
Как можно проебать форматирование в 2019?
517 1473631
>>73545
Двачую, единственный ООП, которого мы заслуживаем.
Никакой еботни уровня C#/C++
518 1489105
>>72562
куда собеседовался?
Тред утонул или удален.
Это копия, сохраненная 10 октября 2019 года.

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

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