1. 程式人生 > >Python基礎 6 函式(一)

Python基礎 6 函式(一)

一  函式介紹

如果在開發程式時,需要多次呼叫某一部分程式碼,但是為了提高程式碼的編寫效率以及程式碼的重用,所以把具有獨立功能的程式碼組織為一個小模組,這就是函式

二函式的定義及呼叫

你可以定義一個由自己想要功能的函式,以下是簡單的規則:

函式程式碼塊以 def 關鍵詞開頭,後接函式識別符號名稱和圓括號 ()。

任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。

函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。

函式內容以冒號起始,並且縮排。

return [表示式] 結束函式,不帶表示式的return相當於返回 None。

'''

def   函式名稱

函式體

'''

注意事項

函式的命名要遵循識別符號的命名規則,使用下劃線命名法

函式體都是靠強縮排來表示的

函式只有在呼叫的時候才會執行,之建立不呼叫是不會執行的

 

呼叫格式

def  函式名

 

#建立一個say_hello 函式
def say_hello():
    print('hello python')
    print('hello yjs')
    print('hello java')

#呼叫函式
say_hello()
print('程式結束了')


結果:
hello python
hello yjs
hello java
程式結束了

注意事項

1函式只有先建立,後呼叫

2一般情況下,不要將呼叫函式放到函式體裡面

3函式可以多次呼叫

 

函式的註釋

在函式體的第一行使用多行註釋,對函式的功能進行解釋說明

呼叫函式的時候,可以使用ctrl+q  可以檢視函式的的解釋說明,從而瞭解函式的功能

def say_hello():
    """
    這是一個打招呼的方法
    你好世界,你好雲端計算 你好java
    """
    print('hello python')
    print('hello yjs')
    print('hello java')

say_hello()

3 帶引數的函式

需求   定義一個求和引數

def sum_num():
    num1 = 10
    num2 = 20
    num3 = num1 + num2
    print(num3)

sum_num()

這個函式只能求出10+20的值,擴充套件性不高

函式的引數

格式如下

def 函式名稱(引數1,引數2,.....)
...函式體...

說明:

1注意小括號裡面的變數名就是函式的引數,多個引數使用逗號“,”隔開

2函式呼叫幾個引數,呼叫函式的時候,就必須傳遞對應引數的個數

3 當以的引數,叫他形參--->形式引數

   呼叫函式的時候的引數叫做實參   --->實際引數

def sum_num(aa,bb):        #aa    bb   叫做形參
    num1 = aa
    num2 = bb
    num3 = num1 +num2
    print(num3)


# 呼叫函式
sum_num(5,6)               #  5  6   叫做實參
sum_num()   報錯因為沒有傳遞實參

函式引數的型別

不可變型別引數:整數、字串、元組。

fun(a) 內部修改a的值,只是修改另一個複製的物件,不會影響a本身

可變型別:列表,字典。

如fun(la),則是將la真正的傳過去,修改後的fun外部的la也會受到影響

不可變資料型別
a = 10000
print('a標量的id值--->',id(a))
def num(b):
    print(b)              # a和b的地址相同,因此值也是相同的
    b = 200
    print('修改後的b的id值--->', id(b))
    print(b)
num(a)
'''
a標量的id值---> 7459696
10000
修改後的b的id值---> 490814384
200
'''
可變資料型別
print('outter_list',outter_list,id(outter_list))

def func(inter_list):
    print('inter_list',inter_list,id(inter_list))

    inter_list.append(4)
    print(inter_list)

func(outter_list)  #傳遞的是一個地址,所以才會變

print(outter_list)
"""
st [1, 2, 3] 12221320
inter_list [1, 2, 3] 12221320
[1, 2, 3, 4]
[1, 2, 3, 4]

"""

函式的返回值

格式

def 函式名(引數1,引數2,..........)

return 值

注意  1 在函式體的最後一個使用,關鍵字return 要返回的值

         2 如果一個函式沒有返回值,預設返回None

         3 return有兩個作用,一個是返回值,另一個是結束函式,可以結束整個方法

def sum_num(aa,bb):
    num3 = aa+bb
    print(id(num3))

ret = sum_num(1,2)     #定義一個變數ret,來接受函式的返回值,賦值給變數
print(ret,id(ret))

拿到返回值後可以進行邏輯操作
例如:
if ret < 10:
    pass
else:
    pass
def func(c):
    print('func...')
    a = 10
    b = c
    if b < a:
        return   #可以結束整個方法
    print('zzz')
    print('xxxx')
func(11)
print('程式結束了')

結果:
func...
zzz
xxxx
程式結束了

返回None

返回None
def func():
    print('func....')
ret = func()
print(ret)
結果  func....
        None

返回多個值

格式
def fun():
    a = '10'
    b = '20'
    return a,b   
ret = fun()
print(ret)    #多個值被組織成一個元組返回   
                因為可以用多個變數來接受元組中的內容  因此
num1,num2 = fun()
print(num1,num2,type(num1),type(num2))

結果:
('10', '20')
10 20 <class 'str'> <class 'str'>

注意:

1如果函式不寫返回值,預設返回值None

2 return關鍵字有兩個作用,一個是返回內容,另一個是結束此方法

3 return關鍵字後面不允許在寫程式碼