天天看點

python之函數入門

整個專欄皆為《笨辦法學python3》的學習内容,隻是在書本的内容上根據本人的學習進行的記錄,友善之後的回顧。

1、函數的基本結構

def function_name(in_put):
    content
    return output
           

這裡的input和output可以是打包後的東西,打包解包讓函數看起來更加簡潔。比如:

def function_name(*in_put):
    input1,input2=in_put
    content
    return output
           

python中的*和**,能夠讓函數支援任意數量的參數。

調用函數b=function_name(a)的過程是:輸入一個清單a➡指派in_put=a➡對in_put進行解包,并進行函數中的其他操作得到output➡b=output。此時便得到了調用函數的輸出内容b,因為b是一個清單,是以在使用時也可以根據需要解包使用:c,d=b,也可以使用“{}”.format()形式。

2、函數的引用

方法一:通過函數名在腳本中直接引用,例如之前的b=function_name(a)

方法二:在shell中運作python,可以引入已經寫好的函數腳本:import ex23 ,之後在需要的時候運用函數:ex23.function_name(input)

3、補充

另外,通過return可以傳回到其他函數,将多個函數的功能進行關聯,其中也包括傳回本函數,這樣在符合條件的情況下,函數會不斷的自我循環,這在有些時候可以避免另外添加循環語句的備援。舉例:

案例1

def break_words(stuff):
    """This function will break up words for us."""
    words=stuff.split(' ')#split() 通過指定分隔符對字元串進行切片,如果參數 num 有指定值,則分隔 num+1 個子字元串
    return words

def sort_words(words):
    """Sorts the words."""
    return sorted(words)#排序,對可疊代對象進行排序
def sort_setence(sentence):
    """Takes in a full sentence and returns the sorted words."""
    words=break_words(sentence)
return sort_words(words)
           

案例2

def main(language_file,encoding,errors):
    line=language_file.readline()
    if line:
        print_line(line,encoding,errors)
        return main(language_file,encoding,errors)