Python和JavaScript在使用上有什么区别?

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。javascript

原文出处:https://www.freecodecamp.org/news/python-vs-javascript-what-are-the-key-differences-between-the-two-popular-programming-languages/前端

JavaScript和Python这两种语言很是流行和强大,但它们在部分语法的使用上却有着一些不一样,若是你刚好对这些区别对比感兴趣,那么这篇文章中的内容可能会为你提供一些帮助。java

在本文中,你将了解到:python

  • Python和JavaScript的不一样实际应用程序。
  • Python和JavaScript之间的主要语法和功能差别。

Python VS JavaScript:应用上的差别

 

Python

因为它的强大和通用性,Python已成为全世界几乎全部科学应用中的重要工具。它是一种通用编程语言,支持不一样的编程范式。编程

它被普遍应用于科学和专业应用,包括数据科学、人工智能、机器学习、计算机科学教育、计算机视觉和图像处理、医学、生物学,甚至天文学。后端

另外,Python还被用于Web开发,虽然它主要用于后端开发,例如应用程序的服务器端。数组

JavaScript

Python可用于开发Web应用程序的后端部分,但JavaScript可用于开发Web应用程序的后端和前端。浏览器

前端是用户看到并与之交互的应用程序的一部分。每当您看到网站或Web应用程序或与之交互时,这部分功能就是JavaScript在 “幕后”提供的。服务器

一样,当你与移动应用进行交互时,您可能会使用JavaScript,由于像React Native这样的框架可让咱们使用JavaScript编写可适应不一样平台的应用程序。数据结构

JavaScript在Web开发中获得了如此普遍的应用,由于它是一种多功能语言,为咱们提供了开发Web应用程序组件所需的工具。

Python和JavaScript应用程序之间的差别

简单来说,从应用程序角度来看,开发人员将Python用于开发科学应用程序,同时使用JavaScript进行Web开发及面向用户的功能和服务器开发。

Python VS JavaScript: 语法差别

既然知道了它们在应用层面上用途的区别,那咱们就来看看它们的写法和语法上有什么差别,下面咱们将经过如下主要元素上的差别。

  • 代码块
  • 变量定义
  • 变量命名协议
  • 常量
  • 数据类型和值
  • 注释
  • 内置的数据结构
  • 运算符
  • 输入/输出
  • 条件语句
  • For循环和While循环
  • 函数
  • 面向对象的编程

Python和JavaScript中的代码块

每种编程语言都有本身的样式来定义代码块。让咱们来看看它们在Python和JavaScript中的区别:

Python如何定义代码块

Python依靠缩进来定义代码块。当一系列连续的代码行在同一级别缩进时,它们被视为同一代码块的一部分。

咱们使用它来定义Python中的条件、函数、循环和全部的复合语句。

如下是示例:

 

在Python中使用缩进定义代码块

JavaScript如何定义代码块

在JavaScript中,咱们使用花括号({})将属于同一代码块的语句分组。

如下是示例:

 

 

 

 

使用花括号在JavaScript中定义代码块 

Python和JavaScript中的变量定义

赋值语句是任何编程语言中最基本的语句之一。让咱们看看如何在Python和JavaScript中定义一个变量并对其赋值。

如何在Python中定义变量

要在Python中定义变量,咱们要写出变量名,后跟等号(=)和将分配给该变量的值。

<variable_name> = <value>

例如

x = 5

 

如何在JavaScript中定义变量

语法在JavaScript中很是类似,可是咱们只须要var在变量名称以前添加关键字,并以分号(;)结尾便可。 

var <variable_name> = <value>;

当使用var定义变量时,该变量具备函数做用域。

 

var x = 5; 

咱们还可使用关键字let:  

let <variable_name> = <value>; 

例如:  

let x = 5; 

当使用let定义变量时,变量将具备块级做用域。它将仅在定义它的代码块中被识别。  

 

 

 

PythonJavaScript中的变量命名约定

PythonJavaScript遵循两种不一样的变量命名约定。

如何在Python中命名变量

