#函式引數
def power(x):
return x * x
print(power(10))
def power(x,n = 2):#n=2為設定的預設引數,預設引數應設定為不變數,如設定成可變數,則每次呼叫結束,如果該引數變了,下次呼叫也跟著變了
sum = 1
while(n>0):
sum = sum * x
n = n - 1
return sum
print(power(2,3))
print(power(2))
print(power(2,4))
#可變引數
def calc(*numbers):#numbers可以作為乙個list或者tuple傳進來
sum = 0
for n in numbers:
sum = sum + n
return sum
print(calc(1,2,3,4))
#關鍵字引數,關鍵字引數在函式內部自動組轉為乙個dict
def person(name, age, **other):
print('name:',name,'age:',age,'other:',other)
person('laizi',23,city = 'sichuang')
#命名關鍵字引數,限制關鍵字引數的名字,命名關鍵字引數必須傳入引數名,這和位置引數不同
def person1(name, age, *, city, job):
print(name, age, city, job)
person1('bob', 24, city = 'beijing',job = 'engineer')
'''1:預設引數一定要用不可變物件
2:*args 是可變引數, args 接收的是乙個 tuple, **kw 是關鍵字引數, kw 接收的是乙個 dict。
'''#遞迴函式:乙個函式在內部呼叫自身本身。存在棧溢位風險
def jiecheng(n):
if n == 1:
return 1
return n * jiecheng(n-1)
print(jiecheng(4))
#尾遞迴解決棧溢位,在呼叫一次函式就得出想要的值,不用像上乙個函式那樣等待下次呼叫返回的值後在得到想要的值,從而將多個棧變為乙個棧
def jiecheng1(n,product):
if n == 1:
return product
else:
product = n * product
n = n - 1
return jiecheng1(n,product)
print(jiecheng1(5,1))
#假設有n片,移動次數是f(n).顯然f(1)=1,f(2)=3,f(3)=7,且f(k+1)=2*f(k)+1。。此後不難證明f(n)=2^n-1。n=64時,
def tower_f_hanoi(n):
if n == 1:
return 1
else:
n = n -1
return 2 * tower_f_hanoi(n) + 1
print(tower_f_hanoi(64))
Python 自學筆記7 函式
1.使用函式的目的 模組化,便於處理 2.函式的定義 def function 2.函式文件 def myfirstfunction name 函式文件在函式定義的最開頭部分,此部分就是函式文件,用不記名字串表示 print i love fishc.com 函式的文件字串可以按如下方式訪問 myf...
Python自學筆記 7 迴圈
for迴圈 for x in 迴圈就是把每個元素代入變數x,然後執行縮排塊的語句。比如我們想計算1 10的整數之和,可以用乙個sum變數做累加 sum 0 for x in 1,2,3,4,5,6,7,8,9,10 sum sum x print sum range 函式,可以生成乙個整數序列,再通...
Python自學筆記004 函式
def function a,b print this is a function.c a b print a b c 這裡執行之後需要我們呼叫這個函式 function 3,4 這裡面表示傳入函式的引數值 this is a function.a b 7如果在呼叫時忘記了引數的位置,只記得引數的名...