本人在廖雪峰的python教程學(xué)習(xí)python,在此記錄一些筆記,記一些重要的東西,以便查詢(xún)及復(fù)習(xí)。
輸入與輸出
用print()在括號(hào)中加上字符串,就可以向屏幕上輸出指定的文字。
print()會(huì)依次打印每個(gè)字符串,遇到逗號(hào)“,”會(huì)輸出一個(gè)空格。
Python提供了一個(gè)input(),可以讓用戶(hù)輸入字符串,并存放到一個(gè)變量里。
注釋
在python中,以#開(kāi)頭的語(yǔ)句是注釋。
當(dāng)語(yǔ)句以冒號(hào):結(jié)尾時(shí),縮進(jìn)的語(yǔ)句視為代碼塊。
Python允許用r''表示''內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義.
除法
在Python中,有兩種除法,一種除法是/,/除法計(jì)算結(jié)果是浮點(diǎn)數(shù),即使是兩個(gè)整數(shù)恰好整除,結(jié)果也是浮點(diǎn)數(shù)。
還有一種除法是//,稱(chēng)為地板除,兩個(gè)整數(shù)的除法仍然是整數(shù)。
Python的整數(shù)沒(méi)有大小限制。
函數(shù)
定義函數(shù)用def開(kāi)頭,依次寫(xiě)出函數(shù)名、括號(hào)、括號(hào)中的參數(shù)和冒號(hào):。
如果沒(méi)有return語(yǔ)句,函數(shù)執(zhí)行完畢后也會(huì)返回結(jié)果,只是結(jié)果為None。
空函數(shù):如果想定義一個(gè)什么事也不做的空函數(shù),可以用pass語(yǔ)句。pass語(yǔ)句什么都不做,那有什么用?實(shí)際上pass可以用來(lái)作為占位符,比如現(xiàn)在還沒(méi)想好怎么寫(xiě)函數(shù)的代碼,就可以先放一個(gè)pass,讓代碼能運(yùn)行起來(lái)。
函數(shù)可以返回多個(gè)值,返回值是一個(gè)tuple!但是,在語(yǔ)法上,返回一個(gè)tuple可以省略括號(hào),而多個(gè)變量可以同時(shí)接收一個(gè)tuple,按位置賦給對(duì)應(yīng)的值,所以,Python的函數(shù)返回多值其實(shí)就是返回一個(gè)tuple,但寫(xiě)起來(lái)更方便。
參數(shù)組合
在Python中定義函數(shù),可以用必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)和命名關(guān)鍵字參數(shù),這5種參數(shù)都可以組合使用。但是請(qǐng)注意,參數(shù)定義的順序必須是:必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)。
比如定義一個(gè)函數(shù),包含上述若干種參數(shù):
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
在函數(shù)調(diào)用的時(shí)候,Python解釋器自動(dòng)按照參數(shù)位置和參數(shù)名把對(duì)應(yīng)的參數(shù)傳進(jìn)去。
>>> f1(1, 2)
a = 1 b = 2 c = 0 args = () kw = {}
>>> f1(1, 2, c=3)
a = 1 b = 2 c = 3 args = () kw = {}
>>> f1(1, 2, 3, 'a', 'b')
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}
>>> f1(1, 2, 3, 'a', 'b', x=99)
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}
>>> f2(1, 2, d=99, ext=None)
a = 1 b = 2 c = 0 d = 99 kw = {'ext': None}
最神奇的是通過(guò)一個(gè)tuple和dict,你也可以調(diào)用上述函數(shù):
>>> args = (1, 2, 3, 4)
>>> kw = {'d': 99, 'x': '#'}
>>> f1(*args, **kw)
a = 1 b = 2 c = 3 args = (4,) kw = {'d': 99, 'x': '#'}
>>> args = (1, 2, 3)
>>> kw = {'d': 88, 'x': '#'}
>>> f2(*args, **kw)
a = 1 b = 2 c = 3 d = 88 kw = {'x': '#'}
所以,對(duì)于任意函數(shù),都可以通過(guò)類(lèi)似func(*args, **kw)的形式調(diào)用它,無(wú)論它的參數(shù)是如何定義的。