Function

function1.py

# Functions是可以重復(fù)使用的程序片段醇滥。通過調(diào)用Calling函數(shù)蹬挤,就可以重復(fù)使用
# len range 都是內(nèi)置函數(shù)
# 函數(shù)用來構(gòu)建不同塊 通過def來定義


def say_hello():   #這個函數(shù)沒有參數(shù)
    #該塊屬于這一函數(shù)
    print('hello world')
#函數(shù)結(jié)束
print('Done')

say_hello()
say_hello()

function_param.py

#參數(shù)在定義函數(shù)的圓括號中指定 通過(,)進行分隔
#定義函數(shù)時給定的名稱叫形參Parameters 
#調(diào)用函數(shù)時提供給函數(shù)的值叫實參Arguments


def print_max(a,b):   #a,b為形參
    if a > b:
        print(a, 'is maximum')
    elif a == b:
        print(a, 'is equal to', b)
    else:
        print(b, 'is maximum')

#直接傳遞字面值
print_max(3,4)  

#以參數(shù)形式傳遞
#x y為實參
x = 5
y = 7
print_max(x,y)

function_local.py

# 在函數(shù)內(nèi)部聲明變量時殊鞭,它不會與函數(shù)外部的同名變量產(chǎn)生關(guān)系
# 它的作用域Scope僅在函數(shù)內(nèi)部

x = 50
def func(x):
    print('global x is', x)
    x = 2
    print('change local x to', x)

func(x)
print('global x is still', x)

function_global.py

# 要想定義一個global變量必須要使用global關(guān)鍵字

x = 50
def func():
    global x #定義此處的x為global變量 global x,y,z
    
    print('global x is', x)
    x = 2
    print('change global x to', x)

func()
print('Now global x is', x)

function_default.py

# 為函數(shù)提供默認值
# 通過(=)來為參數(shù)指定默認參數(shù)值
# 默認參數(shù)值是不可變的颅围,即字面值常量

def say(message='Hi',times=1):
    print(message * times)

say()
say('Hello\t')
say('Hello\t',5)

#只有位于參數(shù)列表末尾的參數(shù)才能被賦予參數(shù)值髓抑,即在參數(shù)列表中
#有默認參數(shù)值的參數(shù)不能在沒有默認參數(shù)值的參數(shù)前面  因為值是按照參數(shù)位置依次分配的
#example:
#def func(a,b=5) right
#def func(a=5,b) wrong


#如果你定義的函數(shù)沒有形參 但是你調(diào)用的時候傳遞了實參那也會報錯

function_keyword.py

# 如果函數(shù)有很多參數(shù)校翔,但你只希望對其中的一些進行指定滤港,
# 那么可以通過命名而不是位置來指定參數(shù)


def func(a, b=5, c=10):
    print('a is', a, 'and b is', b, 'and c is', c)

func(3,7)
func(25,c=24)
func(c=50,a=100)
func(a=50)

#一定要指定a的值 不管是通過命名還是通過位置指定 否則會報錯

function_varargs.py

# 定義的函數(shù)里的參數(shù)變量是可變的
# 通過(*)實現(xiàn)

# 聲明一個諸如*param的星號參數(shù)時,從此處開始到結(jié)束的所有位置參數(shù)parameters
# 將被匯集成一個param的元組Tuple

# 聲明一個諸如**param的雙星號參數(shù)時添寺,從此處開始到結(jié)束的所有關(guān)鍵字參數(shù)
# 都被匯集成一個param的字典Dictionary

def total(a=5, *numbers, **phonebook):
    print('a', a)
    
    #遍歷元組中所有項目
    for single_item in numbers:
        print('single_item', single_item)
    
    #遍歷字典中所有項目
    for first_part,second_part in phonebook.items():
        print(first_part,second_part)

total(10,15,21,aa=1,bb=2,cc=4)
print(total(10,15,21,aa=1,bb=2,cc=4))   #這里的None是怎么回事胯盯?
#下面已經(jīng)解釋了函數(shù)默認return的就是None 

***function_return.py

def maximum(x, y):
    if x > y:
        return x
    elif x == y:
        return 'The numbers are equal'
    else:
        return y

print(maximum(2,3))
print(maximum(2,2))
print(maximum(-5,-2))


# return 默認返回的值是None
# 每一個函數(shù)在其末尾隱含了一句 return None
# pass可以不使用return語句 它用于指示一個沒有內(nèi)容的語句塊

function_docString.py

def print_max(x,y):
    # 下面是該函數(shù)的文檔字符串DocString
    # 第一行以大寫字母開頭,以句號結(jié)束计露。闡述這個函數(shù)的作用博脑。
    # 第二行是空行。
    # 第三行開始是詳細的解釋說明
    # 在文檔中出現(xiàn)中文會報錯 這一問題還沒解決
    '''Prints the maximum of two number.
    
        The two values must be integers.'''
    
    x = int(x)
    y = int(y)
    
    if x > y:
        print(x, 'is maximum')
    else:
        print(y, 'is maximum')
        
print_max(3,5)
print(print_max.__doc__)
help(print_max)


# 函數(shù)的__doc__屬性可以獲取文檔字符串內(nèi)容票罐。
# 因為Python所有的東西都是可以視作一個對象 

function_dir.py

# dir()函數(shù)能夠返回由對象所定義的名稱列表 
# 如果對象是一個模塊 則會包含模塊內(nèi)的函數(shù) 類 變量
# dir()函數(shù)返回參數(shù)模塊的名稱列表
# 如果沒有參數(shù) 則返回當前模塊的名稱列表


import sys
# 給出sys模塊的屬性名稱
print(dir(sys))

# 給出當前模塊的屬性名稱
print(dir())

a = 5
print(dir())

del a
print(dir())


# dir()能對任何對象工作   dir(str)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末叉趣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子该押,更是在濱河造成了極大的恐慌疗杉,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚕礼,死亡現(xiàn)場離奇詭異乡数,居然都是意外死亡椭蹄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門净赴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人罩润,你說我怎么就攤上這事玖翅。” “怎么了割以?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵金度,是天一觀的道長。 經(jīng)常有香客問我严沥,道長猜极,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任消玄,我火速辦了婚禮跟伏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘翩瓜。我一直安慰自己受扳,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布兔跌。 她就那樣靜靜地躺著勘高,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坟桅。 梳的紋絲不亂的頭發(fā)上华望,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音仅乓,去河邊找鬼赖舟。 笑死,一個胖子當著我的面吹牛方灾,可吹牛的內(nèi)容都是我干的建蹄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼裕偿,長吁一口氣:“原來是場噩夢啊……” “哼洞慎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嘿棘,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤劲腿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鸟妙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體焦人,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡挥吵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了花椭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忽匈。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖矿辽,靈堂內(nèi)的尸體忽然破棺而出丹允,到底是詐尸還是另有隱情,我是刑警寧澤袋倔,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布雕蔽,位于F島的核電站,受9級特大地震影響宾娜,放射性物質(zhì)發(fā)生泄漏批狐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一前塔、第九天 我趴在偏房一處隱蔽的房頂上張望嚣艇。 院中可真熱鬧,春花似錦嘱根、人聲如沸髓废。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慌洪。三九已至,卻和暖如春凑保,著一層夾襖步出監(jiān)牢的瞬間冈爹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工欧引, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留频伤,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓芝此,卻偏偏與公主長得像憋肖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子婚苹,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容