python學習之 017函式概述

2021-09-18 07:58:23 字數 3015 閱讀 4153

練習**:

#

#認識函式: 在乙個完整的專案中,有些功能會反覆使用,那麼會將這個功能封裝成函式,當我們想使用功能的時候,直接呼叫函式即可

#本質: 函式就是對功能的封裝

#優點: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...