日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python函数的定义必须在程序的开头_Python之函数基础

發(fā)布時間:2025/3/20 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数的定义必须在程序的开头_Python之函数基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、函數(shù)的定義與調(diào)用

函數(shù)從大方針上考慮總共分為兩種:一種是內(nèi)置函數(shù),另一種是自定義函數(shù)。今天主要講的是自定義函數(shù)。

s = '金老板小護士'#len(s)

def my_len(): #自定義函數(shù)

i= 0

for k ins:

i+= 1print(i)

length=my_len()

print(length)

此函數(shù)是為了計算字符串 's' 的長度。分析此函數(shù)的格式:

首先定義函數(shù)是def,這個是必須的,后面空一格,再寫函數(shù)名稱,定義函數(shù)名稱和定義變量的規(guī)范一樣,后面是冒號。

其實除了def這一行和后面的縮進,其他的好像就是正常的執(zhí)行代碼。我們來執(zhí)行一下,哦,好像啥也沒發(fā)生。

剛剛我們已經(jīng)說過,這是把代碼裝起來的過程。你現(xiàn)在只會往里裝,還不會往出拿。那么應(yīng)該怎么往出拿呢?我來告訴大家:

mylen()

是不是很簡單?是不是似曾相識?這就是代碼取出來的過程。剛剛我們就寫了一個函數(shù),并且成功調(diào)用了它。

函數(shù)的調(diào)用是用mylen(),直接在函數(shù)代碼后面寫上變量名加上(),就可以調(diào)用函數(shù)了。

總結(jié):

定義:def關(guān)鍵詞開頭,空格之后接函數(shù)名稱和圓括號(),最后還有一個":"。

def 是固定的,不能變。

空格 為了將def關(guān)鍵字和函數(shù)名分開,必須空格。

函數(shù)名:函數(shù)名只能包含字符串、下劃線和數(shù)字且不能以數(shù)字開頭。雖然函數(shù)名可以隨便起,但我們給函數(shù)起名字還是要盡量簡短,并能表達(dá)函數(shù)功能

括號:是必須加的!

注釋:每一個函數(shù)都應(yīng)該對功能和參數(shù)進行相應(yīng)的說明,應(yīng)該寫在函數(shù)下面第一行。以增強代碼的可讀性。

調(diào)用:就是?函數(shù)名() 要記得加上括號。

2、函數(shù)的返回值

函數(shù)的返回值,關(guān)鍵字是? return

返回值也就是return的作用是,有兩個作用

一、可以返回函數(shù)值

二、可以結(jié)束一個函數(shù)的繼續(xù)。

要研究返回值,我們還要知道返回值有幾種情況:分別是沒有返回值、返回一個值、返回多個值

返回值的3種情況

沒有返回值 —— 返回None

不寫return

只寫return:結(jié)束一個函數(shù)的繼續(xù)

return None —— 不常用

返回1個值

可以返回任何數(shù)據(jù)類型

只要返回就可以接收到

如果在一個程序中有多個return,那么只執(zhí)行第一個

返回多個值

用多個變量接收:有多少返回值就用多少變量接收

用一個變量接收: 得到的是一個元組

沒有返回值

不寫return的情況下,會默認(rèn)返回一個None

#函數(shù)定義

def mylen():"""計算s1的長度"""s1= "hello world"length= 0

for i ins1:

length= length+1print(length)

#函數(shù)調(diào)用

str_len=mylen()

#因為沒有返回值,此時的str_len為None

print('str_len : %s'%str_len)

不寫return

只寫return,后面不寫其他內(nèi)容,也會返回None,有的同學(xué)會奇怪,既然沒有要返回的值,完全可以不寫return,為什么還要寫個return呢?這里我們要說一下return的其他用法,

就是一旦遇到return,結(jié)束整個函數(shù)。

def ret_demo():

print(111)returnprint(222)

ret=ret_demo()

print(ret)

只寫return

return None:和上面的兩種情況一樣,我們一般不這樣寫。

def ret_demo():

print(111)returnNone

print(222)

ret=ret_demo()

print(ret)return None

返回一個值

只需在return后面寫上要返回的內(nèi)容即可。

#函數(shù)定義

def mylen():"""計算s1的長度"""s1= "hello world"length= 0

for i ins1:

length= length+1

returnlength

#函數(shù)調(diào)用

str_len=mylen()

print('str_len : %s'%str_len)

返回一個值

注意:return和返回值之間要有空格,可以返回任意數(shù)據(jù)類型的值

返回多個值

可以返回任意多個、任意數(shù)據(jù)類型的值

def ret_demo1():'''返回多個值'''

return 1,2,3,4def ret_demo2():'''返回多個任意類型的值'''

return 1,['a','b'],3,4ret1=ret_demo1()

print(ret1)

ret2=ret_demo2()

print(ret2)

返回多個值

返回的多個值會被組織成元組被返回,也可以用多個值來接收

def ret_demo2():return 1,['a','b'],3,4#返回多個值,用一個變量接收

ret2=ret_demo2()

print(ret2)

#返回多個值,用多個變量接收

a,b,c,d=ret_demo2()

print(a,b,c,d)

#用多個值接收返回值:返回幾個值,就用幾個變量接收

a,b,c,d=ret_demo2()

print(a,b,c,d)

多個返回值的接收

上面設(shè)置的函數(shù)只能單一的適用于一種特定的情況,現(xiàn)在如果想要讓我們的函數(shù)能夠適用于所有的變量,就要設(shè)置參數(shù)了。

#函數(shù)定義

def mylen(s1):"""計算s1的長度"""length= 0

for i ins1:

