1. 程式人生 > >初識函數

初識函數

name break 內容 == mod max 檢查 封裝 文件名

  • 函數
    • 概念:對功能的封裝
    • 格式: def 函數文件名(形參列表):\n 函數體(return)\n 調用:函數名(實參)
  • return
    • 函數在運行過程中遇到return,程序停止,隨即返回return後的值
    • 1函數中沒有return,或者return後沒有值,返回None
    • 2函數中間如果有return,但是沒有指定返回的值,返回None
    • 3函數中有return 值 , 返回指定的值
  • 參數:函數執行的時候給函數傳遞信息
    • 形參:定義函數過程中,函數名位置設置的變量
      • 位置參數
      • 默認參數,先位置參數後
      • 動態參數
    • 實參:函數調用過程中賦予的值
      • 位置參數,按照形參的位置賦值
      • 關鍵字參數,按照形參的名字給形參傳值
      • 混合參數:即用位置參數也用關鍵字參數(位置參數在前,關鍵字參數在後)
    • 傳參:函數調用過程中,把實參賦予形參的過程

習題

1,寫函數,檢查獲取傳入列表或元組對象的所有奇數位索引對應的元素,並將其作為新列表返回給調用者。

2,寫函數,判斷用戶傳入的對象(字符串、列表、元組)長度是否大於5。

3,寫函數,檢查傳入列表的長度,如果大於2,將列表的前兩項內容返回給調用者。

4,寫函數,計算傳入函數的字符串中, 數字、字母、空格 以及 其他內容的個數,並返回結果。

5,寫函數,接收兩個數字參數,返回比較大的那個數字。

7,寫函數,檢查傳入字典的每一個value的長度,如果大於2,那麽僅保留前兩個長度的內容,並將新內容返回給調用者。

dic = {"k1": "v1v1", "k2": [11,22,33,44]}

PS:字典中的value只能是字符串或列表

8,寫函數,此函數只接收一個參數且此參數必須是列表數據類型,此函數完成的功能是返回給調用者一個字典,此字典的鍵值對為此列表的索引及對應的元素。例如傳入的列表為:[11,22,33] 返回的字典為 {0:11,1:22,2:33}。

9,寫函數,函數接收四個參數分別是:姓名,性別,年齡,學歷。用戶通過輸入這四個內容,然後將這四個內容傳入到函數中,此函數接收到這四個內容,將內容追加到一個student_msg文件中。

10,對第9題升級:支持用戶持續輸入,Q或者q退出,性別默認為男,如果遇到女學生,則把性別輸入女。

11,寫函數,用戶傳入修改的文件名,與要修改的內容,執行函數,完成整個文件的批量修改操作(升級題)。

2
# def jishu(tools): # l = [] # for i in range(len(tools)): # if i % 2 != 0: # l.append(tools[i]) # return l # s = jishu([1,2,3,4,5,6,7]) # print(s) # 3 # def ms(tools): # a = len(tools) # if a >5: # return "max" # else: # return "min" # s = ms("1,2,3,4,56,6,") # print(s) # # 4 # def chang(tools): # l = [] # for i in range(len(tools)): # if len(tools) > 2: # l.append(tools[i]) # return l[0], l[1] # s = chang([1,2,3,4,5,6,7]) # print(s) # 5 # def panduan(tools): # s = 0 # z = 0 # k = 0 # q = 0 # for i in tools: # if i.isdigit() == True: # s+=1 # elif i.isalpha() == True: # z+=1 # elif i==" ": # k+=1 # else: # q+=1 # return ("數字出現%s次字母出現%s次空格出現%s次其他出現%s次"%(s,z,k,q,)) # s=panduan("1,2,3,3,‘ ‘a,s,dsadasd@#$") # print(s) #6 # def shuzi(): # a = int(input("請輸入一個數字:")) # b = int(input("請再輸入一個數字:")) # if a > b: # return a # elif b > a: # return b # else: # return "一樣大" # s =shuzi() # print(s) # 7 # dic = {"k1": "v1v1", "k2": [11,22,33,44]} # def duan(dic): # for i in dic.keys(): # if len(dic[i]) > 2: # dic[i] = dic[i][0:2] # return dic # z = duan({"k1": "v1v1", "k2": [11,22,33,44]}) # print(z) # 8 # def fan(tools): # dic = {} # if isinstance(tools, list): # for i in range(len(tools)): # dic[i] = tools[i] # return dic # z=fan([1,2,3,4,5]) # print(z) # 9 # def student(name,sex,age,edu): # f = open("student-msg",mode="w",encoding="utf-8") # f.write("姓名:%s\n性別:%s\n年齡%s\n學歷:%s"%(name,sex,age,edu)) # f.flush() # f.close() # student("wangjun","man","24","研究生") # # 10 # def student(name,age,edu,sex="男"): # f = open("student-msg",mode="a",encoding="utf-8") # f.write("姓名:%s\n年齡%s\n學歷:%s\n性別:%s\n"%(name,age,edu,sex)) # f.flush() # f.close() # while 1: # yonghu=input("請輸入學生信息,輸出q退出;") # if yonghu.lower()==‘q‘: # break # n = input("輸入名字:") # a = input("輸入年齡:") # e = input("輸入學歷:") # s = input("輸入性別:") # if s == "": # student(n,a,e) # else: # student(n,a,e,s)

  

初識函數