К основному контенту

Pyth Anykeyeff


PYTHON
для инженеров



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

ПРЕДИСЛОВИЕ.

Зачем инженеру две змеи?
Здравствуй уважаемый читатель. Надеюсь, эта книга станет для тебя источником полезных знаний и ты, вслед за мной, ощутишь радость избавления от изнуряющей, отупляющей рутины.
Идея написания этой книги витала вокруг меня последние пару лет, но не находилось катализатора. И вот, в одном из разговоров с моим коллегой и другом, Вадимом, им была высказана мысль написания мной книги о Питоне для инженеров. Мысль прижилась, за что я выражаю Вадиму особую благодарность.
Книг о Питоне сегодня написано множество, некоторые из них переведены на русский язык, но это почти все учебники по языку, я же хотел написать не учебник по языку программирования, а руководство, как применить программирование там, где его либо вовсе не применяли, либо применяли крайне редко.
Программирование вошло в нашу жизнь давно и основательно. Армия профессиональных программистов удовлетворяет запросы общества на программирование, но профессиональные программисты покрывают не все потребности общества. Есть некий порог сложности, который задача должна преодолеть, прежде чем к ее решению приступит программист. А если задача не достигла этого порога, то она продолжает решатся «по-старинке», отнимая уйму времени и вынуждая исполнителя совершать ошибки. Хотя довольно часто бывает достаточно написать всего несколько строчек кода, для того чтобы передать компьютеру решение этой задачи. Но этого не происходит по одной простой причине – обычные люди, в своем большинстве, не владеют программированием. Конечно же их учили программированию в школах и ВУЗах, но это все быстро выветрилось. Тогда как, владея даже азами программирования, обычный человек может решать массу задач, не достигших своего порога сложности и оставшихся вне поля зрения профессиональных программистов.

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

На сегодняшний день есть тысячи языков программирования и их число неуклонно растет(да, да, вы не ослышались), и в таком многообразии важно выбрать наиболее удобный для себя язык.
Когда то меня учили Фортрану, Бейсику, Паскалю, Си, но ничего путного из этого не вышло. А Питона в те времена и вовсе не было. Потом я немного программировал на ЛИСП и Вижуал Бейсик, но и это было не столь продуктивно. И, наконец, пять лет назад я открыл для себя Питон. Можно сказать – это был прорыв. Я стал использовать этот язык программирования, где только мог – в Revit, Autocad, MSOffice, Mathcad, в своих расчетных программах, просто делал расчеты, обрабатывал тексты, базы данных, растровые и векторные рисунки, манипулировал pdf файлами. И я твердо уверен в том, что виной прорыва стали удобство и простота Питона, писать и читать код на нем легко, действия в нем открыты и логичны, а возможности его почти безграничны. Поначалу я стал использовать разновидность Питона, называемую IronPython, которая имеет, как свои преимущества, так и свои недостатки, о чем мы поговорим более подробно в других главах книги. В дальнейшем мне открылся океан настоящего Питона. Для начального освоения языка версии Питона не имеют значения.

Откуда взять Python?

Сразу замечу, что я работаю в среде ОС Windows, и многие примеры будут применимы только в этой операционной системе. Однако Питон может работать в разных операционных системах. Такое свойство называется кроссплатформенность. Соответственно, знания, полученные в этой книге, могут пригодится вам и в других ОС. замечу, что в Linux Python является как бы "родным" языком.
Для того, чтобы начать работать в Питон, естественно, необходимо иметь его интерпретатор на своем компьютере. Скачать дистрибутив совершенно бесплатно можно тут: https://www.python.org/downloads/windows/ там есть разные варианты, рекомендую скачать такой - Python 3.7.3 Windows x86-64 executable installer.

Начало работы.

