私は非常にはっきり覚えていますが、このコンテンツを投稿しましたが、なぜか消えてしまいました。
レコード#
- 今日はバックトラックと try except を学びました。
- 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 を使用します。
- 正しい答えは辞書ではなく、2 次元配列を使用しており、比較的簡単です。単に配列.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")