Привет, будущий IT-специалист! Если ты учишься в 10-11 классе и хочешь не просто выучить Python, а сразу научиться применять его для решения реальных проблем, ты по адресу. Синтаксис и теория — это скучно, пока не видишь, как твой код оживает и делает что-то полезное.
Мы подготовили 10 практических задач с готовыми программами. Они покажут тебе, что программирование — это не только про академические знания, но и про автоматизацию рутины, анализ данных и даже создание собственных инструментов. Поехали!
Задача 1: Умный конвертер валют
Практическая цель: Создать программу, которая всегда показывает актуальный курс. Больше не нужно гуглить!
Что изучаем: Работа с API (интерфейсом для получения данных из интернета), обработка JSON.
python
import requests
def currency_converter(amount, from_currency, to_currency):
# Используем бесплатный API для получения курсов
url = f"https://api.exchangerate-api.com/v4/latest/{from_currency}"
response = requests.get(url)
data = response.json()
rate = data['rates'][to_currency]
converted_amount = amount * rate
print(f"{amount} {from_currency} = {converted_amount:.2f} {to_currency}")
# Пример использования
amount = float(input("Введите сумму: "))
from_curr = input("Из валюты (например, USD): ").upper()
to_curr = input("В валюту (например, RUB): ").upper()
currency_converter(amount, from_curr, to_curr)
Задача 2: Персональный бюджет на месяц
Практическая цель: Вести учет доходов и расходов, чтобы всегда знать, на что уходят деньги.
Что изучаем: Работа со словарями, циклами и файлами для сохранения данных.
python
import json
def add_transaction(transactions):
type_ = input("Тип (доход/расход): ").lower()
category = input("Категория (еда, транспорт, зарплата...): ")
amount = float(input("Сумма: "))
transactions.append({"type": type_, "category": category, "amount": amount})
def show_finance(transactions):
total_income = sum(t['amount'] for t in transactions if t['type'] == 'доход')
total_expense = sum(t['amount'] for t in transactions if t['type'] == 'расход')
balance = total_income - total_expense
print(f"Доходы: {total_income}, Расходы: {total_expense}, Баланс: {balance}")
# Основной цикл программы
transactions = []
while True:
command = input("\n1 - Добавить операцию\n2 - Показать статистику\n3 - Выход\n")
if command == '1':
add_transaction(transactions)
elif command == '2':
show_finance(transactions)
elif command == '3':
break
Задача 3: Генератор безопасных паролей
Практическая цель: Больше не придумывать пароли вручную. Пусть это делает программа!
Что изучаем: Модуль random для генерации случайных последовательностей.
python
import random
import string
def generate_password(length=12):
characters = string.ascii_letters + string.digits + "!@#$%&*"
password = ''.join(random.choice(characters) for _ in range(length))
return password
# Генерируем 3 пароля
for i in range(3):
print(f"Пароль {i+1}: {generate_password()}")
Задача 4: Мини-викторина
Практическая цель: Создать свою собственную игру-викторину. Можно использовать для подготовки к экзаменам!
Что изучаем: Структуры данных (списки и кортежи), организация логики программы.
python
def run_quiz(questions):
score = 0
for question, options, correct_answer in questions:
print(f"\n{question}")
for i, option in enumerate(options, 1):
print(f"{i}. {option}")
user_answer = int(input("Ваш ответ (номер): "))
if options[user_answer - 1] == correct_answer:
print("Верно!")
score += 1
else:
print(f"Неверно! Правильный ответ: {correct_answer}")
print(f"\nВаш итоговый счет: {score}/{len(questions)}")
# Список вопросов: (Вопрос, [Варианты], Правильный ответ)
quiz_questions = [
("Какая планета известна как 'Красная планета'?", ["Венера", "Марс", "Юпитер"], "Марс"),
("Сколько будет 2+2*2?", ["6", "8", "10"], "6"),
]
run_quiz(quiz_questions)
Задача 5: Анализатор текста
Практическая цель: Проанализировать любой текст: посчитать слова, символы и частоту употребления слов.
Что изучаем: Работа со строками, использование коллекций Counter для анализа.
python
from collections import Counter
def text_analyzer(text):
words = text.split()
word_count = len(words)
char_count = len(text)
char_no_spaces = len(text.replace(" ", ""))
# Считаем частоту слов
word_freq = Counter(words)
most_common = word_freq.most_common(3) # Топ-3 слова
print(f"Количество слов: {word_count}")
print(f"Количество символов (с пробелами): {char_count}")
print(f"Количество символов (без пробелов): {char_no_spaces}")
print(f"Самые частые слова: {most_common}")
# Пример использования
user_text = input("Введите текст для анализа: ")
text_analyzer(user_text)
Задача 6: Список дел (To-Do List)
Практическая цель: Классическое, но очень полезное приложение для планирования дня.
Что изучаем: CRUD-операции (Создание, Чтение, Обновление, Удаление), работа со списками.
python
def show_tasks(tasks):
print("\nВаш список дел:")
for i, task in enumerate(tasks, 1):
status = "[x]" if task['done'] else "[ ]"
print(f"{i}. {status} {task['name']}")
tasks = []
while True:
show_tasks(tasks)
command = input("\n1 - Добавить\n2 - Выполнить\n3 - Удалить\n4 - Выход\n")
if command == '1':
new_task = input("Введите задачу: ")
tasks.append({'name': new_task, 'done': False})
elif command == '2':
task_num = int(input("Номер выполненной задачи: ")) - 1
if 0 <= task_num < len(tasks):
tasks[task_num]['done'] = True
elif command == '3':
task_num = int(input("Номер задачи для удаления: ")) - 1
if 0 <= task_num < len(tasks):
tasks.pop(task_num)
elif command == '4':
break
Задача 7: Калькулятор сложного процента
Практическая цель: Увидеть магию сложного процента и понять, как растут твои инвестиции.
Что изучаем: Математические вычисления, циклы для моделирования процессов.
python
def compound_interest(principal, rate, years):
amount = principal
print(f"\nГод | Сумма на конец года")
print("-" * 30)
for year in range(1, years + 1):
amount = amount * (1 + rate / 100)
print(f"{year:3} | {amount:,.2f} руб.")
return amount
# Ввод данных
p = float(input("Начальная сумма (руб.): "))
r = float(input("Годовая процентная ставка (%): "))
t = int(input("Срок (лет): "))
result = compound_interest(p, r, t)
print(f"\nИтоговая сумма за {t} лет: {result:,.2f} руб.")
Задача 8: Угадай число (искусственный интеллект)
Практическая цель: На этот раз компьютер угадывает твое число, используя алгоритм бинарного поиска.
Что изучаем: Алгоритмы (бинарный поиск), стратегии решения задач.
python
def computer_guesses():
low = 1
high = 1000
attempts = 0
print("Загадайте число от 1 до 1000, а компьютер попробует угадать!")
input("Нажмите Enter, когда будете готовы...")
while low <= high:
attempts += 1
guess = (low + high) // 2
feedback = input(f"Это {guess}? (Введите 'больше', 'меньше' или 'угадал'): ").lower()
if feedback == 'угадал':
print(f"Компьютер угадал за {attempts} попыток!")
break
elif feedback == 'больше':
low = guess + 1
elif feedback == 'меньше':
high = guess - 1
computer_guesses()
Задача 9: Сканер погоды
Практическая цель: Быстро проверять погоду в любом городе мира, не заходя на сайты.
Что изучаем: Продвинутая работа с API, обработка ошибок.
python
import requests
def get_weather(city_name):
# Используем OpenWeatherMap API (нужен бесплатный ключ)
api_key = "YOUR_API_KEY" # Зарегистрируйся на openweathermap.org и получи ключ!
url = f"http://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={api_key}&units=metric&lang=ru"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
temp = data['main']['temp']
desc = data['weather'][0]['description']
print(f"Погода в {city_name}: {temp}°C, {desc}")
else:
print("Город не найден или ошибка соединения")
city = input("Введите название города: ")
get_weather(city)
Задача 10: Шифровальщик/Дешифровальщик Цезаря
Практическая цель: Отправлять друзьем зашифрованные сообщения. Стань своим криптографом!
Что изучаем: Алгоритмы шифрования, работа с символами.
python
def caesar_cipher(text, shift, mode='encrypt'):
result = ""
for char in text:
if char.isalpha():
shift_base = 65 if char.isupper() else 97
if mode == 'encrypt':
new_char = chr((ord(char) - shift_base + shift) % 26 + shift_base)
else:
new_char = chr((ord(char) - shift_base - shift) % 26 + shift_base)
result += new_char
else:
result += char
return result
# Пример использования
message = input("Введите сообщение: ")
shift = int(input("Введите сдвиг: "))
action = input("Шифровать или дешифровать? (encrypt/decrypt): ")
processed_text = caesar_cipher(message, shift, action)
print(f"Результат: {processed_text}")
Что дальше?
Эти задачи — отличный старт. Они покрывают основные концепции Python и показывают его силу в реальном мире. Дальше ты можешь углубиться в:
- Веб-разработку с Flask/Django
- Data Science с библиотеками Pandas и Matplotlib
- Автоматизацию с Selenium для работы с браузером
- Создание игр на PyGame
Помни: лучший способ научиться программировать — это писать код. Много кода! Выбери задачу, которая интересна тебе больше всего, и начни с нее. Удачи!
Присоединяйтесь к нашему каналу в ДЗЕН «Учитель версии 4.0»!
Будем рады видеть вас среди наших подписчиков. На канале вас ждет эксклюзивный контент:
- Разборы сложных задач по Информатике.
- Советы по использованию Digital-инструментов в учебе.
- Актуальные новости из мира образовательных технологий.
Подписывайтесь, чтобы быть в курсе!
Учитель Информатики
Халтурина Надежда Вячеславовна
#Python #программирование #задачипопитон #обучение #школьники #IT #разработка #Pythonдляначинающих #образование #кодинг #проектынаPython #10класс #11класс #ЕГЭинформатика #саморазвитие