После установки найдите во вкладке «Пуск» папку Python и запустите программу, откроется черное окно консоли с информацией о версии Питона и стрелочками, приглашающими к работе:
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Консоль можно использовать как калькулятор, попробуйте ввести какие-нибудь простые арифметические выражения без знака «равно» в конце и нажмите ввод:
>>> 2+2
4
Также можно сделать небольшие проверки истинности, например является ли символ латинским или кирилличным(такое бывает нужно делать, когда выскакивают ошибки из-за неправильного ввода символов, подозрительный символ копируется и сравнивается с введенными с клавиатуры):
>>> ‘а’ == ‘а’
True
>>> ‘а’ == ‘а’
False
Пока, наверное, не очень интересно, но мы не ограничимся работой в консоли, а найдем в той же папке программу IDLE и запустим ее, теперь откроется окошко с белым фоном, но это уже не просто консоль, это специальная программа для написания, отладки и исполнения кодов Питон. Процитируем Википедию: «IDLE (Integrated Development and Learning Environment[2]) — это интегрированная среда разработки и обучения на языке Python, созданная с помощью библиотеки Tkinter. Официально — искажение IDE, но на самом деле названа в честь Эрика Айдла (англ. Eric Idle) из Монти Пайтон. Поставляется вместе с Python и благодаря использованию Tkinter может использоваться на многих платформах, среди которых Windows, Mac OS, Unix-подобные ОС[3]». Теперь мы можем писать свои программы и сохранять их в файлы с расширением .py. Изучите окно редактора. Вы увидите, что интерфейс можно настроить под себя, цвет фона, размер, стиль и цвет шрифта. Из вкладки “File” создайте новый файл, напишите в нем одну строчку:
print(‘Привет Питон!’)
Сохраните файл, во вкладке “Run” нажмите “Run Module” или клавишу F5. Запустится консоль с нашим приветствием:
=========== RESTART: C:/PyBook/pyb001.py ===========
Привет Питон!
>>>
Можно поздравить друг друга, ведь мы написали свою первую программу и исполнили ее. Если вы заметили, то в IDLE текст расцвечивается разными цветами, это очень полезный инструмент, который существенно облегчает программирование. Давайте подумаем, что можно сделать полезного на Питоне уже сейчас. Поскольку мы инженеры, то начнем с решения математических задач. Давайте напишем программу для вычисления объема конуса по формуле V = π*r2*h/3. Программа будет выглядеть так:
Pi = 3.1415
R = 1
H = 2
V = Pi*R*R*H/3
print(V)

Проверьте работу программы, вводя различные значения высоты и радиуса основания. Все отлично работает, но хотелось бы сделать ее более удобной, добавить описание, сделать ввод данных иначе, не писать вручную число «пи», найти оператор для возведения в степень. Также, можно будет сделать расчет объема усеченного конуса, несколько усложнив нашу программу. Высказанные пожелания могут быть удовлетворены, но нам нужно совершить очередной поход за знаниями.

Комментирование кода.

Немаловажным инструментом в любом языке программирования является комментирование. Для лучшего понимания кода, записи дополнительной информации, не участвующей в работе программы, отключения части кода при отладке в Питон используются решетка и тройные кавычки. Решетка комментирует строку, начиная от места своей вставки. Тройными кавычками можно закомментировать сразу несколько строк, для этого их ставят в начале и конце необходимого диапазона.
Арифметические и логические операторы.
+, -, *, / - сложение, вычитание, умножение, деление;
** - возведение в степень;
% - остаток от деления;
// - целочисленное деление;
<, <=, >, >= - меньше, меньше либо равно, больше, больше либо равно
== - сравнение;
!= - не равно;
not – логическое «не»;
and – логическое «и»;
or – логическое «или»;
True – истина;
False – ложь;
None – ничтожество.

Модули.

До сих пор мы использовали Питон, так сказать, в чистом виде, но чистый лист дает совсем мало возможностей. Даже начинающему программисту надо уметь работать с модулями, так называются дополнительные библиотеки, расширяющие функционал языка. Это мощнейший инструмент, делающий язык по-настоящему богатым. В свободном доступе имеются сотни тысяч модулей Питон, почти по всем отраслям. В дальнейшем мы научимся устанавливать и использовать некоторые из них, а еще научимся писать свои модули. В стандартной установке Питон уже присутствуют некоторые модули, в том числе математический модуль math, его и начнем использовать первым. Делается это довольно просто:
import math
Далее необходимо разобраться, как это использовать, для чего применим чудесную функцию dir и исследуем содержимое модуля math таким образом:
print(dir(math))
Получим следующий результат:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
Есть и число «пи», проверим его:
print(math.pi)
3.141592653589793
Можно организовать импорт иначе, если нет желания писать еще имя модуля, можно импортировать все классы:
from math import *
Можно импортировать конкретные классы:
from math import pi, cos, sin

Ввод данных через консоль.

Для ввода данных с консоли служит функция input(). Давайте перепишем расчет объема конуса с учетом последнего похода за знаниями:
###Расчет объема конуса
from math import pi #импорт числа «пи»
R = float(input(‘Введите радиус основания: ’)) #радиус основания конуса
H = float(input(‘Введите высоту конуса: ’)) #высота конуса
V = pi*R**2*H/3
print(‘Объем конуса равен: ’,V)
Еще одно нововведение было сделано при выводе объема, функция print позволяет выводить сразу несколько значений, разделенных запятой. В дальнейшем мы разберем, как вставлять число в существующий текст. Также появилась функция float. Чтобы объяснить ее значение, отправимся опять за знаниями, в этот раз по очень важной теме типов данных.

