自作モジュール

このレッスンでできるようになること。自分で書いた .py ファイルをモジュールとして import し、ファイルをまたいで関数を使えるようになります。

自分のファイルもモジュールになる

import math で標準モジュールを読み込めたのと同じ仕組みで、自分で書いた Python ファイルも読み込めます。kakeibo_calc.py というファイルを置けば、import kakeibo_calc と書くだけでその中の関数と変数が使えます。拡張子の .py は付けません。

import kakeibo_calc print(kakeibo_calc.with_tax(1000)) print(kakeibo_calc.TAX_RATE)

関数だけでなく、モジュールの一番外側に書いた変数も モジュール名.変数名 で読めます。消費税率のような、複数の場所から参照される値を1か所にまとめられるということです。

import が探す場所

import はファイルを自動では探し出しません。決められた場所のリストを上から順に見ていきます。このリストは sys.path という変数に入っていて、先頭に "" を入れておくと今いるフォルダも探してくれるようになります。今回はこの1行を最初に置いてから始めます。

今回書くもの

家計簿の計算だけを kakeibo_calc.py に切り出します。中身は税率 TAX_RATE、税込金額を返す with_tax、支出リストの合計を返す total の3つです。この演習では、その中身を文字列として用意してファイルに書き出し、書いたそばから import して使います。ふだんはエディタでファイルを作りますが、やっていることは同じです。

税込計算は amount * 1.1 のように小数を掛けると 934.9999... のような誤差が出ます。整数のまま amount + amount * 10 // 100 と書けば誤差は出ません。金額はできるだけ整数で扱うのが安全です。

要件

  1. kakeibo_calc.py を書き出してから import すること
  2. with_tax は整数だけで計算し、amount + amount * TAX_RATE // 100 の形にすること
  3. with_tax(1000) の結果と total(expenses) の結果をこの順に1行ずつ print すること

入出力例

出力: "1100 1330"

ヒント

生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア
編集 LuaGate編集部
main.py
学習モード

メモ

自作モジュール

⌘S で保存