Python VS JavaScript - в чем основные различия между двумя популярными языками программирования? Часть 2

  • 20 мая, 17:02
  • 3788
  • 0

Встроенные структуры данных в Python и JavaScript

Встроенные структуры данных в Python и JavaScript также имеют ключевые различия.

Кортежи

  1. В Python у нас есть встроенная структура данных, называемая кортежем, которая очень похожа на список, но неизменна. Следовательно, его нельзя изменить во время выполнения программы, поэтому он используется для хранения данных, которые не должны изменяться.
  2. В JavaScript нет встроенной структуры данных с такими характеристиками. Хотя можно реализовать аналогичную структуру данных с некоторыми особенностями языка.

Списки против массивов

  1. В Python списки используются для хранения последовательности значений в одной и той же структуре данных. Их можно изменять, индексировать, нарезать и использовать в программе.
  2. В JavaScript эквивалентная версия этой структуры данных называется массивом .

Это пример:

Хеш-таблицы

  1. В Python есть встроенная структура данных, называемая словарем, которая помогает нам сопоставлять определенные значения с другими значениями и создавать пары ключ-значение. Это работает как хеш-таблица.
  2. В JavaScript нет такой встроенной структуры данных, но есть определенные способы воспроизвести ее функциональность с помощью определенных элементов языка.

Операторы в Python и JavaScript

Операторы необходимы для написания выражений на любом языке программирования. Давайте посмотрим на их ключевые различия в Python и JavaScript.

