Переменные и типы
Переменные можно представить как надписанные коробочки, в которых лежат значения. Вы их достаёте, смотрите, заменяете другими.
Когда вы первый раз записываете имя переменной, это называется объявление. В Python переменную всегда объявляют, присваивая ей какое-нибудь значение. Достаточно просто ввести имя, поставить знак равенства (здесь это оператор присваивания) и написать значение, которое будет храниться в переменной.
# объявили переменную message и присвоили ей как значение строку 'Привет, Мир!'
message = 'Привет, Мир!'
2
Теперь, если дальше в программе написать имя переменной, вместо неё подставится её значение:
# объявили переменную message и присвоили ей как значение строку 'Привет, Мир!'
message = 'Привет, Мир!'
print(message) # Привет, Мир!
2
3
Значения переменных отличаются по своей сути. Например, они бывают числами или строками. Это разные типы данных. В Python встречаются не только числа и строки.
Строка записывается как символ или набор символов внутри одинарных либо двойных кавычек. Смотрите: числа и строки выделяются разными цветами, чтобы читать исходный код было легче.
# в переменной по имени number сохраняется как её значение число 100
number = 100
# а значениями переменных с именами symbol и ruble стали строки
symbol = '₽'
ruble = " рублей"
2
3
4
5
6
В одной и той же переменной можно по очереди хранить данные разных типов:
# в переменной как значение сохраняется число
number = 100
print(number) # 100
# а теперь в ту же переменную записана строка
number = "сто"
print(number) # сто
2
3
4
5
6
Переменная хранит лишь одно значение — едва вы записываете в неё новое, старое больше недоступно.
Со значениями разных типов операторы языка Python могут работать неодинаково. Например, оператор + числа складывает, а строки — объединяет:
one_hundred = 100
five_hundred = 500
print(one_hundred + five_hundred)
a = 'ха'
print(a + a + a + a)
2
3
4
5
6
600
хахахаха
2
Такое поведение операторов приходится учитывать:
# объявили две переменные разных типов
number = 100
ruble = " рублей"
# и вот такой код не сработает
print(number + ruble)
# в тексте ошибки сказано, что оператор + не складывает целые числа со строками
2
3
4
5
6
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Не беда: Python позволяет перевести значение переменной из одного типа в другой (конвертировать тип данных). Преобразованием занимаются специальные функции. Так, для превращения числа в строку вызывают функцию str() (от англ. string, «строка»):
# код, где число преобразовано в строку, "приведено к строке", прекрасно работает
print(str(number) + ruble) # 100 рублей
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
2
3
4
5
6
Упражнения
- Чтобы Вита обрела компанейский вид, научим её цитировать популярные фразы. Для начала выведите в консоль диалог, подставляя значения переменных question и answer:
question = '- Говорят Вам счастье привалило?'
answer = '- Бессовестно врут!'
2
Научим Виту сообщать о том, что происходит сейчас. Выведите в консоль строку
'У вас 9 новых сообщений'
, составленную из строк:'У вас '
,' новых сообщений'
и значения переменнойmessage_count = 9
.Если Вита поселится в фитнес-трекере, она сможет считать количество шагов пользователя. Научите Виту подставлять в сообщение сумму шагов, пройденных за два дня. В переменных
steps_today
иsteps_yesterday
записано, сколько шагов прошёл гипотетический пользователь вчера и сегодня. Напечатайте на экран сообщение:За два дня сделал {сюда подставить сумму} шагов
steps_today = '6783'
steps_yesterday = '8452'
2
Упражнения tkinter
Создайте окно с названием "Вита - голосовой помощник". Добавьте в текст вопроса:
'- Говорят Вам счастье привалило?'
и кнопкуОтвет
, при нажатии на которую, под вопросом, выведется ответ:'- Бессовестно врут!'
Создайте окно с названием "Вита - голосовой помощник". Добавьте в текст
'У вас 9 новых сообщений'
, составленную из строк:'У вас '
,' новых сообщений'
и значения переменнойmessage_count = 9
.Добавьте кнопку:
Прочитать сообщение
. Ниже кнопки добавьте метку результата действия:
- При нажатии
Прочитать сообщение
выводится:Вы прочитали одно сообщение
, - уменьшается значение
message_count
на 1, - изменяя текст на
'У вас 8 новых сообщений'
.
Добавьте кнопку:
Получить сообщение
. При нажатии получитьПолучить сообщение
выводиться вы прочитали одно сообщение, уменьшается значениеmessage_count
на 1, изменяя текст на'У вас 10 новых сообщений'
.Создайте окно с названием "Вита - голосовой помощник". Добавьте поля:
Пройдено шагов в первый день
,Пройдено шагов во второй день
и поля ввода для них. Добавьте кнопкуВсего
и поля для вывода результата.