Python 購物車----之用戶部分

来源:http://www.cnblogs.com/frankb/archive/2017/01/10/6271070.html
-Advertisement-
Play Games

知識點: 文件讀,寫操作,if 判斷, for 迴圈 salary = input("輸入你的工資:") bought_list = [] product_list = {} with open("product_list","r",encoding="utf-8") as f1: for item ...


知識點: 文件讀,寫操作,if 判斷, for 迴圈

salary = input("輸入你的工資:")
bought_list = []
product_list = {}

with open("product_list","r",encoding="utf-8") as f1:
    for item in f1:
        p_name,p_price = item.strip().split(':')
        product_list[p_name]=int(p_price)
print(product_list)

if salary.isdigit():
    salary = int(salary)
    while True:
        user_choice = input("please input product which you want:")
        if user_choice in product_list.keys():
            if product_list[user_choice] <= salary:
                bought_list.append(user_choice) #增加列表的元素
                salary = salary - product_list[user_choice]
                print("Had bought  [\033[32;1m%s\033[0m], and your balance is \033[31;1m%s\033[0m"%(user_choice,salary))
                print(bought_list)
            else:
                print("Your balance is less than product's price")
                continue
        elif user_choice is 'q':
            with open('bought.txt','w+',encoding='utf-8') as f2:
                for goods in bought_list:
                    print(goods,file=f2)
            exit(print("You had bought  %s goods, and your balance is %s"%(bought_list, salary)))

        else:
            print("The good had been sold out")
View Code

測試:

輸入你的工資:15000
{'Python': 20, 'Iphone': 5288, 'Iwatch': 3288, 'Bike': 2400, 'Mac pro': 12888}
please input product which you want:Python
Had bought  [Python], and your balance is 14980
['Python']
please input product which you want:Bike
Had bought  [Bike], and your balance is 12580
['Python', 'Bike']
please input product which you want:Mac pro
Your balance is less than product's price
please input product which you want:Iwatch
Had bought  [Iwatch], and your balance is 9292
['Python', 'Bike', 'Iwatch']
please input product which you want:q
You had bought  ['Python', 'Bike', 'Iwatch'] goods, and your balance is 9292
View Code

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 支付寶現在作為我們日常生活中最常用的應用之一,已經成為了人們的虛擬錢包。但是最近,有人發現了支付寶的一個漏洞,陌生人有1/5的幾率可以登陸你的支付寶,熟人可以100%登陸!一起來看看吧! 這個漏洞源於支付寶的一個忘記密碼的功能。原理為登錄手機賬號——忘記密碼——手機不在身邊——淘寶買過的東西9張圖片 ...
  • 專業定製三級分銷,微分銷網站系統開發建設無限級分銷三級分潤: 通過移動社交平臺(微信、微博、QQ空間),每個分銷商都可以無限級的發展自己的下屬分銷商,訂單成交後相關聯的上三級分銷商獲取自定的分潤。 自定義分紅規則 在自定義時間段完成銷售額、發展多少下屬分銷商等各項指標自定義分紅規則,獨特的自定義分紅 ...
  • 今天博客中就來聊一下Perfect框架的靜態文件的添加與訪問,路由的配置以及表單的提交。雖然官網上有聊靜態文件的訪問的部分,但是在使用Perfect框架來訪問靜態文件時還是有些點需要註意的,這些關鍵點在其官方文檔上並未提出。今天我們要做的事情就是通過瀏覽器訪問靜態文件,然後在靜態文件中使用form表 ...
  • 20170110問題解析請點擊今日問題下方的“【Java每日一題】20170111”查看(問題解析在公眾號首發,公眾號ID:weknow619) 今日問題: 請問主程式有無編譯錯誤?(點擊以下“【Java每日一題】20170111”查看20170110問題解析) 題目原發佈於公眾號、簡書:【Java ...
  • 進程相關的概念 程式與進程 程式,是指編譯好的二進位文件,在磁碟上,不占用系統資源(CPU、記憶體、打開的文件、設備、鎖等等)。 進程,是一個抽象的概念,與操作系統原理聯繫緊密。進程是活躍的程式,占用系統資源。在記憶體中執行(程式運行起來,產生一個進程)。 程式 --> 劇本(紙),進程 -->戲(舞臺 ...
  • 通過前面幾章,我們已經掌握了一些基本的開發知識,但是代碼結構比較簡單,缺乏統一的標準,模塊化,也缺乏統一的異常處理,這一章我們主要來學習如何封裝一個輕量級的MVC框架,規範以及簡化開發,並且提供類似php所見即所得的能力 統一入口 通常來說一個mvc框架會有一個統一的入口點,類似於spring mv ...
  • 最近用springmvc spring mybatis框架寫程式,請求成功並獲得數據,唯獨css樣式不能載入,但路徑正確,css文件編碼也是utf-8,用火狐debug總是顯示未請求到(都快懷疑自己寫路徑有問題了),今天終於搞定了。發現三種解決方式,但有一個我不知道什麼原因用不了。 方案一(個人認為 ...
  • Java 中的 static 使用之靜態方法 Java 中的 static 使用之靜態方法 1、 靜態方法中可以直接調用同類中的靜態成員,但不能直接調用非靜態成員。如: 如果希望在靜態方法中調用非靜態變數,可以通過創建類的對象,然後通過對象來訪問非靜態變數。如: 2、 在普通成員方法中,則可以直接訪 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...