Проверьте свои знания: 4 непростых задачи по языку Python для детей

Родители все чаще записывают своих начинающих айтишников на уроки программирования для детей. Да и сами ребята с удовольствием изучают кодинг. По данным Accenture, 95℅ российских школьников мечтают стать программистами, и это объяснимо.

Проверьте свои знания: 4 непростых задачи по языку Python для детей

Программирование дает тебе суперсилу: ты можешь заставить почти любую технику делать то, что захочешь. Представляешь это ни с чем не сравнимое ощущение, когда сотни элементов программы соберутся под твоим управлением в единое целое и заработают?!

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

Коллег также поразила программа, включающая кофемолку и готовящая кофе ровно к тому моменту, когда человек не торопясь доходил от офиса до столовой. Хочешь так же? Или, может, ты повторишь успех Ларри Пейджа и Сергея Брина, создавших Google?

Чтобы удовольствие от результата было большим, нужна сложная задача! Попробуй выполнить несколько непростых заданий по Python ниже. Они по плечу не каждому взрослому.

1. «Мерцай, мерцай, звездочка!». Любопытная задачка по программированию на Python для детей

На курсе «Пайтон» для детей обучаются ребята 10-14 лет
На курсе «Пайтон» для детей обучаются ребята 10-14 лет

Хороший гончар умеет так ловко подставить руку под крутящийся кусок глины, что из него мгновенно получается сосуд идеальной формы. Уровень «ветеран» в строковых операциях выглядит похоже.

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

Итак, у тебя есть строка стихотворения: «Мерцай, мерцай, звездочка, как я жажду узнать, кто ты! Ты так высоко, над всем миром, Ты как алмаз в небе! Ты мерцай, звезда ночная! Где ты, кто ты – я не знаю».

Напиши программу на Python, которая представит эту строку в следующем виде:

Мерцай, мерцай, звездочка,

Как я жажду узнать, кто ты!

Ты так высоко, над всем миром,

Ты, как алмаз в небе!

Ты мерцай, звезда ночная!

Где ты, кто ты – я не знаю

Задача может быть решена разными способами. Если ты осваиваешь язык на курсах программирования для детей на Python, то, скорее всего, уже знаком с функцией print(). Использование несколько раз этой функции с определенными манипуляциями — только один из возможных вариантов. Попробуй попасть в десятку и найти решение в одну строку кода. Не заглядывай в ответ.

Решение:

print("Мерцай, мерцай, звездочка, \n\tКак я жажду узнать, кто ты! \n\t\tТы так высоко, над всем миром, \n\t\tТы, как алмаз в небе! \nТы мерцай, звезда ночная! \n\tГде ты, кто ты – я не знаю.");

Символы, которыми мы разделили строку, называются управляющими. Это один из способов форматировать вывод строки, о котором нередко забывают. В 1963 году их приняли как стандартную компоненту любых новых электронных систем и с тех пор по инерции включают во все новые языки программирования и операционные системы.

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

2. От букв к числам: пишем программу, анализирующую массив

Уроки программирования для детей на «Пайтон» развивают логическое мышление 
Уроки программирования для детей на «Пайтон» развивают логическое мышление 

Тебе нужно написать функцию, в которую можно передать массив с любым количеством цифр. Функция должна определить, встречается ли в массиве как минимум два раза цифра «18» и как минимум три раза «2». Напомним, что функция в Python создается при помощи ключевого слова def. Не подглядывай в ответ, а то будет неинтересно!

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

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

def analyzeArray(numbers):

return numbers.count(18) == 2 and numbers.count(2) >= 3

numbers = [18,18,12,2,7,2,2,3]

print("\nВходящий массив значений:")

print(numbers)

print("Встречается ли число 18 два раза, а число 2 - 2 раза, проверить:")

print(analyzeArray(numbers))

nums = [18,1,1,2,7,7,4,8]

print("\nВходящий массив значений:")

print(numbers)

print("Встречается ли число 18 два раза, а число 2 - 2 раза, проверить:")

print(analyzeArray(nums))

nums = [18,18,2,2,2,2,2]

print("\nВходящий массив значений:")

print(numbers)

print("Встречается ли число 18 два раза, а число 2 - 2 раза, проверить:")

print(analyzeArray(nums))

Программирование на Python для детей — это не только получение ценного навыка на будущее, но и процесс, который развивает у ребенка мышление. В данном примере функция вернет ответ true, если массив выполняет условия задачи, или false, если не выполняет. Чтобы решить его, что называется, в одну строку, нужно вспомнить о различных принципах Python и использовать их к своей выгоде.

Например, «==» логический оператор, соответственно, он сам по себе вернет булево значение. После этого его остается лишь совместить с оператором return. Не нужно громоздких конструкций с if. Хороший тон — запускать функцию до функций вывода print(). Все-таки она содержит основную логику нашего скрипта. Неважно, расположена функция до входных массивов для нее или после.

Python сначала построчно его прочитает, а затем, как интерпретируемый язык, решит, в какой последовательности выполнять. А вот строки print() «отработают» последовательно — одна после другой. Наш код хорошо это использует, каждый раз переопределяя содержимое массива numbers. Отличная тренировка по программированию для детей, начинающих изучение языка «Пайтон»!

