Введение в алгоритмы

Введение

Я провожу занятия по программированию более 10 лет в качестве профессора университета. У меня есть докторская степень. Гейдельбергского университета (Германия) и более 30 лет опыта в программировании.

Идея этих историй на Medium не просто дать немного синтаксиса и основ языка программирования Python, а по-настоящему познакомить с принципами программирования тех, кто даже не знает, как выглядит программирование.

Почему питон? На самом деле не имеет значения, какой язык программирования мы используем. Python легко начать, и переход на другой язык не составит большого труда, если вы понимаете алгоритмы.

Предпосылки

Вам не нужно много для этого курса. Вы можете установить Python с официального веб-сайта или использовать любой онлайн-интерпретатор Python 3, например repl.it. Конечно, онлайн-переводчики подходят для начала обучения, но позже вам потребуется установить локальную версию Python, чтобы иметь возможность разрабатывать приложения (веб-приложения, игры и т. д.). Если вам нужен Python для Data Science, вам лучше установить Anaconda, так как он довольно удобен для анализа данных.

Если вы устанавливаете Python с официального веб-сайта Python, вы можете запустить редактор IDLE и просто нажать File->New, чтобы запустить новую программу.

В любом случае попробуйте написать следующий код и запустить его (если вы используете repl.it, нажмите «запустить» выше.

print(2 + 2)

Если вы получите 4 в ответ от Python, то вы готовы начать! И да, вы уже написали программу.

Введение в алгоритмы

Вы хотите, чтобы ваш компьютер делал то, что вам нужно? Потом надо как-то выразить то, что нужно сделать. Шаг за шагом. И это просто, поскольку Python говорит по-английски. В прямом смысле.

Просто скажи, что тебе нужно.

Скажем, вам нужно вывести «Hello», а затем «World». Тогда код будет следующим:

print("Hello")
print("World")

Две строки программного кода будут «выполняться» одна за другой, сверху вниз. Python видит и выполняет программу только по одной строке за раз! Он не анализирует весь код в целом. Когда он выполняет первую строку, он понятия не имеет, что произойдет дальше! Помните об этом! А еще он забывает, какой код выполнялся раньше! Он запоминает только выполняемую строку.

Неужели все забывает? Конечно, нет! У него есть память, и мы можем хранить там все, что захотим — числа, текст, картинки, музыку…

Но поэкспериментируем дальше:

print("World")
print("Hello")

Попробуйте запустить и выполнить это. Видите ли, важно, какая линия идет первой. Если вы понимаете это, вы способны понимать программирование.

Построчно. Помните!

Числа и переменные

Начнем с цифр. В итоге все только нули и единицы :)

Когда ваши друзья придут к вам домой и спросят, есть ли у вас калькулятор, запустите Python! Впечатлите их! Вы уже рассчитали 2+2 выше, почему бы не рассчитать все остальное?

print(2*2)
print(4/2)
print(2*(3+4))
print(2**3)

Попробуйте запустить это. Обратите внимание на порядок вывода. Здесь двойная звезда ** обозначает возведение в степень (2 в степени 3). Об остальном вы, наверное, догадались. Для десятичных дробей используйте точку:

print(2.5 * 2)

и результат будет с точкой. Но никогда не беспокойтесь об этом.

Ах, я забыл про память!

Чтобы сохранить что-то в памяти, мы используем знак «равно». Попробуй:

a = 5
b = 7
print(a + b)

Что здесь случилось? Когда выполняется первая строка, Python выделяет некоторую часть памяти и записывает все, что находится справа от знака «равно», в данном случае он записывает 5. Следующая строка заставляет Python записать 6 в какую-то другую часть памяти, называемую « б”. Здесь a и b — переменные. Здесь вы храните любые данные. И это единственное, что Python «запоминает» во время выполнения. Почему переменные? Потому что мы можем изменить его содержание.

Давайте запустим этот код:

a = 5
a = 6
b = 7
print(a + b)

Первая строка записывает 5 в a . Вторая строка записывает 6 в a . Первое значение забыто! Мы переписали его! Мы не прибавляем 6 к 5, мы удаляем предыдущее значение 5 и пишем 6. Таким образом, в результате должно получиться 13.

Попробуй это:

a = 5
b = 7
print(a + b)
a = 6

Теперь результат 12. Почему? Шаг за шагом, строка за строкой, помните?

Во-первых, a = 5 и b = 7. Затем мы печатаем результат a+b . И только потом (!) меняем значение a ! Это очень важно понять! Это может быть трудно, но, пожалуйста, не торопитесь.

Давайте попробуем другой:

a = 2
b = 3
c = a + b
b = 4
print(c)

Прежде чем запускать этот код, попробуйте проанализировать его и угадать вывод. Результат 5, конечно. Когда мы выполняем строку с b = 4 , что-то уже записано в c и не будет изменено, пока мы не попросим об этом Python.

Чтобы лучше понять это, попробуйте проанализировать (и снова угадать) следующий код:

a = 2
b = a
a = 3
c = a
a = 4
d = a
print(a + b + c + d)

Вы уже догадались? Да, результат 2+3+4+4, так как a в итоге равно 4.

Важный навык, который вам понадобится, прежде чем вы продолжите обучение: когда вы читаете эту программу, ваш мозг должен выделить часть памяти для переменных, и они тоже должны измениться. Итак, вы должны читать программы строка за строкой сверху вниз и думать о том, что Python делает с каждой строкой. Скажем, когда вы читаете первую строчку вышеприведенного кода, переменная a только что создана, там написано 2, а других переменных на тот момент даже не существует. Затем вы читаете следующую строку, вы копируете содержимое переменной a в переменную b. Другими словами, если вы хотите изучать Python, вы должны думать как Python.