12 python基礎 函式

2021-09-03 08:15:52 字數 3563 閱讀 6073

12.1 函式簡介

一段具有特定功能的、可重用的語句組

函式規則:1. def (*) 2. return [表示式] 結束函式,不帶表示式的return相當於返回 none

作用:降低程式設計難度和**復用

def 《函式名》(引數):   ##引數是佔位符

函式體return 《返回值》

##引數是輸入、函式體是處理、結果是輸出(ipo);函式經過呼叫後才會被執行

12.2 函式引數
函式可以有引數,也可以沒有引數

引數型別:

普通引數(位置引數)

預設引數:為某些引數指定預設值,構成可選引數

不定長引數(收集引數)

關鍵字引數

12.2.1 預設引數
## 

def y(a,b=1): ##可為某些引數制定值,構成可選引數

y = a + b

return y

m = y(2)

print(m)

>3

12.2.2 不定長引數
把沒有位置,不能和定義時的引數位置相對應的引數,放入乙個特定的資料結構中

語法```

def func(*args):

func_body

按照list使用方式訪問args得到傳入的引數

呼叫:func(p1, p2, p3, .....)

```引數名args不是必須這麼寫,但是,我們推薦直接用args,約定俗成

引數名args前需要由星號

收集引數可以和其他引數共存

# args把他看做乙個list

def stu( *args):

# type函式作用是檢測變數的型別

print(type(args))

for item in args:

print(item)

stu("liuying", 18, "北京大通州區", "wangxiaojing", "single")

stu("周大神")

liuying

18北京大通州區

wangxiaojing

single

周大神

12.2.3 關鍵字引數
把關鍵字引數按字典格式存入收集引數

語法:```

def func( **kwargs):

func_body

# 呼叫:

func(p1=v1, p2=v2, p3=v3........)

``` kwargs一般約定俗成

呼叫的時候,把多餘的關鍵字引數放入kwargs

訪問kwargs需要按字典格式訪問

# 呼叫的時候需要使用關鍵字引數呼叫

def stu( **kwargs):

# 在函式體內對於kwargs的使用不用帶星號

print(type(kwargs))

# 對於字典的訪問,python2 和python3有區別

for k,v in kwargs.items():

print(k, "---", v)

stu(name="liuying", age=19, addr="北京大通州區", lover="王曉靜", work="teacher")

name --- liuying

age --- 19

addr --- 北京大通州區

lover --- 王曉靜

work --- teacher

12.2.4 引數混合呼叫的順序問題
收集引數,關鍵字引數,普通引數可以混合使用

使用規則就是,普通引數和位置引數優先

定義的時候一般找預設引數,位置引數,不定長引數,關鍵字引數

def stu(name, age, *args, hobby="沒有", **kwargs):

print("我叫 , 我今年大了。".format(name, age))

if hobby == "沒有":

print("我沒有愛好, so sorry")

else:

print("我的愛好是".format(hobby))

print("*" * 20)

for i in args:

print(i)

print("#" * 30)

for k,v in kwargs.items():

print(k, "---", v)

name = "liuying"

age = 19

stu(name, age, "王曉靜", "劉石頭", hobby="游泳", hobby2="烹飪", hobby3="跟不同女生聊天")

我叫 liuying, 我今年19大了。

我的愛好是游泳

********************

王曉靜劉石頭

##############################

hobby2 --- 烹飪

hobby3 --- 跟不同女生聊天

12.3 返回值

returnf保留字用來傳遞返回值

可以有return,也可以沒有return,不帶表示式的return相當於返回 none

可以返回0到多個值

12.4 lambda函式
lambda函式是一種匿名函式,使用lambda保留字定義,函式名是返回結果

lambda函式用於定義簡單的、能夠在一行內表示的函式,主要用作一些特定函式或方法的引數

f = lambda x,y:x + y

print(f(10,15))

>25

12.5 函式文件

文件的寫法:

在函式內部開始的第一行使用三引號字串定義符

一般具有特定格式

文件檢視

使用help函式,形如 help(func)

使用**doc**, 參看案例

def stu(name, age):

'''這是文件的文字內容

:param name: 表示學生的姓名

:param age: 表示學生的年齡

:return: 此函式沒有返回值

'''pass

print(help(stu))

>help on function stu in module __main__:

stu(name, age)

這是文件的文字內容

:param name: 表示學生的姓名

:param age: 表示學生的年齡

:return: 此函式沒有返回值

print(stu.__doc__)

>none

這是文件的文字內容

:param name: 表示學生的姓名

:param age: 表示學生的年齡

:return: 此函式沒有返回值

1 2 Python基礎語法

1.2.2 注釋 1.2.3 識別符號 1.2.4 變數 1.2.5 行與縮排 input 輸入 usr bin python3 str input 請輸入 print 你輸入的內容是 str 請輸入 hello python 你輸入的內容是 hello python print 輸出 usr bi...

12 Python內建函式

help 下面兩行分別為sys模組和str類的具體說明。help sys help str help 1,2,3 會詳細說明list的用法 help 1,2,3 dict class dict object dict new empty dictionary dict key,value pairs...

12 Python函式學習(中)

作用域 區域性和全域性變數 前向引用 deftest name,age 18,args,kwargs print name print age,args,kwargs school test 程式執行從上到下的,這裡的school還沒定義,所以執行報錯。test alex age 20,flag f...