函式定義 返回值 函式引數

2022-09-16 08:54:11 字數 3742 閱讀 6092

目錄函式的定義的三種形式

函式的呼叫

函式的返回值

函式的引數

位置引數

預設形參

關鍵字實參

可變長引數

函式就是一種具備某一功能的工具,事先將工具準備好就是函式的定義,遇到場景拿來就用。

def 函式名(等同於變數)():   # 定義函式

"""對函式的描述"""

**塊函式名() # 函式呼叫

def register():

"""註冊功能"""

count = 0

while count < 3:

username_inp = input('請輸入你的使用者名稱:').strip()

pwd_inp = input('請輸入你的密碼:').strip()

re_pwd_inp = input('請再次確認你的密碼:').strip()

if re_pwd_inp != pwd_inp:

print('兩次密碼輸入不一致!')

count += 1

continue

with open('userinfo.txt', 'a', encoding='utf-8') as fa:

fa.write(f':\n')

print('註冊成功')

break

register()

def login():

"""登入功能"""

username_inp = input('請輸入你的使用者名稱:').strip()

pwd_inp = input('請輸入你的密碼:').strip()

user_info = f':'

with open('userinfo.txt', 'r', encoding='utf-8') as fr:

data = fr.read()

user_info_list = data.split('\n')

if user_info in user_info_list:

print('登入成功')

else:

print('登陸失敗')

login()

定義了乙個函式,但啥都沒有

def func():

pass

def add(x, y):

"""有參函式"""

print(int(x) + int(y))

add(1, 2)

def func():

print('hello world')

使用函式名()的形式就可以呼叫函式了

def func(x, y):

"""給定兩個數, 列印較大的數"""

if x > y:

print(x)

else:

print(y)

print(func)

func(10, 20) # 加括號就能呼叫(執行記憶體中的**)

# 列印結果:

# 函式的位址

20

return 返回乙個值

def add(x, y):

return x + y

res = add(1, 2)

print(res)

# 列印結果

3

return沒有返回值,預設返回none

def add(x, y):

print(x, y)

# return x + y

res = add(1, 2)

print(res)

# 列印結果:

1 2none

return可以返回多個值,可以返回任意資料型別,預設用元組形式返回

def add(x, y):

print(2)

return x, y, x + y

res = add(1, 2)

print(res)

# 列印結果:

2(1, 2, 3)

return會終止函式,不執行下面的**,即使有多個return,只會執行第乙個return,不會執行下乙個

def add(x, y):

print(2)

return x, y, x + y # 遇到return就會終止函式

print('hello world')

return x

res = add(1, 2)

print(res)

# 列印結果:

2(1, 2, 3)

在函式定義階段括號內定義的引數,稱之為形式引數,簡稱形參,本質上就是變數名

def func(x, y):

print(x)

print(y)

在函式呼叫階段括號內傳入的引數,稱之為實參

func(1, 2)
在函式定義階段,按照從左往右的順序依次定義的引數,稱之為位置形參

def func(x, y):

print(x)

print(y)

在函式呼叫階段,按照從左往右的順序定義的引數,稱之為位置實參,依次傳值給位置形參

func(1, 2)
在函式定義階段,就已經被賦值

def func(x, y=10):

print(x)

print(y)

func(2)

在呼叫函式時,按照位置形參名傳值

func(y=2, x=1)
關鍵字實參必須在位置實參後面

形參中的*會將溢位的位置實參全部接收,然後儲存元組的形式,然後把元組賦值給*後的引數。需要注意的是:*後的引數名約定俗成為args。

def f1(*args):

print('args:', args)

f1(1, 23, 4) # args接收位置實參多餘的引數

# 列印結果:

args: (1, 23, 4)

'''

形參中的**會將溢位的關鍵字實參全部接收,然後儲存字典的形式,然後把字典賦值給**後的引數。需要注意的是:**後的引數名約定俗成為kwargs。

'''def f2(a,**kwargs):

print('kwargs:', kwargs)

f2(x=12, a=10, b=9) # kwargs接收關鍵字實參多餘的引數

# 列印結果:

kwargs:

def func1(a,b,c,d):

print(a,b,c,d)

lt = [1,2,3,4]

func1(*lt) # *lt列表中的元素打散成位置實參依次傳給位置形參

def func(a, b):

print(a, b)

dic =

func(**dic) # **dic把字典打散成關鍵字實參然後傳給函式func

函式引數和函式返回值

思考乙個問題,如下 現在需要定義乙個函式,這個函式能夠完成2個數的加法運算,並且把結果列印出來,該怎樣設計?下面的 可以嗎?有什麼缺陷嗎?def add2num a 11 b 22 c a b print c為了讓乙個函式更通用,即想讓它計算哪兩個數的和,就讓它計算哪兩個數的和,在定義函式的時候可以...

python 函式 引數 返回值

函式 function 也叫方法 method 是一組可以重複使用的 段。函式分為內部函式和使用者自定義函式。內部函式就是程式語言已經寫好了,使用者無序定義就能直接呼叫的函式,比如說len str print 等,但是這些函式還遠不能滿足實際開發,故使用者可以自定義函式。函式的結構是 def 函式名...

函式 引數 返回值 遞迴

函式 函式表示式就是忽略名字 1 函式宣告 function onname 2 命名函式表示式 var test function abc 3 匿名函式表示式 var demo function 因為匿名函式表示式比較常用,所以說函式表示式一般是指匿名函式表示式 引數 形式引數 沒有實際傳值 實際引...