PunchBruno Fernandes’ home burgled while in Italy for Como matchEl ComercioMaría Corina Machado redobla la presión en Venezuela: protestas, elecciones, presos políticos y su regreso al paísInquirerClasses suspended in Pagudpud due to Typhoon RosalRTP DesportoI Liga: Jornada abre em GuimarãesDaily MaverickClaude Monet’s ‘Iris’ becomes most expensive artwork sold at auction in France, Sotheby’s saysBollywood HungamaNo football, no gym, no restaurants? Tiger Shroff shooting raises a FRIGHTENING question: Are Bollywood stars becoming PRISONERS of their own fame?ZDF heuteAktuelle Pressemitteilungen des ZDFRapplerRain eases in Batanes as Typhoon Rosal starts moving awayThe Jerusalem PostIsrael’s election is being cast as a historic showdown - but four trends tell a different storyVanguard2027: Adeleke backs Tinubu; maintains support for Accord legislative candidatesESPNCaleb Williams, Bears find just enough to hold off PatsRai NewsTG3 Fuori TG del 23/10/2026
The Daily Newsstand · Free, Always
Friday, October 23, 2026

Книга по Python для школьников и студентов

Translate

                В образовании я уже второй десяток и все мои учебные программы создаются самостоятельно. Каждый год я обновляю их новыми алгоритмами, идеями занятий согласно возрастным особенностям учащихся и требований по стандартам как государственным, так и бизнеса. Обучаю математике, программированию и робототехнике, как в рамках школьного и дополнительного образования, затрагивая вузовскую программу, так и в рамках индивидуальных занятий для приобретения человеком тех или иных навыков и знаний в профессиональной деятельности.

                Поэтому всегда изучаю вышедшие книги, обновления софта и т.д. Одной из сложных задач является составления интересных учебных программ для школьников, так чтобы они отвечали и ФГОС, и подходу STEAM. Дети лучше понимают академический материал на наглядных примерах, которые дают им либо новый опыт познания мира, либо служат хорошим прикладным инструментом для решения насущных задач.

                Книг такого характера можно пересчитать по пальцам, у которых действительно есть связь со школьной программой, условно, от 3 до 11 класса по определённым предметам. В моём случае – это математика, информатика и физика. И вот относительно недавно у меня появилась новая книга, отвечающая заданным критериям, под названием «Азбука Python. Подробный самоучитель для школьников и студентов».

Здесь изложен интересный материал с демонстрацией своих алгоритмов, которые не встретишь в книгах по программированию для детей. Некоторые из них я и хотел бы осветить. Возможно для тех, кто преподаёт или тем, кто обучается программированию будет интересно.

Символы, операторы и типы данных

                В первой главе мы знакомимся с типами данных, встроенными функциями и операторами, интерпретируемые языком Python. Но ключевым отличием как от школьных учебников по информатике, так и книг по программированию становится более глубокий обзор как можно большего их числа, которые выходят за рамки школьной программы, например, комплексные числа и множества.

                Даже, на первый взгляд, банальной функции print автор уделяет 5 страниц книги, когда в других школьных источниках ей уделяют от силы абзац. Здесь же мы погружаемся в нюансах устройства работы этого метода, где знакомимся с тремя функциями repr, eval и exec.  Уже это меня порадовало и удивило.

>>> s = 'Test string\n' # тестовая строка
>>> n = 3/4 # числовое выражение
>>> print(s, n) # классический вывод
 Test string
 0.75
>>> str(s); str(n) # строковый вариант
 'Test string\n'
 '0.75' 
>>> repr(s); repr(n) # альтернатива
 "'Test string\\n'"
 '0.75'
>>> s; n # интерактивный вывод
 'Test string\n'
 0.75
>>> eval(repr(s)); eval(repr(n))
 'Test string\n'
 0.75 
 >>> eval(' print("Проверка", 2+3, 5/4, sep="; ")')
 Проверка; 5; 1.25
>>> s = 'n = 25 ** 0.5; print(n)'
>>> exec(s) # выполнение двух команд
 5.0

Книга, как учебник и поэтому материал последователен и не «скачет» из одной темы в другую. Что большой плюс для быстрого переноса в свой учебный план и конспект урока без необходимой корректировки.

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

Или задача, где нужно написать программу, которая однозначно ответит о возможно или невозможности построения треугольника по заданным длинам сторон, т.е. подразумевается применение правила неравенства треугольника.

>>> a, b, c = 5, 7, 9 # заданные стороны
>>> if (a < b + c) and (b < a + c) and (c < a + b):
... print('Из сторон такой длины можно сложить треугольник')
    Из сторон такой длины можно сложить треугольник

Далее, мы знакомимся с различными конструкциями ветвления и циклов и здесь нужно отметить то, что обговаривается о использовании конструкции match/case, которую добавили, начиная с версии Python 3.10. А как известно, огромное количество учебных книг по программированию на Python, которые издаются и переиздаются, содержат информацию о работе с более старыми версиями, ограниченными по возможностям.

... 
else:
    match age % 10: # проверяем последнюю цифру
        case 1:
            print('Вам', age, 'год')
        case 2 | 3 | 4:
            print('Вам', age, 'года')
        case _: # все остальные цифры
            print('Вам', age, 'лет')

Интересный подраздел, как мне показалось, связан с использованием символов Юникода, сюда же входят и эмодзи. Про них очень редко можно где найти, да ещё с интересными заданиями.

>>> print('Символ \u2655 обозначает ферзя,',
... '\u2658 — коня, а \u2657 — слона.')
 Символ ♕ обозначает ферзя, ♘ — коня, а ♗ — слона.

