Типы данных в программировании. Определение переменной. Урок 3

Основы программирования на Python

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

Можно заметить, что все, что мы делаем, мы делаем над чем-то — какими-то предметами или объектами. Мы меняем свойства объектов и их возможности. Программы для компьютеров также манипулируют какими-то объектами (назовем их пока данными).

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

Числа в свою очередь также бывают разными: целыми, дробными, могут иметь огромное значение или очень длинную дробную часть. При знакомстве с языком программирования 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. Какие существуют правила и рекомендации для именования переменных?

var_int, var_float, var_str =

var_int, var_float, var_str = 10, 8.4, 'No'
big_int = int(var_int*3.5)
var_float -= 1
print (var_int/var_float, big_int/var_float)
var_str += 'No' + 'Yes'*3
print('int=',var_int, 'big=',big_int, 'float=',var_float, 'str=',var_str)

а как присвоить переменной

а как присвоить переменной два возможных значения, чтоб например x был равен только нулю или только 1

если я все верно понял, то к

если я все верно понял, то к примеру так? x = (0, 1)

Есть тип данных bool. В

Есть тип данных bool. В третьей версии Питона можно присвоить переменной либо True, либо False. Но как только будет присвоено число, скажем, 0, то у этой переменной станет числовой тип.

Добрый день! После вызова

Добрый день!
После вызова нового окна и сохранения в нем кода, жму выполнение,, открывается
IDLE но программа не выполняется
Вот что вижу на экране
>>> ================================ RESTART ================================
>>>
>>>
Что не так делаю?

не забудь про print(тут то

не забудь про print(тут то что нужно вывести)

Нужно писать так: def

Нужно писать так:

def main():
    #тут ваш код
 
if __name__ == "__main__":
    main()

А код программы какой?

А код программы какой?

Здравствуйте. Я к вам с

Здравствуйте. Я к вам с вопросом: в части статьи о переменной вы пишите, что переменная ссылается на какие-либо данные в памяти, и в дальнейшем обращение к этим данным идет по имени переменной... но как я понимаю, как раз наоборот, переменная - это некая область памяти, в которую помещаются данные (присваивание), а потом к этим данным идет обращение по названию переменной... Момент непринципиальный, но для понимания новичку лучше поправьте текст, если я прав.

Если нескольким переменным

Если нескольким переменным поставить в соответствие одну область данных, то у этой области появится несколько ссылок(имен переменных) и эти данные будут жить до тех пор, пока жива хотя бы одна ссылка на них. Как только ссылок больше нет, данные из памяти удаляются и память высвобождается(если они не кэшируются, как короткие строки, к примеру) - этой работой занимается сборщик мусора автоматически.
Проверить на какой объект (один и тот же или нет, тк объекты могут быть разные, но иметь одинаковое значение) ссылаются переменные можно командой a is b (если a и b переменные, те ссылки на объект данных), а идентичность значений командой a == b. Ответ будет True или False.

В Python иной механизм

В Python иной механизм связывания значений с переменными, чем например, в СИ или Pascal.

>>> apples = 1000 >>> eat_day

>>> apples = 1000
>>> eat_day = 5
>>> day = 7
>>> apples = apples - eat_day *day
>>> apples
965
>>> у Вас опечатка не 65 в 965...

там значение = 100

там значение = 100