python 菜鳥學習之路

2021-08-16 11:15:35 字數 1616 閱讀 1583

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)

如果要限制關鍵字引數的名字,就可以用命名關鍵字引數,例如,只接收cityjob作為關鍵字引數

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

由於呼叫時缺少引數名cityjob,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...