溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python和JavaScript在使用上有什么區(qū)別

發(fā)布時間:2021-09-30 09:58:16 來源:億速云 閱讀:192 作者:柒染 欄目:編程語言

Python和JavaScript在使用上有什么區(qū)別,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

JavaScript和Python這兩種語言非常流行和強(qiáng)大,但它們在部分語法的使用上卻有著一些不同。

Python VS JavaScript:應(yīng)用上的差異

 Python和JavaScript在使用上有什么區(qū)別

Python

由于它的強(qiáng)大和通用性,Python已成為全世界幾乎所有科學(xué)應(yīng)用中的重要工具。它是一種通用編程語言,支持不同的編程范式。

它被廣泛應(yīng)用于科學(xué)和專業(yè)應(yīng)用,包括數(shù)據(jù)科學(xué)、人工智能、機(jī)器學(xué)習(xí)、計(jì)算機(jī)科學(xué)教育、計(jì)算機(jī)視覺和圖像處理、醫(yī)學(xué)、生物學(xué),甚至天文學(xué)。

另外,Python還被用于Web開發(fā),雖然它主要用于后端開發(fā),例如應(yīng)用程序的服務(wù)器端。

JavaScript

Python可用于開發(fā)Web應(yīng)用程序的后端部分,但JavaScript可用于開發(fā)Web應(yīng)用程序的后端和前端。

前端是用戶看到并與之交互的應(yīng)用程序的一部分。每當(dāng)您看到網(wǎng)站或Web應(yīng)用程序或與之交互時,這部分功能就是JavaScript在 “幕后”提供的。

同樣,當(dāng)你與移動應(yīng)用進(jìn)行交互時,您可能會使用JavaScript,因?yàn)橄馬eact Native這樣的框架可以讓我們使用JavaScript編寫可適應(yīng)不同平臺的應(yīng)用程序。

JavaScript在Web開發(fā)中得到了如此廣泛的應(yīng)用,因?yàn)樗且环N多功能語言,為我們提供了開發(fā)Web應(yīng)用程序組件所需的工具。

Python和JavaScript應(yīng)用程序之間的差異

簡單來講,從應(yīng)用程序角度來看,開發(fā)人員將Python用于開發(fā)科學(xué)應(yīng)用程序,同時使用JavaScript進(jìn)行Web開發(fā)及面向用戶的功能和服務(wù)器開發(fā)。

Python VS JavaScript: 語法差異

既然知道了它們在應(yīng)用層面上用途的區(qū)別,那我們就來看看它們的寫法和語法上有什么差異,下面我們將通過以下主要元素上的差異。

  • 代碼塊

  • 變量定義

  • 變量命名協(xié)議

  • 常量

  • 數(shù)據(jù)類型和值

  • 注釋

  • 內(nèi)置的數(shù)據(jù)結(jié)構(gòu)

  • 運(yùn)算符

  • 輸入/輸出

  • 條件語句

  • For循環(huán)和While循環(huán)

  • 函數(shù)

  • 面向?qū)ο蟮木幊?/p>

Python和JavaScript中的代碼塊

每種編程語言都有自己的樣式來定義代碼塊。讓我們來看看它們在Python和JavaScript中的區(qū)別:

Python如何定義代碼塊

Python依靠縮進(jìn)來定義代碼塊。當(dāng)一系列連續(xù)的代碼行在同一級別縮進(jìn)時,它們被視為同一代碼塊的一部分。

我們使用它來定義Python中的條件、函數(shù)、循環(huán)和所有的復(fù)合語句。

以下是示例:

Python和JavaScript在使用上有什么區(qū)別

使用花括號在JavaScript中定義代碼塊 

Python和JavaScript中的變量定義

賦值語句是任何編程語言中最基本的語句之一。讓我們看看如何在Python和JavaScript中定義一個變量并對其賦值。

如何在Python中定義變量

要在Python中定義變量,我們要寫出變量名,后跟等號(=)和將分配給該變量的值。

1      

<variable_name> = <value>

例如

1      

x = 5

如何在JavaScript中定義變量

