Осваиваем Python по-быстрому

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение Olej » 03 авг 2013, 16:51

Дальше по пунктам...
Ресурсы с информацией по Python:
Olej писал(а): 3. Далее ... по Python очень много написано, руководств, книг, статей... - модно это ;-)
Olej писал(а): 4. Ну а дальше... пишем для себя примеры кода + если что-то непонятно и не получается
Я сюда сложу только то, что считаю более-менее приличным из известных мне (и буду дополнять), если у кого есть приличные источники - дополняйте:

Учебные материалы (учебники, курсы, ...) - от которых нужно как можно скорее переходить к следующей категории
- хорошо известный учебный интерактивный курс на сайте ИНТУИТ (только я бы проработал по нему первые 3-4 лекции, а последние, по высокоуровневым механизмам и протоколам - не трогал бы).
- книга: Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач "Язык программирования Python" (это не перевод ... не совсем перевод - переводчиком сделана большая адаптация и проверка примеров кода).
- цикл из 9-ти достаточно больших статей на сайте IBM (от https://www.ibm.com/developerworks/ru/l ... on_part_1/ до https://www.ibm.com/developerworks/ru/l ... on_part_9/)


Описания (языка, библиотек, статьи, wiki, справочные материалы ...)
- Python Documentation - оригинальная документация проекта Python, первооснова...
- переводы из этой документации, ссылки я эти уже приводил:
Olej писал(а): Вообще то, прежде любых описаний, книг и учебных курсов я пробежал бы вот эти переводы из документации проекта Python:
Учебник Python 3.1
Справочник по языку Python 3.1
- Wiki Портала Python-программистов


Справочники в онлайновом режиме:
- встроенная документация, запускается командой:

Код: Выделить всё

bash-4.2$ pydoc -p8080 &
[1] 8565
bash-4.2$ pydoc server ready at http://localhost:8080/
И дальше подключаемся в любом браузере набирая адрес http://localhost:8080 (порт 8080, конечно, можете поменять на любой)
К сожалению, мне не удалось запустить Python-документатор в Windows инсталляции (Python 3.3) ... но, возможно, потому, что я недостаточно легко ориентируюсь в Windows.


Примеры кода : лучший способ разобраться, это начать рассмотрение с хорошей реализации похожей задачи:
- Popular Python recipes tagged "meta:min_python_2" - несколько сот практических реализаций...
- Реализация известных алгоритмов на языке программирования Python

Обсуждения (форумы, блоги, ... - где можно задать вопрос и получить на него ответ):
- Python-сообщество

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение Olej » 06 авг 2013, 21:50

Olej писал(а): Как сегодня написал мне в письме давний коллега, последние годы занимающийся профессиональной разработкой проектов на Java:
Python - очень модно, в MIT он используется как учебный язык в курсе алгоритмов и структру данных.
Относительно связи с Java все совершенно верно, даже знаю Киевскую фирму, которая в своих проекта используте именно связку Python и Java.
Там же он задевает такой вот вопрос:
Интересно было занятся им в разрезе каких-то прикладных задач более высокого уравня, например в связи с облачной платформой openstack (https://www.openstack.org/) написанной на питоне. По крайней мере мне так кажется. В любом случае язык интересный.


Здесь мельком затронут такой вопрос, что Python может использоваться в очень разных качествах, в разных классах задач, например таких как:
- отдельные приложения (скрипты, командные файлы) выполняющиеся в консольном режиме или вообще без вывода на терминал ... утилиты операционной системы, которые могут быть заменой подобным скриптам на bash, perl, awk, ruby и т.д.
- самодостаточные крупные проекты ... примером может быть тот же Open Stack, полностью ведущиеся на Python
- плагины к крупным проектам (на C/C++) выполняющие задачи конфигурирования, настройки ... пример - проект VoIP телефонного коммутатора FreeSWITCH, использующего для быстрого написания рутинных процедур встроенные интерпретирующие языки JavaScript, Lua, Python (связь C-кода с Python).
- WEB-программирование с использованием Python
- создание для Python специализированных модулей C/C++ (тоже ещё раз связь C-кода с Python ... но уже "в другую сторону").
- создание приложений Python с графическим интерфейсом (GUI) ... интерфейсы к графическим фреймвёркам

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

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение Olej » 12 авг 2013, 23:56

Olej писал(а): - плагины к крупным проектам (на C/C++) выполняющие задачи конфигурирования, настройки ... пример - проект VoIP телефонного коммутатора FreeSWITCH, использующего для быстрого написания рутинных процедур встроенные интерпретирующие языки JavaScript, Lua, Python (связь C-кода с Python).
...
- создание для Python специализированных модулей C/C++ (тоже ещё раз связь C-кода с Python ... но уже "в другую сторону").
Связка Python + C/C++ - это сама по себе отдельная интереснейшая тема (хотя бы просто потому, что большая часть стандартных модулей Python прописана именно на C).

Вот вам такая тема: связка Python + C/C++ ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение Olej » 19 авг 2013, 23:58

Olej писал(а): Описания (языка, библиотек, статьи, wiki, справочные материалы ...)
- Python Documentation - оригинальная документация проекта Python, первооснова...
- переводы из этой документации, ссылки я эти уже приводил:
Olej писал(а): Вообще то, прежде любых описаний, книг и учебных курсов я пробежал бы вот эти переводы из документации проекта Python:
Учебник Python 3.1
Справочник по языку Python 3.1
- Wiki Портала Python-программистов
А вот здесь (подсказали добрые люди ;-) ) - добрых 2 десятка книг по Python для свободного скачивания: Книги -> Программирование -> Python.
Изображение

Некоторые из книг помещены сюда июлем 2013г. (Я думаю, что самые понравившиеся из книг лучше скачать немедленно, не дожидаясь, пока они исчезнут)
Книги на русском языке и некоторые на английском (на русском, это, в основном, переводные издания издательства "Символ-Плюс", С.-Петербург).

Особенно интересно, что здесь представлена информация по реализации графики в Python.

P.S. Книги в форматах .pdf и .djvu

frost42
Писатель
Сообщения: 43
Зарегистрирован: 21 фев 2012, 19:50
Откуда: Новокузнецк
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение frost42 » 23 авг 2013, 20:12

,Вот увидел такую книжку, хоть и на мой взгляд как-то скомкано материал выглядит, но может кому сгодится: http://wombat.org.ua/AByteOfPython/#id13

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение Olej » 23 авг 2013, 23:30

frost42 писал(а):,Вот увидел такую книжку, хоть и на мой взгляд как-то скомкано материал выглядит, но может кому сгодится: http://wombat.org.ua/AByteOfPython/#id13
В принципе, полезная книга, хотя бы для сравнения, потому что:
Настоящая книга описывает язык Python 3, несмотря на то, что Python 2 всё ещё более распространён

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение Olej » 23 авг 2013, 23:41

Olej писал(а): В принципе, полезная книга, хотя бы для сравнения, потому что:
Настоящая книга описывает язык Python 3, несмотря на то, что Python 2 всё ещё более распространён
В книге дана интересная ссылка: Python 3 on Ubuntu - wiki-страничка о совместимости Python 3 и Python 2 ... описание не полное, и, временами, неточное, но может быть как начальное приближение...

Там же читаем:
It is a release goal for Ubuntu 14.04 LTS to have only Python 3 on the desktop CD images.
Я всегда говорил, что в Ubuntu не совсем нормальные, спешат впереди паровоза ... но не до такой же степени? :-o

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение Olej » 24 авг 2013, 13:23

Olej писал(а): Справочники в онлайновом режиме:
- встроенная документация, запускается командой:

Код: Выделить всё

bash-4.2$ pydoc -p8080 &
[1] 8565
bash-4.2$ pydoc server ready at http://localhost:8080/
И дальше подключаемся в любом браузере набирая адрес http://localhost:8080 (порт 8080, конечно, можете поменять на любой)
К сожалению, мне не удалось запустить Python-документатор в Windows инсталляции (Python 3.3) ... но, возможно, потому, что я недостаточно легко ориентируюсь в Windows.
Онлайновая документация в Windows устанавливается вместе с Python 3, в меню вызова: Программы -> Python 3.3 -> Python Manuals ...
Это, конечно, не тот справочник, что pydoc в Linux, но всё же кое-что...
Вложения
py_doc.GIF

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение Olej » 25 авг 2013, 13:50

Olej писал(а):
Относительно связи с Java все совершенно верно, даже знаю Киевскую фирму, которая в своих проекта используте именно связку Python и Java.
Относительно Java я здесь повторил фразу не применительно к Java конкретно, а потому, что хотелось бы уточнить чем Python отличается от многих других привычных языков (в том числе и Java ;-) )... ну, и что общего и с кем...

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

