3.3. Типы данных
Информатика, 6 класс. Учебник: Кадыркулов Р. А., Нурмуханбетова Г. К. (Алматыкітап баспасы, 2023). Раздел 3: Программирование на языке Python. Страницы 82–85.
Чему научишься
- Объяснять, что такое тип данных и зачем он нужен.
- Различать четыре типа Python: целые, действительные, строки и логические значения.
- Узнавать тип переменной функцией
type(). - Переводить значения из одного типа в другой:
int(),float(). - Писать программы, где одновременно работают разные типы.
Разминка
- Чем отличаются текст, число, звук и картинка в компьютере? Всё это данные разного вида. Для текста нужны символы, для чисел цифры, и обрабатывают их по-разному.
- Какие виды чисел ты знаешь из математики? Натуральные (1, 2, 3), целые (с нулём и отрицательными, например −13), действительные (с дробной частью, например −45,5).
- Что такое переменная? Ячейка памяти с именем. В неё кладут значение, и у значения есть тип.
- Что такое «тип значения переменной»? На картинке в учебнике X принимает значения 1, 2, 4, 8, 16. Это целые числа, значит, и тип переменной X целый.
Разбираемся
Данные и информация
Данные — это необработанные факты и цифры. А если данные обработать и они стали что-то значить, получится информация. Например, «37,2» — это просто число. А «температура у Айдара 37,2» уже информация.
Чтобы компьютер мог обрабатывать данные, их делят на типы. Так же в математике числа делят на натуральные, целые и действительные.
📌 Тип данных определяет, какие значения можно хранить и какие действия с ними можно делать.
С целыми числами (1 и 2) можно складывать, вычитать, умножать. А слова «IBM» и «PC» относятся к строкам. Их можно написать слитно: IBM PC.
Четыре главных типа Python
| Тип | Название | Примеры значений |
|---|---|---|
int |
целые числа | −27885, −156, 25, 152 |
float |
действительные числа (с дробной частью) | 25.56, 5.0, −365.5633 |
str |
строки (текст в кавычках) | "1vdkdv", "t" |
bool |
логические (только два значения) | True, False |
📕 В таблице учебника тип логических значений назван
Bool(), но в Python он пишется с маленькой буквы:bool(). Питон различает регистр, поэтому с заглавной буквы команда не сработает.
⚠️ Частая ошибка. Дробная часть в Python отделяется точкой, а не запятой: 5.0, 25.56. Запятая так не работает. И не путай
1500(число) и'1500'(строка): кавычки превращают число в текст.
Как узнать тип: функция type()
Функция type() показывает, какого типа значение.
a = 126.858; k = 748
print('a =', type(a)) # a = <class 'float'>
print('k =', type(k)) # k = <class 'int'>
b = int(a) # дробную часть отбросили
t = float(k) # целое превратили в действительное
print('b =', b) # b = 126
print('b =', type(b)) # b = <class 'int'>
print('t =', t) # t = 748.0
print('t =', type(t)) # t = <class 'float'>
💡 Именно поэтому мы писали
int(input()).input()приносит строку, аint()превращает её в целое число. А если нужно ввести число с дробной частью, пригодитсяfloat(input()).
👨👩👧 Родителю. Спросите ребёнка: «Телефонный номер — это число или текст?» Складывать номера не нужно, значит, это строка. А цена в тенге, которую умножают на количество, — число. Так понятно, почему тип выбирают по тому, что делают с данными.
Проверь, как понял
Проверь себя
- Что такое тип данных? Он определяет, какие значения могут быть у данных и какие действия с ними можно делать.
- Какие типы мы изучили? int (целые), float (действительные), str (строки), bool (логические).
- Для чего служит
type()? Показывает тип значения или переменной. - Как превратить введённую строку в число?
int(input())для целых,float(input())для дробных.
Решаем упражнения
№ 1
(Примени на практике, «Практическое задание № 1».) С начала суток прошло N секунд (0 < N < 86400). Найди, сколько полных часов, минут и секунд прошло с начала суток.
Как думать. В часе 3600 секунд, в минуте 60. Сначала найди часы целым делением, потом остаток поделим на 60 и получим минуты, остаток от этого и есть секунды.
Решение.
N = int(input())
K = N // 3600 # полные часы
N = N % 3600 # остались секунды внутри часа
P = N // 60 # полные минуты
N = N % 60 # оставшиеся секунды
print(K, 'час', P, 'минут', N, 'секунд')
Для 16896: часы 16896 // 3600 = 4, остаток 2496. Минуты 2496 // 60 = 41, секунды 2496 % 60 = 36. Для N = 1: 0 час 0 минут 1 секунд.
📕 В коде учебника последняя строка начинается с
Ответ: для 16896 программа выводит 4 час 41 минут 36 секунд.
№ 2
(Примени на практике, «Практическое задание № 2».) Три грузовика возят грунт. Вместимость: a = 8.5, b = 8.25, c = 7.25 тонн. Каждая машина делает N рейсов в день. Сколько грунта перевезут за P дней? Сколько тонн грунта в среднем перевозит одна машина в день?
Как думать. За один день с N рейсами: N · (a + b + c) тонн. За P дней умножаем на P. Среднее на одну машину: делим дневной объём на 3.
Решение.
N = int(input()) # рейсов в день
P = int(input()) # дней
a = 8.5; b = 8.25; c = 7.25 # вместимость машин
K = N * P * (a + b + c) # всего за P дней
D = N * (a + b + c) / 3 # в среднем на одну машину в день
print(K, D)
Для N = 4, P = 5: сумма вместимостей 24, K = 4 · 5 · 24 = 480.0, D = 4 · 24 / 3 = 32.0.
Ответ: 480.0 32.0.
№ 3
(Анализ, № 1.) Какие математические идеи использованы в кодах программ 1 и 2?
Как думать. Посмотри на действия в коде: что там делили, умножали, складывали.
Пример ответа. В коде 1 использованы целое деление и остаток от деления: сначала // на 3600, потом %, потом // на 60. Это перевод секунд в часы, минуты и секунды. В коде 2 использованы сложение, умножение (рейсы на дни на сумму вместимостей) и деление на 3 для среднего.
Ответ: код 1 использует целое деление и остаток, код 2 использует сложение, умножение и нахождение среднего арифметического.
№ 4
(Анализ, № 2.) К каким типам относятся переменные в программах?
Как думать. Если значение целое, это int, если с дробной частью, то float.
Решение. В коде 1 все переменные (N, K, P) целые, тип int. В коде 2 N и P целые (int), а вместимости a, b, c и результаты K и D — действительные числа (float).
Ответ: в коде 1 только int, в коде 2 int (N, P) и float (a, b, c, K, D).
№ 5
(Синтез.) Придумай задачу для программы, где используется не менее двух типов переменных. Покажи, как её решить.
Как думать. Подойдёт любая бытовая задача с названием (строка) и числами. Например, покупка в магазине: название товара, цена за кг (дробное), количество кг (целое).
Пример ответа. Задача: в магазине покупают несколько килограммов яблок по известной цене за кг. Нужно вывести название товара и стоимость покупки.
name = input() # название товара, тип str
price = float(input()) # цена за кг, тип float
kg = int(input()) # сколько кг, тип int
print(name, kg * price) # название и стоимость
Для яблок по 450.5 тенге, 3 кг, получится: яблоки 1351.5.
Ответ: любая задача с двумя и более типами (str, int, float) и программа, как выше.
№ 6
(Оценка.) Оцени, насколько важны типы данных при решении задач.
Как думать. Подумай, что будет, если сложить число и строку или если вместо числа получить строку.
Пример ответа. Типы очень важны. От типа зависит, какие действия можно выполнять: числа можно умножать, а слова нельзя. Если перепутать тип, например сложить две введённые строки вместо чисел, программа даст неверный ответ (412 вместо 16). Тип также влияет на то, сколько памяти нужно.
Ответ: типы данных определяют допустимые действия и значения, без них нельзя правильно обработать данные.
№ 7
(Вопросы для размышления, № 1.) Что ты узнал о типе данных?
Как думать. Вспомни определение и четыре типа.
Пример ответа. Тип данных показывает, какие значения может принимать переменная и какие действия можно выполнять. В Python есть int, float, str и bool. Тип узнают функцией type(), а менять его можно функциями int() и float().
Ответ: тип данных определяет допустимые значения и операции.
№ 8
(Вопросы для размышления, № 2.) Опиши устно алгоритм составления последовательности цифр 1258 из целых чисел 12 и 58.
Как думать. Если просто сложить, получится 70. Нужно «приписать» 58 к 12. Это можно сделать двумя способами.
Решение.
- Способ с числами: 12 умножить на 100 (получится 1200) и прибавить 58. Итог: 1258.
- Способ со строками: превратить каждое число в строку и склеить:
str(12) + str(58). Получится строка'1258'.
a = 12; b = 58
print(a * 100 + b) # 1258, как число
print(str(a) + str(b)) # 1258, как строка
Ответ: 12 · 100 + 58 = 1258 (или склеить строки '12' и '58').
№ 9
(Вопросы для размышления, № 3.) Для чего предназначена команда float(input())?
Как думать. Вспомни, чем отличается int(input()).
Решение. input() вводит строку, а float() превращает её в действительное число, то есть число с дробной частью.
Ответ: для ввода действительных (дробных) чисел.
№ 10
(Задания, № 1*.) Какой тип получит каждая переменная, если использовать type()?
Как думать. Смотри на значение. Есть кавычки, значит, str. Есть дробная часть, значит, float. True и False без кавычек — bool. Просто целое число — int.
Решение.
int: r, h, max;float: a, p;str: b, ppp, res, tc, maxs, mins, tes (всё, что в кавычках, даже'True','-25'и'1500');bool: c, min.
⚠️ Частая ошибка.
maxиminв Python уже используются как названия встроенных функций. Для своих переменных лучше брать другие имена, напримерmx,mn.
Ответ: int: r, h, max. float: a, p. str: b, ppp, res, tc, maxs, mins, tes. bool: c, min.
№ 11
(Задания, № 2**.) Длина L дана в миллиметрах. Напиши программу, которая выводит её в километрах, метрах, сантиметрах и миллиметрах. Пример: 1012552 → 1 км 12 м 55 см 2 мм.
Как думать. В 1 км 1 000 000 мм, в 1 м 1000 мм, в 1 см 10 мм. Действуем как в задаче про секунды: целое деление берёт крупную единицу, остаток идёт дальше.
Решение.
L = int(input()) # длина в миллиметрах
km = L // 1000000 # километры
L = L % 1000000
m = L // 1000 # метры
L = L % 1000
sm = L // 10 # сантиметры
mm = L % 10 # миллиметры
print(km, 'км', m, 'м', sm, 'см', mm, 'мм')
Ответ: для 1012552 программа выводит 1 км 12 м 55 см 2 мм.
№ 12
(Задания, № 3***.) Напиши программу, которая вычисляет сумму и произведение цифр двузначного числа. Пример: 89 → 17 и 72.
Как думать. Первая цифра двузначного числа — N // 10, вторая — N % 10.
Решение.
N = int(input())
a = N // 10 # десятки
b = N % 10 # единицы
print(a + b) # сумма цифр
print(a * b) # произведение цифр
Для 89: 8 + 9 = 17, 8 · 9 = 72.
Ответ: для 89 программа выводит 17 и 72.
№ 13
(Домашнее задание.) Напиши программу, которая выводит сумму и произведение цифр трёхзначного числа. Пример: 896 → 23 и 432.
Как думать. Сотни: N // 100. Десятки: N // 10 % 10 (сначала убираем единицы, потом берём последнюю цифру). Единицы: N % 10.
Решение.
N = int(input())
a = N // 100 # сотни
b = N // 10 % 10 # десятки
c = N % 10 # единицы
print(a + b + c) # сумма
print(a * b * c) # произведение
Для 896: 8 + 9 + 6 = 23, 8 · 9 · 6 = 432.
Ответ: для 896 программа выводит 23 и 432.
Шпаргалка
Термины: тип данных, целые, действительные, строковые, логические, функция type(), отладка программы, опции.