Qué hace el siguiente código de Python?

# https://www.investopedia.com

from __future__ import annotations


def simple_interest(
    principal: float, daily_interest_rate: float, days_between_payments: int
) -> float:
    """
    >>> simple_interest(18000.0, 0.06, 3)
    3240.0
    >>> simple_interest(0.5, 0.06, 3)
    0.09
    >>> simple_interest(18000.0, 0.01, 10)
    1800.0
    >>> simple_interest(18000.0, 0.0, 3)
    0.0
    >>> simple_interest(5500.0, 0.01, 100)
    5500.0
    >>> simple_interest(10000.0, -0.06, 3)
    Traceback (most recent call last):
        ...
    ValueError: daily_interest_rate must be >= 0
    >>> simple_interest(-10000.0, 0.06, 3)
    Traceback (most recent call last):
        ...
    ValueError: principal must be > 0
    >>> simple_interest(5500.0, 0.01, -5)
    Traceback (most recent call last):
        ...
    ValueError: days_between_payments must be > 0
    """
    if days_between_payments <= 0:
        raise ValueError("days_between_payments must be > 0")
    if daily_interest_rate < 0:
        raise ValueError("daily_interest_rate must be >= 0")
    if principal <= 0:
        raise ValueError("principal must be > 0")
    return principal * daily_interest_rate * days_between_payments


def compound_interest(
    principal: float,
    nominal_annual_interest_rate_percentage: float,
    number_of_compounding_periods: int,
) -> float:
    """
    >>> compound_interest(10000.0, 0.05, 3)
    1576.2500000000014
    >>> compound_interest(10000.0, 0.05, 1)
    500.00000000000045
    >>> compound_interest(0.5, 0.05, 3)
    0.07881250000000006
    >>> compound_interest(10000.0, 0.06, -4)
    Traceback (most recent call last):
        ...
    ValueError: number_of_compounding_periods must be > 0
    >>> compound_interest(10000.0, -3.5, 3.0)
    Traceback (most recent call last):
        ...
    ValueError: nominal_annual_interest_rate_percentage must be >= 0
    >>> compound_interest(-5500.0, 0.01, 5)
    Traceback (most recent call last):
        ...
    ValueError: principal must be > 0
    """
    if number_of_compounding_periods <= 0:
        raise ValueError("number_of_compounding_periods must be > 0")
    if nominal_annual_interest_rate_percentage < 0:
        raise ValueError("nominal_annual_interest_rate_percentage must be >= 0")
    if principal <= 0:
        raise ValueError("principal must be > 0")

    return principal * (
        (1 + nominal_annual_interest_rate_percentage) ** number_of_compounding_periods
        - 1
    )


if __name__ == "__main__":
    import doctest

    doctest.testmod()
คุณคิดอย่างไรกับ Python? # https://www.investopedia.com จาก __future__ นำเข้าคำอธิบายประกอบ def simple_interest( เงินต้น: float, daily_interest_rate: float, days_between_Payments: int ) -> float: """ >>> simple_interest(18000.0, 0.06, 3) 3240.0 >> > simple_interest(0.5, 0.06, 3) 0.09 >>> simple_interest(18000.0, 0.01, 10) 1800.0 >>> simple_interest(18000.0, 0.0, 3) 0.0 >>> simple_interest(5500.0, 0.01, 100) 5500.0 >>> simple_interest (10,000.0, -0.06, 3) Traceback (การโทรล่าสุดล่าสุด): ... ValueError: daily_interest_rate ต้องเป็น >= 0 >>> simple_interest(-10,000.0, 0.06, 3) Traceback (การโทรล่าสุดล่าสุด): ... ValueError: เงินต้นต้องเป็น > 0 >>> simple_interest(5500.0, 0.01, -5) Traceback (การโทรล่าสุดล่าสุด): ... ValueError: days_between_Payments ต้องเป็น > 0 """ ถ้า days_between_Payments <= 0: Raise ValueError(" days_between_Payment ต้องเป็น > 0") ถ้า daily_interest_rate < 0: เพิ่ม ValueError("daily_interest_rate must be >= 0") ถ้าเงินต้น <= 0: Raise ValueError("เงินต้นต้องเป็น > 0") คืนเงินต้น * daily_interest_rate * days_between_Payments defcompound_interest( เงินต้น: float, nominal_annual_interest_rate_percentage: float, number_of_compounding_terms: int, ) -> float: """ >>>compound_interest(10,000.0, 0.05, 3) 1576.2500000000014 >>>compound_interest(10,000.0, 0.05, 1) 500.00000000 000045 >>> ดอกเบี้ยทบต้น(0.5 , 0.05, 3) 0.07881250000000006 >>>compound_interest(10,000.0, 0.06, -4) Traceback (การโทรล่าสุดครั้งล่าสุด): ... ValueError: number_of_compounding_ periods must be > 0 >>>compound_interest(10,000.0, -3.5, 3.0) Traceback ( การโทรล่าสุดครั้งล่าสุด): ... ValueError: nominal_annual_interest_rate_percentage ต้องเป็น >= 0 >>>compound_interest(-5500.0, 0.01, 5) Traceback (การโทรล่าสุดครั้งล่าสุด): ... ValueError: เงินต้นต้องเป็น > 0 """ ถ้า number_of_compounding_terms <= 0: เพิ่ม ValueError("number_of_compounding_ periods must be > 0") ถ้า nominal_annual_interest_rate_percentage < 0: เพิ่ม ValueError("nominal_annual_interest_rate_percentage must be >= 0") ถ้าเงินต้น <= 0: Raise ValueError("principal must be > 0" ) ส่งคืนเงินต้น * ( (1 + nominal_annual_interest_rate_percentage) ** number_of_compounding_terms - 1 ) ถ้า __name__ == "__main__": นำเข้า doctest doctest.testmod()
spam lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor creativity violence