python類的基礎運用:python十點半遊戲學習筆記

十點半遊戲是寫好了,可是老師又讓我們用類的方式改寫,這可真是……
只能往下寫了!

 

  • 最近在學習python中類的知識,感覺難度挺高的,稍微理解了一點點
  • 而老師又佈置了作業,剛好也有同學問我咋寫
  • 我就隨手寫了點東西放在這兒
  •  

    首先我寫了這麼一段代碼,創建一副撲克牌

    撲克牌是很普通的,有着兩個屬性:牌面和標誌

    運行後是創建了個cards列表,在下圖裏我們就可以看見

    cards裏有52張牌,這裏的每張“牌”都是一個對象

    我隨便打開第50號對象,裏面是這樣的

    裏面出現了兩個屬性,牌面和標誌

    都是我們在Card類中用__init__方法定義過的

     

    回頭來看我這段代碼

    紅框裏的代碼可以創建對象

    也就是創建Card類對應的實例,cards列表中的每張牌都由上面的這句話創建

     

    如果要取出某張牌的屬性,按下面這樣做

    這裏分別取出了第1張牌的兩個屬性

     

    順便展示一個比較炫酷的打印方式:.format

    不錯吧,很有python的感覺

     

    要打印前十張牌,可以按下面的方法做

    都出來了

     

    然後我想了想,兩個屬性可能還不夠

    大概還需要一個value屬性記錄牌在遊戲中的數值大小

    於是我寫了個函數 calculate 用於每張牌的計算點數

    這裏用到了字典

    在創建每個撲克牌對象的時候,我們都可以讓它知道自己的值是多少

     

     

    嗯,可以看到新的屬性產生了

    隨便打開張牌,這是張黑桃A,數值大小是1

     

    再來一個炫酷的打印

    牌和數值都一起出來了,很有python的感覺對吧

    這裏也用到了.format(),只是截圖沒截到

     

    好像還不夠帶勁

    我們再編寫一個有趣的代碼

     

     

    比如這樣定義一個玩家類,然後我們創建玩家類的實例,也就是創建四個玩家對象

    就像下面看到的這樣,我創建了一個玩家列表,列表裏裝着四個玩家

     

    我們可以打開玩家

    哈,好極了

     

    不過我們可以注意到,每個玩家的手(hand)都是空的

    他們一張牌也沒有,還玩毛呢??

     

    不着急,現在給他們牌吧

     

    ↑上面這個[ ]是他們空空的手(hand)

     

    現在我們在下面加點東西

     

    好,給牌

    每個玩家手裏都握着一張牌了,歐耶

     

    現在,讓我們繼續

    打開“你媽”的hand

    發現裏面有張黑桃2

    哈,okok了

     

     

    還是有些無聊,那就再加點料

     

    我又寫了一段代碼

     

    讓我們運行一下

    嗯?
    就這樣沒了?有鬼用啊,變量資源管理也是空的嘛

     

    然而並不是這樣的

    我們在控制檯輸入locals(),控制檯出現了下面的東西

    什麼?程序已經幫我創建好了5個對象>??

    原來是這樣啊,我們呼叫一下這幾個對象吧

     

    欸,居然真的可以呼叫出來

    雖然我們這個類中只給了Num這個屬性,但是你可以自己加嘛

     

    不過也說明這幾個對象是真實存在的!

     

    太好了,我有對象了!!

     

    • 現在回顧下這篇學習筆記主要講了什麼

     

    • python類__init__方法的使用
    • for循環創建撲克牌
    • 列表(數組)的操作和使用
    • 字典的使用
    • 更多

    先寫到這了,學習還在繼續……

    原創

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章