python基礎訓練task05

2021-09-29 01:16:59 字數 2293 閱讀 2271

我們準備利用17天時間,將 python 基礎的刻意練習分為如下任務:

task01:變數、運算子與資料型別(1day)

task02:條件與迴圈(1day)

task03:列表與元組(2day)

task04:字串與序列(1day)

task05:函式與lambda表示式(2day)

task06:字典與集合(1day)

task07:檔案與檔案系統(2day)

task08:異常處理(1day)

task09:else 與 with 語句(1day)

task10:類與物件(2day)

task11:魔法方法(2day)

task12:模組(1day)

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。函式能提高應用的模組性,和**的重複利用率。python提供了許多內建函式,比如print(),也可以自己建立函式,叫做使用者自定義函式。

定義乙個由自己想要功能的函式,以下是簡單的規則:

python 定義函式使用 def 關鍵字,一般格式如下:

def 函式名(引數列表):

函式體

預設情況下,引數值和引數名稱是按函式宣告中定義的順序匹配起來的。

def

area

(width, height)

:return width * height

w =4

h =5

print

("width ="

, w,

" height ="

, h,

" area ="

, area(w, h)

)結果為

width =

4 height =

5 area =

20

函式呼叫

定義乙個函式:給了函式乙個名稱,指定了函式裡包含的引數,和**塊結構。

這個函式的基本結構完成以後,你可以通過另乙個函式呼叫執行,也可以直接從 python 命令提示符執行。

引數傳遞

在 python 中,型別屬於物件,變數是沒有型別的

可更改(mutable)與不可更改(immutable)物件

------在 python 中,strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。

不可變型別 變數賦值 a=5 後再賦值 a=10,這裡實際是新生成乙個 int 值物件 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。

可變型別 變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

-----python 函式的引數傳遞:

不可變型別 類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另乙個複製的物件,不會影響 a 本身。

可變類 類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響

python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。

python 傳不可變物件例項

在 python 裡有兩種函式:

所謂匿名,即不再使用def語句定義乙個函式。

python 使用 lambda 來建立匿名函式。

lambda 只是乙個表示式,函式體比def簡單很多。

lambda 函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數。

lambda 函式沒有所謂的函式名 (function_header),這也是它為什麼叫匿名函式。

lambda argument_list: expression
lbd_sqr =

lambda x: x **

2print

(lbd_sqr)

# at 0x000000babb6ac1e0>

defsqr

(x):

return x **

2print

(sqr)

# print

(sqr(9)

)# 81

print

(lbd_sqr(9)

)# 81

logogroup

python基礎訓練task02

我們準備利用17天時間,將 python 基礎的刻意練習分為如下任務 task01 變數 運算子與資料型別 1day task02 條件與迴圈 1day task03 列表與元組 2day task04 字串與序列 1day task05 函式與lambda表示式 2day task06 字典與集合...

Python基礎訓練(一)

1.閏年判斷 給定乙個年份,判斷這一年是不是閏年。當以下情況之一滿足時,這一年是閏年 1 年份是4的倍數而不是100的倍數 2 年份是400的倍數。其他的年份都不是閏年。n int input if n 4 0 and n 100 0 print yes elif n 400 0 print yes...

Python基礎訓練(二)

1.楊輝三角 楊輝三角形又稱pascal三角形,它的第i 1行是 a b i的展開式的係數。它的乙個重要性質是 三角形中的每個數字等於它兩肩上的數字相加。下面給出了楊輝三角形的前4行 1 11 2 1 1 3 3 1 給出n,輸出它的前n行。輸入格式 輸入包含乙個數n。輸出格式 輸出楊輝三角形的前n...