Определи язык программирования на котором написан оператор вывода

  • Объясните зависимости между аппаратным и программным обеспечением
  • Опишите форму и функции языков компьютерного программирования
  • Создание, изменение и объяснение компьютерных программ в соответствии с шаблоном ввода/процесса/вывода.
  • Формируйте допустимые идентификаторы и выражения Python.
  • Напишите операторы Python для вывода информации на экран. Присвоения значений переменным и приема информации с клавиатуры.
  • Чтение и запись программ. Обрабатывающих числовые данные. А также математический модуль Python.
  • Чтение и запись программ. Обрабатывающих текстовые данные с помощью встроенных функций и методов.

Прежде чем мы начнем изучать язык программирования. Чтобы давать инструкции компьютерам для разработки программного обеспечения. Нам нужно узнать. Как устроены компьютеры. Если бы вы разобрали свой компьютер или мобильный телефон и заглянули глубоко внутрь. То обнаружили бы следующие детали:

изображение

Рисунок 10: Архитектура Аппаратного обеспечения компьютера

Высокоуровневые определения этих частей следующие:

  • Центральный процессор-это та часть компьютера. Которая построена так. Чтобы быть одержимой вопросом “что дальше?” Если ваш компьютер рассчитан на 3,0 Гигагерца. Это означает. Что процессор будет спрашивать “Что дальше?” три миллиарда раз в секунду.
  • Основная память используется для хранения информации. Которая необходима процессору в спешке. Основная память работает почти так же быстро. Как и процессор. Но информация. Хранящаяся в основной памяти, исчезает. Когда компьютер выключен.
  • Вторичная память также используется для хранения информации. Но она намного медленнее. Чем основная. Преимущество вторичной памяти заключается в том. Что она может хранить информацию даже при отсутствии питания компьютера. Примерами вторичной памяти являются дисковые накопители или флэш-память (обычно используемые в USB-накопителях и портативных музыкальных проигрывателях).
  • Устройства ввода и вывода-это просто наш экран. Клавиатура, мышь. Микрофон, динамик. Сенсорная панель и т. Д. Это все способы нашего взаимодействия с компьютером.
  • В наши дни большинство компьютеров также имеют сетевое подключение для получения информации по сети. Мы можем думать о сети как об очень медленном месте для хранения и извлечения данных. Которые не всегда могут быть “активными”. Таким образом. В некотором смысле сеть-это более медленная и временами ненадежная форма вторичной памяти.

Хотя большую часть деталей работы этих компонентов лучше оставить разработчикам компьютеров. Это помогает иметь некоторую терминологию. Чтобы мы могли говорить об этих различных частях. Когда мы пишем наши программы.

Как программист. Ваша задача-использовать и организовывать каждый из этих ресурсов для решения проблемы. Которую вам нужно решить. И анализировать данные. Которые вы получаете от решения. Как программист. Вы в основном будете “разговаривать” с процессором и говорить ему. Что делать дальше. Иногда вы говорите процессору использовать основную память. Вторичную память. Сеть или устройства ввода-вывода.

Очень важно. Чтобы компьютерное оборудование было надежным и безошибочным. Если аппаратное обеспечение дает неверные результаты, то любая программа, запущенная на этом оборудовании, ненадежна. Ключом к разработке надежных систем является максимально простая конструкция[1]. В цифровых вычислениях вся информация представлена в виде серии цифр или электронных символов. Которые либо “включены”. Либо “выключены” (подобно выключателю света). Эти схемы электронных символов лучше всего представить в виде последовательности нулей и единиц. Цифр из двоичной (основание 2) системы счисления.

изображение

Рисунок 11: Цифровое представление

Термин бит означает двоичную цифру. Поэтому каждый бит имеет значение 0 или 1. Байт-это группа битов. Управляемая как единое целое в компьютерной системе. Обычно состоящая из восьми битов. Хотя значения. Представленные в базе 2, значительно длиннее значений, представленных в базе 10, двоичное представление используется в цифровых вычислениях из-за простоты аппаратного обеспечения[2]. Например, десятичное число 485представляется в двоичном виде как 111100101.

Операционная система-это программное обеспечение. Предназначенное для управления аппаратными ресурсами компьютера и взаимодействия с ними.

Поскольку операционная система является неотъемлемой частью работы компьютера. Ее называют системным программным обеспечением.

Операционная система выступает в качестве “посредника” между аппаратным обеспечением и исполняемыми прикладными программами (см. рис. 12). Например, он управляет выделением памяти для различных программ. Которые могут выполняться на компьютере. Операционные системы также предоставляют определенный пользовательский интерфейс. Таким образом. Именно операционная система. Установленная на данном компьютере. Определяет “внешний вид” пользовательского интерфейса и то. Как пользователь взаимодействует с системой. А не конкретный модельный компьютер.

[3]

Общение с компьютером. Использующим только нули и единицы. Может быть очень громоздким. Подверженным ошибкам и отнимающим много времени. Числовой машинный код (компьютерный код. Использующий только нули и единицы) существует. Но редко используется программистами. По этой причине большинство людей программируют на “высокоуровневом” языке программирования. Использующем слова и символы. Которыми людям легче управлять. Чем двоичными последовательностями. Существуют инструменты. Которые автоматически преобразуют высокоуровневое описание того. Что должно быть сделано. В необходимый машинный код более низкого уровня.

Языки программирования более высокого уровня. Такие как Python. Позволяют программистам выражать решения проблем программирования в терминах. Которые гораздо ближе к естественному языку. Такому как английский. Некоторые примеры наиболее популярных из сотен высокоуровневых языков программирования, разработанных за последние 60 лет, включают FORTRAN, COBOL, Lisp, Haskell, C++, Perl, C, Java и C#. Большинство современных программистов. Особенно тех. Кто занимается высокоуровневыми приложениями. Обычно не беспокоятся о деталях базовой аппаратной платформы и ее машинного языка.

Пример числового машинного кода:
001010001110100100101010000001111
11100110000011101010010101101101

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

Рассмотрим следующий фрагмент программы написанный на языке программирования Python:

subtotal = 25
tax = 3
total = subtotal + tax

Хотя эти три строки (три оператора) действительно составляют правильную программу Python, они. Скорее всего. Являются небольшим фрагментом более крупной программы.

Строки текста в этом фрагменте программы похожи на выражения в алгебре. Мы не видим последовательности двоичных цифр. Три слова, subtotal. Tax, and total, называемые переменными. Представляют информацию. В программировании переменная представляет собой значение. Хранящееся в памяти компьютера. Вместо некоторых загадочных двоичных инструкций. Предназначенных только для процессора. Мы видим знакомые математические операторы (= и +).

Поскольку эта программа выражена на языке Python. А не на машинном языке. Ни один компьютерный процессор (CPU) не может выполнить эту программу напрямую. Программа под названием интерпретатор переводит код Python в машинный код. Когда пользователь запускает программу. Код языка более высокого уровня называется исходным кодом. Соответствующий код машинного языка называется целевым кодом. Интерпретатор переводит исходный код на целевой машинный язык.

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

Целевая платформа должна иметь интерпретатор Python. Но несколько интерпретаторов Python доступны для всех основных вычислительных платформ. Поэтому человек-программист может свободно думать о написании решения проблемы на Python. А не на конкретном машинном языке.

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

  • Редакторы. Редактор позволяет программисту ввести исходный код программы и сохранить его в файлы. Большинство программных редакторов повышают производительность программиста. Используя цвета для выделения языковых функций.

    Синтаксис языка относится к тому. Как части языка расположены. Чтобы сделать хорошо сформированные “предложения.” Чтобы проиллюстрировать это предложение,

