Python学习笔记(四)Python函数
生活随笔
收集整理的這篇文章主要介紹了
Python学习笔记(四)Python函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(三)python 函數
一 函數簡介
二、 函數的調用
三、 定義函數
在python中定義函數要使用def語句 , 一次寫出函數名 、 括號 、 括號中的參數和冒號: , 然后在縮進塊中編寫函數體 , 函數的返回值用return語句返回 。
# -*- coding: utf-8 -*-#python 中函數定義def testFunction(age):if age>100 :print("你是老年人")else :print("你是年輕人")#調用函數 age=input("請輸入你的年齡:") testFunction(int(age))input("輸入任意字符退出!")函數的參數檢查:
在自己定義的函數中增加參數類型檢查:
# -*- coding: utf-8 -*-#python 中函數定義def testFunction(age):if not isinstance(age , int):raise TypeError("參數類型不正確")else :print("參數類型正確") if age>100 :print("你是老年人")else :print("你是年輕人")#調用函數 age=input("請輸入你的年齡:") testFunction(age)input("輸入任意字符退出!")
返回多個值:
python中函數可以返回多個值 ,但這只是一種假象 , 實際上是把返回的值放到一個元祖中 , 變量取值時按順序取出元祖中的值 。
# -*- coding: utf-8-*-#使用數學函數時需要先導入math包 import math #python中定義函數可以返回多個返回值 # 情景: 在游戲開發時 傳入當前的位置橫縱坐標 , 移動角度 , 移動步數 之后返回移動之后的位置橫縱坐標def move(x , y , step , angle) :nx = x + step*math.cos(x)ny = y + step*math.sin(y)return nx , ny#執行代碼 , 并獲取返回值 x, y =move(1 ,1 ,3 ,30) print("移動之后的位置是:" , x , "," ,y)#查看返貨值的實質 r = move(1,1,3,30) print("返回值的實質:" , r)四 、 函數的參數
常規參數:在定義函數時括號內定義需要的參數
def move(x , y , step , angle) :nx = x + step*math.cos(x)ny = y + step*math.sin(y)return nx , ny 缺點: 靈活性低 , 必須要求參數個數完全一致時才能正確執行默認參數 : 在定義函數時 ,定義參數時給定默認值 ,當傳入參數時使用傳入的參數 , 當不傳參數時使用默認的參數值
def move(x=0 , y=0 , step=1 , angle=45) :nx = x + step*math.cos(x)ny = y + step*math.sin(y)return nx , ny 當傳入參數時使用傳入的參數 , 當不傳入參數時 , 使用默認的參數可變參數
可變參數的定義方式和定義list的方式區別在于定義可變參數前加*
def calc(*numbers):sum=0for n : numbers :sum = sum + n*nreturn sum 在調用時直接calc(1,3,4)即可當已經有了一個list或tuple需要傳入函數中時該怎么辦?
nums=[1,2,4] 可以使用在nums前加* 的方式傳入 calc(*nums)示例
#Python可變參數 def cacl(*numbers):sum=0for n in numbers:sum=sum+n*nreturn sum#可變參數接收普通參數 r = cacl(1,2,3,4) print(r) #可變參數接收list或tuple nums=(1,2,3,4) r2=cacl(*nums) print(r2)關鍵字參數
可變參數允許你傳入0個或任意個參數 , 在函數接收時自動組裝成一個tuple , 而關鍵字參數允許你傳入0個或一個鍵值對 , 在函數接收時自動裝成一個
# -*- coding : utf-8 -*- #python 關鍵字參數 def person (name , age , **kw):print ("name:" , name , " , age:" , age, " , other:" , kw)#調用方式一 person('怪獸1' , 10) #調用方式二 person("怪獸2" , 11 , city="北京" , like="砸房子") #調用方式三 other={'brithday':"國慶節" , 'city':"北京" ,} person("怪獸3",12 , brithday=other["brithday"] , city=other["city"])命名關鍵字參數
如果想要限制關鍵字參數的內容 , 就可以使用命名關鍵字函數
#python命名關鍵字參數 print("命名關鍵字參數:") #命名關鍵字參數和普通參數之間用*分割 def dog(name , age , * ,city , like) :print ("name:" , name , " , age:" , age, " , city:" , city , " , like:" , like) #如果已經定義了可變參數, ,那么可變參數之后的默認為命名關鍵字參數 def cat(name , age , *nums , like):print ("name:" , name , " , age:" , age, nums, " , like:" , like) #調用 #dog('花花' , 10 , city="北京" , like="皮球" , brithday="2132342")dog('花花' , 10 , city="北京" , like="皮球" ) cat('花花' , 10 , 1,2,4,5,6,7,8, like="皮球" )五 、 遞歸函數
遞歸思想: 在函數內部調用自己本身 。
# -*- coding : utf-8 -*- #Python函數遞歸 def fact(n):if n==1 :return 1return n*fact(n-1)#調用 i = fact(10) print(i)總結
以上是生活随笔為你收集整理的Python学习笔记(四)Python函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习笔记(三) Python
- 下一篇: Python学习笔记(五) Python