А вот что сильно отличает Python от многих других используемых языков - так это динамическая типизация.
В C, C++, Java, FORTRAN, PASCAL, Modula-2 и мн. др. - тип каждого объекта определяется статически его описанием, которое должно присутствовать обязательно. Определённый один раз статический тип переменной уже не может быть изменён.

Определяемые динамически типы объектов могут быть позже изменены по ходу выполнения. Такое мы наблюдаем (кроме Python), например, в Perl, JavaScript, Lua ... в LISP, где понятие типа вообще отсутствует и не нужно... Ближе всего по типизации Python, как мне кажется, к JavaScript и Lua, где в JavaScript также можно определить, например, функциональный литерал:

Код: Выделить всё

var square = function( x ) { return x * x; }
или даже так:

Код: Выделить всё

var square = new Function( "x", "return x * x;" );
А Lua, похоже, вообще реализация очень похожих на Python идей, только много более поздняя и компактная (близнецы-братья) ... вот в Lua функциональное замыкание (то же, что может делаться и в Python):

Код: Выделить всё

function makeaddfunc(x)
  -- Возвращает новую анонимную функцию, которая добавляет x к аргументу
  return function(y)
    -- Когда мы ссылаемся на переменную x, которая вне текущей области,
    -- и время жизни которой меньше, чем этой анонимной функции, 
    -- Lua создаёт замыкание.
    return x + y
  end
