サンプルコード集 (メイン関数)


◯こちらのサンプルコードは指導等にご自由にお使いください。


【サンプルコードの使い方】
◯サンプルコードを写す時はコピペをしないようにしましょう。
◯▶を押すと出力が表示されます。
◯Geminiボタンを押すとGemini(AI)による解説が表示されます。間違っていることもあるので、疑問に思った場合はご質問ください。
◯本マークを押すとカテゴリーの解説が見られます。


【カテゴリーごとのページへ移動】
全て
if文
for文
関数
配列
メイン関数
openpyxl
文字列
正規表現
ファイル入出力
Numpy
Matplotlib
Pandas
Biopython
scikit-learn
seaborn
Graphviz
Gemini
Tkinter

【Code List】

CODE: 5-1 (メイン関数)

CODE: 5-2 (メイン関数)

CODE: 5-3 (メイン関数)

CODE: 5-4 (メイン関数)

CODE: 5-5 (メイン関数)

CODE: 5-6 (メイン関数)

CODE: 5-7 (メイン関数)



CODE: 5-1 (メイン関数)


def inch2cm(inch):
    cm = inch*2.54
    return(cm)


def main():
    inch = 15
    cm = inch2cm(inch)
    print(cm)
    return(0)

main()




【ポイント】
◯参考: https://coconala.com/blogs/1162327/532334
https://www.lifewithpython.com/2021/01/python-main-function.html




CODE: 5-2 (メイン関数)


def inch2cm(inch):
    cm = inch*2.54
    return(cm)


def feet2cm(feet):
    cm = feet*30.48
    return(cm)


def main():
    inch = 15
    feet = 3
    cm = inch2cm(inch) + feet2cm(feet)
    print(cm)
    return(0)

main()






CODE: 5-3 (メイン関数)


def inch2cm(inch):
    cm = inch*2.54
    return(cm)


def feet2cm(feet):
    cm = feet*30.48
    return(cm)


def main():
    inch = 10
    feet = 2
    cm = inch2cm(inch) + feet2cm(feet)

    if ( cm>90 ):
        print("OK")
    else:
        print("NG")
    return(0)

main()






CODE: 5-4 (メイン関数)


def calc_second(day, hour, minute):
    sec = day * 24 * 60 * 60 + hour * 60 * 60 + minute * 60
    return(sec)


def main():
    day = 3
    hour = 5
    minute = 15
    sec = 38
    result_sec = calc_second(day, hour, minute) + sec
    print(f"{day}日{hour}時間{minute}分{sec}秒 => {result_sec}秒")
    return(0)


main()




CODE: 5-5 (メイン関数)


def calc_loan_month(loan, year_rate, month_pay):
    year_rate = 1 + year_rate/100
    month = 0

    while ( 1 ):
        month += 1
        if ( month%12==0 ):
            loan *= year_rate
        loan -= month_pay
        if ( loan<=0 ):
            break
        if ( month>10000 ):     # 無限ループを防ぐ
            break

    return(month)


def main():
    loan = 13200000     # 借入金額 (円)
    year_rate = 2            # 年利 (%)
    month_pay = 120000  # 月々の支払 (円)

    month = calc_loan_month(loan, year_rate, month_pay)
    print(f"借入金額: {loan} 円")
    print(f"金利: {year_rate} %")
    print(f"月々の支払: {month_pay} 円")
    print(f"返済期間: {month} 月")

    return(0)


main()




CODE: 5-6 (メイン関数)


def calc_monthly_interest_rate(annual_interest_rate):
    return(annual_interest_rate / 12)


def calc_total_months(years):
    return(years * 12)


def simulate_savings(annual_interest_rate, years, monthly_deposit):
    monthly_interest_rate = calc_monthly_interest_rate(annual_interest_rate)
    total_months = calc_total_months(years)

    total_amount = 0.0
    total_principal = 0.0
    total_interest = 0.0

    for month in range(1, total_months + 1):
        total_amount += monthly_deposit
        total_principal += monthly_deposit

        current_month_interest = total_amount * monthly_interest_rate
        total_amount += current_month_interest
        total_interest += current_month_interest

        if ( month % 12 == 0 ):
            current_year = month // 12

    return(total_interest)


def main():
    monthly_deposit = 20000
    years = 20
    annual_interest_rate = 0.03
    

    final_interest = simulate_savings(annual_interest_rate, years, monthly_deposit)

    final_interest = int(final_interest)

    print(f"月々の積立額:    {monthly_deposit}円")
    print(f"積立年:          {years}年")
    print(f"年利:            {annual_interest_rate}%")
    print(f"最終運用益:      {final_interest}円")
    return(0)


main()




CODE: 5-7 (メイン関数)


def calculate_epicenter_distance(s_p_time_diff, vp, vs):
    """
    大森公式を使って、P波とS波の到達時間差から震源地までの距離を計算する。
    """

    if ( s_p_time_diff < 0 ):
        return(-1)

    if ( vp <= vs ):
        return(-1)
    if ( vs <= 0 ):
        return(-1)

    k = (vp * vs) / (vp - vs)
    distance = k * s_p_time_diff

    return(distance)


def main():
    # 例: S-P時間が5秒で、異なるP波/S波速度を指定
    sp_time = 5.0
    vp = 8.0
    vs = 4.5

    distance = calculate_epicenter_distance(sp_time, vp, vs)
    if ( distance>=0 ):
        print("S-P時間: %.2f秒 (Vp=%.2f, Vs=%.2f) の場合、震源地までの距離は %.2f km です。" % (sp_time, vp, vs, distance))
    else:
        print("Error")

    return(0)




main()




【ポイント】
◯sprintfスタイルの場合、%.2fとすることで、小数第二桁まで出力することができる。
◯参考: https://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887