19 дек. 2000 г.

Ввведение в программирование на Python (для детей) урок 2

Данные и их типы

Можно заметить, что все, что мы делаем, мы делаем над чем-то — какими-то предметами или объектами. Мы меняем свойства объектов и их возможности. Программы для компьютеров также манипулируют какими-то объектами (назовем их пока данными).
Очевидно, данные бывают разными. Очень часто компьютерной программе приходится работать с числами и строками. Например, на прошлом уроке мы "манипулировали" числами, выполняя над ними арифметические операции. Можно сказать, что операция сложения выполняла изменение первого числа на величину второго, или умножение увеличивало одно число в количество раз, соответствующее второму.
Числа в свою очередь также бывают разными: целыми, дробными, могут иметь огромное значение или очень длинную дробную часть. При знакомстве с языком программирования Python мы точно столкнемся с тремя типами данных:
  • целые числа (integer) – положительные и отрицательные целые числа, а также 0 (например, 4, 687, -45, 0).
  • числа с плавающей точкой (float point) – дробные числа (например, 1.45, -3.789654, 0.00453). Примечание: разделителем целой и дробной части служит точка, а не запятая.
  • строки (string) — набор символов, заключенных в кавычки (например, "ball", "What is your name?", 'dkfjUUv', '6589'). Примечание: кавычки в Python могут быть одинарными или двойными.

Операции

Можно сказать, что операция — это выполнение каких-нибудь действий над данными (операндами). Для выполнения конкретных действий требуются специальные инструменты — операторы.
Схема операции сложения, выполняемой над двумя операндами.
Например, символ "+" по отношению к числам выполняет операцию сложения, а по отношению к строкам — конкатенацию (соединение). Парный знак ** возводит первое число в степень второго.
Выражение Результат выполнения
34.907 + 320.65 355.55699999999996
"Hi, " + "world :)" 'Hi, world :)'
"Hi, " * 10 'Hi, Hi, Hi, Hi, Hi, Hi, Hi, Hi, Hi, Hi, '

Изменение типа данных

Что будет, если мы попытаемся выполнить в одном выражении операцию над разными типами данным? Например, сложить целое и дробное число, число и строку. Однозначный ответ дать нельзя: так, при складывании целого числа и числа с плавающей точкой, получается число с плавающей точкой, а если попытаться сложить любое число и строку, то интерпретатор Python выдаст ошибку.
Выражение Результат выполнения
1 + 0.65 1.6499999999999999
"Hi, " + 15 O ш и б к а
Однако, бывают случаи, когда программа получает данные в виде строк, а оперировать должна числами (или наоборот). В таком случае используются специальные функции (особые операторы), позволяющие преобразовать один тип данных в другой. Так функция int() преобразует переданную ей строку (или число с плавающей точкой) в целое, функция str() преобразует переданный ей аргумент в строку, float() - в дробное число.
Выражение Результат выполнения
int (“56”) 56
int (4.03) 4
int (“comp 486”) O ш и б к а
str (56) '56'
str (4.03) '4.03'
float (56) 56.0
float ("56") 56.0

Переменные

Данные хранятся в ячейках памяти компьютера. Когда мы вводим число, оно помещается в память. Но как узнать, куда именно? Как в последствии обращаться к этим данными? Раньше, при написании программ на машинном языке, обращение к ячейкам памяти осуществляли с помощью указания регистров. Но уже с появлением ассемблеров, при обращении к данным стали использовать так называемые переменные. Механизм связи между переменными и данными может различаться в зависимости от языка программирования и типа данных. Пока достаточно запомнить, что данные связываются с каким-либо именем и в дальнейшем обращение к ним возможно по этому имени.
В программе на языке Python связь между данными и переменными устанавливается с помощью знака =. Такая операция называется присваиванием. Например, выражение sq = 4 означает, что на объект (данные) в определенной области памяти ссылается имя sq и обращаться к ним теперь следует по этому имени.
Схема операции присваивания значения переменной
Имена переменных могут быть любыми. Однако есть несколько общих правил их написания:
  1. Желательно давать переменным осмысленные имена, говорящие о назначении данных, на которые они ссылаются.
  2. Имя переменной не должно совпадать с командами языка (зарезервированными ключевыми словами).
  3. Имя переменной должно начинаться с буквы или символа подчеркивания (_).
Чтобы узнать значение, на которое ссылается переменная, находясь в режиме интерпретатора, достаточно ее вызвать (написать имя и нажать Enter).
Пример работы с переменными в интерактивном режиме:

>>> apples = 100
>>> eat_day = 5
>>> day = 7
>>> apples = apples - eat_day * day
>>> apples
65
>>> 

Практическая работа

  1. Переменной var_int присвойте значение 10, var_float - значение 8.4, var_str - "No".
  2. Измените значение, хранимое в переменной var_int, увеличив его в 3.5 раза, результат свяжите с переменной big_int.
  3. Измените значение, хранимое в переменной var_float, уменьшив его на единицу, результат свяжите с той же переменной.
  4. Разделите var_int на var_float, а затем big_int на var_float. Результат данных выражений не привязывайте ни к каким переменным.
  5. Измените значение переменной var_str на "NoNoYesYesYes". При формировании нового значения используйте операции конкатенации (+) и повторения строки (*).
  6. Выведите значения всех переменных.

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

>>> var_int = 10
>>> var_float = 8.4
>>> var_str = "No"
>>> big_int = var_int * 3.5
>>> var_float = var_float — 1
>>> var_int / var_float
1.3513513513513513
>>> big_int / var_float
4.72972972972973
>>> var_str = var_str * 2 + "Yes" * 3
>>> var_int
10
>>> var_float
7.4
>>> big_int
35.0
>>> var_str
'NoNoYesYesYes'
>>> 

Вопросы

  1. Какие типы данных вы знаете? Опишите их.
  2. Можно ли преобразовать дробное число в целое? целое в дробное? В каких случаях можно строку преобразовать в число?
  3. Приведите примеры операций. Для чего предназначена операция присвоения?
  4. Какие существуют правила и рекомендации для именования переменных?F