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-錢(qián)盒""")
? ? ?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ō)明:錢(qián)幣盒內(nèi)只有,一元,兩元,五元,十元的硬幣;顧客也只能投入這些,錢(qián)幣盒內(nèi)一元和兩元的總面額必須大于顧客給的面額,顧客一次只能投一次錢(qián)并買(mǎi)一件商品,但可以多次投入多次購(gòu)買(mǎi)。貨物數(shù)量和錢(qián)幣數(shù)量由管理員初始化設(shè)定,管理員也可以查看錢(qián)幣及貨物數(shù)量,但查看完畢必須退出。如果投入錢(qián)幣恰好等于商品價(jià)格,則購(gòu)買(mǎi)成功并提示余額為0,工作失敗,意味后續(xù)無(wú)法購(gòu)買(mǎi)。
r——–初始化,必須初始化后才能執(zhí)行程序
q——-管理員查看錢(qián)盒和貨物信息
p——-顧客購(gòu)買(mǎi)商品及付款及退錢(qián)
如圖有:



以上就是本文的全部?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-08
Python 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-05
python實(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

