Python基礎---スーパーで果物を買うウィジェット


スーパーで果物を买います.自分のすべてのお金を入力します.(2)展示商品の番号、名称及び価格.(3)購入する商品の番号を入力します.(4)購入する商品の数を入力します.(5)カートに購入した果物の名称とそれに対応する数量と残金を表示する.(6)シーケンス番号の入力に誤りがある場合は,ユーザに再入力を促す.(7)お金が足りない場合はユーザにお金が足りないことを提示し,プログラムを終了する.
考え方は以下の通りである.
」「1.お金を入力
ifお金は数字です
に合格
    2. 展示商品リスト(forループ、列挙、formatメソッド)
商品番号を連続的に入力するため、whileサイクル
        3.ユーザーに商品番号の入力を促す
        4.商品番号が数字で構成されているかどうかを判断する
if商品番号は数字です
            5.商品番号の範囲を判断する
if入力した商品番号は範囲内
                6.ユーザーに数量の入力を求める
                7.数量が数字かどうかを判断する
if数量は数字です
                      8.総額を計算する
                      9.商品の総額がユーザーが入力した金額より小さいかどうかを判断する
if商品の総価格はユーザーのお金より小さい
                           10.カートの追加
ifカートには商品がございません
商品と数量elseを追加
ユーザーの残高を表示する数量の追加
                       else
残高不足
                           break  
                 else
数量は数値ではありません
            else
商品の範囲が正しくない
        else
商品番号が不正である
Elseが入力したお金は合法ではありません
"""
コードは次のとおりです.
lst = [{'name':'  ','price': 3.5}, {'name':'  ','price': 2}, {'name':'   ','price':6}]
che={}
gw=input('           :')
if gw.isdigit():
    money=int(gw)
    for index,dic in enumerate(lst,start=1):
        print('     :{},  :{},  :{}'.format(index,dic['name'],dic['price']))
    while True:
        xh = input('            :')
        if xh.isdigit():
            xh2 = int(xh)
            if xh2 > 0 and xh2 <= len(lst):
                sl = input('            :')
                if sl.isdigit():
                    sl2 = int(sl)
                    jia = lst[xh2 - 1]['price']
                    total_money = jia * sl2
                    if total_money <= money:
                        spm = lst[xh2 - 1]['name']
                        zsp = che.get(spm)
                        if zsp:
                            '''           ,      '''
                            che[spm] += sl2
                            print(che)
                        else:
                            '''         '''
                            che[spm] = sl2
                            print(che)
                        money=money-total_money
                        print('       :',money)
                    else:
                        print(' ,    。。。')
                        break
                else:
                    print('      , ,     ')
            else:
                print('     , ,     ')
        else:
            print('         ')
else:
    print('           ')

結果は次のとおりです.
           :100
     :1,  :  ,  :3.5
     :2,  :  ,  :2
     :3,  :   ,  :6
            :Q
         
            :11
     , ,     
            :A
         
            :1
            :10
{'  ': 10}
       : 65.0
            :2
            :10
{'  ': 10, '  ': 10}
       : 45.0
            :3
            :10
 ,    。。。