Порадовала тема разбора работы с дробями и, в первую очередь, обыкновенными, как правильными, так и неправильными. Это одна из самых болезненных тем в школьном курсе. Именно её непонимание приводит к дальнейшему каскадному непониманию всей математики. Об этом есть очень много педагогических статей в области проблем образования. А на моём личном опыте, это один из факторов нелюбви математики.

>>> from fractions import *
>>> a = 5 + Fraction(1, 4) # первая дробь
>>> b = 8 + Fraction(2, 3) # вторая дробь
>>> s, r = a + b, a — b # сумма и разность
>>> print('Сумма:', s, '\nPазность:', r)
 Сумма: 167/12
 Pазность: -41/12
>>> i = int(r) # целая часть разности
>>> print('Смешанная разность:', i, abs(r — i))
 Смешанная разность: -3 5/12
>>> i, f = divmod(s, 1) # целая и дробная части суммы
>>> print('Смешанная сумма:', i, f)
 Смешанная сумма: 13 11/12

Списки, кортежи, словари и множества

                 Вторая глава на наглядных занимательных примерах даёт учащимся исчерпывающее представления об этих типах данных. Например, ищем счастливый билет, переводим обозначения чисел из современной записи в арабскую и римскую стилистику.

n = input('Введите натуральное число: ')
if n.isdigit(): # преобразуем строку посимвольно
    s = [chr(0x6F0 + int(d)) for d in n]
    print('Арабская запись:', ''.join(s))

>>>Введите натуральное число: 32568
>>>Арабская запись: ۳۲۵۶۸

Есть ещё интереснее задачи, как создание генератора паролей, реализации игры «Камень, ножницы, бумага».

Большое внимание уделяется множествам с реализацией практических задач. Здесь я представлю условие одной из них. Напоминает, собеседование на должность в IT :-)

Работа с файлами. Операционная система.

                Одна из очень интересных глав, посвящена работа с файлами в вашей операционной системе. В школьном курсе этому почти не уделяется или уделяется очень мало. На интересных задачах мы решаем такие задачи как поиск каталога и открытие его, поиск файлов в каталоге открытие и редактирование файла. Ну и конечно такие стандартные операции как создание, переименовка и удаление файлов и каталогов.

            Интересный момент – это работа с модулем piсkle. Где на примере задач и игр нам объясняют, для чего можно использовать метод сборки файла в двоичный код и распаковки его.

import pickle
# словарь для записи
Things = {
 'Платье': 'выглажу утюгом',
 'Брошь': 'прикреплю на грудь',
 'Носовой платок': 'вытру нос',
 'Шапка': 'надену на голову',
 'Зонтик': 'укроюсь от дождя',
 'Сливочное масло': 'намажу на хлеб',
 'Орехи': 'разгрызу и съем',
 'Отварная свёкла': 'приготовлю винегрет',
 'Пирожное': 'полакомлюсь',
 'Квас': 'добавлю в окрошку',
 'Кастрюля': 'сварю кашу',
 'Кошка': 'возьму на руки и поглажу',
 'Фортепиано': 'сыграю сонату',
 'Зубная щётка': 'почищу зубы',
 'Шампунь': 'вымою голову',
 'Цветы': 'понюхаю и поставлю в вазу',
 'Статуэтка': 'поставлю на полку',
 'Автомобиль': 'сяду и поеду'}
# открываем новый файл для записи в двоичном режиме
f = open('pickled_things.doc', 'wb')
# сохраняем словарь в каталоге со сценарием
pickle.dump(Things, f)
f.close()

И в заключение этой главы мы знакомимся с нотной грамотой и учимся создавать мелодии на Python, погружаясь в тему звук и реализуя проигрывания мелодий тремя разными способами.

ООП и Рекурсия

                В заключительной четвёртой главе нас знакомят с принципом создания своих пользовательских функций, а затем классов на примере решения задач. Одной из забавных является «Угадай четырёхзначное число». Нам предлагается создать разновидность логической игры, которую добавляли в советской и постсоветской электронике (например, в некоторых микрокалькуляторах Б3-34, МК-61, МК-52 или ранних электронных игрушках). Она очень похожа на игру «Быки и коровы», но с тем нюансом, что цифры в числе могут повторятся, а программа даёт 9 попыток на угадывания с указанием таких подсказок как количество верных цифр в числе и правильное или нет их расположение.

И конечно нельзя не обойти такие школьные темы как НОД, НОК и реализация последовательности Фибоначчи. Причём книга даёт не одно конкретное решения, а сразу три для каждого случая. Пример:

def Fibonacci(n):
    ''' последовательность Фибоначчи '''
    f, g = 0, 1 # нулевой и первый элементы
    for i in range(n): # вычисляем n первых членов
        yield f # возвращаем i-e число
        f, g = g, f + g # двигаемся дальше

>>> Fib = list(Fibonacci(7)) # получаем список чисел
>>> Fib # выводим все их сразу
 [0, 1, 1, 2, 3, 5, 8]

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

Итог

                Исходя из рассмотренных примеров видно, что автор старается использовать «не заезженные» алгоритмы и учит понимать саму суть той или иной функции, оператора или целого модуля, который применяется в данной конкретной ситуации. Что очень радует, и явно отличает эту книгу от многих других, затрагивающих обучение программированию для детей.

Здесь я оставлю ссылку на страницу книги у издательства Лаборатория знаний. Пока она доступна на Озоне.  

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.