{}const=>[]async()letfn</>var
PythonПрактика

7 мини-проектов на Python, которые новичок соберёт с телефона

Семь консольных программ на 20-80 строк: конвертер валют, счётчик расходов, генератор пароля, шифр Цезаря и другие. Без интернета, ключей API и графики.

К

Кодик

Автор

4 мин чтения

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

Почему с телефона пишут только консоль?

Графика упирается в две стенки. Pygame 2 в Pydroid 3 лежит в премиум-репозитории, а в бесплатном a-Shell на iPhone его нет вовсе; Pythonista 3 стоит 9,99 доллара. Tkinter в Pydroid 3 открыт даром, но окно рисуется поверх Android, и кнопка под палец не рассчитана.

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

🔥 100 000+ учеников уже с нами

Устал читать теорию?
Пора кодить!

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

🤖 AI 24/7
🎓 Сертификаты
💰 Бесплатно
🚀 Начать учиться
Присоединились сегодня

Семь проектов от простого к сложному

1. Конвертер валют по курсу, вбитому вручную

Что делает: спрашивает валюту и сумму, умножает на курс из словаря. Осваиваете: словарь, проверку in, float(), формат :.2f. Строк: 9. Споткнётесь: запятая на телефоне ставится легче точки, а float("12,5") падает с ValueError. Лечит .replace(",", ".").

RATES = {"usd": 78.50, "eur": 92.10, "cny": 11.00}

code = input("Валюта (usd/eur/cny): ").strip().lower()
amount = float(input("Сколько: ").replace(",", "."))

if code in RATES:
    print(f"{amount:g} {code.upper()} = {amount * RATES[code]:.2f} RUB")
else:
    print("Такой валюты в списке нет")

Что выведет на вводе usd и 40: 40 USD = 3140.00 RUB. На gbp: Такой валюты в списке нет. Курсы условные, подставите свои.

2. Счётчик расходов за день

Что делает: принимает суммы до пустой строки, печатает итог, число трат и среднюю. Осваиваете: while True с break, список, sum(), len(). Строк: 20-25. Споткнётесь: пустая строка это if not line:, а деление на len([]) уронит всё.

3. Список покупок с самой дорогой позицией

Что делает: берёт список пар вида ("молоко", 89), ищет самую дорогую позицию и сумму чека. Осваиваете: кортежи, распаковку for name, price in items, max() с key=lambda x: x[1]. Строк: 25-30. Споткнётесь: без key максимум ищется по названию: ошибки нет, ответ тихо неверный.

4. Генератор пароля

Что делает: собирает пароль заданной длины из букв, цифр и знаков. Осваиваете: модуль secrets и его choice, сложение строк в цикле, string.ascii_letters и string.digits. Строк: 20-25. Споткнётесь: рука тянется к random, а для паролей берут secrets. И знаки !@#$%^&* наберите один раз, в переменную.

5. Шифр Цезаря

Что делает: сдвигает буквы по алфавиту на N позиций. Осваиваете: свою функцию с return, поиск через .index(), остаток % для замыкания алфавита в кольцо. Строк: 14. Споткнётесь: на букве ё. Ниже её нет намеренно, алфавит из 32 букв. Добавите ё, станет 33, и старые шифровки поедут.

AZ = "абвгдежзийклмнопрстуфхцчшщъыьэюя"

def caesar(text, shift):
    out = ""
    for ch in text.lower():
        if ch in AZ:
            out += AZ[(AZ.index(ch) + shift) % len(AZ)]
        else:
            out += ch
    return out

secret = caesar("встреча в семь", 3)
print(secret)
print(caesar(secret, -3))

Что выведет: первой строкой ефхуиъг е фипя, второй встреча в семь. Функция расшифровки не нужна: тот же вызов с числом -3.

6. Викторина по словарю вопросов

Что делает: прогоняет 5-7 вопросов, считает очки, печатает «4 из 6». Осваиваете: список словарей, enumerate, счётчик, .strip().lower(). Строк: 40-50, половина из них вопросы. Споткнётесь: клавиатура ставит заглавную в начале и пробел в конце, поэтому answer == "париж" провалится на «Париж ».

7. Трекер привычек в текстовом файле

Что делает: дописывает дата;привычка в habits.txt и считает дни по каждой привычке. Осваиваете: with open(..., "a", encoding="utf-8"), .split(";"), date.today(), перехват FileNotFoundError. Строк: 55-80. Споткнётесь: на месте файла и на кодировке. Реализация другая, чем в разборе трекера привычек: там объект и меню, здесь append-лог, который сворачивается в счётчик.

Проект

Что осваиваете

Строк

Где споткнётесь

1. Конвертер валют

Словарь, float, f-строка

9-15

Запятая вместо точки

2. Счётчик расходов

while, список, sum

20-25

Деление на len пустого списка

3. Список покупок

Кортежи, max с key

25-30

max без key берёт по названию

4. Генератор пароля

secrets, константы строк

20-25

Привычка взять random

5. Шифр Цезаря

Функция, index, остаток %

14-35

Буква ё и длина алфавита

6. Викторина

Словари, enumerate, счёт

40-50

Автозаглавная буква в ответе

7. Трекер привычек

with open, split, except

55-80

Файл теряется в песочнице

Грабли, которых нет на ноутбуке

Отступы разъезжаются

Клавиатура вставляет то таб, то два пробела, автозамена съедает третий, Python отвечает IndentationError или TabError. Правило: четыре пробела, табов ноль.

Длинные имена не набрать

На ноутбуке total_expenses_for_today набирается за секунду, на телефоне это тридцать тапов и три опечатки. Берите короткие честные: total, items, rates.

Ctrl+C не существует

Зациклился while True, а Ctrl на экранной клавиатуре нет. В Pydroid 3 цикл гасит кнопка стоп на панели запуска, в Termux сочетание «громкость вниз + C». Циклы без явного выхода лучше не писать.

Четвёртая грабля: седьмой проект кладёт habits.txt в песочницу приложения, а не туда, куда смотрит файловый менеджер. Путь покажет print(os.path.abspath("habits.txt")).

Кодик — это не просто приложение, а твой личный наставник в мире программирования. Он объясняет всё простыми словами, помогает закреплять знания на практике и даёт крутые ачивки за успехи 🏅

А ещё у нас тёплое и дружеское комьюнити в telegram, где каждый может задать вопрос и получить ответ — без осуждения и лишней теории. Мы вместе решаем задачи, разбираем ошибки и поддерживаем друг друга на пути к цели.

С Кодиком учиться программированию действительно приятно и интересно 💙

🎯Хватит откладывать

Понравилась статья?
Пора применять на практике!

В Кодик ты не просто читаешь — ты сразу пишешь код. Теория + практика = реальный скилл.

Мгновенная практика
🧠AI объяснит код
🏆Сертификат

Без регистрации • Без карты