#Python讀書(shū)會(huì)第2次總結(jié)#

《Python編程從入門(mén)到實(shí)踐》6-9章總結(jié)

作者 Eric Matthes 著, 袁國(guó)忠 譯

中國(guó)工信出版集團(tuán),人民郵電出版社

章節(jié)內(nèi)容

  • 字典
  • 用戶輸入+while循環(huán)
  • 函數(shù)

ch6 字典

定義

  • {},鍵值對(duì)

使用字典

alien_0={'color':'green','points':5}
  • 添加
  • 刪除:del

遍歷字典

for key,value in user_0.items():
    print(key)
    print(value)

  • 排序: sorted
  • .keys()
  • .values()

嵌套字典

  • 字典 in 列表
alien_0={'color':'green','points':5}    
alien_1={'color':'red','points':50}
alien_2={'color':'yellow','points':10}
aliens = [alien_0,alien_1,alien_2]

for alien in aliens:
    print(alien)
  • 列表 in 字典

  • 字典 in 字典

不推薦這種方式,可以考慮 字典in列表 進(jìn)行使用

ch7 用戶輸入和while循環(huán)

input vs raw_input()

  • input("hint by words")
  • int() # enter number
  • 求余%

while

  • 退出條件 while condition
  • break
  • continue
  • ctrl+c

千萬(wàn)注意循環(huán)跳出條件,單元測(cè)試的主要問(wèn)題點(diǎn)

while 處理列表和字典

  • for vs while
  • for 會(huì)預(yù)制循環(huán)條件,不應(yīng)修改循環(huán)對(duì)象
  • while 用于調(diào)整循環(huán)遍歷對(duì)象時(shí)的循環(huán)處理

while 刪除指定元素

  • []
pets = ['dog','cat,'dog','goldfish','cat','rabbit']
while 'cat' in pets:
    pets.remove('cat')

ch8 函數(shù)

def functionname(var):
    code_body

functionname(in_var)

參數(shù)

  • 形參
  • 實(shí)參

實(shí)參就是形參的取值,多數(shù)人不區(qū)分兩者

參數(shù)傳遞

  • 位置實(shí)參

注意傳遞順序

  • 關(guān)鍵字實(shí)參

傳遞時(shí)指明形參與實(shí)參的對(duì)應(yīng)

  • 默認(rèn)值
  • 形參未賦值時(shí)的默認(rèn)值
  • 默認(rèn)值要往后放,不能前面有默認(rèn)值,而后面沒(méi)有,順序賦值

返回值

  • return
  • 返回字典

入?yún)榱斜?/h3>
  • 類似于C的數(shù)組、指針
  • 需要禁止修改入?yún)?,將列表用切片方式傳入副?/li>
  • 主要考慮點(diǎn)是效率:效率會(huì)因?yàn)閮?nèi)存使用而增加時(shí)間成本
  • 入?yún)樵M,可實(shí)現(xiàn)可變參數(shù)的輸入(量的變化)
  • 位置實(shí)參與任意實(shí)參結(jié)合

即位置實(shí)參與元組參數(shù)的結(jié)合,注意默認(rèn)順序賦值的原因,需要將變參(任意實(shí)參)放在最后一個(gè)形參

  • 任意數(shù)量的關(guān)鍵字實(shí)參
def fun(invar1,**invar2)

引入模塊

函數(shù)存儲(chǔ)在模塊

存儲(chǔ)為a.py
新的b.py中調(diào)用模塊a

import a
import module_name
module_name.function_name()
from module_name import function_name
from module_name import fun1, fun2, fun3
  • as 別名
import module_name as newmodulename
  • 導(dǎo)入所有:from module_name import *

函數(shù)編寫(xiě)指南

  • 小寫(xiě)+下劃線,避免大寫(xiě)
  • 形參等號(hào)兩邊不要留空格
  • 相鄰函數(shù)的定義,隔兩空行

ch9 類 class

關(guān)鍵詞: 面向?qū)ο?,?shí)例

創(chuàng)建和使用類

命名類首字母大寫(xiě)

全部小寫(xiě)的,是函數(shù)和變量

__init__()
if __name__ == '__main__':
#測(cè)試使用
  • 注意self的使用,外部使用類時(shí),self參數(shù)相當(dāng)于自動(dòng)隱藏

使用類

class Car():
    def __init__(self,make,model,year):
        self.make = make
        self.model = model
        self.year = year
    
    def get_descriptive_name(self):
        long_name = str(self.year)+' ' + self.make + ' ' + self.model
        return long_name.title()
    
    
#%%    
if __name__ == '__main__':
    my_new_car = Car('audi','a4',2016)
    print(my_new_car.get_descriptive_name())
    
  • 可以設(shè)置方法來(lái)操作屬性值
  • 但是要注意到:有權(quán)限訪問(wèn)到程序的人,都可以直接訪問(wèn)屬性值并進(jìn)行修改。因此,需要注意細(xì)節(jié),控制好訪問(wèn)權(quán)限

繼承

  • super.init
  • 父類、子類需在一個(gè)文件內(nèi)
  • import 也是可以引入的,后文中有專門(mén)的類導(dǎo)入
import BookRC as bc


class EECar(bc.Car):    
    def __init__(self,make,model,year):
        super().__init__(make,model,year)
        
        
if __name__=="__main__":
    neweecar = EECar('ford','yibo',2014)
    print(neweecar.get_descriptive_name())
  • 重寫(xiě)父類的方法名

同名重寫(xiě)即可,根據(jù)函數(shù)作用域即可實(shí)現(xiàn)子類使用新的方法,不影響父類的同名方法

  • 實(shí)例作為屬性

需要遞進(jìn).進(jìn)行屬性訪問(wèn)

類的導(dǎo)入

from module_file_name import Class_name
# 關(guān)于用戶定義的類、函數(shù),盡量定義清晰,準(zhǔn)確定義與引用
  • 導(dǎo)入類與導(dǎo)入模塊的函數(shù)一樣

標(biāo)準(zhǔn)庫(kù)

python給出的標(biāo)準(zhǔn)庫(kù),通常而言,標(biāo)準(zhǔn)的庫(kù)肯定比自己寫(xiě)的效率更好一點(diǎn)

不要自己造輪子,所有程序的輪子,大部分就存在于標(biāo)準(zhǔn)庫(kù)

Python Module of the Week

編碼風(fēng)格

  • 類名:駝峰命名法,首字母大寫(xiě),無(wú)下劃線
  • 模塊、實(shí)例:小寫(xiě)英文+下劃線
  • 類中一個(gè)空行分隔方法
  • 模塊中,兩個(gè)空行分隔類
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容