Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Популярность Питона

Автор Devorator linguarum, сентября 27, 2020, 20:03

0 Пользователи и 1 гость просматривают эту тему.

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Rachtyrgin

Тут я Вас не совсем понял. Имеете в виду наследование?
Всякому остановленному фашисту для захвата его в плен можешь еще крикнуть:
«Хэндэ хох!» (Руки вверх!)
«Вафи хинлеги!» (Бросай оружие!)
«Абгезэсен!» (Слезай! — С машины, с лошади, с повозки.)
Если фашист не сразу исполняет твое приказание, крикни грознее и добавь:
«Бай флухтфэрзух вирт гэшози!» (Побежишь — буду стрелять!)
А. Афанасьев. В помощь партизану. Москва, 1942 г.

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

rounin

Цитата: Python от октября  2, 2020, 16:36
Кстати, никогда не понимал, зачем в 3-м питоне reduce убрали в functools (хотя map и filter как были доступны без импорта, так и остались). Если язык претендует на ФПшность, то желательно иметь под рукой все три функции — зачем этот дурацкий намек на «пишите циклы»?

В 3-м питоне они объявили как раз map и filter некошерными и объявили, что pythonic way - это всяческие comprehensions.
А вот в ссылку почему-то отправили reduce, хотя для неё никакого синтаксического сахара не сделали...
Ну нет в мире справедливости :)

Может, потому, что у неё нет начального значения аккумулятора, и она несколько ущербна по степени обобщённости?

В принципе в общем случае
l0=reduce(lambda x,y:x*y, np.shape(a)) - это нормально.

Но для конкретного случая есть более красивые варианты типа
l0=np.prod(a.shape)
l0=reduce(operators.mul, a.shape)
(Ну и l0=len(a), конечно)

Rachtyrgin

Цитата: Bhudh от октября  2, 2020, 21:35
миксины.

А. Концепция мне понаслышке знакома. Я начинал с явы, мигрировал на С#. В обоих языках в  ней нет ни нужды, ни реализации (во всяком случае, в ядре). Все-таки речь идет об особой разновидности множественного наследования...
Всякому остановленному фашисту для захвата его в плен можешь еще крикнуть:
«Хэндэ хох!» (Руки вверх!)
«Вафи хинлеги!» (Бросай оружие!)
«Абгезэсен!» (Слезай! — С машины, с лошади, с повозки.)
Если фашист не сразу исполняет твое приказание, крикни грознее и добавь:
«Бай флухтфэрзух вирт гэшози!» (Побежишь — буду стрелять!)
А. Афанасьев. В помощь партизану. Москва, 1942 г.

rounin

Цитата: kemerover от октября  2, 2020, 20:23
Поэтому на Паскале никто сейчас и не программирует, а на Пайтоне — куча народу, там с этим намного лучше.

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

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

Rachtyrgin

Всякому остановленному фашисту для захвата его в плен можешь еще крикнуть:
«Хэндэ хох!» (Руки вверх!)
«Вафи хинлеги!» (Бросай оружие!)
«Абгезэсен!» (Слезай! — С машины, с лошади, с повозки.)
Если фашист не сразу исполняет твое приказание, крикни грознее и добавь:
«Бай флухтфэрзух вирт гэшози!» (Побежишь — буду стрелять!)
А. Афанасьев. В помощь партизану. Москва, 1942 г.

Гетманский

Цитата: Devorator linguarum от сентября 27, 2020, 20:03
Почему из всех языков программирования сейчас такое распросторанение получил Питон? У него по срвнению с другими есть какие-то серьезные преимущества?

Отступы бесят!

From_Odessa

Devorator linguarum, а, может, я Вас неправильно понял. Не уверен, что правильно. Потому настаивать не буду :)

Python

Цитата: kemerover от октября  2, 2020, 19:04
По той же причине, почему в Питоне нету goto. Чтобы людям было менее повадно писать непонятный код.
Код становится непонятным, если делать кашу из разных парадигм. Да, ясно, что паскалисту проще понять, если все делать циклами — для него такой код очень понятен, но тогда ФПшные элементы ему вообще ненужны (собственно, а зачем оставлять map и filter, если их прекрасно дублируют конструкции вида (m(i) for i in seq if f(i)) ?). Если же это код в функциональном стиле, то отсутствие в нем reduce при наличии map и filter — это примерно как убрать оператор умножения, оставив деление и модуль. Вероятно, для человека, не дошедшего до концепции умножения, понятнее будет, если вместо a=b*c делать сложение в цикле.

