46 python學習筆記

2022-04-27 10:45:10 字數 2428 閱讀 3611

之前用python跑過深度學習的**,用過一段時間的jupiter和tensorflow;最近在ubuntu下搭建起了vscode + anaconda的python開發環境,感覺很好用,尤其是用來做演算法驗證簡直舒服得一匹。遂單獨開一貼,記錄一下python學習與使用中的一些好玩的點。

python是弱引數型別語言,這符合當前高階變成語言發展的趨勢。我是從c++新標準中提倡使用的auto開始了解這一趨勢的,後來在《物件導向程式設計》一課中,寫jsp的時候,用到了var,也是根據初始化引數型別推測變數的型別。如今,python將這一趨勢發揚光大,使得語言變得及其好用,簡直舒服極了!!!

在python的函式定義中,延續了這一特點,使得其函式的定義方式天然就就具有過載性質,顯示出了無與倫比的優美與簡潔,舉例如下。

from shapely.geometry import

point

from shapely.geometry import

linestring

from shapely.geometry import

polygon

from shapely.geometry import

multipoint

#不指定引數型別,實際上相當於無限過載

defoutputallattributes(mem):

print('

geom_type

',mem.geom_type)

print('

area

',mem.area)

print('

bounds

',mem.bounds)

print('

length

',mem.length)

print('

distance

',mem.distance)

print('

representative_point

',mem.representative_point)

print('\n'

)def

test():

# point/linestring/polygon型別的形參通過同乙個函式呼叫,完美體現物件導向中「過載」的思想

p =point(0,0)

outputallattributes(p)

line = linestring([(0,0), (0,1), (1,1),(1,0)])

outputallattributes(line)

poly = polygon([(0,0), (1,1), (1,2)])

outputallattributes(poly)

if__name__ == '

__main__':

test()

看了一貼,鏈結如下。

結論:python不允許程式設計師選擇採用傳值還是傳引用。python引數傳遞採用的肯定是「傳物件引用」的方式。這種方式相當於傳值和傳引用的一種綜合。

如果函式收到的是乙個可變物件(number,string, tuple)的引用,就能修改物件的原始值--相當於通過「傳引用」來傳遞物件。

如果函式收到的是乙個不可變物件(list,dictionary,set)的引用,就不能直接修改原始物件--相當於通過「傳值'來傳遞物件。

# 介紹了setuptools的用法

# 介紹了將朋友python程式打包成linux/windows可執行檔案的操作方法

conda install pyqt #神奇地解決了

**既可以匯入,又可以執行

(2)in: 包含和迭代

if x in items:     # 包含

for x in items:   # 迭代

(3)zip組合鍵和值來建立字典

keys = ['

1001

', '

1002

', '

1003']

values = ['

駱昊', '

王大錘', '

白元芳'

]d =dict(zip(keys, values))

print(d)

4 6Python多版本存在問題

返回總目錄 更新pip,也就是重新安裝pip,重新連線pip與對應python的關係。至於 m 什麼意思?可參考 由3.6版本的我沒有截圖,只好拿3.4的演示 如果你安裝的python直譯器裡的pip是最新版本,而無法更新,可以先使用 pythonx.x m pip install pip 18.0...

Python學習筆記(46) join 函式

作用 將序列中的元素以指定的字元連線生成乙個新的字串.語法 a join b 引數說明 a 分隔符。可以為空 b 要連線的元素序列 字串 元組 字典 返回值 返回乙個以分隔符a連線各個元素後生成的字串 簡單說來就是 以a作為分隔符,將b所有的元素合併成乙個新的字串 demo usr bin pyth...

python學習筆記 46 TCP程式設計

socket是網路程式設計的乙個抽象概念。通常我們用乙個socket表示 開啟了乙個網路鏈結 而開啟乙個socket需要知道目標計算機的ip位址和埠號,再指定協議型別即可。大多數連線都是可靠的tcp連線。建立tcp連線時,主動發起連線的叫客戶端,被動響應連線的叫伺服器。所以,我們要建立乙個基於tcp...