函式基礎和函式引數

人生努力努力努力就好發表於2023-09-29

第一部分:函式基礎

 函式的作用意義:

  1.為了更好地管理程式碼,可能對應的程式碼塊需要重複多次使用,所以透過一個函式封裝起來,便於下次直接呼叫

  2.方法實際上是透過函式實現的

例1:

# type()  # 內建函式
def lis():
    li=[1,2,3]
    li.append(4)
    li.pop(2)  # 指定刪除
    # print(li)  # [1, 2, 4]
    return li # 只有這裡有return返回值呼叫的時候才能列印出來

a=lis() # 呼叫
print(a) # None

執行截圖:

 例2:字母大小寫轉換

s='abc'
s2=s.upper()  # 有個return返回值給到s2接受
print(s2)

執行截圖:

 第二部分:函式引數

 例1: 預設引數實參沒有傳值的時候就使用預設值,傳了值就按下面的實參,注意:預設引數要位於必備引數列表的後面

def name(a,b=1):  # 定義函式的時候寫的引數叫做形參:必備引數
    num=a+b
    print(a)
    print(b)
    return num  # 這裡有沒有retrun的作用區別注意一下
# b有預設值暫時不傳值進去了 l=name(6) # 實參 ===》 這裡的l只接受return返回值 print(l)

執行截圖:

 如果給b也傳值進去:

# l=name(6)  # 實參  ===》 這裡的l只接受return返回值
l=name(6,2)
print(l)

執行截圖:

 注意:return 和print的區別

  return:返回結果,結束函式
  print:列印結果
  如果要兩個數拼接就需要函式體裡面有返回值才可以實現
def name(a,b=1):  # 定義函式的時候寫的引數叫做形參:必備引數
    num=a+b
    print(a)
    print(b)
    return num  

# l=name(6)  # 實參  ===》 這裡的l只接受return返回值
l=name(6,2)
# print(l)

# 如果要兩個數拼接就需要函式體裡面有返回值才可以實現
print('總和是:%s,請核實一下資訊'%l)

例題2:不定長引數(不限定長度,也可以不傳引數)*args  

def name(a,b=1,*args):  # 定義函式的時候寫的引數叫做形參:必備引數
    num=a+b
    print(a)
    print(b)
    # return num
    print(args)  # (2, 4, 5)

l=name(6,4,2,4,5)  # 實參  ===》 這裡的l只接受return返回值
# l=name(6,4,*(2,4,5)) # 也可這樣寫
print(l)

執行截圖:

 例3:不定長引數:**kwargs(不管傳多少個引數都可以)

def name(*args,**kwargs):  
print(args) # (2, 4, 5) print(kwargs) # l=name(6,4,2,4,5) # 實參 ===》 這裡的l只接受return返回值 l=name(6,4,*(2,4,5),**{'a':3,'c':1}) # 也可這樣寫 print(l)

執行截圖:

 例4:指定傳引數

def name(a,b=1,*args): 
    num=a+b
    print(a)
    print(b)
    return num

al1=name(a=3,b=5)  # 這樣寫可指定傳參
print(al1)

執行截圖:

 第三部分:常見內建函式

 

1.過濾器:filter(函式,過濾的物件)

li=[3,2,1,0,5,7,9]
def num(obj):
    if obj>=5:
        # print(obj)
        return obj

# 過濾器:filter(函式,過濾的物件)
# list(filter(num,li))
# tu=tuple(filter(num,li))
tu=str(tuple(filter(num,li)))
# 把元組轉換成字串拼接到字串裡面
print('優秀學員:%s'%(tu))

執行截圖:

 2.zip:將物件逐一配對(沒有的就不配對了)

li1=[11,2,4,5]
t=('小明','小花','小張')
print(dict(zip(li1,t)))  # 配對:型別轉換

執行截圖:

 3.enumerate :返回一個可以列舉的物件( 型別轉換才可以看到效果)

print(list(enumerate(['小明','肖工','李工'])))
print(tuple(enumerate(['小明','肖工','李工'])))
print(dict(enumerate(['小明','肖工','李工'])))

執行截圖:

4.eval:取出字串中的內容

# 將字串當成有效的表示式來求值並返回計算結果,不能賦值
b=22
eval('print(123)')
eval('print(b)')

執行截圖:

 5.exec :執行字串編譯過的字串

c='print(123)'
exec(c)
exec('d=5')  # 可以賦值
print(d)

執行截圖:

 6.map(與filter的區別是不管是否滿足都會返回,不滿足的返回預設None,可以手動改下)

li2=[62,82,81,90,95,77,69]
def f(o):
    if o>=80:
        return '優秀'
    else:
        return '加油'

print(li2)
m=list(map(f,li2))
print(m)

執行截圖:

 練習:

定義一個函式,可以對傳入的資料進行排序, 透過一個引數來決定是正向排序還是反向排序

 

每逢佳節倍思親,又是一年中秋,國慶。祝願所有親朋好友月餅節吃的開心,喝的浪漫,對於自己還是那句話先努力掙錢吧,沒有足夠的積蓄哪有想要詩與遠方的遐想與底氣呢? -----------加油吧,打工人

 

相關文章