МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ
«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»
Методическая разработка
«Решение задач по потоковому вводу и выводу данных на языке программирования Python»
к дополнительной общеобразовательной
общеразвивающей программе
технической направленности
«Программирование на Python»
Возраст детей: 10-17 лет
Автор: Костычев Вадим Александрович
г. Заречный Пензенской области
2024 г.
В ходе изучения программирования на основе языка Python большую роль играет разработка проектов. Они позволяют отработать как навыки программирования, вспомнить работу различных функций, команд, развить навыки построения алгоритмов.
Целью данной разработки является повышение интереса учащихся к техническому творчеству посредством работы над проектом на языке Python.
Данная методическая разработка используется как обучающий пример для работы по дополнительной общеобразовательной общеразвивающей программе технической направленности «Программирование на Python». С их помощью учащиеся смогут применить теоретические знания на практике, построив сложные алгоритмы для решения различных задач.
Задача 1. Рост
Вам даны числа, определяющие рост учащихся 7 «Б» класса. Определите и выведите рост самого высокого ученика, самого низкого ученика и средний рост учащихся класса.
Входные данные:
172
222
168
152
Выходные данные:
Самый высокий учащийся класса: 222 см
Самый низкий учащийся класса: 152 см
Средний рост учащихся класса: 178.5 см
Листинг программы:
import sys
height = [int(line.strip()) for line in sys.stdin]
print('Самый высокий учащийся класса:', max(height), 'см')
print('Самый низкий учащийся класса:', min(height), 'см')
print('Средний рост учащихся класса:', sum(height) / len(height), 'см')
Задача 2. Очистка
Вам дана программа, необходимо избавиться от строк, в которых написаны только комментарии без программного кода. Строки, в которых есть код отчищать не нужно.
Входные данные:
import random
import datetime
# программа персональный помощник
fi = ["Оппенгеймер", "Убийца", "Человек-паук", "Джон Уик", "Переводчик"] # список фильмов
no = ["Hogwarts Legacy", "Remnant 2", "Dead Island 2", "Diablo 4", "Star wars Jedi: Survivor"] # список игр
con = ["Мама +795326453", "Папа +794632434", "Брат +7983254322"] # список фильмов
print("Добро пожаловать в персональный помощник!")
print("Я могу помочь вам с заметками, задачами, контактами и многим другим.")
print("Вот полный список комманд: Фильмы, Сколько будет a ** b, Какое сегодня число, Игры")
print("Введите команду или 'Закрыть', чтобы выйти.")
while True: # основная часть программы
com = input()
# ниже поможет закрыть программу
if 'ЗАКР' in com.upper(): # закрыть программу
break
# а тут предложить посмотреть фильм
if 'фильм' in com.lower(): # фильмы
print("Список фильмов:")
for f in fi:
print(f)
# вот так вот
elif "скол" in com.lower() or "буд" in com.lower(): # число в степени
a = int(input("Ваше число ="))
b = int(input("В какой степени ="))
print(a ** b)
#скажет вам дату с компьютера
elif "число" in com.lower(): # дата сегодняшняя дата
now = datetime.datetime.now()
print("Сегодняшняя дата:")
print(now.strftime("%d-%m-%Y"))
elif "игр" in com.lower(): # игры
print("Список игр")
for n in no:
print(n)
else:
print("Команда не распознана")
Выходные данные:
import random
import datetime
fi = ["Оппенгеймер", "Убийца", "Человек-паук", "Джон Уик", "Переводчик"] # список фильмов
no = ["Hogwarts Legacy", "Remnant 2", "Dead Island 2", "Diablo 4", "Star wars Jedi: Survivor"] # список игр
con = ["Мама +795326453", "Папа +794632434", "Брат +7983254322"] # список фильмов
print("Добро пожаловать в персональный помощник!")
print("Я могу помочь вам с заметками, задачами, контактами и многим другим.")
print("Вот полный список комманд: Фильмы, Сколько будет a ** b, Какое сегодня число, Игры")
print("Введите команду или 'Закрыть', чтобы выйти.")
while True: # основная часть программы
com = input()
if 'ЗАКР' in com.upper(): # закрыть программу
break
if 'фильм' in com.lower(): # фильмы
print("Список фильмов:")
for f in fi:
print(f)
elif "скол" in com.lower() or "буд" in com.lower(): # число в степени
a = int(input("Ваше число ="))
b = int(input("В какой степени ="))
print(a ** b)
elif "число" in com.lower(): # дата сегодняшняя дата
now = datetime.datetime.now()
print("Сегодняшняя дата:")
print(now.strftime("%d-%m-%Y"))
elif "игр" in com.lower(): # игры
print("Список игр")
for n in no:
print(n)
else:
print("Команда не распознана")
Листинг программы:
import sys
programm = [line.strip('\n') for line in sys.stdin]
for i in range(len(programm)-1, -1, -1):
for j in range(len(programm[i])):
if programm[i][j] == ' ':
continue
if programm[i][j] == '#':
del programm[i]
else:
break
print(*programm, sep='\n')
Задача 3. Статистика по тексту
Напишите программу, которая будет собирать статистику отрывка произведения «Старик и море», расположенного в файле формата .txt. Параметры для анализа придумайте сами. Выведите статистику в тот же файл, где был текст.
Входные данные:
He was an old man who fished alone in a skiff in the Gulf Stream and he had gone eighty-four days now without taking a fish. In the first forty days a boy had been with him. But after forty days without a fish the boy's parents had told him that the old man was now definitely and finally salao, which is the worst form of unlucky, and the boy had gone at their orders in another boat which caught three good fish the first week. It made the boy sad to see the old man come in each day with his skiff empty and he always went down to help him carry either the coiled lines or the gaff and harpoon and the sail that was furled around the mast. The sail was patched with flour sacks and, furled, it looked like the flag of permanent defeat.
The old man was thin and gaunt with deep wrinkles in the back of his neck. The brown blotches of the benevolent skin cancer the sun brings from its reflection on the tropic sea were on his cheeks. The blotches ran well down the sides of his face and his hands had the deep-creased scars from handling heavy fish on the cords. But none of these scars were fresh. They were as old as erosions in a fishless desert.
Выходные данные:
В данном тексте:
Слов: 1152
Цифр: 0
Букв: 908
Заглавных букв: 12
Прописных букв: 896
Знаков пунктуации: 15
Листинг программы:
import sys
digit = 0 # счетчик цифр
aplha = 0 # счетчик букв
upper = 0 # счетчик заглавных букв
lower = 0 # счетчик прописных букв
punct = 0 # счетчик знаков пунктуации
sys.stdin = open('The Old Man and the Sea.txt', 'r', encoding='utf-8')
data = sys.stdin.read()
for i in data:
if i.isdigit():
digit += 1
if i.isalpha():
aplha += 1
if i.isupper():
upper += 1
elif i.islower():
lower += 1
elif i in '.,!?:();"[]{}*/' or i in "'":
punct += 1
sys.stdout = open('The Old Man and the Sea.txt', 'w')
print('\n' + 'В данном тексте:')
print('Слов:', len(data))
print('Цифр:', digit)
print('Букв:', aplha)
print('Заглавных букв:', upper)
print('Прописных букв:', lower)
print('Знаков пунктуации:', punct)