day 2
函式的引數:預設引數可以簡化函式的呼叫。
必選引數在前,預設引數在後,否則python的直譯器會報錯,函式有多個引數時,把變化大的引數放前面,變化小的引數放後面。變化小的引數就可以作為預設引數。
定義預設引數要牢記一點:預設引數必須指向不變物件!
給定一組數字a,b,c……,請計算a
2+ b
2+ c
2+ ……
def
calc
(numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
把函式的引數改為可變引數:
def
calc
(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
定義可變引數和定義乙個list或tuple引數相比,僅僅在引數前面加了乙個*
號。在函式內部,引數numbers
接收到的是乙個tuple,因此,函式**完全不變。但是,呼叫該函式時,可以傳入任意個引數,包括0個引數。
>>> nums = [1, 2, 3]
>>> calc(*nums)
*nums
表示把nums
這個list的所有元素作為可變引數傳進去
關鍵字引數:
def
person
(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
如果要限制關鍵字引數的名字,就可以用命名關鍵字引數,例如,只接收city
和job
作為關鍵字引數
def
person
(name, age, *, city, job):
print(name, age, city, job)
命名關鍵字引數必須傳入引數名,這和位置引數不同。如果沒有傳入引數名,呼叫將報錯:>>> person('jack', 24, city='beijing', job='engineer')
jack 24 beijing engineer
>>> person('jack', 24, 'beijing', 'engineer')
traceback (most recent call last):
file "", line 1, in
typeerror: person() takes 2 positional arguments but 4 were given
由於呼叫時缺少引數名city
和job
,python直譯器把這4個引數均視為位置引數,但person()
函式僅接受2個位置引數。 Python菜鳥之路 Python基礎
上述內容含義 python官方宣告 python2.7系列將會在2020年終止支援,並申明官方不會有2.8版本的發行版,請使用者盡快移動到python3.4 的開發環境中。由此可見,我們現在就邁向學習3.0系列,是很明智的 我身邊絕大多數都在用python2.7,對於3.0的差異性了解不多 二 py...
小菜鳥學習Python之路 filter(素數)
設計思路 素數 大於1的自然數,最小的素數是2。約數只有1和自身的自然數為素數 大於2的偶數都不是素數 step1 生成乙個以3為首的奇數序列 generator def odd iter n 1 while true n n 2 yield n這是乙個無限序列 step 2 定義乙個篩選函式 de...
Python菜鳥入門之路 4
今天的題目 學習的知識點 這個在剛開始學完語法的時候,因為對網頁的興趣,就直接先學習了django,而且還專門練習了乙個星期,所以說今天做這道題還是比較容易的,主要的知識點 1.django專案的建立以及配置 2.表單的提交,涉及到與後端資料庫的互動 3.頁面重定向 httpresponseredi...