Python — мощный язык программирования, который подходит почти для всего, от нейросетей до аналитики, от машинного обучения до веб-разработки. Он невероятно крут, и нас была про него отдельная статья. Настало время познакомиться с ним поближе.
Чтобы ускорить процесс, мы будем использовать знания о программировании из JavaScript-мира. Для этого мы просто покажем, как уже знакомые вам вещи и конструкции выглядят на Python и чем они отличаются. Если вы хотите сразу проверить свой код, используйте онлайн-интерпретатор: onlinegdb.com/online_python_compiler.
В этой статье ничего особенного делать не будем — просто посмотрим на разницу в синтаксисе и простые действия в этом языке. Постепенно будем делать более сложные штуки.
Комментарии
JavaScript. Используются два слеша в начале строки:
// комментарий на JavaScript
Python. Вместо двух косых черт — знак решётки, тоже в начале строки:
# а это — комментарий на Python
Переменные
Главное отличие в том, что нам не нужно ключевое слово var, чтобы объявить новую переменную. Нужна переменная — просто напишите её в любом месте и присвойте её какое-то значение. С основными типами данных всё то же самое — целые числа, дробные, символы, строки, логический тип и так далее.
// целое число
var a = 1;
// дробное число
var b = 2.5;
// символ
var c = 'c';
// строка
var d = 'string';
// логическая переменная
var e = true;
// массив
var f = [1, 2, 3, 4, 5];
# целое число
a = 1
# дробное число
b = 2.5
# символ — это короткая строка
c = 'c'
# строка
d = 'string'
# логическая переменная
e = true
# список (как массив в JS)
f = [1,2,3,4,5]
Присваивание и математические операции
Здесь практически всё то же самое, за исключением пары моментов — посмотрите сами.
var a, b;
// присваивание
a = 10;
b = a;
// сложение, умножение, вычитание, деление и скобки
a = (15 + (10 / b)) * (b - 10);
# присваивание
a = 10
b = a
# сложение, умножение, вычитание, деление и скобки
a = (15 + (10 / b)) * (b - 10)
Условный оператор и логика
Когда будете смотреть блок If на Python, обратите внимание на отступы. В этом языке нет фигурных скобок, которые говорят «весь этот кусок кода относится вот к этому элементу». Вместо них используют отступы — то, что смещено правее относится к тому, что находится выше и левее.
Второе отличие — необязательные скобки при сравнении и использование понятных and и or вместо && и ||.
var a, b;
a = 5;
b = 10;
// Условный оператор
if (a == b) {
// выводим результат, если верно
console.log('a = b');
} else {
// если условие неверное — выводим другое сообщение
console.log('a ≠ b')
}
// условные операторы — И, ИЛИ, НЕ
if ((a > 5) && (b < 10) || !(a != b)) {
console.log('Сложное условие сработало');
}
a = 5
b = 10
# Условный оператор
if a == b:
# выводим результат, если верно
print('a = b')
else :
# если условие неверное— выводим другое сообщение
print('a ≠ b')
# условные операторы— И, ИЛИ, НЕ
if a > 5 and b < 10 or not a != b:
print('Сложное условие сработало')
Циклы
В Python нет цикла с постусловием, когда сначала выполняется тело цикла, а затем проверяется условие. Но зато оставшиеся 2 цикла умеют намного больше, чем просто выполнять что-то по кругу. Мы это подробно разберём в отдельной статье на примерах, а пока просто посмотрим на синтаксис и сравним с JavaScript.
Ещё одно отличие — в цикле for. В нём важно указать последовательность, по которой будет идти переменная цикла. Поэтому перед использованием цикла нужно эту последовательность подготовить — обычно для этого используют команду range().
var a, b;
a = 5;
b = 10;
// цикл с известным числом повторений
for (var i = 1; i <= 5; i++) {
console.log(i);
}
// цикл с предусловием
while (a < b) {
a += 1;
console.log(a);
}
// цикл с постусловием
do {
a -= 1;
console.log(a);
} while (a > 1)
a = 5
b = 10
# сразу в цикле готовим последовательность от 0 до 5, потому что 6 уже не будет входить в диапазон
for i in range(6):
print(i)
# Цикл с предусловием
while a < b:
a += 1
print(a)
Функции
Здесь тоже всё просто и похоже — задаём имя функции; аргументы, если они нужны; а потом пишем, что функция должна делать. Вызываются одинаково.
// задаём функцию sum с параметрами a и b
function sum(a, b) {
// пишем команды, которые должна выполнять функция
console.log('Сумма равна', a + b);
}
// запускаем нашу функцию с нужными нам параметрами
sum(5, 10);
# задаём функцию sum с параметрами a и b
def sum(a,b):
# пишем команды, которые должна выполнять функция
print('Сумма равна', a+b)
# запускаем нашу функцию с нужными нам параметрами
sum(5,10)
Результат
Как видите, если вы знаете один язык программирования, освоить второй уже намного легче. Дело в том, что большинство языков похожи друг на друга и отличаются концепцией или реализацией в деталях. Логика же везде остаётся неизменной.