今日有點晚,上午去hilston開會 廣東省科學院&白俄羅斯科學院所長會議。。。學習了一個上午,簡直收獲良多。。下午又多問題處理。。。。網(wǎng)站又聚餐。。只能回來加加班處理一下今日的內容了(不堅持,又被遺忘了),還是要堅持一下學習Python,不然真是忘記忘記再忘記,之后就不搞了。。。
    今日我們說函數(shù):
    1. 函數(shù) 從小學-初中經常說的x = y+1 ,x,y都是有因果關系的,我們叫函數(shù)。今日我們在編程說的函數(shù)有區(qū)別的。他是一個代碼的報裝,當然也有因果關系。你執(zhí)行/調用有相關的結果。例如:
    def abc():
         print("帥哥")

    ### def 是 define的縮寫,定義函數(shù)必須有的開頭;
    ### abc 是函數(shù)名字。。。方便調用。。。。其實可以這里理解 變量= xxxx ;同理 abc = 代碼;abc也是一個變量名字/函數(shù)名字。。。。
    ### print("帥哥")  是代碼---叫函數(shù)體(可以有N行)
    ### () 用來干啥的?有參數(shù) 你可以放。。沒有你可以不放。。。

    格式:
    def  函數(shù)名(參數(shù)):
        函數(shù)體

    就這樣的格式。。。。。。我們說一下 參數(shù)。。。(但是不建議大家死機,只要知道位置參數(shù)就可以了)

    def abc(a,b,c):
        print(a)
            print(b)
            print(c)

    ####這里要說一下 調用  abc(1,2,3) 這樣個就是調用
    def abc(a,b,c)  ##a,b,c 叫位置參數(shù)
    abc(1,2,3,)       ##1,2,3 叫實參

    參數(shù)還分:位置參數(shù),默認參數(shù),不定長參數(shù)。。。是不是有點蒙?還是記得一種就可以了。。其他跟進自己積累慢慢來就可以了。
    不過我們還是要說一下:
    1. 默認參數(shù):
    def abc(a,b,c=5)
        print(a)
            print(b)
            print(c)

    abc(1,3)  ##輸出 1,3,5  ###為什么不用3個實參,就可以輸出5? 這就是默認參數(shù)的作用,注意:位置參數(shù)是固定的a,b 就是1,3 不可能 a=3,b=1 位置參數(shù)是死的。。

    2. 不定長參數(shù).
 def abc(*args):
     print(args)

abc(1,3,4,5) ###輸出是 元組 tuple....如何抽取?

def abc(*args):
    #print(args)
    for i in args:
            print(i)

abc(1,3,4,5) ####看看區(qū)別,是不是一個個顯示的。。。

所以一般人,我們不用*args,但是有時候迫于項目變化,預計到未知,還是可以這樣處理一下。。。

不長參數(shù),還有一個就是 **kargs ;跟*args 有什么區(qū)別,多一個*k

def abc(**kargs):
    print(kargs)

abc(a=1,b=2,c=3)  ###你會發(fā)現(xiàn)他是一個字典。。。所以如果不知道未來發(fā)展用多少個參數(shù),但是又要為他做準備,開了一下字典這種吧,跟默認參數(shù)是不是有點像。。。。這樣直接在函數(shù)體做 添加嗎。。。。

######################################################################################
函數(shù)中的 return 還是要說一下。。。
有些函數(shù)是不會有 return ,因為它不會 對返回值有處理,有想法。這里我們要說明一下,你不添加(默認 return是 None),
一般函數(shù)體執(zhí)行完畢,如果你有對返回值有進一步處理,你就會定義,后面編碼時候有關聯(lián)。是不是很抽象?
舉例:
def abc(a,b):
    if a>b:
            print("a>b")
        elif a
              
            
          

 def b():
    Print("是的,非常好")
   a()

            
                  b() ##回車后。。。

    “是的,非常好”
    “帥氣”
    ---------------為什么是這個順序?
    1. 在b() 調用前,上面的都只是放在內存,沒有執(zhí)行;
    2. 在b 調用了 a 這時候才執(zhí)行a的內容,所以他在后面。。。。

    +++++++++++++++++++++++++++++++++++++++++++
    是不是內容多了一點,但是非常簡單,因為我們用最簡單的例子,來搞掂你的疑惑,內容不用多,也不用難。
    關鍵還是知道這函數(shù)什么,然后

    函數(shù)就是用來 精簡你的 代碼的,重復的內容,就嘗試去定義 函數(shù)吧。。。。例如
    print("samly71帥氣“) ##打印1000次。。。。你牛逼了
    print
    print
    print
    ----------------1000次,回頭第1個炒你。。。

    也許你想到
    for i in range(1,1001):
        print("samly71帥氣“)
    -----------------確實有進步,但是如果 5000次呢?還有如果是你呢?

    number = input("打印的次數(shù): ")
    content = input("輸出的內容: ")

    def print_content(number,content):
        number = int(number)  
               ##py2 python3 對input的類型是不一樣的。。
                   for i in range(1,number+1):
                         print(content)

    print(number,content)
    -----------------是不是,覺得比之前好多了?是的,需求對新人來說應該不斷去消化,對自己提要求。。。