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

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

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

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

_Swetlana

🐇

Karakurt


Python

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


forest

Каждый раз читая название темы , думал что речь идёт о https://lingvoforum.net/index.php?action=profile;u=1408 , а сегодня узнал что на самом деле о https://lingvoforum.net/index.php?action=profile;u=460

kemerover

Цитата: Python от сентября 29, 2020, 23:51
Касательно питона как первого языка. Всем он хорош, только вот некоторые базовые вещи делаются слегка костыльно. Возьмем, к примеру, двумерные массивы, которые обычно реализуются как списки списков. Получить простой список, забитый нулями, просто:
a=[0]*10
А теперь попробуем провернуть то же самое с двумя измерениями:
a=[[0]*10]*10
Фейл! Да, внешне полученное изделие будет выглядет так, как нам хотелось, но как только мы присвоим новое значение какому-либо его элементу, то внезапно обнаружим это же значение в целом столбике. А все из-за того, что внешний список в каждом элементе содержит ссылку на один и тот же внутренний. Поэтому надо делать так:
a=[[0]*10 for i in range(10)]
Я думаю, это небольшая проблема, лучшё объявлять всё через list comprehensions и не экономить место. Я вообще стараюсь избегать конструкций типа [ 0 ] * 10, малополезно и неинтуитивно. Хотя, конечно, странно, что в языке где встроены комплексные числа нету более удобного способа создания многомерных массивов.

Python

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

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

Easyskanker

Цитата: Python от сентября 30, 2020, 15:44
В  каком смысле стихла?
В смысле больше не приходится каждый год учить новый язык, параллельно усердно забывая выученный. Сел себе на джаву или на пхп, и сиди всю жизнь.


kemerover

Лет 7-10 назад, кажется, был бум новых относительно успешных языков программирования: Swift, Kotlin, Go, Rust, Dart, Julia.

Вообще, языки и среды исполнения тоже развиваются, просто сидеть не получится никак. Вот год назад C# 8.0 вышел, по сравнению с C# 1.0 считай что другой язык.

Jumis

Цитата: Python от сентября 30, 2020, 18:13
Впрочем, если python интересует Светлану не только как язык для обучения программированию, но и как инструмент для каких-то исследований, то NumPy ее как математика вполне мог бы заинтересовать.

Угу, все азы одной кучкой. Что характерно, установку Нампая на макось не описали ваапче... считается, что под макосью чайник не встречается? Да их там больше, чем под линупсом...

Спасибо хоть добрым дяденькам буржуям индусам с Ютупчика.
Ужасный чудными делами
Дзержинец мира искони
Он нашими решил судьбами
Себя прославить в эти дни

Hellerick

Цитата: Python от сентября 30, 2020, 23:29
В свете всего сказанного выше, решил я наконец попробовать начать учить numpy. Интересная штука, но APL пока нравится больше. Придумать бы какую-то задачку, для которой нумпай явным образом подходит лучше, чем древний язык с теми же общими концепциями и кракозябельной письменностью...

Me ia oia multe cosas sur numpy, ma me no aprende lo per causa ce me no pote comprende per cual me ta nesesa lo.

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

Jumis

Ужасный чудными делами
Дзержинец мира искони
Он нашими решил судьбами
Себя прославить в эти дни

Python

Цитата: Easyskanker от октября  1, 2020, 04:11
Цитата: Python от сентября 30, 2020, 15:44
В  каком смысле стихла?
В смысле больше не приходится каждый год учить новый язык, параллельно усердно забывая выученный. Сел себе на джаву или на пхп, и сиди всю жизнь.
Новые языки появляются, старые развиваются. Студентов продолжают натаскивать на популярные языки времен молодости их преподавателей, которые сейчас менее актуальны, поэтому большинство переучивается.

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

rounin

Цитата: Hellerick от октября  1, 2020, 08:36
Много слышал про numpy, но не изучаю его, потому что не могу понять, для чего он мне нужен.

Я использую его как замену матлабу.
Фурье, ФИР-фильтры, сглаживание, интерполяция, сплайны, сплайны, векторные/матричные операции,
минимизация функционалов, символьные вычисления и всё такое. И дофига всяких экзотических алгоритмов.

Вобщем, если бы он был тебе нужен, ты бы догадался. Альтернатив-то особо нет.

Python

Цитата: Hellerick от октября  1, 2020, 08:36
Me ia oia multe cosas sur numpy, ma me no aprende lo per causa ce me no pote comprende per cual me ta nesesa lo.
Могу сказать, зачем мне пригодился APL: для реализации игры «Жизнь» (куда я позже добавил поддержку раличных видов клеточных автоматов, различные варианты игрового поля (напр., бесконечное поле с бесконечно повторяющимся фитилем), и т.п.). Ну и некоторые задачи поменьше. Если рассматривать NumPy как аналог встроенной APL-машины, то на нем можно делать примерно то же самое, плюс простая интеграция в питоновский код, плюс понятность, минус компактность (вообще, меня бы устроил APL-подобный язык для работы с массивами, встраиваемый на правах регексов в неспециализированный язык типа питона).
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Jumis

Фиг его знает... конечно, в работе клевенько оперировать конструкциями типа np.transpose(x) ,,, вместо того, чтобы по классике городить цикл в цикле.

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

rounin

Цитата: Jumis от октября  1, 2020, 12:47
Но студиозусов имело бы смысл накормить сперва именно что циклами. Т.к. у них еще и с математикой нынче беда полная, после школ. Не говоря про матричную алгебру.

Вот как раз с циклами в питоне как-то ... не очень.

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

В принципе, вполне можно писать в духе паскаля


y = np.zeros(1000000, dtype='float64')
for i in range(len(y)):
    y[i] = np.sin(i*0.000005)


На самом деле это будет даже не то что бы слишком медленно.
Просто это не по-питоновски. Это будет прививать неправильные привычки.

Jumis

Цитата: rounin от октября  1, 2020, 14:15
Вот как раз с циклами в питоне как-то ... не очень.

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

rounin


Python

Интересно, есть ли простой способ сделать на numpy такое:
      9 9⍴' #'
# # # #
# # # # #
# # # #
# # # # #
# # # #
# # # # #
# # # #
# # # # #
# # # #

При буквальном переводе с APL на NumPy получается ошибка:
>>> np.array((' ', '#')).reshape((9,9))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: total size of new array must be unchanged
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

rounin

Ну так np.array((' ', '#')) даст массив размера 2, а тебе нужно 81

Можно так

np.array([' ', '#']*41)[:-1].reshape((9,9))

Python

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

Hellerick

A veses me nesesa variables con la alfabeta (per esemplo, per jenera parolas secreta). De esta tipo:
lat = "abcdefghijklmnopqrstuvwxyz"
cyr = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
dig = "0123456789"
Esce on pote asinia los plu bela? Sin tape manual los?

Ингогда мне нужны переменные с алфавитом (например, для генерирования паролей). Типа таких:
lat = "abcdefghijklmnopqrstuvwxyz"
cyr = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
dig = "0123456789"
Можно их как-нибудь красивше присвоить? Без ручного набора?

Python

dig=[str(i) for i in range(10)]
lat=[chr(i) for i in range(ord('a'), ord('z')+1)]
cyr=['ё']+[chr(i) for i in range(ord('а'), ord('я')+1)] #алфавитный порядок не соблюдается

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

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

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

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

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

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