練習**:
#執行結果:#認識函式: 在乙個完整的專案中,有些功能會反覆使用,那麼會將這個功能封裝成函式,當我們想使用功能的時候,直接呼叫函式即可
#本質: 函式就是對功能的封裝
#優點:1.簡化**結構,增加**的重用度
#2.如果想修改某些功能或者除錯某個bug,還需修改對應的函式即可
#定義函式:
#格式: def 函式名(引數列表):
# 語句
# return 表示式
##無參,無返回值的函式
def myprint():
print("ben is a good man")
#函式呼叫
myprint()
#函式的引數,形式引數,引數按順序傳遞
def myprint1(str,age):
print(str,age)
#實參:呼叫函式時,給函式傳遞的資料,本質是值
myprint1("ben is a good man",18)
#求和def sum(num1,num2):
return num1+num2
#return 後面的**不執行
print("***********")
res = sum(1,2)
print(res)
#值傳遞:傳遞的是不可變型別 (string,tuple,number)
def fun1(num):
print(id(num))
num = 10
print(id(num))
temp = 20
fun1(temp)
print(temp)
print("************")
#引用傳遞,傳遞的是可變型別(list dict set)
def fun2(lis):
lis[0] = 100
li = [1,2,3,4]
fun2(li)
print(li)
print("************")
a = 10
b = 10
print(id(a),id(b))
c = 10
d = 20
print(id(c),id(d))
d = c
print(id(c),id(d))
print("************")
#關鍵字引數:允許函式呼叫時的順序與定義時不一樣
def p(str,age):
print(age,str)
#使用關鍵字引數
p(age = 18,str="abc")
#預設引數:呼叫函式時,如果沒有傳遞引數,則使用預設引數
def p1(str = "abc",age = 18):
print(age,str)
#使用關鍵字引數
p1()
#以後要用預設引數,最好將預設引數放到最後
def p2(str,age=18):
print(age, str)
p2("abc")
print("************")
# 能處理比定義時更多的引數
#加了*的變數,存放所有未命名的變數引數,如果在函式呼叫時沒有指定引數,它就是乙個空元祖
def p3(name,*arr):
print(name)
for x in arr:
print(x)
p3("a","b","c")
def p4(*l):
sum = 0
for i in l:
sum += i
return sum
print(p4(1,2,3,4,5))
print("************")
#字典 **代表鍵值對引數, 和*所代表的意義類似
def p5(**kwargs):
print(kwargs)
print(type(kwargs))
p5(x = 1, y = 2, z = 3)
print("************")
def p6(*args,**kwargs):
pass #代表乙個空格語句
#匿名函式:不使用def這樣的語句定義函式,使用lambda來建立匿名函式
#特點:1.lambda知識乙個表示式,函式體比def簡單
# 2.lambda的注意是乙個表示式,而不是**塊,僅僅智慧型在lambda表示式中封裝簡單的邏輯
# 3.lambda函式有自己的命名空間,且不能訪問自由引數列表之外的貨全域性命名空間的引數
# 4.雖然lambda是乙個表示式且看起來只能寫一行,和c c++內聯函式不同
#格式: lambda 引數1,引數2,。。。。。。引數n : expression
sum = lambda num1,num2 : num1 + num2
print(sum(1,2))
print("************")
d:\pycharm\python\venv\scripts\python.exe d:/pycharm/python/017函式概述.py
ben is a good man
ben is a good man 18
31445392784
1445392464
20************
[100, 2, 3, 4]
************
1445392464 1445392464
1445392464 1445392784
1445392464 1445392464
************
18 abc
18 abc
18 abc
************ab
c15************
************
3process finished with exit code 0
python函式概述 Python中函式概述
python中的函式 認識函式 在乙個完整的專案中,某些功能會反覆的使用。那麼我們會將功能封裝成函式,當我們要使用這個功能的時候 直接呼叫函式即可 本質 函式就是對功能的封裝 優點 1簡化 結構,增加了 的復用度 重複使用的程度 2如果想修改某些功能或者除錯某些bug,還需要修改對應的函式即可 引數...
Python學習之函式
0 引論 函式是實現 復用的主要途徑之一,而且函式的使用也可以使得程式更加容易理解,更加規範化。程式很多時候並不是給計算機的,而是給人看的。這裡總結一下python中的函式的應用 1 函式 首先python中的函式的格式是怎樣的。def 函式名 形參 函式體 下面是乙個計算fibonacci數列的函...
python學習之函式
抽象 斐波那契數列 fibs 0,1 for i in range 10 print fibs fibs 0,1 i 2 while i 20 i 1 print fibs 使用callable判斷函式是否可以呼叫 import math x 1 y math.sqrt print callable...