Python推荐使用蛇形命名法(snake_case

根据Python样式指南

ž   变量名遵循与函数名相同的约定。

ž   函数名称应小写,必要时用下划线分隔单词以提升可读性。

 

所以,Python中的典型变量名称以下所示:

first_name 

如何在JavaScript中命名变量

不过在JavaScript中,咱们应该遵循小骆驼命名法(lowerCamelCase)为命名样式,暨以首字母小写,以后每一个新单词以大写字母开头。

根据MDN Web文档的JavaScript准则文章:

对于变量名,请使用lowerCamelCasing,并在适当的地方使用简洁的,易于理解的语义名称。

所以,JavaScript中的典型变量名称应以下所示:  

firstName

 

 

PythonJavaScript中的常量

下面让咱们来讨论一下常量。常量是在程序执行期间不能更改的值。

如何在Python中定义常量

Python中,咱们依靠命名规则来定义常量,由于语言中没有严格的规则来防止更改它们的值。

根据Python样式指南

常量一般在模块级别定义,并以全部大写字母书写,用下划线分隔单词

这是咱们用于在Python中定义常量的命名方式:

CONSTANT_NAME

例如:

 

TAX_RATE_PERCENTAGE = 32 

这样的命名规则只是从规则上为本身和其余开发人员作了约定,该值不该在程序中进行修改,但从技术上讲,该值是能够被更改的。  

如何在JavaScript中定义常量

JavaScript中,咱们能够定义不能在程序中更改的常量,而且不能从新分配变量标识符。

但这并不意味着值自己不能更改。

根据这篇文章constMDNWeb文档

const声明建立了一个对值的只读引用,这并不意味着它所拥有的值是不可改变的--只是变量标识符不能从新分配。例如,在内容是对象的状况下,这意味着对象的内容(例如,它的属性)能够被改变。

要在JavaScript中定义常量,咱们const 在变量名称以前添加关键字:

const TAX_RATE_PERCENTAGE = 32;

若是尝试更改常量的值,则会看到此错误: 

 

 

 

 

PythonJavaScript中的数据类型和值

数值数据类型

Python有三种数值类型,能够帮助咱们出于科学目的执行精确计算。这些数值类型包括:int (整数) float(浮点数)complex。它们中的每个都有本身的属性、特征和应用。

JavaScript只有两种数值类型:NumberBigInt。整数和浮点数都被认为是Number类型。

None vs. null

Python中,有一个名为None的特殊值,咱们一般用它来指示变量在程序中的某个特定点没有值。

JavaScript中的等效值为null,这表示不存在任何对象值。

 

 

undefined 

JavaScript,咱们有一个特殊值,当咱们声明变量而不分配初始值时会自动分配一个特殊值,它就是undefined

如下是示例:

 

 Python,你必须为变量分配一个初始值。没有初始值就没法声明它。你能够讲None指定为Python变量的初始值,以表示缺乏值。

PythonJavaScript中的基础数据类型

基础数据类型表示咱们能够在编程语言中处理的最基本的值。让咱们比较一下这两种语言的基础数据类型:

  • Python具备四种基础数据类型:整数(int),浮点数(float),布尔值(bool)和字符串(str)。
  • JavaScript具备六种原始数据类型:undefined布尔值,字符串,数字BigIntSymbol

如何用PythonJavaScript编写注释

注释对于编写简洁易读的代码很是重要。让咱们看看在PythonJavaScript中的注释分别是什么样的吧:

单行注释

  • Python,咱们使用井号(#)编写注释。该符号以后同一行上的全部字符均被视为注释的一部分。
  • JavaScript,咱们写两个斜杠(//)来开始单行注释。

 

 

多行注释

  • Python,要编写多行注释,咱们要对每一行程序前都加上#号,以标识这行为注释。
  • JavaScript,多行注释以/*开头,以*/结束。这些符号之间的全部字符都被视为注释的一部分。

 

PythonJavaScript中的内置数据结构

Tuples

  • Python中,咱们有一个内置的数据结构,叫作元组,它和列表很是类似,可是不可更改。所以,它在程序执行过程当中不能被改变,因此它被用来存储那些不该该被修改的数据。
  • JavaScript中,并无一个内置的具备这些特性的数据结构。虽然你能够经过语言的某些特性来实现相似的数据结构。

 

 

 

列表List与数组Array

  • Python中, List用于在同一数据结构中存储一系列值。能够在程序中对其进行修改,索引和使用。
  • JavaScript,可实现相似功能的数据结构称为Array

 

 

哈希表

  • Python,有一个称为字典的内置数据结构,可帮助咱们将某些值映射到其余值并建立键值对。可用做哈希表使用。
  • JavaScript没有这种类型的内置数据结构,可是有某些方法可使用语言的某些元素来重现其功能。

 

 

取整除

尽管大多数算术运算符在PythonJavaScript间的工做原理和使用方式彻底相同,但在进行整除时却略有不一样。

  • Python,用双斜杠(//)进行整除运算。
  • JavaScript,没有特定的取整除的运算符。但咱们能够经过调用Math.floor()方法将结果四舍五入为最接近的整数。

 

 

比较值和类型

Python,咱们使用==运算符比较两个值及其数据类型是否相等。

# Comparing Two Integers
>>> 0 == 0     
True
# Comparing Integer to String
>>> 0 == "0"
False 

JavaScript,的==运算符,它的执行工做原理是在比较以前将两个对象转换为相同的类型。

若是咱们使用JavaScript0 == "0")检查上一个示例的整数与字符串比较的结果,则结果是True不是False由于在比较以前将值转换为相同的数据类型:  

 

 JavaScript中,要检查值数据类型是否相等,咱们须要使用另一个运算符===(三等号)。

 

 

 

逻辑运算符

  • Python,有:andor,和not这三个逻辑运算符。
  • JavaScript,则是:&&|| ! 

 

 

类型运算符

  • Python,要检查对象的类型,可使用type()函数。
  • JavaScript,咱们使用typeof运算符。

 

 

PythonJavaScript的输入和输出

要求用户输入和向用户显示值在应用中是很是常见的操做。让咱们看看在PythonJavaScript中分别是如何表示的。

输入

  • Python,咱们使用该input()函数来请求用户输入。咱们将消息写在括号内。
  • JavaScript,若是是正在浏览器上运行代码可以使用prompt做为输入方案(就是这样不是经常使用方案罢了), window.prompt(message) 在输入完成后,将结果分配给变量。

两种方法之间的主要区别在于,在Python中,将提示用户在控制台中输入值,而在JavaScript中,浏览器中将显示一个小提示,并要求用户输入值。

 

 

 

 JavaScript中,若是您打开Chrome Developer工具并在控制台中输入如下代码:

 

 

将显示以下图提示 

 

 

输出

  • Python,咱们使用print()函数将值打印到控制台。
  • JavaScript,咱们使用console.log()向控制台打印一个值。

 

 

PythonJavaScript中的条件语句

经过条件语句,咱们能够根据特定条件来选择程序后续将要执行的部分。

if 语句

  • Python,咱们依靠缩进来指示哪些代码行属于条件代码。
  • JavaScript,必须用括号将条件括起来,用花括号将代码括起来。该代码也应缩进。

 

 

if/else 语句

else子句在两种语言中都很是类似。惟一的区别是:

  • Python 咱们在else关键字以后写一个冒号(:
  • JavaScript 咱们用大括号({})将属于该子句的代码括起来。

 

 

多条件语句

  • Python中,咱们在条件后面写关键字elif。在条件以后,咱们写一个冒号(:),代码缩进下一行。
  • JavaScript中,咱们编写关键字Else if,后跟条件(用圆括号括起来)。条件结束后,咱们编写花括号,并在花括号中缩进代码。

 

Switch 语句

  • JavaScript中,咱们有一个额外的控制语句,能够用来根据表达式的值选择要执行的操做。此语句称为switch
  • Python没有这种类型的语句。

 

 

 

PythonJavaScript中的For循环和While循环

下面让咱们看看如何在PythonJavaScript中定义不一样类型的循环以及它们的主要区别。

循环

Python中定义for循环的语法比JavaScript中的语法相对简单。

  • Python,咱们在关键字 for 后面写循环变量的名称,关键字 in,及调用 range() 函数,指定必要的参数。而后,咱们写一个冒号(:),后面是缩进的循环主体。
  • JavaScript中,咱们必须明确地指定几个值。咱们用for关键字开始,后面是括号。在这些括号中,咱们定义了循环变量的初始值,必须为False才能中止循环的条件,以及如何在每次迭代时更新变量。而后,咱们写大括号来建立一个代码块,在大括号内咱们写出循环的主体缩进。

 

 

遍历可迭代对象

咱们能够在PythonJavaScript中使用for循环来迭代可迭代的元素。

  • Python 中,咱们在关键字 for 后面写上循环变量、in 关键字和迭代符。而后,咱们写一个冒号(:)和循环的主体(缩进)。
  • JavaScript中,咱们可使用一个for ... 的循环。咱们在for关键字后面写上小括号,在小括号内写上关键字var,后面写上循环变量、关键字of和可迭代。咱们用大括号包围循环的主体,而后缩进。

 

 

While循环

  • Python中,咱们在关键字while后面写上条件、冒号(:),而后在新的一行中写上循环的主体(缩进)
  • JavaScript中,语法很是类似。不一样的是,咱们必须用括号包围条件,用大括号将循环体括起来。

 

 

do..while 循环

JavaScript,还有一种Python不存在的循环类型。

这种类型的循环称为do..while循环,由于它至少执行一次操做,并在条件为时继续运行True

do {
    // Code
} while (condition); 

PythonJavaScript中的函数

函数对于写出简洁、可维护和可读的程序很是重要。PythonJavaScript中的语法很是类似,但让咱们分析一下它们的主要区别:

  • Python 中,咱们在关键字 def 后面写上函数的名称,并在括号中写上参数列表。在这个列表以后,咱们写一个冒号(:)和函数的主体(缩进)。
  • JavaScript中,惟一不一样的是,咱们使用function关键字定义函数,并在函数的主体周围加上大括号。

 

函数参数的数量

  • Python 中,传递给函数调用的参数数必须与函数定义中定义的参数数相匹配。若是不是这样,就会发生异常。
  • JavaScript中,这不是必需的,由于参数是可选的。您可使用比函数定义中定义的参数更少或更多的参数来调用函数。缺省的参数被赋予未定义的值,额外的参数能够经过Arguments对象访问。

 

 

 

PythonJavaScript进行面向对象的编程

PythonJavaScript都支持面向对象编程,因此让咱们看看如何建立和使用这种编程范例的主要元素。

Class

类定义的第一行在PythonJavaScript中很是类似。咱们在关键字class后跟类的名称。

惟一的区别是:

  • Python,在类名以后,咱们写了一个冒号(:
  • JavaScript,咱们用大括号({})括住类的内容

 

构造函数和属性

构造函数是一种特殊的方法,当建立类的新实例(新对象)时会调用该方法。它的主要目的是初始化实例的属性。

  • Python,调用了初始化新实例的构造函数init (带有两个前导和尾随下划线)。建立类的实例以初始化其属性时,将自动调用此方法。其参数列表定义了建立实例必须传递的值。该列表以self第一个参数开头。
  • JavaScript,构造函数方法被调用,constructor而且它还具备一个参数列表。

 

 

 

PythonJavaScript中的方法

  • Python,咱们使用def关键字,其名称和括号内的参数列表定义方法。此参数列表以参数开头,self以引用正在调用该方法的实例。在此列表以后,咱们编写一个冒号(:),并将该方法的主体缩进。
  • JavaScript,方法是经过编写其名称,后跟参数列表和花括号来定义的。在花括号内,咱们编写方法的主体。

实例

要建立类的实例:

  • Python,咱们编写类的名称,并在括号内传递参数。
my_circle = Circle(5, "Red")
  • JavaScript,咱们须要new在类名以前添加关键字。
my_circle = new Circle(5, "Red");

  

总结

PythonJavaScript都是很是强大的语言,由于有着不一样的实际应用场景,Python能够用于Web开发和普遍的应用,包括科学用途。JavaScript主要用于Web开发(前端和后端)和移动应用开发。因此,两种语言并无孰强孰弱的区别。

虽然它们在语法和使用上有些许区别,但自己做为一门开发语言,使用和掌握上没有本质上的区别,若是有那也只是使用者自身的熟练程度带来的影响罢了。

但愿这篇文章能为你带来一些帮助。若是有疑问能够经过评论告诉我。

相关文章
相关标签/搜索