天天看點

九、函數初識

函數出現的意義

為了避免重複造輪子  是以出現了函數  就是把某一特定的功能封裝起來

def  my_func(li):               def為關鍵字 定義函數    my_func  為函數名命名和      變量命名一樣 

  for i in li:

    count+=1             

    return count     return   把傳回值賦給 函數的調用者      如果傳回值沒有則 函數調用者的傳回值為None   如果傳回值有好多個則,函數                                                                                                                                                                                     調用傳回值為多個值組成的元祖

my_func()                      執行函數

函數的傳參

函數的傳參數分為兩個大類

def my_len(li):                   這裡的li就是形參

  for i li:         

  count+=1

my_len()

s = 'edeffaf'

print(my_len(s))        這裡的s就是實參

從實參的角度來看有這麼幾個特征

1,位置傳參 一一對應  按順序  2,關鍵字傳參 一一對應  可以不按順序 3,混合傳參  關鍵字傳參 永 遠在位置傳參後面

位置傳參

def re(a,b,c):
    print(a)
    print(b)
    print(c)
re(3,24,2)
關鍵字傳參

      
def re(a,b,c):
    print(a)
    print(b)
    print(c)
re(b=24,a= 234,c = 2)
      
def compare(a,b):
  return a if a>b else b
print(comapare(b = 300,a = 200))
      

  

混合傳參    關鍵字傳參永遠在後面

def re(a,b,c,d,e):
    print(a)
    print(b)
    print(c)
    print(d)
    print(e)
re(1,9,d=23,e=24,c = 2)
從形參的角度來看有這麼幾個特征 
 1,位置傳參  按順序一一對應  2,預設傳參   傳參則覆寫  否則就不覆寫   預設傳參永遠在位置傳參後面
 
位置傳參
      
def re(a,b,c):
    print(a)
    print(b)
    print(c)
re(3,24,2)      
預設傳參 
      
def func(a,b=23):
    print(a,b)
func(66)      
def info(name,sex='男'):
    with open ('name_list',encoding="utf-8",mode='a') as f1:
        f1.write('{}\t{}\n'.format(name,sex))
while True:
    name = input("請輸入:男生以1開頭").strip()
    if '1' in name:
        name = name[1:]
        info(name)
    else:
        info(name,'女')