Высокий мальчик быстро бежит к двери.

использует правильный английский синтаксис. Для сравнения. Предложение

Мальчик высокий бежит к двери быстро той.

синтаксически неверно. В нем используются те же слова. Что и в исходном предложении. Но их расположение не соответствует правилам английского языка.

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

Только хорошо сформированные программы приемлемы для перевода в исполняемый машинный код. Некоторые синтаксические редакторы могут использовать цвета или другие специальные аннотации. Чтобы предупредить программистов о синтаксических ошибках в процессе редактирования.

  • Компиляторы. Компилятор переводит исходный код в целевой код. Целевой код может быть машинным языком для конкретной платформы или встроенного устройства. Целевой код может быть другим исходным языком; например. Самый ранний компилятор C++ перевел C++ в C. Другой язык более высокого уровня.

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

  • Переводчики. Интерпретатор подобен компилятору в том смысле. Что он переводит исходный код более высокого уровня в целевой код (обычно машинный язык). Однако это работает по-другому. В то время как компилятор создает исполняемую программу. Которая может выполняться много раз без дополнительного перевода. Интерпретатор переводит операторы исходного кода на машинный язык каждый раз. Когда пользователь запускает программу.

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

    Python, например. Используется в основном как интерпретируемый язык. Но компиляторы для него доступны. Интерпретируемые языки лучше подходят для динамической. Исследовательской разработки, которая. По мнению многих людей. Идеально подходит для начинающих программистов. Популярные скриптовые языки включают Python. Ruby, Perl и. Для веб-браузеров. Javascript.

Интерпретатор Python написан на языке высокого уровня под названием “C”. Вы можете посмотреть фактический исходный код интерпретатора Python, перейдя по

ссылке www.python.org и прокладывать себе путь к их исходному коду. Таким образом. Python — это сама программа. И она компилируется в машинный код. Когда вы устанавливаете Python на свой компьютер. Вы копируете копию машинного кода переведенной программы Python в свою систему. В Windows исполняемый машинный код для самого Python. Скорее всего. Находится в файле с таким именем, как:

C:\Python35\python.exe

  • Отладчики. Отладчик позволяет программисту легче отслеживать выполнение программы. Чтобы найти и исправить ошибки в реализации программы.

    С помощью отладчика разработчик может одновременно запускать программу и видеть. Какая строка в исходном коде отвечает за текущие действия программы. Программист может наблюдать значения переменных и других элементов программы. Чтобы увидеть. Изменяются ли их значения. Как ожидалось. Отладчики полезны для обнаружения ошибок (также называемых ошибками) и восстановления программ. Содержащих ошибки. (Дополнительные сведения об ошибках программирования см. в разделе Отладка в этом блоке.)

КОМПИЛЯТОР

ПЕРЕВОДЧИК

Компилятор принимает всю программу в качестве входных данных.

Он работает сразу по полной программе.

Интерпретатор принимает в качестве входных данных один оператор за раз. Он работает строка за строкой.

Он генерирует Промежуточный объектный код (машинный код).

Он не генерирует промежуточный код (машинный код).

Он выполняет операторы условного управления быстрее. Чем интерпретатор. Анализ исходного кода занимает много времени. Но общее время выполнения сравнительно быстрее.

Он выполняет операторы условного управления гораздо медленнее. Чем компилятор. В общем, общее время выполнения медленнее.

Требуется больше памяти (так как генерируется объектный код).

Потребность в памяти меньше. Следовательно. Более эффективная память. Он не генерирует промежуточный объектный код.

Скомпилированная программа не должна компилироваться каждый раз.

Каждый раз программа более высокого уровня преобразуется в программу более низкого уровня.

Ошибки отображаются после проверки всей программы. Поэтому отладка сравнительно сложна.

Ошибки отображаются для каждой интерпретируемой команды (если таковая имеется). Продолжает переводить программу до тех пор. Пока не будет встречена первая ошибка. И в этом случае она останавливается. Следовательно. Отладка проще.

Языки программирования. Использующие компиляторы. — это COBOL, C, C++ .

Языки программирования. Использующие интерпретатор. — это Visual Basic Script. Ruby, Perl.

Таблица 1: Компилятор И Интерпретатор[4]

Многие разработчики используют интегрированные среды разработки (IDE). IDE включает в себя редакторы. Отладчики и другие средства программирования в одной комплексной программе. Python IDE включают Wingware. PyCharm и IDLE.

Несмотря на большое разнообразие инструментов (и заявления поставщиков инструментов). Процесс программирования для всех. Кроме тривиальных программ. Не является автоматическим.

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

Гвидо ван Россум создал язык программирования Python в конце 1980-х годов. Он назвал язык в честь шоу Би-би-си “Летающий цирк Монти Пайтона”. В отличие от других популярных языков. Таких как C . C++, Java и C#. Python стремится обеспечить простой. Но мощный синтаксис.

Python используется для разработки программного обеспечения в таких компаниях и организациях. Как Google, Yahoo. Facebook, CERN. Industrial Light and Magic и NASA.

Это особенно актуально при разработке таких приложений информатики. Как ForecastWatch.com который использует Python для помощи метеорологам. Онлайн-сайтам путешествий. Системам бронирования авиабилетов. Системам учета студентов университета. Системам управления воздушным движением и многим другим[5] Опытные программисты могут добиться больших успехов с помощью Python. Но красота Python заключается в том. Что он доступен начинающим программистам и позволяет им решать интересные задачи быстрее. Чем многие другие. Более сложные языки. Которые имеют более крутую кривую обучения.

Python имеет обширную стандартную библиотеку. Которая представляет собой набор встроенных модулей. Каждый из которых обеспечивает определенную функциональность за пределами того. Что входит в “основную” часть Python. (Например. Математический модуль предоставляет дополнительные математические функции. Модуль random обеспечивает возможность генерации случайных чисел)[6]. Кроме того, Стандартная библиотека может помочь вам сделать различные вещи. Включая регулярные выражения. Генерацию документации. Базы данных. Веб-браузеры, CGI, FTP. Электронную почту, XML. HTML, WAV-файлы. Криптографию. Графический интерфейс (графический пользовательский интерфейс). Среди прочего.

Более подробную информацию о Python. Включая ссылки для загрузки последней версии для Microsoft Windows. Mac OS X и Linux. Можно найти в Приложении А этой книги. А также на сайте http://www.python.org .

В конце 2008 года был выпущен Python 3.0. Обычно называемый Python 3, текущая версия Python, ВЕРСИЯ 3.0, несовместима с более ранними версиями языка. Многие существующие книги и интернет-ресурсы охватывают Python 2, но все больше ресурсов Python 3 теперь становятся широко доступными.

Код в этой книге основан на Python 3.

Эта книга не пытается охватить все аспекты языка программирования Python. Основное внимание здесь уделяется внедрению методов программирования и развитию хороших привычек и навыков. С этой целью этот подход избегает некоторых более неясных особенностей Python и концентрируется на основах программирования. Которые легко переносятся непосредственно на другие языки программирования.

Цель состоит в том. Чтобы превратить вас в человека. Который владеет искусством программирования. В конце концов вы станете программистом – возможно. Не профессиональным программистом. Норайней мере. У вас будут навыки. Чтобы взглянуть на проблему анализа данных/информации и разработать программу для ее решения.

