Python學(xué)習(xí)(二)

字典(Dictionary)

  • 字典的定義
dictionary_name = {key_1: value_1,
                   key_2: value_2
                   }
  • 字典的輸出
    代碼中字典中的前一項(xiàng)叫name俏拱,后一項(xiàng)叫meaning暑塑,其實(shí)叫什么都可以
    一般循環(huán)輸出比較方便,下面是幾種輸出方式彰触,都可以梯投。
for name, meaning in python_words.items():
    print("\n名稱: %s" % name)
    print("解釋: %s" % meaning)

for word in python_words:
    print("%s" % word)

for word in python_words.keys():
    print(word)

for meaning in python_words.values():
     print("值: %s" % meaning)

for word in sorted(python_words.keys()):
    print("%s: %s" % (word, python_words[word]))

  • 常用操作
操作 實(shí)現(xiàn)
加入新的鍵-值對 字典名[鍵名] = 值
修改字典中的值 字典名[鍵名] = 新值
刪除字典中的項(xiàng) 字典名.pop('項(xiàng)名')
修改鍵名 創(chuàng)建一個(gè)新鍵 ,將要更換鍵名的值賦給新鍵
  • 嵌套:嵌套包括把列表或字典放在另一個(gè)列表或字典中况毅。
    值為列表的字典:通過 字典名[詞條名][詞條內(nèi)位置] 訪問
    值為字典的字典:通過 字典名[詞條名][詞條內(nèi)屬性名] 訪問

函數(shù)(Functions)

  • 定義一個(gè)函數(shù)
    使用關(guān)鍵字 def 告訴 Python 你將要定義一個(gè)函數(shù)分蓖。
    確保函數(shù)的定義以冒號(hào)結(jié)束。
  • 使用一個(gè)函數(shù)
    返回值
    參數(shù)缺省值尔许、位置參數(shù)么鹤、混合位置和關(guān)鍵字參數(shù)(部分參數(shù)賦初值,應(yīng)該把有默認(rèn)值的形參放在沒有默認(rèn)值的形參的后面)和c++差不多,就不再總結(jié)了
    關(guān)鍵字參數(shù)不太一樣味廊,只要指出參數(shù)名字蒸甜,調(diào)用傳參時(shí)不再嚴(yán)格受到位置的限制
    接受任意長度的序列:

它提供了一種語法,可以讓函數(shù)接受任意數(shù)量的參數(shù)余佛。如果我們在參數(shù)列表的最后一個(gè)參數(shù)前加一個(gè)星號(hào)柠新,這個(gè)參數(shù)就會(huì)收集調(diào)用語句的剩余參數(shù)并傳入一個(gè)元組。
如果函數(shù)中既有不定長參數(shù)又有普通參數(shù)辉巡,那么不定長參數(shù)必須放在普通參數(shù)的后邊恨憎。

def example_function(arg_1, arg_2, *arg_3):
    # Let's look at the argument values.
    print('\narg_1:', arg_1)
    print('arg_2:', arg_2)
    print('arg_3:', arg_3)
    
example_function(1, 2)
example_function(1, 2, 3)
example_function(1, 2, 3, 4)
example_function(1, 2, 3, 4, 5)

接受任意數(shù)量的關(guān)鍵字參數(shù)

在參數(shù)名前加兩個(gè)*, 會(huì)將這個(gè)參數(shù)變成一個(gè)字典來獲取關(guān)鍵字參數(shù)的值,其他關(guān)鍵字作為key,實(shí)參作為value

def example_function(**kwargs):
    print(type(kwargs))
    for key, value in kwargs.items():
        print('{}:{}'.format(key, value))
        
example_function(first=1, second=2, third=3)
example_function(first=1, second=2, third=3, fourth=4)
example_function(name='Valerio', surname='Maggio')
  • 如果我們在參數(shù)列表的最后一個(gè)參數(shù)前加一個(gè)星號(hào)憔恳,這個(gè)參數(shù)就會(huì)收集調(diào)用語句的剩余參數(shù)并傳入一個(gè)元組
  • 如果一個(gè)參數(shù)前有兩個(gè)星號(hào)瓤荔,代表著收集調(diào)用語句中剩余的所有鍵值對參數(shù)。這個(gè)參數(shù)常被命名為 kwargs 钥组。這些參數(shù)鍵值對被存儲(chǔ)在一個(gè)字典中输硝。
    兩個(gè)的參數(shù)要放在一個(gè)的后邊

類(Classes)

  • 定義:類是一種組合信息和行為的方式
class Rocket():
    
    def __init__(self):
        #在類中要做的第一件事就是定義 __init__ 函數(shù)。當(dāng)對象被創(chuàng)建時(shí)程梦,__init__ 函數(shù)就會(huì)執(zhí)行点把,為需要的參數(shù)設(shè)置初始值。
        # Each rocket has an (x, y) position
        self.x = 0
        self.y = 0

使用對象名和點(diǎn)符號(hào)來訪問對象的變量和方法

  • 面向?qū)ο蠡A(chǔ)

