Python和JavaScript在語法上的區別[1]
阿新 • • 發佈:2019-01-07
變數宣告的區別
在變數宣告上Js使用的是var
和let
分別宣告函式作用域和塊級作用域。在python裡直接寫拉丁字母宣告,無字首。
資料型別的區別
在js中基本的資料結構有Object
,Array
等6種基本的資料結構,在python中則為list
,tuple
,dict
,set
四種。
- list類似Js中的Array。但是二者在操作上有著很大的不同。比如在Js中獲取一個數組的長度,
Array.length
.在Python中,則是len(目標list)
獲取長度。在索引上,JS的陣列是無法進行倒數,而python的list可以通過list[-1]
,list[-2]
進行倒數。在Js中往一個數組新增一個元素是通過Array.push(ele)
List.append(ele)
。在刪除最後一個元素方面,js和python沒有區別都是使用pop()
方法。但是js不存在pop()f方法指定索引刪除元素,而在python中,List.pop(i)
可以刪除指定元素。在元素插入上python擁有js沒有的insert(index,ele)
方法,這個方法可以指定索引,插入元素,如:List.insert(2,"global")
;在多維陣列方面,二者都是一樣array[i][j][k]
- tuple和list的很類似,但是它擁有一個非常重要的特性,就是初始化後不能修改,所以漢語中稱為元組。它的語法不同與陣列和list使用
[]
()
。注意一個非常重要的坑,在python中宣告一個單元素的tuple。不能寫成,(230)
,要寫成(230,)
,通過逗號宣告這不是一個數字計算。 - dict的英文全稱就是dictionary,就是字典。它非常類似於js中物件。也是一種鍵值對的形式。但是二者在語法上有一定的區別,Js獲取一個物件的屬性有兩種寫法
obj.prop/obj[propname]
。在python中。則是dict["propname"]
。注意在python中的鍵名一定要用引號打上。在JS中當我們需要檢查一個物件中是否存在某個屬性名,我們往往使用obj.hasOwnProperty("propname")
或者"propname" in obj
T.get("name")
; - set類似於dict,但是它只是鍵值對中鍵的集合,在Js中的ES6中已經新增此類概念。
迴圈遍歷的區別
在Js中開發者會把條件語句寫入()
中,在{}
中獲取迴圈遍歷結果,如:
for( var i in names){ //注意,在js中i是指標
return names[i]
}
Python不同,條件語句直接暴露在外面,通過:
表示迴圈遍歷的結果:
for name in names: //注意,在python中返回的遍歷結果
print (name)
同樣的while迴圈也是如此。
在這裡要講一個python中特有的range()函式,它接收一個引數n,然後形成一個從0~n的一個整數序列,也就是js中的陣列。這個range()函式可以被直接用於迴圈遍歷。
判斷語句的區別
類似於迴圈語句的語法,條件語句暴露在外面,:後面寫判斷結果,但是不同與js的else if
,在python中會簡寫成elif
。