end
plustwo = makeaddfunc(2)
print(plustwo(5)) -- Выводит 7
При динамической типизации, в Python, в тексте одной программы, в одном файле последовательно, вполне можно написать так:

Код: Выделить всё

i = 1
...
i = 1.5e-2
...
i = "теперь это строка"
...
i = [ 1, 2, 3 ]
...
i = [ 3 * x for x in range( 3 ) ]
...
i = ( 1, 2, 3 )
...
i = { 1, 2, 3 }
...
i = { 1:"one", 2:"two", 3:"three" }
...
i = lambda x: "фиктивная функция"
...
i = compile( 'lambda x: "ещё одна фиктивная функция"', '', 'eval' )
...
И всё это будет одна и та же переменная i, которая "по ходу пьесы" будет изменять не только своё значение, но и свой тип, а тем самым будут переопределяться возможности что с этой переменной можно сделать в текущий момент.

Это (динамическая типизация и её последствия) настолько важная отдельная сторона Python, что её детальное рассмотрение на примерах нужно вынести в отдельную тему обсуждения ... как ранее было сделано, например, с рассмотрением возможностей параллелизмов в Python.

P.S. Вот такая тема: Python - динамическая типизация.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Осваиваем Python по-быстрому

Непрочитанное сообщение Olej » 25 авг 2013, 15:38

Olej писал(а):Это (динамическая типизация и её последствия) настолько важная отдельная сторона Python, что её детальное рассмотрение на примерах нужно вынести в отдельную тему обсуждения ... как ранее было сделано, например, с рассмотрением возможностей параллелизмов в Python.
Есть и ещё одна тема, заслуживающая совершенно отдельной темы рассмотрения: Python и графика, Python и создание GUI приложений...
Но это уже на потом, на десерт :lol: ...

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей