мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?

Введение

Язык программирования Python (в дальнейшем будет использоваться русское название Питон. Хоть это и некорректно с точки зрения традиции транслитераци имен собственных :-P) это высокоуровневый, скриптовый, интерпретируемый, объектно-ориентированный язык с динамической сильной неявной типизацией. Переведем это на более человеческий язык.

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

Скриптовые языки (их еще называют сценарными) имеют очень нечеткое определение. Обычно это означает, что язык не используется для системного программирования (например, создания ядер операционных систем), а служит утилитарным целям как то организация взаимодействия низкоуровневых компонентов, преобразование данных и т.д. Иными словами, языки такого типа служат прослойками между чем-то другим. Однако, данное определение покрывает далеко не все возможные вариации языков. Скриптовый язык оболочки (sh или какой VB Script) еще укладываются в его прокрустово ложе, то Perl или наш Питон уже заметно выходят за его пределы. Поэтому вводятся еще дополнительные градации: командно-сценарные языки, вот тут как раз и лежат sh с VB Script, прикладные сценарные языки, такие как AutoLISP (встроенный язык в чертежной системе Autocad), VBA или StarBasic (встроенные языки в Microsoft или Open Office соответственно) и сценарные языки общего назначения. Последние класс самый молодой и в него и принято укладывать скриптовые языки, имеющие наиболее широкие возможности. Не стоит, однако, думать что языки оболочки или прикладные сценарные языки ущербны по отношению к языкам общего назначения. Многие языки оболочки ровно так же полны по Тьюрингу как и любой другой «большой» язык программирования, просто у них другая специализация.

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

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

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

Объектно-ориентированный язык - язык реализующий объектно-ориентированную парадигму программирования. Что такое объектно-ориентированная парадигма это цель отдельной большой лекции, возможно коснемся ее позже.

Динамическая типизация в контексте языков программирования означает, что тип переменной выводится в момент присваивания ей значения.

Сильная/слабая типизация. Имеет очень неоднозначные и навороченные определения, мы же остановимся на следующем: языки с сильной типизацией не позволяют в выражениях смешивать переменные разных типов и не делают автоматического преобразования типов (нельзя, например, посчитать сумму числа и строки). В случае языка со слабой типизацией такие преобразования возможны.

В случае явной типизации тип переменной требуется указывать в момент ее объявления, в случае неявной указание типа можно опустить.

Вооружившись новой терминологией опишем известные языки:

  • Pascal: высокоуровневый компилируемый процедурный язык с статической сильной явной типизацией.
  • C: высокоуровневый компилируемый процедурный язык с статической слабой явной типизацией.
  • JavaScript: высокоуровневый интерпретируемый «объектно-ориентированный» язык с динамической слабой неявной типизацией.

Начало работы

Интерпретатор языка Питон дает возможность работать с ним в интерактивном режиме. Когда каждое выражение, исполняется без задержки и предоставляет результат сразу.

Чтобы запустить интерпретатор, нужно прежде запустить эмулятор терминала: в системном меню выберите пункт «Система», а в нем LXTerminal. В открывшемся черном окне нужно набрать

 python3 

И нажать Enter.

На экране появится что-то вроде следующего:

$ python3
Python 3.4.2 (default, Oct  8 2014, 10:45:20)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Теперь интерпретатор готов к работе. Обратимся к нему и попросим выполнить набившую оскомину первую программу, которая печатает на экран строку.

print("КУКУ!")

Вот так должен выглядеть результат на экране:

>>> print("КУКУ!")
КУКУ!
>>>

Присвоим значение переменной и выполним несколько преобразований

>>> mvar = 10
>>> mvar += 15
>>> print(mvar)
25
>>>

Списки

Список в Питоне это обобщение понятия массива. Если массив в Паскале умеет хранить только элементы одного типа, то для питоньего списка такого ограничения нет.

Как мы уже выяснили, тип переменной в Питоне выясняется в момент присвоения, поэтому чтобы сообщить траслятору, что наша переменная будет иметь тип списка нужно использовать квадратные скобки:

mylist = []

Создадим список и заполним его данными:

mylist = [1, 2.5, 'ghbdtn', [1.2, 'ага']]

Количество элементов в списке можно определить с помощью функции len()

>>> mylist_length = len(mylist)
>>> print(mylist_length)
4
>>>

Обращение к элементу списка происходит так же как и до элемента массива в Паскале, однако, в отличие от Паскаля элементы списка всегда нумеруются с нуля:

>>> print (mylist[2])
ghbdtn
>>> 

Элемент списка можно заменить:

>>> print (mylist[1])
2.5
>>> mylist[1] = 2
>>> print (mylist[1])
2
>>>