函數(shù)一

函數(shù)

自定義函數(shù)
函數(shù)的參數(shù)
函數(shù)的返回值
函數(shù)的作用域
函數(shù)介紹

函數(shù)

image.png

函數(shù)介紹 ( 熟悉 )

函數(shù)介紹:
函數(shù)是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。
函數(shù)作用:
提高 應(yīng)用的模塊性代碼的復(fù)用性

自定義函數(shù) ( 掌握 )

定義規(guī)則:

  • 函數(shù)代碼塊以 def 關(guān)鍵詞 開頭 ,后接 函數(shù)標(biāo)識符名稱 和 圓括號()
  • 圓括號中間 可以 放入?yún)?shù)
  • 函數(shù)內(nèi)容以 冒號 起始,并且 縮進(jìn)。
image.png

注意:

  • 函數(shù) 只有在調(diào)用時才會執(zhí)行,通過 function_name(param) 進(jìn)行調(diào)用

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

  • 形參與實(shí)參
  • 可變類型參數(shù)與不可變類型參數(shù)
  • 位置參數(shù)
  • 關(guān)鍵字參數(shù)
  • 默認(rèn)值參數(shù)
  • 可變長度參數(shù)

形參與實(shí)參:

  • 形參 就是 函數(shù)定義中的 參數(shù),沒有實(shí)際的值,通過別人賦值后才有意義,相當(dāng)于變量。
  • 實(shí)參 就是 調(diào)用函數(shù)時傳入的 參數(shù),是一個實(shí)際存在的參數(shù)。
image.png
def test_one(b):     # 函數(shù)定義時傳入:形參
    print(b)
a = 1
test_one(a)         # 函數(shù)調(diào)用時出入:實(shí)參
'''
這整個過程,相當(dāng)于
a = 1
b = a
'''

可變類型參數(shù)與不可變類型參數(shù):

  • 不可變類型參數(shù)在函數(shù)體內(nèi)對變量重新賦值,相當(dāng)于重新開辟了一塊內(nèi)存來保存值
  • 可變類型參數(shù)在函數(shù)體內(nèi)***可以改變原有的值****.
def test_one(a):
    # 整數(shù)為不可變對象
    a = 10
    print('inner:', a, id(a))
# inner: 10 496030912

a = 1
test_one(a)
print('outer:',a , id(a))
# outer: 1 496030768
def test_one(li):
    # 列表時可變數(shù)據(jù)類型
    li.extend([1, 22])
    print('inner:', li, id(li))
# inner: [1, 2, 3, 4, 1, 22] 23983968


li = [1, 2, 3, 4]
test_one(li)
print('outer:',li ,id(li))
# outer: [1, 2, 3, 4, 1, 22] 23983968

位置參數(shù):

  • 位置參數(shù)也就是實(shí)參形參 順序 一一對應(yīng),而不論變量名
    關(guān)鍵字參數(shù):
  • 形參 = 實(shí)參 形式指定,不論參數(shù)位置
# 實(shí)現(xiàn)兩個數(shù)字相加
def sum_nums(num1,num2):
    res = num1 + num2
    print(f'num1:{num1}')
    print(f'num2:{num2}')
    print(f'{num1} + {num2} = {res}')


num1 = int(input('請輸入num1:'))
num2 = int(input('請輸入num2:'))
# sum_nums(num1,num2)
# 位置參數(shù):實(shí)參于形參的順序是一一對應(yīng)。無論變量名。實(shí)參于形參個數(shù)一致
sum_nums(num1=num1, num2=num2)
# 關(guān)鍵字參數(shù):不受位置影響

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

  • 形參處進(jìn)行賦值,所以當(dāng)調(diào)用時不傳該參數(shù)就默認(rèn)使用形參處的值。當(dāng)調(diào)用時傳了該參數(shù),則覆蓋
    掉默認(rèn)參數(shù)。
# 默認(rèn)值參數(shù),當(dāng)不傳時,就為形參指定的值。
# 如果在實(shí)參中傳了,會覆蓋掉形參中指定值。
def test_one(a, b=2):
    a = a + b
    print(a, b)


a = 1
test_one(a, 10)         # 11 10

可變長度參數(shù):

  • *args 接收時會轉(zhuǎn)為元組數(shù)據(jù)類型
  • **kwargs 接收時會轉(zhuǎn)為字典數(shù)據(jù)類型
# *age-->可變長度的參數(shù),你可以傳也可以不傳,并且長度不做限制。但是會給你統(tǒng)一打包為元組。
def test_one(*args):            # 形參
    print(args)


test_one('amy', 2, 3, 4, 5, 7)  # amy 2 3 4 5 7
# *age-->可變長度的參數(shù),你可以傳也可以不傳,并且長度不做限制。但是會給你統(tǒng)一打包為元組。
def test_one(*args):            # 形參
    print(args)


test_one('amy', 2, 3, 4, 5, 7)  # ('amy', 2, 3, 4, 5, 7)

# 注意:python3.0以后,*args參數(shù)后面只能跟關(guān)鍵字參數(shù)
def test_one(*args, a=1, b):    # 形參
    print(args)


test_one("amy", 2, 3, 4, 5, 7, a=10, b=20)
# ('amy', 2, 3, 4, 5, 7)
# **kwargs-->可變長度的參數(shù),你可以傳也可以不傳,并且長度不做限制。實(shí)參傳需要傳入鍵值對,然后形參將它打包成字典
def test_one(**kwargs):
    print(kwargs)


test_one(a=1, b=2, c=3)
# {'a': 1, 'b': 2, 'c': 3}

解包:

  • a,b,c = (1,2,3)
# 拆包
# a, b, c = (1, 2, 3)
# print(a,b,c,sep='\n')

# 位置參數(shù) 形參實(shí)參個數(shù)一致 并且一一對應(yīng)
def test_one(a, b, c):
    print(a, b, c)


tu = (1, 2, 3)
test_one(*tu)       # 1 2 3
test_one(1, 2, 3)   # 1 2 3

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、函數(shù)簡介 函數(shù)也是一個對象,是計算機(jī)內(nèi)存中開辟的一個區(qū)域; 函數(shù)可以把一部分代碼“存”起來,list也可以“存...
    Py量量風(fēng)閱讀 480評論 0 3
  • 08 函數(shù)一 1. 函數(shù)簡介 函數(shù)也是?個對象 ,對象是內(nèi)存中專門用來存儲數(shù)據(jù)的一塊區(qū)域 函數(shù)?來保存?些可執(zhí)?的...
    Chloris_0320閱讀 195評論 0 0
  • 08-函數(shù)一 1、函數(shù)簡介函數(shù)也是一個對象函數(shù)用來保存一些可執(zhí)行的代碼,并且可以在需要時,對這些語句進(jìn)行多次調(diào)用函...
    jxxh閱讀 177評論 0 0
  • 1.函數(shù)的簡介 函數(shù)也是一個對象對象是內(nèi)存中專門用來存儲數(shù)據(jù)的一塊區(qū)域 函數(shù)用來保存一些可執(zhí)行的代碼,并且可以在需...
    止于枯骨1閱讀 321評論 0 0
  • 1.函數(shù)簡介 函數(shù)也可以是一個對象 函數(shù)用來保存一些可執(zhí)行的代碼,并且可以在需要時,對這些語句進(jìn)行多次調(diào)用。 注意...
    殿臣_e2c6閱讀 217評論 0 0

友情鏈接更多精彩內(nèi)容