天天看點

Python和JavaScript在使用上有什麼差別?

轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。 原文出處:https://www.freecodecamp.org/news/python-vs-javascript-what-are-the-key-differences-between-the-two-popular-programming-languages/

JavaScript和Python這兩種語言非常流行和強大,但它們在部分文法的使用上卻有着一些不同,如果你恰好對這些差別對比感興趣,那麼這篇文章中的内容可能會為你提供一些幫助。

在本文中,你将了解到:

Python和JavaScript的不同實際應用程式。

Python和JavaScript之間的主要文法和功能差異。

Python和JavaScript在使用上有什麼差別?

由于它的強大和通用性,Python已成為全世界幾乎所有科學應用中的重要工具。它是一種通用程式設計語言,支援不同的程式設計範式。

它被廣泛應用于科學和專業應用,包括資料科學、人工智能、機器學習、計算機科學教育、計算機視覺和圖像處理、醫學、生物學,甚至天文學。

另外,Python還被用于Web開發,雖然它主要用于後端開發,例如應用程式的伺服器端。

Python可用于開發Web應用程式的後端部分,但JavaScript可用于開發Web應用程式的後端和前端。

前端是使用者看到并與之互動的應用程式的一部分。每當您看到網站或Web應用程式或與之互動時,這部分功能就是JavaScript在 “幕後”提供的。

同樣,當你與移動應用進行互動時,您可能會使用JavaScript,因為像React Native這樣的架構可以讓我們使用JavaScript編寫可适應不同平台的應用程式。

JavaScript在Web開發中得到了如此廣泛的應用,因為它是一種多功能語言,為我們提供了開發Web應用程式元件所需的工具。

簡單來講,從應用程式角度來看,開發人員将Python用于開發科學應用程式,同時使用JavaScript進行Web開發及面向使用者的功能和伺服器開發。

既然知道了它們在應用層面上用途的差別,那我們就來看看它們的寫法和文法上有什麼差異,下面我們将通過以下主要元素上的差異。

代碼塊

變量定義

變量命名協定

常量

資料類型和值

注釋

内置的資料結構

運算符

輸入/輸出

條件語句

For循環和While循環

函數

面向對象的程式設計

每種程式設計語言都有自己的樣式來定義代碼塊。讓我們來看看它們在Python和JavaScript中的差別:

Python依靠縮進來定義代碼塊。當一系列連續的代碼行在同一級别縮進時,它們被視為同一代碼塊的一部分。

我們使用它來定義Python中的條件、函數、循環和所有的複合語句。

以下是示例:

Python和JavaScript在使用上有什麼差別?

在Python中使用縮進定義代碼塊

在JavaScript中,我們使用花括号({})将屬于同一代碼塊的語句分組。

Python和JavaScript在使用上有什麼差別?

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

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

要在Python中定義變量,我們要寫出變量名,後跟等号(=)和将配置設定給該變量的值。

例如

 

文法在JavaScript中非常相似,但是我們隻需要var在變量名稱之前添加關鍵字,并以分号(;)結尾即可。 

當使用var定義變量時,該變量具有函數作用域。

我們還可以使用關鍵字let:  

例如:  

當使用let定義變量時,變量将具有塊級作用域。它将僅在定義它的代碼塊中被識别。  

Python和JavaScript在使用上有什麼差別?

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

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

根據Python樣式指南:

ž   變量名遵循與函數名相同的約定。

ž   函數名稱應小寫,必要時用下劃線分隔單詞以提高可讀性。

是以,Python中的典型變量名稱如下所示:

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

根據MDN Web文檔的JavaScript準則文章:

對于變量名,請使用lowerCamelCasing,并在适當的地方使用簡潔的,易于了解的語義名稱。

是以,JavaScript中的典型變量名稱應如下所示:  

Python和JavaScript在使用上有什麼差別?

下面讓我們來讨論一下常量。常量是在程式執行期間不能更改的值。

在Python中,我們依靠命名規則來定義常量,因為語言中沒有嚴格的規則來防止更改它們的值。

