Изучение нового навыка может быть разочаровывающим и напряженным, но вы знаете, что оно того стоит, когда вы практикуете его в субботу днем, когда вам скучно и вы слишком с похмелья, чтобы делать что-то еще. Будучи ребенком, единственным сильным предметом в школе которого была математика (и, возможно, немного физики), я чувствовал, что наука о данных подходит мне, но я не знал, что мне уже будет так весело с ней. Легко получать удовольствие от чего-то, когда ты хорош в этом, и поэтому мне всегда нравилась математика и все, что с ней связано, особенно головоломки. Я получил это от своего отца, который пристрастил меня к 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, можно решить, разбив его на части и обдумывая шаг за шагом.