語法在JavaScript中非常相似,但是我們只需要var在變量名稱之前添加關(guān)鍵字,并以分號(;)結(jié)尾即可?!?/p>

1      

var <variable_name> = <value>;

當(dāng)使用var定義變量時,該變量具有函數(shù)作用域。

1      

var x = 5; 

我們還可以使用關(guān)鍵字let:  

1      

let <variable_name> = <value>; 

例如:  

1      

let x = 5; 

當(dāng)使用let定義變量時,變量將具有塊級作用域。它將僅在定義它的代碼塊中被識別?! ?/p>

Python和JavaScript在使用上有什么區(qū)別

Python和JavaScript中的變量命名約定

Python和JavaScript遵循兩種不同的變量命名約定。

如何在Python中命名變量

Python推薦使用蛇形命名法(snake_case。

根據(jù)Python樣式指南:

?   變量名遵循與函數(shù)名相同的約定。

?   函數(shù)名稱應(yīng)小寫,必要時用下劃線分隔單詞以提高可讀性。

因此,Python中的典型變量名稱如下所示:

1      

first_name 

如何在JavaScript中命名變量

不過在JavaScript中,我們應(yīng)該遵循小駱駝命名法(lowerCamelCase)為命名樣式,暨以首字母小寫,之后每個新單詞以大寫字母開頭。

根據(jù)MDN Web文檔的JavaScript準(zhǔn)則文章:

對于變量名,請使用lowerCamelCasing,并在適當(dāng)?shù)牡胤绞褂煤啙嵉?,易于理解的語義名稱。

因此,JavaScript中的典型變量名稱應(yīng)如下所示:  

1      

firstName

Python和JavaScript在使用上有什么區(qū)別

Python和JavaScript中的常量

下面讓我們來討論一下常量。常量是在程序執(zhí)行期間不能更改的值。

如何在Python中定義常量

在Python中,我們依靠命名規(guī)則來定義常量,因?yàn)檎Z言中沒有嚴(yán)格的規(guī)則來防止更改它們的值。

根據(jù)Python樣式指南:

常量通常在模塊級別定義,并以所有大寫字母書寫,用下劃線分隔單詞。

這是我們用于在Python中定義常量的命名方式:

1      

CONSTANT_NAME

例如:

1      

TAX_RATE_PERCENTAGE = 32 

這樣的命名規(guī)則只是從規(guī)則上為自己和其他開發(fā)人員做了約定,該值不應(yīng)在程序中進(jìn)行修改,但從技術(shù)上講,該值是可以被更改的?! ?/p>

如何在JavaScript中定義常量

在JavaScript中,我們可以定義不能在程序中更改的常量,并且不能重新分配變量標(biāo)識符。

但這并不意味著值本身不能更改。

根據(jù)這篇文章const的MDN的Web文檔:

const聲明創(chuàng)建了一個對值的只讀引用,這并不意味著它所擁有的值是不可改變的--只是變量標(biāo)識符不能重新分配。例如,在內(nèi)容是對象的情況下,這意味著對象的內(nèi)容(例如,它的屬性)可以被改變。

要在JavaScript中定義常量,我們const 在變量名稱之前添加關(guān)鍵字:

const TAX_RATE_PERCENTAGE = 32;

如果嘗試更改常量的值,則會看到此錯誤: 

Python和JavaScript在使用上有什么區(qū)別

 Python和JavaScript在使用上有什么區(qū)別

undefined 值

JavaScript,我們有一個特殊值,當(dāng)我們聲明變量而不分配初始值時會自動分配一個特殊值,它就是undefined。

以下是示例:

Python和JavaScript在使用上有什么區(qū)別

多行注釋

  • Python,要編寫多行注釋,我們要對每一行程序前都加上#號,以標(biāo)識這行為注釋。

  • JavaScript,多行注釋以/*開頭,以*/結(jié)束。這些符號之間的所有字符都被視為注釋的一部分。

Python和JavaScript在使用上有什么區(qū)別

列表List與數(shù)組Array

  • Python中, List用于在同一數(shù)據(jù)結(jié)構(gòu)中存儲一系列值??梢栽诔绦蛑袑ζ溥M(jìn)行修改,索引和使用。

  • JavaScript,可實(shí)現(xiàn)類似功能的數(shù)據(jù)結(jié)構(gòu)稱為Array。

