Разработал студент гр. ИТб-1302-01-00 ___________/ Мотошков Д.А./
Руководитель работы ___________/ Родионов К.В./
Работа защищена с оценкой «______________» «__»__________2020 г. Киров 2020
Утверждаю
Зав. каф.
САУ
Ланских Ю.В.
подпись
Ф.И.О.
«
06
»
июля
20
20
г.
Учебная практика полное название дисциплины
, обучающемуся по образовательной программе
09.03.02 – Информационные системы и технологии
полное название направления подготовки (специальности)
курс обучения форма обучения
Индивидуальные задания, выполняемые в период практики:
1. Выполнить обучающие задания, приведённые в методических указаниях, для ознакомления с методами работы с языком Python.
2. Реализовать криптографический алгоритм (Шифр A1Z26) при помощи языка Python, не используя библиотечные функции связанные непосредственно с шифрованием. Разработанная программа должна осуществлять шифрование и дешифрование текста в соответствии с вариантом. В приложении должна быть возможность ввода текста (вручную или загрузка из файла – на усмотрение разработчика), ключа (если этого требует алгоритм) и зашифрованного текста.
1. Исходные данные:
Язык программирования Python, шифр A1Z26
Руководитель работы
Подпись руководителя
Дата
Задание принял
Подпись обучающегося
Реферат
Мотошков Д.А. Программирование на языке Python: ТПЖА.090302.024 ПЗ: Учебная практика / ВятГУ, каф. САУ; рук. К.В. Родионов. – Киров, 2020. ПЗ 22 с., 5 рис., 2 источника, 5 прил.
Объект исследования и разработки – язык программирования Python.
Цель работы – изучить среду программирования Python и разработать программу, осуществляющую шифрование и дешифрование текста.
В соответствии с заданием и исходными данными было разработано приложение и описаны результаты полученной программы. Был реализован один из криптографических алгоритмов (шифр A1Z26) при помощи языка Python.
Содержание
Введение 3
1 Обзор среды программирования и введение в Python 4
1.2 Преимущества и недостатки Python 5
2 Практическое изучение языка Python 8
2.1 Алгоритм k-means 8
2.2 Алгоритм k_NN 9
2.3 Математическая статистика 9
Приложение А (справочное) Листинг реализации алгоритма k-means 14
Приложение Б (справочное) Листинг реализации алгоритма k_NN 15
Приложение В (справочное) Листинг Математическая статистика 17
Приложение Г (справочное) Листинг реализации шифра A1Z26 20
Приложение Д (справочное) Библиографический список 21
import numpy as np import matplotlib.pyplot as plt from k_means import kmeans X = np.array([ [4, 4], [3, 3], [5, 3], [2, 3], [5, 5], [3, 2], [2, 4], [4, 5], [5, 4], [2, 2]]) m, n= X.shape ans = kmeans(2, X) print(ans) plt.plot(X[:,0], X[:,1], ‘bx’, ans[:,0], ans[:,1], ‘r*’, markersize=20) plt.grid() plt.show() 17
Введение
Учебная практика дает студентам получить новые практические и теоретические знания, которые могут помочь в дальнейшем учебном процессе.
На этой практике будет изучен язык программирования Python, ориентированный на повышение производительности разработчика и читаемости кода.
Целью учебной практики является изучение основ языка программирования Python путем разработки приложений и реализации криптографического алгоритма.
Python – высокоуровневый язык программирования, используемый в различных сферах IT для разработки приложений самого разнообразного назначения. 1 Основы Python и обзор среды программирования
Различные языки программирования обычно доминируют в какой-то отрасли, для работы в которой они хорошо подходят. Но это не значит, что программист ограничен использовать строго определённый инструмент, поэтому любой язык общего назначения, такой как Python, может применять для создания чего-угодно.
Но данный язык имеет несколько различных сред разработки, например PyCharm, PyDev, Geany и Spyder.
Python – современный язык программирования высокого уровня. Он представляет собой интерпретируемый объектно-ориентированный язык и интерактивную среду для разработки программ. С его помощью можно разрабатывать приложения с графическим интерфейсом, работать с базами данных, создавать Web-сайты. Python может использоваться для написания прикладных приложений, машинного обучения и многого другого.
Язык программирования Python обладает ясным и понятным синтаксисом и хорош для программирования математических вычислений. Python реализован практически во всех операционных системах и большинство его модулей распространяется бесплатно.
Python начал разрабатываться во второй половине 80-х гг. прошлого века. Автором Питона стал программист из Нидерландов по имени Гвидо ван Россум. Изначально язык должен был стать объектно-ориентированным. Фактически, это был язык сценариев (скриптовый язык). В феврале 1991 года Россум опубликовал исходный код языка в одной из новостных групп.
Основными факторами успеха Python стали удачный выбор места презентации в популярном и массовом профессиональном сообществе в сочетании с действительно простым кодом и широкими возможностями.
Впоследствии Гвидо создал специализированный портал PEP, где идет регулярное обсуждение по развитию и улучшению продукта. В 2008 года появилось большое обновление языка – Python 3.0. В этой версии были устранены многие ключевые недоработки в архитектуре ядра. Что было важно – новая версия продукта сохранила полную совместимость с более старыми вариантами.
Описания типов переменных в Python нет. Это означает, что при присваивании переменной значения интерпретатор автоматически относит переменную к одному из типов данных.
Python содержит такие структуры данных как:
1) Список (list) – похожи на одномерные массивы (список, включающий списки – многомерный массив).
2) Кортеж (tuple) – неизменяемый список.
3) «Массивы» в Python могут содержать данные любого типа, то есть в одном массиве может могут находиться числовые, строковые и другие типы данных [1].
1.2 Преимущества и недостаткиPython
Рассмотрим преимущества и недостатки языка программирования Python:
1) В Python не надо заранее объявлять тип переменной, что очень удобно при разработке
2) Хорошая поддержка модульности. Вы можете легко написать свой модуль и использовать его в других программах.
3) Встроенная поддержка Unicode в строках. В Python необязательно писать всё на английском языке, в программах вполне может использоваться ваш родной язык.
4) Поддержка объектно-ориентированного программирования. При этом его реализация в Python является одной из самых понятных.
5) Автоматическая сборка мусора, отсутствие утечек памяти.
6) Интеграция с C/C++, если возможностей Python недостаточно.
7) Понятный синтаксис, способствующий ясному отображению кода. Система функций позволяет создавать код, в котором будет легко разобраться другому человеку в случае необходимости. Также вы сможете научиться читать программы и модули, написанные другими людьми.
8) Огромное количество модулей Python3. В некоторых случаях для написания программы достаточно найти подходящие модули и правильно их скомбинировать. Таким образом, можно работать с уже готовыми элементами, выполняющими различные действия.
2 Практическое изучение языка Python
Язык Python на сегодняшний день считается самым универсальным языком программирования. Используя Python, можно программировать почти все. На нём активно программирует большинство IT-компаний.
Предположим, требуется сформировать две группы студентов (УТ-11 и УТ-12) для обучения на специальности. Известны оценки абитуриентов за тесты по физике и математике. Требуется реализовать алгоритм k-means, с помощью которого выделить два кластера, описывающих формируемые группы студентов.
Алгоритм k-means:
2. Центры кластеров изначально инициализируются случайным образом.
3. Каждый из объектов приписывается к ближайшему кластеру.
4. На основании объектов, вошедших в каждый кластер, центры кластеров пересчитываются.
5. Шаги 3 и 4 повторяются до тех пор, пока центры кластеров не стабилизируются, то есть на очередной итерации объекты будут принадлежать тем же кластерам, что и до этого.
Листинг программы представлен в приложении А.
Результат работы программы предоставлен на рисунке 1.
Рисунок 1– решение первого задания 2.2 Алгоритмk_NN
В задании по введенным данным роста и веса определить к какому виду относится особь. Каждый вид характеризуется определенным средним значением роста и веса.
В основе kNN лежит следующее правило: объект считается принадлежащим тому классу, к которому относится большинство его ближайших соседей. Под «соседями» здесь понимаются объекты, близкие к исследуемому в том или ином смысле. Для применения метода kNN в пространстве признаков объектов должна быть введена некоторая функция расстояния. Работа программы – классификация особей с помощью реализованного алгоритма предоставлена на рисунке 2.
Рисунок 2 – решение второго задания
Листинг программы представлен в приложении Б.
2.3 Математическая статистика
В задании нужно выполнить несколько заданий представленных ниже:
1) Создать в Python переменную, массив, матрицу с заданными, случайными целочисленными, нулевыми, единичными значениями.
2) Импортировать переменную (матрицу) из текстового структурированного файла (файл создать вручную: разделители столбцов – пробелы).
4) Вывести графики одномерных случайных величин и их плотности распределения. Команды сохранить в скрипт. Подобрать вид распределения одномерной случайной величины и его параметры. На одном графике отобразить случайную величину, уровень среднего значения и дисперсию.
5) Построить и вывести на графике автокорреляцию заданной одномерной случайной величины. Команды сохранить в скрипт.
6) Импортировать из каталога data/NDфайл *.mat с многомерными данными согласно варианта. Первые 5 столбцов считать входными значениями, последний 6 столбец – выходная величина, для которой требуется установить зависимость от входных величин.
7) Построить матрицу корреляции для всех входных и выходных величин. Сделать выводы о зависимости/независимости выходной величины от каждой из входных компонент. Отобразить точечный график для случайных величин, коэффициент корреляции для которых по модулю больше 0.8.
На рисунке 3 представлены графики, которые были получены по окончанию выполнения задания, а на рисунке 4 представлен результат работы программы.
Листинг программы представлен в приложении В.
Рисунок 3 – Графики, полученные в ходе работы
Рисунок 4 – Результат работы программы
Задание: Реализовать криптографический алгоритм (Шифр A1Z26) при помощи языка Python, не используя библиотечные функции связанные непосредственно с шифрованием. Разработанная программа должна осуществлять шифрование и дешифрование текста в соответствии с вариантом. В приложении должна быть возможность ввода текста (вручную или загрузка из файла – на усмотрение разработчика), ключа (если этого требует алгоритм) и зашифрованного текста.
Шифр подстановки— это метод шифрования, в котором элементы исходного открытого текста заменяются зашифрованным текстом в соответствии с некоторым правилом. Элементами текста могут быть отдельные символы (самый распространённый случай), пары букв, тройки букв, комбинирование этих случаев и так далее.
Шифрование/дешифрование исходных данных
Алгоритм шифрования: каждая буква заменяется своим порядковым номером в алфавите.
Процесс расшифрования: нужно прописывать цифры таким образом, чтобы они были отделены друг от друга чертой, дефисом или пробелом, главное, чтобы не были слитные цифры.
Листинг индивидуального задания представлен в приложении Г.
Номера букв латинского алфавита представлены на рисунке 5.
Рисунок 5 – Нумерация латинского алфавита
Вывод
Данная практическая работа сыграла огромную роль в приобретении практических навыков. В ходе выполнения практики был изучен такой язык программирования, как Python. Он оказался прост в применении и понимание, что облегчило выполнение практической работы. Также были закреплены все полученные теоретические знания по изученной дисциплине, что пригодится в дальнейшем.
В ходе летней учебной практики были выполнены следующие задачи:
1) Ознакомление со средой разработки.
2) Изучение базовых возможностей языка программирования Python.
3) Изучение алгоритмов k-means, k_NN, основные программные свойства и методы Математической статистики.
4) Разработка криптографического алгоритма шифрования.
5) Повторение основ оформления научно-исследовательских работ в соответствии с СТП ВятГУ 101-2004 [2].
import numpy as np
def class_of_each_point(X, centers):
distances = np.zeros((m, k))
distances[i, j] = dist(centers[j], X[i])
return np.argmin(distances, axis=1) def kmeans(k, X): m, n = X.shape curr_iteration = prev_iteration = np.zeros(m) centers = np.random.random((k, n))
curr_iteration = class_of_each_point(X, centers) while True:
sub_X = X[curr_iteration == i, :]
centers[i, :] = np.mean(sub_X, axis=0)
curr_iteration = class_of_each_point(X, centers)
if np.all(prev_iteration == curr_iteration):
# run.py
import numpy as np import matplotlib.pyplot as plt from k_means import kmeans
m, n= X.shape ans = kmeans(2, X) print(ans) plt.plot(X[:,0], X[:,1], ‘bx’, ans[:,0], ans[:,1], ‘r*’, markersize=20) plt.grid() plt.show()
Листинг алгоритмаk_NN # kNN.py import numpy as np
import math def k_nearest(X, k, obj): Xn = X[:, 0:-1]
Библиографический список 1) Доля П.Г. Введение в научный Phyton [Текст]: учебное пособие/П.Г. Доля – Харьков: Харьковский Национальный Университет, 2016. – 43с.
2) СТП ВятГУ 101-2004 Общие требования к оформлению текстовых документов// Киров: ВятГУ, 2004.
Отчет по практике «Отчет по практике по предмету «Программирование на Python»», Программирование на Python
Программирование на Python
Отчет по практике по предмету «Программирование на Python»
Программирование на Python
Составить блок-схему программы. Код прилагается
Закажите подобную или любую другую работу недорого
Вы работаете с экспертами напрямую, не переплачивая посредникам, поэтому наши цены в 2-3 раза ниже
Последние размещенные задания
Контрольная, профессиональная этика
Срок сдачи к 29 нояб.
Влияние философии на архитектуру, любой период до 19 века
Срок сдачи к 4 нояб.
Планирование и прогнозирование затрат в организации
Курсовая, Управление затратами организации (предприятия)
Срок сдачи к 7 нояб.
Тема: « Понятия и основные признаки государственного органа РФ»
Курсовая, конституционное право
Срок сдачи к 30 нояб.
Помочь с 15 заданиями небольшими
Ответы на билеты, английский
Срок сдачи к 5 нояб.
Написать реферат по дисциплине: «Основы управленческого консультирования»
Реферат, Основы управленческого консультирования
Срок сдачи к 9 нояб.
Решение задач, Математический анализ
Срок сдачи к 3 нояб.
Решение задач, Химия
Срок сдачи к 2 нояб.
Всего один вопрос. Ответ нужен развернутый
Ответы на билеты, электротехника и электроника
Срок сдачи к 2 нояб.
Тест дистанционно, Финансовый менеджмент
Тест дистанционно, Финансовый менеджмент
Срок сдачи к 2 нояб.
Тема: Методы оптимизации организационных структур управления в системе.
Срок сдачи к 9 нояб.
тема «автоматизированная система дистанционного мониторинга параметров мобильных и стационарных объектов»
Другое, Основы научных исследований
Срок сдачи к 5 нояб.
Решение задач, управленческий учет
Срок сдачи к 2 нояб.
Выполнить 5 лабораторных работ по Excel
Лабораторная, Профессиональные компьютерные программы
Срок сдачи к 6 нояб.
Эссе по работе Ф. Ницше «О пользе и вреде истории для жизни»
Срок сдачи к 5 нояб.
Ответить на вопросы с ссылками на ЗК
Решение задач, Земельное право
Срок сдачи к 3 нояб.
Ведение бухгалтерского учета источников формирования активов, выполнение работ по инвентаризации активов и финансовых обязательств организации
Отчет по практике, Бухгалтерский учет
Срок сдачи к 8 нояб.
Срок сдачи к 4 нояб.
обратились к нам за последний год
работают с нашим сервисом
заданий и консультаций
заданий и консультаций
выполнено и сдано за прошедший год
Сайт бесплатно разошлёт задание экспертам. А эксперты предложат цены. Это удобнее, чем искать кого-то в Интернете
Отклик экспертов с первых минут
С нами работают более 15 000 проверенных экспертов с высшим образованием. Вы можете выбрать исполнителя уже через 15 минут после публикации заказа. Срок исполнения — от 1 часа
Цены ниже в 2-3 раза
Вы работаете с экспертами напрямую, поэтому цены ниже, чем в агентствах
Доработки и консультации – бесплатны
Доработки и консультации в рамках задания бесплатны и выполняются в максимально короткие сроки
Гарантия возврата денег
Если эксперт не справится — мы вернем 100% стоимости
На связи 7 дней в неделю
Вы всегда можете к нам обратиться — и в выходные, и в праздники
Эксперт получил деньги за заказ, а работу не выполнил? Только не у нас!
Деньги хранятся на вашем балансе во время работы над заданием и гарантийного срока
Гарантия возврата денег
В случае, если что-то пойдет не так, мы гарантируем возврат полной уплаченой суммы
С вами будут работать лучшие эксперты. Они знают и понимают, как важно доводить работу до конца
С нами с 2017 года
Помог студентам: 10 798 Сдано работ: 10 798 Рейтинг: 80 281 Среднее 4,94 из 5
С нами с 2018 года
Помог студентам: 7 461 Сдано работ: 7 461 Рейтинг: 66 451 Среднее 4,87 из 5
С нами с 2019 года
Помог студентам: 2 358 Сдано работ: 2 358 Рейтинг: 25 081 Среднее 4,84 из 5
С нами с 2018 года
Помог студентам: 2 038 Сдано работ: 2 038 Рейтинг: 12 477 Среднее 4,87 из 5
1. Сколько стоит помощь?
Цена, как известно, зависит от объёма, сложности и срочности. Особенностью «Всё сдал!» является то, что все заказчики работают со экспертами напрямую (без посредников). Поэтому цены в 2-3 раза ниже.
Специалистам под силу выполнить как срочный заказ, так и сложный, требующий существенных временных затрат. Для каждой работы определяются оптимальные сроки. Например, помощь с курсовой работой – 5-7 дней. Сообщите нам ваши сроки, и мы выполним работу не позднее указанной даты. P.S.: наши эксперты всегда стараются выполнить работу раньше срока.
3. Выполняете ли вы срочные заказы?
Да, у нас большой опыт выполнения срочных заказов.
4. Если потребуется доработка или дополнительная консультация, это бесплатно?
Да, доработки и консультации в рамках заказа бесплатны, и выполняются в максимально короткие сроки.
5. Я разместил заказ. Могу ли я не платить, если меня не устроит стоимость?
6. Каким способом можно произвести оплату?
Работу можно оплатить множеством способом: картой Visa / MasterCard, с баланса мобильного, в терминале, в салонах Евросеть / Связной, через Сбербанк и т.д.
7. Предоставляете ли вы гарантии на услуги?
На все виды услуг мы даем гарантию. Если эксперт не справится — мы вернём 100% суммы.
8. Какой у вас режим работы?
Мы принимаем заявки 7 дней в неделю, 24 часа в сутки.