Python開發 第5節 函式基礎

2022-09-06 00:36:08 字數 3224 閱讀 2543

函式的本質就是功能的封裝。

函式的作用

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:

print

(i)執行結果:125

4916

64

1.定義:如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。

2.特性:

def

calc(n):

print

(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):

print

(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 可迭代物件 或者 字典推導式 ...