python實(shí)現(xiàn)自動(dòng)售貨機(jī)
本文實(shí)例為大家分享了python實(shí)現(xiàn)自動(dòng)售貨機(jī)的具體代碼,供大家參考,具體內(nèi)容如下
自動(dòng)售貨機(jī)代碼
while True: ?n=input('請(qǐng)選擇操作:') ?if n=='r': ? ?l=input('請(qǐng)輸入貨物數(shù)量:') ? ?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('請(qǐng)輸入硬幣數(shù)量:') ? ?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('會(huì)員管理'.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('請(qǐng)選擇商品:') ? if counname=='1': ? ? if numA1<=0: ? ? ? ? ? ? print('E007:The goods sold out') ? ? else: ? ? ? ? ?m=input('請(qǐng)輸入現(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('請(qǐng)輸入現(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('請(qǐng)輸入現(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('請(qǐng)輸入現(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('請(qǐng)輸入現(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('請(qǐng)輸入現(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('操作無(wú)效')
解釋說(shuō)明:錢幣盒內(nèi)只有,一元,兩元,五元,十元的硬幣;顧客也只能投入這些,錢幣盒內(nèi)一元和兩元的總面額必須大于顧客給的面額,顧客一次只能投一次錢并買一件商品,但可以多次投入多次購(gòu)買。貨物數(shù)量和錢幣數(shù)量由管理員初始化設(shè)定,管理員也可以查看錢幣及貨物數(shù)量,但查看完畢必須退出。如果投入錢幣恰好等于商品價(jià)格,則購(gòu)買成功并提示余額為0,工作失敗,意味后續(xù)無(wú)法購(gòu)買。
r——–初始化,必須初始化后才能執(zhí)行程序
q——-管理員查看錢盒和貨物信息
p——-顧客購(gòu)買商品及付款及退錢
如圖有:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
對(duì)Python 獲取類的成員變量及臨時(shí)變量的方法詳解
今天小編就為大家分享一篇對(duì)Python 獲取類的成員變量及臨時(shí)變量的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01詳解python的幾種標(biāo)準(zhǔn)輸出重定向方式
這篇文章是基于Python2.7版本,介紹常見(jiàn)的幾種標(biāo)準(zhǔn)輸出(stdout)重定向方式。顯然,這些方式也適用于標(biāo)準(zhǔn)錯(cuò)誤重定向。學(xué)習(xí)python的小伙伴們可以參考借鑒。2016-08-08Python matplotlib實(shí)用繪圖技巧匯總
這篇文章主要給大家介紹了關(guān)于Python matplotlib實(shí)用繪圖技巧的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05淺談numpy.where() 的用法和np.argsort()的用法說(shuō)明
這篇文章主要介紹了淺談numpy.where() 的用法和np.argsort()的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05python實(shí)現(xiàn)鬧鐘定時(shí)播放音樂(lè)功能
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)鬧鐘定時(shí)播放音樂(lè)功能,播放wav格式的音頻,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01關(guān)于pycharm中pip版本10.0無(wú)法使用的解決辦法
近期在利用 pycharm 安裝第三方庫(kù)時(shí)會(huì)提示 pip 不是最新版本, 因此對(duì) pip 進(jìn)行更新,但是生成最新版本之后, pip 中由于缺少 main 函數(shù),導(dǎo)致在 pycharm 中無(wú)法自動(dòng)安裝第三方庫(kù)。本文就介紹一下如何解決2019-10-10