В некотором смысле. Чтобы быть программистом. Нужны два навыка:

  • Во – первых. Вам нужно знать язык программирования (Python) — вам нужно знать словарь и грамматику (синтаксис). Вы должны уметь правильно произносить слова на этом новом языке и знать. Как строить хорошо сформированные “предложения” на этом новом языке.
  • Во-вторых, нужно “рассказать историю”. При написании рассказа вы объединяете слова и предложения. Чтобы донести идею до читателя.

    Существует навык и искусство в построении истории. И навык в написании истории улучшается. Если вы делаете некоторое письмо (практикуетесь) и получаете некоторую обратную связь. В программировании наша программа-это “история”, а проблема. Которую вы пытаетесь решить. — это “идея”.

После того. Как вы изучите один язык программирования. Такой как Python. Вам будет гораздо легче изучить второй язык программирования. Такой как JavaScript или C++ . Другие языки программирования имеют очень разную лексику и грамматику (синтаксис). Но навыки решения проблем будут одинаковыми во всех языках программирования.

Вы довольно быстро освоите “словарь” и “предложения” (синтаксис) Python. Вам потребуется больше времени. Чтобы написать связную программу для решения новой задачи. Мы учимся программировать так же. Как учимся писать. Мы начинаем с чтения и объяснения программ. Затем мы пишем простые программы. А затем мы пишем все более сложные программы с течением времени. В какой-то момент вы “получаете свою музу” и видите паттерны самостоятельно и можете более естественно понять. Как взять проблему и написать программу. Которая решает эту вычислительную проблему.

И как только вы достигнете этой точки. Программирование станет очень приятным и творческим процессом.

Начнем с лексики и структуры программ на Python. Будьте терпеливы. Поскольку простые примеры напоминают вам о том времени. Когда вы начали читать в первый раз.

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

Программа состоит из одного или нескольких операторов. Оператор-это инструкция. Которую выполняет интерпретатор.

Следующая инструкция вызывает функцию печати для отображения сообщения:

print("This is a simple Python program")

Мы можем использовать оператор в программе. На рис. 13 (simple.py) приведен пример очень простой программы на Python. Которая что-то делает:

Рисунок 13: Список simple.py

IDLE-это интегрированная среда разработки и обучения Python (IDE). Которая входит в состав стандартной библиотеки Python. Распространяемой вместе с Python 3 (см. Приложение A). IDLE-это стандартная среда разработки Python. Его название является аббревиатурой “Integrated DeveLopment Environment”. Он хорошо работает как на Unix. Так и на Windows платформах.

IDLE имеет окно Python Shell, которое дает вам доступ к интерактивному режиму Python. Он также имеет редактор файлов. Который позволяет создавать и редактировать существующие исходные файлы Python. Для написания программы использовался редактор файловsimple.py.

Способ запуска в режиме ОЖИДАНИЯ зависит от операционной системы и того. Как она была установлена. На рис. 13 показан снимок холостого хода на компьютере под управлением Windows 8.1. IDE состоит из простой строки меню в верхней части. Другие ИДЫ Python аналогичны по внешнему виду.

Чтобы начать вводить нашу программу. Мы просто набираем операторы Python. Чтобы запустить новую программу. Выберите пункт Новый файл в меню Файл. Это действие создает новую панель редактора для файла с именемUntitled, показанным на рис. 14 ниже.

Рис. 14: Новое окно редактора файлов

Теперь мы готовы ввести код. Который составляет программу.

print("This is a simple Python program")

Далее мы сохраним файл. Последовательность меню FileSave или File Save Asсоздает диалоговое окно , показанное на рис.15, которое позволяет нам выбрать папку и имя файла для нашей программы. Вы должны быть уверены. Что все программы Python сохраняются с .pyрасширением. Если доступно “Save as Type: Python files”. То нет необходимости добавлять .pyрасширение. Так как оно будет автоматически сохранено в виде .pyфайла (см. рис.15).

Рис. 15: Сохранить файл Python, Вариант 1

Если вы используете другой текстовый редактор. Выберите “Сохранить как тип: Все файлы” и добавьте .pyрасширение (см. рис.16).

Рисунок 16: Сохранить файл Python, Вариант 2

Мы можем запустить программу. Выбрав последовательность меню Run Module или используя комбинацию клавиш F5. Новое окно с надписью Python Shell отобразит вывод программы. На рисунке 17 показаны результаты выполнения программы.

Рисунок 17: Программа simple.py Выход

Эта программа содержит один оператор Python. Оператор-это команда. Которую выполняет интерпретатор. Это заявление печатает сообщение This is a simple Python program in the Python Shell window. Оператор-это основная единица выполнения программы на языке Python. Операторы могут быть сгруппированы в более крупные блоки. Называемые блоками. А блоки могут составлять более сложные операторы (например. Структуру выбора или итеративную структуру. Которую мы видели в последнем блоке). Оператор print("This is a simple Python program")использует встроенную функцию с именем print В Python есть множество различных типов операторов. Которые мы можем использовать для построения программ. И в следующих разделах рассматриваются эти различные типы операторов.

