函式的本質就是功能的封裝。
函式的作用
def函式名(引數):
"""函式文件
"""函式功能**...
函式功能**...
呼叫函式:函式名(引數)
形參:宣告函式時()中的引數是形參
形參只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。
形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。
實參:呼叫函式時()中的引數是實參,實參可以是常量、變數、表示式、函式等
實參在函式呼叫時,必須有確定的值,以便把這些值傳送給形參。
函式文件:
def 函式名(形參=預設值,形參=預設值...):函式功能**...
函式功能**...
...呼叫函式:
函式名()
#呼叫函式時所有形參採用預設值操作
函式名(實參,實參...) #
呼叫時形參使用實參的值而拋棄預設值
def 函式名(形參=預設值,形參=預設值...):函式功能**...
函式功能**...
...呼叫函式:
函式名(形參=實參,形參=實參...)
5.1、*args引數
def 函式名(*args):函式功能**...
函式功能**...
...呼叫函式:函式名(實參,實參...) 沒有數量限制
*args 會把多傳入的引數變成乙個元組形式
5.2、**kwargs引數
def 函式名(**kwargs):函式功能**...
函式功能**...
...呼叫函式: 函式名(形參=實參,形參=實參...) 沒有數量限制
*kwargs會把多傳入的引數變成乙個dict形式
return語句的特徵:
#!/usr/bin/python3# 可寫函式說明
def sum( arg1, arg2 ):
# 返回2個引數的和."
total = arg1 + arg2
print ("函式內 : ", total)
return total;
# 呼叫sum函式
total = sum( 10, 20 );
print ("函式外 : ", total)
全域性變數:
在程式的一開始定義的變數稱為全域性變數,全域性變數作用域是整個程式
區域性變數:
在子程式中定義的變數稱為區域性變數,區域性變數作用域是定義該變數的子程式
#!/usr/bin/python3
total = 0; #
這是乙個全域性變數
#可寫函式說明
defsum( arg1, arg2 ):
#返回2個引數的和."
total = arg1 + arg2; #
total在這裡是區域性變數.
print ("
函式內是區域性變數 :
", total)
return
total;
#呼叫sum函式
sum( 10, 20);
print ("
函式外是全域性變數 :
", total)
lambda的主體是乙個表示式,但可對有限的邏輯完成封裝。
lambda 函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數。
res = map(lambda x:x**2,[1,5,7,4,8])for i in
res:
(i)執行結果:125
4916
64
1.定義:如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。
2.特性:
defcalc(n):
(n)
if int(n/2) ==0:
return
n
return calc(int(n/2))
calc(10)
輸出:105
21
二分法查詢:
data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35]defbinary_search(dataset,find_num):
(dataset)
if len(dataset) >1:
mid = int(len(dataset)/2)
if dataset[mid] == find_num: #
find it
print("
找到數字
",dataset[mid])
elif dataset[mid] > find_num :#
找的數在mid左面
print("
\033[31;1m找的數在mid[%s]左面\033[0m
" %dataset[mid])
return
binary_search(dataset[0:mid], find_num)
else:#
找的數在mid右面
print("
\033[32;1m找的數在mid[%s]右面\033[0m
" %dataset[mid])
return binary_search(dataset[mid+1:],find_num)
else
:
if dataset[0] == find_num: #
find it
print("
找到數字啦
",dataset[0])
else
:
print("
沒的分了,要找的數字[%s]不在列表裡
" %find_num)
binary_search(data,66)
第2章第5節 Wanlix的開發環境
目前更新到5.3節,請在 晶元使用的是adi 公司的aduc7024 前面已經做過一些介紹。軟體開發環境使用的是keil mdk4.20 keil 是德國軟體公司 keil 現已被 arm公司收購 開發的嵌入式系統開發平台,keil 開發平台支援許多廠家的晶元,提供基本的最小軟體系統,keil 開發...
Python基礎 第39節 函式的返回值
乙個函式就是封裝乙個功能,這個功能一般都會有乙個最終結果的.比如寫乙個登入的函式,最終登入是否成功你總得告訴我一聲吧?還有咱們之前也用過len 這個函式,它就是獲取乙個物件的元素的總個數,然後返回乙個元素個數的結果 s1 qwerasdf print len s1 8 那麼,如何設定返回值呢?這就得...
python基礎 第5天
推導式建立序列 推導式是從乙個或者多個迭代器快速建立序列的一種方法。它可以將迴圈和條件判斷結合,從而避免冗長的 推導式是典型的python風格,會使用它代表你已經超過python初學者的水平。列表推導式 列表推導式生我列表物件,語法如下 表示式 for item in 可迭代物件 或者 字典推導式 ...