Python和JavaScript在使用上有什么區(qū)別

取整除

盡管大多數(shù)算術(shù)運(yùn)算符在Python和JavaScript間的工作原理和使用方式完全相同,但在進(jìn)行整除時卻略有不同。

  • Python,用雙斜杠(//)進(jìn)行整除運(yùn)算。

  • JavaScript,沒有特定的取整除的運(yùn)算符。但我們可以通過調(diào)用Math.floor()方法將結(jié)果四舍五入為最接近的整數(shù)。

比較值和類型

Python,我們使用==運(yùn)算符比較兩個值及其數(shù)據(jù)類型是否相等。

1      

2      

3      

4      

5      

6      

# Comparing Two Integers

>>> 0 == 0    

True

# Comparing Integer to String

>>> 0 == "0"

False 

JavaScript,的==運(yùn)算符,它的執(zhí)行工作原理是在比較之前將兩個對象轉(zhuǎn)換為相同的類型。

如果我們使用JavaScript(0 == "0")檢查上一個示例的“整數(shù)與字符串”比較的結(jié)果,則結(jié)果是True不是False因?yàn)樵诒容^之前將值轉(zhuǎn)換為相同的數(shù)據(jù)類型:  

Python和JavaScript在使用上有什么區(qū)別

 在JavaScript中,要檢查值數(shù)據(jù)類型是否相等,我們需要使用另外一個運(yùn)算符===(三等號)。

Python和JavaScript在使用上有什么區(qū)別

類型運(yùn)算符

  • Python,要檢查對象的類型,可以使用type()函數(shù)。

  • JavaScript,我們使用typeof運(yùn)算符。

Python和JavaScript在使用上有什么區(qū)別

 Python和JavaScript在使用上有什么區(qū)別

將顯示如下圖提示 

Python和JavaScript在使用上有什么區(qū)別

Python和JavaScript中的條件語句

通過條件語句,我們可以根據(jù)特定條件來選擇程序后續(xù)將要執(zhí)行的部分。

if 語句

  • Python,我們依靠縮進(jìn)來指示哪些代碼行屬于條件代碼。

  • JavaScript,必須用括號將條件括起來,用花括號將代碼括起來。該代碼也應(yīng)縮進(jìn)。

Python和JavaScript在使用上有什么區(qū)別

多條件語句

  • 在Python中,我們在條件后面寫關(guān)鍵字elif。在條件之后,我們寫一個冒號(:),代碼縮進(jìn)下一行。

  • 在JavaScript中,我們編寫關(guān)鍵字Else if,后跟條件(用圓括號括起來)。條件結(jié)束后,我們編寫花括號,并在花括號中縮進(jìn)代碼。

Python和JavaScript在使用上有什么區(qū)別

Python和JavaScript中的For循環(huán)和While循環(huán)

下面讓我們看看如何在Python和JavaScript中定義不同類型的循環(huán)以及它們的主要區(qū)別。

循環(huán)

在Python中定義for循環(huán)的語法比JavaScript中的語法相對簡單。

  • Python,我們在關(guān)鍵字 for 后面寫循環(huán)變量的名稱,關(guān)鍵字 in,及調(diào)用 range() 函數(shù),指定必要的參數(shù)。然后,我們寫一個冒號(:),后面是縮進(jìn)的循環(huán)主體。

  • 在JavaScript中,我們必須明確地指定幾個值。我們用for關(guān)鍵字開始,后面是括號。在這些括號中,我們定義了循環(huán)變量的初始值,必須為False才能停止循環(huán)的條件,以及如何在每次迭代時更新變量。然后,我們寫大括號來創(chuàng)建一個代碼塊,在大括號內(nèi)我們寫出循環(huán)的主體縮進(jìn)。

Python和JavaScript在使用上有什么區(qū)別

While循環(huán)

  • 在Python中,我們在關(guān)鍵字while后面寫上條件、冒號(:),然后在新的一行中寫上循環(huán)的主體(縮進(jìn))。

  • 在JavaScript中,語法非常相似。不同的是,我們必須用括號包圍條件,用大括號將循環(huán)體括起來。

