第四節 函數
在python中函數是一個重要的概念之一,僅用編譯器直接進行算術運算(如:>>>2+3 >>>6)就失去了計算機的存在價值,它必須發揮更大功能。計算機運行的程序中,函數就是發揮其更大作用的重要概念之一。這一節主要簡單介紹函數的基本概念。以后在有關章節中再深入探討。
所謂函數和變量一樣也是在內存中開辟的一塊空間,只不過這個空間不是單純用來塞數值的,而是用來操作數據的。在python中函數也是必須有名字的,函數的命名與變量的命名原則基本一致,也是由字母下划線和數字組成,關鍵字不能作為函數名,函數名首字母不能是數字,名字中間不能有空格。
這里又提到關鍵字,那么到底關鍵字是什么、在python中有哪些呢?
一、python關鍵字
python關鍵字就是在其語言中規定的有特殊意義的單詞,這些單詞在python程序中具有各自的特殊作用,有33個。具體如下:
and elif import return
as else in try
assert except is while
break finally lambda with
class for not yield
continue from nonlocal
or True
def global pass False
del if raise None
這些關鍵字在程序中作用不同,至於有什么作用,會在應用中理解它們並記住它們,而不必刻意死記硬背。現在就看兩個關鍵字def和pass的作用。
二、函數的定義
函數的定義和變量定義不同,函數使用關鍵字def定義的。具體格式如下:
>>> def fun_name():
pass
它是由關鍵字、函數名、括號、冒號和函數體組成,原則上函數體要另起一行縮進書寫。上面就定義了一個名字叫fun_name的函數,它的函數體只有一個關鍵字pass。pass的作用很奇特,就是什么也不干。在這里它的作用只是告訴編譯器,“fun_name這個函數不是空函數,有我pass在此呢!但我什么也不干”。需要說明的是定義函數時pass不是必須有的,如函數體內有其他內容就不用pass“占位”了。
三、兩個具體函數
python語言中的函數總體分為兩類一類是python自帶的函數,不需要用戶創建,叫內置函數,一類是自定義函數,也就是不是由python自帶的函數,需要用戶創建。下面介紹的兩個函數都屬於內置函數:
1)print()
print函數是一個標准輸出函數,它的功能就是把程序運行的結果顯示出來:
>>> a="努力學習pyhon"
>>> print(a)
努力學習pyhon
默認情況下print一般每輸出一次換行一次,有幾個print就換行幾次。
2)input()
input函數與print函數相反,它接受一個標准輸入數據,並且返回字符串類型:
>>> input()
大家好! #輸入的文字
'大家好!' #input返回后打印的數字
四、函數的返回值
函數的返回值是把函數運行后的結果由函數輸出出來的值,返回值的類型由函數決定,它可以是任意類型,甚至可以是一個函數。函數返回用關鍵字return表達。
用編輯軟件編輯一個文件保存為后綴.py文件,然后運行:
def fun_name():
a=4
b=5
c=a+b
return c
print(fun_name())
運行結果為:
9
------------------
(program exited with code: 0)
請按任意鍵繼續. . .
其中的數字9就是這個函數的返回值,它返回后被print輸出出來。
這個函數的最后一行print(fun_name())中的fun_name()叫函數的調用,也就是讓這個函數在這里運行。這一句程序語言就是”在這里運行fun_name這個函數,並且把返回的值交給print輸出顯示出來“。
五、函數參數
函數不但輸出返回值,而且有的函數還需要輸入值才能運行。給函數輸入的值叫函數的參數。如果函數需要參數,定義函數時要同時在函數括號內定義參數,這里定義的參數叫形參,也就是這種參數只是表示這個函數運行時需要同時給於一定的實際的參數;當調用函數時給定的實際參數叫實參。形參只起到提醒調用者被調用的函數需要給定參數的作用,它的參數名不一定與實參名相同。另外,實參可以是變量也可以是其他任何類型的值。這和被調用的函數的定義有關。
def fun_name(a,b): #定義函數及其參數
return (a+b)
c=fun_name(4,5) #輸入實參,調用函數並把結果賦值給變量c
print(c) #打印輸出c的值
運行結果:
9
------------------
(program exited with code: 0)
請按任意鍵繼續. . .
由此可以看出,函數的參數有時不止一個,可以是多的,參數之間用逗號”,“號隔開。
應該提醒注意的是,在編寫程序時,在程序中使用的符號比如這里的逗號,一定是在半角英語輸入法下輸入的符號。否則程序運行會報錯。