常量通常在子產品級别定義,并以所有大寫字母書寫,并用下劃線分隔單詞。

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

例如:

這樣的命名規則隻是從規則上為自己和其他開發人員做了約定,該值不應在程式中進行修改,但從技術上講,該值是可以被更改的。  

在JavaScript中,我們可以定義不能在程式中更改的常量,并且不能重新配置設定變量辨別符。

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

根據這篇文章const的MDN的Web文檔:

const聲明建立了一個對值的隻讀引用,這并不意味着它所擁有的值是不可改變的--隻是變量辨別符不能重新配置設定。例如,在内容是對象的情況下,這意味着對象的内容(例如,它的屬性)可以被改變。

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

const TAX_RATE_PERCENTAGE = 32;

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

Python和JavaScript在使用上有什麼差別?
Python和JavaScript在使用上有什麼差別?

Python有三種數值類型,可以幫助我們出于科學目的執行精确計算。這些數值類型包括:int (整數)、 float(浮點數)和complex。它們中的每一個都有自己的屬性、特征和應用。

而JavaScript隻有兩種數值類型:Number和BigInt。整數和浮點數都被認為是Number類型。

在Python中,有一個名為None的特殊值,我們通常用它來訓示變量在程式中的某個特定點沒有值。

JavaScript中的等效值為null,這表示不存在任何對象值。

Python和JavaScript在使用上有什麼差別?

在JavaScript中,我們有一個特殊值,當我們聲明變量而不配置設定初始值時會自動配置設定一個特殊值,它就是undefined。

Python和JavaScript在使用上有什麼差別?

 在Python中,你必須為變量配置設定一個初始值。沒有初始值就無法聲明它。你可以講None指定為Python變量的初始值,以表示缺少值。

基礎資料類型表示我們可以在程式設計語言中處理的最基本的值。讓我們比較一下這兩種語言的基礎資料類型:

Python具有四種基礎資料類型:整數(int),浮點數(float),布爾值(bool)和字元串(str)。

JavaScript具有六種原始資料類型:undefined,布爾值,字元串,數字BigInt和Symbol。

注釋對于編寫簡潔易讀的代碼非常重要。讓我們看看在Python和JavaScript中的注釋分别是什麼樣的吧:

