呼叫函式
abs()
max()
min()
hex()
整數轉換成十六進製制
資料型別轉換
int()
float()
str()
bool()
定義函式
定義乙個函式要使用
def語句,依次寫出函式名、括號、括號中的引數和冒號
:,然後,在縮排塊中編寫函式體,函式的返回值用
return
語句返回。
def my_abs(x):
if not isinstance(x,(int,float)):
raise typeerror('bad operand type')
if x>=0:
return x
else:
return -x
return none
可以寫為
return
空函式def nop():
pass
pass
語句可以用作佔位符。
引數檢查
isinstance()
返回多個值
import math
def move(x, y, step, angle=0):
nx = x + step *math.cos(angle)
ny = y - step *math.sin(angle)
return nx, ny
返回的實際上還是乙個單一值,返回的乙個
tuple
函式的引數
位置引數
函式的形參
預設引數
def power(x=2):
pass
預設是2
,可以不填,與預設引數不一樣就填引數
預設引數必須指向不可變物件
def add_end(l=none):
if(l==none):
l=return l
可變引數
1.把乙個
list
或tuple
傳進來
defcalc(numbers):
sum=0
for n in numbers:
sum=sum+n*n
return sum
calc([1,2,3])
2.引數前加乙個
* 函式內部接受到乙個
tuple
,使用時可以傳遞任意數量的引數
defcalc(*numbers):
sum=0
for n in numbers:
sum=sum+n*n
return sum
calc(1,2,3)
關鍵字引數
可變引數允許傳遞
0個或任意個引數,這些引數在函式內部自動組裝成
tuple
,而關鍵字引數允許傳遞
0個或任意個含引數名的引數,這些關鍵字引數在函式內部會自動組裝成
dict
def person(name, age, **kw):
print('name:', name,'age:', age, 'other:', kw)
命名關鍵字引數
要限制關鍵字引數的名字,就可以使用命名關鍵字。
使用乙個特殊分隔符*,
*後的引數被視作命名關鍵字引數
def person(name,age,*,city,job):
print('name:',name,'age:',age,'city:',city,'job:',job)
如果函式定義中已經有乙個可變引數,後面的關鍵字引數就不需要乙個特殊分隔符了
命名關鍵字引數必須要傳入引數名,否則就會報錯
引數組合
python
中定義函式,可以使用多種引數組合使用,引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。
遞迴函式
遞迴函式代替迴圈,但要注意防止棧溢位
def fact(n):
if(n==1):
return 1
return n*fact(n-1)
尾遞迴,函式返回時呼叫自身,並且
return
不能包含表示式
尾遞迴呼叫時,如果做了優化,棧不會增長,因此,無論多少次呼叫也不會導致棧溢位。
遺憾的是,大多數程式語言沒有針對尾遞迴做優化,python直譯器也沒有做優化
def fact(n):
return fact_iter(n,1)
def fact_iter(num,product):
if(num==1):
return 1
return fact_iter(num-1,num*product)
漢諾塔defmove(n,a,b,c):
if(n==1):
print(a,'-->',c)
else:
move(n-1,a,c,b)
move(1,a,b,c)
move(n-1,b,a,c)可將b
柱視作a柱到c
柱的緩衝區(
buffer)
將a柱上的n-1
個盤子通過
c柱挪到b柱上
將a柱最下面的盤子通過
b柱挪到c柱上
將之前的
n-1盤子從
b柱通過
a柱挪到
c柱上
Python學習筆記 二 函式
python有很多自帶的函式,在api裡很容易找到 菜鳥教程的python內建函式講的也不錯 這裡先試試幾個能猜的出作用的簡單函式 函式名描述 abs 返回數字的絕對值 abs 1 1 all 判斷給定的可迭代引數 iterable 中的所有元素是否都為 true,如果是返回 true,否則返回 f...
Python學習筆記 函式(二)
序列解包 傳遞引數時,可以用過在實參序列前加乙個 號將其解包,然後傳遞給多個單變數形參 如果函式實參是字典,可以在前面加 號進行解包,等價於關鍵字引數。作用域 變數起作用的 範圍稱為變數的作用域,不同作用域內變數名可以相同,不影響。根據變數可供訪問的作用範圍,分為全域性變數和區域性變數。全域性變數自...
Python基礎函式學習筆記 二
一 格式化列印輸出 乙個輸出時 兩個輸出時 輸出換行 print預設輸出自動加換行,如下所示 rabbits 20 print rabbits cages 15 print cages 結果如下所示 如果要在同一行顯示的話,可以在行末加逗號,如下 二 使用者輸入 兩個函式input和raw inpu...