3.3. Типы данных — Информатика 6 класс, Кадыркулов: разбор и ответы
Ookul.kz · разбор уроков

Разберём любой номер вместе!

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 секунд.

📕 В коде учебника последняя строка начинается с Print (с большой буквы). В Python команда пишется только print, с большой буквы будет ошибка. Здесь код исправлен.

Ответ: для 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. Это можно сделать двумя способами.

Решение.

  1. Способ с числами: 12 умножить на 100 (получится 1200) и прибавить 58. Итог: 1258.
  2. Способ со строками: превратить каждое число в строку и склеить: 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(), отладка программы, опции.

Мини-тест

← 3.2. Языковой алфавит. Синтаксис · 3.4. Правила выполнения арифметических действий →