Введение в алгоритмы
Введение
Я провожу занятия по программированию более 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.