day 3 9基礎複習

2022-06-08 02:03:07 字數 3514 閱讀 9679

1.不要在模組之間相互呼叫,否則會出現麻繩現象,避免迴圈匯入。

==:用來判斷值是否相等(分別指向兩個空間,但是空間裡面的內容相同)

is:判斷指向是否相等。

例:

a=[11,22,33

]b=[11,22,33

]a==b

#true

a is

b#false

id(a)

#1398041200093640

id(b)

#1398041200093600

面試常問:

潛拷貝:能複製的比較少,例如:把乙個變數賦值給另乙個變數,只是把位址傳過去(兩個變數指向同乙個位址);,但是值沒有傳過去。

copy():有的時候能夠完成想用的功能(對於可變型別)

對於不可變型別:copy相當於淺拷貝

位運算:快速完成乙個值得乘或除

<<:左移

>>:右移

私有化

1

class

test(object):

2def

__init__

(self):

3 self.num=100

45 t=test()

6 t.num=200

7print(t.num)

新增的時候有下劃線,就後面都要帶著,如果新增的時候沒有,那就都沒有

但是帶著下劃線的表示別的語言中的私有屬性

方法名前面的叫私有方法,

在外面不能直接呼叫

class test(object):

def __init__(self):

self.__num=100

t=test()

t.__num=200

print(t.num)

xx:公有變數

_x:單前置下劃線,私有化屬性或方法。from somemodule import 禁止匯入,但是類,物件和子類可以訪問

__xx:前置下劃線,用於避免與python中的關鍵字衝突,後置下劃線的效果一樣。

__xx__:雙前後下劃線,使用者名字空間的魔法物件或者屬性

若 import 模組是直接可以匯入的,所以python中是偽私有

instance()允許檢查某個特定識別符號是否包含某個特定型別的資料

movies=["

the holy grail

",1975,"

terry jones &terry gilliam

",91,["

graham chapman

",["

michael palin

","john cleese

","terry gilliam

","eric idle

","terry jones

"]]]

for each_item in

movies:

ifisinstance(each_item,list):

for nested_item in

each_item:

if isinstance(nested_item,list);

for deeper_item in nested_item:

else:

print(nested_item)

print

(nested_item)

else

:

print

(each_item)

the holy grail

1975terry jones &terry gilliam

91graham chapman

michael palin

jhon cleese

terry gilliam

eric idle

terry jones

']

編寫函式就是為了可以重用**,避免重複的**

pypi:python包索引,從而使**其他人可以用

遞迴:python3 預設遞迴的**不能超過100行

術語bif:內建函式

suite:組

功能齊全:(batteries included))

range():可以固定函式的迭代次數。

列表就像打了激素的陣列

列表可以存放任意資料,而且資料可以是混合型,列表中可以放其他的列表

python使用縮排將語句歸組在一起

if。。。else語句在**中完成判定

insintance()bif會檢查乙個識別符號是否指示某個指定型別的資料

檔案處理與異常

python中的基本輸入機制都是基於行的,從文字檔案向程式讀入資料的時候,一次會到達乙個資料行

python中的open()bif就是用來與檔案互動的

readline:是從檔案中讀一行資料

seek()是返回到檔案起始位置

split()用來分離元素。split(「:」)使用冒號來分離呼叫他的元素。並且這個方法返回乙個字串列表,成為多重賦值

split(......)這個可選定的引數控制著將資料行分解為多少個部分,預設的資料會盡可能多的分解

try:

data=open('

sketch.txt')

for each_line in

data:

try:

if not each_line.find(':')==-1;

(role,line_spoken)=each_line.split('

:',1)#這個額外的引數控制著split如何分解

print(role,end=''

)

print('

said:

',end=''

)

print(line_spoken,end=''

)except valueeorror:

pass

data.close()

except ioerror:

print('the data file is missing!')

增加額外邏輯:

find()這個方法嘗試找出字串的字串,這個方法會回到該子串在原子符串中的索引位置。

處理異常:

python通過traceback來告訴你執行的時候發生了某種意外的情況,在python世界裡,執行時的錯誤叫做異常。

try:

你的** (可能導致乙個執行時錯誤)

except:

錯誤恢復**

strip()方法從字串中去了掉不想要的空白符。

在python中使用訪問模式'w'時python會開啟指定的檔案來完成寫,若這個檔案已經存在,則會清空他現有的內容,也就是完全清除。要追加乙個檔案,需要使用訪問模式a。要開啟乙個檔案完成讀和寫,但是這個檔案並不存在,那麼首先會為你建立這個檔案,然後再開啟檔案進行寫。注意,發生異常時,檔案會保持開啟的狀態。

day39 程序 佇列

佇列queue 程序之間資料是隔離的,不共享的,但是通過multiprocessing的queue可以實現程序之間的通訊。1 先進先出 把1 2 3放到佇列裡,按1 2 3的順序拿出來。from multiprocessing import queue q queue q.put 1 q.put 2...

程式設計之旅 Day39

day39 學習內容 1.劍指offer 面試題32 從上到下列印二叉樹 面試題32 把二叉樹列印成多行 面試題32 按之字形順序列印二叉樹 面試題36 二叉搜尋樹與雙向鍊錶 3.華為機試題 例1 取近似值 例2 合併表記錄 例3 提取不重複的整數 題目描述 從上往下列印出二叉樹的每個節點,同層節點...

Day39 貪心 區間取點

傳送門 區間取點 給定n個區間,若讓每個區間至少包含乙個點,則需要至少幾個點?分析只需要按區間右端點排序 然後遍歷所有區間 逐個判斷上乙個點是否被包含在這個區間裡 若不在則加乙個點,再更新點位置 若在則跳過即可 我們初始化定為有乙個點在第乙個區間,並且點在其右端點 include includeus...