Python(五) Python 中的函數(shù)

Python 中的函數(shù)

Python中的函數(shù)和其他程序設(shè)計(jì)語言一樣,函數(shù)的主要作用是代碼重用,在邏輯上分割代碼的大小。

定義函數(shù)

通過def 關(guān)鍵字定義。def關(guān)鍵字后面跟一個(gè)函數(shù)的標(biāo)識(shí)名稱,后面跟一對(duì)圓括號(hào)。圓括號(hào)中間是參數(shù)變量名,該行用冒號(hào)結(jié)尾。接下來是一塊語句,他們是函數(shù)體。

函數(shù)定義的例子:

#!/usr/bin/env python
# *coding=utf-8
""" set encoding """
def sayhello():
    """example of python function"""
    print "Hello"

sayhello()

函數(shù)形參

函數(shù)的形參具有局部性,在函數(shù)中使用參數(shù)應(yīng)該注意這種局部性,并且加以區(qū)分,在這里我們可以看一個(gè)例子。

#!/usr/bin/env python
# *coding=utf-8
""" set encoding """

def func(x):
    print "x is %d" %(x)
    x = 2
    print "change local x to %d" %(x)

x = 50
func(x)
print "x is still %d" %(x)

在函數(shù)中,我們第一次使用x 的值的時(shí)候,Python 使用函數(shù)聲明的形參的值。
接下來,我們將2賦值給x。這個(gè)時(shí)候x是函數(shù)的局部變量,所以我們?cè)诤瘮?shù)內(nèi)部改變x 的時(shí)候,在主塊中的x不受影響。

Golbal 語句

如果需要為在函數(shù)外面定義的變量賦值,那么需要在函數(shù)內(nèi)告訴python,這個(gè)變量不是局部的,是全局的。使用golbal語句,可以明確的讓讀者知道,這個(gè)變量是在函數(shù)外面定義的。

def func():
    global x
    print "x is", x
    x = 2
    print "changed local x to ", x

x = 50
func()
print "Value of x is", x

運(yùn)行結(jié)果:

PS G:\2> & python g:/2/exp.py
x is 50
changed local x to  2
Value of x is 2
PS G:\2>

默認(rèn)參數(shù)值

對(duì)于一些函數(shù), 你希望它的一些參數(shù)是可選的,用戶可以根據(jù)需要輸入?yún)?shù)的值。如果用戶不想要為這些參數(shù)提供數(shù)值的話,這些參數(shù)就可以使用默認(rèn)值??梢栽诤瘮?shù)定義的形參名之后加上賦值運(yùn)算符(=)和默認(rèn)值,從而給參數(shù)指定默認(rèn)參數(shù)值。

#!/usr/bin/env python
# *coding=utf-8
""" set encoding """

def sayhello(name, time = 5):
    """ defaulf is 5"""
    print name
    print "hello"*time

sayhello("kk")
sayhello("kk",1)
PS G:\2> & python g:/2/exp.py
kk
hellohellohellohellohello
kk
hello
PS G:\2>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)于譯者:這是一個(gè)流淌著滬江血液的純粹工程:認(rèn)真,是 HTML 最堅(jiān)實(shí)的梁柱;分享,是 CSS 里最閃耀的一瞥;...
    iKcamp閱讀 1,589評(píng)論 0 2
  • 1.函數(shù)的介紹 為什么要有函數(shù)?因?yàn)樵谄綍r(shí)寫代碼時(shí),如果沒有函數(shù)的話,那么將會(huì)出現(xiàn)很多重復(fù)的代碼,這樣代碼重用率就...
    機(jī)械師的呆子閱讀 798評(píng)論 0 0
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,667評(píng)論 1 51
  • 學(xué)校繁花似錦,我是其中最普通的一朵。不爭(zhēng)妍斗艷,只靜靜的做自己。無所事事的人,像死水,終究會(huì)腐爛;奮發(fā)圖強(qiáng)的人,像...
    周瑀閱讀 186評(píng)論 1 1
  • 今天家長開放日,跟家長們聊到了陪伴。一個(gè)家長在朋友圈說:自己總是抽空陪伴孩子,但是反思到自己的陪伴是不是有效!不過...
    肺話連篇閱讀 350評(píng)論 0 0

友情鏈接更多精彩內(nèi)容