レコード#
今日はファイルの分割とファイルのインポートについて学びました。
コードが多くなる場合、コードを異なるファイルに分割することを考えるべきです。異なるファイルは相互に呼び出すことができ、import ファイル名
を使用してインポートすることができます。ここでは、.py
の拡張子を入力する必要はありません。呼び出しを容易にするために、インポートされたファイルに別名を付けることもできます。import ファイル名 as 別名
のように使用します。
ファイルをインポートした後は、ファイル名.関数名
または別名.関数名
の形式で関数を呼び出すことができます。
今日の練習は、以前のコードを分割し、関数を個別のファイルに書き出し、それをインポートして呼び出すことです。
異なるファイル間での呼び出しでは、引数の渡し方も関係してきます。これについてはまだ理解が不十分かもしれませんので、今後の学習で注意を払う必要があります。
CODE#
## main.py
import os, time, myLibary as lib
try:
f=open("gamelist.txt","r")
gamelist=eval(f.read())
f.close
except:
gamelist = []
while True:
time.sleep(1)
os.system("clear")
print("🌟RPG Inventory🌟")
menu=input("1: 追加\n2: 削除\n3: 表示\n")
if menu == "1":
lib.gameadd(gamelist)
elif menu == "2":
lib.gameremove(gamelist)
elif menu == "3":
lib.gameview(gamelist)
else:
print("入力エラー")
f=open("gamelist.txt","w")
f.write(str(gamelist))
f.close()
### myLibaty.py
def gameadd(gamelist):
gname = input("追加するアイテムを入力してください: > ").capitalize()
gamelist.append(gname)
print(f"{gname}がインベントリに追加されました。")
def gameremove(gamelist):
if gamelist:
gname=input("削除するアイテムを入力してください: > ").capitalize()
if gname in gamelist:
gamelist.remove(gname)
print(f"{gname}がインベントリから削除されました。")
else:
print(f"{gname}はリストにありません。")
else:
print("リストは空です")
def gameview(gamelist):
if gamelist:
gname=input("表示するアイテムを入力してください: > ").capitalize()
if gname in gamelist:
gamenum = gamelist.count(gname)
print(f"{gname}は{gamenum}個あります。")
else:
print(f"{gname}はリストにありません。")
else:
print("リストは空です")