Примечание для читателя: В контексте программирования функция-это именованная последовательность операторов. Выполняющая вычисление. Имя этой функции здесь таковоprint. Выражение в скобках называется аргументом функции. Результатом для этой функции является строка символов в кавычках (т. Е. аргумента.Обычно говорят. Что функция “принимает” аргумент и “возвращает” результат. Результат называется возвращаемым значением.

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

Мы создали программу на рисунке 13 (simple.py) и отправил его интерпретатору Python для выполнения. Мы можем взаимодействовать с интерпретатором напрямую. Вводя операторы и выражения Python для немедленного выполнения. Как мы видели на рис. 17, окно ОЖИДАНИЯ с надписью Python Shell это место. Куда исполняющая программа направляет свой вывод. Мы также можем вводить команды в окно оболочки Python. И интерпретатор попытается их выполнить. На рис. 18 показано. Как интерпретатор реагирует. Когда мы вводим оператор программы непосредственно в оболочку. Мы найдем интерактивный интерпретатор Python бесценным для экспериментов с различными языковыми конструкциями.

Рисунок 18: Выполнение отдельных команд в оболочке Python

Мы можем многое узнать о Python. Даже не написав полной программы. Мы можем выполнить интерактивный интерпретатор Python непосредственно из командной строки в оболочке Python. Если вы попытаетесь ввести каждую строку по одной в интерактивную оболочку. Выходные данные программы будут перемешаны с вводимыми вами инструкциями. В этом случае лучше всего ввести программу в редактор. Сохранить введенный код в файл. А затем выполнить программу. Большую часть времени мы используем редактор для ввода и запуска наших программ на Python. Интерактивный интерпретатор наиболее полезен для экспериментов с небольшими фрагментами кода Python.

Примечание для читателя:

Функция print() всегда заканчивается невидимым символом “новой строки” (\n). Так что повторные вызовы print будут печататься на отдельной строке каждый. Чтобы предотвратить печать этого символа новой строки. Вы можете указать. Что он должен заканчиваться пробелом:
print('a'. End='')
print('b'. End='')

Output is:
ab
Или вы можете заканчиваться пробелом:
print('a'. End=' ')
print('b'. End=' ')print('c')

Output is:
a b
Или вы можете заканчиваться пробелом:
print('a'. End=' ')
print('b'. End=' ')
print('c')

Output is:
a b c

изображение

Рис. 19: Первая компьютерная ошибка (Изображение ©Любезно предоставлено Военно-морским центром надводной войны, Дальгрен. Вирджиния, 1988. Коллекция NHHC)

Программирование-это сложный процесс. И поскольку он выполняется людьми. Он часто приводит к ошибкам. Ошибки программирования называются ошибками. А процесс их отслеживания и исправления называется отладкой.

История этого термина восходит к 9 сентября 1947 года. Когда гарвардский компьютер Mark II Aiken Relay вышел из строя. Покопавшись в массивной машине. Чтобы найти причину проблемы. Адмирал Грейс Хоппер. Работавшая в инженерной программе военно-морского флота в Гарварде. Нашла ошибку. Это было настоящее насекомое. Этот инцидент записан в бортовом журнале Хоппера рядом с оскорбительным мотыльком. Приклеенным скотчем к странице бортового журнала: “15:45 Реле № 70 Панель F (мотылек) в ретрансляторе. Первый реальный случай обнаружения ошибки”[7]

В программе могут возникать три типа ошибок: синтаксические ошибки. Ошибки времени выполнения и семантические ошибки. Полезно различать их. Чтобы быстрее отследить.

Синтаксические ошибки

Python может выполнять программу только в том случае. Если она синтаксически корректна; в противном случае процесс завершается неудачей и возвращает сообщение об ошибке. Синтаксис относится к структуре программы и правилам об этой структуре. Например, на английском языке предложение должно начинаться с заглавной буквы и заканчиваться точкой.

это предложение содержит синтаксическую ошибку.

Для большинства читателей несколько синтаксических ошибок не являются существенной проблемой. Поэтому мы можем без проблем читать поэзию Э. Э. Каммингса. Питон не так простителен. Если в вашей программе есть хоть одна синтаксическая ошибка. Python выведет сообщение об ошибке и завершит работу. И вы не сможете запустить свою программу. На ранней стадии вы, вероятно. Потратите много времени на отслеживание синтаксических ошибок. Однако по мере накопления опыта вы будете делать меньше ошибок и быстрее находить их.

Ошибки во время выполнения

Второй тип ошибки-это ошибка времени выполнения. Называемая так потому. Что ошибка не появляется до тех пор. Пока вы не запустите программу. Эти ошибки также называются исключениями. Потому что они обычно указывают на то. Что произошло что-то исключительное (и плохое).

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

Семантические ошибки

Третий тип ошибок-семантические. Если в вашей программе есть семантическая ошибка. Она будет работать успешно. В том смысле. Что компьютер не будет генерировать никаких сообщений об ошибках и завершит работу. Но он не будет делать правильные вещи. Он сделает что — то еще. В частности. Он будет делать то. Что вы ему сказали.

Проблема в том. Что программа. Которую вы написали. — это не та программа. Которую вы хотели написать. Смысл программы (ее семантика) неверен. Идентификация семантических ошибок может быть сложной задачей. Потому что она требует. Чтобы вы работали в обратном направлении. Глядя на выходные данные программы и пытаясь понять. Что она делает. Тестовые примеры, сгенерированные в БЛОКЕ № 1, помогают программистам исправлять семантические ошибки.

Экспериментальная отладка

Одним из самых важных навыков. Которые вы приобретете. Является отладка. Хотя это может быть неприятно. Отладка-одна из самых интеллектуально богатых. Сложных и интересных частей программирования.

В некотором смысле отладка похожа на детективную работу. Вы сталкиваетесь с подсказками. И вы должны сделать вывод о процессах и событиях. Которые привели к результатам. Которые вы видите.

Отладка также похожа на экспериментальную науку. Как только вы поймете. Что происходит не так. Вы измените свою программу и повторите попытку. Если ваша гипотеза была верна. То вы можете предсказать результат модификации. И вы сделаете шаг ближе к рабочей программе. Если ваша гипотеза ошибочна. Вы должны придумать новую.

Для некоторых людей программирование и отладка-это одно и то же. То есть программирование-это процесс постепенной отладки программы. Пока она не сделает то. Что вы хотите. Идея состоит в том. Что вы должны начать с программы. Которая что-то делает. И вносить небольшие изменения. Отлаживая их по ходу. Чтобы у вас всегда была рабочая программа.

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

Комментарии

Комментарии представляют собой любой текст справа от символа # и в основном полезны в качестве заметок для читателя программы.

Например:

print('hello world') # Note that print is a function

ИЛИ

# Note that print is a function
print('hello world')

Используйте как можно больше полезных комментариев в своей программе. Чтобы:

  • объясните предположения
  • объясните важные решения
  • объясните важные детали
  • объясните проблемы. Которые вы пытаетесь решить
  • объясните проблемы. Которые вы пытаетесь преодолеть в своей программе, и т. Д.

Код говорит вам , как, комментарии должны сказать вам, почему.

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

Литеральные константы

Примером литеральной константы является число типа 5, 1.23, или строка типа 'This is a string'или "It's a string!"(строковые литералы должны быть заключены в кавычки).

Он называется буквальным. Потому что он буквален – вы используете его значение буквально. Число 2 всегда представляет себя и ничего больше – это константа. Потому что его значение не может быть изменено. Поэтому все они называются литеральными константами.

Числа

Числа в основном бывают двух типов – целые и плавающие. Примером целого числа является 2, которое является просто целым числом. Примерами чисел с плавающей запятой (или плавающих для краткости) являются 3.23и 7845.322222.

Строки

Строка — это последовательность символов. Строки могут быть одним символом. Одним словом или кучей слов. Вы будете использовать строки во многих программах Python. Которые вы пишете. Обратите внимание на следующее:

Одиночная цитата: Вы можете указать (определить) строки. Используя одинарные кавычки. Такие как 'Quote me on this'. Все пробелы. То есть пробелы и табуляции. Внутри кавычек сохраняются как есть.

Двойные кавычки: Строки в двойных кавычках работают точно так же. Как строки в одинарных кавычках. "What's your name?"Нет никакой разницы в использовании одинарных или двойных кавычек . Просто обязательно используйте соответствующий набор.

Тройные кавычки: Вы можете указать многострочные строки. Используя тройные кавычки- (“””или ”’ ). Вы можете свободно использовать одинарные и двойные кавычки в тройных кавычках. Примером является:

'''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond. James Bond."
'''

Строки неизменны. Это означает. Что после того. Как вы создали строку. Вы не можете ее изменить. Хотя это может показаться плохим. На самом деле это не так. Мы увидим, почему это не является ограничением в различных программах. Которые мы увидим позже.

Переменные

Использование только литеральных констант скоро может стать скучным – нам нужен какой-то способ хранения любой информации и манипулирования ею. Именно здесь на сцену выходят переменные. Переменные – это именно то. Что следует из названия-их значение может варьироваться. То есть вы можете хранить что угодно. Используя переменную. Переменные-это просто части памяти вашего компьютера. Где вы храните некоторую информацию. В отличие от литеральных констант. Вам нужен какой-то метод доступа к этим переменным. И поэтому вы даете им имена.

Одной из самых мощных функций языка программирования является возможность манипулировать переменными. Переменная-это имя. Которое ссылается на значение.

>>> message = "What is today’s date?"
>>> n = 17
>>> pi = 3.14159

Оператор присваивания дает значение переменной:

В этом примере выполняется три назначения. Первый присваивает строковое значение "What is today’s date?"переменной с именем message. Второй присваивает целое число 17 n. А третий присваивает число с плавающей точкой 3.14159 переменной. Называемой pi.

Символ присвоения,=, не следует путать с equals. Который использует символ ==. Оператор присваивания связывает имя в левой части оператора со значением в правой части. Вот почему вы получите ошибку. Если введете:

>>> 17 = n
File "", line 1
SyntaxError: can't assign to literal
Совет: При чтении или написании кода скажите себе “n присваивается 17” или “n получает значение 17”. Не говорите: “n равно 17”.

Распространенный способ представления переменных на бумаге-написать имя со стрелкой. Указывающей на значение переменной. Этот вид диаграммы называется моментальным снимком состояния. Потому что он показывает. В каком состоянии находится каждая из переменных в определенный момент времени. (Думайте об этом как о состоянии ума переменной). На следующей диаграмме показан результат выполнения инструкций присваивания:

сообщение → “Какая сегодня дата?”
n → 17
pi → 3.14159
Если вы попросите интерпретатор вычислить переменную в оболочке Python. Он выдаст значение. Которое в данный момент связано с этой переменной:
>>> message
‘What is today’s date?’
>>> n
17
>>> pi
3.14159

Мы используем переменные в программе. Чтобы “запоминать” вещи. Например текущий счет на футбольном матче. Но переменные — это переменные. Это означает. Что они могут меняться со временем. Как табло на футбольном матче. Вы можете присвоить значение переменной. А затем присвоить другое значение той же переменной. (Это отличается от математики. В математике. Если вы даете Например:

>>> day = "Thursday"
>>> day
'Thursday'
>>> day = "Friday"
>>> day
'Friday'
>>> day = 21
>>> day
21

Вы заметите. Что мы изменили значение day три раза. И в третьем задании мы даже заставили его ссылаться на значение. Которое было другого типа данных.

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

Примечание для читателя:

Есть два общих вариативных жанра. Которые используются в компьютерном программировании. Они настолько регулярно используются. Что имеют особые названия.

аккумулятор: Переменная, используемая в цикле для суммирования или накопления результата.

счетчик: Переменная, используемая для подсчета чего-либо. Обычно инициализируется до нуля. А затем увеличивается.

Наименование идентификатора

Переменные являются примерами идентификаторов. Идентификаторы-это имена. Данные для идентификации чего-либо. Есть некоторые правила которым вы должны следовать для именования идентификаторов:

  • Первый символ идентификатора должен быть буквой алфавита (прописной ASCII или строчный ASCII или символ Unicode) или символом подчеркивания ( _ ).
  • Остальная часть имени идентификатора может состоять из букв (прописных ASCII или строчных ASCII или символов Unicode). Символов подчеркивания ( _ ) или цифр (0-9).
  • Имена идентификаторов чувствительны к регистру. Например, myname и myName-это не одно и то же. Обратите внимание на нижний регистр n в первом и верхний регистр N во втором.
  • Примерами допустимых имен идентификаторов являютсяi:name_2_3. Примерами недопустимых имен идентификаторов являются 2things, this is spaced out, my-nameи >a1b2_c3

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

Python имеет тридцать с чем-то ключевых слов (и время от времени улучшения Python вводят или устраняют одно или два):

and

as

assert

break

class

continue

def

del

elif

else

except

exec

finally

for

from

global

if

import

in

is

lambda

nonlocal

not

or

pass

raise

return

try

while

with

yield

True

False

None

Таблица 2: Ключевые слова Python

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

Программисты обычно выбирают имена для своих переменных. Которые значимы для людей. Читающих программу — они помогают программисту документировать или запоминать. Для чего используется переменная.

Примечание для читателя:
Начинающие иногда путают “значимые для человека читатели” с “значимые для компьютера”. Поэтому они ошибочно подумают. Что потому что они вызвали какую-то переменную averageили pi, он каким-то волшебным образом вычислит среднее значение или волшебным образом узнает. Что переменная pi должна иметь значение. Подобное 3.14159. Нет! Компьютер не понимает. Что вы подразумеваете под переменной.Так вы сможете найти некоторые учебники или учебные пособия. Которые сознательно не выбирать осмысленные имена. Когда они учат новичков — не потому. Что мы не думаю. Что это хорошая привычка. Но так мы пытаемся подчеркнуть. Что вы — программист должен написать программный код для вычисления среднего. И вы должны написать задание заявление. Чтобы дать переменной pi значение. Которое вы хотите иметь.

Вдавливание

Пробелы важны в Python. На самом деле. Пробелы в начале строки важны. Это называется отступом. Ведущие пробелы (пробелы и вкладки) в начале логической строки используются для определения уровня отступа логической строки, который. В свою очередь. Используется для определения группировки операторов.

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

Одна вещь, которую вы должны помнить, — это то. Что неправильный отступ может привести к ошибкам. Например:

i = 5
# Error below! Notice a single space at the start of the line print('Value is', i)
print('I repeat. The value is', i)

Когда вы запускаете эту программу. Вы получаете следующую ошибку:

File "whitespace.py". Line 3
print('Value is', i)

^
IndentationError: unexpected indent

Обратите внимание. Что в начале второй строки есть один пробел. Ошибка, указанная Python. Говорит нам. Что синтаксис программы недействителен. То есть программа была написана неправильно. Это означает. Что вы не можете произвольно запускать новые блоки операторов (за исключением основного блока по умолчанию. Который вы использовали все это время, конечно). Случаи, когда вы можете использовать новые блоки (например. Структуру управления итерацией). Будут подробно описаны в последующих блоках.

Как сделать отступ: Используйте четыре пробела для отступа. Это официальная рекомендация языка Python. Хорошие редакторы (включая IDLE) автоматически сделают это за вас. Убедитесь, что вы используете одинаковое количество пробелов для отступов. Иначе ваша программа не будет работать или будет иметь неожиданное поведение.

Практика: Введите, сохраните и запустите следующую программу,var.py. Используя редактор Python.

# Filename : var.py
i = 5
print(i)
i = i + 1
print(i)
s = '''This is a multi-line string.
This is the second line.'''
print(s)

Выход:

5
6
This is a multi-line string.
This is the second line.

Давайте рассмотрим. Как работает эта программа.

Заявление Python

Объяснение

i = 5

Сначала мы присваиваем переменной i литеральное постоянное значение 5 с помощью оператора присваивания ( = ). Эта строка называется оператором. Потому что она утверждает. Что что-то должно быть сделано. И в этом случае мы связываем имя переменной i со значением 5.

print(i)

Затем мы печатаем значение i с помощью оператора print, который. Что неудивительно. Просто выводит значение переменной на экран

i = i + 1

Здесь мы добавляем 1 к значению. Хранящемуся в i. И сохраняем его обратно в i.

print(i)

Затем мы печатаем его и. Как и ожидалось. Получаем значение 6 .

s = '''This is a multi-line string.
This is the second line.'''

Здесь мы присваиваем литеральную строковую константу переменной s.

print(s)

Затем мы его печатаем.

Большинство операторов (логических строк). Которые вы пишете. Будут содержать выражения. Простой пример выражения 2+3. Выражение может быть разбито на операторы и операнды.

Операторы-это функциональные возможности. Которые что-то делают и могут быть представлены такими символами. Как + или специальными ключевыми словами. Операторам требуются некоторые данные для работы. И такие данные называются операндами. В этом случае 2и 3 являются операндами.

Когда имя переменной появляется на месте операнда. Оно заменяется его значением перед выполнением операции.

Мы кратко рассмотрим операторы и их использование.

Обратите внимание. Что вы можете оценить выражения. Приведенные в примерах. Используя интерпретатор в интерактивном режиме. Например, чтобы проверить выражение 2+3 . Используйте интерактивную подсказку интерпретатора Python в окне оболочки:

>>> 2 + 3
5

>> 3 * 5
15
>>>

Вот краткий обзор доступных операторов:

+ (plus)

Добавляет два объекта

3 + 5 дает 8 .
‘a’ + ‘b’ дает ‘ab’ .

– (минус)

Дает вычитание одного числа из другого; если первый операнд отсутствует. То предполагается. Что он равен нулю.

-5.2 дает отрицательное число
50 – 24 дает 26 .

* (умножить)

Дает умножение двух чисел или возвращает строку. Повторенную столько раз.

2 * 3 дает 6 .
‘ла’ * 3 дает

** (мощность)

Возвращает x в степень y

/ (деление)

Разделите x на y

13/3 дает 4.333333333333333

// (разделение и этаж)

Разделите x на y и округлите ответ до ближайшего целого числа

13 // 3 дает 4
-13 // 3 дает -5

% (modulo)

Возвращает оставшуюся часть деления

13 % 3 дает 1 .
-25,5 % 2,25 дает 1,5 .

Возвращает, является ли x меньше y. Все операторы сравнения возвращают True или False .
Обратите внимание на заглавные буквы этих имен.

5

> (больше, чем)

Возвращает значение x больше чем y

Если оба операнда являются числами. Они сначала преобразуются в общий тип. В противном случае он всегда возвращает False .

Возвращает значение x меньше или равно y

x = 3;
y = 6;
x

>= (больше или равно)

Возвращает значение x больше или равно y

x = 4;
y = 3;

== (равно)

Сравнивает, если объекты равны

x = 2; y = 2; x == y возвращает True
x = ‘str’; y = ‘stR’; x == y возвращает False
x = ‘str’; y = ‘str’; x == y возвращает True

!= (не равно)

Сравнивает, если объекты не равны

x = 2;
y = 3;
x != y возвращает True

not (boolean NOT)

Если x истинно . Он возвращает False . Если x равно False . Он возвращает True .

x = True;
не x возвращает False .

и (логическое И)

x и y возвращает False . Если x равно False. Иначе он возвращает оценку y

x = False; y = True;
x и y возвращают False. Так как x является False.
В этом случае Python не будет вычислять y. Так как он знает. Что левая часть выражения
Это называется оценкой короткого замыкания.

или (логическое ИЛИ)

Если x Истинно . То оно возвращает True. Иначе оно возвращает оценку y

x = True; y = False;
x или y возвращает True .
Оценка короткого замыкания применяется и здесь.

Таблица 3: Операторы Python

Некоторые операторы сравнения работают со строками. Например, оператор + (плюс) работает со строками. Но это не сложение в математическом смысле. Вместо этого он выполняет конкатенацию, что означает соединение строк. Связывая их конец в конец.

Оператор * также работает со строками; он выполняет повторение. Например,'Fun'*3 есть 'FunFunFun'. Один из операндов должен быть строкой. Другой-целым числом.

>>> first = 10
>>> second = 15
>>> print(first + second)
25
>>> first = '100'
>>> second = '150'
>>> print(first + second)
100150

Python не обрабатывает прописные и строчные буквы так. Как это делают люди. Все заглавные буквы стоят перед строчными. Так что слово Зебра стоит перед яблоком. Распространенным способом решения этой проблемы является преобразование строк в стандартный формат. Например все строчные буквы. Перед выполнением сравнения.

Практика № 1

Используйте оболочку Python IDLE для вычисления:

  1. 6 + 4*10
  2. (6 + 4)*10 (Сравните это с предыдущим выражением и обратите внимание. Что Python использует круглые скобки точно так же. Как и в обычной математике. Чтобы определить порядок операций!)
  3. 23.0 в 5-й степени
  4. Положительный корень следующего уравнения: 34*x^2 + 68*x – 510
    Напомним:
    a*x^2+b*x+c
    x1 = ( – b + sqrt ( b*b – 4*a*c ) ) / ( 2*a)

Практикае #2

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

>>> minutes = 645
>>> hours = minutes / 60
>>> hours

Ой! Результат дает нам 10,75, что совсем не то. Что мы ожидали. В Python 3 оператор деления / всегда дает результат с плавающей запятой. Возможно, мы хотели бы знать. Сколько целых часов осталось и сколько минут осталось. Python дает нам два различных варианта оператора деления. Во втором, называемом делением пола. Используется токен //. Его результатом всегда является целое число — и если ему приходится корректировать число. Он всегда перемещает его влево на числовой строке. Так что 6 // 4 дает 1, но -6 // 4 может вас удивить!

Практика№ 3

Попробуйте это:

 >>> 7 / 4
1.75
>>> 7 // 4
1
>>> minutes = 645
>>> hours = minutes // 60
>>> hours
10 

Позаботьтесь о том. Чтобы вы выбрали правильный вкус оператора разделения. Если вы работаете с выражениями. Где вам нужны значения с плавающей запятой. Используйте оператор деления. Который выполняет деление точно.

Если бы у вас было такое выражение , как2 + 3 * 4, сначала выполняется сложение или умножение?

Вспомним из алгебры ПЕМДЫ (скобки. Экспоненты, умножение. Деление, сложение. Вычитание).Это говорит нам. Что умножение должно быть сделано первым и что оператор умножения имеет более высокий приоритет. Чем оператор сложения.

Гораздо лучше использовать круглые скобки для группирования операторов и операндов соответствующим образом. Чтобы явно указать приоритет. Это делает программу более читабельной. Например, 2 + (3 * 4)определенно легче читать 2 + 3 * 4, чем требует знания приоритета оператора.

Есть еще одно преимущество использования скобок – они помогают нам изменить порядок оценки. Например, если вы хотите. Чтобы сложение вычислялось перед умножением в выражении. То вы можете написать что-то вроде (2 + 3) * 4.

Практикае #4

Используйте редактор Python. Чтобы ввести следующий код (сохранить какexpression.py ):

# given the length and width calculate the area and the
# perimeter of a rectangle
length = 5
width = 2
area = length * width
print('Area is', area)
print('Perimeter is', 2 * (length + width))

Выход:

Давайте рассмотрим. Как работает эта программа.

Заявление Python

Объяснение

length = 5

width = 2

lengthИ widthпрямоугольника хранятся в переменных с тем же именем. Каждому из них присваивается целочисленное значение. Мы используем их для вычисления areaи perimeterпрямоугольника с помощью выражений.

area = length * width

print('Area is', area)

Мы сохраняем результат (присваиваем) выражения length * widthв переменнойarea, а затем печатаем его с помощью printфункции.

print('Perimeter is', 2 * (length + width))

В этом операторе print мы непосредственно используем значение выражения 2 * (length + width) в функции print.
Кроме того, обратите внимание. Как Python печатает выходные данные в удобочитаемом формате. Даже если мы не указали пробел между 'Area is'ними и переменную область (добавив запятую. Python знает. Что выходные данные можно разделить на отдельные

Вспомним из нашего предыдущего блока пример диаграммы вход-процесс-выход для алгоритма. Который мы назвали find_max.

Рис. 20: Вход-Процесс-Выход для нахождения наибольшего числа

Мы можем представить любое решение вычислительной задачи. Используя этот шаблон идентификации входных данных (данных. Которые нам даны). А затем общий процесс. Который должен быть завершен. Чтобы получить желаемый выход.

Мы использовали операторы Python. Вызывающие функцию print для отображения строки символов (например. “сообщение”).

print("This is a simple Python program")

Для начала. Встроенная функция print() будет использоваться для печати выходных данных для наших программ.

name = input("Please enter your name: ")

Существует также встроенная функция в Python для получения входных данных от пользователя:

Пример запуска этого скрипта в оболочке Python IDLE вызовет такое окно:

Рис. 21: Использование встроенного функционального входа()

Пользователь программы может ввести имя и нажать кнопку OK (клавиша Enter), и когда это произойдет. Введенный текст возвращается из inputфункции и в этом случае присваивается переменной name.

Даже если вы попросите пользователя ввести свой возраст. Вы получите обратно строку типа "17". Это будет ваша работа. Как программиста. Чтобы преобразовать эту строку в целое число или значение с плавающей запятой.

Здесь мы рассмотрим еще три встроенных функции Pythonint(), float()и str(), которые будут (пытаться) преобразовать их аргументы в типы данных int. Float и str соответственно. Мы называем эти функции преобразователями типов.

Функция int может взять число с плавающей запятой или строку и превратить ее в int. Для чисел с плавающей запятой он отбрасывает десятичную часть числа — процесс. Который мы называем усечением до нуля в числовой строке. Например:

>>> int(3.14)
3
>>> int(3.9999)     # This doesn't round to the closest int!
3
>>> int(3.0)
3
>>> int(-3.999)     # Note that the result is closer to zero
-3
>>> int(minutes / 60)
10
>>> int("2345")     # Parse a string to produce an int
2345
>>> int(17)         # It even works if arg is already an int
17
>>> int("23 bottles")

Этот последний случай преобразования типа не похож на число — чего мы ожидаем?

Traceback (most recent call last):
File "", line 1, in
ValueError: invalid literal for int() with base 10: '23 bottles'

Преобразователь типов float() может превратить целое число. Float или синтаксически законную строку в float:

>>> float(17)
17.0
>>> float("123.45")
123.45

Преобразователь типов str() превращает свой аргумент в строку:

>>> str(17)
'17'
>>> str(123.45)
'123.45'

Если вы не уверены. К какому классу относится значение (т. Е. Не уверены. Является ли значение целым числом. Плавающей точкой или строкой). Python имеет встроенную функцию type. Которая может вам это сказать.

type('hello')

>>> type(29)

>>> num = 89.32
>>> type(num)

Как уже упоминалось в Блоке № 1, Python имеет обширную стандартную библиотеку. Которая представляет собой набор встроенных модулей. Каждый из которых обеспечивает определенную функциональность помимо того. Что входит в “основную” часть Python. Модуль Python — это просто файл. Содержащий код Python. Имя файла диктует имя модуля; например. Файл с именем math.py содержит функции. Доступные из стандартного математического модуля. Мы рассмотрим этот модуль (математику) здесь.

Математический модуль и математические функции

В Python есть математический модуль. Который предоставляет большинство знакомых математических функций. Прежде чем мы сможем использовать модуль. Мы должны импортировать его:

>>>>>> импорт математики

Этот оператор создает объект модуля с именем math. Ниже приведен неполный список функций. Предоставляемых этим модулем.

  • math.trunc(x): Возвращает значение float x. Усеченное до целочисленного значения.
  • math.sqrt(x): Возвращает квадратный корень из x.
  • math.pow(x, y): Возвращает x. Возведенный в степень y.
  • math.degrees(x): Преобразует угол x из радианов в градусы.
  • math.radians(x): Преобразует угол x из градусов в радианы.

Многие математические операции зависят от специальных констант. Также предоставляемых математическим модулем.

  • math.pi: Математическая константа π = 3.141592….
  • math.e: Математическая константа e = 2.718281….

Некоторые примеры использования функций математического модуля (примечание: для этих функций требуется имя библиотеки. За которым следует точка. А затем имя функции):

import math
math.exp(5)                # returns 148.4131591025766
math.e**5                  # returns 148.4131591025765
math.sqrt(144)             # returns 12.0
math.pow(12.5, 2.8)        # returns 1178.5500657314767
math.pow(144, 0.5)         # returns 12.0
math.trunc(1.001)          # returns 1math.trunc(1.999) # returns 1
12*math.pi**2              #returns 18.4352528130723

Дополнительные полезные математические встроенные функции кроме float()того и int()включают:

  • abs(x): Возвращает абсолютное значение числа x..
  • round( x [, n] ): возвращает x. Округленное до n цифр от десятичной точки (n необязательно). Если n опущено. Он возвращает ближайшее целое число к своему входу.

Дополнительные примеры математических функций (нет необходимости импортировать mathмодуль с этими функциями):

round(80.23456, 2) # возвращает 80.23
round(100.000056, 3) # возвращает 100.0
abs(-45) # возвращает 45
abs(100.12) # возвращает 100.12

Мы видели. Как печатать строки и как получить строку в качестве входных данных от пользователя. Мы также видели. Как

>>> word1='fun'
>>> word2='times'
>>> word1 word2
'funtimes'
>>> word1*4'
funfunfunfun'

Обработка данных включает в себя манипулирование строками (которые являются данными). Чтобы произвести что-то (информацию). Которая имеет смысл. Например, нам может быть представлен файл с тысячами паролей. Используемых в частной компании. И мы хотели бы определить. Какие из этих паролей безопасны. А какие нет.

Напомним, что строка-это просто последовательность символов. Чтобы определить. Является ли отдельный пароль безопасным или нет. Мы могли бы посмотреть на длину пароля и отдельные символы в пароле. Ища такие символы. Как заглавные, числовые. Специальные символы и т. Д.

Строки на самом деле представляют собой тип последовательности; последовательность отдельных символов. Оператор индексирования (Python использует квадратные скобки для заключения индекса) выбирает из строки одну символьную подстроку:

>>> pw = "abc123"
>>> char1 = pw[1]
>>> print(char1)
b

Выражение pw[1]выбирает символ номер 1 pwи создает новую строку . Содержащую только этот символ. Переменная char1относится к результату. Когда мы показываем char1, мы получаем второй символ в строке pw, букву “b”. Компьютерщики всегда начинают отсчет с нуля. Буква в нулевой позиции подстрочного "abc123"индекса-это а. Итак, в позиции [1]мы имеем букву

Если мы хотим получить доступ к нулевой букве строки, мы просто помещаем 0 или любое выражение. Которое имеет значение 0, между скобками:

>>> pw = "abc123"
>>> char1 = pw[0]
>>> print(char1)
a

Выражение в скобках называется индексом. Индекс определяет член упорядоченной коллекции. В данном случае коллекцию символов в строке. Индекс указывает. Какой из них вам нужен. Отсюда и название. Это может быть любое целочисленное выражение.

Обратите внимание. Что индексация возвращает строку — Python не имеет специального типа для одного символа. Это просто строка длиной 1.

Метод string len(), применяемый к строке. Возвращает количество символов в строке:

>>> pw = "abc123"
>>> len(pw)
6

В какой-то момент вам может понадобиться разбить большую строку (например. Абзац) на более мелкие куски или строки. Это противоположно конкатенации. Которая объединяет строки в одну.

Для этого вы используете split() метод. То, что он делает. — это разбивает или разбивает строку и добавляет данные в список отдельных

>>> sentence = "Python is an interpreted high-level programming language for general-purpose programming."
>>> sentence.split()
['Python', 'is', 'an'. 'interpreted'. 'high-level'. 'programming'. 'language', 'for'. 'general-purpose'. 'programming.']
>>> len(sentence.split())
10

Если при вызове функции разделитель не определен. То по умолчанию будут использоваться пробелы (как показано выше). Проще говоря. Разделитель-это определенный символ. Который будет помещен между каждой переменной. Например:

>>> numbers = "122,35,09,97,56"
>>> numbers.split(",")
['122', '35', '09', '97'. '56']
>>> len(numbers.split(","))
5

Метод string lower()преобразует все строчные символы в строке в прописные и возвращает их.

>>> title="The Earth, My Butt. And Other Big Round Things"
>>> title.lower()'the earth, my butt. And other big round things'
>>>

Аналогично, метод string upper()преобразует все прописные символы в строке в строчные и возвращает их.

>>> title="Where the wild things are"
>>> title.upper()
'WHERE THE WILD THINGS ARE'
>>>
  • Объясните зависимости между аппаратным и программным обеспечением
  • Опишите форму и функции языков компьютерного программирования
  • Создание, изменение и объяснение компьютерных программ в соответствии с шаблоном ввода/процесса/вывода.
  • Формируйте допустимые идентификаторы и выражения Python.
  • Напишите операторы Python. Чтобы выводить информацию на экран. Присваивать значения переменным и принимать информацию с клавиатуры.
  • Чтение и запись программ. Которые обрабатывают числовые данные и модуль Python math.
  • Чтение и запись программ. Обрабатывающих текстовые данные с помощью встроенных функций и методов.

Отныне мы будем считать. Что в вашей системе установлен Python. Теперь вы должны быть в состоянии писать. Сохранять и запускать программы Python с легкостью.

Теперь, когда вы являетесь пользователем Python. Давайте изучим еще несколько концепций Python.

Мы видели. Как использовать операторы. Операнды и выражения – это основные строительные блоки любой программы.

Далее мы увидим. Как использовать их в наших программах с помощью операторов.

Мы видели. Как использовать три оператора потока управления – if . While и for вместе с их связанными операторами break и continue. Это некоторые из наиболее часто используемых частей Python. И поэтому очень важно освоиться с ними.

  1. Возьмем предложение: All work and no play makes Jack a dull boy. Сохраните каждое слово в отдельной переменной. А затем распечатайте предложение в одной строке с помощью printфункции.
  2. Добавьте скобки к выражению6 * 1 - 2, чтобы изменить его значение с 4на -6.
  3. Формула для вычисления конечной суммы . Если вы зарабатываете сложные проценты. Приведена в Википедии как эта формула для сложных процентов:
    Напишите программу на Python. Которая назначает основную сумму в размере 10000 долларов переменнойP, назначает n значение 12 и назначает rпроцентную ставку 8%. Затем попросите программу подсказать пользователю количество лет t, в течение которых будут накапливаться деньги. Рассчитайте и распечатайте окончательную сумму через tнесколько лет.
  4. Смотришь на часы-ровно 2 часа дня. Вы установили будильник на 51 час. В какое время срабатывает сигнализация? (Подсказка: вы можете считать на пальцах. Но это не то. Что мы ищем. Если у вас есть соблазн посчитать на пальцах. Измените 51 на 5100.)Напишите программу Python. Чтобы решить общую версию вышеуказанной проблемы. Спросите пользователя о времени сейчас (в часах) и попросите количество часов ожидания. Ваша программа должна вывести (распечатать). Какое время будет на часах. Когда сработает будильник.
  5. Напишите программуfind_hypot, которая. Учитывая длину двух сторон прямоугольного треугольника. Возвращает длину гипотенузы. (Подсказка: x ** 0.5 вернет квадратный корень.)
  6. Практика использования оболочки Python IDLE в качестве калькулятора:
    1. Предположим, что цена обложки книги составляет $24,95, но книжные магазины получают скидку 40%. Доставка стоит 3 доллара за первый экземпляр и 75 центов за каждый дополнительный экземпляр. Какова общая оптовая стоимость 60 экземпляров?
    2. Если я выйду из дома в 6:52 утра и пробегу 1 милю в легком темпе (8:15 на милю). Затем 3 мили в темпе (7:12 на милю) и еще 1 милю в легком темпе. В какое время я вернусь домой к завтраку?
  7. Введите в интерактивную оболочку следующее утверждение: этоprintt('What time is it?')синтаксическая ошибка или логическая ошибка?
  8. Предположим. Что математический модуль стандартной библиотеки Python был импортирован. Напишите операторы Python для вычисления квадратного корня из четырех и выведите ответ.
  9. Каково значение переменных num1и num2после выполнения следующих операторов Python?
    1. num = 0
    2. new = 5
    3. num1 = num + new * 2
    4. num2 = num +  new * 2
  10. Что не так со следующим утверждением. Которое пытается присвоить значение десять переменной x?
    1. 10 = x
  11. Классифицируйте каждый из следующих идентификаторов как легальный или нелегальный идентификатор Python:a. fred
    b .if
    c. 2x
    d.-4
    e. sum_total
    f. SumTotal
    g. sumtotal
    h. While
    i. x2
    j. Private
    k. public
    l. $16
    m. xTwo
    n. 10%
    o. a27834
  12. Как значение 2.45 x 10-5 выражается в виде литерала Python?
  13. Учитывая следующее назначение:x = 2: Укажите, что будет печатать каждый из следующих операторов Python.
    a. print(“x”)
    b. print(‘x’)
    c. print(x)
    d. print(“x + 1”)
    e. print(‘x’ + 1)
    f. print(x + 1)
  14. Даны следующие задания:
    i1 = 2
    i2 = 5
    i3 = -3
    d1 = 2,0
    d2 = 5,0
    d3 = -0,5
  15. Оцените каждое из следующих выражений Python.
    1. i1 + i2
    2. i1 / i2
    3. i1 // i2
    4. i2 / i1
    5. i1 * i3
    6. d1 + d2
    7. d1 / d2
    8. d2 / d1
    9. d3 * d1
    10. d1 + i2
    11. i1 / d2
    12. d2 / i1
    13. i2 / d1
    14. i1/i2*d1
  16. Что печатается следующим утверждением:
    #print(5/3)
  17. Рассмотрим следующую программу. Которая содержит некоторые ошибки. Вы можете предположить. Что комментарии внутри программы точно описывают предполагаемое поведение программы.# Получить два числа от пользователя
    n1 = float(input()) # первое число
    Н2 = поплавок(вход()) # второй номер
    # вычислить сумму двух чисел
    печати(Н1 + Н2) # третий
    # вычислить среднее из двух чисел
    печати(Н1+ Н2/2) # Четвертое
    # назначить некоторые переменные
    Д1 = Д2 = 0 # пятым номером
    # вычислить коэффициент
    печать(Н1/Н1) # шестой
    # вычислить товара
    Н1*Н2 = Н1 # седьмой
    # печать результата
    print(d1) # восьмое число Для каждой строки. Указанной в комментариях, укажите. Присутствует ли синтаксическая ошибка. Ошибка времени выполнения или семантическая ошибка. Не все строки содержат ошибку.
  18. Что печатается следующим фрагментом кода?x1 = 2
    x2 = 2
    x1 += 1
    x2 -= 1
    print(x1)
    print(x2)
  19. Учитывая следующие определения:
    х = 3
    у = 5
    и Z = 7evaluate следующих логических выражений:
    х == 3
    х
  20. Учитывая следующие определения:x =3
    y = 3
    b1 = true
    b2 = false
    x == 3
    y
  1. b2
  2. не в1
  3. не в2
  4. b1 и b2
  5. b1 или b2
  6. икс
  7. y
  8. x или y
  9. не у