Лабораторная Работа №12 язык Python. Переменные, значения и их типы. Ввод/вывод данных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная Работа №12 язык Python. Переменные, значения и их типы. Ввод/вывод данных



 

Цель работы

Изучить основы синтаксиса языка, типы данных, присваивание значений и ввод и вывод данных на экран.

 

Порядок выполнения работы

- ознакомится с теоретическими сведениями;

- выполнить задание;

- оформить отчет;

- ответить на контрольные вопросы, заданные преподавателем.

 

Оформление отчета

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

 

Теоретические сведения

Язык Python, в общем случае, относится к интерпретируемому типу исполнения. Интерпретатор языка – это такой модуль, который исполняет другие программы. Когда вы пишете код на языке Python, интерпретатор Python читает вашу программу и выполняет составляющие ее инструкции. По сути дела, интерпретатор – это слой программной логики между вашим программным кодом и аппаратурой вашего компьютера.

В процессе установки пакета Python на компьютер создается ряд программных компонентов – как минимум, интерпретатор и библиотека поддержки. В зависимости от особенностей использования интерпретатор Python может иметь вид исполняемой программы или набора библиотек, связанных с другой программой. Независимо от используемой разновидности Python ваш программный код на этом языке всегда будет выполняться этим интерпретатором. А чтобы обеспечить такую возможность, вы должны установить интерпретатор Python на свой компьютер.

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

Для запуска программы можно воспользоваться несколькими вариантами. Во-первых, запуск программы через командную строку Windows с помощью команды python (рисунок 1).Во-вторых, запуск через Python Shell (File->OpenFile->Run->Run Module) (рисунок 2).В-третьих, двойной щелчок по ярлыку файлу. К сожалению, запуск программы таикм способом вызывает появление окна на очень короткое время, чего явно недостаточно для обеспечения обратной связи. Если вам требуется, чтобы результаты работы сценария оставались на экране после щелчка мышью на ярлыке файла, просто добавьте вызов встроенной функции input в самом конце сценария (рисунок 1).

Рисунок 1 – Результат работы первой программы в командной строке Windows

 

Рисунок 2 – Результат работы первой программы в Python Shell

 

Рисунок 3 – Результат работы первой программы по щелчку на ярлык

 

Если при выполнении файла все пройдет как надо, вы увидите результаты работы двух инструкций print () где-то на экране своего компьютера – обычно это происходит в том же окне, где производился запуск программы. Использование интерактивного режима (ввод команд в Python Shell) идеально подходит для тестирования и эксперементирования кода.

 

Операции

Как и в любом другом языке, операции поделены на математические и логические. Синтаксис записи команд прямой, все очень доступно и понятно. Основные операции языка Python представлены в таблице 1.

Таблица 1. Операции языка Python

 

Так как Python поддерживает динамическую типизацию, то иногда бывают полезны функции приведения типов. Они представлены в таблице 2.

 

 Таблица 2. Функции конвертирования типов

float(a) в вещественное
int(a) в целое (отбрасывает дробную часть)
str(a) в строку

 

Вывод информации

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

 

Рисунок 4 – Результат вывода информации в Python Shell

 

Как видно из примера одновременный вывод нескольких чисел 6, 8, 4 без оператора получается в виде списка. Это происходит из-за того, что, когда Python выводит значение выражения в командном режиме, он использует тот же формат, что используется при вводе этого значения. Например, при выводе строк он заключает их в кавычки. Команда print () также выводит значение выражения, но в случае со строками, она выводит содержимое строки без кавычек.

В скриптах, выражения вообще ничего не выводят, если в них нет инструкции print ().

Например, следующий скрипт не выводит ни одной строки:

 

Рисунок 5 – Результат вывода информации в Python Shell

 

Сейчас было продемонстрировано, как можно выводить кавычки – заключить строку не в кавычки, а в апострофы, а кавычки использовать внутри. Можно решить проблему вывода кавычек и других вопросов и по-другому – использовать экранирующие символы. Уже прекрасно известно, что в кодовых таблицах (наборах цифровых кодов, обозначающих различные символы, которые компьютер может выводить на экран) есть целая группа так называемых непечатаемых символов. Непечатаемые символы используются для управления вводом/выводом. Самые часто используемые из них: знак табуляции, перенос на новую строку и знак «возврата каретки». Т.к. в кодовой таблице нет символов, отображаемых на экране, для их обозначения придумали специальные последовательности. Они представлены в таблице 3.

Таблица 3. Символы управления вводом/выводом

Последовательность Назначение
\t Табуляция
\n Перевод на новую строку
\r Возврат «каретки» (курсора) в начало строки

 

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

Рисунок 6 – Результат вывода информации в Python Shell

 

