Рубрики
Без рубрики

Python для разработчиков JavaScript

Краткое руководство для разработчиков JavaScript, которые хотят быстро добраться до скорости быстро с Python, но без необходимости изучать то, что объявляет переменной средства или какую функцию. Теги с JavaScript, Python.

Так что недавно я начал работать в небольшом стартапе в Нью-Йорке по имени Underdog.io. Где я обнаружил, что у них был спиной, написанный в первую очередь в Python, язык, которому у меня было очень мало предыдущего воздействия.

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

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

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

Этот пост предполагает, что вы используете Python 3.0.1 Таким образом, некоторые из примеров могут не работать с более старыми версиями Python.

Синтаксис

Объявление переменных

Объявление переменной в Python является Super Simple. Как JavaScript, вам не нужно установить тип переменной при его объявлении. И вам не нужно объявлять объем переменной либо ( Пусть vs var ):

x = 5

Вы можете изменить тип переменной, назначая значение другому типу к нему:

x = 5 # x has a type of Integer
x = 'Hewwo' # x is now a String!

В отличие от JavaScript, переменные в Python всегда являются блоками.

Блоки

Python немного более строго, чем JavaScript, когда дело доходит до синтаксиса. В Python отдается отдача одним пространством, может предотвратить даже программирование от даже бега (!). Это потому, что Python использует отступ для создания блоков вместо брекетов. Например, вот как вы бы определили блок в JavaScript против Python:

Создание блока в JavaScript

function exampleFunction () {
  // This is a block
  var a = 5;
}

{
  // This is also a block
}

Создание блока в Python

# This is a block with its own scope

def example_function():
  # This is also a block with its own scope
  x = 5
  print(x)

Если линия, содержащая Печать (х) имел один или несколько дополнительных помещений, переводчик Python бросит IndentationError Поскольку эти дополнительные помещения создали бы неверный блок.

def example_function():
  x = 5

  # IndentationError!
    print(x)

Если бы та же линию имела один или несколько меньших помещений в нем, вроде это:

def example_function():
  x = 5
 print(x)

Переводчик Python бросит эту ошибку:

NameError: name 'x' is not defined

Потому что Печать (х) находится в блоке, который не имеет возможности того, что х объявлен в.

Контрольный поток

Если ... еще С в то время как и для Блоки в Python очень похожи на JavaScript:

если еще

if x > 2:
  print('hai!')
elif x > 3:
  print('bye!')
else:
  print('hey now')

if not x:
  print('x is falsy!')

во время петли

while x > 0:
  print('hey now')

для петли

Для петель похожи на JavaScript Foreach петли:

ex_list = [1, 2, 3]

for x in ex_list:
  print(x)

Типы

Система типа Python – это очень похоже на JavaScript; Это там, но это не так строги, как на других языках, таких как Java или C #.

Практически говоря, переменные имеют типы, но вам не нужно объявлять типы ваших переменных, подобных вами, как вы бы на статически набранном языке, такие как Java.

Вот быстрый обзор встроенных данных Python:

Числа

В отличие от JavaScript, Python имеет более одного типа номеров:

  • Целые числа: 1 , 2 , 3.
  • Поплавки: 4.20 , 4e420.
  • Комплексные номера: 4 + 20J.
  • Логины: Правда , Ложь

Вы можете выполнить те же операции по номерам в Python, как вы можете в JavaScript. Есть также оператор Exponentiation (**):

# a = 4
a = 2 ** 2

Списки

Списки в Python аналогичны массивам в JavaScript. Списки могут содержать смесь типов:

[4, "2", [0, "zero"]]

Также есть специальный синтаксис для нарезки элементов из списков:

a_list = [1, 2, 3, 4, 5]

# 1, 2, 3
a_list[0:2]

# 4, 5
a_list[3:]

# 3, 4
a_list[2, -2]

И некоторые удобные встроенные методы работы в списках:

# 3
len([1, 2, 3])

