Осваиваем Python по-быстрому
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Осваиваем Python по-быстрому
Эта тема появилась как следствие того, что несколько близких мне людей, из числа молодёжи, попросили поддержать их начинание в осовении Python.
Я абсолютно убеждён, что:
- Python это как-раз из тех инструментов, которые на сегодня стоит осваивать, терять на это время (в отличие, например, от PHP и др.)
- квалифицированный программист (освоивший базовые понятия) освоит Python за неделю, а через 2 недели будет производить на нём код профессионального уровня (это не сложности C, или, тем более, C++)
- я смог бы обучить программированию в Python даже обезьяну ... месяца за 2 (если без всяких предварительных знаний и навыков).
Итак, приступаем...
Я абсолютно убеждён, что:
- Python это как-раз из тех инструментов, которые на сегодня стоит осваивать, терять на это время (в отличие, например, от PHP и др.)
- квалифицированный программист (освоивший базовые понятия) освоит Python за неделю, а через 2 недели будет производить на нём код профессионального уровня (это не сложности C, или, тем более, C++)
- я смог бы обучить программированию в Python даже обезьяну ... месяца за 2 (если без всяких предварительных знаний и навыков).
Итак, приступаем...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Осваиваем Python по-быстрому
Про Python на этом форуме уже много написано: здесь.Olej писал(а):Итак, приступаем...
1. Но всё, что там разбросано написано, нужно привести в систему...
2. Осваивать программный инструмент можно только одним единственным способом: брать, и с первой же минуты начинать писать простейшие программы, экспериментировать с кодом... - программирование - это не мат. анализ, это не наука, а ремесло (как, например, ремесло гончарное или кузнечное ), здесь "вхолостую" чтение книжек ничего не даст, нужно осваивать через руки.
А для этого нужно первейшим делом установить систему Python (или именно CPython интерпретатор, как его называют строго), т.е. первейшие вопросы:
- где взять?
- что взять? (версия и т.д.)
- как установить? ... в разных операционных системах: Windows, Linus, Solaris, ... (MacOS ?)
- как проверить работоспособность (полноту установки)?
Некоторые вопросы здесь и для меня в диковинку (например, "в Windows"), и я с интересом их "пробью"...
3. Далее ... по Python очень много написано, руководств, книг, статей... - модно это
Из-за этого, к сожалению, большая часть написанного по Python - барахло, это - спекуляции, когда автор пишет для того, чтобы засветиться, а не для того, чтобы изложить предмет...
Поэтому следующий вопрос, который нужно описывать здесь в теме - те источники информации, которые содержательные, которыми стоит пользоваться, чтобы с максимальной эффективностью не терять время.
И здесь же: комментировать источники - где что читать, а что и пропустить можно, потому что все они сильно неоднородные, как правило.
4. Ну а дальше... пишем для себя примеры кода + если что-то непонятно и не получается, то показываем сюда в тему и решаем вопрос + показываем сюда же в тему какие-то примечательные примеры кода, которые раскрывают какие-то ... особенные особеннсти Python...
Все кому интересен такой план - подключайтесь.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Осваиваем Python по-быстрому
Что касается инсталляции CPython и создания среды для тестирования и экспериментов...Olej писал(а): 2. Осваивать программный инструмент можно только одним единственным способом: брать, и с первой же минуты начинать писать простейшие программы, экспериментировать с кодом... - программирование - это не мат. анализ, это не наука, а ремесло (как, например, ремесло гончарное или кузнечное ), здесь "вхолостую" чтение книжек ничего не даст, нужно осваивать через руки.
А для этого нужно первейшим делом установить систему Python (или именно CPython интерпретатор, как его называют строго), т.е. первейшие вопросы:
- где взять?
- что взять? (версия и т.д.)
- как установить? ... в разных операционных системах: Windows, Linus, Solaris, ... (MacOS ?)
- как проверить работоспособность (полноту установки)?
По этому поводу есть неплохое вот такое описание: Python: начало. Как установить Python в Windows и Linux?
Оно "всего" годичной давности (30.03.2012), так что всё ещё достаточно актуальное.
Не всё там а). бесспорно + б). исчерпывающе ... но для 1-го приближения вполне годится.
Здесь есть ещё часто задаваемый вопрос: какую версию устанавливать - 2.Х или 3.Х?
- 2.Х является массово используемой в существующих проектах и приложениях...
- 3.Х - свежая, следующий шаг ... но для неё адаптировано совсем не так много модулей и пакетов...
Вот варианты - Какую версию Python выбрать?
Скорее всего, у вас не получится полностью отказаться от Python 2, так или иначе вам придется с ним сталкиваться. Однако, это вовсе не значит, что стоит отказываться от Python 3, кардинальных отличий между этими версиями не так уж и много, а основная проблема совместимости заключается именно в модулях.
По этому, я бы рекомендовал учить обе версии. Начните, к примеру, с Python 3, а затем изучите отличия версий. Когда начнется массовый переход на Python 3, уверен, вам пригодятся знания обоих версий.
... ну, и т.д. ...На данный момент надо знать обе версии. Думаю, через 2-3 года все основные фреймворки и библиотеки будут поддерживать Python3. Но в конторах и проектах еще останется куча работающего кода на Python2.x, который нужно поддерживать, а переписывать заново на 3 никто не собирается. Так что профессионал должен учить обе версии, благо, они не так уж и сильно различаются.
отвечен 2 Авг '12
Ну и вот это ...
http://www.xakep.ru/magazine/xA/122/090/1.asp
... это инение от автора Python.Стоит ли прямо сейчас переходить на Python 3.0? Вопрос сложный. Очевидно, что процесс перехода на новую ветку будет довольно медленным, ведь сейчас написаны горы кода, который не будут работать с третьей версией. Гвидо кто-то задал вопрос: «Я собираюсь учить питон с нуля, какую версию лучше для этого использовать?». Мэтр ответил, что лучше все-таки выбрать 2.x ветку, так как пройдет еще год или два прежде, чем она будет окончательно вытеснена новой версией. Однако разработчикам уже сейчас стоит задумываться о портировании своего кода на Python 3.x.
Самое интересное, что область пересечения старой и новой веток слишком мала, чтобы комфортно писать код, который бы без изменений работал в обеих версиях. Поэтому процесс портирования может оказаться нетривиальным. К счастью, имеется много подручных средств, призванных облегчить процесс. Одно из них – скрипт с названием 2to3. Идет он в поставке вместе с последними версиями CPython. Скрипт автоматически конвертирует код, написанный для 2.x, в код для 3.x. Где он не справляется, – там выдается предупреждение.
И там же:
Языку Python уже больше семнадцати лет, а это весьма почтенный возраст для любой компьютерной технологии. С годами он не устаревает и не подвергается забвению, а наоборот - становится лучше и более востребованным. Третьего декабря 2008 года вышла очередная версия языка - Python 3.0, а четвертого - Python 2.6. Этого события программисты ждали очень долго. Дело в том, что разработчики решили инкрементировать старшую циферку не просто так. Многие новые идеи нельзя реализовать без потери обратной совместимости, а поскольку на питоне уже написана огромная масса кода, то делать это очень не желательно. Тем не менее, разработчики решились на этот шаг. Они выкинули из него весь мусор, освободились от многих устаревших конструкций и добавили несколько нововведений.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Осваиваем Python по-быстрому
Что касается приведения в порядок материалов по Python уже обсуждавшихся на форуме: часть примеров кода уже прошла кой-какую проработку и расширение, и помещены вот в этом блоге: Python: примеры и тесты (начиная с этой 1-й части и далее ... на сегодня до части 5).Olej писал(а): Про Python на этом форуме уже много написано: здесь.
1. Но всё, что там разбросано написано, нужно привести в систему...
P.S. Часть 1-я этих примеров, как-раз касается функционального стиля программирования в Python, и её то можно (нужно?) пропустить при 1-м чтении ... на потом.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Осваиваем Python по-быстрому
Olej писал(а): - Python это как-раз из тех инструментов, которые на сегодня стоит осваивать, терять на это время (в отличие, например, от PHP и др.)
Как сегодня написал мне в письме давний коллега, последние годы занимающийся профессиональной разработкой проектов на Java:Olej писал(а): по Python очень много написано, руководств, книг, статей... - модно это
Python - очень модно, в MIT он используется как учебный язык в курсе алгоритмов и структру данных.
Относительно связи с Java все совершенно верно, даже знаю Киевскую фирму, которая в своих проекта используте именно связку Python и Java.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Осваиваем Python по-быстрому
Поскольку большинство изучающих Python устанавливает Windows-версию ... то я тоже для сравнения проделаю эту установку:Olej писал(а): Что касается инсталляции CPython и создания среды для тестирования и экспериментов...
По этому поводу есть неплохое вот такое описание: Python: начало. Как установить Python в Windows и Linux?
Оно "всего" годичной давности (30.03.2012), так что всё ещё достаточно актуальное.
- чтобы проверить как с этим обстоит дело на сегодня, 01.08.2013
- чтобы иметь возможность проверить и сравнить, если у кого возникнут сложности и сомнения с кодом на Python
- чтобы посмотреть вопросы переносимости кода на Python меж операционными системами
- ... в частности - вопросы локализации вывода на консоль.
Вот мой пошаговый протокол установки:
1. Releases
Выбираю 3.3.2The current production versions are 2.7.5 and 3.3.2.
Python 3.3.2 (May 15, 2013)
Python 3.2.5 (May 15, 2013)
Python 3.1.5 (April 10, 2012)
Python 3.0.1 (February 13, 2009)
Python 2.7.5 (May 15, 2013)
Python 2.6.8 (April 10, 2012)
Python 2.5.6 (May 26, 2011)
Python 2.4.6 (December 19, 2008)
Python 2.3.7 (March 11, 2008)
Python 2.2.3 (May 30, 2003)
Python 2.1.3 (April 8, 2002)
Python 2.0.1 (June 2001)
Python 1.6.1 (September 2000)
Python 1.5.2 (April 1999)
Older releases: Source releases, binaries-1.1, binaries-1.2, binaries-1.3, binaries-1.4, binaries-1.5
2. обычная для Windows инсталляция: ... путь инсталляции меня, собственно, не волнует... - вот, собственно, и всё.
3. проверяем работоспособность того, что установили ... в меню "Пуск и т.д." появились 2-е возможности запуска: - здесь, заодно, я уже проверил отличие версии 2.Х от 3.Х - print из разряда операторов перенесен в разряд функций.
P.S. для любителей консольной строки (для себя любимого) добавлю ещё 3-й способ: в любом консольном приложении (у меня это FAR) набираете "Python": P.P.S. Теперь можно сравнивать поведение Python установленный в Windows, с Linux...
Ещё бы интересно его установить, скажем, в OpenSolaris ... из исходников.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Осваиваем Python по-быстрому
Куда интереснее (чем в режиме диалогового интерпретатора) выполнение отдельного Python-приложения из файла кода (p1.py ... использую код, когда-то написанный под 2.Х преобразованный под 3.Х):Olej писал(а): - чтобы посмотреть вопросы переносимости кода на Python меж операционными системами
- ... в частности - вопросы локализации вывода на консоль.
Код: Выделить всё
# -*- coding: utf-8 -*-
import sys
def factorial( n ):
if n == 1: return 1
else: return n * factorial( n - 1 )
if len( sys.argv ) > 1: n = int( sys.argv[ 1 ] )
else: n = int( input( "число?: " ) )
print( "число = ", n, " факториал = ", factorial( n ) )
Код: Выделить всё
C:\Python-test>p0.py
File "C:\Python-test\p0.py", line 10
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xf7 in position 0:
invalid start byte
Код: Выделить всё
C:\Python-test>p1.py
число?: 5
число = 5 факториал = 120
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Осваиваем Python по-быстрому
В отличие от UNIX (Linux) запуск Python-приложений/скриптов происходит по ассоциации с расширением имени файла, о чём есть в учебнике из комплекта документации самого проекта Python:Olej писал(а): Что интереснее (и куда важнее!), что выполнение происходит точно так же и из консоли Windows:Код: Выделить всё
C:\Python-test>p1.py число?: 5 число = 5 факториал = 120
У систем с операционной системой Windows нет такого понятия, как исполняемый режим. Установщик Python автоматически связывает файлы .py с файлом python.exe, таким образом двойной клик на файле Python запустит его в виде сценария. Расширение может быть и .pyw в случае, если окно консоли (которое, обычно, отображается) при запуске сценария подавляется.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Осваиваем Python по-быстрому
Хотя добиться ровно того же результата можно, переписав предыдущий пример так:Olej писал(а): Редактор Windows хочет рисовать буквы в своей кодировке CP-1251, а Python использует (по умолчанию!) кодировку Unicode в представлении UTF-8.
Код: Выделить всё
# -*- coding: cp1251 -*-
# ... а дальше в точности всё как и было...
Код: Выделить всё
C:\Python-test>p0.py
число?: 5
число = 5 факториал = 120
P.S. По поводу кодировок смотрим в каталоге инсталляции Python содержимое каталога lib/encoding, и, в частности файл там же с именем aliases.py
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Осваиваем Python по-быстрому
Olej писал(а): 3. Далее ... по Python очень много написано, руководств, книг, статей... - модно это
Вообще то, прежде любых описаний, книг и учебных курсов я пробежал бы вот эти переводы из документации проекта Python:Olej писал(а): В отличие от UNIX (Linux) запуск Python-приложений/скриптов происходит по ассоциации с расширением имени файла, о чём есть в учебнике из комплекта документации самого проекта Python:У систем с операционной системой Windows нет такого понятия, как исполняемый режим. Установщик Python автоматически связывает файлы .py с файлом python.exe, таким образом двойной клик на файле Python запустит его в виде сценария. Расширение может быть и .pyw в случае, если окно консоли (которое, обычно, отображается) при запуске сценария подавляется.
Учебник Python 3.1
Справочник по языку Python 3.1
Почему я показываю переводы, а не оригиналы этих документов? Потому что:
- там в начале есть ссылки и на оригиналы (можно перейти)...
- переводы очень хорошего качества, выполнены профессионально
- переводы достаточно свежие, поспевают за развитием проекта
- ... потому, что бегло пробежать текст, всё таки, быстрее и проще на родном языке.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя