Так что недавно я начал работать в небольшом стартапе в Нью-Йорке по имени 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”