常用術(shù)語 意義
attribute:屬性 是一系列信息的集合作烟。在類中愉粤,一個(gè)屬性通常是一個(gè)變量砾医。
behavior:行為 是定義在類中拿撩,組成方法的部分。即定義在類中函數(shù)的一部分
method:方法 類中的函數(shù)如蚜,由 behavior 組成
object:對象 類的實(shí)例
  • _ init_() 方法:初始化函數(shù)
    類名必須是駝峰式的压恒。也即每個(gè)單詞的開頭必須是大寫的,不允許下劃線的出現(xiàn)错邦。
    目前為止圓括號(hào)里都是空的
    "self" 指向當(dāng)前的對象,基本上探赫,類中所有的函數(shù)都需要 self 對象作為第一個(gè)參數(shù),因此它們就可以訪問類中的屬性撬呢÷追停可以在其中添加關(guān)鍵字參數(shù),更改對象的初始位置

  • 繼承

新類可以重寫覆蓋任一繼承自舊類的屬性或行為魂拦。也可以添加新的屬性和行為毛仪。舊類被稱為父類,新類被稱為父類的孩子芯勘。父類也被稱為 superclass 箱靴,子類被稱為 subclass。

  • 當(dāng)一個(gè)子類要繼承父類時(shí)荷愕,在定義子類的圓括號(hào)中填寫父類的類名:
  • 新類的 init() 函數(shù)接受的參數(shù)需要傳遞給父類的 init() 函數(shù)衡怀。由 super().init() 函數(shù)負(fù)責(zé):

模塊(Modules)和類

越長的程序越變得難以閱讀和維護(hù)。Python 允許將類放進(jìn)另一個(gè)文件中然后在你的程序中導(dǎo)入安疗。這樣就將類和程序隔離抛杨,也就能在不同的程序中運(yùn)用。隨著使用次數(shù)的增多荐类,類也會(huì)變得越來越可靠和完善怖现。

  • 在模塊中存儲(chǔ)一個(gè)類
    模塊的名字是小寫的單詞,類名是以大寫字母開頭的掉冶。
    創(chuàng)建一個(gè)單獨(dú)的 .py 文件真竖。確保使用約定的命名方式脐雪,小寫字母加下劃線的方式為文件命名
from rocket import Rocket #導(dǎo)入一個(gè)類#
from module_name import ClassName #導(dǎo)入多個(gè)類#

  • 導(dǎo)入模塊和類的一些方法

1.都導(dǎo)入最常見

from module_name import ClassName

2.只導(dǎo)入模塊

import module_name

3.在你的項(xiàng)目中導(dǎo)入模塊時(shí),你可以為模塊自定義名字恢共。

import module_name as local_module_name

4.導(dǎo)入模塊中的所有類和函數(shù):盡量避免使用因?yàn)閷?dǎo)入的太多了

from module_name import *
  • 函數(shù)模塊

導(dǎo)入方法與上相同


異常(Exceptions)

  • 異常是可以修改程序控制流程的事件战秋。
  • 菜鳥教程的講解還比較詳細(xì)
  • 這個(gè)的講解就比較生動(dòng)有趣
  • 4種處理異常的語句
語句 作用
try/except 捕捉并恢復(fù) Python 自動(dòng)觸發(fā)的或自己代碼中的異常
try/finally 無論異常是否發(fā)生,執(zhí)行清理操作
raise 手動(dòng)觸發(fā)一個(gè)異常
with/as 在 Python 2.6 讨韭,3.0 或更新的版本中實(shí)現(xiàn)上下文管理器脂信。

1.try/except

try:
<語句>        #運(yùn)行別的代碼
except <名字>:
<語句>        #如果在try部份引發(fā)了'name'異常
except <名字>,<數(shù)據(jù)>:
<語句>        #如果引發(fā)了'name'異常透硝,獲得附加的數(shù)據(jù)
else:
<語句>        #如果沒有異常發(fā)生

2.try/finally

try:
<語句>
finally:
<語句>    #退出try時(shí)總會(huì)執(zhí)行
raise

3.raise

raise [Exception [, args [, traceback]]]

語句中 Exception 是異常的類型(例如狰闪,NameError)參數(shù)標(biāo)準(zhǔn)異常中任一種,args 是自已提供的異常參數(shù)濒生。
最后一個(gè)參數(shù)是可選的(在實(shí)踐中很少使用)埋泵,如果存在,是跟蹤異常對象罪治。

4.with/as

with open(r'C:\misc\data') as myfile: 
    for line in myfile:
        print(line)
    # ...more code here...
  • 用戶自定義異常
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丽声,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子觉义,更是在濱河造成了極大的恐慌雁社,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晒骇,死亡現(xiàn)場離奇詭異霉撵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)洪囤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門徒坡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人箍鼓,你說我怎么就攤上這事崭参。” “怎么了款咖?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵何暮,是天一觀的道長。 經(jīng)常有香客問我铐殃,道長海洼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任富腊,我火速辦了婚禮坏逢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己是整,他們只是感情好肖揣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著浮入,像睡著了一般龙优。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上事秀,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天彤断,我揣著相機(jī)與錄音,去河邊找鬼易迹。 笑死宰衙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的睹欲。 我是一名探鬼主播供炼,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼句伶!你這毒婦竟也來了劲蜻?” 一聲冷哼從身側(cè)響起陆淀,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤考余,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后轧苫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體楚堤,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年含懊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了身冬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡岔乔,死狀恐怖酥筝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雏门,我是刑警寧澤嘿歌,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站茁影,受9級(jí)特大地震影響宙帝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜募闲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一步脓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦靴患、人聲如沸仍侥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽访圃。三九已至,卻和暖如春相嵌,著一層夾襖步出監(jiān)牢的瞬間腿时,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工饭宾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留批糟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓看铆,卻偏偏與公主長得像徽鼎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子弹惦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容