Типы данных.

В Питоне есть множество типов данных. Для начала поговорим только о некоторых из них(всячески пытаюсь избежать усложнения книги, посему, предлагаю моему читателю обращаться за полной информацией к признанным учебникам, справочникам и интернет ресурсам по Питон).
Это, прежде всего, числа, целые и вещественные, символы и строки, списки и кортежи. Целые числа это числа без десятичной точки, вещественные числа - с десятичной точкой, также могут записываться в экспоненциальной форме, например: 1e6 или 1e-3, что будет соответствовать 1000000.0 и 0.001. Можете проверить в консоли:
>>> 1e6
1000000.0
>>> 1e-3
0.001
Символы для именования переменных лучше использовать из латинского алфавита, кирилличный можно использовать для комментариев. Строки в обязательном порядке заключаются в одинарные или двойные кавычки:
>>> 'Pink Floyd'
'Pink Floyd'
>>> "King Crimson"
'King Crimson'
Также широко мы будем пользоваться списками и кортежами. Список это последовательность любых элементов, разделенных запятыми и заключенных в квадратные скобки, кортеж – то же самое, только в круглых скобках:
>>> [1,2,3]
[1, 2, 3]
>>> (2,4,5)
(2, 4, 5)
В нашем распоряжении есть функции, позволяющие преобразовывать типы данных, строки в числа, списки в кортежи и наоборот:
>>> float(3) #целое число в вещественное
3.0
>>> int(4.6) #вещественное число в целое
4
>>> str(5.7) #вещественное число в строку
'5.7'
>>> float('22.4') #строку в вещественное число
22.4
>>> list((2,4,5)) #кортеж в список
[2, 4, 5]
>>> tuple([3,5,7]) #список в кортеж
(3, 5, 7)
Обратите внимание, что при преобразовании вещественного числа в целое теряется дробная часть. Также, нашлось объяснение функции float, которая преобразует в нашей программе по вычислению объема конуса вводимую по input строковую информацию в вещественные числа.

Создаем исполняемый файл.

Вернемся к нашему скрипту по вычислению объема конуса. До сих пор мы запускали его из IDLE, что не совсем удобно, естественно мы хотим избавиться от этого неудобства. Оказывается это проще простого – нам поможет пакетный файл Windows, в простонародье называемый «батник». Сохраним наш скрипт Питона где-нибудь на своем компьютере, через проводник узнаем полный путь к нему, также узнаем путь к самому Питону. Откроем любой текстовый редактор и напишем всего три строчки:
@echo off
"c:\Program Files\python 3.6.2\python.exe" "c:\Cone.py"
pause
Пути, указанные во второй строчке, вставьте свои. После чего сохраните этот файл, где вам и как будет удобно, с расширением .bat или .cmd, но лучше избегайте в названиях папок и файлов кириллического алфавита и пробелов. Теперь мы смело можем запускать наш первый батник. Если все сделано правильно, то откроется командное окно Windows, с предложением ввести размеры конуса:
Введите радиус основания: 2
Введите высоту конуса: 3
Объем конуса равен: 12.566370614359172
Для продолжения нажмите любую клавишу . . .
В дальнейшем вы можете разместить ярлык батника на рабочем столе и заменить его скучную иконку на более красивую. А в одной из следующих глав мы узнаем, как средствами Питон создавать иконки для программ.

