Board logo

標題: 水果攤老闆的煩惱 2 [打印本頁]

作者: tonyh    時間: 2023-8-12 16:14     標題: 水果攤老闆的煩惱 2

本帖最後由 tonyh 於 2023-8-12 16:52 編輯

水果攤的生意實在是太好了,一下子就賣光引來諸多抱怨,為了讓更多顧客都能順利買到好吃的蓮霧,老闆定了一個規則,每人一次最多買30斤。另外,運用 try...except 使當輸入非數字時,跳出提示「請輸入數字!」。

[attach]16221[/attach]

[attach]16222[/attach][attach]16223[/attach]
  1. import tkinter as tk
  2. import tkinter.messagebox as tmbox

  3. win=tk.Tk()
  4. win.title("賣水果")
  5. win.resizable(0,0)

  6. lb=tk.Label(win, text="蓮霧", font=("微軟正黑體",18), height=2).pack()
  7. fm=tk.Frame(win)
  8. et=tk.Entry(fm, font=("微軟正黑體",16), width=10)
  9. et.pack(side="left")
  10. lb=tk.Label(fm, text="  斤", font=("微軟正黑體",14)).pack(side="left")
  11. fm.pack()

  12. def cal():
  13.     str=et.get()
  14.     try:
  15.         qty=float(str)   
  16.         if qty>30:
  17.             tmbox.showerror(title="輸入錯誤",message="每人限購 30 斤!")
  18.             et.delete(0, tk.END)
  19.             return
  20.         elif qty>=5:
  21.             res=qty*40
  22.         elif qty>=3:
  23.             res=qty*45
  24.         else:
  25.             res=qty*50
  26.         lb.config(text="%s 斤:%d 元"%(str, res))
  27.         et.delete(0, tk.END)
  28.     except:
  29.         tmbox.showerror(title="輸入錯誤",message="請輸入數字!")
  30.         et.delete(0, tk.END)

  31. btn=tk.Button(win, text="   計 算   ", command=cal, font=("微軟正黑體",12)).pack(pady=20)
  32. lb=tk.Label(win, bg="#FFFF77", fg="red", text="", font=("微軟正黑體",16), width=20, height=2)
  33. lb.pack(padx=5,pady=5)
  34. win.mainloop()
複製代碼

作者: 李沛昂    時間: 2023-8-12 16:41

本帖最後由 李沛昂 於 2023-8-12 17:05 編輯
  1. import tkinter as tk
  2. import tkinter.messagebox as tmbox

  3. win=tk.Tk()
  4. win.title("賣水果")
  5. win.resizable(0,0)
  6. fm=tk.Frame(win)
  7. lb=tk.Label(fm,text="蓮霧",font=("微軟正黑體",16)).pack(side="left",padx=100,pady=20)
  8. fm.pack()
  9. n=tk.IntVar()
  10. fm=tk.Frame(win)
  11. et=tk.Entry(fm,font=("微軟正黑體",16),width=10)
  12. et.pack(side="left",pady=5)
  13. lb=tk.Label(fm,text="  斤",font=("微軟正黑體",16)).pack(side="left")
  14. fm.pack()
  15. def count():
  16.     st=et.get()
  17.     try:   
  18.         qty=float(st)   
  19.         if qty>=30:
  20.             tmbox.showerror(title="輸入錯誤",message="每人限購30斤!")
  21.             et.delete(0,tk.END)
  22.             return
  23.         elif qty>=5:
  24.             res=qty*40
  25.         elif qty>=3:
  26.             res=qty*45
  27.         else:
  28.             res=qty*50
  29.     except:
  30.         tmbox.showerror(title="輸入錯誤",message="請輸入數字!")
  31.         et.delete(0,tk.END)
  32.     lb.config(text="%s 斤:%d 元"%(st, res))
  33.     et.delete(0, tk.END)
  34. fm=tk.Frame(win)
  35. btn=tk.Button(fm,text="  計 算  ",command=count,width=7,height=1,font=("微軟正黑體",14)).pack(side="left",pady=30)
  36. fm.pack()
  37. fm=tk.Frame(win)
  38. lb=tk.Label(fm,bg="yellow",fg="red",font=("微軟正黑體",16),width=20,height=2)
  39. lb.pack(padx=5,pady=5)
  40. fm.pack()
  41. win.mainloop()
複製代碼

作者: 王捷恩    時間: 2023-8-12 17:08

  1. import tkinter as tk
  2. import tkinter.messagebox as tmbox

  3. win=tk.Tk()
  4. win.title("賣水果")
  5. win.resizable(0,0)

  6. lb=tk.Label(win, text="蓮霧", font=("微軟正黑體", 18), height=2).pack()
  7. fm=tk.Frame(win)
  8. et=tk.Entry(fm, font=("微軟正黑體", 16), width=10)
  9. et.pack(side="left")
  10. lb=tk.Label(fm, text="  斤", font=("微軟正黑體", 14)).pack(side="left")
  11. fm.pack()

  12. def cal():
  13.     str=et.get()
  14.     try:
  15.         qty=float(str)   
  16.         if qty>30:
  17.             tmbox.showerror(title="輸入錯誤" , message="每人限購 30 斤!")
  18.             et.delete(0, tk.END)
  19.             return
  20.         elif qty>=5:
  21.             res=qty*40
  22.         elif qty>=3:
  23.             res=qty*45
  24.         else:
  25.             res=qty*50
  26.         lb.config(text="%s 斤:%d 元"%(str, res))
  27.         et.delete(0, tk.END)
  28.     except:
  29.         tmbox.showerror(title="輸入錯誤", message="請輸入數字!")
  30.         et.delete(0, tk.END)

  31. btn=tk.Button(win, text="   計 算   ", command=cal, font=("微軟正黑體", 12)).pack(pady=20)
  32. lb=tk.Label(win, bg="#FFFF77", fg="red", text="", font=("微軟正黑體", 16), width=20, height=2)
  33. lb.pack(padx=5,pady=5)
  34. win.mainloop()
  35.             
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2