С другой стороны, читаемость функционального кода ухудшается из-за ущербности питоновских лямбд. Во-первых, они слегка громоздкие (длинное ключевое слово, список параметров — и все для выражения из трех символов). Во-вторых, мало что могут (туда нельзя запихнуть блок кода — только простое выражение). Лямбды в JS какие-то более симпатичные получились.
Хотя я бы предпочел иметь как дополнение нечто еще более компактное — напр., так:
^: _3 + _2 * _1, превращающееся в
lambda _1, _2, _3: _3 + _2 * _1 — т.е., сокращенный синтаксис, в котором параметры и их количество автоматически определяются по их именам.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

_Swetlana

До лямбд я ещё не дошла. Посмотрим.
Но частичную функциональность не люблю, ни рыба, ни мясо, то ли ДМТ, то ли вычислимая функция. В лиспе это ужасно не понравилось.
🐇

kemerover

Цитата: rounin от октября  2, 2020, 22:12
А на питоне сообщество на данный момент очень большое. В чём и есть главная сила питона.
Поэтому в нём есть библиотеки на все случаи жизни. И поэтому им и пользуется куча народу.

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

Python

Благодаря советам rounin'а, слегка улучшил свою функцию:

def rheshape(a, newshape):
    '''Reshape numpy array in APL rho function way'''
    try:
        return np.reshape(a, newshape)
    except:
        l0=np.prod(np.shape(a))
        l1=np.prod( newshape)
        r=l1//l0+(l1%l0>0)
        return np.tile(np.ravel(a),r)[:l1].reshape(newshape)
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2


Python

Изменяет размер массива, в т.ч., если количество его элементов больше или меньше нового количества — в последнем случае, массив заполняется повторением элементов по кругу:
>>> rheshape((1,2,3),   (4,5))
array([[1, 2, 3, 1, 2],
       [3, 1, 2, 3, 1],
       [2, 3, 1, 2, 3],
       [1, 2, 3, 1, 2]])


Подобным же образом работет функция ⍴ в языке APL, на котором у меня есть некоторое количество кода, который можно было бы перенести на питон+numpy.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

1618deonis1618

Питон очень удобен в освоение, легкий синтаксис и большой объем библиотек. Кроме того он является основой для искусственного интеллекта. Так что будущее за ним

Петр Хрюшин

Цитата: 1618deonis1618 от октября  6, 2020, 11:10
Питон очень удобен в освоение, легкий синтаксис и большой объем библиотек. Кроме того он является основой для искусственного интеллекта. Так что будущее за ним
Я как раз сейчас читаю книгу "Тарик Рашид: Создаем нейронную сеть" про нейронную сеть на языке Python!

Karakurt

Цитата: 1618deonis1618 от октября  6, 2020, 11:10
Питон очень удобен в освоение, легкий синтаксис и большой объем библиотек. Кроме того он является основой для искусственного интеллекта. Так что будущее за ним
Он не единственный.

Петр Хрюшин

Цитата: Karakurt от октября  6, 2020, 16:00
Цитата: 1618deonis1618 от октября  6, 2020, 11:10
Питон очень удобен в освоение, легкий синтаксис и большой объем библиотек. Кроме того он является основой для искусственного интеллекта. Так что будущее за ним
Он не единственный.
Кто, если не Python?

RawonaM

Чем больше знакомлюсь с Питоном, тем больше в нем разочаровываюсь. Нормального ООП никак на нем не получится. Ну что вот это за хрень:
Цитата: https://medium.com/@manjuladube/encapsulation-abstraction-35999b0a3911Encapsulation:

Python follows the philosophy of we're all adults here with respect to hiding attributes and methods; i.e. you should trust the other programmers who will use your classes. Use plain attributes whenever possible.

Нет счастья в ЯП. Вот Котлин еще оставляет надежду.

kemerover

А как это мешает нормальному ООП? Может и есть пару случаев, где это может быть полезно, например, если хочется точно знать какой класс какому является «другом» ("friend" в C++), но в целом это никак ни на что не влияет.

RawonaM

Цитата: kemerover от ноября  4, 2020, 09:55
А как это мешает нормальному ООП? Может и есть пару случаев, где это может быть полезно, например, если хочется точно знать какой класс какому является «другом» ("friend" в C++), но в целом это никак ни на что не влияет.
Инкапсуляции нет, значит нет ООП.

Easyskanker

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

RawonaM

Цитата: Easyskanker от ноября  4, 2020, 10:07
Без прямой связи вспомнилось, как преподша на третьем-четвертом курсах долбила нас мантрой "полиморфизм, инкапсуляция, наследование". Вместо прикладного программирования второго курса стали изучать какую-то эзотерическую философию, это была катастрофа.
Конечно, эти вещи только с опытом понимаются, начинать с них как-то странно.

RawonaM

Помнится, что я пытался осилить книгу Страуструпа в 95-ом году и тоже ничего не понимал.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр