Изучение нового навыка может быть разочаровывающим и напряженным, но вы знаете, что оно того стоит, когда вы практикуете его в субботу днем, когда вам скучно и вы слишком с похмелья, чтобы делать что-то еще. Будучи ребенком, единственным сильным предметом в школе которого была математика (и, возможно, немного физики), я чувствовал, что наука о данных подходит мне, но я не знал, что мне уже будет так весело с ней. Легко получать удовольствие от чего-то, когда ты хорош в этом, и поэтому мне всегда нравилась математика и все, что с ней связано, особенно головоломки. Я получил это от своего отца, который пристрастил меня к KenKen и до сих пор присылает мне еженедельную головоломку NPR Car Talk.

Так что то, что мне нравится Python, меня немного обнадеживает, поскольку я уволился с работы, чтобы пройти двенадцатинедельный учебный лагерь по науке о данных. Для меня научиться использовать Python для анализа данных — все равно что решить действительно большую головоломку или кучу маленьких головоломок. Это заставляет вас логически думать о проблеме или задаче, чтобы получить результат. Итак, в конце первой недели я обнаружил, что получил слишком много удовольствия, когда инструкторы познакомили нас с Проектом Эйлера.

Я проведу вас через одну из проблем, которые я нашел довольно забавным:

Даже числа Фибоначчи

Каждый новый член последовательности Фибоначчи создается путем добавления двух предыдущих членов. Начиная с 1 и 2, первые 10 членов будут:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

Рассмотрев члены последовательности Фибоначчи, значения которых не превышают четырех миллионов, найдите сумму членов с четными значениями.

Эта задача состоит из нескольких частей, поэтому давайте начнем с первой половины, которая генерирует список чисел, следующих последовательности Фибоначчи. Помните, что нам нужны только числа, которые меньше 4 миллионов в нашем списке.

f = [1,2]
while f[len(f) - 1] + f[len(f) - 2] < 4000000:
    f.append(f[len(f)-1] + f[len(f)-2])

Последовательность Фибоначчи начинается с 1 и 2, поэтому мы создаем наш список f, содержащий только эти значения. Затем наш цикл while проверяет, меньше ли сумма двух последних чисел в нашем списке 4 миллионов. Если это так, то это значение будет добавлено в конец нашего списка. Таким образом, каждый раз, когда цикл выполняется, в наш список будет добавляться новый номер.

Теперь, когда у нас есть список, следующий последовательности Фибоначчи и не содержащий значений больше 4 миллионов, давайте рассмотрим следующую часть задачи, которая заключается в нахождении суммы членов с четными значениями.

even_f = [i for i in f if i % 2 == 0]
        
sum(even_f)

Теперь все, что нам нужно сделать, это создать подсписок из f, который содержит только термины с четными значениями. Мы можем использовать генератор списков, чтобы создать наш новый список, even_f, который включает только термины, которые делятся на два. Наконец, мы можем использовать функцию суммы, чтобы найти сумму всех чисел в even_f, и это наш ответ! Это так просто!

Для меня задачи Project Euler — это интересный и эффективный способ попрактиковаться в навыках работы с Python, потому что они действительно заставляют вас думать. Как мы только что сделали здесь с этой проблемой, все, что вы пытаетесь выполнить в python, можно решить, разбив его на части и обдумывая шаг за шагом.