Почему Python? Введение или размышления о моей первой программе на Python

Предпросмотр

В этом уроке

Размышления о моей первой программе на Python

Ниже приведен Перевод статьи William Koehrsen: Python is the Perfect Tool for any Problem, Python — идеальный инструмент для любой проблемы, где рассказано о впечатлениях будущего инженера-ракетчика в отношения языка программирования Python

Размышления это всегда помогающее (а иногда и развлекающее) занятие. Из ностальгических соображений, конечно, если можно испытывать ностальгию по чему-то, что было два года назад — я хочу поделиться моей программой на Python. Изначально я начал работать с Python, когда был ещё студентом и изучал аэрокосмическую технику. Используя Python, я хотел избежать работ с электронными таблицами. Тогда я ещё не подозревал, насколько хорошее решение я принял.

Моё изучение Python началось с книги «Автоматизация рутинных задач с помощью Python» (в оригинале «Automate the Boring Stuff with Python») Эла Свейгарта. Великолепная приложение-ориентированная книга с простыми программами, которые делают полезные вещи. Когда я изучаю что-то новое, я ищу любую возможность использовать свои новые знания, поэтому я хотел найти проблему, которую я мог бы решить с помощью Python. Такой проблемой стал учебник для класса, который стоил 200 долларов. Мой персональный лимит для учебника около 20 долларов («Автоматизация рутинных задач с помощью Python» бесплатна в онлайне), поэтому я отказался даже арендовать эту книгу. Отчаявшись получить книгу к своему первому занятию, я заметил, что её можно получить в свободное пользование на неделю через Amazon, сделав новый аккаунт. Я получил книгу на одну неделю и смог выполнить своё первое учебное занятие. И пока я продолжал создавать новые аккаунты каждую неделю, я понимал, что мне нужно решение получше. Именно так я и решил создать своё первое приложение на Python.

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

import pyautogui
import time

# Sleep for 5 seconds to allow me to open book
time.sleep(5)

# Range can be changed depending on the number of pages
for i in range(1000):
# Turn page
     pyautogui.keyDown('right')
     pyautogui.keyUp('right')

# Take and save a screenshot
     pyautogui.screenshot('images/page_%d.pdf' % i)
     time.sleep(0.05)

Запустить программу очень просто (и я настаиваю каждому попробовать). Я сохранил скрипт как book_screenshot.py, затем переместился в командой строке в ту же директорию, где лежит этот файл, и ввёл:

python book_screenshot.py

После запуска у меня есть 5 секунд, чтобы развернуть книгу в полный экран. Программа же сделает всё остальное, пролистав каждую страницу и сделав скриншот, который сохранится в pdf. После я смогу объединить все pdf-файлы в один и получить (сомнительно легальную) полноценную копию книги! Правда, копия ужасная, ведь через скриншоты нельзя сделать поиск по тексту, но для меня это было не так важно.

Программа сделает всё остальное, пролистав все и сохранив каждую страницу
Программа сделает всё остальное, пролистав все и сохранив каждую страницу

Это демонстрирует две главные мысли, которые остались со мной на протяжении всего моего обучения:

  • Лучший способ что-то изучать — это найти проблему, которую ты сможешь решить с помощью нового навыка.
  • Не нужно обладать навыком в совершенстве, чтобы использовать его.

Всего с парой строк кода и бесплатной книгой я смог написать программу, которая по-настоящему полезна. Учить базовые вещи может быть скучно и мои первые попытки учить Python потерпели крах спустя пару часов, когда я читал про структуры данных и циклы. Сменив тактику, я начал создавать решения для реальных проблем и выучил фундаментальные знания параллельно. Программирование очень объёмно, но вам не нужно учить всё и сразу. Просто найдите проблему, которую вы бы хотели решить с помощью программирования и начните!

С тех пор я сделал ещё пару сложных программ, но до сих пор с любовью вспоминаю свой первый скрипт!

Убедительно? — стоит обратить внимание на Python? Поехали…
 

Почему именно Python?

Python — это интерпретируемый язык сценариев высокого уровня, разработанный в конце 1980-х годов Гвидо ван Россумом в Национальном исследовательском институте математики и компьютерных наук в Нидерландах. Первоначальная версия была опубликована в alt.sources Usenet новостной группой в 1991 году, а версия 1.0 была выпущена в 1994 году.

Python 2.0 был выпущен в 2000 году, и версии 2.x были распространенными выпусками до декабря 2008 года. В то время команда разработчиков приняла решение выпустить версию 3.0, которая содержала несколько относительно небольших, но существенных изменений, которые не были обратно совместимы. с версиями 2.x. Python 2 и 3 очень похожи, а некоторые функции Python 3 перенесены в Python 2. Но в целом они остаются не совсем совместимыми.

