К содержанию

Анатолий
Анатольевич
Eфремов

Переменные. Типы данных

Переменные



Если в программе присутствуют большие вычисления, то неудобно их записывать в виде одного длинного выражения, лучше вычислять его значения по частям, используя переменные для хранения промежуточных результатов.

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


Пример

Пусть длина школьного урока хранится в переменной lesson_time, продолжительность перемены между уроками — rest_time, а количество уроков — n. Хотим вычислить сколько времени занимает заданное количество уроков, которое будет храниться в переменной total_time.

>>>lesson_time = 45
>>>rest_time = 15
>>>n = 6
>>>total_time = lesson_time * n + (n - 1) * rest_time
>>>print(total_time)
345

Имя переменной (также называется идентификатором) — последовательность букв, цифр и символа подчёркивания, первым символом должна быть буква или символ подчёркивания. В языке Python допускаются буквы не латинского алфавита в качестве имён переменных, но следует ограничиваться только латинскими символами.

Имена переменных должны быть осмысленными и понятными, например, lesson_time или rest_time.


Пример

>>>a = 14
>>>v = a
>>>a = 7

>>>a = a + 3
>>>v = a + 3
>>>print(a, v)
10 13

Посмотрим, как работает данная программа. В первой строке переменной a присваивается значение 14, затем переменной v присваивается значение переменной a, то есть 14. При этом переменные существуют независимо друг от друга, поэтому при выполнении присваивания a = 7 значение переменной v не изменится.

При выполнении присваивания a = a + 3 вычисляется сначала правая часть выражения, равная в данном случае 10, после чего это значение присваивается переменной. При выполнении присваивания v = a + 3, аналогично вычисляется сначала правая часть выражения. В данном случае в переменной a хранится значение, равное 10, значит правая часть выражения будет равна 13. Именно это значение и будет хранится после присваивания в переменной v.

После этого значения переменных a и v можно вывести на экран при помощи функции print(a, v).



Задача 1

Не запуская код, ответьте на вопрос: что выведет на экран данная программа?

a = 5
b = a * 10
a = a + b + 4
print(a + b)

ОТВЕТ:
109



Задача 2

Не запуская код, ответьте на вопрос: что выведет на экран данная программа?

a = 3
a = a * 5 + a ** 2
print(a )

ОТВЕТ:
24



Типы данных



Если мы присваиваем переменной a значение, равное 5, то переменная будет иметь значение типа int, который используется для целых чисел. При умножении, вычитании и сложении чисел этого типа мы получаем числа того же типа.

Мы уже сталкивались с тем, что при выполнении операции деления результатом будет дробное число. Если переменной b присвоить значение 10 / 2, при выводе на экран результата увидим число 5.0, которое равно числу 5, но имеет другой тип. Переменная b имеет значение типа float. Это специальный тип данных для представления действительных чисел, и при умножении, вычитании и сложении чисел этого типа мы получаем числа того же типа.

Еще один тип данных используется для работы со строками. Если мы присваиваем переменной с значение, равное 'Hello', то эта переменная будет иметь значение типа str. Строки тоже можно складывать. Однако операция сложения для целых чисел и для строк работает по-разному: для чисел это сложение, а для строк — конкатенация.

Основные операции над строками:

  • A + B — конкатенация, то есть соединение строк путём размещения строки B сразу после строки A;
  • A * n — повторение строки n раз, значение n должно быть целого типа.

Преобразование типов
Иногда полезно целое число записать как строку. И, наоборот, если строка состоит из цифр, то полезно эту строку представить в виде числа, чтобы дальше можно было выполнять арифметические операции с ней. Для этого используются функции, имя которых совпадает с именем типа, то есть int, float, str. Например, int('123') вернёт целое число 123, а str(123) вернёт строку '123'.

Пример:

>>>n = 5
>>>price = 15
>>>s = str(n) + " ручек стоят " + str(n * price) + " рублей"
>>>print(s)
5 ручек стоят 75 рублей

Пример:

