Главная » Все файлы » Просмотр файлов из архивов » Файлы формата DJVU » Саммерфилд - Программирование на Python 3

Саммерфилд - Программирование на Python 3, страница 11

DJVU-файл Саммерфилд - Программирование на Python 3, страница 11 Основы автоматизированного проектирования (ОАП) (2112): Книга - 3 семестрСаммерфилд - Программирование на Python 3: Основы автоматизированного проектирования (ОАП) - DJVU, страница 11 (2112) - СтудИзба2018-01-10СтудИзба

Описание файла

DJVU-файл из архива "Саммерфилд - Программирование на Python 3", который расположен в категории "". Всё это находится в предмете "основы автоматизированного проектирования (оап)" из 3 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "основы автоматизированного производства (оап)" в общих файлах.

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 11 - страница

В последующих главах мы узнаем значительно больше о языке РуФЬоп и о библиотеке, благодаря чему мы сможем писать более короткие и более надежные программы, чем те, что представлены здесь. Но для начала необходимо заложить фундамент, на котором будет строиться остальное здание.

Ь!9(3!911б.РУ Первая программа, которую мы рассмотрим, очень короткая, хотя в ней имеется несколько интересных особенностей, включая список списков. Эта программа принимает число в виде аргумента командной строки и выводит его на экран, используя «большие» цифры. На серверах, где множество пользователей совместно пользуются высокоскоростным принтером, обычной практикой считается, когда задание для печати каждого пользователя предваряется титульным листом, на котором с помощью описываемой методики выводится имя пользователя и некоторая дополнительная идентификационная информация.

Мы будем рассматривать программный код в три этапа: импортирование, создание списков, хранящих данные, используемые программой, и собственно обработка. Но для начала посмотрим пример вывода: Ы90!9!18. ру 41072819 Мы не показали здесь строку приглашения к вводу в консоли (или ведущую комбинацию . г' для пользователей 171ч1Х) — к настоящему времени мы считаем их наличие чем-то подразумеваемым.

!зрсг! эуз Поскольку нам потребуется читать аргумент командной строки (выводимое число), нам необходимо будет обращаться к списку эуэ, згуу, поэтому начнем с того, что импортируем модуль зуз. Глава 1. Быстрое введение в процедурное программирование Каждая цифра будет представлена списком строк. Например, ниже показано представление цифры 01 Лего = [" Обратите внимание, что список строк всего располагается в нескольких строках. Обычно инструкции языка РуФ]топ занимают одну строку, но они могут занимать и несколько строк, если они представлены выражением в скобках. Литералы списков, множеств, словарей, список аргументов функции или многострочные инструкции, в которых символ конца строки экранируется символом обратного слеша ['т) — во всех этих случаях инструкции могут занимать несколько строк, при этом отступы во второй и последующих строках не учитываются.

Тип ает, стр. 144 Тип О!ст, стр. 151 Опе = [" * Тио = [" * № гбпе = [" **"] Последний элемент данных, который нам потребуется, — это список всех списков цифр: Отдттэ = [Еего, Опе, Тио, Тлгее, Еоог, Етче, 3!х, Оечеп, Етдж, Мтпе] Мы могли бы создать список списков О!дттз, не создавая промежуточ- ные переменные. Например: Отд!15 = [ *** "], № Лего [ * **, * [" ****", "* *"] № Мтпе ] ° *" ], № Опе Мы предпочли использовать отдельные переменные для каждого чис- ла для удобочитаемости и потому, что вариант на основе переменных выглядит более аккуратным. Каждый список, представляющий цифру, содержит семь строк, все одинаковой длины, причем эта длина может изменяться от цифры к цифре.

Списки с изображением остальных цифр строятся аналогичным образом, но они выведены несколько иначе — для компактности, а не для ясности: Примеры Далее приведена остальная часть программного кода, чтобы вы могли ознакомиться с ней, прежде чем продолжить читать пояснения. !гу: с1ц!!Б = ауд, дгцх[1] гса = О иы1е ген < 7: 11пе = "" сс1цап = О ни11е сс1цап < !еп(С1ц!га): пцасег = 1п!(С!ц1!д[сс1нап]) Сгц1! = Рддмд[пиасег] 11пе и= С1цг![гси] + " сс1цап += ! рг1п!(11пе) гсн += ! ехсер! 1паехЕггсг: рггпг("ндаце: и!цсдцдга.ру <пцасег>") ехсер! Ча1оеЕггсг аа егг: ргдп1(егг, "1п", С1д11а) Программный код полностью обернут в конструкцию обработки исключений, которая способна перехватывать два вида исключений, когда что-то пойдет не так.

Сначала мы пытаемся извлечь параметр командной строки. Индексация элементов в списке ауа. агцц начинается с нуля, как и в любых других списках в языке Руд]гоп. Элемент списка с индексом 0 — это имя программы, под которым она была вызвана, поэтому данный список в любой программе имеет как минимум один элемент. Если при вызопе программы аргумент не был указан, то при попытке обратиться ко второму элементу списка, состоящему иэ одного элемента, будет возбуждено исключение 1пцехЕггсг. В этом случае управление немедленно будет передано соответствующему блоку обработки исключений, где мы просто выводим информацию о порядке использования программы.

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

(Вспомни- стр.!67 те, как в описании составляющей №2 мы говорили, что идентификаторы в языке Ру1Ьоп чувствительны к регистру символов, поэтому О!О1!а и Рац!!а — это разные идентификаторы.) Каждая большая цифра представлена семью строками, и чтобы правильно вывести число, мы должны сначала вывести верхние строки всех цифр, затем следующие строки всех цифр и т. д., пока не будут выведены все семь строк. Для обхода всех строк мы используем цикл аП71е.

Вместо него можно было бы использовать цикл (сг гса !и (О, 1, 2, 3, 4, 5, 6)., 58 Глава 1. Быстрое введение а процедурное программирование а позднее будет представлен более интересный способ, основанный на использовании встроенной функции галде(). Переменная 1(пе используется для сборки строки из отдельных строк всех имеющихся цифр.

Далее выполняется обход в цикле всех колонок, то есть всех цифр в аргументе командной строки. Мы извлекаем каждый символ, используя выражение с!0118(001овп), и преобразуем полученную цифру в целое число повьет. Если при преобразовании возникает ошибка, возбуждается исключение Уа1шеЕггог и управление немедленно передается соответствующему обработчику ошибок. В этом случае мы выводим сообщение об ошибке, и выполнение продолжается за пределами блока с гу. Как уже отмечалось ранее, поскольку эа его пределами больше нет программного кода, то программа просто завершается. В случае благополучного преобразования значение пцвзегиспользуется как индекс в списке 010118, из которого извлекается список строк О!д!1.

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

Попробуйте запустить эту программу, чтобы получить представление о том, как она работает. Мы еще вернемся к этой программе в упражнениях, чтобы попытаться несколько улучшить вывод. депега1е дпЫ.ру Часто бывает необходимо сгенерировать тестовые данные. Не существует какой-либо универсальной программы, которая делала бы это, поскольку требования к тестовым данным могут изменяться очень сильно. Язык РуСЬоп часто используется для создания массивов тестовых данных, потому что программы на языке РуФЬоп писать и модифицировать не составляет большого труда. В этом подразделе мы создадим программу, которая будет генерировать матрицу из случайных целых чисел, где пользователь сможет указать число строк и столбцов, а также диапазон целых чисел.

Для начала рассмотрим пример запуска программы: делегате дг!П.ру гоша. '4х впха!та 14(ега1 Гог гпт() и(ти Ьаае 1О: '4х' (ошибочнша литерал типа тпт() по основанию 10: '4х') геша: 4 со1овпа: 7 втпжев (ог Ептег Гог О): -100 вах1вив (ог ептег гог !000): 554 720 550 217 810 649 912 Примеры -24 908 742 -65 -74 724 825 711 968 824 505 741 55 723 180 -60 794 !73 487 4 -35 Мы будем рассматривать программный код в четыре приема: импорт, определение функции де! ! 01( ) (более сложная версия, чем была пока- зана в составляющей №8), взаимодействие с пользователем, во время которого принимаются вводимые числа, и собственно обработка.

1ерсг! гапссе Чтобы получить доступ к функции гапзсе. гап01п!()„нам необходимо импортировать модуль гапзое. а Функция гансов. ганс!п!(), сгр. 54 Се( де! гпг(еад, егп1еце, Сеуац1!): иш1е Тгце: !гу; 1!не = !при!(еад) !Г пс! 1!се апа Се(ац1! !а пс! ассе; ге!Ьгп Се(ац!! ! = гпг(1!па) г( 1 < егпгеце: рг!пг("еца! Ье >=", е1пгеце) е1ае; ге!Нгп ! ексер! На1цеЕггсг аа егг: рг1п!(егг) Функция требует три аргумента: строку приглашения к вводу, минимальное значение и значение по умолчанию. Если пользователь просто нажимает клавишу Еп1ег, у функции имеется две возможности.

Если аргумент Оегаь1! имеет значение йспе, то есть значение по умолчанию не задано, то управление передается строке ! = !и!(11пе), Попытка преобразования терпит неудачу (потому что пустая строка не может быть преобразована в целое число), и возбуждается исключение На)ьеЕггсг. Но если аргумент де1-ац1! имеет значение, отличное от )40пе, оно возвращается вызывающей программе. В противном случае функция попытается преобразовать в целое число текст, введенный пользователем, и если преобразование будет выполнено благополучно, функция проверит, чтобы введенное число было не меньше аргумента в! п1 все.

Таким образом, функция всегда будет возвращать либо значение аргумента Ьегац1! (если пользователь просто нажмет клавишу Еп1ег), либо целое число, большее или равное значению аргумента в1пгеце. гсиа = де! гп!("гсиа, ", 1, аспе) сс1цепа = 9е! гпг("сс1цепа: ", 1, цспе) Программа работает в интерактивном режиме, и при первой попытке мы допустили ошибку при вводе числа строк. Программа ответила выводом сообщения об ошибке и затем попросила повторить ввод числа строк. При запросе ввести максимальное число мы просто нажали клавишу Е01ег, чтобы использовать число по умолчанию. 60 Глава 1.

Быстрое введение в процедурное программирование атптаца = Ое! !пт("втп!аца (ог Ептег Гог 0): ", -1000000, 0) цетац1! = 1000 тг сетац11 < а!о!все: це(ац1! = 2 * втптвцв аахкма = Ое! тп!("вах!вцв (ог ептег тог " а атг(цегац11) а "): втп!вца, цегац11) Наша функция Ое! !ос( ) упрощает получение числа строк и столбцов, а также минимальное и максимальное значения желаемого диапазона случайных чисел.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5288
Авторов
на СтудИзбе
417
Средний доход
с одного платного файла
Обучение Подробнее