Хотя большинство арифметических операторов работают точно так же в Python и JavaScript, оператор деления немного отличается.

  1. В Python операция деления  (также называемая «целочисленным делением») представлена двойной косой чертой ( //).
  2. В JavaScript у нас нет конкретного оператора разделения этажей. Вместо этого мы вызываем Math.floor()метод, чтобы округлить результат до ближайшего целого числа.

Сравнение значений и типов

В Python мы используем == оператор, чтобы сравнить, равны ли два значения и их типы данных.

Например:

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

В JavaScript у нас также есть этот оператор, но он работает немного по-другому, потому что он преобразует два объекта в один и тот же тип перед фактическим выполнением сравнения.

Если мы проверим результат сравнения «целое число против строки» из предыдущего примера с помощью JavaScript ( 0 == "0"), результат будет True а не False потому, что значения перед сравнением преобразуются в один и тот же тип данных:

В JavaScript, чтобы проверить, равны ли значение и тип данных, нам нужно использовать этот оператор === (тройной знак равенства).

Теперь мы получаем ожидаемый результат:

Классно, правда?

== оператор в Python работает как === оператор в JavaScript.

Логические операторы

  1. В Python , три логические операторы: and, or, и not.
  2. В JavaScript , эти операторы: &&, ||и ! (соответственно).

Типовые операторы

  1. В Python для проверки типа объекта мы используем type() функцию.
  2. В JavaScript мы используем typeof оператор.

Это графическое описание их синтаксиса:

Ввод и вывод в Python и JavaScript

Запрос на ввод данных и отображение значений пользователю - очень распространенные операции. Посмотрим, как это можно сделать на Python и JavaScript:

Ввод

  1. В Python мы используем input()функцию для запроса ввода данных пользователем. Пишем сообщение в скобках.
  2. В JavaScript есть одна альтернатива (если вы запускаете код в браузере) - отобразить небольшое приглашение window.prompt(message) и присвоить результат переменной.

Основное различие между этими двумя подходами заключается в том, что в Python пользователю будет предложено ввести значение в консоли, а в JavaScript в браузере отобразится небольшое приглашение, в котором пользователю будет предложено ввести значение.

Вы увидите это в консоли Python, чтобы ввести значение:

В JavaScript, если вы откроете инструменты разработчика Chrome и введете эту строку кода в консоль:

Появится этот запрос:

Подсказка отображается при вызове window.prompt ()

Вывод

  1. В Python мы выводим значение на консоль с помощью print()функции, передавая значение в круглых скобках.
  2. В JavaScript мы выводим значение на консоль, используя console.log(), также передавая значение в круглых скобках.

Если вы работаете в браузере, вы также можете вызвать alert()для отображения небольшого приглашения с сообщением (или значением), переданным в круглых скобках.

Условные операторы в Python и JavaScript

С помощью условных выражений мы можем выбирать, что происходит в программе, в зависимости от того, является ли конкретное условие True или False. Давайте посмотрим на их различия в Python и JavaScript.

if оператор

  1. В Python мы полагаемся на отступ, чтобы указать, какие строки кода принадлежат условному выражению.
  2. В JavaScript мы должны заключить условие в круглые скобки, а код - в фигурные скобки. Код также должен быть с отступом.
Условные операторы в Python (слева) и JavaScript (справа)

if/else 

Предложение else очень похоже на обоих языках. Единственная разница в том, что:

  1. В Python , мы пишем двоеточие ( :) после  ключевого слова else
  2. В JavaScript , мы окружаем код , который принадлежит к этой статье с помощью фигурных скобок ( {}).

Несколько условий

Чтобы написать несколько условий:

  1. В Python мы пишем ключевое слово elif , за которым следует условие. После условия мы пишем двоеточие ( :) и код с отступом на следующей строке.
  2. В JavaScript мы пишем ключевые слова else if, за которыми следует условие (в круглых скобках). После условия мы пишем фигурные скобки и код с отступом внутри фигурных скобок.
Условные операторы в Python (слева) и JavaScript (справа)

Switch в JavaScript

  1. В JavaScript у нас есть дополнительная структура управления, которую мы можем использовать, чтобы выбирать, что происходит, на основе значения выражения. Это заявление называется switch.
  2. Python не имеет такой встроенной структуры управления.

Это общий синтаксис этого оператора:

Оператор switch в JavaScript

В JavaScript:

switch (expression) { case value1:        // Code        break;    case value2:        // Code        break;    case value3:        // Code        break;    default:        // Code
}

Мы можем добавить столько случаев, сколько нам нужно, и выражение может быть переменной.

Циклы for и while в Python и JavaScript

Теперь давайте посмотрим, как мы можем определять различные типы циклов в Python и JavaScript и их основные различия.

Для циклов

Синтаксис для определения цикла for в Python относительно проще, чем синтаксис в JavaScript.

  1. В Python мы пишем ключевое слово, for за которым следует имя переменной цикла, ключевое слово in и вызов range() функции, определяющей необходимый параметр (ы). Затем мы пишем двоеточие ( :), за которым следует тело цикла с отступом.
  2. В JavaScript мы должны явно указать несколько значений. Начнем с for ключевого слова, за которым следуют круглые скобки. В этих скобках мы определяем переменную цикла с ее начальным значением, условием, которое должно быть False для остановки цикла, и тем, как переменная будет обновляться на каждой итерации. Затем мы пишем фигурные скобки для создания блока кода, а внутри фигурных скобок пишем тело цикла с отступом.
Для цикла в Python (слева) и JavaScript (справа)

Итерации 

Мы можем использовать цикл for в Python и JavaScript для перебора элементов итерации.

  1. В Python мы пишем ключевое слово for , за которым следует переменная цикла, in ключевое слово и итерация. Затем мы пишем двоеточие ( :) и тело цикла (с отступом).
  2. В JavaScript мы можем использовать for .. of цикл. Мы пишем ключевое слово for, за которым следуют круглые скобки, и в этих скобках мы пишем ключевое слово var за которым следует переменная цикла, ключевое слово of и итерация. Тело цикла окружаем фигурными скобками, а затем делаем отступ.
Для цикла в Python (слева) и JavaScript (справа)

В JavaScript у нас также есть for .. in циклы для перебора свойств объекта.

Пример:

const object = { a: 1, b: 2, c: 3 };

for (const property in object) {  console.log(property, object[property]);
}

Когда мы запускаем этот код в консоли инструментов разработчика Chrome, результат будет следующим:

Цикл While

Циклы while очень похожи в Python и JavaScript.

  1. В Python мы пишем ключевое слово, while за которым следует условие, двоеточие ( :) и в новой строке тело цикла (с отступом).
  2. В JavaScript синтаксис очень похож. Отличия в том, что мы должны заключить условие в круглые скобки, а тело цикла - в фигурные скобки.
Пока цикл в Python (слева) и JavaScript (справа)

do..whileЦиклы в JavaScript

В JavaScript у нас также есть цикл, которого нет в Python.

Этот тип цикла называется do..while, потому что он выполняет что-то хотя бы один раз и продолжает выполняться, пока есть условие True.

Это основной синтаксис:

do {    // Code
} while (condition);

Этот тип цикла гарантирует, что код будет выполнен хотя бы один раз.

Это особенно полезно, когда мы запрашиваем ввод данных пользователем, потому что пользователю будет предложено ввести ввод. Если введенные данные верны, мы можем продолжить выполнение программы. Но если оно недействительно, мы можем предложить пользователю ввести значение еще раз, пока оно не станет действительным.

Функции в Python и JavaScript

Функции невероятно важны для написания кратких, удобных в обслуживании и читаемых программ. Синтаксис Python и JavaScript очень похож, но давайте проанализируем их ключевые различия:

  1. В Python мы пишем ключевое слово, def за которым следует имя функции, а в скобках - список параметров. После этого списка мы пишем двоеточие ( :) и тело функции (с отступом).
  2. В JavaScript единственное отличие состоит в том, что мы определяем функцию с помощью  ключевого слова function и заключаем тело функции в фигурные скобки.
Функция в Python (вверху) и JavaScript (внизу)

Кроме того, между функциями Python и JavaScript есть очень важное различие:

Количество аргументов функции

  1. В Python количество аргументов, передаваемых вызову функции, должно соответствовать количеству параметров, определенных в определении функции. Если это не так, произойдет исключение.

Пример:

>>> def foo(x, y):
    print(x, y)

    
>>> foo(3, 4, 5)
Traceback (most recent call last):  File "<pyshell#3>", line 1, in <module>    foo(3, 4, 5)
TypeError: foo() takes 2 positional arguments but 3 were given
  1. В JavaScript в этом нет необходимости, поскольку параметры необязательны. Вы можете вызвать функцию с меньшим или большим количеством аргументов, чем параметры, которые были определены в определении функции undefined По умолчанию отсутствующим аргументам присваивается значение , и  объект может получить доступ к дополнительным аргументам .

Пример на JavaScript:

Обратите внимание, как функция была вызвана с тремя аргументами, но только два параметра были включены в список параметров определения функции.

Чтобы получить количество аргументов, переданных функции, вы можете использовать их arguments.length внутри функции.

Объектно-ориентированное программирование на Python и JavaScript

И Python, и JavaScript поддерживают объектно-ориентированное программирование, поэтому давайте посмотрим, как вы можете создавать и использовать основные элементы этой парадигмы программирования.

Классы

Первая строка определения класса очень похожа в Python и JavaScript. Мы пишем ключевое слово, classза которым следует имя класса.

Единственная разница в том, что:

  1. В Python после имени класса мы пишем двоеточие ( :)
  2. В JavaScript мы заключаем содержимое класса в фигурные скобки ( {}).
Определение класса в Python (слева) и JavaScript (справа)

В Python и JavaScript имена классов должны начинаться с заглавной буквы, и каждое слово также должно начинаться с заглавной буквы.

Конструктор и атрибуты

Конструктор - это специальный метод, который вызывается при создании нового экземпляра класса (нового объекта). Его основная цель - инициализировать атрибуты экземпляра.

  1. В Python вызывается конструктор, который инициализирует новый экземпляр init (с двумя ведущими и завершающими знаками подчеркивания). Этот метод вызывается автоматически при создании экземпляра класса для инициализации его атрибутов. Его список параметров определяет значения, которые мы должны передать для создания экземпляра. Этот список начинается с self первого параметра.
  2. В JavaScript вызывается метод конструктора constructor, который также имеет список параметров.

В Python мы используем self для ссылки на экземпляр, в то время как в JavaScript мы используем this.

Чтобы присвоить значения атрибутам в Python , мы используем этот синтаксис:

self.attribute = value

Напротив, мы используем этот синтаксис в JavaScript :

this.attribute = value;
Пример класса в Python (слева) и JavaScript (справа)

Методы в Python и JavaScript

  1. В Python мы определяем методы с  ключевым словом def, за которым следует их имя и список параметров в круглых скобках. Этот список параметров начинается с self параметра, указывающего на экземпляр, вызывающий метод. После этого списка мы пишем двоеточие ( :) и тело метода с отступом.

Пример:

class Circle:

    def __init__(self, radius, color):
        self.radius = radius
        self.color = color

    def calc_diameter(self):
        return self.radius * 2
Пример: метод в классе Python
  1. В JavaScript методы определяются путем написания их имени, за которым следует список параметров и фигурные скобки. В фигурных скобках пишем тело метода.
class Circle {
    constructor(radius, color) {        this.radius = radius;        this.color = color;    }
    calcDiameter() {        return this.radius * 2;    }
}
Пример: метод в классе JavaScript

Экземпляры

Чтобы создать экземпляры класса:

  1. В Python мы пишем имя класса и передаем аргументы в круглых скобках.
my_circle = Circle(5, "Red")
  1. В JavaScript нам нужно добавить ключевое слово new перед именем класса.
my_circle = new Circle(5, "Red");

Python и JavaScript - очень мощные языки с различными реальными приложениями.

Python можно использовать для веб-разработки и для широкого круга приложений, включая научные цели. JavaScript в основном используется для веб-разработки (интерфейсная и внутренняя) и для разработки мобильных приложений.

У них есть важные различия, но у них обоих есть те же основные элементы, которые нам нужны для написания мощных программ.


Теги: javascript python
0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все