• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 1. Ввод и вывод данных

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Банковский вклад»

Представьте, что вы пришли в банк "Золотой Рубль", чтобы открыть вклад. Менеджер предлагает вам программу с ежемесячной капитализацией процентов. Это значит, что каждый месяц начисленные проценты прибавляются к основной сумме вклада, и в следующем месяце проценты будут начисляться уже на новую, увеличенную сумму.

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

Формат ввода

Программа получает на вход три значения, каждое на новой строке:

  1. Первая строка: начальная сумма вклада (может быть дробным числом).
  2. Вторая строка: годовая процентная ставка (может быть дробным числом).
  3. Третья строка: срок вклада в месяцах (целое число).

Формат Вывода

Программа должна вывести две строки:

  1. В первой строке текст: Итоговая сумма на счете: и через пробел итоговую сумму (int).
  2. Во второй строке текст: Чистая прибыль: и через пробел сумму чистой прибыли (int).

Пример

Ввод

100000
12
3

Вывод

Итоговая сумма на счете: 103030.1
Чистая прибыль: 3030

Подсказка

Считывание нескольких переменных из одной строки

В Python есть удобная возможность считать несколько переменных за один вызов input(). Это особенно полезно в задачах, где данные подаются в одной строке, разделенные каким-либо символом (чаще всего пробелом).

Как это работает:

  1. input() считывает всю строку целиком, например "20 30".
  2. Метод .split() "разрезает" эту строку по указанному разделителю (по умолчанию — по пробелу) и создает список из строк: ['20', '30'].
  3. Функция map(int, ...) применяет функцию int (преобразование в целое число) к каждому элементу этого списка. В результате получается специальный map-объект.
  4. Наконец, Python "распаковывает" этот объект по переменным a и b.

Пример: Ввод:

20 30

Считываем:

a, b = map(int, input().split()) # можно использовать float, если нужны дробные числа
print(a, b) # выведет 20 30
print(type(a)) # выведет <class 'int'>

Полезные советы:

  • Если числа разделены не пробелом, а, например, запятой (ввод: 20,30), укажите это в методе split(): input().split(',').
  • Убедитесь, что количество переменных слева от = соответствует количеству значений в строке. Если они не совпадут, программа выдаст ошибку ValueError.

Три типа деления

В Python существует три различных оператора для деления, и каждый из них служит своей цели.

  1. / — Обычное (вещественное) деление Этот оператор всегда возвращает в результате дробное число (float), даже если числа делятся нацело.

    a = 27
    b = 10
    print(a / 5) # выведет 5.4
    print(b / 2) # выведет 5.0 (обратите внимание, не 5, а 5.0)
    
  2. // — Целочисленное деление (деление нацело) Этот оператор выполняет деление и отбрасывает дробную часть, возвращая целое число (int). Он как бы отвечает на вопрос "сколько раз одно число целиком помещается в другом?".

    a = 27
    print(a // 5) # выведет 5 (потому что 5 помещается в 27 пять полных раз)
    
  3. % — Остаток от деления (деление по модулю) Этот оператор возвращает то, что "осталось" после целочисленного деления.

    a = 27
    print(a % 5) # выведет 2
    # Логика: ближайшее к 27 число, которое делится на 5 без остатка, это 25. 
    # Разница: 27 - 25 = 2.
    

Практическое применение %: Самое частое использование оператора % — это проверка на четность. Любое четное число делится на 2 без остатка, а нечетное — с остатком 1.

a = 27
b = 14
print(f"Число {a} нечетное? Остаток от деления на 2: {a % 2}") # выведет 1
print(f"Число {b} четное? Остаток от деления на 2: {b % 2}")   # выведет 0

Возведение в степень

Для возведения числа в степень в Python используется оператор **.

a = 2
b = 3
print(a**3) # выведет 8 (2 в степени 3)
print(b**2) # выведет 9 (3 в степени 2)

Полезные советы:

  • Для извлечения квадратного корня можно возвести число в степень 0.5.
    print(9**0.5) # выведет 3.0
    
  • Существует также встроенная функция pow(a, b), которая делает то же самое, что и a**b.
    print(pow(2, 3)) # выведет 8
    

Функция print() и форматирование строк

Функция print() выводит данные на экран. Просто складывать строки и переменные через + неудобно, так как числа нужно постоянно превращать в строки с помощью str(). Современный Python предлагает более изящные способы.

f-строки (f-strings) — рекомендуемый способ: Это самый современный, быстрый и читаемый способ. Перед строкой ставится буква f, а переменные или выражения указываются внутри фигурных скобок {}.

name = "Alice"
age = 30
print(f"Имя: {name}, Возраст: {age}")
# Вывод: Имя: Alice, Возраст: 30

Преимущество: можно прямо внутри скобок выполнять операции.

print(f"Через год ей будет {age + 1}")
# Вывод: Через год ей будет 31

Метод .format() — более старый, но все еще актуальный способ: В строке ставятся пустые фигурные скобки {}, а после строки вызывается метод .format(), в который передаются переменные.

name = "Alice"
age = 30
print("Имя: {}, Возраст: {}".format(name, age))
# Вывод: Имя: Alice, Возраст: 30

Полезные советы для print():

  • Разделитель sep: По умолчанию print разделяет свои аргументы пробелом. Это можно изменить.
    print(1, 2, 3, sep="-") # выведет 1-2-3
    
  • Окончание end: По умолчанию print после вывода добавляет перенос на новую строку \n. Это тоже можно изменить, чтобы следующие выводы print продолжались на той же строке.
    print("Привет, ", end="")
    print("мир!")
    # Вывод будет в одну строку: Привет, мир!
    
main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Решение разработчика
# Считываем начальные данные, преобразуя их в нужные типы
initial_sum = float(input())
annual_rate = float(input())
months = int(input())

# Вычисляем месячную процентную ставку в долях от единицы
monthly_rate = annual_rate / 12 / 100

# Рассчитываем итоговую сумму по формуле сложных процентов
final_sum = initial_sum * (1 + monthly_rate) ** months

# Рассчитываем чистую прибыль
profit = final_sum - initial_sum

# Выводим результат
print("Итоговая сумма на счете:", int(final_sum))
print("Чистая прибыль:", int(profit))

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!