>>>print(str(1 + 1) * int('1' + '1'))
22222222222
Результатом будет строка '2', повторенная 11 раз.



Задача 3

Напишите программу, которая выводит слово 'Python' 1234 раза подряд (только буквы, без кавычек). Обратите внимание на регистр.

ОТВЕТ:
print("Python" * 1234)



Задача 4

Квадраты чисел из одних единиц выглядят красиво: 112 = 121, 1112 = 12321, 11112 = 1234321.

Напишите программу, которая будет выводить на экран число, равное квадрату числа, записанного при помощи 123 единиц.

ОТВЕТ:
print(int("1" * 123) ** 2)



Задача 5

Число 1510 записали 10 раз подряд. Полученное число возвели в квадрат.

Напишите программу, которая повторит указанные действия и выведет полученный результат.

ОТВЕТ:
print(int(str(15 ** 10) * 10) ** 2)



Ввод переменных



Ввод данных: функция input()

Все ранее рассмотренные программы выдавали один и тот же результат при каждом своем запуске. Для изменения входных данных нужно было вручную изменять значения переменных. Этого можно избежать, считывая данные с клавиатуры.

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

a = input()
b = input()

Правда, функция input() возвращает текстовую строку, а нам бывает нужно сделать так, чтобы переменные имели целочисленные значения. Поэтому сразу же после считывания выполним преобразование типов при помощи функции int и запишем новые значения в переменные a и b.

a = int(a)
b = int(b)

Можно объединить считывание строк и преобразование типов, если вызывать функцию int для того значения, которое вернёт функция input():

a = int(input())
b = int(input())

Далее в программе можно использовать значения переменных a и b для вычисления новых переменных или для вывода результата на экран. Теперь мы можем, не меняя исходного кода программы, многократно использовать её для решения различных задач. Для этого нужно запустить программу и после запуска ввести с клавиатуры два числа, нажимая после каждого клавишу Enter. Затем программа сама выведет результат.


Вывод данных: функция print()

Функция print() может выводить не только значения констант или переменных, но и значения выражений. Например, допустима такая запись:

print(a + b)



Задача 6

Сумма

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

Примеры

Ввод Вывод
8
5
13

ОТВЕТ:
a = int(input())
b = int(input())
print(a + b)



Задача *

Обмен значений — 1

Напишите программу, которая считывает значения двух переменных a и b, затем меняет их значения местами и выводит их значения на экран.

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

a = int(input())
b = int(input())
...
print(a)
print(b)


Видеоразбор

ОТВЕТ:
a=int(input())
b=int(input())
x = a
a = b
b = x

print(a)
print(b)



Задача *

Обмен значений — 2

Напишите программу, которая считывает значения двух переменных a и b, затем меняет их значения местами и выводит их значения на экран. Данную задачу необходимо решить без использования каких-либо переменных, кроме a и b.

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

a = int(input())
b = int(input())
...
print(a)
print(b)

ОТВЕТ:
a=int(input())
b=int(input())
a = a + b
b = a - b
a = a - b

print(a)
print(b)



Задача 7

Следующее и предыдущее

Напишите программу, которая считывает целое число и выводит текст, аналогичный приведенному в примере. Пробелы, знаки препинания, заглавные и строчные буквы важны!

Входные данные

Вводится целое число, по модулю не превосходящее 10000.

Выходные данные

Выведите сначала фразу «The next number for the number», затем введенное число, затем слово «is», окруженное пробелами, затем формулу для следующего за введенным числа, наконец, знак точки без пробела. Аналогично в следующей строке для предыдущего числа. При необходимости используйте параметр вывода sep в языке Python.

Примечание

Вывод необходимо организовать в две строки, по одному предложению в каждой. При выводе обращайте внимание на пробелы и регистр.

Примеры

Ввод Вывод
179 The next number for the number 179 is 180.
The previous number for the number 179 is 178.

ОТВЕТ:
num = int(input())
print("The next number for the number " + str(num) + " is " + str(num + 1) + ".")
print("The previous number for the number " + str(num) + " is " + str(num - 1) + ".")