human
次のPythonコードは何ですか？

＃https://www.investopedia.com

__future__インポートアノテーションから


def simple_interest（
    メイン：float、daily_interest_rate：float、days_between_payments：int
） - >フロート：
    ""
    >>> 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（最新のコールLast）：
        ...
    ValueError：daily_interest_rateは> = 0でなければなりません
    >>> simple_interest（-10000.0、0.06、3）
    Traceback（最新のコールLast）：
        ...
    Valueeror：メインは> 0でなければなりません
    >>> simple_interest（5500.0、0.01、-5）
    Traceback（最新のコールLast）：
        ...
    ValueError：days_between_payments b> 0が必要です
    ""
    days_between_payments <= 0の場合：
        Raise ValueError（ "days_between_payments b> 0"）
    daily_interest_rate <0の場合：
        Raise ValueError（ "Daily_interest_rateはb> = 0"）
    メイン<= 0の場合：
        Raise ValueRerr（ "Mainは> 0" "
    メインリターン * daily_interest_rate * days_between_payments


def compount_interest（
    メイン：フロート、
    nominal_annual_interest_rate_percantage：float、
    number_of_compounding_periods：int、
） - >フロート：
    ""
    >>> compount_interest（10000.0、0.05、3）
    1576.2500000000014
    >>> compount_interest（10000.0、0.05、1）
    500.00000000000045
    >>> compount_interest（0.5、0.05、3）
    0.07881250000000006
    >>> compount_interest（10000.0、0.06、-4）
    Traceback（最新のコールLast）：
        ...
    ValueError：number_of_compounding_periodsは> 0でなければなりません
    >>> compount_interest（10000.0、-3.5、3.0）
    Traceback（最新のコールLast）：
        ...
    ValueError：nominal_annual_interest_rate_percantageはb> = 0でなければなりません
    >>> compound_interest（-5500.0、0.01、5）
    Traceback（最新のコールLast）：
        ...
    Valueeror：メインは> 0でなければなりません
    ""
    number_of_compounding_periods <= 0の場合：
        Raise ValueError（ "number_of_compounding_periodsは> 0"でなければなりません）
    nominal_annual_interest_rat_percantage <0の場合：
        Raise ValueError（ "nominal_annual_interest_rate_percentageはb> = 0"）
    メイン<= 0の場合：
        Raise ValueRerr（ "Mainは> 0" "

    メインリターン *（
        （1 + nominal_annual_interest_rate_percentage）** number_of_compounding_periods
        -1
    ））


__name__ == "__main__"の場合：
    Doctestをインポートします

    doctest.testmod（）
gpt
このコードは2つのPython関数、simple_interest()とcompound_interest()を定義し、それぞれ単利と複利を計算する。どちらの関数も3つの引数を取ります：元本（最初の元本）、daily_interest_rate（単利の場合は日歩、複利の場合は名目年利）、days_between_paymentsまたはnumber_of_compounding_periods（単利の場合は利払い間の日数または複利計算期間、複利の場合は複利計算期間）。

さらに、このコードには、関数の正しい動作を検証するための一連の単体テストがdocstringの形で含まれています。これらのテストは、関数が特定の入力値に対して期待される結果を返すこと、および無効な値（負の金利や正でない複利期間など）が提供されたときにエラーを生成することを検証します。

最後に、このコードにはdoctestモジュールの呼び出しが含まれており、docstringsで定義されたユニットテストを実行し、関数が正しく動作することを検証します。