84.33K

SPP_Praktika_6_Poryadkovyi_suffiks_final

1.

Циклы и порядковые суффиксы
for / range() / % / if / английские окончания
for number in range(1, limit + 1):
# определяем нужное окончание
print(number)
Практическая работа №6

2.

Цикл повторяет один блок кода
Python выполняет тело цикла для каждого значения
for attempt in range(1, 4):
print("Попытка", attempt)
1-я итерация
attempt равно 1
2-я итерация
attempt равно 2
3-я итерация
attempt равно 3
Один print выполняется три раза с разными значениями
2

3.

range() создаёт последовательность
правая граница не входит в результат
range(5)
# 0, 1, 2, 3, 4
range(2, 6)
# 2, 3, 4, 5
range(2, 11, 2) # 2, 4, 6, 8, 10
start
с какого числа начать
stop
перед каким числом остановиться
step
на сколько изменять число
Чтобы получить числа от 1 до N, используют range(1, N + 1)
3

4.

Переменная цикла меняется сама
на каждой итерации number получает следующее значение
for number in range(2, 11, 2):
square = number ** 2
print(number, square)
number
2, затем 4, 6, 8 и 10
square
вычисляется заново
отступ
показывает тело цикла
Код после цикла возвращается к обычному отступу
4

5.

while работает, пока условие истинно
счётчик нужно изменять внутри цикла
count = 3
while count > 0:
print(count)
count -= 1
print("Старт")
условие
count > 0 проверяется перед повтором
изменение
count -= 1 уменьшает счётчик
остановка
при count == 0 цикл завершается
5

6.

break и continue меняют ход цикла
break завершает цикл, continue пропускает текущий повтор
for number in range(1, 8):
if number == 5:
break
print(number)
for number in range(1, 8):
if number == 5:
continue
print(number)
break
continue
вывод: 1, 2, 3, 4
вывод: 1, 2, 3, 4, 6, 7
6

7.

Порядковые числа отвечают на вопрос «который?»
в английском языке к числу добавляется суффикс
1st
2nd
3rd
4th
first
second
third
fourth
21st / 22nd / 23rd / 24th
Окончание зависит от последних цифр числа
7

8.

Четыре варианта суффикса
сначала нужно учесть особое правило
11, 12, 13
th
11th, 12th, 13th
последняя цифра 1
st
21st, 31st
последняя цифра 2
nd
22nd, 32nd
последняя цифра 3
rd
23rd, 33rd
остальные числа
th
4th, 20th, 100th
Исключение 11–13 проверяется раньше последней цифры
8

9.

Оператор % извлекает последние цифры
остаток от деления помогает анализировать окончание числа
number = 247
last_one = number % 10
last_two = number % 100
print(last_one)
print(last_two)
#7
# 47
% 10
последняя цифра числа
% 100
последние две цифры
Эти два значения нужны для обычного правила и исключений
9

10.

Порядок проверок влияет на результат
особый случай должен стоять раньше общего правила
Если проверить только последнюю цифру
Если сначала проверить последние две
111 % 10 == 1
111 % 100 == 11
# можно ошибочно выбрать st
# срабатывает исключение th
111th, 112th и 113th
Сначала точный случай, затем общие варианты
10

11.

Число и текст объединяются через str()
Python не складывает int и str напрямую
amount = 7
unit = " kg"
str(amount)
превращает 7 в строку "7"
result = str(amount) + unit
print(result)
# 7 kg
+ unit
добавляет текст справа
print()
выводит готовую строку
В f-строке можно записать: f"{amount}{unit}"
11

12.

Типичные ошибки
проверяйте границы range(), порядок условий и типы данных
N не попал в range
range(1, N)
Исключение стоит позже
сначала правило для 1
Проверена только 1 цифра
111 % 10 == 1
int складывается со str
number + "th"
Проверяйте числа 1, 2, 3, 4, 11, 12, 13, 21, 22 и 23
13

13.

Мини-проект: таблица квадратов
пример объединяет ввод, range() и вычисление внутри цикла
limit = int(input("Последнее число: "))
Что здесь
происходит?
for number in range(1, limit + 1):
square = number ** 2
print(number, square)
1.
получаем границу
2.
создаём числа 1…N
3.
считаем квадрат
4.
печатаем каждую строку
В итоговой работе внутри такого цикла выбирается текстовый суффикс
14

14.

Практическая работа №6
Порядковый суффикс
1.
Пример формата
Запросить у пользователя положительное целое число N
2.
Для каждого числа от 1 до N выбрать суффикс st, nd, rd или th
3.
Сначала обработать исключения с окончаниями 11, 12 и 13
4.
Вывести каждое порядковое число на отдельной строке
1st
2nd
3rd
4th
...
13th
...
21st
Минимальный тест: N = 25
15

15.

Дополнительные варианты
после основной части или для разных пар
Одно число
Диапазон A…B
Получить число и вывести только его порядковую
форму
Получить две границы и вывести порядковые числа
между ними
Вариант 1
Вариант 2
Только нечётные
Пропуск позиции
Вывести порядковые формы 1, 3, 5 и далее до N
Пропустить выбранное число с помощью continue
Вариант 3
Вариант 4
Каждый вариант проверяется на исключениях 11, 12, 13, 111, 112 и 113
16

16.

Что должно быть готово к сдаче
1.
Файл .py с работающей программой
Проверить
2.
Цикл проходит числа от 1 до N включительно
3.
Последняя цифра и последние две цифры получены через %
4.
Исключения 11, 12 и 13 проверяются раньше общих правил
5.
Число и суффикс объединены без ошибки типов
6.
Каждый участник пары объясняет минимум пять тестов
1st
2nd
3rd
4th
11th
12th
13th
21st
22nd
23rd
111th
17
English     Русский Правила