#python #percentage #addition #exponential
#питон #процент #дополнение #экспонентный
Вопрос:
Мне было интересно, может ли кто-нибудь помочь мне понять, как делать процентное сложение в Python? Я хочу добавить экспоненциальный процентный рост к заданному числу, т. е. добавление 3% к 150 = 154,5, а затем 3% к новому значению, но в непрерывной строке x раз.
вот так:
1.) 150 2.) 154.5 3.) 159.135 4.) 163.90905 5.) 168.8263215 6.) 173.891111145 7.) 179.10784447935 8.) 184.4810798137305 9.) 190.0155122081424 10.) 195.7159775743867
Хотел бы иметь возможность сделать это 200 раз и распечатать за один раз.
Комментарии:
1. Пожалуйста, предоставьте нам код , который вы сделали до сих пор, чтобы мы могли вам помочь, без кода мы не сможем вам помочь.
2. Можете ли вы сосредоточиться и прояснить свой вопрос по конкретной проблеме? Вы сталкиваетесь с трудностями при расчете новой стоимости? У вас возникли проблемы с выполнением этого в цикле? Как бы вы это сделали, если бы вам пришлось делать это с помощью ручки и бумаги? Оттуда переход на Python действительно прост с базовыми циклами
3. Я имею в виду, знаете ли вы, как добавить 3% к числу, за пределами Python?
Ответ №1:
Что бы я сделал, так это:
Создайте генератор, используемый для вычисления экспоненциального процента:
def expo_generator(x): while True: yield x x = x x*3/100
Создайте take
утилиту (она принимает n элементов генератора или массива). (Эту утилиту можно найти также в пакете more-itertools)
from itertools import islice def take(n, iterable): return list(islice(iterable, n)
Тогда вы можете использовать:
result = take(20, expo_generator(150))
Он вернет массив из первых 20 значений функции expo_generator.
Ответ №2:
В основном есть два способа сделать это:
- работа с x в цикле:
x = 150 for n in range(200): x *= 1.03 # multiplying by 103%, therefore "adding 3%" print(x)
- математическим способом:
x = 150 for n in range(200): print(x * (1.03**n)) # a**b means a^b, exponetial function