Вопросы:
· Структура программы на языке Python.
· Операции и переменные.
· Типы данных языка Python.
Итак, рассмотрим, из чего состоят программы на языке Python. Любая программа на языке Python состоит из модулей. Модуль на языке Python представляет собой ряд связанных между собой операций. Модули сохраняются в отдельных файлах с расширением *.py. Сохранённые модули можно использовать в создаваемых программах. Сначала мы будем разрабатывать довольно простые программы, которые практически всегда будут состоять всего из одного модуля.
Модули, в свою очередь, состоят из более простых структурных единиц. В модулях содержится код на языке Python, состоящий из инструкций. Инструкции представляют собой указания компьютеру. Они определяют, какие операции выполнит компьютер с данными. Инструкции в языке Python делятся на простые и составные. Простые инструкции описываются одной строкой кода, составные же – содержат вложенные инструкции.
Инструкции могут содержать выражения. И если инструкции определяют, какие действия будут выполнены над информацией, то выражения в составе инструкций определяют, над какими именно данными будут выполнены действия, описанные в инструкции.
Вместе с языком Python поставляется множество стандартных модулей, которые предоставляют программисту большое количество инструментов и возможностей для написания самых разных программ.
Рассмотрим пример. Находясь в интерактивном режиме среды разработки, создадим новый файл, в котором запишем несколько инструкций. Сохраним его под именем modul_1.py. Запишем в файле инструкцию вывода print (2 * (10 – 4)). Сохраним файл и запустим инструкцию на выполнение. В главном окне среды разработки было выведено значение записанного нами выражения, то есть 12.
В описанном нами примере, файл modul_1.py является модулем, строка, записанная нами в этом файле, является инструкцией, а математическое выражение, записанное в скобках, является выражением.
Рассмотрим, что такое операции. Операциями в языках программирования называются любые действия над операндами. Операндами называются некоторые данные. Для примера рассмотрим операции, используемые в описанном нами математическом выражении. Всего их две: разность и умножение. Операндами для операции разности являются числа: 10 и 4. Операндами для операции умножения являются число 2 и разность чисел 10 и 4. Установив скобки в этом выражении, мы определили порядок выполнения операций. Сначала будет выполнена операция разности, записанная в скобках, после чего её результат будет использован в качестве операнды при выполнении умножения. Приоритет выполнения операций в языке Python соответствует математическому.
Операндами для операций могут быть литералы, выражения и переменные. В описанном нами примере операндами разности являются литералы, то есть числа, которые записаны при написании кода, а для операции умножения – литерал, то есть число 2, а также выражение, то есть разность чисел 10 и 4. Операндами могут быть и переменные. Независимо от языка программирования, переменной называется именованная область оперативной памяти, в которой хранится информация определённого типа. Механизм связи между переменной и данными, которые она содержит, может отличаться в зависимости от языка программирования. Пока просто запомним, что данные, сохранённые в переменной, связаны с некоторым именем и могут быть вызваны по этому имени.
Данные, которые соответствуют переменной в языке Python, могут быть определены с помощью инструкции присваивания. Инструкция присваивания в языке Python записывается с помощью знака равенства, слева от которого находится имя переменной, а справа – её значение. То есть, чтобы переменной а присвоить значение 4, мы должны записать строку кода: а = 4.
Рассмотрим пример. В среде разработки языка Python, в интерактивном режиме, присвоим переменной t значение 15, после чего убедимся, что операция выполнена. Для этого запишем строку кода: t = 15 и нажмём клавишу Enter. Операция присваивания уже была выполнена – убедимся в этом. Для этого запишем инструкцию print (t) для вывода значения переменной t на экран. Таким образом, мы убедились, что переменная t имеет значение 15. Важно запомнить, что переменную стоит называть осмысленно, её имя не должно совпадать со служебными словами языка или содержать служебные символы; имя переменной не может начинаться с цифры.
Рассмотрим, какие типы данных используются в языке программирования Python. Во время написания программ мы будем использовать всего четыре основных типа данных: целые числа – int, вещественные числа – float и символьные строки – str. К целым числам относятся числа без дробной части, например: 0, 7, - 12 и т. д… К вещественным числам относятся числа с дробной частью, например: 3.5, - 6.7 и так далее… К символьным строкам относятся любые последовательности символов. При вводе они заключаются в двойные или одинарные кавычки.
Те из вас, кто до этого использовал другие языки программирования, например Pascal, знают, что прежде чем использовать переменную в программе, её нужно объявить. При этом, за переменной закрепляется ячейка оперативной памяти, а также указывается тип данных, которые будут на ней храниться. Возможно, многие из вас обратили внимание на то, что при написании кода для демонстрации работы оператора присваивания, мы не объявляли переменную Тэ, прежде чем присвоить ей значение. Так происходит потому, что в языке Python переменная объявляется автоматически перед первым использованием. Тогда у многих из вас может возникнуть вопрос: «Как определяется тип переменной? Ведь его мы тоже не указывали». В отличие от всё того же языка Pascal, в языке Python используется динамическая типизация. Что это означает? В языке Python тип переменной определяется автоматически, в зависимости от присвоенного ей значения, а так как значение переменной в ходе исполнения программы может изменяться, то и тип переменной также изменяется вслед за значением.
Как же определить, какой тип имеет переменная на данный момент? Для этого в языке Python есть функция type. Посмотрим, как она работает. В среде разработки языка Python, в интерактивном режиме, сначала присвоим переменной a значение 4, после чего запишем инструкцию type (a). На экран был выведен результат выполнения инструкции. В угловых скобках записано слово type, после которого в одинарных кавычках следует тип переменной – int. Теперь присвоим переменной a значение -5.7. В языке Python дробная часть числа отделяется от целой точкой. Теперь снова запишем инструкцию type (a). Как видим, тип переменной a изменился на float. Теперь присвоим переменной a символьную строку. Для этого, после знака равенства, в двойных или одинарных кавычках запишем любую последовательность символов, например, слово «Привет». Теперь снова запишем инструкцию type (a). Тип переменной a изменился на str. Для того, чтобы задать число с нулевой дробной частью как вещественное, достаточно просто указать его дробную часть равной нулю. Присвоим переменной a значение 4.0, после чего запишем инструкцию type (a). Как видим, тип переменной a стал float. Важно запомнить, что значения строкового типа не могут употребляться в одном выражении со значениями одного из числовых типов, иначе результатом попытки выполнения инструкции будет сообщение об ошибке.
Решим задачу. Написать модуль, в котором переменным a и b присваиваются значения соответственно равные 8.5 и 6, а переменной c – значение суммы a и b. После чего выводятся на экран значения переменной c, разности a и b, их произведения, частного, а также ab.
Создадим файл модуля, после чего сохраним его. Начнём написание инструкций. В начале запишем инструкцию для присваивания переменной a значения 8.5. После этого, запишем инструкцию для присваивания переменной b значения 6, а также инструкцию присваивания переменной c значения суммы a и b. Дальше напишем инструкцию print, после которой будут следовать пустые скобки. Скопируем эту инструкцию четыре раза (по количеству выражений, результаты которых необходимо вывести). В первой инструкции print в скобках запишем c, во второй – a – b, в третьей – a * b, в четвёртой – a / b и в пятой – a ** b.
a = 8.5
b = 6
c = a + b
print (c)
print (a - b)
print (a * b)
print (a / b)
print (a ** b)
После того как все инструкции записаны, сохраним модуль и запустим его на выполнение. В главном окне среды разработки в пяти строках было выведено пять чисел – результаты перечисленных операций. Модуль работает правильно. Задача решена.
Обратим внимание на то, как выполняются инструкции присваивания в написанном нами модуле. При выполнении первой инструкции сначала выделяется ячейка оперативной памяти для переменной a, после чего проверяется литерал 8.5. Это вещественное число, поэтому тип переменной становится float. Далее в ячейку оперативной памяти заносится значение литерала 8.5. Вторая инструкция выполняется так же, с той лишь разницей, что литерал 6 является целым числом и тип переменной b будет int. При выполнении третьей инструкции присваивания сначала из оперативной памяти извлекаются значения переменных a и b, после чего вычисляется значение их суммы. Далее для переменной c выделяется ячейка оперативной памяти. Так как результатом операции сложения является вещественное число, тип переменной c становится float. В созданную ячейку оперативной памяти заносится результат суммы, то есть четырнадцать целых пять десятых.
Мы узнали:
· Программа на языке Python состоит из модулей, которые, в свою очередь, состоят из инструкций, которые могут содержать выражения.
· Операцией называется любое действие над данными.
· Переменной называется именованная область оперативной памяти, содержащая данные определённого типа.
· В языке Python есть три основных типа данных: целые числа – int, вещественные числа – float, а также строки символов – str.
· В языке Python переменные объявляются автоматически при первом использовании.
· Тип данных, хранящихся в переменной, изменяется в ходе исполнения программы в зависимости от того, какое значение присваивается переменной. Этот принцип называется динамической типизацией.