Python購物車程序(無需任何模塊女责,邏輯判斷腦洞大開)

程序需求:
1. 啟動程序后创译,讓用戶輸入工資,然后打印商品列表
2. 允許用戶根據(jù)商品編號購買商品
3. 用戶選擇商品后刷喜,檢測余額是否夠互订,夠就直接扣款,不夠就提醒
4. 可隨時退出氮墨,退出時吐葵,打印已購買商品和余額

一、入門版

#!/usr/bin/env python
#Auther:Lewis
#Email:devopslewis@outlook.com
product_list = [
    ('Mac Book Pro',13888),
    ('Iphone7 PLUS',7000),
    ('Mac Book Air',6388),
    ('IWATCH',4000)
]
shopping_list = []
print("歡迎來到Python購物程序")
while True:
    salary = input("請輸入您的工資:")
    if salary.isdigit()>0:
        salary = int(salary)
        break
    else:
        print("工資必須是整數(shù)并且大于0")
        continue
while True:
    print('編號 產(chǎn)品名稱\t\t價格')
    for e,i in enumerate(product_list):
        print(e,'\t',i[0],'\t',i[1],'元')
    choose = input("請輸入您想要購買產(chǎn)品編號(按Q或者q退出):")
    if choose.strip().isdigit():
        choose = int(choose)

        if choose <= len(product_list) and choose >= 0:
            sp = product_list[choose]
            if sp[1] > salary:
                print("您的余額不足猛铅,請重新輸入工資凤藏,在虛擬世界獲得滿足揖庄。")
            else:
                shopping_list.append(product_list[choose])
                salary -= sp[1]
                print("您購買了",sp[0])
                print('您的余額還剩%d'% salary)
        else:
            print("沒有這個編號,請重新輸入")


    elif choose.strip() == 'Q' or 'q':
        a=1
        if shopping_list:
            for i in shopping_list:
                print(a,'.您購買了:商品名稱:',i[0],'商品價格:',i[1])
                a+=1
            print("您剩余工資為:%d" % salary)
            print('您已退出!')
            exit()
        else:
            print("您沒有購買任何東西疙筹!已經(jīng)退出購物車")
            exit()
    else:
        print("請輸入正確的選項(xiàng)")

二禁炒、進(jìn)階版

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
'''
需求:
    1. 啟動程序后,讓用戶輸入工資暴备,然后打印商品列表
    2. 允許用戶根據(jù)商品編號購買商品
    3. 用戶選擇商品后们豌,檢測余額是否夠阁危,夠就直接扣款汰瘫,不夠就提醒 
    4. 可隨時退出擂煞,退出時对省,打印已購買商品和余額

'''


product = {'1' : ['物品A',826],
           '2' : ['物品B',658],
           '3' : ['物品C',456],
           '4' : ['物品D',210]}

#列出商品列表函數(shù)
def product_list():    
    print("\n商品列表:")
    print("編號     物品    價格")
    for k,v in sorted(product.items()):
        f = 0
        for i in v:
            if (not f):
                p_name = i
                f = 1
        print("%2s %8s %8s" % (k,p_name,i))

#選擇購買函數(shù)
def buy(salary):
    num = input("\n請輸入欲購買的產(chǎn)品編號:(按q退出)")
    flag = 0 #flag為1表示編號有效,為0表示編號無效
    while 1:
        if (not num.isdigit() and (num == 'Q' or num == 'q')):#判斷輸入的是商品編號還是退出符
            return num
        else:
            for k,v in product.items():#判斷輸入的編號是否在列表內(nèi)
                if (k == num):
                    flag = 1
                    for x in v:
                        price = x #記錄下編號對應(yīng)的價格
                    break
            if (not flag):
                num = input("編號輸入有誤哀托,請重輸(按q退出):")
                flag = 0
            if (flag): #判斷余額是否充足               
                if (price > int(salary)):
                    num = input("您的余額不足仓手!請重輸(按q退出):")
                    flag = 0
                else:
                    break
    return num

