← Маршрут ML-инженерии

Урок · 2 мин чтения · упражнения и самопроверка

Базовый синтаксис

После урока: объяснить типы и выполнить упражнение «Реализовать обработку числового ввода», обосновав выбранный подход..

Перед началом

Типы и операции

Целые числа имеют тип int, вещественные — float, строки — str, логические значения — bool. Размер целого Python растёт по необходимости, но операции с очень большими числами требуют времени и памяти. Вещественные числа хранят приближение: не ожидайте точного равенства результатов любой десятичной арифметики. +, -, * выполняют арифметику; / делит с вещественным результатом. // округляет результат деления вниз: -7 // 3 равно -3. % даёт соответствующий остаток: -7 % 3 равно 2. Связь a == (a // b) * b + a % b выполняется для целых при b != 0. ** возводит в степень.

Условие

if выбирает ветку по логическому выражению. Сравнения: ==, !=, <, <=, >, >=. and, or, not соединяют условия. После заголовка ветки ставится двоеточие; тело выделяется отступом. Используйте четыре пробела и не смешивайте их с табуляцией. Ветка else выполняется, когда предыдущие условия не подошли.

Повторение

for i in range(n) перебирает 0, 1, ..., n - 1. Для чисел от 1 до n используйте range(1, n + 1). while повторяет тело, пока условие истинно; переменные должны изменяться так, чтобы цикл завершался. break завершает ближайший цикл, continue переходит к следующей итерации.

Накопитель создайте до цикла. В сумме от 1 до n он начинается с 0. Если заново присвоить 0 внутри тела, предыдущая сумма потеряется. Для максимума последовательности не используйте произвольный ноль: все числа могут быть отрицательными.

Функция как следующий шаг

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

Пошаговый пример

python
n = int(input())
total = 0
for i in range(1, n + 1):
    total += i
if total % 2 == 0:
    print(total, "even")
else:
    print(total, "odd")

Вход

text
3

Ожидаемый вывод

text
6 even

При n=3 накопитель проходит значения 1, 3, 6. Остаток 6 % 2 равен нулю.

Сделайте самостоятельно

Посчитайте сумму только чётных чисел от 1 до n включительно. Какие ответы ожидаются при n = 0, 1 и 6?

Ответ и критерии проверки

Перед циклом total = 0. Внутри добавляйте i только при i % 2 == 0. Ответы: 0, 0, 12. Можно также использовать range(2, n + 1, 2).

Закрепите задачами

  1. Сравнить числа
  2. Сумма от 1 до n

Зачёт требует отправки на проверку. Ответы самопроверки не засчитывают эти задачи.

Проверьте понимание

1. Сколько итераций в range(4)?
2. Где обнулить накопитель суммы?
3. Чему равно -7 // 3?