函數 、類、異常
函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。
函數能提高應用的模塊性,和代碼的重複利用率。你已經知道Python提供了許多內建函數,比如print()。但你也可以自己創建函數,這被叫做用戶自定義函數
定義一個函數
你可以定義一個由自己想要功能的函數,以下是簡單的規則:
· 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號 ()。
· 任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用於定義參數。
· 函數的第一行語句可以選擇性地使用文檔字符串—用於存放函數說明。
· 函數內容以冒號起始,並且縮進。
· return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。
函數定義和調用
Def函數名(參數列表)
函數體
調用函數
Return(a+b)代表結束函數
*number代表將參數歸納爲一個元組
A*number代表第一個參數付給a其餘的參數歸納給number
(a,*number):
Print(number)
Id代表ID地址
Print(ID(number))代表輸出的是number的ID地址
一個* 的關鍵詞字可以傳一系列的值但是需要在前面加*
關鍵字參數需要些在後面
不可變參數
關鍵字參數**kw(兩個*)可以不傳參數,可以傳多個鍵值類型的參數。
大括號代表字典
關鍵字參數:關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵參數在函數內部自動組裝爲一個dict.
#函數的定義和調用
def add(a,b):
print(a+b)
def plus(a,b):
print(a-b)
def multy(a,b):
print(a*b)
def devide(a,b):
print(a/b)
#調用函數
#計算器實現+-*/
def caculator():
option=int(input("請輸入運算符:1+,2-,3*,4/"))
num1=int(input("請輸入第一個數"))
num2= int(input("請輸入第二個數"))
if option==1:
add(num1,num2)
elif option==2:
plus(num1,num2)
elif option==3:
multy(num1,num2)
else:
devide(num1,num2)
caculator()
#函數的定義和調用
def test1():
print("hello")
#調用函數
test1()
#函數的定義和調用
def add(a,b):
print(a+b)
#調用函數
add(11,22)
#帶返回值得函數
def add1(a,b):
return a+b
#調用函數
sum=add1(22,22)
print(sum)
#帶返回值得函數具體得到結果
def add1(a,b):
return a+b
#調用函數
sum=add1(11,22)
print("{0},{1}的和是{2}".format(11,22,sum))
#帶*將參數歸納爲一個元組的2*2+3*3
def calc(a,*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
calcsum = calc(1, 2, 3)
print(calcsum)
#將參數歸納爲一個元組
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
mytuple=(2,4,5,6)
calcsum=calc(1,*mytuple)
print(calcsum)
#兩個*傳字典
def person(name,age,**kw):
print('name:',name,'age:',age,'other:',kw)
person('Frank','37')
person('Frank','37',city='shanghai')
person('Frank','37',gender='M',job='Engineer')
#默認參數name和李四參數可以不寫
def defaultArgs(name,sex=None):
print(sex)
defaultArgs("lisi",sex="male")
#組合參數
def zuheargs(a,b,c=0,*args):
print(a,b,c)
print(args)
zuheargs(1,2,3,4,5)
#關鍵字組合組合參數
def zuheargs(a,b,c=0,*args,**kwargs):
print(a,b,c)
print(args)
print(kwargs)
zuheargs(1,2,3,4,5,name="zhangsan")
def f2(a,b,c=0,*,d,**kw):
print('a -',a,'b -',b,'c -',c,'d -',d,'kw -',kw)
args =(1,2,3,)
kw ={'d' : 88, 'x':'#'}
f2(*args,**kw)