記錄#
今天學習了拆分文件和導入文件的知識。
當程式碼量過多時,我們應該考慮將程式碼拆分為不同的文件。不同的文件可以相互調用,使用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"您有 {gamenum} 個 {gname}。")
else:
print(f"{gname} 不在清單中。")
else:
print("清單是空的")