Как начать программировать на Python

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)

Результат

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