do..while 循環(huán)

JavaScript,還有一種Python不存在的循環(huán)類型。

這種類型的循環(huán)稱為do..while循環(huán),因?yàn)樗辽賵?zhí)行一次操作,并在條件為時繼續(xù)運(yùn)行True。

1      

2      

3      

do {

    // Code

while (condition); 

Python和JavaScript中的函數(shù)

函數(shù)對于寫出簡潔、可維護(hù)和可讀的程序非常重要。Python和JavaScript中的語法非常相似,但讓我們分析一下它們的主要區(qū)別:

  • 在 Python 中,我們在關(guān)鍵字 def 后面寫上函數(shù)的名稱,并在括號中寫上參數(shù)列表。在這個列表之后,我們寫一個冒號(:)和函數(shù)的主體(縮進(jìn))。

  • 在JavaScript中,唯一不同的是,我們使用function關(guān)鍵字定義函數(shù),并在函數(shù)的主體周圍加上大括號。

Python和JavaScript在使用上有什么區(qū)別

函數(shù)參數(shù)的數(shù)量

  • 在 Python 中,傳遞給函數(shù)調(diào)用的參數(shù)數(shù)必須與函數(shù)定義中定義的參數(shù)數(shù)相匹配。如果不是這樣,就會發(fā)生異常。

  • 在JavaScript中,這不是必需的,因?yàn)閰?shù)是可選的。您可以使用比函數(shù)定義中定義的參數(shù)更少或更多的參數(shù)來調(diào)用函數(shù)。缺省的參數(shù)被賦予未定義的值,額外的參數(shù)可以通過Arguments對象訪問。

 Python和JavaScript在使用上有什么區(qū)別

構(gòu)造函數(shù)和屬性

構(gòu)造函數(shù)是一種特殊的方法,當(dāng)創(chuàng)建類的新實(shí)例(新對象)時會調(diào)用該方法。它的主要目的是初始化實(shí)例的屬性。

  • Python,調(diào)用了初始化新實(shí)例的構(gòu)造函數(shù)init (帶有兩個前導(dǎo)和尾隨下劃線)。創(chuàng)建類的實(shí)例以初始化其屬性時,將自動調(diào)用此方法。其參數(shù)列表定義了創(chuàng)建實(shí)例必須傳遞的值。該列表以self第一個參數(shù)開頭。

  • JavaScript,構(gòu)造函數(shù)方法被調(diào)用,constructor并且它還具有一個參數(shù)列表。

 

Python和JavaScript中的方法

  • Python,我們使用def關(guān)鍵字,其名稱和括號內(nèi)的參數(shù)列表定義方法。此參數(shù)列表以參數(shù)開頭,self以引用正在調(diào)用該方法的實(shí)例。在此列表之后,我們編寫一個冒號(:),并將該方法的主體縮進(jìn)。

  • JavaScript,方法是通過編寫其名稱,后跟參數(shù)列表和花括號來定義的。在花括號內(nèi),我們編寫方法的主體。

實(shí)例

要創(chuàng)建類的實(shí)例:

  • Python,我們編寫類的名稱,并在括號內(nèi)傳遞參數(shù)。

1      

my_circle = Circle(5, "Red")

  • JavaScript,我們需要new在類名之前添加關(guān)鍵字。

1      

my_circle = new Circle(5, "Red");

Python和JavaScript都是非常強(qiáng)大的語言,因?yàn)橛兄煌膶?shí)際應(yīng)用場景,Python可以用于Web開發(fā)和廣泛的應(yīng)用,包括科學(xué)用途。JavaScript主要用于Web開發(fā)(前端和后端)和移動應(yīng)用開發(fā)。所以,兩種語言并沒有孰強(qiáng)孰弱的區(qū)別。

雖然它們在語法和使用上有些許區(qū)別,但本身作為一門開發(fā)語言,使用和掌握上沒有本質(zhì)上的區(qū)別,如果有那也只是使用者自身的熟練程度帶來的影響罷了。

 

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI