На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD
  
    > Python 2.5 - Для чего он нужен?
      Ребята!
      Для чего нужен язык Python.
      Что с ним можно сделать?
        Вопрос в другом, что нельзя сделать на питоне. Вы думаете изучать его или нет?
          Цитата NetVir @
          Вы думаете изучать его или нет?

          Если он актуален то да.
            Цитата aster_x @
            Цитата NetVir @
            Вы думаете изучать его или нет?

            Если он актуален то да.

            ну, в MIT решили его заюзать, так что наверное актуален. да и он в общем-то довольно прост. что там учить? =)

            но моё личное мнение -- питон не нужен =)
              korvin
              Приведи пример простейшей программы HELLO WOLRD!

              и X+Y=
                Цитата aster_x @
                korvin
                Приведи пример простейшей программы HELLO WOLRD!

                ExpandedWrap disabled
                  print "Hello, World!"

                гугл -- друк человека, ага. =)

                http://www.google.ru/#hl=ru&source=hp&q=python+hello+world&lr=&aq=0&aqi=g10&aql=&oq=python+he&gs_rfai=&fp=40d4cf80b75cdc07


                Цитата aster_x @

                и X+Y=

                этого не понял
                  Пайтон портирован, если на десятки платформ, динамичен (головная боль с утечкой памяти уже не должна возникать), актуальность можно проследить по гуглу, мит-у, и т.д. Вцелом язык дружелюбный. Ориентирован больше на благородное количество функциональности. Ну, а если проект критичен по времени, тогда уж с/с++. Учится очень быстро. Библиотек более чем достаточно. И еще - он расширяем, т.е. если вам не нравится скорость работы "чего-то", то вы можете используя пайтон объекты написать свои модули на, например, с/с++.

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

                  Добавлено
                  Цитата
                  и X+Y=

                  ExpandedWrap disabled
                    x, y = 3, 4
                    print(x + y)
                  Сообщение отредактировано: NetVir -
                    Блин!
                    Я ничего не понял.
                    Пришлити мне файл исходничек.

                    И скажите как его скомпилировать?
                      Цитата aster_x @
                      И скажите как его скомпилировать?

                      Это скриптовой язык. Он интерпретируется.
                      Сообщение отредактировано: n0rd -
                        aster_x просто создаете файлик file_name.py и запускаете.
                        Текст программы я уже показал. Я привел именно такой пример, чтобы показать "фичу" однострочных присваиваний.
                          Цитата NetVir @
                          динамичен (головная боль с утечкой памяти уже не должна возникать)

                          что Вы подразумеваете под словом "динамичен"?

                          Цитата NetVir @

                          Единственное, порой вызывает недоумение или удивление у людей, которые вырасли и пропитаны императивными языками.

                          почему? питон вполне себе такой же императивный

                          Добавлено
                          Цитата n0rd @
                          Цитата aster_x @
                          И скажите как его скомпилировать?

                          Это скриптовой язык. Он интерпретируется.

                          вообще-то компилируется в байт-код

                          Добавлено
                          Цитата NetVir @
                          aster_x просто создаете файлик file_name.py и запускаете.
                          Текст программы я уже показал. Я привел именно такой пример, чтобы показать "фичу" однострочных присваиваний.

                          в чём "фичастость" этой "фичи"?

                          1)
                          ExpandedWrap disabled
                            (setq a 1 b 2 c 3)
                          как бы намекает, что "фича" эта и не фича вовсе;
                          2) эта "фича" -- простейший случай паттерн-матчинга, который более лучше реализован в других языках.
                          =)
                            Цитата korvin @
                            что Вы подразумеваете под словом "динамичен"?

                            Интерпретатор сам следит за выделяемой памятью и чистит неиспользуемые объекты.
                            Цитата korvin @
                            почему? питон вполне себе такой же императивный

                            Не совсем, особенно его функциональная часть.
                              Цитата NetVir @
                              Цитата korvin @
                              что Вы подразумеваете под словом "динамичен"?

                              Интерпретатор сам следит за выделяемой памятью и чистит неиспользуемые объекты.

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

                              Цитата NetVir @

                              Не совсем, особенно его функциональная часть.

                              его "функциональная часть" крайне мала и не представляет из себя ничего особенного.
                              во всяком случае явно значительно меньше таковой у более чистых ФП-языков и значительно меньше императивной и ОО составляющих питона
                                2.x - точно не нужен.
                                а вот 3.x - нужен)

                                хороший язык для прикладного программирования, обработки данных, математики

                                Добавлено
                                Цитата korvin @
                                эта "фича" -- простейший случай паттерн-матчинга, который более лучше реализован в других языках.

                                эта фича и рядом не лежала с паттерн матчингом, это просто упаковка в кортеж (tuple) и распаковка из кортежа
                                  Цитата GoldFinch @
                                  эта фича и рядом не лежала с паттерн матчингом, это просто упаковка в кортеж (tuple) и распаковка из кортежа

                                  ууу, так это ещё хуже. ведь упаковка/распаковка в рантайме происходит?
                                    Цитата GoldFinch @
                                    это просто упаковка в кортеж (tuple) и распаковка из кортежа
                                    Откуда такие сведенья?
                                      Цитата NetVir @
                                      Откуда такие сведенья?
                                      На примере этого кода здесь видно, что запись "2, 3" действительно интерпретируется как typle
                                      ExpandedWrap disabled
                                        >>> a = 3, 4
                                        >>> a
                                        (3, 4)
                                        >>> type(a)
                                        <type 'tuple'>
                                        >>>

                                      Но посмотрим что происходит на самом деле:
                                      ExpandedWrap disabled
                                        >>> from dis import *
                                        >>> dis
                                        <function dis at 0xb778fe2c>
                                        >>> dis('a=4')
                                                  0 STORE_GLOBAL    13373 (13373)
                                        >>> dis('a,b=3,4')
                                                  0 STORE_GLOBAL    25132 (25132)
                                                  3 DELETE_SUBSCR  
                                                  4 DELETE_SLICE+1
                                                  5 <44>          
                                                  6 DELETE_SLICE+2
                                        >>> dis('a,b,c=3,4,5')
                                                  0 STORE_GLOBAL    25132 (25132)
                                                  3 <44>          
                                                  4 DUP_TOPX        13117
                                                  7 <44>          
                                                  8 DELETE_SLICE+2
                                                  9 <44>          
                                                 10 DELETE_SLICE+3
                                        >>>

                                      Много не расскажу про этот байткод, но видно, что здесь упаковка и распаковка кортежа оптимизирована
                                      К примеру еще один код:
                                      ExpandedWrap disabled
                                        >>> dis("""d,e,f='a','b','c'
                                        ... (a,b,c)=(d,e,f)
                                        ... """)
                                                  0 LOAD_CONST      25900 (25900)
                                                  3 <44>          
                                                  4 BUILD_TUPLE     10045
                                                  7 STORE_GLOBAL    11303 (11303)
                                                 10 <39>          
                                                 11 DELETE_GLOBAL   11303 (11303)
                                                 14 <39>          
                                                 15 DUP_TOPX         2599
                                                 18 STORE_SLICE+0  
                                                 19 STORE_GLOBAL    25132 (25132)
                                                 22 <44>          
                                                 23 DUP_TOPX        15657
                                                 26 STORE_SLICE+0  
                                                 27 LOAD_CONST      25900 (25900)
                                                 30 <44>          
                                                 31 BUILD_TUPLE      2601
                                        >>>

                                      Цитата korvin @
                                      ууу, так это ещё хуже. ведь упаковка/распаковка в рантайме происходит?
                                      Действительно нееффективно, но я не вижу здесь никаких проблем. Если важна скорость вычисления, то конструкции (a,b)=(c,d) использоваться просто не будут при написании програмы, а (a,b)=(1,2) - оптимизированы - делаются без кортежей
                                        Я так понимаю, что не совершенно тупой компилятор должен сообразить, что групповое присваивание вполне можно делать без формирования кортежа с последующим его уничтожением, а просто разложив его на отдельные присваивания. Причем это даже еще не оптимизация.
                                        Да и не так уж много занимает это формирование/уничтожение кортежа.
                                        Другое дело возврат значений из функции
                                          сразу видно, тут собрались больше спецы по питону.
                                          тутор сначала хотя бы прочитайте, а потом пишите =\

                                          Добавлено
                                          тутор по 2.х лежит тут, если кто не знает
                                          http://docs.python.org/tutorial/index.html
                                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                          0 пользователей:


                                          Рейтинг@Mail.ru
                                          [ Script execution time: 0,0550 ]   [ 15 queries used ]   [ Generated: 28.04.24, 12:34 GMT ]