二手产品经理

二手产品经理

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("Name please > ")
  try:
    piznum = int(input("How many pizzas? > "))
  except:
    piznum = int(input("You must input a numerical character, try again. > "))
	
  pizsize = input("What size? s/m/l > ").lower()
  
  if pizsize == "s":
    pizcost = 1.99
  elif pizsize == "m":
    pizcost = 9.99
  elif pizsize == "l":
    pizcost = 19.99

  toping  = input("toping please > ")
  total = pizcost*piznum
  print(f"Thanks {uname}, your pizzas will cost {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("The piz list is empty.")
    time.sleep(2)

  print(f"{'Name': ^10}{'Topping': ^10}{'Size': ^10}{'Quantity': ^10}{'Total': ^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("The piz list is empty.")
  time.sleep(2)
  os.system("clear")

while True:
  if again == "y":
    menu = int(input("1. Add\n2. View\n"))
    if menu == 1:
      addpiz()
    elif menu == 2:
      viewpiz()
  again = input("again? y/n")
      
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。