Оба Python 2 и 3 продолжали поддерживаться и развиваться, с периодическими обновлениями выпуска для обоих. На момент написания статьи доступны самые последние версии 2.7.15 и 3.8.5. Однако для Python 2 установлена ​​официальная дата окончания срока службы 1 января 2020 года, после которой она больше не будет поддерживаться. Если вы новичок в Python, рекомендуется сосредоточиться на Python 3, как и делает это руководство.

Python по-прежнему поддерживается основной группой разработчиков в Институте, и Гвидо по-прежнему отвечает за него, получив сообщество BDFL (Benevolent Dictator For Life) от сообщества Python. Кстати, название Python происходит не от змеи, а от британской комедийной труппы Летающий цирк Монти Пайтон которого Гвидо был и, по-видимому, все еще является его поклонником. Часто встречаются ссылки на эскизы и фильмы Монти Пайтона, разбросанные по всей документации по Пайтону.

Почему именно Python?

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

Python — язык интерпретируемого типа

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

Это ускоряет цикл разработки, потому что вы просто набираете код и запускаете его без промежуточного этапа компиляции.

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

На практике, однако, для большинства программ разница в скорости выполнения измеряется в миллисекундах или секундах не более, и это не заметно для пользователя. Целесообразность кодирования на интерпретируемом языке, как правило, того стоит для большинства приложений.

Полезно почитать: Посмотрите в Википедии,что такое Интерпретируемый язык программирования.

Python бесплатен

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

Версия интерпретатора доступна практически для любой имеющейся платформы, включая все версии Unix, Windows, macOS, смартфоны и планшеты и, возможно, все, что вы когда-либо слышали. Версия существует даже для полудюжины людей, которые используют OS/2.

Python переносимый

Постолько поскольку код Python интерпретируется и не компилируется в машинные инструкции, код, написанный для одной платформы, будет работать на любой другой платформе, на которой установлен интерпретатор Python. (Это верно для любого интерпретируемого языка, не только для Python.)

Python прост

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

Грубая оценка сложности языка может быть получена из числа ключевых слов или зарезервированных слов в языке. Это слова, которые зарезервированы для специального значения компилятором или интерпретатором, потому что они обозначают определенные встроенные функции языка.

Python 3 имеет 33 ключевых слова, а Python 2 — 31. В отличие от C++ — 62, Java — 53, а Visual Basic — более 120, хотя эти последние примеры, вероятно, несколько различаются в зависимости от реализации или диалекта.

Код Python имеет простую и понятную структуру, которую легко выучить и легко прочитать. Фактически, как вы увидите, определение языка обеспечивает структуру кода, которая легко читается.

Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python» («Дзен Питона», или «Дзен Пайтона»). Её текст выдаётся интерпретатором Python по команде import this (работает один раз за сессию).

В целом она подходит к программированию на любом языке.

Текст философии Pyton

  • Красивое лучше, чем уродливое.
  • Явное лучше, чем неявное.
  • Простое лучше, чем сложное.
  • Сложное лучше, чем запутанное.
  • Плоское лучше, чем вложенное.
  • Разреженное лучше, чем плотное.
  • Читаемость имеет значение.
  • Особые случаи не настолько особые, чтобы нарушать правила.
  • При этом практичность важнее безупречности.
  • Ошибки никогда не должны замалчиваться.
  • Если они не замалчиваются явно.
  • Встретив двусмысленность, отбрось искушение угадать.
  • Должен существовать один и, желательно, только один очевидный способ сделать это.
  • Хотя он поначалу может быть и не очевиден, если вы не голландец [^1].
  • Сейчас лучше, чем никогда.
  • Хотя никогда зачастую лучше, чем прямо сейчас.
  • Если реализацию сложно объяснить — идея плоха.
  • Если реализацию легко объяснить — идея, возможно, хороша.
  • Пространства имён — отличная штука! Будем делать их больше!

Автор этой философии — Тим Петерс. Оригинал на английском:

λ python
Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Но это не так просто

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

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

Python выполняет то, чего не делают многие языки программирования: сам язык просто разработан, но он очень универсален с точки зрения того, что вы можете сделать с ним.

Заключение

В этом разделе представлен обзор языка программирования Python, в том числе:

  • Краткая история развития Python.
  • Некоторые причины, по которым вы можете выбрать Python в качестве основного языка программирования.

Python — отличный вариант, если вы начинающий программист, желающий изучать основы, опытный программист, создающий большое приложение, или где-то между ними. Основы Python легко понять, но его возможности огромны.

Перейдите к следующему уроку, чтобы узнать, как приобрести и установить Python на свой компьютер.

Вернуться к: Начала Python

Добавить комментарий

Ваш адрес email не будет опубликован.

Как так? *