Python學習:def函數的定義、使用及參數傳遞

來源:互聯網
上載者:User

Python編程中對於某些需要重複調用的程式,可以使用函數進行定義,基本形式為:

def 函數名(參數1, 參數2, ……, 參數N):
    執行語句

函數名為調用的表示名,參數則是傳入的參數,可以更具需要定義,也可以沒有。# 例1:簡單的函數使用
# coding=gb2312

# 定義函數
def hello():
    print 'hello python!'
    
# 調用函數        
hello()
    
>>> hello python!


函數可以帶參數和傳回值,參數將按從左至右的匹配,參數可設定預設值,當使用函數時沒給相應的參數時,會按照預設值進行賦值。

# 例2:累加計算值
# coding=gb2312

# 定義函數
def myadd(a=1,b=100):
    result = 0
    i = a
    while i <= b:    # 預設值為1+2+3+……+100
        result += i    
        i += 1
    return result

# 列印1+2+……+10        
print myadd(1,10)
print myadd()       # 使用預設參數1,100
print myadd(50)     # a賦值50,b使用預設值
    
>>> 55
>>> 5050
>>> 3825


Python 函數的參數傳遞時,值得注意的是參數傳入時若為變數會被當作臨時賦值給參數變數,如果是對象則會被引用。

# 例3:
# coding=gb2312

def testpara(p1,p2):
    p1 = 10
    p2.append('hello')

l = []      # 定義一數組對像
a = 20      # 給變數a賦值
testpara(a,l)  # 變數a與對象數組l作為參數傳入
print a     # 列印運行參數後的值
for v in l: # 列印數組對象的成員
    print v
        
>>> 20        # 調用函數後a變數並未被複值
>>> hello   # 而對象l數組則增加成員hello    

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.