在Python中,我們使用井号(#)編寫注釋。該符号之後同一行上的所有字元均被視為注釋的一部分。

在JavaScript中,我們寫兩個斜杠(//)來開始單行注釋。

Python和JavaScript在使用上有什麼差別?

在Python中,要編寫多行注釋,我們要對每一行程式前都加上#号,以辨別這行為注釋。

在JavaScript中,多行注釋以/*開頭,以*/結束。這些符号之間的所有字元都被視為注釋的一部分。

Python和JavaScript在使用上有什麼差別?

在Python中,我們有一個内置的資料結構,叫做元組,它和清單非常相似,但是不可更改。是以,它在程式執行過程中不能被改變,是以它被用來存儲那些不應該被修改的資料。

在JavaScript中,并沒有一個内置的具有這些特性的資料結構。雖然你可以通過語言的某些特性來實作類似的資料結構。

Python和JavaScript在使用上有什麼差別?

在Python中, List用于在同一資料結構中存儲一系列值。可以在程式中對其進行修改,索引和使用。

在JavaScript中,可實作類似功能的資料結構稱為Array。

Python和JavaScript在使用上有什麼差別?

在Python中,有一個稱為字典的内置資料結構,可幫助我們将某些值映射到其他值并建立鍵值對。可用作哈希表使用。

JavaScript沒有這種類型的内置資料結構,但是有某些方法可以使用語言的某些元素來重制其功能。

Python和JavaScript在使用上有什麼差別?

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

在Python中,用雙斜杠(//)進行整除運算。

在JavaScript中,沒有特定的取整除的運算符。但我們可以通過調用Math.floor()方法将結果四舍五入為最接近的整數。

Python和JavaScript在使用上有什麼差別?

在Python中,我們使用==運算符比較兩個值及其資料類型是否相等。

在JavaScript中,的==運算符,它的執行工作原理是在比較之前将兩個對象轉換為相同的類型。

如果我們使用JavaScript(<code>0 == "0"</code>)檢查上一個示例的“整數與字元串”比較的結果,則結果是True而不是False,因為在比較之前将值轉換為相同的資料類型:  

Python和JavaScript在使用上有什麼差別?

 在JavaScript中,要檢查值和資料類型是否相等,我們需要使用另外一個運算符===(三等号)。

Python和JavaScript在使用上有什麼差別?

在Python中,有:and,or,和not這三個邏輯運算符。

在JavaScript中,則是:&amp;&amp;,|| 和! 。

Python和JavaScript在使用上有什麼差別?

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

在JavaScript中,我們使用typeof運算符。

Python和JavaScript在使用上有什麼差別?

要求使用者輸入和向使用者顯示值在應用中是非常常見的操作。讓我們看看在Python和JavaScript中分别是如何表示的。

在Python中,我們使用該input()函數來請求使用者輸入。我們将消息寫在括号内。

在JavaScript中,如果是正在浏覽器上運作代碼可使用prompt作為輸入方案(就是這樣不是常用方案罷了), window.prompt(message) 在輸入完成後,将結果配置設定給變量。

兩種方法之間的主要差別在于,在Python中,将提示使用者在控制台中輸入值,而在JavaScript中,浏覽器中将顯示一個小提示,并要求使用者輸入值。

Python和JavaScript在使用上有什麼差別?
Python和JavaScript在使用上有什麼差別?

 在JavaScript中,如果您打開Chrome Developer工具并在控制台中輸入以下代碼:

Python和JavaScript在使用上有什麼差別?

将顯示如下圖提示 

Python和JavaScript在使用上有什麼差別?

在Python中,我們使用print()函數将值列印到控制台。

在JavaScript中,我們使用console.log()向控制台列印一個值。

Python和JavaScript在使用上有什麼差別?

通過條件語句,我們可以根據特定條件來選擇程式後續将要執行的部分。

在Python中,我們依靠縮進來訓示哪些代碼行屬于條件代碼。

在JavaScript中,必須用括号将條件括起來,用花括号将代碼括起來。該代碼也應縮進。

Python和JavaScript在使用上有什麼差別?

else子句在兩種語言中都非常相似。唯一的差別是:

在Python中, 我們在else關鍵字之後寫一個冒号(:)

在JavaScript中, 我們用大括号({})将屬于該子句的代碼括起來。

Python和JavaScript在使用上有什麼差別?

在Python中,我們在條件後面寫關鍵字elif。在條件之後,我們寫一個冒号(:),代碼縮進下一行。

在JavaScript中,我們編寫關鍵字Else if,後跟條件(用圓括号括起來)。條件結束後,我們編寫花括号,并在花括号中縮進代碼。

Python和JavaScript在使用上有什麼差別?

在JavaScript中,我們有一個額外的控制語句,可以用來根據表達式的值選擇要執行的操作。此語句稱為switch。

Python沒有這種類型的語句。

Python和JavaScript在使用上有什麼差別?

下面讓我們看看如何在Python和JavaScript中定義不同類型的循環以及它們的主要差別。

在Python中定義for循環的文法比JavaScript中的文法相對簡單。

在Python中,我們在關鍵字 for 後面寫循環變量的名稱,關鍵字 in,及調用 range() 函數,指定必要的參數。然後,我們寫一個冒号(:),後面是縮進的循環主體。

在JavaScript中,我們必須明确地指定幾個值。我們用for關鍵字開始,後面是括号。在這些括号中,我們定義了循環變量的初始值,必須為False才能停止循環的條件,以及如何在每次疊代時更新變量。然後,我們寫大括号來建立一個代碼塊,在大括号内我們寫出循環的主體縮進。

Python和JavaScript在使用上有什麼差別?

我們可以在Python和JavaScript中使用for循環來疊代可疊代的元素。

在 Python 中,我們在關鍵字 for 後面寫上循環變量、in 關鍵字和疊代符。然後,我們寫一個冒号(:)和循環的主體(縮進)。

在JavaScript中,我們可以使用一個for ... 的循環。我們在for關鍵字後面寫上小括号,在小括号内寫上關鍵字var,後面寫上循環變量、關鍵字of和可疊代。我們用大括号包圍循環的主體,然後縮進。

Python和JavaScript在使用上有什麼差別?

在Python中,我們在關鍵字while後面寫上條件、冒号(:),然後在新的一行中寫上循環的主體(縮進)。

在JavaScript中,文法非常相似。不同的是,我們必須用括号包圍條件,用大括号将循環體括起來。

Python和JavaScript在使用上有什麼差別?

在JavaScript中,還有一種Python不存在的循環類型。

這種類型的循環稱為do..while循環,因為它至少執行一次操作,并在條件為時繼續運作<code>True</code>。

函數對于寫出簡潔、可維護和可讀的程式非常重要。Python和JavaScript中的文法非常相似,但讓我們分析一下它們的主要差別:

在 Python 中,我們在關鍵字 def 後面寫上函數的名稱,并在括号中寫上參數清單。在這個清單之後,我們寫一個冒号(:)和函數的主體(縮進)。

在JavaScript中,唯一不同的是,我們使用function關鍵字定義函數,并在函數的主體周圍加上大括号。

Python和JavaScript在使用上有什麼差別?

在 Python 中,傳遞給函數調用的參數數必須與函數定義中定義的參數數相比對。如果不是這樣,就會發生異常。

在JavaScript中,這不是必需的,因為參數是可選的。您可以使用比函數定義中定義的參數更少或更多的參數來調用函數。預設的參數被賦予未定義的值,額外的參數可以通過Arguments對象通路。

Python和JavaScript在使用上有什麼差別?

Python和JavaScript都支援面向對象程式設計,是以讓我們看看如何建立和使用這種程式設計範例的主要元素。

類定義的第一行在Python和JavaScript中非常相似。我們在關鍵字class後跟類的名稱。

唯一的差別是:

在Python中,在類名之後,我們寫了一個冒号(:)

在JavaScript中,我們用大括号({})包覆類的内容

Python和JavaScript在使用上有什麼差別?

構造函數是一種特殊的方法,當建立類的新執行個體(新對象)時會調用該方法。它的主要目的是初始化執行個體的屬性。

在Python中,調用了初始化新執行個體的構造函數init (帶有兩個前導和尾随下劃線)。建立類的執行個體以初始化其屬性時,将自動調用此方法。其參數清單定義了建立執行個體必須傳遞的值。該清單以self第一個參數開頭。

在JavaScript中,構造函數方法被調用,constructor并且它還具有一個參數清單。

Python和JavaScript在使用上有什麼差別?

在Python中,我們使用def關鍵字,其名稱和括号内的參數清單定義方法。此參數清單以參數開頭,self以引用正在調用該方法的執行個體。在此清單之後,我們編寫一個冒号(:),并将該方法的主體縮進。

在JavaScript中,方法是通過編寫其名稱,後跟參數清單和花括号來定義的。在花括号内,我們編寫方法的主體。

要建立類的執行個體:

在Python中,我們編寫類的名稱,并在括号内傳遞參數。

在JavaScript中,我們需要new在類名之前添加關鍵字。

  

Python和JavaScript都是非常強大的語言,因為有着不同的實際應用場景,Python可以用于Web開發和廣泛的應用,包括科學用途。JavaScript主要用于Web開發(前端和後端)和移動應用開發。是以,兩種語言并沒有孰強孰弱的差別。

雖然它們在文法和使用上有些許差別,但本身作為一門開發語言,使用和掌握上沒有本質上的差別,如果有那也隻是使用者自身的熟練程度帶來的影響罷了。

希望這篇文章能為你帶來一些幫助。如果有疑問可以通過評論告訴我。

本文是由葡萄城技術開發團隊釋出,轉載請注明出處:葡萄城官網