Различия между синтаксисом Python и JavaScript

Python внешний интерфейс программист JavaScript
Различия между синтаксисом Python и JavaScript

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

Ниже приведены моменты синтаксиса Python, которые отличаются от JavaScript, которые я записал в процессе обучения для удобства.

виды и операции

  • Логические два ключевых слова типа True False
  • Логическая операция и, или, не ключевое слово является и или нет
  • Пустое значение — None
  • точное деление / ; округление деления //
  • заполнители для строк формата (например, строки шаблона) '%d %f %s %x' % (1, 1.2, 'aaa', '0x16')
  • Преобразования между типами и логическими типами: до тех пор, покаxЕсли это ненулевое значение, непустая строка, непустой список и т. д., оно оценивается какTrue, иначеFalse.
  • Строгая типизация, разные типы нельзя сравнивать, требуются явные функции преобразования.

структура кода

  • Двоеточия и отступы представляют блоки кода, а отступ не указан
  • Условное суждение:
if a > b:
	a++
elif:
	b++
else:
	c++
  • Перебрать массив, используя for in
  • Временно свободные блоки операторов могут быть заняты ключевым словом pass
  • попробуйте блок:
try:
    print('try...')
    r = 10 / 0
    print('result:', r)
except ZeroDivisionError as e:
    print('except:', e)
finally:
    print('finally...')
print('END')
  • Генерация исключения: поднять FooError('недопустимое значение: %s' % s)

список и кортеж

  • Список разделен на список и кортеж

  • Получить длину списка len()

  • Получить последний параметр списка datas[-1], предпоследний datas[-2]

  • Метод работы со списком:

    Добавьте datas.append(данные) в конце

    Вставить в указанную позицию: datas.insert(индекс, данные)

    Удалите конец: datas.pop()

    Удалить указанную позицию: datas.pop(index)

  • Типы данных в списке могут быть разными, как и в JavaScript.

  • tuple — неизменяемый список

  • определение кортежа: (1, 2, 3)

  • кортеж только с одним элементом: (1.2, )

продиктовать и установить

  • Тип, подобный Map, называется dict.
  • Поиск через d['key'] сообщит об ошибке, если ключ не существует
  • Используйте «ключ» в операции d, чтобы определить, содержит ли он
  • d.get('key') возвращает None, если он не существует
  • dict может использовать d.pop('key') для удаления элементов
  • Ключи dict должны быть неизменяемыми типами данных, такими как строки и целые числа.
  • set содержит только уникальные ключи
  • Чтобы создать набор, вам нужно предоставить список в качестве входного набора: s = set(list), который автоматически отфильтрует повторяющиеся элементы.
  • установить добавляет добавить (ключ)
  • Установить удалить Удалить (ключ)
  • Установить операцию пересечения и объединения s1 & s2 ; s1 | s2

Операции по сбору

  • Разрез: L[a: b: c] от a до b (закрыто слева и открыто справа, опора взаимна), возьмите по одному за каждое c

  • Tuple и str также можно нарезать, и результат останется исходного типа.

  • для итерации dict по умолчанию используется ключ итерации

  • Перебрать значение dict: для значения в d.values()

  • Повторить ключ и значение dic: для k, v в d.items()

  • Цикл индекса: для i значение в enumerate(['A', 'B', 'C']):

  • Цикл, который ссылается на несколько переменных: для x, y в [(1, 1), (2, 4), (3, 9)]:

  • Компиляции списка: [x * x для x в диапазоне (1, 11), если x % 2 == 0], [m + n для m в 'ABC' для n в 'XYZ']

  • Генератор списков: динамически генерировать элементы в списке, экономя место в памяти

  • Как создать генератор списков

    Измените [] вне понимания списка на ()

    Определите функцию генератора

  • Обмен переменных: a, b = b, a

  • Iterable включает в себя list, tuple, dict, set, str

  • Итератор включает генератор

  • Итераторы лениво оцениваются

  • Iterable можно преобразовать в Iterator с помощью функции iter().

  • И Iterable, и Iterator могут использовать for, только Iterator может использовать next()

  • Тип возвращаемого значения map() — Iterator.

  • Функция обратного вызова функции reduce() принимает два параметра, похожих на последовательность Фибоначчи, а тип возвращаемого значения — это тип элемента списка.

  • Второй именованный аргумент ключевого слова функции sorted() сопоставляет исходные элементы с сортируемыми.

функция

  • Количество и тип параметров функции должны соответствовать определению, иначе будет сообщено об ошибке
  • Функция преобразования типа данных int() float() str() bool()
  • определение функции
def abc(x):
	return 0
  • Функция может возвращать несколько значений, по сути, представляет собой кортеж.

  • Параметры по умолчанию могут быть определены в виде мощности (x, n = 2)

  • Если параметры не опущены по порядку при вызове функции, можно использовать следующую форму: enroll('Adam', 'M', city='Tianjin')

  • Параметр по умолчанию должен указывать на неизменяемый объект, иначе могут возникнуть проблемы при многократном вызове функции и изменении параметра.

  • Тип параметра:

    Общие параметры называются позиционными параметрами, а взаимосвязь указывается позицией в таблице параметров;

    Функция определения переменных параметров calc(*numbers) сформирует кортеж с несколькими входящими параметрами.При вызове calc(*[1,2,3]) это означает, что список передается как переменный параметр;

    Функция определения параметра ключевого слова def person(name, age, **kw): входящая пара ключ-значение будет передана как dict, вызывая, например, person('Adam', 45, gender='M', job=' Инженер');

    Именованный параметр ключевого слова — это параметр def person(name, age, *, city, job) после разделителя *, а person('Jack', 24, city='Beijing', job='Engineer') должен вызываться как это, если в определении функции уже есть переменный параметр, а следующие именованные ключевые параметры больше не нуждаются в специальном разделителе: def person(name, age, *args, city, job):, именованные ключевые параметры передаются в must иметь имя параметра, а параметру именованного ключевого слова также можно установить значение по умолчанию def person(name, age, *, city='Beijing', job):

  • Порядок каждого типа должен быть следующим: обязательные параметры, параметры по умолчанию, переменные параметры, параметры именованного ключевого слова и параметры ключевого слова.

  • Анонимная функция lambda x:x*x может иметь только одно выражение, в которое не нужно писать return

  • Функция высшего порядка декоратора @callable изменяет определение функции.

  • Функция частичной функции functools.partial состоит в том, чтобы исправить некоторые параметры функции (то есть установить значения по умолчанию) и вернуть новую функцию, которую будет проще вызывать.

объектно-ориентированный

  • Определение класса: класс Студент (объект):
  • Конструктор: def __init__(self):
  • Если имя переменной экземпляра начинается с__В начале она становится приватной переменной (private), доступ к которой возможен только внутри, а не снаружи.
  • Тип просмотра: тип()
  • Просмотр отношений наследования: isinstance()
  • Атрибут экземпляра определяется как self.name=name в конструкторе, атрибут класса пишется напрямую, а атрибут класса вызывается напрямую через экземпляр. атрибут класса.
  • Все экземпляры доступны после привязки метода к объекту
  • Атрибуты, которые могут быть привязаны к экземплярам класса, могут быть определены с помощью __slots__ = ('имя', 'возраст')
  • Аксессоры можно определить через декораторы @property, @xxx.setter
  • Класс множественного наследования Dog (Mammal, RunnableMixIn, CarnivorousMixIn):

пакеты и модули

  • В каталоге должен быть __init__.py, чтобы быть пакетом, а __init__.py — это модуль пакета.
  • Первая строка кода любого модуля рассматривается как комментарий к документации модуля;