3、git和github區別
5、深拷貝和淺拷貝的區別
淺拷貝:拷貝後的物件b和被拷貝的物件a是還有關聯的(物件的印象),當a物件的值改變後,b物件的值也會跟著邊(但是第一層不影響,第二層才會跟著改變)
python中import是淺拷貝
python中from 模組 import 方法是深拷貝
(當有其他模組的變數在某個某塊引用且這個模組需要對該變數去改寫時,就得用import,而不能用from import,否則,當其他方法再引用該變數時,就還是初始定義的值,而不會被修改)
其他知識點:
1)定義乙個全域性變數a=10。定義乙個方法fun1()並執行,fun1方法中引用a的值並將a的值改變;再定義乙個方法fun2()並執行,fun2方法中再去引用a的值,fun2所引用的a的值是10(未經方法1修改的。因為方法1修改作用域只在方法內,a是個全域性變數,出了方法1外,不會被方法1改變)。如果要想方法1實現對全域性變數a的改變,則需要在方法1內,將a定義未g'lobal型別(示例:gloal a a=15),這樣的話,全域性變數a的值就會被改變,當fun2再去使用a時,a的值就不再是10了(而是15)
2)檢視變數是不是同乙個,可以通過print(id(a))去檢視是不是同乙個位址
3)函式沒有return的話,預設返回none,使用print方法輸出則結果列印出來是none
4)python支援函式巢狀(閉包函式)。**示例:
defouter():
definner():
print("
11111")
return
inner
outer()()
5)包名或者模組名切記不要用系統模組名或第三方模組名,否則可能會出錯,如:模組名使用sys,再去匯入sys這個系統模組,那可能sys系統模組的一些方法你就使用不了(如:os、sys等)
6)在呼叫的方法上面按住alt+回車,可以快捷將模組匯入
7)python在導包的時候也會執行**,而且從上到下去執行。如:乙個有main函式的模組中匯入了其他模組,當main函式模組去執行時,先執行導包,再去執行main函式。所以,在使用某個模組的方法時候,一定要在前面導包,如果寫在後面,則無法正常執行
8)在main函式的模組中,print(__name__)=__main__,其他模組(被main函式呼叫的模組),print(__name__)=對應的函式名。所以說,main為入口函式
9)淺拷貝和深拷貝
淺拷貝(只拷貝第一層,如果裡面有巢狀的內容,還是會影響到我):
改變外層:
#淺拷貝 copy(系統內建模組方法),實現的是淺拷貝。a1外層變了,a1不會跟著變,但是a1內層改變了,a2對應的值也會跟著改變
a1=[1,2,3,[1,2]]
a2=a1.copy()
a1[0]=666
(a1)
print(a2)
結果:
d:\pythonproject2\scripts\python.exe d:/pythonproject2/test/t1.py[666, 2, 3, [1, 2]]
[1, 2, 3, [1, 2]]
process finished with exit code 0
改變內層:
#淺拷貝 copy(系統內建模組方法),實現的是淺拷貝。a1外層變了,a1不會跟著變,但是a1內層改變了,a2對應的值也會跟著改變
a1=[1,2,3,[1,2]]
a2=a1.copy()
a1[3][0]=666
(a1)
print(a2)
結果:
d:\pythonproject2\scripts\python.exe d:/pythonproject2/test/t1.py[1, 2, 3, [666, 2]]
[1, 2, 3, [666, 2]]
process finished with exit code 0
importcopy
#深拷貝 使用copy包下的deepcopy()實現的是深拷貝。a1值變了(不論第一層還是第二層,a2的值都不會變)
a1=[1,2,3,[1,2]]
a2=copy.deepcopy(a1)
a1[3][0]=666
(a1)
print(a2)
結果:
d:\pythonproject2\scripts\python.exe d:/pythonproject2/test/t1.py[1, 2, 3, [666, 2]]
[1, 2, 3, [1, 2]]
process finished with exit code 0
python實戰提公升 1
python中for in range 10 與for i in range 10 有何區別 下劃線表示 臨時變數,僅用一次,後面無需再用到 列表 import random 生成乙個隨機數列表 方法一 l for i in range 10 print l 列表生成式,迴圈十次,要生成的列表的內容...
Shell指令碼實戰
shell指令碼程式設計的靈活運用需要有對指令碼基礎,不同的語句組合應用具有十分熟悉的理解。接下來就通過一些實際專案來更加深刻的體會shell在生活中的應用。需求分析 根據系統管理的需求,分析指令碼要實現的功能,功能實現的層次,實現的命令與語句等 命令測試 將要用到的命令逐個進行測試,以決定使用的選...
python爬蟲實戰(1) 訪問網頁
疫情期間在家閒著沒事,找到本科時的課本,隨手翻了翻還是挺有意思的。在此將自己重新學習的新感受記錄下來,方便以後查閱,如能幫助到廣大的初學者朋友,將是莫大的榮幸。urllib是乙個包,裡邊總共有四個模組。第乙個模組urllib.request是最複雜的也是最重要的,因為它包含了對伺服器請求的發出 跳轉...