# 函式定義和預設引數
def func(x, y = 500):
print(x, y)
func(150)
func(100, 200)
func(y = 300, x = 100)
# 可變引數
def func(name, *numbers):
print(name)
print(numbers)
func('tom', 1, 2, 3, 4)
# 關鍵字引數
def func(name, **kvs):
print(name)
print(kvs)
func('jack', china = 'beijing', uk = 'london')
# 命名關鍵字引數
def func(*, china, uk): # *用於和普通引數做分割,*args一樣效果
print(china, uk)
func(china = 'beijing', uk = 'london') # 必須傳入引數名
# 複雜情況
def func(a, b, c = 0, *args, **kvs):
print(a, b, c, args, kvs)
func(1, 2)
func(1, 2, 3)
func(1, 2, 3, 'a', 'b')
func(1, 2, 3, 'a', 'b', china = 'beijing', uk = 'london')
func(1, 2, 3, *('a', 'b'), **)
# 遞迴的經典例子!
def fib(n):
if n < 1:
raise valueerror
elif (n == 1) or (n == 2):
return 1
else:
return fib(n - 1) + fib(n - 2)
print(fib(1))
print(fib(2))
print(fib(3))
print(fib(4))
print(fib(5))
print(fib(6))
以下是結果
150 500
100 200
100 300
tom(1, 2, 3, 4)
jack
beijing london
1 2 0 () {}
1 2 3 () {}
1 2 3 ('a', 'b') {}
1 2 3 ('a', 'b')
1 2 3 ('a', 'b') 11
2358
漢諾塔問題:
def move(n, source, target, helper):
if n == 1:
print source + ' -> ' + target
else:
move(n - 1, source, helper, target)
print source + ' -> ' + target
move(n - 1, helper, target, source)
move(4, 'a', 'b', 'c')
'''a -> c: [2, 3, 4], , [1]
a -> b: [3, 4], [2], [1]
c -> b: [3, 4], [1, 2]
a -> c: [4], [1, 2], [3]
b -> a: [1, 4], [2], [3]
b -> c: [1, 4], , [2, 3]
a -> c: [4], , [1, 2, 3]
a -> b: , [4], [1, 2, 3]
c -> b: , [1, 4], [2, 3]
c -> a: [2], [1, 4], [3]
b -> a: [1, 2], [4], [3]
c -> b: [1, 2], [3, 4],
a -> c: [2], [3, 4], [1]
a -> b: , [2, 3, 4], [1]
c -> b: , [1, 2, 3, 4],
'''
Python學習筆記 2
python學習筆記 2 1 error and exceptions 錯誤和異常 語法錯誤是在編譯時檢查,但python允許在程式執行期間檢查錯誤。當檢查出錯誤,python直譯器丟擲 產生 觸發乙個異常。要增加錯誤檢測或異常處理到 使用try except語句。語法如下 try try runn...
python學習筆記 2
八 type函式的作用是顯示值和變數的型別,id以值或變數為引數,返回值是一整數.type world type str id 123 11602164 九 python函式的定義形式 def arg1,arg2,argn 函式的名字也必須以字母開頭,可以包括下劃線 但不能把python的 關鍵字定...
Python學習筆記 2
已經學習python兩天了,總結一下學習成果。初學python,如果有寫錯的地方,還望各位大牛指出。先列一列作品 python socket 客戶端測試程式 easygui 猜數遊戲 看雪登入器 涉及到的知識點 物件導向 socket庫 httplib2庫 easygui 小知識點 通過這種方式匯入...