python實現(xiàn)自動售貨機
本文實例為大家分享了python實現(xiàn)自動售貨機的具體代碼,供大家參考,具體內容如下
自動售貨機代碼
while True:
?n=input('請選擇操作:')
?if n=='r':
? ?l=input('請輸入貨物數量:')
? ?v=l.split('-')
? ?numA1=int(v[0])
? ?numA2=int(v[1])
? ?numA3=int(v[2])
? ?numA4=int(v[3])
? ?numA5=int(v[4])
? ?numA6=int(v[5])
? ?t=input('請輸入硬幣數量:')
? ?u=t.split('-')
? ?yiyuan=int(u[0])
? ?liangyuan=int(u[1])
? ?wuyuan=int(u[2])
? ?shiyuan=int(u[3])
? ?print('S001:Initialization is successful')
?elif n=='q':
? ? ?print('會員管理'.center(50,'*'))
? ? ?print("""
? ? ? ? ? ? ? ?操作目錄
? ? ? ? ? ? ? ?0-貨物剩余量
? ? ? ? ? ? ? ?1-錢盒""")
? ? ?while True:
? ? ? ?c=input()
? ? ? ?if c=='0':
? ? ? ? ?print('A1 %d A2 %d A3 %d A4%d A5 %d A6 %d' %(numA1,numA2,numA3,numA4,numA5,numA6))
? ? ? ?elif c=='1':
? ? ? ? ?print('1yuan coin number=%d 2yuan coin number=%d 5yuan coin number=%d 10 yuan coin number=%d' %(yiyuan,liangyuan,wuyuan,shiyuan))
?elif n=='p':
? counname=input('請選擇商品:')
? if counname=='1':
? ? if numA1<=0:
? ? ? ? ? ? print('E007:The goods sold out')
? ? else:
? ? ? ? ?m=input('請輸入現(xiàn)金:')
? ? ? ? ?if m=='1':
? ? ? ? ? ? print('S003:Buy success,balance=1')
? ? ? ? ? ? print('E009:Work failure')
? ? ? ? ? ? numA1-=1
? ? ? ? ? ? yiyuan+=1
? ? ? ? ?elif m=='2':
? ? ? ? ? ? print('S003:Buy success,balance=1')
? ? ? ? ? ? numA1-=1
? ? ? ? ? ? liangyuan+=1
? ? ? ? ? ? yiyuan-=1
? ? ? ? ? ? print('找您一元')
? ? ? ? ?elif m=='5':
? ? ? ? ? ? ?if yiyuan*1+liangyuan*2<5:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=1')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?numA1-=1
? ? ? ? ? ? ? ? ?wuyuan+=1
? ? ? ? ? ? ? ? ?liangyuan-=2
? ? ? ? ? ? ? ? ?print('找您4元')
? ? ? ? ?elif m=='10':
? ? ? ? ? ? ?if yiyuan*1+liangyuan*2<10:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=1')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?shiyuan+=1
? ? ? ? ? ? ? ? ?wuyuan-=1
? ? ? ? ? ? ? ? ?liangyuan-=2
? ? ? ? ? ? ? ? ?print('找您9元')
? ? ? ? ?else:
? ? ? ? ? ? ?print('E002:Denomination error')
? elif counname == '2':
? ? ?if numA2 <= 0:
? ? ? ? ?print('E007:The goods sold out')
? ? ?else:
? ? ? ? ?m=input('請輸入現(xiàn)金:')
? ? ? ? ?if m == '1':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '2':
? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ?print('E009:Work failure')
? ? ? ? ? ? ?numA2 -= 1
? ? ? ? ? ? ?liangyuan += 1
? ? ? ? ?elif m == '5':
? ? ? ? ? ? ?if yiyuan * 1 + liangyuan * 2 < 5:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=2')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?wuyuan+=1
? ? ? ? ? ? ? ? ?yiyuan-=1
? ? ? ? ? ? ? ? ?liangyuan-=1
? ? ? ? ? ? ? ? ?print('找您三元')
? ? ? ? ?elif m == '10':
? ? ? ? ? ? ?if yiyuan * 1 + liangyuan * 2 ?< 10:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=2')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?numA2-=1
? ? ? ? ? ? ? ? ?shiyuan+=1
? ? ? ? ? ? ? ? ?wuyuan-=1
? ? ? ? ? ? ? ? ?yiyuan-=1
? ? ? ? ? ? ? ? ?liangyuan-=2
? ? ? ? ? ? ? ? ?print('找您8元')
? ? ? ? ?else:
? ? ? ? ? ? ?print('E002:Denomination error')
? elif counname == '3':
? ? ?if numA3 <= 0:
? ? ? ? ?print('E007:The goods sold out')
? ? ?else:
? ? ? ? ?m=input('請輸入現(xiàn)金:')
? ? ? ? ?if m == '1':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '2':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '5':
? ? ? ? ? ? ?if yiyuan * 1 + liangyuan * 2 < 5:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=3')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?numA3-=1
? ? ? ? ? ? ? ? ?wuyuan += 1
? ? ? ? ? ? ? ? ?liangyuan -= 1
? ? ? ? ? ? ? ? ?print('找您三元')
? ? ? ? ?elif m == '10':
? ? ? ? ? ? ?if yiyuan * 1 + liangyuan * 2 ?< 10:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=3')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?numA3 -= 1
? ? ? ? ? ? ? ? ?shiyuan += 1
? ? ? ? ? ? ? ? ?wuyuan -= 1
? ? ? ? ? ? ? ? ?liangyuan -= 1
? ? ? ? ? ? ? ? ?print('找您7元')
? ? ? ? ?else:
? ? ? ? ? ? ?print('E002:Denomination error')
? elif counname == '4':
? ? ?if numA4 <= 0:
? ? ? ? ?print('E007:The goods sold out')
? ? ?else:
? ? ? ? ?m=input('請輸入現(xiàn)金:')
? ? ? ? ?if m == '1':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '2':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '5':
? ? ? ? ? ? ?if yiyuan * 1 + liangyuan * 2 < 5:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=4')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?numA4 -= 1
? ? ? ? ? ? ? ? ?wuyuan += 1
? ? ? ? ? ? ? ? ?yiyuan -= 1
? ? ? ? ? ? ? ? ?print('找您1元')
? ? ? ? ?elif m == '10':
? ? ? ? ? ? ?if yiyuan * 1 + liangyuan * 2 ?< 10:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=4')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?numA4 -= 1
? ? ? ? ? ? ? ? ?shiyuan += 1
? ? ? ? ? ? ? ? ?wuyuan -= 1
? ? ? ? ? ? ? ? ?yiyuan -= 1
? ? ? ? ? ? ? ? ?print('找您6元')
? ? ? ? ?else:
? ? ? ? ? ? ?print('E002:Denomination error')
? elif counname == '5':
? ? ?if numA5 <= 0:
? ? ? ? ?print('E007:The goods sold out')
? ? ?else:
? ? ? ? ?m=input('請輸入現(xiàn)金:')
? ? ? ? ?if m == '1':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '2':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '5':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '10':
? ? ? ? ? ? ?if yiyuan * 1 + liangyuan * 2 < 10:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=6')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?numA5 -= 1
? ? ? ? ? ? ? ? ?shiyuan += 1
? ? ? ? ? ? ? ? ?liangyuan-=2
? ? ? ? ? ? ? ? ?print('找您4元')
? ? ? ? ?else:
? ? ? ? ? ? ?print('E002:Denomination error')
? elif counname == '6':
? ? ?if numA6 <= 0:
? ? ? ? ?print('E007:The goods sold out')
? ? ?else:
? ? ? ? ?m=input('請輸入現(xiàn)金:')
? ? ? ? ?if m == '1':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '2':
? ? ? ? ? ? ?print('E008:Lack of balance')
? ? ? ? ?elif m == '5':
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?print('E009:Work failure')
? ? ? ? ? ? ? ? ?numA6 -= 1
? ? ? ? ? ? ? ? ?wuyuan+=1
? ? ? ? ?elif m == '10':
? ? ? ? ? ? ?if yiyuan * 1 + liangyuan * 2 < 10:
? ? ? ? ? ? ? ? ?print('E003:Change is not enough,pay fail')
? ? ? ? ? ? ?else:
? ? ? ? ? ? ? ? ?print('S002:Pay success,balance=5')
? ? ? ? ? ? ? ? ?print('S003:Buy success,balance=1')
? ? ? ? ? ? ? ? ?numA6 -= 1
? ? ? ? ? ? ? ? ?shiyuan += 1
? ? ? ? ? ? ? ? ?wuyuan -= 1
? ? ? ? ? ? ? ? ?print('找您5元')
? else:
? ? print('E006:Goods does not exist')
?else:
? ? ? print('操作無效')解釋說明:錢幣盒內只有,一元,兩元,五元,十元的硬幣;顧客也只能投入這些,錢幣盒內一元和兩元的總面額必須大于顧客給的面額,顧客一次只能投一次錢并買一件商品,但可以多次投入多次購買。貨物數量和錢幣數量由管理員初始化設定,管理員也可以查看錢幣及貨物數量,但查看完畢必須退出。如果投入錢幣恰好等于商品價格,則購買成功并提示余額為0,工作失敗,意味后續(xù)無法購買。
r——–初始化,必須初始化后才能執(zhí)行程序
q——-管理員查看錢盒和貨物信息
p——-顧客購買商品及付款及退錢
如圖有:



以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
淺談numpy.where() 的用法和np.argsort()的用法說明
這篇文章主要介紹了淺談numpy.where() 的用法和np.argsort()的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05