#添加購物車函數(shù)
def add(salary):
    buy_list = []
    buy_dict = {}
    while int(salary) > 0:
        num = buy(salary)
        if (not num.isdigit() and (num == 'Q' or num == 'q')):#判斷輸入的是商品編號還是退出符
            print("已成功退出玻淑!")
            print("\n您此次購買的產(chǎn)品列表為:")
            for k,v in buy_dict.items():
                print("%2s %8s" % (k, v)) #輸出購買清單
            print("\n您的余額為:%s" % salary) #輸出余額
            break
        else:
            buy_list.append(num) #往購買清單中添加商品
            n = 0
            for i in buy_list:
                f = 0
                for k,v in product.items():
                    if (i == k):
                        for x in v:
                            if (not f):
                                p_name = x
                                f = 1
                        n = n + 1
                        buy_dict.setdefault(n, p_name)                       
            salary = int(salary) - x
            print("\n您的余額為: %s" % salary)
    return buy_dict
        
#主函數(shù)開始
salary = input("請輸入您的工資:")
while 1:
    if ((not salary.isdigit()) or (int(salary) <= 0)):#判斷工資是否是數(shù)字并且大于0
        salary = input("輸入工資有誤补履,請重輸:")
    else:
        break
    
product_list()
add(salary)

<b>簡單的小程序,閑暇時的練習(xí)題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贬蛙,一起剝皮案震驚了整個濱河市谚攒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌溺职,老刑警劉巖位喂,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塑崖,死亡現(xiàn)場離奇詭異,居然都是意外死亡规婆,警方通過查閱死者的電腦和手機(jī)蝉稳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門耘戚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來操漠,“玉大人,你說我怎么就攤上這事撞秋∠桑” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵舅列,是天一觀的道長赵抢。 經(jīng)常有香客問我,道長宠叼,這世上最難降的妖魔是什么其爵? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任摩渺,我火速辦了婚禮,結(jié)果婚禮上摇幻,老公的妹妹穿的比我還像新娘。我一直安慰自己枉侧,他們只是感情好狂芋,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布帜矾。 她就那樣靜靜地躺著翼虫,像睡著了一般珍剑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上招拙,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天迫像,我揣著相機(jī)與錄音瞳遍,去河邊找鬼。 笑死由缆,一個胖子當(dāng)著我的面吹牛猾蒂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肚菠,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼蚊逢,長吁一口氣:“原來是場噩夢啊……” “哼层扶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起烙荷,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤镜会,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后终抽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戳表,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年昼伴,在試婚紗的時候發(fā)現(xiàn)自己被綠了匾旭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡亩码,死狀恐怖季率,靈堂內(nèi)的尸體忽然破棺而出描沟,到底是詐尸還是另有隱情飒泻,我是刑警寧澤鞭光,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站泞遗,受9級特大地震影響惰许,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜史辙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一汹买、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧聊倔,春花似錦晦毙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至甸陌,卻和暖如春须揣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钱豁。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工耻卡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人牲尺。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓卵酪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親秸谢。 傳聞我的和親對象是個殘疾皇子凛澎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 需求 用戶登陸,第一次登陸估蹄,要求輸入工資塑煎,商品信息從文件里讀取,購買商品臭蚁,扣除余額最铁,退出之后,下一次登陸仍然記住余...
    houyizhong閱讀 533評論 0 0
  • CREATE TABLE IF NOT EXISTS ecs_order_info (order_id mediu...
    cookie口閱讀 15,673評論 0 16
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,737評論 25 707
  • 喝醉了酒我就想睡覺垮兑, 夢中的景象常常比晏席上熱鬧冷尉。 請客送禮其實(shí)就是做夢, 人情冷暖演繹著夢幻的奇妙系枪。 握手言歡感...
    曹煥甫閱讀 322評論 2 1
  • 尹月這次語文考試考了81.5雀哨,她自己很不滿意。 我一看,有一道錯雾棺,是一道選擇題膊夹,一只大雁直往下掉的“直”,問是什么...
    堅(jiān)果姐姐閱讀 521評論 10 2