私は非常にはっきりと覚えていますが、このコンテンツを投稿しましたが、なぜか消えてしまいました。
レコード#
- 今日はバックトラックと例外処理を学びました。
- try と except は一対であり、ペアで表示する必要があります。
- 基本的なロジック:try コード、エラー時には except コード
except Exception as err:
print (err) を使用してエラーメッセージを表示します。- 最初の行でデバッグモードを設定します、debugMode = False
- if debugMode: print(traceback)
- これにより、システムのエラーメッセージを表示するかどうかを簡単に制御できます。
- 今日の練習はピザ店の注文リストを作成することで、以下の知識が必要です:
- 注文情報は名前を辞書のキーとし、他の情報を辞書の値とします。この形式で str () を使用してローカルファイルに書き込みます。
- 辞書に書き込むため、まず read して辞書に代入します。その後、新しいデータを書き込み、保存します。
- 読み取り時には eval () を使用する必要があります。
- 表示する場合は、for ループを使用して key,value を使用し、これは辞書の操作です。value は配列なので、直接 for name , print name を使用します。
- 正しい答えは辞書を使用せず、二次元配列を使用しており、比較的簡単です。単に配列.append を使用すればよいです。
CODE#
import os, time
debugMode = False
print("🌟デイブのダッジピザ🌟")
again="y"
def addpiz():
uname = input("名前を入力してください > ")
try:
piznum = int(input("ピザの数は? > "))
except:
piznum = int(input("数字を入力する必要があります、もう一度試してください。 > "))
pizsize = input("サイズは? s/m/l > ").lower()
if pizsize == "s":
pizcost = 1.99
elif pizsize == "m":
pizcost = 9.99
elif pizsize == "l":
pizcost = 19.99
toping = input("トッピングを入力してください > ")
total = pizcost*piznum
print(f"ありがとうございます、{uname}さん、ピザの合計金額は{total}です")
try:
f = open("piz.list","r")
pizlist = eval(f.read())
f.close()
except:
pizlist={}
pizlist[uname]=[toping,pizsize,piznum,total]
f = open("piz.list","w")
f.write(str(pizlist))
f.close
def viewpiz():
try:
f = open("piz.list","r")
pizlist = eval(f.read())
f.close()
except:
print("ピザリストは空です。")
time.sleep(2)
print(f"{'名前': ^10}{'トッピング': ^10}{'サイズ': ^10}{'数量': ^10}{'合計': ^10}")
for key,value in pizlist.items():
print(f"{key: ^10}",end="")
for name in value:
print(f"{name: ^10}",end="")
print()
try:
f = open("piz.list","r")
pizlist = eval(f.read())
f.close()
except:
print("ピザリストは空です。")
time.sleep(2)
os.system("clear")
while True:
if again == "y":
menu = int(input("1. 追加\n2. 表示\n"))
if menu == 1:
addpiz()
elif menu == 2:
viewpiz()
again = input("もう一度? y/n")