函數通過def關鍵字定義。def關鍵字後跟一個函數的 標識符 名稱,然後跟一對圓括號。圓括號
之中可以包括一些變量名,該行以冒號結尾。接下來是一塊語句,它們是函數體。
def sayHello():
print ('hello python')
sayHello()
結果:
hello python
函數取得的參數是你提供給函數的值,這樣函數就可以利用這些值 做 一些事情。這些參數就
像變量一樣,只不過它們的值是在我們調用函數的時候定義的,而非在函數本身內賦值。
參數在函數定義的圓括號對內指定,用逗號分割。當我們調用函數的時候,我們以同樣的方式
提供值。注意我們使用過的術語——函數中的參數名稱爲 形參 而你提供給函數調用的值稱爲
實參 。
def sayHello():
print ('hello python')
sayHello()
def printMax(a,b):
if a>b:
print (a,'is maximum')
else:
print (b,'is maximum')
printMax(3,4)
x=5
y=7
printMax(x,y)
結果:
hello python
4 is maximum
7 is maximum
局部變量:
當你在函數定義內聲明變量的時候,它們與函數外具有相同名稱的其他變量沒有任何關係,即
變量名稱對於函數來說是 局部 的。這稱爲變量的 作用域 。所有變量的作用域是它們被定義的
塊,從它們的名稱被定義的那點開始。
def func(x):
print ('x is',x)
x=2
print ('Changed local x to',x)
x=50
func(x)
print ('x is still',x)
結果
x is 50
Changed local x to 2
x is still 50
默認參數值:
對於一些函數,你可能希望它的一些參數是 可選 的,如果用戶不想要爲這些參數提供值的
話,這些參數就使用默認值。這個功能藉助於默認參數值完成。你可以在函數定義的形參名後
加上賦值運算符(=)和默認值,從而給形參指定默認參數值。
def say(message,time=1):
print (message*time)
say('hello')
say('world',5)
結果:
hello
worldworldworldworldworld
只有在形參表末尾的那些參數可以有默認參數值,即你不能在聲明函數形參的時候,先聲明有
默認值的形參而後聲明沒有默認值的形參。
這是因爲賦給形參的值是根據位置而賦值的。例如,def func(a, b=5)是有效的,但是def func
(a=5, b)是 無效 的。
關鍵參數:
如果你的某個函數有許多參數,而你只想指定其中的一部分,那麼你可以通過命名來爲這些參
數賦值——這被稱作 關鍵參數 ——我們使用名字(關鍵字)而不是位置(我們前面所一直使
用的方法)來給函數指定實參。
這樣做有兩個 優勢 ——一,由於我們不必擔心參數的順序,使用函數變得更加簡單了。二、
假設其他參數都有默認值,我們可以只給我們想要的那些參數賦值。
def func(a,b=5,c=10):
print ('a is',a,'b is',b,'and c is',c)
func(3,7)
func(25,c=24)
func(c=50,a=100)
結果:
a is 3 b is 7 and c is 10
a is 25 b is 5 and c is 24
a is 100 b is 5 and c is 50
return語句
def maximum(x,y):
if x>y:
return x
else:
return y
print (maximum(2,3))
結果
3