python第二周購物車小程式

来源:http://www.cnblogs.com/ByronHe/archive/2017/04/17/6684308.html
-Advertisement-
Play Games

一、模塊的認識。 模塊:指的是把預先寫好的內容封裝成一個模塊,可用時直接調用,模塊又稱為庫 模塊又稱為標準庫和第三方庫。 標準庫,預設安裝好官方所公佈的庫 C:\Python35\Lib 第三方庫,是從網上下載下來需要安裝上去。C:\Python35\Lib\site-packages getpas ...


 一、模塊的認識。
      
模塊:指的是把預先寫好的內容封裝成一個模塊,可用時直接調用,模塊又稱為庫
                模塊又稱為標準庫和第三方庫。
                標準庫,預設安裝好官方所公佈的庫 C:\Python35\Lib
                第三方庫,是從網上下載下來需要安裝上去。
C:\Python35\Lib\site-packages
          getpass模塊    用戶輸入密碼為加密。
           sys.path  列印當前變數
           sys.argv   列印絕對路徑。CMD下模擬運行 後面加1 2 3
           print(sys.argv[2]) 調用上面輸出的第2 電腦計算都是從0開始。輸出的時候可單獨取上面一數字。
          
            os.system  調用系統
            os.popen  輸出結果

import sys
print(sys.path) #列印變數。
print(sys.argv) #列印當前絕對路徑 print(sys.argv) 1 2 3


  os

import os
cmd_os = os.system("dir") #顯示結果,但不保存結果。
cmd_os = os.popen("dir").read() #顯示結果只是先寄存到記憶體器里,用.read可讀出來。
print("--->",cmd_os) #"--->"標記的意思。
os .mkdir("new_dir")

二、pyc是什麼?

  pyc存放在第三方庫文件下
       1、 Python是一門解釋型語言。
       2、電腦不能夠識別高級語言。C++ JAVA編譯型語言。
             編譯型在執行前,通過編譯器對程式執行一個編譯過程,轉變成機器語言。運行時就不需要翻譯,直接執行,速度快效率高。
            解釋型語言沒有編譯過程,而在運行的時候,通過解釋器對程式逐行作出解釋,然後直接運行,典型的是Ruby,Python.
           java先編譯後解釋,會預編譯。
         3、Python到底是什麼?
               Python先解釋後編譯的語言。
         4、python的運行過程

 

三、數據類型初識

  1、int(整型)

  在32位機器上,整數的位數為32位,取值範圍為-2**31~2**31-1,即-2147483648~2147483647
  在64位系統上,整數的位數為64位,取值範圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807 long(長整型)
  跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由於機器記憶體有限,我們使用的長整數數值不可能無限大。
  註意,自從Python2.2起,如果整數發生溢出,Python會自動將整數數據轉換為長整數,所以如今在長整數數據後面不加字母L也不會導致嚴重後果了。

      2、布爾值

        真或假 

    True  false 

    1 或  0

  3、編碼轉換

  msg = "你好!!!"

  print(msg.encode("utf-8").decode())  先轉換UTF-8後再轉回。

四、運算符

  算數運算符:

  

比較運算:

賦值運算:

邏輯運算:

成員運算:

身份運算:

位運算:

 

五、三元運算

  >>> a,b,c = 1,3,5
  >>> d = a if a >b else c
  >>> d
  5
  >>> d = a if a <b else c
  >>> d
  1
  >>>

六、進位

  二進位,01

  八進位,01234567

  十進位,0123456789

  十六進位,0123456789ABCDEF  二進位到16進位轉換http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1

七、列表

name = ["4laotou","#xiaoming","lishi","zhangfei"] #註意:列表中的字元是需要中括弧,並且雙引號逗號隔開

切片:
print(name[:2]) #切片 取前兩個 :號前面沒有輸入值代表從零開始。
print(name[-2:]) #切片 取後兩個值。

附加 .append:
name.append("xiaoli") #附加一個列表內容。

插入 .insert:
name.insert(1,"lanlou") #插入一個列表值,並把當前列表向後移。
name.insert(3,"wangbing") #插入一個列表值,並把當前列表的值向後移。

重定值:
name[2] = "shiji" #重新賦一個值改名稱。

刪除 .remove:
name.remove("lishi") #刪除方法1

del name[3] #刪除方法2

name .pop(2) #刪除方法3

排序 .sort:
name.sort() #排序如有數字開頭和特殊符號開頭,不同的情況有不同的排序。

擴展模塊:
name2 =["1","2","3"]
name.extend(name2)
print(name,name2)

 

查找索引 index:
print(name.index("lishi")) #查找索引。
rint(name[(name.index("lishi"))]) #查找到之後再列印出來。

統計 .count:
print(name.count("zhangshang")) #查詢表裡有幾個zhanghsan

 

列表:

 

name = ["laotou","xiaoming",["lishi","zhangfei"],"pengqing"]

name2 = copy.copy() #潛拷貝

