Синтаксис языка Python. Возможности языка программирования Python
Синтаксис языка Python во многом похож на синтаксис таких языков, как Perl, C и Java, но вместе с этим имеет ряд отличий от этих языков программирования. В этой статье мы рассмотрим необходимые основы этого языка программирования .
Первая программа на Python:
Во-первых, следует отметить, что на Python вы можете программировать в двух режимах: интерактивном и скриптовом
Интерактивный режим программирования:
Без передачи в качестве аргумента названия файла запустит интерпретатор Python :
Введите следующий текст после строки приглашения Python и нажмите Enter:
>>> print "Hello, Python!"
Если вы все сделали правильно, то интерпретатор выдаст строку:
Если вы получили ошибку - удостоверьтесь, что правильно переписали код и что используете интерпретатор версии 2.х (для версии 3.х следует использовать команду print ("Hello, Python"))
Скриптовый режим программирования:
Запуск в командной строке python с названием файла (он еще называется скрипт) в качестве параметра, начнет выполнение кода, записанного в данном файле. После завершения выполнения скрипта, интерпретатор будет снова неактивен.
Давайте, создадим простую программу-скрипт на Python . Откройте любой текстовый редактор (Sublime, Notepad++, gedit...), создайте в нем файл с именем test и расширением.py (все файлы, содержащие код на Python должны иметь расширение .py ) и запишите в этот файл уже знакомый нам код и сохраните файл:
Print "Hello, Python!"
(Предполагается, что интерпретатор Python у вас задан в переменной PATH, то есть вы находясь в любой директории можете ввести python для запуска интерпретатора)
После этого введите следующую строку в командной строке и нажмите Enter:
Идентификаторы в Python:
Идентификаторы в Python это имена используемые для обозначения переменной, функции, класса, модуля или другого объекта. Идентификатор должен начинаться с буквы (от a до Z) или со знака подчеркивания (_), после которых может идти произвольное количество букв, знаков подчеркивания и чисел (от 0 до 9).
В Python недопустимо использование знаков препинания или специальных символов, таких как @, $ или % в качестве идентификаторов. Кроме того, Python чуствителен к регистру, то есть cat и Cat это два разных имени.
В Python существует следующая договоренность для названия идентификаторов:
- Имена классов начинаются с большой буквы, все остальные идентификаторы - с маленькой.
- Использования знака подчеркивания в качестве первого символа идентификатора означает, что данный идентификатор является частным (закрытым от использования вне класса).
- Если идентификатор начинается и заканчивается двумя знаками подчеркивания (например, __init__) это означает, что он является специальным именем, определенным внутри языка.
Зарезервированые (ключевые) слова в Python:
В данной таблице собраны все ключевые слова Python .
and | elif | if | |
as | else | import | raise |
assert | except | in | return |
break | exec | is | try |
class | finally | lambda | while |
continue | for | not | which |
def | from | or | yield |
del | global | pass |
Эти зарезервированные слова нельзя использовать в качестве имени переменной или любого другого идентификатора. Все ключевые слова Python состоят только из букв в нижнем регистре. Получить список ключевых слов возможно в интерпретаторе командой
Help("keywords")
Строки и отступы:
Одна из первых особенностей Python , которая бросается в глаза программистам, начинающим изучать этот язык программирования, это то, что в нем не используются скобки для обозначения отдельных блоков кода. Вместо них в Python используются двоеточия и отступы.
Количество пробелов в отступах произвольно и выбирается каждым на свое усмотрение, однако по договоренности равняется четырем пробелам. При этом отступ всего блока должен быть одинаковым.
Например, этот блок кода будет работать (хотя так писать не стоит):
If True: print "Hi" else: print "Bye"
А этот уже вызовет ошибку:
If True: print "Hi" print "Bye"
Таким образом, в Python несколько строк кода с одинаковым отступом будут формировать отдельный блок кода. Благодаря такой системе значительно повышается читаемость кода и прививается привычка писать понятно и структурировано.
Многострочные выражения:
Выражения в Python , как правило, заканчиваются новой строкой. Однако, в этом языке программирования существует специальный символ переноса строки (\), показывающий, что с окончанием строки не заканчивается код. Например:
Total = item1 + \ item2 + \ item3
Выражения, которые находятся внутри скобок: квадратных (), фигурных ({ }) или круглых (()) не нуждаются в символе переноса строки. Например:
Days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
Кавычки в Python:
В Python можно использовать одинарные ("), двойные (") и тройные (""" или """) кавычки чтобы обозначить строчный тип данных, при этом начинаться и заканчиваться строка должна одинаковыми кавычками. Строка занимающая несколько строк кода должна быть обрамлена тройными кавычками. Например:
Name = "wasd" description = "Some text" biography = """ Some long text for few lines of code """
Этот материал расчитан на тех, кто уже знаком с программированием и хочет освоить язык программирования Python. Он расчитан на то, чтобы за 10 минут показать вам особенности языка Python, особенности синтаксиса и основные принципы работы с Python на примерах. Здесь нет никакой «воды» — информации, которая не имеет непосредственного отношения к языку программирования. Начнем!
Язык программирования Python отличается сильной типизацией (Сильная типизация выделяется тем, что язык не позволяет смешивать в выражениях различные типы и не выполняет автоматические неявные преобразования, например нельзя вычесть из строки множество), используется динамическая типизация — все типы выясняются уже во время выполнения программы.
Объявление переменных необязательно, названия восприимчивы к регистру (var и VAR — две разные переменные).
Язык Python объектно-ориентирован, все в языке является объектом.
Получение справки
Справка (помощь) в Python всегда доступна прямо в интерпретаторе. Если вы хотите знать, как объект работает, вызовите help(
>>> help(5) Help on int object: (etc etc) >>> dir(5) ["__abs__", "__add__", ...] >>> abs.__doc__ "abs(number) -> number Return the absolute value of the argument."
Синтаксис языка Python
В Python нет конструкций для завершения блоков (таких как описание класса или функции, например) — блоки определяются с использованием отступов. Увеоичение отступа в начале блока, уменьшение — в конце блока. Инстукции, которые предполагают наличие отступов, завершаются символом двоеточия (:). Если после инструкции начала блока у вас пока нет кода, вставьте оператор pass для прохождения синтаксической проверки.
While rangelist == 1: pass
Однострочные комментарии начинаются с символа решетки (#), многострочные используют (""") в начале и в конце комментария.
Значения присваиваются с использованием знака равенства («=») (по факту объектам присваиваются имена в процессе).
Проверка на различие выполняется с двумя символами равенства («==»).
Можно увеличить значение с помощью оператора += и уменьшить с -=, указав в левой части переменную, а в правой — значение, на которую произойдет увеличение/уменьшение. Это работает со многими типами данных в Python, включая строки.
Можно присвоить значение неспольким переменным в одной строке. Примеры:
>>> myvar = 3 >>> myvar += 2 >>> myvar 5 >>> myvar -= 1 >>> myvar 4 """This is a multiline comment. The following lines concatenate the two strings.""" >>> mystring = "Hello" >>> mystring += " world." >>> print mystring Hello world. # This swaps the variables in one line(!). # It doesn"t violate strong typing because values aren"t # actually being assigned, but new objects are bound to # the old names. >>> myvar, mystring = mystring, myvar
Типы данных в Python
В Python доступны такие типы данных, как списки (lists), кортежи (tuples) и словари (dictionaries). Также доступны множества — с использованием модуля sets в версиях до Python 2.5 и встроены в язык в более поздних.
Списки похожи на одномерные массивы. При этом можно иметь список, состоящий из других списков.
Словари — это ассоциативные массивы, в которых доступ к данным осуществляется по ключу.
Кортежи — это неизменяемые одномерные массивы.
«Массивы» в Python могут быть любого типа, то есть вы можете совмещать числа, строки и другие типы данных в списках/словарях/кортежах.
Индекс первого элемента — 0. Негативное значение индекса начинает отсчет от последнего к первому, [-1] укажет на последний элемент.
Переменные могут указывать на функции.
>>> sample = , ("a", "tuple")] >>> mylist = ["List item 1", 2, 3.14] >>> mylist = "List item 1 again" # We"re changing the item. >>> mylist[-1] = 3.21 # Here, we refer to the last item. >>> mydict = {"Key 1": "Value 1", 2: 3, "pi": 3.14} >>> mydict["pi"] = 3.15 # This is how you change dictionary values. >>> mytuple = (1, 2, 3) >>> myfunction = len >>> print myfunction(mylist) 3
Вы можете получить срез массива (списка или кортежа) через использование двоеточия (:). Оставляя пустым начальное значение индекса, вы укажете начинать с первого значения, пустое значение конца индекса предполагает последний элемент массива. Негативные индексы считаются с конца массива назад (-1 — укажет на последний элемент).
Посмотрите примеры:
>>> mylist = ["List item 1", 2, 3.14] >>> print mylist[:] ["List item 1", 2, 3.1400000000000001] >>> print mylist ["List item 1", 2] >>> print mylist[-3:-1] ["List item 1", 2] >>> print mylist # Adding a third parameter, "step" will have Python step in # N item increments, rather than 1. # E.g., this will return the first item, then go to the third and # return that (so, items 0 and 2 in 0-indexing). >>> print mylist[::2] ["List item 1", 3.14]
Строки в Python
Для обозначения строки может использоваться апостроф (‘) или двойные кавычки (double quote — «). Благодаря этому вы можете иметь кавычки внутри строки, обозначенной с помощью апострофов (например ‘He said «hello».’ — правильная строка).
Многострочные строки обозначаются с использованием тройного апострофа или кавычек ("""). Python поддерживает юникод из коробки. При этом во второй версии Python для обозначения строки, содержажей unicode, используется символ (u): u»This is a unicode string». В Python3 все строки содержат юникод. Если в Python3 вам нужна последовательность байтов, которой была по сути строка в предыдущих версиях, используется символ (b): b»This is a byte string».
Для подстановки значений параметров в строку используется оператор (%) и кортеж. Каждый %s заменяется на элемент из кортежа, слева направо. Также вы можете использовать словарь для подстановки именованнх параметров:
>>>print "Name: %s\ Number: %s\ String: %s" % (myclass.name, 3, 3 * "-") Name: Poromenos Number: 3 String: --- strString = """This is a multiline string.""" # WARNING: Watch out for the trailing s in "%(key)s". >>> print "This %(verb)s a %(noun)s." % {"noun": "test", "verb": "is"} This is a test.
Инструкции для контроля потока — if, for, while
Для контроля порядка выполнения программы используются инстукции if , for и while . В Python нет switch или case , вместо них используется if . For используется для прохождения по элементам списка (или кортежа). Для получения последовательности чисел, используйте range(
Синтаксис этой конструкции следующий:
Rangelist = range(10) >>> print rangelist for number in rangelist: # Check if number is one of # the numbers in the tuple. if number in (3, 4, 7, 9): # "Break" terminates a for without # executing the "else" clause. break else: # "Continue" starts the next iteration # of the loop. It"s rather useless here, # as it"s the last statement of the loop. continue else: # The "else" clause is optional and is # executed only if the loop didn"t "break". pass # Do nothing if rangelist == 2: print "The second item (lists are 0-based) is 2" elif rangelist == 3: print "The second item (lists are 0-based) is 3" else: print "Dunno" while rangelist == 1: pass
Функции в Python
Функции объявляются с использованием ключевого слова «def». Необязательные аргументы следуют в объявлении функции после обязательных и им назначается значение по-умолчанию. При вызове функции, можно передавать аргументы через указание их имени и значения, при этом пропуская часть необязательных аргументов или располагая их в порядке, отличном от объявленном в функции.
Функции могут возвращать кортеж и используя распаковку кортежа вы можете возвращать несколько значений.
Лямбда-функции (lambda functions) — специальные фукции, обрабатывающие один аргумент.
Параметры передаются через ссылку. Добавляя элементы к переданному списку вы получите обновленный список вне функции. При этом присваивание нового значения параметрам внутри функции останется локальным действием. Поскольку при передаче передается только расположение в памяти, назначение нового объекта параметру как переменной вызовет создание нового объекта.
Примеры кода:
# Same as def funcvar(x): return x + 1 funcvar = lambda x: x + 1 >>> print funcvar(1) 2 # an_int and a_string are optional, they have default values # if one is not passed (2 and "A default string", respectively). def passing_example(a_list, an_int=2, a_string="A default string"): a_list.append("A new item") an_int = 4 return a_list, an_int, a_string >>> my_list = >>> my_int = 10 >>> print passing_example(my_list, my_int) (, 4, "A default string") >>> my_list >>> my_int 10
Классы Python
Python поддерживает ограниченную форму множественного наследования в классах.
Частные переменные и методы могут быть объявлены (по соглашению, это не проверяется интерпретатором) с использованием двух символов подчеркивания вначале и не более одного в конце имени (напрмер: «__spam»).
Мы также можем назначать произвольные имена экземплярам класса. Просмотрите примеры:
Class MyClass(object): common = 10 def __init__(self): self.myvariable = 3 def myfunction(self, arg1, arg2): return self.myvariable # This is the class instantiation >>> classinstance = MyClass() >>> classinstance.myfunction(1, 2) 3 # This variable is shared by all classes. >>> classinstance2 = MyClass() >>> classinstance.common 10 >>> classinstance2.common 10 # Note how we use the class name # instead of the instance. >>> MyClass.common = 30 >>> classinstance.common 30 >>> classinstance2.common 30 # This will not update the variable on the class, # instead it will bind a new object to the old # variable name. >>> classinstance.common = 10 >>> classinstance.common 10 >>> classinstance2.common 30 >>> MyClass.common = 50 # This has not changed, because "common" is # now an instance variable. >>> classinstance.common 10 >>> classinstance2.common 50 # This class inherits from MyClass. The example # class above inherits from "object", which makes # it what"s called a "new-style class". # Multiple inheritance is declared as: # class OtherClass(MyClass1, MyClass2, MyClassN) class OtherClass(MyClass): # The "self" argument is passed automatically # and refers to the class instance, so you can set # instance variables as above, but from inside the class. def __init__(self, arg1): self.myvariable = 3 print arg1 >>> classinstance = OtherClass("hello") hello >>> classinstance.myfunction(1, 2) 3 # This class doesn"t have a .test member, but # we can add one to the instance anyway. Note # that this will only be a member of classinstance. >>> classinstance.test = 10 >>> classinstance.test 10
Исключения в Python
Исключения в Python обрабатываются в блоках try-except :
Def some_function(): try: # Division by zero raises an exception 10 / 0 except ZeroDivisionError: print "Oops, invalid." else: # Exception didn"t occur, we"re good. pass finally: # This is executed after the code block is run # and all exceptions have been handled, even # if a new exception is raised while handling. print "We"re done with that." >>> some_function() Oops, invalid. We"re done with that.
Импорт модулей в Python
Внешние библиотеки используются после импорта с использованием ключевого слова import . Вы также можете использовать from import для импорта индивидуальных функций.
Import random from time import clock randomint = random.randint(1, 100) >>> print randomint 64
Работа с файлами в Python
Python обладает большим количеством библиотек для работы с файлами. Например, сериализация (конвертирование данных в строки с библиотекой pickle):
Import pickle mylist = ["This", "is", 4, 13327] # Open the file C:\\binary.dat for writing. The letter r before the # filename string is used to prevent backslash escaping. myfile = open(r"C:\\binary.dat", "w") pickle.dump(mylist, myfile) myfile.close() myfile = open(r"C:\\text.txt", "w") myfile.write("This is a sample string") myfile.close() myfile = open(r"C:\\text.txt") >>> print myfile.read() "This is a sample string" myfile.close() # Open the file for reading. myfile = open(r"C:\\binary.dat") loadedlist = pickle.load(myfile) myfile.close() >>> print loadedlist ["This", "is", 4, 13327]
Разное
- Условия могут склеиваться, например 1 < a < 3 проверит, что a одновременно меньше 3 и больше 1.
- Вы можете использовать del для удаления переменных или элементов в массивах.
- Списки дают очень сильные возможности для манипуляции данными. Вы можете составить выражение с использованием for и последующими инструкциями if или for:
- Глобальные переменные объявляются вне функций и могут читаться без специальных объявлений внутри, но если вы хотите записывать их, вы должны объявить из в начале функции с использованием специального ключевого слова «global», иначе Python назначит новое значение локальной переменной:
Как выучить язык программирования Python
Этот материал не претендует на исчерповающее руководство по Python. Язык программирования Python обладает огромным числом библиотек и различной функциональностью, с которыми вы познакомитесь, продолжив работать с языком и изучая дополнительные источники.
Если вам недостаточно изложенной информации — просмотрите расширенный материал с описанием языка программирования Python — — в нем сведения о языке изложены более подробно.
Среди других материалов рекомендую Learn Python The Hard Way . И, конечно The Python 2 Tutorial и The Python 3 Tutorial .
Большая благодарность Stavros Korokithakis за его отличный tutorial «Learn Python in 10 minutes» .
Если вы хотите что-то улучшить в этом материале — пожалуйста напишите в комментариях.
Последнее обновление: 24.01.2018
Python представляет популярный высокоуровневый язык программирования, который предназначен для создания приложений различных типов. Это и веб-приложения, и игры, и настольные программы, и работа с базами данных. Довольно большое распространение питон получил в области машинного обучения и исследований искусственного интеллекта.
Впервые язык Python был анонсирован в 1991 году голландским разработчиком Гвидо Ван Россумом. С тех пор данный язык проделал большой путь развития. В 2000 году была издана версия 2.0, а в 2008 году - версия 3.0. Несмотря на вроде такие большие промежутки между версиями постоянно выходят подверсии. Так, текущей актуальной версией на момент написания данного материала является 3.7 . Более подробную информацию о всех релизах, версиях и изменения языка, а также собственно интерпретаторы и необходимые утилиты для работы и прочую полезную информацию можно найти на официальном сайте https://www.python.org/ .
Основные особенности языка программирования Python:
Python - очень простой язык программирования, он имеет лаконичный и в то же время довольно простой и понятный синтаксис. Соответственно его легко изучать, и собственно это одна из причин, по которой он является одним из самых популярных языков программирования именно для обучения. В частности, в 2014 году он был признан самым популярным языком программирования для обучения в США.
Python также популярен не только в сфере обучения, но в написании конкретных программ в том числе коммерческого характера. В немалой степени поэтому для этого языка написано множество библиотек, которые мы можем использовать.
Кроме того, у данного языка программирования очень большое коммьюнити, в интернете можно найти по данному языку множество полезных материалов, примеров, получить квалифицированную помощь специалистов.
Для создания программ на Python нам потребуется интерпретатор. Для его установки перейдем на сайт https://www.python.org/ и на главной станице в секции Downloads найдем ссылку на загрузку последней версии языка (на данный момент это 3.7.2):
Перейдем по ссылке к странице с описанием последней версии языка. Ближе к низу на ней можно найти список дистрибутивов для разных операционных систем. Выберем нужный нам пакет и загрузим его. Например, в моем случае это ОС Windows 64-х разрядная, поэтому я выбираю ссылку на пакет Windows x86-64 executable installer . После загрузки дистрибутива установим его.
Соответственно для MacOS можно выбрать пункт macOS 64-bit installer .
На ОС Windows при запуске инсталлятора запускает окно мастера установки:
Здесь мы можем задать путь, по которому будет устанавливаться интерпретатор. Оставим его по умолчанию, то есть C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python36\ .
Кроме того, в самом низу отметим флажок "Add Python 3.6 to PATH", чтобы добавить путь к интерпретатору в переменные среды.
После установки в меню Пуск на ОС Windows мы сможем найти иконки для доступа к разным утилитам питона:
Здесь утилита Python 3.7 (64-bit) представляет интерпретатор, в котором мы можем запустить скрипт. В файловой системе сам файл интерпретатора можно найти по пути, по которому производилась установка. На Windows по умолчанию это путь C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python37 , а сам интерпретатор представляет файл python.exe . На ОС Linux установка производится по пути /usr/local/bin/python3.7 .
Существует множество областей применения Python, но в некоторых он особенно хорош. Разбираемся, что же можно делать на этом ЯП.
Основные отличия:
- Flask обеспечивает простоту, гибкость и полный контроль над проектом. Он позволяет пользователю самостоятельно решать, как реализовывать те или иные вещи.
- Django – это сервис типа «все включено». Из коробки в нем уже есть админ-панель, интерфейсы баз данных, ORM (объектно-реляционное отображение) и структура каталогов для ваших проектов.
Что выбрать?
- Выбирайте Flask, если хотите получить больше опыта и возможностей для обучения. Или в том случае, если вам нужен максимальный контроль над всеми используемыми компонентами, например, базами данных.
- Выбирайте Django, если вас интересует конечный продукт. Особенно, если вы работаете с простыми приложениями, такими как новостной сайт, магазин, блог, и хотите, чтобы каждая задача решалась одним предельно ясным способом.
Другими словами, Flask – это, возможно, лучший выбор для начинающего разработчика, так как он содержит меньше компонентов. Кроме того, его стоит выбрать, если необходима тонкая настройка проекта.
Flask из-за своей гибкости лучше подходит для создания REST API .
С другой стороны, если стоит задача сделать что-то просто и быстро, вероятно, стоит выбрать Django.
Data Science: машинное обучение, анализ данных и визуализация
Прежде всего, следует разобраться, что такое .
Предположим, что вы хотите разработать программу, которая будет автоматически определять, что изображено на картинке.
Например, предлагая ей это изображение, вы хотите, чтобы программа опознала собаку.
А здесь она должна увидеть стол.
Возможно, вы думаете, что для решения этой задачи можно просто написать код анализа изображения. Например, если на картинке много светло-коричневых пикселей, делаем вывод, что это собака.
Или вы можете научиться определять на изображении края и границы. Тогда картинка с большим количеством прямых границ, вероятно, окажется столом.
Однако это довольно сложный и непродуманный подход. Что делать, если на фотографии изображена белая собака без коричневых пятен? Или если на картинке круглый стол?
Здесь вступает в игру машинное обучение. Обычно оно реализует некоторый , который позволяет автоматически обнаруживать знакомый шаблон среди входных данных.
Вы можете предложить алгоритму машинного обучения, скажем, 1000 изображений собаки и 1000 снимков столов. Он выучит разницу между этими объектами. Затем, когда вы дадите ему новую картинку со столом или собакой, он сможет определить, что именно на ней изображено.
- scikit-learn из коробки имеет несколько встроенных популярных алгоритмов обучения;
- TensorFlow – это более низкоуровневая библиотека. Она позволяет создавать пользовательские алгоритмы.
Новичкам в машинном обучении лучше начать со scikit-learn. Более опытным разработчикам, которые столкнулись с проблемами эффективности, стоит присмотреться к TensorFlow.
Как изучать машинное обучение?
Настоящие аналитики, например, в Google или Microsoft, делают то же самое, только их работа более сложная и комплексная.
Они используют язык запросов SQL, чтобы извлекать данные из баз. Затем для анализа и визуализации применяются специальные инструменты, например, Mathplotlib (для Python) или D3.js (для JavaScript).
Способы применения Python для анализа и визуализации данных
Одна из самых популярных библиотек для визуализации – Mathplotlib .
Новичкам следует начинать обучение с нее по двум причинам:
- низкий порог вхождения;
- освоение Mathplotlib позволит в будущем быстрее разобраться в более сложных библиотеках, основанных на ней, например, seaborn .
Как изучать анализ данных на Python?
С недавних пор некоторые компании начали использовать для создания настольных приложений JavaScript. Например, десктопное приложение Slack было создано с помощью JavaScript-фреймворка Electron .
Преимущество написания настольных приложений на JavaScript заключается в том, что можно повторно использовать код веб-версии.
Python 3 или Python 2
Python 3 – это более современный и популярный выбор.
Пояснение о backend- и frontend-коде
Предположим, вы хотите сделать нечто, напоминающее Инстаграм.
О Python (лучше произносить "питон", хотя некоторые говорят "пайтон") - предмете данного изучения, лучше всего говорит создатель этого языка программирования, голландец Гвидо ван Россум:
"Python - интерпретируемый, объектно-ориентированный высокоуровневый язык программирования с динамической семантикой. Встроенные высокоуровневые структуры данных в сочетании с динамической типизацией и связыванием делают язык привлекательным для быстрой разработки приложений ( RAD , Rapid Application Development ). Кроме того, его можно использовать в качестве сценарного языка для связи программных компонентов. Синтаксис Python прост в изучении, в нем придается особое значение читаемости кода, а это сокращает затраты на сопровождение программных продуктов. Python поддерживает модули и пакеты, поощряя модульность и повторное использование кода. Интерпретатор Python и большая стандартная библиотека доступны бесплатно в виде исходных и исполняемых кодов для всех основных платформ и могут свободно распространяться."
В процессе изучения будет раскрыт смысл этого определения, а сейчас достаточно знать, что Python - это универсальный язык программирования. Он имеет свои преимущества и недостатки, а также сферы применения. В поставку Python входит обширная стандартная библиотека для решения широкого круга задач. В Интернете доступны качественные библиотеки для Python по различным предметным областям: средства обработки текстов и технологии Интернет, обработка изображений, инструменты для создания приложений, механизмы доступа к базам данных, пакеты для научных вычислений, библиотеки построения графического интерфейса и т.п. Кроме того, Python имеет достаточно простые средства для интеграции с языками C, C++ (и Java) как путем встраивания (embedding) интерпретатора в программы на этих языках, так и наоборот, посредством использования библиотек, написанных на этих языках, в Python-программах. Язык Python поддерживает несколько парадигм программирования: императивное (процедурный, структурный, модульный подходы), объектно-ориентированное и функциональное программирование.
Можно считать, что Python - это целая технология для создания программных продуктов (и их прототипов). Она доступна почти на всех современных платформах (как 32-битных, так и на 64-битных) с компилятором C и на платформе Java.
Может показаться, что, в программной индустрии нет места для чего-то другого кроме C/C++, Java, Visual Basic, C#. Однако это не так. Возможно, благодаря данному курсу лекций и практических занятий у Python появятся новые приверженцы, для которых он станет незаменимым инструментом.
Как описать язык?
В этой лекции не ставится цели систематически описать Python: для этого существует оригинальное справочное руководство. Здесь предлагается рассмотреть язык одновременно в нескольких аспектах, что достигается набором примеров, которые позволят быстрее приобщиться к реальному программированию, чем в случае строгого академического подхода.
Однако стоит обратить внимание на правильный подход к описанию языка. Создание программы - это всегда коммуникация, в которой программист передает компьютеру информацию, необходимую для выполнения последним действий. То, как эти действия понимает программист (то есть "смысл"), можно назвать семантикой . Средством передачи этого смысла является синтаксис языка программирования. Ну а то, что делает интерпретатор на основании переданного, обычно называют прагматикой . При написании программы очень важно, чтобы в этой цепочке не возникало сбоев.
Синтаксис - полностью формализованная часть: его можно описать на формальном языке синтаксических диаграмм (что и делается в справочных руководствах). Выражением прагматики является сам интерпретатор языка. Именно он читает записанное в соответствии с синтаксисом "послание" и превращает его в действия по заложенному в нем алгоритму. Неформальным компонентом остается только семантика. Именно в переводе смысла в формальное описание и кроется самая большая сложность программирования. Синтаксис языка Python обладает мощными средствами, которые помогают приблизить понимание проблемы программистом к ее "пониманию" интерпретатором. О внутреннем устройстве Python будет говориться в одной из завершающих лекций.
История языка Python
Создание Python было начато Гвидо ван Россумом (Guido van Rossum) в 1991 году, когда он работал над распределенной ОС Амеба. Ему требовался расширяемый язык, который бы обеспечил поддержку системных вызовов. За основу были взяты ABC и Модула-3. В качестве названия он выбрал Python в честь комедийных серий BBC "Летающий цирк Монти-Пайтона", а вовсе не по названию змеи. С тех пор Python развивался при поддержке тех организаций, в которых Гвидо работал. Особенно активно язык совершенствуется в настоящее время, когда над ним работает не только команда создателей, но и целое сообщество программистов со всего мира. И все-таки последнее слово о направлении развития языка остается за Гвидо ван Россумом.