Day 4 集合 百分號拼接及函式

2022-08-23 15:39:13 字數 2924 閱讀 4993

按元素可變不可變可分為:

可變:列表、字典

不可變:字串、數字、元組

按訪問順序:

1.直接訪問:陣列

2.順序訪問:字串、列表、元組

3.對映訪問:字典(無序,但查詢速度比較快,但佔記憶體高,因為內部維護字典的對映關係)

按存放元素個數:

容器型別(可存放多個值):列表、元組、字典

原子:數字、字串

定義字典 s= 或者 s=set(『hello』) 輸出時為: h l o e 無序的,內部做了一次for迴圈

s=set([『alex』, 』alex』, 『sb』])

print(s) 輸出值為

(1)add(新增)  s.add(『sb』)

(2)clear(清空)

(3)copy(拷貝乙份)  v=s.copy()

(4)pop(隨機刪除) s.pop()

(5)remove(指定刪除)  s.remove(『sb』) 若沒有這個元素 就會報錯

(6)discard(指定刪除) s.discard(『ssss』) 若沒有這個元素,不會報錯

1.   求交集

a=b=

print(a.intersection(b)) 或者 print(a&b)

2.求並集

a=b=

print(a.union(b)) 或者 print(a|b)

3.求差集

a=b=

print(a.difference(b)) a有b沒有的 print(a-b)

4.交叉補集

print(a.symmetric_difference(b)) 或者 print(a^b)

雙方除去交集

5.difference.update() 把a-b的差集賦值給a

intersection.update() 把交集賦值給a

6.isdisjoint() 若兩個集合交集為空,則返回true print(a.isdisjoint(b))

7.issubset() print(a.issubset(b)) 判斷a是不是b的子集 true   

issuperset() 判斷是否是父集

8.update() a.update(b) 更新多個值 把b有a沒有的加入給a

9.集合是可變型別

如要不可變,有另一種設定方法 s=frozenset(『hello』)

10.簡單去重

a=s=set(a)

print(s)

a=list(s) 

a=list(set(a))

字串拼接

a=』i am %s ,i am from %s』 % (』chris』, 『shenzhen』) %s表示拼接乙個字串型別,萬能,其他值的型別也可傳輸。%d 只能用來傳輸數字,最好對應,可讀性較強

a=』percent is %.2f』 %99.2345

print(a) 

.2表示保留兩位小數 會四捨五入 基礎為%f

a=』sgag %.2f %%』 兩個百分號

a=』i am %(name)s %(age)d 』 %

- 左對齊

+ 右對齊

例子:a=』i am %-20s』 左對齊縮排20個位置

如要加顏色: a=』i am \033[43;1m %-20s \033[0m』

a=』i am {},age{}』.format(『chris』,21) 這要一一對應,不可少

或者a=』i am ,age』.format(『chris』,21) 此時值相反

或者字典的方式

a=』i am ,age』.format(name=『chris』,age=21)

字典型別時:等同於a=』i am ,age』.format(**)

a=』i am ,age, d』.format( 『chris』,21,99.6)

列表形式傳輸值時

a=』i am ,age.format(*[『chris』,21])

def test(函式名) (x):

『』『』注釋

x+=1 指**塊或程式處理邏輯

return x

使用:def test(x):

y=2*x+1

return y

a=test(3)

print(a) 此時輸出結果就為7

過程就是不包含返回值

def test(x,y):  此時x y就為形參 不佔記憶體

a=x**y

return a

b=test(2,3)此時2,3就是實參  也稱位置引數 與x y一一對應

關鍵字引數 b=test(y=3,x=2) 此時xy就是關鍵字引數 無需一一對應 缺一不行多一不行

如果混合使用,位置引數必須在關鍵字引數左邊

def sql(x,y=』chris』):  此時y為預設引數,可以後期覆蓋

print(x)

print(y)

sql(26,y=』joe』)

def test(x,*a):

print(x)

print(a)

test('採集',2,453,54,)

若要傳列表,且以原形式輸出, 則需加*  test(8,*[『a』,』d』,』c』])

若要傳多個值,以字典形式,可以用索引

def test(x,**kwargs):

print(x)

print(kwargs,kwargs[z])

test('採集',y=2,z=453,t=54) 記住乙個引數不能傳兩個值

此時輸出值為:採集 

混合使用時:

def test(x,*args,**kwargs) 順序必須是這樣,應為args接收的是位置引數 test(2,214,213,44,name=』fsf』,ss=』asggg』)

也可以這種方式 test(1,*[2,3,1],**

oracle拼接小數百分號問題

在oracle的select計算中,經常會用到拼接百分號的問題,但是若結果為0.01的時候,小數點前的0就會經常被捨去。這是因為oracle在拼接 時,用到了隱式轉換,例如 select round 5164 88794,2 from dual 結果則為0.06,但是如果 select round ...

特殊用法 百分號 井號

為了完整起見,我這裡再用一些例子加以說明 的一些特異功能 假設我們定義了乙個變數為 file dir1 dir2 dir3 my.file.txt 我們可以用 分別替換獲得不同的值 拿掉第一條 及其左邊的字串 dir1 dir2 dir3 my.file.txt 拿掉最後一條 及其左邊的字串 my....

Shell中變數的單百分號 和雙百分號 的作用

使用百分號將變數的內容從變數的後面刪除,並從變數的尾部刪除。不同的是,乙個 號表示從尾部最近的匹配刪除,兩個 從尾部最遠的匹配刪除。同時支援使用萬用字元。比如 先宣告乙個變數 filename aaabbccddaabbccdd使用乙個百分號擷取尾部bb echo 結果 aaabbccddaa可以看...