Python學習筆記(2)

2021-08-15 07:42:42 字數 2169 閱讀 2463

# 函式定義和預設引數

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 小知識點 通過這種方式匯入...