Комментарии

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

    ОтветитьУдалить
    Ответы
    1. Спасибо автору за этот труд. Очень многим инженерам он будет полезен(и мне в том числе). Хочу только предложить выделять(шрифтом или как то по другому) примеры по применению питона именно для инженерии.

      Удалить
    2. Это из серии глобус для восьмого класса. Нельзя отделить код именно для инженеров. Вводная часть нужна всем, не только инженерам. В дальнейшем я буду показывать примеры из своей инженерной практики, думаю, вы поймете сами, что для инженеров, а что нет

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

    ОтветитьУдалить
    Ответы
    1. Спасибо, что не стали сразу бить ногами, видимо Вы добрый человек, здоровья Вам. Рад, что первый комм не пошел блином.

      Удалить
  3. Да, начало довольно интересное и интригующее, было бы интересно описать как проходит процесс от зарождения идеи до воплощения, о том как инженер ищет материалы , разбирается с ними и решает свои задачи. Спасибо и удачи!

    ОтветитьУдалить
    Ответы
    1. Боюсь, что ответ на этот вопрос уйдет далеко за рамки моей книги, но обсудить готов. Рождение идеи и ее воплощение животрепещущий вопрос человечества. Могу по этому поводу порекомендовать книгу гениального инженера Грабина В.Г. "Оружие победы". О своих метаниях расскажу отдельно и позже, если вы захотите.

      Удалить
  4. Подписался.
    >в Linux Python является как бы “родным» языком.
    Вот тут надо бы кавычки поправить.

    ОтветитьУдалить
  5. Друзья, буду очень благодарен, если кто нибудь поможет привести этот блог в нормальный вид, вставить виджеты, исправить текст, расцветить код и т. д.

    ОтветитьУдалить
  6. Зачем инженеру две змеи?..
    Предлагаю добавить раскрытие аспекта необходимого временем знания программирования.
    Много программ, которыми мы пользуемся для решения своих задач, используют наши ресурсы компьютера для сбора информации и т.д. Мы платим деньги за ресурсы машинного времени и с нашего необходимого согласия (лицензионное соглашение) нашими ресурсами пользуются другие.
    Раньше все считали на счетах, затем арифмометры и логарифмическая линейка, калькуляторы. Т.е. вычисления производили сами пользователи. Сегодня все вычисления производиться ПО (программные продукты).
    Порой нам надо сделать одну операцию и для этого достаточно маленького в несколько строк кода, но из за незнания программирования приходиться искать ПО, устанавливать, использовать не только свои ресурсы, но и память компьютера. Установив это ПО мы и не подозреваем сколько оперативной памяти и ресурсов нашего компьютера использует эта программа.
    И так время пришло знать программирование и экономить своё время и ресурсы…

    ОтветитьУдалить
    Ответы
    1. Спасибо за интересный комментарий, но боюсь, что столь глубокий анализ компьютерной деятельности несколько выходит за рамки авторского замысла. Возможно, в джунглях Амазонии или Новой Гвинеи до сих пор живут люди, которые продолжают считать на камушках или палочках. Им конечно же было бы очень интересно, что с компьютером расчеты будут куда резвей, но, к сожалению, эти упрямые люди не читают мой блог.

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

    ОтветитьУдалить
  8. Подпишусь!
    Автор, благое дело делаешь!

    ОтветитьУдалить
    Ответы
    1. Милости просим. Будем творить благое сообща.

      Удалить
  9. давно хотел сделать на питоне двойную интерполяцию для таблицы чтобы получать среднее значение при промежуточных данных http://prntscr.com/o8e79y

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Поход за модулями. Как я уже писал выше, сегодня в свободном доступе имеются сотни тысяч модулей Питон. Среди них мы можем обнаружить полезные для нашей работы, это математические и геометрические модули, модули для анализа данных и построения трехмерных тел, dxf, pdf, docx, xlsx файлов и т. д. Список крайне обширен. Основным местом хранения модулей является сайт Pypi.org, на нем хранится около 150 тыс. различных проектов, мы тоже будем пользоваться этим сайтом, но прежде немного поговорим о дистрибутивах Питона и средах разработки. Питон, который мы установили, имеет минимальный набор модулей. Однако есть другие дистрибутивы, например Anaconda, совершенно безвозмездно поддерживаемый и постоянно обновляемый мировым научным сообществом. Анаконда устанавливается с сотнями модулей, необходимых для научно-исследовательской деятельности, кроме того устанавливаются дополнительные инструменты, как Спайдер, интерактивный Питон и Юпитер Ноутбук, они делают программирование гораздо удобным и
Назначаем конусу материал. Продолжая совершенствовать наш скрипт, попробуем добавить возможность назначения конусу материала, по плотности которого мы сможем вычислить массу. Для этого нам придется совершить следующий поход за знаниями. Основные операторы программирования. Мы с вами уже написали свою первую программу, но это всего лишь простая инструкция, последовательно исполняемая компьютером. Для того чтобы добавить возможность выбора материала нам придется окунуться в мир настоящего программирования и освоить основополагающие операторы, которые позволят нам строить разветвленные алгоритмы для решения наших задач. Мы уже сможем дать компьютеру возможность принимать решения самостоятельно, исходя из полученных извне или вычисленных в теле программы данных. Мы заставим машину работать вместо нас, но насколько хорошо она это будет делать, всецело зависит от нас. Основной операцией в программировании является проверка условия. В Python, как и во многих других языках программирова