Переменные и типы

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

Когда вы первый раз записываете имя переменной, это называется объявление. В Python переменную всегда объявляют, присваивая ей какое-нибудь значение. Достаточно просто ввести имя, поставить знак равенства (здесь это оператор присваивания) и написать значение, которое будет храниться в переменной.

# объявили переменную message и присвоили ей как значение строку 'Привет, Мир!'
message = 'Привет, Мир!'
1
2

Теперь, если дальше в программе написать имя переменной, вместо неё подставится её значение:

# объявили переменную message и присвоили ей как значение строку 'Привет, Мир!'
message = 'Привет, Мир!'
print(message)      # Привет, Мир!
1
2
3

Значения переменных отличаются по своей сути. Например, они бывают числами или строками. Это разные типы данных. В Python встречаются не только числа и строки.

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

# в переменной по имени number сохраняется как её значение число 100
number = 100

# а значениями переменных с именами symbol и ruble стали строки
symbol = '₽'
ruble = " рублей"
1
2
3
4
5
6

В одной и той же переменной можно по очереди хранить данные разных типов:

# в переменной как значение сохраняется число
number = 100
print(number)       # 100
# а теперь в ту же переменную записана строка
number = "сто"
print(number)       # сто
1
2
3
4
5
6

Переменная хранит лишь одно значение — едва вы записываете в неё новое, старое больше недоступно.

Со значениями разных типов операторы языка Python могут работать неодинаково. Например, оператор + числа складывает, а строки — объединяет:

one_hundred = 100
five_hundred = 500
print(one_hundred + five_hundred)

a = 'ха'
print(a + a + a + a)
1
2
3
4
5
6
600
хахахаха
1
2

Такое поведение операторов приходится учитывать:

# объявили две переменные разных типов
number = 100
ruble = " рублей"
# и вот такой код не сработает
print(number + ruble)
# в тексте ошибки сказано, что оператор + не складывает целые числа со строками
1
2
3
4
5
6
TypeError: unsupported operand type(s) for +: 'int' and 'str'
1

Не беда: Python позволяет перевести значение переменной из одного типа в другой (конвертировать тип данных). Преобразованием занимаются специальные функции. Так, для превращения числа в строку вызывают функцию str() (от англ. string, «строка»):

# код, где число преобразовано в строку, "приведено к строке", прекрасно работает
print(str(number) + ruble)      # 100 рублей
1
2

А обратно из строки в целое число можно преобразовать, вызывая функцию int() (от англ. integer, «целое число»).

# есть строки '100' и '500'; хотим число 600
one_hundred = '100'
five_hundred = '500'
print(one_hundred + five_hundred)               # 100500
# а мы всё же хотим получить число 600 — поэтому преобразуем
print(int(one_hundred) + int(five_hundred))     # 600
1
2
3
4
5
6

Упражнения

  1. Чтобы Вита обрела компанейский вид, научим её цитировать популярные фразы. Для начала выведите в консоль диалог, подставляя значения переменных question и answer:
question = '- Говорят Вам счастье привалило?'
answer = '- Бессовестно врут!'
1
2
  1. Научим Виту сообщать о том, что происходит сейчас. Выведите в консоль строку 'У вас 9 новых сообщений', составленную из строк: 'У вас ', ' новых сообщений' и значения переменной message_count = 9.

  2. Если Вита поселится в фитнес-трекере, она сможет считать количество шагов пользователя. Научите Виту подставлять в сообщение сумму шагов, пройденных за два дня. В переменных steps_today и steps_yesterday записано, сколько шагов прошёл гипотетический пользователь вчера и сегодня. Напечатайте на экран сообщение: За два дня сделал {сюда подставить сумму} шагов

steps_today = '6783'
steps_yesterday = '8452'
1
2

Упражнения tkinter

  1. Создайте окно с названием "Вита - голосовой помощник". Добавьте в текст вопроса: '- Говорят Вам счастье привалило?' и кнопку Ответ, при нажатии на которую, под вопросом, выведется ответ: '- Бессовестно врут!'

  2. Создайте окно с названием "Вита - голосовой помощник". Добавьте в текст 'У вас 9 новых сообщений', составленную из строк: 'У вас ', ' новых сообщений' и значения переменной message_count = 9.

  3. Добавьте кнопку: Прочитать сообщение. Ниже кнопки добавьте метку результата действия:

  • При нажатии Прочитать сообщение выводится: Вы прочитали одно сообщение,
  • уменьшается значение message_count на 1,
  • изменяя текст на 'У вас 8 новых сообщений'.
  1. Добавьте кнопку: Получить сообщение. При нажатии получить Получить сообщение выводиться вы прочитали одно сообщение, уменьшается значение message_count на 1, изменяя текст на 'У вас 10 новых сообщений'.

  2. Создайте окно с названием "Вита - голосовой помощник". Добавьте поля: Пройдено шагов в первый день, Пройдено шагов во второй день и поля ввода для них. Добавьте кнопку Всего и поля для вывода результата.