Как выводится такая строка "Горох\rП\n\tсыпуч"? Сначала выводится строка «Горох» – только после нее интерпретатор встречает первую специальную последовательность: "\r" – символ возврата «каретки» на начало строки. Затем выводится символ "П", но происходит это на позиции первого символа. При этом уже имеющийся на этой позиции символ заменяется новым. После этого последовательности "\n" и "\t" дают указание произвести перевод на новую строку и оставить отступ в одну табуляцию. Далее выводится оставшаяся часть строки "сыпуч". Разумеется, не стоит применять специальные последовательности там, где это не обязательно, иначе программу будет сложно и неудобно читать.

Переменные

В Python переменная – это ссылка на ячейку памяти. Это объясняет подход к организации хранения объектов в памяти. Для того, чтобы «запомнить» значение достаточно присвоить (сопоставить) его переменной. В отличии от структурированной типизации объявлять переменные не нужно, более того, интересно, что одной и той же переменной можно присваивать разные типы данных в любой момент времени. Плюс этого – экономное распределение памяти, сокращение кода. Минус – возможная путаница, требует больше внимания. Тип переменной синхронизируется с типом присваиваемого ей значения. Рассмотрим пример:

Этот пример интересен по нескольким причинам. Во-первых, в нем явно видно использование возможности присваивать значение одной переменной другой, изначально разнотипных: message – текст, n – целое число. Конструкция message = n работает аналогично присваиванию переменной значения: переменной message присваивается значение переменной n. При этом значение 12 хранится в памяти только один раз, а старое значение переменной message “Hello world!” стирается – Python довольно экономно расходует память.

Рисунок 7 – Работа с памятью

 

Во-вторых, как видно из примера, переменная message после присваивания ей значения n поменяла свой тип. Далеко не каждый язык программирования «умеет» это делать так просто. Функция type () возвращает тип введенного ей параметра, причем этот параметр необязательно должен быть переменной, скажем, может быть и функцией.

 

Имена переменных могут быть произвольной длины. При составлении имен переменных в Python можно использовать любые латинские буквы, цифры и знак подчеркивания (_). Названия переменных не могут начинаться с цифры. Естественно и зарезервированные слова не могут быть именем переменной. Вот список зарезервированных слов в Python версии 3.6, их всего 33:

Таблица 4. Зарезервированные слова

False def if raise
None del import return
True elif in try
And else is while
As except lambda with
Assert finally nonlocal yield
Break for not  
Class from or  
Continue global pass  

 

Список ключевых слов можно узнать так:

Рисунок 8 – Список ключевых слов в Python Shell

Python чувствителен к регистру в именах переменных, функций. То есть, переменные A и a – это ссылки на физически разные адреса памяти. Убрать связь имени с объектом можно с помощью оператора del. В этом случае, если объект не имеет других ссылок на него, он будет удален. Для управления памятью Python использует менеджер подсчета ссылок (reference counting), для удаления наборов объектов с зацикленными ссылками - сборка мусора (garbage collection).

Ввод данных с клавиатуры

Чтобы пользователь мог задать значения переменным с клавиатуры, нужно воспользоваться специальной функцией input (<подсказка>). Подсказка необязательна, но дает понять пользователю, что нужно ввести. Рассмотрим пример использования:

Рисунок 9 – Ввод данных

Здесь пришлось воспользоваться функцией приведения типов int (), так как введенное с клавиатуры значение рассматривается как текст.

Рисунок 10 – Ввод данных

Встроенные типы

В табл.5 представлены некоторые встроенные типы объектов языка Python и некоторые синтаксические конструкции использования этих объектов в виде литералов – то есть выражения, которые генерируют эти объекты. Некоторые из этих типов наверняка покажутся вам знакомыми, если ранее вам приходилось работать с другими языками программирования. Например, числа и строки представляют числовые и текстовые значения 11 соответственно, а файлы обеспечивают интерфейс для работы с файлами, хранящимися в компьютере.

Таблица 5. Некоторые встроенные типы объектов

Тип объекта Пример литерала/создания
Числа 1234, 3.1415, 3+4j, Decimal, Fraction
Строки ‘spam’, “guido’s”, b’a\x01c’
Списки [1, [2, ‘three’], 4]
Словари {‘food’: ‘spam’, ‘taste’: ‘yum’}
Кортежи (1,’spam’, 4, ‘U’)
Файлы myfile = open(‘eggs’, ‘r’)
Множества set(‘abc’), {‘a’, ‘b’, ‘c’}
Прочие базовые типы Сами типы, None, логические значения
Типы структурных элементов программ Функции, модули, классы
Типы, имеющие отношение к реализации Компилированный программный код, стек вызовов

 

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

