每日一題 some小問題集合

2021-10-14 15:10:19 字數 2087 閱讀 8877

classa(

object):

defshow

(self)

:print

('this is the a show!'

)classb(

object):

defshow

(self)

:print

('this is the b show!'

)obj = b(

)obj.show(

)obj.__class__ = a

obj.show(

)this is the b show!

this is the a show!

classa(

object):

def__init__

(self, a, b)

: self.__a = a

self.__b = b

defmyprint

(self)

:print

('this is print!'

)def

__call__

(self, n)

:print

(n + self.__a + self.__b)

a1 = a(10,

20)a1.myprint(

)a1(80)

this is

print!

110

**結果如下:

ls =[1

,2,3

,4]list1 =

[i for i in ls if i >2]

print

(list1)

list2 =

[i*2

for i in ls if i >2]

print

(list2)

dic1 =

print

(dic1)

dic2 =

print

(dic2)

set1 =

print

(set1)[3

,4][

6,8]

num =

9deff1(

):num =

20deff2(

):print

(num)

deff3()

:global num

num =

30deff4(

):num = num +

1deff5(

):global num

num = num +

1if __name__ ==

"__main__"

: f2(

)# 第一次列印全域性變數(對應下面第乙個列印結果,後面類似)

f1()# 在函式內嘗試進行全域性變數的修改

f2()# 第二次列印全域性變數

f3() f2(

)# 第三次列印全域性變數

num =

100# if __name__ == "__main__"其實就是乙個if語句,也算是在全域性的作用範圍內,

# 所以在這裡用global宣告也能對全域性變數進行修改

f2()# 第四次列印全域性變數99

30100

a =

8b =

9

答:一行**修改兩個變數值,直接用元組來實現,如下面**所示,其中**右邊為元組裝包,左邊為元組拆包

(a, b)

=(b, a) 或 a, b = b, a

all= [『mod1』, 『mod3』]

分析:__init_.py檔案為把資料夾變為乙個python模組包,我們在匯入乙個包時其實就是匯入了這個包的__init_.py檔案,在檔案內我們可以把一些我們依賴的模組全部匯入,同時可以利用__init__.py檔案的__all__變數來引入我們需要匯入的檔案

本文參考:

LeetCode每日一題 集合問題

子集問題,看到這種題,肯定是可以用dfs加遞迴可以做的。首先分析思路,這種類似於全排列的情況,並且順序不同算一種的話,其實就只要遞迴遍歷就可以了 這題其實就是類似於全排列的問題,顯而易見的是順利不同的組合算是乙個,例如 1,2,3 1,3,2 因為陣列中的元素是排序且無重複的,因此只需要考慮在遞迴進...

每日一題 合併集合

一共有 n 個數,編號是 1 n,最開始每個數各自在乙個集合中。現在要進行 m 個操作,操作共有兩種 m a b,將編號為 a 和 b 的兩個數所在的集合合併,如果兩個數已經在同乙個集合中,則忽略這個操作 q a b,詢問編號為 a 和 b 的兩個數是否在同乙個集合中 輸入格式 第一行輸入整數 n ...

100個小問題 每日一題 第4題

problem4 連通性問題 假如已知乙個整數對序列,其中每個整數代表某種型別的乙個物件,而且將p q對解釋成 p與q連通 假定連通關係是可傳遞的,即 如果p與q連通,同時q與r連通,則p與r也連通。任務 編寫乙個程式,從乙個整數對結合中過濾額外的鏈結對。即當程式輸入乙個整數對p q,僅當程式此時已...