name2 = copy.deepcopy(name) #深拷貝,可以完全獨立的克隆!

print(name)
print(name2)

name[1] = "小明"
name[2][0] = "李四"
print(name)

 []列表.[]里的數據,數據類型永遠是列表.
{}花括弧,通過.format動作.逐一將{}里內容賦值
()執行動作時,都要用()

 

購物車作業要求:

用戶打開程式

用戶輸入薪資

列印商品列表

用戶選擇商品

判斷輸入的是否是商品存在的列表

判斷餘額是否足夠

加入購物車

減商品金額

用戶可隨時退出

列印購買的商品列表

 commodity = [
("xiaomi book Air",4500),
("cuizhi phone",3800),
("HuaWei book",5800),
("book",120),
("coffee",32),
]
shoping_list = [] #此處存的為已購買的商品列表!
salary = input("您的薪資多少?") #輸入薪資
if salary.isdigit(): #對上一條輸入的判斷是否是數字類型
salary = int(salary) #如果不是需要用int來轉換類型
while True:
for index,list in enumerate(commodity): #index,list前面指的是查詢下標,後面的list指的是數據。
# for list in (commdity):
# print(commodity.index(list),list) 取下標來找商品列表,此種方法,效率比較低!
print(index,list)
select = input("您要買個什麼玩意!請輸入序號:") #輸處要選擇的商品序號
if select.isdigit(): # .isdigit()判斷是否是整數,新的知識點。
select = int(select) #對整數進行整型。
if select < len(commodity) and select >=0: #判斷輸入的值是否在商品列表的下標序號,其中len判斷列表長度並返回數字。
number = commodity[select] #通過下標 把商品取出來
if number[1] < salary: #判斷所選商品價格是否小於薪資
shoping_list.append(number) #加入購物車列表
salary -= number[1] #薪資減去商品
print("已經購買了[%s],餘額還有[%s]"%(select,salary)) #列印已購買的商品列表和餘額。
else:
print("你都買錢了還買個屁啊!")
else:
print("您選擇的[%s]商品不存在"%select)
elif select == "q": #判斷用戶選擇列表時是否為字元q
print("----- shoping list -----")
for s in shoping_list: #迴圈商品列表。
print(s)
print("你的餘額還有:[%s]"%salary) #列印餘額。
exit()
else:
print("invalid option")

 


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

-Advertisement-
Play Games
更多相關文章
  • 本節,我們來探討Java中的定時任務Timer和ScheduledExecutorService,它們的基本用法都是比較簡單的,但如果對它們缺乏足夠的瞭解,則很容易墜入其中的一些坑,都有哪些坑呢? ...
  • struts編寫文件下載的代碼 配置struts.xml文件 創建Action類 jsp代碼 在運行中可能遇到的錯誤!!!!! 1、下載文件的文件名顯示成xxx.action或者不是下載文件本來的文件名 可能是獲取文件名的getFileName方法沒有大寫 可能是getFileName方法直接返回f ...
  • web.xml的作用: 1.配置JSP,Servlet,Listener,Filter,標簽庫,JSP屬性 2.配置JAAS授權認證,資源應用,web首頁設置JSP的本質是Servlet(web應用中每個JSP頁面都會由Servlet容器生成對應的Servlet)JSP包括靜態的html頁面代碼和動 ...
  • 訪問控制 public(公開的):可以在類中、子類中、類外訪問。 protected(受保護的):只能在類本身及子類中訪問。 private(私有的):只能在聲明他們的類中進行訪問,私有的類成員不能被子類或者這個類的對象實例直接訪問。 抽象類和方法 在繼承概念被應用在一些場景中,創建一個父類的實例將 ...
  • 下麵說的線性表主要是線性鏈表,這裡主要將雙向鏈表,單向鏈表迴圈鏈表等是類似的,不再累述。如果發現錯誤,還望不吝指正。 定義 線性表(linear list)是數據結構的一種,一個線性表是n個具有相同特性的數據元素的有限序列。數據元素是一個抽象的符號,其具體含義在不同的情況下一般不同。 在稍複雜的線性 ...
  • 如何個判斷集合中是否存在某個元素——contains() 1.List的contains(obj)方法 實際上,List調用contains(Object obj)方法時,會遍歷List中的每一個元素,然後再調用每個元素的equals()方法去跟contains()方法中的參數進行比較,如果有一個元 ...
  • 問題描述:一進程剛獲得三個主存塊的使用權,若該進程訪問頁面的次序是1,2,3,4,1,2,5,1,2,3,4,5。當採用LRU演算法時,發生的缺頁次數是多少? Hint:LRU(Least Recently Used)意思是近期最少使用。 這個演算法常用於頁面置換演算法中。當我們新要訪問的頁面不在主存中時 ...
  • 使用toPlainString意為返回不不待指數的字元串 與toString區別當數據的位數為0的時候,使用toString就會出現無法正的的轉化的問題。 所以在處理科學計數法是不適用toString而是toPlainString,避免偶發錯誤發生。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...