1,邏輯運算php
python中的邏輯運算符對比php而言,除了少了一個「!」以外,其它的「&」,「|」,and,or,not 都和PHP中的大體相似,什麼叫大體相似?
java
由於,「&&」和「&」大體相似,「||」和「|」大體相似python
就是這麼任性,你攔不住!編程
用一個簡單的例子,大概的說明一下,同時 請記住:判斷一個變量的數據類型的方法,可使用 isinstance編程語言
經過上面的代碼示例,還引出一個問題,那就是 「布爾」類型的 「True」和「False」,使用 isinstance 去判斷的時候實際上是屬於 「int」類型的,就像是下面這樣:函數
可是,要注意,若是是經過 type 來比較,那麼它們必定是不一樣的!學習
補充說明:在python中是沒有「switch」的哦 ^_^測試
2,函數spa
在各類編程語言中,關於函數大體能夠包括這麼多內容:定義,調用,參數,返回值it
固然了,python中是不會搞特殊化的,該有的必需要有,不應有的,額。。。。這個也能夠有
廢話很少說,咱們畫(截)個圖來看看:
一個簡單的例子,就說明了python中關於函數的基本知識,這些也是PHP中函數的知識。
你看,是否是也很容易學習呢!
python的函數,在PHP函數的常見功能上,增長了一些特性,好比說:返回多個值 與 可變參數
3,返回多個值
返回多個值,在PHP的函數中固然能夠實現,可是它的限制是在 return 後面只能跟一個返回值變量,也就是說不可以寫成這樣:return a,b
可是在python中是容許你這麼幹的,就像是這樣,果然是任性( ⊙ o ⊙ )啊!
經過上面程序示例輸出的結果,你有沒有發現,其實所謂的「函數返回多個值」的本質是什麼?
你徹底能夠理解成,python在內部針對return作了手腳,當你給它多個值得時候,return會幫你把這個多個值「包裝」成一個 tuple,而後給你返回這個tuple,這樣就好像是能夠返回多個值了。
理解了這句話, 你就知道爲何,當python中的函數返回多個值得時候,咱們須要這麼來接收了:
你看,是否是也很容易想到呢?
問一個問題:python返回多個值爲何會包裝成tuple,而不是集合或者列表?
O(∩_∩)O哈!思考一下吧 ^_^
4,可變參數
若是你有過關於java程序的自動裝箱,自動拆箱的編程經驗,那麼對於python的可變參數就是手到擒來的事情。
對於可變參數,有一個不錯的測試案例,以下:
要求,定義一個函數,能夠請求任意幾個值的和,而且返回。
你怎麼作?
固然,解決方案是不少的,可是如今咱們用函數的可變參數來實現,就像下面這樣:
你看,是否是就實現了呢?
如今,你能夠傳遞任意個參數,而後它就會幫你求出它們的和。
正如程序中看到的同樣,能夠針對可變參數名「args」來作循環遍歷,那你想不想知道「args」的數據類型是什麼?
有沒有很清楚?
再結合上面的返回多個值,一塊兒想想,是否是明白了呢?
那麼,這個跟剛開始講的java的拆箱和裝箱有什麼異同呢?
其實,在python中所謂的可變參數,就是當你傳遞多個參數的時候,python能夠經過關鍵字「*」(假設能夠這麼看),把你的多個參數自動打包成一個tuple,而後傳遞到函數內部,當你要返回多個參數的時候,也是這樣的一個過程。不過是一個傳入,一個傳出罷了!
若是,你仍是有一點疑惑,那麼看看下面的在python中稱爲關鍵字參數的東西,或許你就懂了。
5,關鍵字參數
什麼是關鍵字參數,粗魯一點的說,就是你能夠給你的參數定義一個名字了。
你看,你能夠給你的參數定義名字,同時還須要給它指定具體的值,那你是否是有想到python中的一種數據類型呢?
對,就是字典!
經過上面的對比,你大概就可以瞭解了。
在python中,若是你準備傳遞多個參數,有兩種方案,一是採用「*」,自動打包成元組類型,另一種是採用「**」,自動打包成字典類型。
兩種方案各有各的優劣,能夠根據不一樣的需求進行選擇!
若是你準備讓你的函數返回多個值,那麼必定要記住python會自動幫你打包成元組類型!
那這時你可能就在想,若是我想讓python幫我打包成字典類型該怎麼作呢?那這個問題,仍是不問的好了吧!
6,補充
綜合上面「接近抽象」的解釋,對於python的函數有了一個大概的瞭解,其中最重要的一點是關於python函數的參數。
那麼這裏補充,也是要告訴你們,python中的參數,我麼能夠人爲的將其劃分紅四類:必選參數,可選參數,可變參數,關鍵字參數。
那麼前兩類在其它的編程語言中,好比說PHP,一樣適用,重點是後面兩種。那關於後面兩種參數的使用,你能夠聯想到java中的自動拆箱、裝箱機制,而後記住它們的操做符「*」和「**」就可以熟練運用了!
固然了,這四類參數在同一個函數中是能夠混用的,可是順序必定要是那個順序喲!
------------------------------------------華麗的分割線---------------------------------------------
寫這麼多,還挺累