天天看點

Python函數基礎學習(定義、函數參數、遞歸函數)

1、本程式是測試函數的基礎、函數的參數、遞歸函數的測試。

#!/usr/bin/python
# -*- coding: utf-8 -*-
    #當程式存在中文時,注釋表明使用utf-8編碼解釋

    #函數學習
print('函數定義')
def result(x,n=2):
    s = 1
    while n>0:
        n = n-1
        s = s*x
    return s
    #使用def定義一個函數,def 函數名(參數):
print(result(2,1))

print('*'*40)
print('測試預設參數')
def school(name,gender,age=6,city='beijing'):
    print('name=',name)
    print('gender=',gender)
    print('age=',age)
    print('city=',city)    
print(school('lingyunmu','man'))
    #預設參數,如果使用中間的預設參數,那麼後面的需要加上key,也就是city
    #參數預設按順序存取

print('*'*40)
print('清單追加元素')
def add_bye(L=None):
    if L is None:
        L = []
    L.append('goodbye')
    return L    
a = [1,2,3]
print(add_bye(a))
    #清單後面追加元素方法
del(a)

print('*'*40)
print('可變參數測試')
def sum(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n
    return sum        
print(sum(1,2,3,4,5,6,7))
print(sum(1,2,3))    
    #定義可變參數,計算和。使用*表示可變參數
print('list或tuple使用可變參數')
list1 = [1,2,3,4]
print(sum(*list1))
    #list或tuple加*,即可使用可變參數函數
del(list1)
del(sum)

print('*'*40)
print('關鍵字參數測試')
def persion(name,age,gender,**other):
    print('name:',name,'age:',age,'gender:',gender,'other:',other)
    
print(persion('lingyunmu',25,'man',city='beijing',interest='pingpang'))
print(persion('zhangsan',25,'man',ing='sleep'))
    #使用**定義關鍵字參數,在必要參數寫完後可根據需求添加其它的參數。
print('使用字典将關鍵字傳進去')
dic = {'city':'beijing','ing':'sleep'}
print(persion('lisi',32,'man',**dic))
    #在字典前加**即刻将字典作為關鍵字參數傳進去
del(persion)

print('*'*40)
print('命名關鍵字參數測試')
def persion(name,age,*,city,job):
    print(name,age,city,job)
    return 0
print(persion('lingyunmu',25,city='beijing',job='computer'))
    #命名關鍵字參數,舉例說明:就是新增賬號時必填的選項。
del(persion)

    #說明:以上參數可任意組合,注意參數定義的順序必須是:
    #必選參數、預設參數、可變參數、命名關鍵字參數和關鍵字參數。
print('*'*40)
print('遞歸函數測試')
def sum(n):
    if n == 1:
        return 1
    print(n,'+','sum(',n,'-1)')
        #檢視遞歸執行的過程
    return n + sum(n-1)
print(sum(5))
    #計算前N項的和

del(sum)      

作者:我要去西藏

本文版權歸作者和部落格共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文連結,否則保留追究法律責任的權利。