# 3, 2, 1
[1, 2, 3].reverse()

# 1, 2, 3
[1, 2].append(3)

Вы даже можете объединить два списка с + Оператор:

# 1, 2, 3, 4
[1, 2] + [3, 4]

Строки

Строки в Python много как строки в JavaScript. Они неизменны, и отдельные символы могут быть доступны как элементы в массиве:

name = 'Mario'

# M
print(name[0])

# Nope, name is still 'Mario'
name[0] = 'M'

Словари

Словари являются ассоциативные массивы, похожие на объекты в JavaScript. На самом деле, словари могут быть объявлены с помощью синтаксиса JSON:

# Dictionaries in python
person = {
  'name': 'Mario',
  'age': 24
}

# Mario
print(person['name'])

У словарей есть удобный метод для возврата значения по умолчанию при попытке получить значение несуществующего ключа:

# Because `gender` is not defined, non-binary will be returned
person.get('gender', 'non-binary')

Никто

Нет эквивалентно null в JavaScript. Это означает отсутствие значения и считается «фальсию».

x = None

if not x:
  print('x is falsy!')

Функции

Как JavaScript, функции – это объекты в Python. Это означает, что вы можете пропустить функции в качестве аргументов или даже назначать свойства для функций:

def func(a, fn):
  print(a)
  fn()

func.x = 'meep'

# 'meep'
print(func.x)

def another_func():
  print('hey')

# 5
# 'hey'
func(5, another_func)

Модули

Модули в Python не так далеко от модулей в ES6.

Определение модуля

Модуль в Python – это просто файл, который содержит какой-то код Python.

# my_module.py
hey = 'heyyy'

def say_hey():
  print(hey)

В отличие от JavaScript, вам не нужно заявлять, что экспортируется; Все экспортируется по умолчанию.

Импорт модуля

Вы можете импортировать весь модуль в Python:

# importing my_module.py from another_module.py; both files are in the same
# directory
import my_module

# Do things
my_module.say_hey()
print(my_module.hey)

Или импортировать отдельные предметы из модуля:

# another_module.py
from my_module import hey, say_hey

# Do things
say_hey()
print(hey)

Вы также можете установить модули других людей написали с пипс , менеджер пакета для Python.

pip install simplejson

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

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

Классы

# Defining a class
class Animal:
  # Variable that is shared by all instances of the Animal class
  default_age = 1

  # Constructor
  def __init__(self, name):
    # Defining a publicly available variable
    self.name = name

    # You can define private variables and methods by prepending the variable
    # name with 2 underscores (__):
    self.__age = default_age

  # Public method
  def get_age(self):
    return self.__age

  # Private method
  def __meow():
    print('meowwww')

  # Defining a static method with the `staticmethod` decorator
  @staticmethod
  def moo():
    print('moooo')

# Creating an Animal object
animal = Animal()

# Accessing public variables and methods
print(animal.name)
print(animal.default_age)
print(animal.get_age())

# Accessing a static method
Animal.moo()

# ERR!!!! .__age is private, so this won't work:
print(animal.__age)

Наследование

Классы могут наследовать из других классов:

# Inheriting from the Animal class
class Human(Animal):
  def __init__(self, name, address):
    # Must call the __init__ method of the base class
    super().__init__(name)
    self.__address = address

  def get_address(self):
    return self.address

# Using the Human class
human = Human('Mario', '123 Jane Street, Brooklyn, NY 11211')

# Human objects have access to methods defined in the Animal base class
human.get_age()
human.get_address()

Ресурсы

Есть гораздо больше для Python, чем в этом руководстве. Я настоятельно рекомендую вам проверить Python Docs Для учебных пособий и деталей о других языках функций.

И помните, лучший способ выучить язык – это написать это, много. Так что доберитесь до кодирования!

P.S.: Если вам нужна идея для проекта, возможно попробуйте создать простой API с Колбы ?

Оригинал: “https://dev.to/underdogio/python-for-javascript-developers”