python語法之函式(二)

2021-10-05 12:19:57 字數 3352 閱讀 9593

返回值就是函式執行以後返回的結果

我們可以通過乙個變數來接收return來指定函式的返回值

return後面可以跟任意物件,返回值甚至可以是乙個函式

return以後的**將不會再執行

如果僅僅寫乙個return,或者不寫return,則相當於return none

def fn():

return

r = fn()

print(r)

none

不寫return,則相當於return none

def fn2():

print('hello')

print(123)

r = fn2()

print(r)

hello

123none

return以後的**將不會再執行

def fn3():

for i in range(5):

if i == 3:

return #用了結束函式

print(i)

print('列印結束') #return 後面**不會執行

fn3()

0 12 fn 和fn() 的區別

fn表示 函式物件,fn()表示函式返回結果

help()是python中內建的函式,通過help()函式可以查詢python中函式的用法

在定義函式時,可以在函式內部編寫文件字串,文件字串就是對函式的說明

print('www','baidu','com',sep='.') www.baidu.com 空格替換為點

def fn5(a:bool,b:int,c:str)->int:

'''a: 作業與型別預設值

b: 作業與型別預設值

c: 作業與型別預設值

:return: 返回int

'''return 100

help(fn5)

fn5(a: bool, b: int, c: str) -> int

a: 作業與型別預設值

b: 作業與型別預設值

c: 作業與型別預設值

:return: 返回int

作用域:函式變數生效的區域

在python中一共有兩種作用域

全域性作用域

全域性作用域在程式執行時建立,在程式執行結束時銷毀

所以函式以外的區域的區域都是全域性作用域

在全域性作用域中定義的變數,都是全域性變數,全域性變數可以在程式任何位置進行訪問

函式作用域

函式作用域在函式呼叫是建立,在呼叫結束時銷毀

函式每呼叫一次就會產生乙個新的函式作用域

在函式作用域中定義的變數,都是區域性變數,它只能在函式內部被訪問

如果希望在函式內部修改全域性變數,則使用global關鍵字,來說宣告變數

宣告在函式內部使用的變數a是全域性變數,則此時在去修改a時,就是在修改全域性變數

命名空間實際上就是乙個字典,是乙個專門用來儲存變數的字典。

locals()用來獲取當前作用域的命名空間

a = 20

def fn():

print('a = ',a)

s = locals() #獲取函式全域性命名空間

print(s)

, '__builtins__': , '__file__': 'g:/python/邏輯教育/jarry班/基礎班/day09/test.py', '__cached__': none, 'a': 20, 'fn': , 's': }

如果在全域性作用域中呼叫locals()則獲取全域性命名空間,如果在函式作用域中呼叫locals()則獲取函式命名空間

返回值是乙個字典

遞迴是解決問題的一種方式,它的整體思想是將乙個大問題分解為乙個乙個的小問題,直到問題無法分解時,在去解決問題。

遞迴式函式有2個條件

1.基線條件,問題可以被分解為最小問題,當滿足基線條件時,遞迴就不執行

2.遞迴條件可以將問題急需分解的條件

如何求10 的階乘(10!)

1!=1

2! = 1.* 2 =2

3.!= 1*2*3 = 2!*3 = 6

4! = 1*2*3*4 = 3!*4 =24

.....*8*9*10 = 3628800

n = 10 建立乙個變數

for i in range(1,10):

n *= i

print(n)

求任意數的階乘

def fn(n):

引數n要求階乘的數字

result = n

for i in range(1,n):

result *= i

return result

print(fn(20)) 2432902008176640000

10! = 10* 9!

9! = 9*8!

8! = 8 *7!

....

1!= 1

def fn2(n):

#引數 你要求階乘的數字

#1.基線條件

if n == 1:

#1的階乘就是1,直接返回結果

return 1

#2遞迴條件

retutn n * fn2(n-1)

print(fn2(10)) 3628800

第一乙個函式來計算任意數的冪運算

def fn(n,i):

#1 基線條件 i =1 返回值你

if i== 1:

return n

return n * fn(n,i-1)

print(fn(6,5)) 7776

python語法之filter 函式

filter 函式是 python 內建的另乙個有用的高階函式,filter 函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。例如,要從乙個list...

python語法之map 函式

將乙個function作用於sequence中每個元素身上,最後返回這個被function作用後的list。在python3中map被封裝成了乙個類,功能依舊是將function作用於要被遍歷的序列,但是最後返回的結果就是乙個物件了。通過 舉乙個將int轉換為float的例子 if name mai...

二 python語法之內置函式

目錄 輸入 name input 請輸入您的姓名 返回字串 輸出 print hello name 格式化輸出 print 2d 02d 1,1 1 01 print a 1,sep end a,1 format格式化輸出 print format a b a,b print format a a ...