length= length+1

returnlength

#函數(shù)調(diào)用

str_len= mylen("hello world")

print('str_len : %s'%str_len)

帶參數(shù)的函數(shù)

mylen函數(shù)要計算的字符串是誰,這個過程就叫做 傳遞參數(shù),簡稱傳參,我們調(diào)用函數(shù)時傳遞的這個“hello world”和定義函數(shù)時的s1就是參數(shù)。

實際參數(shù)(實參)和形式參數(shù)(形參):

實參:我們調(diào)用函數(shù)時,在變量后面的()里加入的參數(shù)就是實際參數(shù),簡稱實參;

形參:我們定義函數(shù)時,在變量后面的()里加入的參數(shù)就是形式參數(shù),簡稱形參。

傳遞多個參數(shù)

參數(shù)可以傳遞多個,多個參數(shù)之間用逗號分割。

def mymax(x,y):

the_max= x if x > y elseyreturnthe_max

ma= mymax(10,20)

print(ma)

View Code

1 defmymax(x,y):2 the_max = x if x > y elsey3 returnthe_max4

5 ma = mymax(10,20)6 print(ma)

View Code

defmymax(x,y):

the_max= x if x > y elseyreturnthe_max

ma= mymax(10,20)print(ma)

參數(shù)

沒有參數(shù)

定義函數(shù)和調(diào)用函數(shù)時括號里都不寫內(nèi)容

有一個參數(shù)

傳什么就是什么

有多個參數(shù)

位置參數(shù),按照順序?qū)?yīng)

站在實參角度

1.按照位置傳值

defmymax(x,y):#此時x=10,y=20

the_max = x if x > y elseyreturnthe_max

ma= mymax(10,20)print(ma)

按照位置傳參

2.按照關(guān)鍵字傳值

defmymax(x,y):#此時x = 20,y = 10

print(x,y)

the_max= x if x > y elseyreturnthe_max

ma= mymax(y = 10,x = 20)print(ma)

按照關(guān)鍵字傳參

3.位置、關(guān)鍵字形式混著用

defmymax(x,y):#此時x = 10,y = 20

print(x,y)

the_max= x if x > y elseyreturnthe_max

ma= mymax(10,y = 20)print(ma)

位置、關(guān)鍵字混用傳參

正確用法

問題一:位置參數(shù)必須在關(guān)鍵字參數(shù)的前面

問題二:對于一個形參只能賦值一次

總結(jié):

站在實參的角度上:

按照位置傳參

按照關(guān)鍵字傳參

混著用可以:但是 必須先按照位置傳參,再按照關(guān)鍵字傳參數(shù)

不能給同一個變量傳多個值

站在形參角度

位置參數(shù)必須傳值

defmymax(x,y):#此時x = 10,y = 20

print(x,y)

the_max= x if x > y elseyreturnthe_max#調(diào)用mymax不傳遞參數(shù)

ma =mymax()print(ma)#結(jié)果

TypeError: mymax() missing 2 required positional arguments: 'x' and 'y'位置參數(shù)必須傳參

默認(rèn)參數(shù)

1.正常使用

使用方法

為什么要有默認(rèn)參數(shù):將變化比較小的值設(shè)置成默認(rèn)參數(shù)

2.默認(rèn)參數(shù)的定義

def stu_info(name,sex = "male"):"""打印學(xué)生信息函數(shù),由于班中大部分學(xué)生都是男生,

所以設(shè)置默認(rèn)參數(shù)sex的默認(rèn)值為'male'"""

print(name,sex)

stu_info('alex')

stu_info('eva','female')

默認(rèn)參數(shù)

總結(jié):

站在形參的角度上

位置參數(shù):必須傳,且有幾個參數(shù)就傳幾個值

默認(rèn)參數(shù): 可以不傳,如果不傳就是用默認(rèn)的參數(shù),如果傳了就用傳的

動態(tài)參數(shù)

按位置傳值多余的參數(shù)都由args統(tǒng)一接收,保存成一個元組的形式

def mysum(*args):

the_sum=0for i inargs:

the_sum+=ireturnthe_sum

the_sum= mysum(1,2,3,4)print(the_sum)*args求和函數(shù)應(yīng)用

def stu_info(**kwargs):print(kwargs)print(kwargs['name'],kwargs['sex'])

stu_info(name= 'alex',sex = 'male')

動態(tài)參數(shù)有兩種:可以接受任意個參數(shù)

*args : 接收的是按照位置傳參的值,組織成一個元組

**kwargs: 接受的是按照關(guān)鍵字傳參的值,組織成一個字典

args必須在kwargs之前

重要總結(jié):

只有調(diào)用函數(shù)的時候

按照位置傳 : 直接寫參數(shù)的值

按照關(guān)鍵字: 關(guān)鍵字 = 值

定義函數(shù)的時候:

位置參數(shù) : 直接定義參數(shù)

默認(rèn)參數(shù),關(guān)鍵字參數(shù) :參數(shù)名 = '默認(rèn)的值'

動態(tài)參數(shù) : 可以接受任意多個參數(shù)

參數(shù)名之前加*,習(xí)慣參數(shù)名args,

參數(shù)名之前加**,習(xí)慣參數(shù)名kwargs

順序:位置參數(shù), *args,? ?默認(rèn)參數(shù),??? **kwargs

函數(shù)的注釋

def func():

''' 這個函數(shù)實現(xiàn)了什么功能

參數(shù)1:

參數(shù)2:

:return: 是字符串或者列表的長度

'''

pass

總結(jié)

以上是生活随笔為你收集整理的python函数的定义必须在程序的开头_Python之函数基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。