3. Построим пирамиду с помощью Python

Проверьте свои знания: 4 непростых задачи по языку Python для детей

А вот другая полезная задачка для «штурмующих» основы программирования для детей. У нас есть слои камней, на которые кладутся новые камни, — некая каменная конструкция. Если в первом слое камней их количество равно n и это четное число, значит, в каждом слое у нас будет четное количество камней.

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

Общее количество уровней в конструкции равняется n, то есть числу камней в первом уровне. Например, если входное число для функции у нас 2, то в первом уровне 2 камня, уровней в конструкции – тоже 2.

Решение: задача решается только циклом, так как входная цифра в функции countStones() может быть любой. Функция range() в Python умеет определять, какое число итераций должен пройти цикл. Крайне экономная и полезная синтаксическая конструкция, которую не найдешь в других языках, на примере которых преподают программирование для детей.

def countStones(quantity):

return [quantity + 2 * s for s in range(quantity)]

quantity = 4

print("\nКоличество уровней кладки:",quantity)

print("Количество камней в каждом уровне:")

print(countStones(quantity))

quantity = 20

print("\nКоличество уровней кладки:",quantity)

print("Количество камней в каждом уровне")

print(countStones(quantity))

quantity = 5

print("\nКоличество уровней кладки:",quantity)

print("Количество камней в каждом уровне:")

print(countStones(quantity))

quantity = 19

print("\nКоличество уровней кладки:",quantity)

print("Количество камней в каждом уровне:")

print(countStones(quantity))

4. Определи, есть ли в массиве строки, у которых последний символ отделен от остальных пробелом

На курсах программирования на «Пайтон» для детей ученики могут заниматься онлайн и офлайн
На курсах программирования на «Пайтон» для детей ученики могут заниматься онлайн и офлайн

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

Решение: нам снова пригодится цикл for. Наряду с ним многие в решении задачи вспомнят такую полезную функцию, как len(). Она позволяет определить длину массива. Задача для нас, по сути, распадается на две подзадачи: определить, сколько во входном наборе данных элементов, отсчитать предпоследний и проверить, не является он пробелом.

def checkIfIsolated(inputArr):

return [len(oneElem.split(" ")[-1])==1 for oneElem in inputArr]

inputArr = ['кошка', 'автомобиль', 'испуг', 'центр']

print("\nИсходный массив:")

print(inputArr)

print("Проверяем, является ли последняя буква каждой строки массива изолированной от остальных пробелом:")

print(checkIfIsolated(inputArr))

strs = ['кошк а', 'автомобиль', 'испу г', 'цент р']

print("\nИсходный массив:")

print(inputArr)

print("Проверяем, является ли последняя буква каждой строки массива изолированной от остальных пробелом:")

print(checkIfIsolated(inputArr))

Сколько задач удалось решить?

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

Не спеши расстраиваться, если что-то не получилось. Процесс не менее важен. Ты размышлял над задачей, узнавал новые приемы в программировании на «Пайтон» для детей, словом, сделал очередной шаг вперед к мастерству. Разве поиск разгадки задачи сам по себе не доставил тебе удовольствие? Это похоже на расследование из детективов, где все зависит только от тебя!

Решение задач по программированию на языке Python для детей лучше чередовать с реальными проектами, чтобы сохранить интерес. Как сказал когда-то сооснователь Google Ларри Пейдж, которого мы уже упоминали в начале статьи: «Always deliver more than expected» – «Всегда делай больше, чем по заданию».

А ты никогда не мечтал что-нибудь подправить в любимой компьютерной игре? C Python ты можешь написать собственную игру. Если тебе ближе формат видеоуроков,получи больше информации в наших обучающих роликах на YouTube.

А если хочешь изучать программирование более углубленно, записывайся на очные или онлайн-курсы в школу Pixel, где пошагово, занятие за занятием тебя будут знакомить со всеми нюансами и возможностями кодинга.

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

99
10 комментариев

Купленная статья с купленными комментариями и задачками уровня куплинова, незнаю сколько лет детям которые решают подобное,но уже лет в 12 можно работать с куда более интересными задачами после недели обучения

1
Ответить

Здравствуйте. Мы уверены, что эта статья может быть кому-то интересна и полезна. Сожалеем, что Вы не находите ее таковой. Однако далеко не все разделяют Ваше мнение.
В комментарии Вы указали, что есть более интересные задачки по Python для детей. Мы были бы благодарны, если бы Вы поделились ими с нами. Возможно, мы сделаем продолжение статьи и включим их в нее. Заранее спасибо.

Ответить

Интересные задачки. Надо будет повторить. Неужели дети с такими заданиями справляются?

1
Ответить

Здравствуйте. Дарья, да, наши ученики очень талантливые. Они не только такие задачки решают, но и делают интересные игры, например, такие https://youtu.be/w8azGyoVvrc, чат-боты и многое другое.

Ответить

"Недавно нашумевшая" история это боян 2015 года с Башорга. https://web.archive.org/web/20210226092253/http://bash.im/quote/436725

Ответить