Урок 2.1 · Программирование с нуля · Модуль 2. Данные и вычисления · Бесплатно
Цель урока: Различать числа и строки и понимать, почему «2 + 3» и «"2" + "3"» дают разное.
Нужно знать заранее: print, переменные
Зачем это нужно: Почти все странные результаты в первых программах объясняются одним: где-то число, а где-то текст. Различать их — половина навыка. И вторая половина: уметь превращать текст в число, когда человек ввёл цифры, а программе нужно считать.
Как это работает: Числа записываются без кавычек: 2, 15, 3.5. С ними можно считать. Строки записываются в кавычках: "2". Знак «плюс» для строк означает склейку, а не сложение. Поэтому 2 + 3 даёт 5, а "2" + "3" даёт "23" — две цифры подряд, а не пять. Значения из input всегда приходят строкой, даже если человек набрал цифры. Об этом помним дальше. В примере после решётки (#) записано, что напечатает строка. Это подсказка для читателя: всё, что стоит после #, Python не выполняет. Имена переменных берут из английского и пишут латиницей: weeks — недели per_week — в неделю goal — цель saved — накоплено left — осталось Имя ничего не считает — оно объясняет человеку, что лежит внутри.
Важно: int — это команда «сделай из текста целое число». Пишется так: int(что превратить), в скобках — текст в кавычках или имя переменной. int("2") — это уже число 2, а не текст. С ним можно считать: int("2") + int("3") даёт 5. Сравните два знака «плюс»: "2" + "3" даёт "23" (склейка), int("2") + int("3") даёт 5 (сложение). Внутри int должны быть только цифры. int("два") — ошибка: «два» числом не станет. Если в переменной лежит текст из input, пишут age = int(input()) — и дальше age уже число.
Разбор: print(15 + 27) → 42: это числа, поэтому сложение. print("15" + "27") → 1527: это строки, поэтому склейка. print(int("15") + int("27")) → 42: int превратил текст в числа, и снова работает сложение. Один и тот же знак «плюс», разный результат — всё решает тип значения.
Частая ошибка: Ожидать от "2" + "3" числа 5. Кавычки делают значения текстом, поэтому получается "23". Нужна сумма — превратите текст в числа: int("2") + int("3"). Вторая ошибка того же рода — забыть int у input. input отдаёт текст: человек ввёл 2, а в переменной лежит "2". Тогда x + x склеит две двойки и напечатает 22. Чтобы сложить, превратите каждое значение: int(x) + int(x) даёт 4.
Итог: Кавычки делают значение текстом. Числа складываются, текст склеивается. int("2") превращает текст в число 2 — и тогда «плюс» снова считает.
print(2 + 3) # 5
print("2" + "3") # 23
print(int("2") + int("3")) # 5Три значения пришли текстом, как из формы: weeks = "6" (сколько недель уже копим), per_week = "250" (рублей в неделю) и goal = "2000" (сколько нужно на велосипед). Посчитайте и напечатайте три строки такого вида: Накоплено: <сколько уже есть> руб. Это <целые тысячи> тыс. и <остаток> руб. Осталось: <сколько ещё нужно> руб. Накопленное — недели умножить на сумму в неделю. Целые тысячи и остаток — знаки // и %. Осталось — цель минус накопленное. Имена переменных — английские слова: weeks — недели per_week — в неделю goal — цель saved — накоплено (так назван результат в эталонном решении) left — осталось (тоже из эталона) Можно взять эти имена или свои.
Критерий успеха: Три строки совпали с ожидаемым результатом: накопленная сумма, целые тысячи с остатком и сколько осталось до цели — каждое число на своём месте.