old Python學習筆記

2022-05-19 12:13:01 字數 2140 閱讀 2119

然後這裡的多工程式設計和網路程式設計是暑假學的

### 可變物件按引用傳遞,不可變物件按引用傳遞

# 避免對可變引數的修改:

l = [1,2]

change(l[:]) #

# 或def change(l):

l = l[:]

​###【預設引數】【必須是不可變物件】

def power(x,n=2):

return x**n

power(2) #=>4

power(2,3) #=>8

​###【可變引數】(元祖)

def sum(*nums): #可以傳入0到n個引數,函式內部接收到的是tuple

s=0for x in nums:

s+=x

return s

​###【關鍵字引數】(字典)

def preson(name,age,**kw): #可以傳入0個或多個引數

print('name:',name,'age:',age,'other',kw)

person('bin',19,city='zz',job='stu') #=> name:bin age:19 other:

​###【元祖字典的】【拆包】

a=(1,2,3)

def func(*args):

print(args)

func(a) # => ((1,2,3),) 沒有*當作乙個值,有*拆成n個值傳入

func(*a) # => (1,2,3) 【拆包,拆成乙個乙個的值】 字典 傳入 **a

>>> func = lambda x : x*2 #分號前是引數,分號後是表示式,不用return,自動返回後面的值

>>> func(2) #=> 4

###【簡單應用,字典排序,匿名函式作實參】

info = [,,]

info.sort(key=lambda x:x['name'])

print(info)

就是函式名可以作為引數使用

### map(func,seq) 將函式func作用於序列seq的每個元素,並返回乙個迭代器

>>> list(map(lambda x:x*2,[1,2,3])) # => [2,4,6]

​### reduce(func,seq) 把乙個函式作用在乙個序列[x1, x2, x3, ...]上,這個函式必須接收兩個引數,reduce把結果繼續和序列的下乙個元素做累積計算,其效果就是:

###reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

>>> from functools import reduce

>>> def fn(x, y):

...     return x * 10 + y

...>>> reduce(fn, [1, 3, 5, 7, 9])

13579

​###filter(func,seq) filter()把傳入的函式依次作用於每個元素,然後根據返回值是true還是false決定保留還是丟棄該元素。

def not_empty(s): #把列表的空字串去掉

return s and s.strip()

​list(filter(not_empty, ['a', '', 'b', none, 'c', ' ']))

# 結果: ['a', 'b', 'c']

​###sorted(seq,key=none,reverse=false)

>>> sorted([36, 5, -12, 9, -21])

[-21, -12, 5, 9, 36]

#還可以接收乙個key函式來實現自定義的排序,key作用於每乙個元素,並按作用後的seq排序

>>> sorted([36, 5, -12, 9, -21], key=abs)

[5, 9, -12, -21, 36]

閉包就是內部函式引用了外部函式的臨時變數,並且外部函式返回了內部函式的引用

就是不修改原函式的情況下,新增新的功能

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...

學習筆記 CentOS 學習筆記01

簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...

筆記 spring cloud 學習筆記

1 spring cloud 是什麼 spring cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具 例如配置管理,服務發現,斷路器,智慧型路由,微 控制匯流排 分布式系統的協調導致了樣板模式,使用spring cloud開發人員可以快速地支援實現這些模式的服務和應用程式。他們將在任...