二手产品经理

二手产品经理

THIS IS RENO

操作文件 - 52天 - 在线學python100天

我記得很清楚,這個內容我發過,可是不知道為什麼沒有了。

記錄#

Catbox

  1. 今天學習回溯,try except。
  2. try 和 except 是一對,需要成對出現。
  3. 基本邏輯:try 代碼 錯誤時 excpet 代碼
  4. 使用 except Exception as err: print (err) 打印報錯信息。
  5. 在第一行設置 debug 模式 , debugMode = False
    1. if debugMode: print(traceback)
    2. 這樣可以很方便的控制是否顯示系統報錯信息。
  6. 今天的練習是編寫一個比薩店的訂單列表,有以下幾個知識點:
    1. 訂單信息用 name 做字典 key,其他信息做字典 value。按照這種格式,str () 後寫到本地文件。
    2. 因為寫入的是字典的原因,需要先 read,賦值給字典。再寫入新的數據,然後保存。
    3. 讀取時要用 eval ()。
    4. view 時用 for 循環,先 key,value in item (),這是對字典的操作。value 是數組了,直接 for name , print name 就好。
    5. 正確答案沒有用字典,而是用的二維數組,相對簡單一些,直接數組.append 就可以了。

CODE#

import os, time
debugMode = False
print("🌟Dave's Dodgy Pizzas🌟")
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")
      
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。