Кроме того, в языке Python имеется логический тип данных (представленный предопределенными объектами True и False, которые по сути являются обычными целыми числами 1 и 0 с некоторыми особенностями отображения на экране).

Числа

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

Несмотря на наличие некоторых необычных типов, базовые числовые типы в языке Python действительно являются базовыми. Числа в Python поддерживают набор самых обычных математических операций. Например, символ «плюс» (+) означает сложение, символ «звездочка» (*) – умножение, а два символа «звездочка» (**) – возведение в степень:

Строки

Строки используются для записи текстовой информации, а также произвольных последовательностей байтов. Это наш первый пример последовательностей, или упорядоченных коллекций других объектов, в языке Python. Последовательности поддерживают порядок размещения элементов, которые они содержат, слева направо: элементы сохраняются и извлекаются исходя из их позиций в последовательностях. Строго говоря, строки являются последовательностями односимвольных строк. Другими типами последовательностей являются списки и кортежи (будут описаны в другой лабораторной работе).

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

В языке Python индексы реализованы в виде смещений от начала и потому индексация начинается с 0: первый элемент имеет индекс 0, второй – 1 и так далее.

Импорт библиотек

Импортирование модулей – это один из способов запуска программного кода в файлах, но, помимо этого, и это будет рассмотрено в книге позже, модули являются также самой крупной структурной единицей в программах на языке Python.

Вообще программы на языке Python состоят из множества файлов модулей, связанных между собой инструкциями import. Каждый файл модуля – это самостоятельный пакет переменных, или пространство имен. Один модуль не сможет увидеть переменные, определенные в другом модуле, если явно не импортирует его. Модули позволяют уменьшить вероятность конфликтов имен в программном коде – так как каждый файл является самостоятельным пространством имен, имена в одном файле не вступают в конфликт с именами в другом файле, даже если они одинаковые.

Например, для выполнения данной лабораторной работы может пригодится модуль math, который содержит в себе сложные математические функции. Помощь по данному модулю можно вызвать с помощью команды help (math)

Для наглядности и понимания импорта модуля math, попробуем реализовать вычисление функции:

Результат приведен на рисунке 11.

Следует обратить внимание, что импорт модуля осуществляется один раз – в самом начале работы – больше импортировать модуль нет необходимости. Для доступа к константам, переменным и функциям модуля необходимо написать имя модуля и, через точку, имя константы, переменной или функции (например, math.pi – число Pi, math.cos (x) – вычисление cos от x).

 

Рисунок 11 – Использование математического модуля math

Оборудование

ПЭВМ IBMPC, операционная система Windows, OooWriter, MSWord, Python.

 

Задание на работу

В интерактивном режиме выполнить:

1. Вычисление корней квадратного уравнения ax2+bx-c=0, если а,b,c - положительные числа.

2. Вычисление медиан треугольника со сторонами a,b,c по формулам:

3. Вычисление функции:

4. Вычисление функции a(x,y,z), где x, y, z – действительные числа.

5. Вычисление функции:

6. Вычисление объема и площади тела состоящего из цилиндра радиусом r1 и высотой h1 и конусом того же радиуса и высотой h2.

7. Вычисление углов A,B,C треугольника со сторонами a,b,c, воспользовавшись теоремой косинусов, например

8. Вычисление функции z (x,y), где x,y – действительные числа.

9. Вычисление функции:

10. Вычисление объема тора с диаметрами d1 и d2.

11. Вычисление значения функции Y(x):

12. Вычисление радиуса r вписанного круга треугольника со сторонами a,b,c по формулам:

13. Вычисление значения функции:

14. Вычисление площади кругового сектора по заданному радиусу R и углу сектора α в градусах.

15. Вычисление функции z (x,y), где x,y – действительные числа

16. Расчет коэффициентов а,b в уравнении прямой линии y=a·x+b, проходящей через точки с координатами (x1,y1),(x2,y2)

17. Вычисление функции Z(X,Y), где X,Y – действительные числа

18. Расчет объема и площади поверхности параллелепипеда, если даны размеры параллелепипеда: а - ширина, b - длина, c - высота.

19. Вычисление функции a (x,y,z), где x,y,z – действительные числа

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Язык Python – интерпретируемый или компилируемый?

2. Почему операция вида a <b=c недопустима, а операция вида a<b==c – допустима?

3. Чем отличаются результаты операций «/» и «//» для целых чисел? А для вещественных чисел?

4. Что произойдет, если строку "8.53" попытаться преобразовать в целое число с помощью функции int()? Как решить эту проблему?

5. Какие ограничения на длину строки установлены в Python?

6. Что такое переменная в языке Python?



Поделиться:


Последнее изменение этой страницы: 2019-11-02; просмотров: 891; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.238.76 (0.057 с.)