新手學習python(五)函數

來源:互聯網
上載者:User

標籤:可變參數   全域變數   ping   san   use   lse   global   多個   fan   

1)定義: 函數是指將一組語句的集合通過一個名字(函數名)封裝起來,要想執行這個函數,只需調用其函數名即可。

2)使用函數的好處:1、簡化代碼;2、提高代碼的複用性;3、代碼可擴充

3)舉個例子:

def sayhello():    #使用關鍵字def定義函數,後面是函數名

    print(‘hello world‘)   #函數體

sayhello()   #調用函數

4)參數傳遞

def calc(a,b):   #a,b為形參,形式參數

    res=a*b

    print(‘%s * %s=%s‘%(a,b,res))

calc(7,8)   #實參,實際參數

注意:形參變數只有在被調用時才分配記憶體單元,在調用結束時,即刻釋放所分配的記憶體單元。因此,形參只在函數內部有效。

5)四種形參類型

1.位置參數:字面意思也就是按照參數的位置來進行傳參,比如說上面的calc函數,a和b就是位置參數,位置參數是必傳的,有幾個位置參數在調用的時候就要傳幾個,否則就會報錯了。

2.預設參數,預設參數就是在定義形參的時候,給函數預設賦一個值。例如:

def op_file(file_name,content=None):   #content為預設值參數,非必填
f = open(file_name,‘a+‘,encoding=‘utf-8‘)
f.seek(0)
if content: #不為空白代表寫
f.write(content)
f.flush()
else:
all_user=(f.read()) #all_user 局部變數,只能在函數內使用
return all_user #調用完函數之後,返回結果
f.close()

3.可變參數,可變參數用*來接收,非必傳參數,不限制參數個數,把傳過來的參數放到元祖裡,一一對應。
def syz(*args):  #可變參數,即參數組
print(args)
# username=args[0] #多個參數時,按照下標取資料
syz()
syz(‘zhangsan‘,‘35435345‘)

4.關鍵字參數,用**來接收,非必傳參數,不限制個數,傳過來的參數,放到字典裡
def syz2(**kwargs):   #關鍵字參數
print(kwargs)

syz2()
syz2(name=‘zhangsan‘,age=38)
syz2(name=‘zhangsan‘,age=38,addr=‘回龍觀‘,home=‘四川‘)

6)函數的傳回值

每個函數都有傳回值,如果沒有在函數裡面指定傳回值的話,在python裡面函數執行完之後,預設會返回一個None,函數也可以有多個傳回值,如果有多個傳回值的話,會把傳回值都放到一個元組中,返回的是一個元組。

為什麼要有傳回值呢,是因為在這個函數操作完之後,它的結果在後面的程式裡面需要用到。

函數中的傳回值使用return,函數在遇到return就立即結束。

def calc(a,b):

    c=a*b

    return c,a,b   #函數傳回值

res=calc(5,6)   #把函數的傳回值賦給res

print(res)

7)局部變數和全域變數

局部變數意思就是在局部生效的,出了這個變數的範圍,這個變數就失效了,比如上面的c就是一個局部變數,出了這個函數之後,就沒有c這個值了

全域變數的意思就是在整個程式裡面都生效的,在程式最前面定義的都是全域變數,全域變數如果要在函數中修改的話,需要加global關鍵字聲明,如果是list、字典和集合的話,則不需要加global關鍵字,直接就可以修改。

name =‘zhangsan‘  #全域變數
def sayname():
global name #如果要修改全域變數,需要聲明一下,你修改值是全域變數
name=‘lisi‘
print(name)
 

新手學習python(五)函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.