第四章 函數之基本結構

4.1 基本結構

  1. 本質:

    • 將多行代碼拿到別處並起個名字,之後經過名字就能夠找到這行代碼並執行編程

  2. 應用場景:

    • 代碼重複執行app

    • 代碼量不少超過一屏,能夠選擇經過函數進行代碼的分割ide

    • 寫代碼方式:面向過程----函數式編程(多)----面向對象編程函數式編程

  3. 基本結構

    # 函數的定義
    def 函數名():
    函數內容
    pass
    # 函數的執行
    函數名()
    # 示例一
    def list_data():
        v = [11,54,52]
        print(v[1])
    list_data() # 54
    View Code

     

    • 函數若是不被調用,則內部永遠不會被執行函數

      
    # 練習題
    # 1.請寫一個函數,函數計算列表 info = [11,22,33,44,55]中全部元素的和
    def list_data():
        s = 0
        info = [11, 22, 33, 44, 55]
        for i in info:
            s = s + i
        print(s)
    list_data()     # 165
    # 2.請寫一個函數,用函數將列表拼接起來
    def new_list(a,b):
        c = []
        c.extend(a)
        c.extend(b)
        print(c)
    a1 = [555,4,6,5,6]
    a2 = [5646,86,6,]
    new_list(a1,a2)     # [555, 4, 6, 5, 6, 5646, 86, 6]
    # 3.計算一個列表的長度
    def list_len(age):
        conten = 0
        for i in age:
            conten +=1
        print(conten)
    v = [11,2,'rtffd','r','g','fsd',77]
    list_len(v)     # 7
    練習題

     

  4. 返回值

    • 函數沒有返回值,默認返回:Noneui

    • 函數內部執行過程當中遇到return,就終止。spa

    • return 能夠返回任意類型code

    • 若是return後面寫了多個結果,,返回給調用者一個tuple(元祖),調用者能夠直接使用解構獲取多個變量對象

    def func():
       return (1,2,3)

    v = func()
    print(v) # (1, 2, 3)

    # 特殊:多個返回值,返回值爲元組
    def func():
       return 5,8,"alex"

    v = func()
    print(v) # (5, 8, 'alex')
    def func(age):
    #函數
    return 9 # 返回默認值爲9,默認:return None
    val = func('asdfghj')
    # 示例一
    1.讓用戶輸入一段字符串,計算字符串中有多少個A字符的個數,有多少就在a.txt中寫多少個"大王八"
    def jisuan_a(aa):
        s = 0
        for i in aa:
            if i =='A':
                s+=1
        return s
    def xieru_d(bb):
        if len(bb) == 0:
            return False
        with open('a.txt',mode='w',encoding='utf-8') as f:
            f.write(bb)
        return True
    a = input("請用戶輸入")
    a1 = jisuan_a(a)
    b = "大王八" * a1
    b1 = xieru_d(b)
    print(b1)
    ​
    # 示例二
    2. 寫函數,計算一個列表中有多少個數字,打印: 列表中有%s個數字。
    # #    提示:type('x') == int 判斷是不是數字。
    def a_list(b):
        s = 0
        for i in b:
            if type(i) == int:
                s = s + 1
        print(s)
    ​
    a = input("請輸入列表")
    a = a_list(a)
    ​
    # 示例三
    2. 寫函數,計算一個列表中偶數索引位置的數據構形成另一個列表,並返回。
    def a_list(b):
        b1 = b[::2]
        return b1
    a = input("請輸入列表")
    a = a_list(a)
    ​
    # 示例三
    3. 讀取文件,將文件的內容構形成指定格式的數據,並返回。
    a.log文件
        alex|123|18
        eric|uiuf|19
        ...
    目標結構:
    a.  ["alex|123|18","eric|uiuf|19"] 並返回。
    b. [['alex','123','18'],['eric','uiuf','19']]
    c. [
        {'name':'alex','pwd':'123','age':'18'},
        {'name':'eric','pwd':'uiuf','age':'19'},
    ]
    # a
    def a_1(a):
        b = []
     #   a = open('log.txt',mode='r',encoding='utf-8')
        for i in a:
            i = i.strip()
            b.append(i)
        print(b)
        return
    a1 = a_1(open('log.txt',mode='r',encoding='utf-8'))
    ​
    # b
    def a_1(a):
        b = []
        for i in a:
            i = i.strip()
            i = i.split('|')
            b.append(i)
        print(b)
        return
    a1 = a_1(open('log.txt',mode='r',encoding='utf-8'))
    ​
    # c
    def a_1(a):
        b = []
        c = {}
        for i in a:
            i = i.strip()
            i = i.split('|')
            c['name'] = i[0]
            c['pwd'] = i[1]
            c['age'] = i[2]
        b.append(c)
        print(b)
        return
    a1 = a_1(open('log.txt',mode='r',encoding='utf-8'))
    示例

     

  5. 總結

    # 狀況一
    def f1():
    pass
    f1()

    # 狀況二
    def f2(a1):
    pass
    f2(123)

    # 狀況三
    def f3()
    return 1
    v1 = f3()

    # 狀況四
    def f4(a1,a2):
    #....
       return 333
    v2 = f4(1,22)
    •  
      總結一:
      
      定義:def 關鍵詞開頭,空格以後接函數名稱和圓括號(),最後還有一個":"。
      
         def 是固定的,不能變,必須是連續的def三個字母,不能分開。。。它們要相親相愛的在一塊兒。
      
         空格 爲了將def關鍵字和函數名分開,必須空(四聲),固然你能夠空2格、3格或者你想空多少都行,但正常人仍是空1格。
      
         函數名:函數名只能包含字符串、下劃線和數字且不能以數字開頭。雖然函數名能夠隨便起,但咱們給函數起名字仍是要儘可能簡短,並能表達函數功能
      
         括號:是必須加的,先別問爲啥要有括號,總之加上括號就對了!
      
      註釋:每個函數都應該對功能和參數進行相應的說明,應該寫在函數下面第一行。以加強代碼的可讀性。
      
      調用:就是 函數名() 要記得加上括號,好麼好麼好麼。

       

  6. if__name__ == '__main__'

    • __name__ == '__main__' 執行的文件就是__name__所在的文件blog

      • 控制當這個py文件被看成腳本直接執行的時候,就執行這裏面的代碼

    • __name__ == '文件名' __name__就是所在文件被導入的時候

      • 當這個py文件被看成模塊導入的時候,就不執行這裏面的代碼

相關文章
相關標籤/搜索