скачать книгу бесплатно
Python 3. Расчет веса детали
Сергей Фёдорович Гаврилов
Эта книга для начинающих программистов, желающих начать программировать на языке Python 3. Набор программ создан для цеховых конструкторов-механиков как ежедневный рабочий инструмент. Книга будет полезна для студентов-механиков. Предлагаемые в книге расчеты экономят рабочее время и уменьшает ошибки в расчетах. Данная книга – сборник листингов рабочих программ. Все программы в разное время разработаны самим автором при возникновении необходимости данных расчетов. Все программы проверены и постоянно используются в работе конструктора-механика. Листинги программ снабжены пояснениями.
Введение
Python 3 Ves.
Инженер конструктор отдела гл.механика Гаврилов Сергей Фёдорович написал эту книгу для начинающих программистов, желающих начать программировать на языке Python 3. Книга будет полезна для студентов механиков и для конструкторов механиков. Программа Ves используется конструктором каждый день. Закончив разработку детали – необходимо проставить на чертеже Вес детали. Значит запускаем программу Ves.
Данная книга содержит листинги – набор небольших рабочих программ для расчета веса деталей. Для получения рабочего комплекта – создаем папку Ves.
В эту папку копируем в режиме « Блокнот » по одной все программы проведенные в этой книге, сохранять программы следует точно под теми именами, что в книге –все программы сохраняем с расширением .py..
В основной программе не забудьте выставить нужное количество пробелов в начале строк.
В книге приведен полный комплект программ для расчета веса детали.
Листинги выполнены как есть, без сокращений, и после копирования – готовы к работе. Предлагаемые в книге расчеты существенно экономят время и уменьшают вероятность ошибок. Все программы проверены и постоянно используются в работе конструктора механика. Листинги программ снабжены пояснениями. Листинги удобно использовать в качестве готовых блоков для вновь разрабатываемых программ. Для практического применения листингов программ проверьте – установлен ли на вашем компьютере Python 3.4. или более старшая версия Python 3.8..Python 3.4 распространяется свободно и бесплатно – например на сайте https://soft-file.ru/python/ (https://soft-file.ru/python/) Перед скачиванием исходника Python 3.4 проверьте разрядность вашей ЭВМ. Посмотрите вкладку – Компьютер – Свойства системы. Бывают 32 разрядные и 64 разрядные системы. Для каждой системы свой Python 3.4..
Примечание
Программы написаны для Python 3.4 и более новых версий. На Python 2 программы работать не будут, так как в Python 3.4 написание команд отличается от Python 2.
В программе на любом языке очень важен синтаксис – порядок написания символов в строке.
Малейшая ошибка, которую человек даже не заметит, – ЭВМ замечает и отказывается исполнять программу. Поэтому проще копировать блоки уже работающих программ в свою программу, при необходимости, подправить готовые блоки легче, чем писать блок заново – так будет меньше ошибок в программе и экономится время.
Программа в Python состоит из строк, написанных в простом текстовом редакторе.
Текстовый редактор должен быть именно простым, к примеру Блокнот. Редактор Microsoft Word не годится потому, что он вставляет в строку невидимые служебные символы, которые, искажают команды Python и программа отказывается работать. Если листинг программы вы скачали в формате «.doc » или подобном – следует создать пустой текстовый файл в программе « Блокнот » – выделить и скопировать листинг из файла «.doc » и вставить в пустой текстовый файл « Блокнота » с расширением «.txt » и сохранить его с именем программы. Затем открыть этот файл и сохранить уже с расширением «.py ». Вам будут нужны оба этих файла.
Важно, строки программы должны начинаться без пробела точно с начала строки.
Если в программе имеются логические операторы, например while или for, то за таким оператором следуют строки одного или нескольких блоков. Блоки выполняются программой, или пропускаются без исполнения, в зависимости от условия в логическом операторе.
Блоки отделяются от основной программы пробелами в начале строки. Обычно в начале строки блока ставят четыре пробела. Число пробелов в начале строки – важная величина. Мной указано сколько пробелов надо ставить в начале строки.
Сама программа начинается со стороки « # -*– coding: cp1251 -*– » и заканчивается строкой « # .... Конец листинга программы ..... ». Копируя листинг в файл .txt – надо копировать только программу, любой текст до тела программы и после тела программы даст сбой в работе.
Если в компьютере Python 3.4 установлен правильно, то при двойном клике мышью на файле с расширением “.py ”. программа начнет исполнятся. Если программа стопорится или вылетает – Запускаем файл редактора программы
« IDLE( Python GUI) » в этом редакторе щелкаем левой кнопкой мыши на – File – затем Open. В выпавшем меню находим свой файл, выделяем его – щелкаем – Открыть. На экран выводится листинг вашего файла с выделением цветом элементов команд. Находим колонку – Run- щелкнув – открываем выпадающее меню и щелкаем на – Run Module F5 – Ваша программа начинает выполняться и останавливается на месте ошибки. Иногда она останавливается на следующей за ошибкой команде. Выводится комментарий к ошибке на английском.
В некоторых случаях помогает удаление строки в начале программы
« # -*– coding: cp1251 -*– » и программа заработает. Иногда помогает удалить конфликтную строку и забить ее вновь в текстовом редакторе.
« Программа редактор « IDLE( Python GUI) » идет в комплекте с программой Python 3.4.. и служит для нахождения ошибок в разрабатываемой программе.
При верстке книги к печати « умные программы » что-то убирают, а что-то добавляют, искажая оригинал. Для программы маленькие буквы и большие буквы – это разные буквы, а « умные программы » при верстке в начале строки бывает, что заменяют маленькую букву большой или меняет форму ковычек – программа вылетает.
К примеру при верстке удаляются все « лишние» пробелы. Скопировав листинг программы в «Блокноте» в формате «.txt» необходимо восстановить утраченные пробелы. Перед знаком # расположенным после команды надо добавить два пробела. Строка коментариев после значка # не должна переносится на следующую строку. В блоках- там, где блок выделяется пробелами, перед строками блока будет написана фраза: # Далее Cдвиг – четыре пробела в начале каждой строки. Соответственно в листинг ставим четыре пробела в начало каждой строки. Там, где блок закончился, написано: # Далее Конец Cдвига – четыре пробела в начале каждой строки – и строки начинаются без пробелов в начале строки. Иногда меняется вид ковычек – это тоже не дает работать программе – искать такие ошибки лучше в «IDLE( Python GUI)».
Написание чисел с дробной десятичной частью.
При вводе числа с дробной частью, необходимо отделять дробную часть от целой части числа точкой. Если части числа разделить запятой – программа вылетает без предупреждения.
Величины углов для расчета в программе необходимо задавать в радианах. Если программа в результат расчета выводит величину угла – то он выводится в радианах. Для человека ответ на экран удобнее выводить в градусах – при выводе на экран радианы програмно переводят в градусы. При вводе угловых величин- их обычно вводят в градусах и, перед подачей в расчетную часть программы, переводят програмно в радианы.
Написание комментариев.
Значок # предваряет начало комментариев. То, что следует за значком программа просто пропускает, переходя на следующую строку. Комментарий программист пишет себе для справки,чтобы потом ему или другому программисту было легче разобраться в работе программы.
Листинги программ:
Для расчета веса детали – деталь мысленно разобъем на ряд типовых элементов: на цилиндры, конуса, трубы и т.д. У элементов запишем все размеры с чертежа и длинны элементов. Затем запускаем программу Ves_G.py…
Программа выведет меню из 17 пунктов. Меню примитивное – на мышь меню не реагирует. Для выполнения какого либо пункта меню – вводим число – номер пункта меню и Enter.. Программа закольцована, при исполнении следующего пункта меню – результат расчета веса суммируется с ранее найденным результатом – в итоге мы постоянно имеем суммарный вес уже просчитанных элементов. Проограмма – Ves_G.py…головная – в зависимости от выбранного пункта меню – программа автоматически подключает к работе одну из 17 подпрограмм . Главное: Головная программа и детальные программы ( подпрограммы ) должны располагаться в папке Ves..
Примечание: Python 3.4 имеет особенность – когда головная программа вызывает подпрограммы, то как обычно, подпрограмма забирает исходные данные, расчитывает результат и отдает его головной программы. Но вот мы повторно вызваем подпрограмму для расчета по изменившимся исходным данным – Python 3.4 игнорирует, то что данные изменились и выдает нам предыдущий результат. Чтобы не попасть на такую ошибку, приходится вести учет применения подпрограмм – при первом применении считаем как обычно,
import Krug # Подключили модуль расчета круглого сечения
при втором и последующем применении подпрограмму вызываем функцией:
from imp import reload
reload (Krug) # Вызываем на повторный расчет подпрограмму (Krug)…
Только так получаем верные результаты.. ( В других языках программирования я такого не встречал !! )..
Программа Ves_G.py…
# -*– coding: cp1251 -*-
# Программа расчета веса и других параметров
# объемных геометрических элементов..
# Результаты расчета элемента смотри в файле Rezul.txt
# ===============================================
import sys # Подключили основные библиотеки
import shutil # Подключили модуль копирования файлов
import math # Подключили математич модуль
import time # Подключили модуль времени
import datetime # Подключили модуль даты
Pii=math.pi # Вытащили число " Пи "
# ..... ..... ..... ..... .... ...... ...... ....... ...... ...... ...... .......
# time.strftime("%d.%m.%Y") # Работа с датой и временем
# a = datetime.datetime.today().strftime("%Y%m%d")
# print(a) # '20170405'
today = datetime.datetime.today()
# print( today.strftime("%m/%d/%Y") ) # '04/05/2017'
# print( today.strftime("%Y-%m-%d-%H.%M.%S") ) # 2017-04-05-00.18.00
Ddd=( today.strftime("%Y-%m-%d-//-%H.%M.%S") )
# Gsf = 461030/2725231222..
print(" ")
Dds=" "+Ddd+" Расчет веса элементов детали "
print(Dds)
# input( ) # Ожидание нажима Ентер
# ..... ..... ..... ..... .... ...... ...... ....... ...... ...... ...... .......
fv = open('Vn.txt', 'r') # Открыли файл для чтения
# Читаем записанные число часов в текстовом виде
ct=fv.read()
fv.close() # закрыли файл
# ..... ..... ..... ..... .... ...... ...... ....... ...... ...... ...... .......
uu=" "
# print (uu)
# print (uu)
u=" Забрали из файла число часов ( строкой ) = "+ct
# print (u)
xt=float(ct) # Принудительно в вещественное число
xtc=int(xt) # Целое число часов из файла
# print (uu)
# ..... ..... ..... ..... .... ...... ...... ....... ...... ...... ...... .......
x=time.time() # Нашли число секунд из системы компьютера
x=float(x) # Принудительно в вещественное число
xtk=int(x) # Преобразуем секунды к целому числу
xtmk=int(x/60) # Преобразуем минуты к целому числу
xtck=int(x/3600) # Преобразуем часы к целому числу
utck=str(xtck) # Преобразуем число часов в строку
xtdk=int(xtck/24) # Преобразуем дни к целому числу
utdk=str(xtdk) # Преобразуем число дней в строку
uk=" Забрали из системы компьютера число часов = "+utck
# print (uk)
# print (uu)
y=int(xtck-xtc) # Разность часов из компа и из файла
uy=str(y) # Преобразуем число в строку
u=" Разность в часах с временем из файла = "+uy
# print (u)
# print (uu)
t1="."
t2="Ф"
t3="в"