Как вывести значение выражения на экран компьютера
Перейти к содержимому

Как вывести значение выражения на экран компьютера

  • автор:

Создание выражений

С помощью выражений можно выполнять разнообразные операции с данными. Например, вы можете определить, сколько дней прошло с момента отправки заказа, или объединить содержимое полей FirstName и LastName и поместить результат в поле FullName. Разделы этой статьи содержат пошаговые инструкции по созданию выражений.

В этой статье

Вычисление значений элементов управления в формах и отчетах

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

Итог в отчете

Чтобы вычислить итог, поместите элемент управления «поле» в нижний колонтитул отчета и настройте для свойства ControlSource этого поля следующее выражение:

=Sum([table_field])

В данном случае table_field — это имя поля, содержащего значения промежуточных итогов. Оно может находиться в таблице или запросе. Функция Sum вычисляет итог для всех значений в table_field .

  1. В области навигации щелкните правой кнопкой мыши форму, которую необходимо изменить, и выберите в контекстном меню пункт Режим макета или Конструктор.
  2. Выделите элемент управления, в который необходимо ввести выражение.
  3. Если окно свойств не отображается, нажмите клавишу F4.
  4. Чтобы создать выражение вручную, на вкладке Данные страницы свойств выберите свойство ControlSource (Данные) поля, а затем введите выражение, предварив его знаком равенства ( = ). Например, для вычисления итога, как показано выше, введите =Sum([table_field]) . Вместо элемента table_field укажите действительное имя поля.
  5. Чтобы создать выражение с помощью построителя выражений, нажмите кнопку Сборка

Пример выражения в свойстве

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

Использование выражений в условиях запросов

Вы можете использовать условия, чтобы ограничить результаты запроса. Введите условия в виде выражения, и приложение Access вернет только соответствующие ему строки.

Предположим, вы хотите просмотреть все заказы с датой отгрузки в течение первых трех месяцев 2017 г. Чтобы задать условие, введите следующее выражение в ячейку Условия столбца «Дата и время» в запросе. В нашем примере используется столбец «Дата и время» с именем ShippedDate. Чтобы определить диапазон дат, введите следующее условие:

Between #1/1/2017# And #3/31/2017#

Столбец ДатаИсполнения будет выглядеть подобным образом:

Выражение в строке

Для каждой записи в таблице заказов, для которой значение в столбце ShippedDate попадает в указанный интервал дат, будет создана запись в выходных данных запроса. Обратите внимание: в выражении даты заключаются в знаки решетки ( # ). Значение между знаками решетки трактуется в Access как значение с типом данных «Дата и время». Это означает, что с такими значениями могут производиться соответствующие вычисления, например вычитание одной даты из другой.

  1. В области навигации щелкните правой кнопкой мыши запрос, который необходимо изменить, и выберите в контекстном меню пункт Конструктор.
  2. Выберите ячейку Условия в столбце, для которого необходимо создать условие отбора.
  3. Чтобы создать выражение вручную, введите выражение условия. Не начинайте выражение условия с оператора = .
  4. Чтобы использовать построитель выражений, на вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель

Выражение в диалоговом окне

. Если для редактирования выражения вам требуется больше места, установите курсор в ячейку Условие отбора, а затем нажмите сочетание клавиш SHIFT+F2, чтобы открыть окно Область ввода:

Создание вычисляемого поля в запросе

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

Extended Price: [Quantity] * [Unit Price]

Поскольку выражение начинается с текста Extended Price: , новый столбец получит имя Сумма. Это имя часто называется псевдонимом. Если псевдоним не указан, он будет создан автоматически, например такой: Expr1.

Использование выражения при создании вычисляемого поля в запросе

При выполнении запроса в Access выполняется расчет каждой строки, как показано ниже:

Вычисляемое поле, показанное в режиме таблицы.

  1. В области навигации щелкните правой кнопкой мыши запрос, который необходимо изменить, и выберите в контекстном меню пункт Конструктор.
  2. Выберите ячейку Поле в столбце, в котором необходимо создать вычисляемое поле.
  3. Чтобы создать выражение вручную, просто введите его. Не начинайте выражение условия с оператора = . В начале выражения должно стоять понятное название, за которым следует двоеточие. Например, введите Extended Price: , чтобы задать название в выражении, которое создает вычисляемое поле с именем Extended Price. После двоеточия введите условие для выражения.
  4. Чтобы использовать построитель выражений, на вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель.

Создание вычисляемого поля в таблице

В Access можно создать вычисляемое поле в таблице. Благодаря этому для выполнения расчетов не придется создавать отдельный запрос. Например, если у вас есть таблица, в которой перечислены количество, цена и налоговая ставка для каждой позиции заказа, вы можете добавить вычисляемое поле общей стоимости:

[Quantity]*([UnitPrice]+([UnitPrice]*[TaxRate]))

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

  1. Откройте таблицу, дважды щелкнув ее в области навигации.
  2. Прокрутите таблицу по горизонтали до крайнего правого столбца и нажмите в заголовке столбца кнопку Щелкните, чтобы добавить.
  3. В появившемся списке выберите пункт Вычисляемое поле и укажите тип данных результата. В Access откроется построитель выражений.
  4. Введите формулу вычисления, которую вы хотите использовать для этого поля, например:

[Quantity] * [Unit Price]

Задание значений по умолчанию для поля таблицы

С помощью выражения можно задать для поля таблицы значение по умолчанию, которое Access будет использовать для новых записей, если не предоставлено другое значение. Допустим, вы хотите автоматически вставлять дату и время в поле «Дата_заказа» при добавлении новой записи. Для этого можно использовать следующее выражение:

  1. В области навигации дважды щелкните таблицу, которую нужно изменить. Таблица откроется в режиме таблицы.
  2. Выберите поле, которое требуется изменить.
  3. На ленте щелкните Поля таблицы, а затем в группе Свойства выберите значение по умолчанию. В Access откроется построитель выражений.
  4. Введите выражение, начинающееся со знака равенства (=).

Примечание. При связывании элемента управления с полем таблицы действует следующее правило: если для элемента управления и для поля заданы значения по умолчанию, значение по умолчанию элемента управления имеет приоритет.

Задание значений по умолчанию для элементов управления

Другим объектом, где часто применяются выражения, является свойство Значение по умолчанию элемента управления. Свойство Значение по умолчанию элемента управления аналогично свойству Значение по умолчанию поля в таблице. Например, чтобы использовать текущую дату в качестве значения по умолчанию для текстового поля, вы можете указать следующее выражение:

Date()

В этом выражении используется функция Date, которая возвращает текущую дату, но не время. Если текстовое поле привязано к полю таблицы, которое имеет значение по умолчанию, то значение по умолчанию элемента управления будет иметь приоритет перед значением по умолчанию поля таблицы. Часто имеет смысл настроить свойство Значение по умолчанию для поля таблицы. Если в этом случае к одному и полю таблицы привязано несколько элементов управления в разных формах, каждый из них будет иметь одно значение по умолчанию, и ввод данных во всех формах будет согласованным.

  1. В области навигации щелкните правой кнопкой мыши форму или отчет, которые необходимо изменить, и выберите в контекстном меню пункт Конструктор или Режим макета.
  2. Выделите элемент управления, который необходимо изменить.
  3. Если окно свойств не отображается, нажмите клавишу F4.
  4. На вкладке Все окна свойств перейдите к ячейке свойства Значение по умолчанию.
  5. Введите выражение или нажмите кнопку Сборка

Добавление правила проверки в поле таблицы или запись

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

Предположим, что в таблице Inventory имеется поле Units On Hand и требуется задать условие, разрешающее пользователям вводить только неотрицательные значения. Иначе говоря, количество товара никогда не может быть отрицательным. Это можно сделать, указав для поля Units On Hand следующее правило проверки:

ПРОЦЕДУРА: ввод правила проверки для поля или записи

  1. В области навигации дважды щелкните нужную таблицу. Таблица откроется в режиме таблицы.
  2. При вводе условия на значение поля выделите поле, которое необходимо изменить.
  3. На ленте щелкните Поля таблицы, а затем в группе Проверка полей щелкните Проверка, а затем — Правило проверки поля или Правило проверки. В Access откроется построитель выражений.
  4. Начните вводить необходимые условия. Например, для условия на значение поля, требующего ввода неотрицательных значений, введите следующее выражение:

Выражения правил проверки являются логическими, т. е. их результатом может быть только значение True или False . Если значение не равно True , Access не сохраняет вводимые данные и выводит сообщение об ошибке. Если в этом примере ввести в поле Units On Hand отрицательное значение, правило проверки выдаст результат False и значение будет отклонено. Если вы не ввели сообщение об ошибке, как описано в предыдущем разделе, Access отобразит собственное сообщение, в котором указано, что введенное значение запрещено правилом проверки для поля.

ПРОЦЕДУРА: ввод сообщения проверки правильности

Чтобы сделать базу данных более удобной в использовании, можно задать собственные сообщения проверки правильности. Эти сообщения будут использоваться вместо стандартных сообщений, выводимых приложением Access, когда данные не соответствуют условию. В сообщение можно включить сведения, помогающие пользователю ввести правильные данные, например «Значение в поле Units On Hand не может быть отрицательным».

  1. В области навигации дважды щелкните таблицу, которую нужно изменить. Таблица откроется в режиме таблицы.
  2. При создании сообщения для условия на значение поля выделите соответствующее поле.
  3. На ленте щелкните Поля таблицы, а затем в группе Проверка полей щелкните Проверка, а затем — Сообщение проверки поля или Сообщение проверки.
  4. В диалоговом окне Введите сообщение о проверке введите сообщение, которое будет выводиться, если данные не соответствуют условию на значение, и нажмите кнопку ОК.

Добавление правила проверки в элемент управления

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

Условие на значение

Сообщение об ошибке

Невозможно ввести дату ранее 01.01.2017.

Если вы попытаетесь ввести дату раньше 1/1/2017, появится сообщение, в котором отображается текст в свойстве Текст проверки . Если текст не был введен в поле свойства Текст проверки , Access отображает универсальное сообщение. После нажатия кнопки ОК фокус ввода вернется в текстовое поле.

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

  1. В области навигации щелкните правой кнопкой мыши форму или отчет, которые необходимо изменить, и выберите в контекстном меню пункт Конструктор или Режим макета.
  2. Щелкните правой кнопкой мыши элемент управления, который требуется изменить, и выберите в контекстном меню пункт Свойства. Будет отображено окно свойств элемента управления.
  3. На вкладке Все выберите ячейку свойства Validation Rule (Правило проверки).
  4. Введите выражение или нажмите кнопку Сборка

Группировка и сортировка данных в отчетах

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

Группировка — это процедура суммирования столбцов с одинаковыми значениями. Например, пусть в базе данных хранятся сведения о продажах для офисов в разных городах, а один из отчетов этой базы данных называется «Продажи по городам». Запрос, который обеспечивает данные для этого отчета, группирует их по названию города. Такого рода группировка облегчает восприятие и понимание информации.

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

ПРОЦЕДУРА: добавление группировки и сортировки в отчет

Выбор параметра выражения в области

  1. В области навигации щелкните правой кнопкой мыши отчет, который необходимо изменить, и выберите в контекстном меню пункт Режим макета или Конструктор.
  2. На ленте щелкните Конструктор отчета, а затем в группе Группирование & итоги щелкните Группировать& Сортировка. Ниже отчета появится область Группировка, сортировка и итоги.
  3. Чтобы добавить к отчету уровень группировки, нажмите Добавить группировку.
  4. Чтобы добавить к отчету порядок сортировки, нажмите Добавить сортировку. В области появится новый уровень группировки или порядок сортировки, а также список полей с данными для этого отчета. На приведенном ниже рисунке показан типичный новый уровень группировки (по полю «Категория») и порядок сортировки (по полю «Производитель»), а также список доступных полей для группировки и сортировки.

ПРОЦЕДУРА: добавление выражения в существующую группировку или сортировку

  1. В области навигации щелкните правой кнопкой мыши отчет, который необходимо изменить, и выберите в контекстном меню пункт Режим макета или Конструктор.
  2. Выберите уровень группировки или порядок сортировки, который требуется изменить.
  3. Щелкните стрелку вниз рядом с пунктом Группировка (уровни группировки) или Сортировка (порядок сортировки). Появится список доступных полей
  4. В нижней части этого списка нажмите выражение, чтобы открыть построитель выражений.
  5. Введите выражение в поле выражения (верхнем поле) построителя выражений. Убедитесь, что выражение начинается с оператора равенства (=).

Управление запуском макрокоманд

В некоторых случаях выполнять макрокоманду или набор макрокоманд в макросе нужно только в том случае, если выполнено определенное условие. Предположим, необходимо, чтобы макрокоманда выполнялась только в том случае, если значение в поле не меньше 10. Для этого в блоке Если макроса можно задать соответствующее условие с помощью выражения.

Например, допустим, что текстовое поле называется «Позиции». Выражение для условия будет выглядеть следующим образом:

[Items]>=10

Выражение в блоке

  1. В области навигации щелкните правой кнопкой мыши макрос, который необходимо изменить, и выберите в контекстном меню пункт Конструктор.
  2. Перейдите к блоку Если, который требуется изменить, или добавьте блок Если из области «Каталог макрокоманд».
  3. Щелкните верхнюю строку блока Если.
  4. Введите условное выражение в поле или нажмите кнопку Сборка

Можно ввести только логическое выражение, которое принимает значения True или False . Макрокоманды внутри блока Если будут выполняться только в том случае, если условие примет значение True .

Ввод и вывод данных

Мы уже встречались с функцией print() . Она отвечает за вывод данных, по-умолчанию на экран. Если код содержится в файле, то без нее не обойтись. В интерактивном режиме в ряде случаев можно обойтись без нее.

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

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

Можно сказать, что программа – это открытая система, которая обменивается чем-либо с внешней для нее средой. Если живой организм в основном обменивается веществом и энергией, то программа – данными, информацией.

Вывод данных. Функция print()

Что такое функция в программировании, узнаем позже. Пока будем считать, что print() – это такая команда языка Python, которая выводит то, что в ее скобках на экран.

>>> print(1032) 1032 >>> print(2.34) 2.34 >>> print("Hello") Hello 

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

>>> print("a:", 1) a: 1 >>> one = 1 >>> two = 2 >>> three = 3 >>> print(one, two, three) 1 2 3 

Можно передавать в функцию print() как непосредственно литералы (в данном случае «a:» и 1), так и переменные, вместо которых будут выведены их значения. Аргументы функции (то, что в скобках), разделяются между собой запятыми. В выводе вместо запятых значения разделены пробелом.

Если в скобках стоит выражение, то сначала оно выполняется, после чего print() уже выводит результат данного выражения:

>>> print("hello" + " " + "world") hello world >>> print(10 - 2.5/2) 8.75 

В print() предусмотрены дополнительные параметры. Например, через параметр sep можно указать отличный от пробела разделитель строк:

>>> print("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", sep="-") Mon-Tue-Wed-Thu-Fri-Sat-Sun >>> print(1, 2, 3, sep="//") 1//2//3 

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

>>> print(10, end="") 10>>> 

Обычно end используется не в интерактивном режиме, а в скриптах, когда несколько выводов подряд надо разделить не переходом на новую строку, а, скажем, запятыми. Сам переход на новую строку обозначается символом ‘\n’. Если присвоить это значение параметру end , то никаких изменений в работе функции print вы не увидите, так как это значение и так присвоено по-умолчанию:

>>> print(10, end='\n') 10 >>> 

Однако, если надо отступить на одну дополнительную строку после вывода, то можно сделать так:

>>> print(10, end='\n\n') 10 >>> 

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

Форматирование может выполняться в так называемом старом стиле или с помощью строкового метода format . Старый стиль также называют Си-стилем, так как он схож с тем, как происходит вывод на экран в языке C. Рассмотрим пример:

>>> pupil = "Ben" >>> old = 16 >>> grade = 9.2 >>> print("It's %s, %d. Level: %f" % (pupil, old, grade)) It's Ben, 16. Level: 9.200000 

Здесь вместо трех комбинаций символов %s , %d , %f подставляются значения переменных pupil , old , grade . Буквы s , d , f обозначают типы данных – строку, целое число, вещественное число. Если бы требовалось подставить три строки, то во всех случаях использовалось бы сочетание %s .

Хотя в качестве значения переменной grade было указано число 9.2, на экран оно вывелось с дополнительными нулями. Чтобы указать, сколько требуется знаков после запятой, надо перед f поставить точку, после нее указать желаемое количество знаков в дробной части:

>>> print("It's %s, %d. Level: %.1f" % (pupil, old, grade)) It's Ben, 16. Level: 9.2 

Теперь посмотрим на метод format() :

>>> print("This is a . It's .".format("ball", "red")) This is a ball. It's red. >>> >>> print("This is a . It's .".format("white", "cat")) This is a cat. It's white. >>> >>> print("This is a . It's  .".format("a", "number", 1)) This is a 1. It's a number. 

В строке в фигурных скобках указаны номера данных, которые будут сюда подставлены. Далее к строке применяется метод format() . В его скобках указываются сами данные (можно использовать переменные). На нулевое место подставится первый аргумент метода format() , на место с номером 1 – второй и т. д.

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

В новых релизах Питона появился третий способ создания форматированных строк – f-строки. Перед их открывающей кавычкой прописывается буква f . В самой строке внутри фигурных скобок записываются выражения на Python, которые исполняются, когда интерпретатор преобразует строку-шаблон в обычную.

>>> a = 10 >>> b = 1.33 >>> c = 'Box' >>> print(f'qty - a:5>, goods - c>') qty - 10, goods - Box >>> print(f'price - b + 0.2:.1f>') price - 1.5 

В примере число 5 после переменной a обозначает количество знакомест, отводимых под вывод значения переменной. В выражении b + 0.2:.1f сначала выполняется сложение, после этого значение округляется до одного знака после запятой.

Ввод данных. Функция input()

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

Если в интерактивном режиме ввести команду input() , то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter или просто нажмете Enter . Если вы что-то ввели, это сразу же отобразиться на экране:

>>> input() Yes! 'Yes!' 

Функция input() передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:

>>> answer = input() No, it is not. 

В данном случае строка сохраняется в переменной answer , и при желании мы можем вывести ее значение на экран:

>>> answer 'No, it is not.' 

При использовании функции print() кавычки в выводе опускаются:

>>> print(answer) No, it is not. 

Куда интересней использовать функцию input() в скриптах – файлах с кодом. Рассмотрим такую программу:

name_user = input() city_user = input() print(f'Вас зовут name_user>. Ваш город city_user>') 

При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным name_user и city_user . После этого значения этих переменных выводятся на экран с помощью форматированного вывода. Пример выполнения скрипта:

Арнольд Питонск Вас зовут Арнольд. Ваш город Питонск 

Эта программа далека от совершенства. Откуда пользователю знать, что от него хотят? Чтобы не вводить человека в замешательство, для функции input предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input() . Усовершенствованная программа может выглядеть так (сразу под ней пример ее выполнения):

name_user = input('Ваше имя: ') city_user = input('Ваш город: ') print(f'Вас зовут name_user>. Ваш город city_user>') 
Ваше имя: Серый Ваш город: Белый Вас зовут Серый. Ваш город Белый 

Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input() все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов.

qty = input("Сколько апельсинов? ") price = input("Цена одного? ") qty = int(qty) price = float(price) summa = qty * price print("Заплатите", summa, "руб.") 
Сколько апельсинов? 5 Цена одного? 35.80 Заплатите 179.0 руб. 

В данном случае с помощью функций int() и float() строковые значения переменных qty и price преобразуются соответственно в целое число и вещественное число. После этого новые численные значения присваиваются тем же переменным.

Программный код можно сократить, если преобразование типов выполнить в тех же строках кода, где вызывается функция input() :

qty = int(input("Сколько апельсинов? ")) price = float(input("Цена одного апельсина? ")) summa = qty * price print("Заплатите", summa, "руб.") 

Сначала выполняется функция input() . Она возвращает строку, которую функция int() или float() сразу преобразует в число. Только после этого происходит присваивание переменной, то есть она сразу получает численное значение.

Практическая работа

  1. Напишите программу (файл user.py ), которая запрашивала бы у пользователя:
    — его имя (например, «What is your name?»)
    — возраст («How old are you?»)
    — место жительства («Where are you live?»)
    После этого выводила бы три строки:
    «This is имя »
    «It is возраст »
    «(S)he live in место_жительства »
    Вместо имя , возраст , место_жительства должны быть данные, введенные пользователем. Примечание: можно писать фразы на русском языке, но если вы планируете стать профессиональным программистом, привыкайте к английскому.
  2. Напишите программу (файл arithmetic.py ), которая предлагала бы пользователю решить пример 4 * 100 — 54. Потом выводила бы на экран правильный ответ и ответ пользователя. Подумайте, нужно ли здесь преобразовывать строку в число.
  3. Запросите у пользователя четыре числа. Отдельно сложите первые два и отдельно вторые два. Разделите первую сумму на вторую. Выведите результат на экран так, чтобы ответ содержал две цифры после запятой.

Примеры решения и дополнительные уроки в pdf-версии курса

X Скрыть Наверх

Python. Введение в программирование

Как вывести значение выражения на экран компьютера

Python 3 — это современный язык, на котором просто и приятно писать программы.

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

print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # две звёздочки означают возведение в степень print(37 / 3) # один слэш — это деление с ответом-дробью print(37 // 3) # два слэша считают частное от деления нацело # это как операция div в других языках print(37 % 3) # процент считает остаток от деления нацело # это как операция mod в других языках

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

Вот программа, которая считывает имя пользователя и приветствует его:

Пётр
print('Как вас зовут?') name = input() # считываем строку и кладём её в переменную name print('Здравствуйте, ' + name + '!')

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

Попробуем написать программу, которая считывает два числа и выводит их сумму. Для этого считаем два числа и сохраним их в переменные a и b , пользуясь оператором присваивания = . Слева от оператора присваивания в программах на Питоне ставится имя переменной — например, строка из латинских букв. Справа от оператора присваивания ставится любое выражение. Имя станет указывать на результат вычисления выражения. Проиграйте эту программу и посмотрите на результаты её работы:

a = input() b = input() s = a + b print(s)

Мы видим, что программа выводит 57 , хотя в реальной жизни 5 + 7 будет 12 . Это произошло потому, что Питон в третьей строчке «сложил» две строки, а не два числа. В Питоне две строки складываются так: к первой строке приписывается вторая.

Обратите внимание, что в визуализаторе содержимое переменных a и b заключено в кавычки. Это означает, что в a и b лежат строки, а не числа.

В Питоне все данные называются объектами. Число 2 представляется объектом «число 2», строка ‘hello’ – это объект «строка ‘hello’ ».

Каждый объект относится к какому-то типу. Строки хранятся в объектах типа str , целые числа хранятся в объектах типа int , дробные числа (вещественные числа) — в объектах типа float . Тип объекта определяет, какие действия можно делать с объектами этого типа. Например, если в переменных first и second лежат объекты типа int , то их можно перемножить, а если в них лежат объекты типа str , то их перемножить нельзя:

first = 5 second = 7 print(first * second) first = '5' second = '7' print(first * second)

Чтобы преобразовать строку из цифр в целое число, воспользуемся функцией int() . Например, int(’23’) вернет число 23 .

Вот пример правильной программы, которая считывает два числа и выводит их сумму:

a = int(input()) b = int(input()) s = a + b print(s)

Операторы и выражения¶

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

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

Операторы¶

Кратко рассмотрим операторы и их применение:

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

1 2 3 4
>>> 2 + 3 5 >>> 3 * 5 15 

Операторы и их применение

Оператор Название Объяснение Примеры
+ Сложение Суммирует два объекта 3 + 5 даст 8 ;
‘a’ + ‘b’ даст ‘ab’
Вычитание Даёт разность двух чисел; если первый операнд отсутствует, он считается равным нулю -5.2 даст отрицательное число, а 50 — 24 даст 26 .
* Умножение Даёт произведение двух чисел или возвращает строку, повторённую заданное число раз. 2 * 3 даст 6 .
‘la’ * 3 даст ‘lalala’ .
** Возведение Возвращает число х , возведённое в степень y 3 ** 4 даст 81 (т. е. 3 * 3 * 3 * 3 )
/ Деление Возвращает частное от деления x на y 4 / 3 даст 1.3333333333333333 .
// Целочисленное деление Возвращает неполное частное от деления 4 // 3 даст 1 . -4 // 3 даст -2 .
% Деление по модулю Возвращает остаток от деления 8 % 3 даст 2 .
-25.5 % 2.25 даст 1.5 .
Сдвиг влево Сдвигает биты числа влево на заданное количество позиций. (Любое число в памяти компьютера представлено в виде битов — или двоичных чисел, т. е. 0 и 1 ) 2
>> Сдвиг вправо Сдвигает биты числа вправо на заданное число позиций. 11 >> 1 даст 5 . В двоичном виде 11 представляется как 1011 , что будучи смещённым на 1 бит вправо, даёт 101 , а это, в свою очередь, не что иное как десятичное 5
& Побитовое И Побитовая операция И над числами 5 & 3 даёт 1 .
| Побитовое ИЛИ Побитовая операция ИЛИ над числами 5 | 3 даёт 7
^ Побитовое ИСКЛЮЧИТЕЛЬНО ИЛИ Побитовая операция ИСКЛЮЧИТЕЛЬНО ИЛИ 5 ^ 3 даёт 6
~ Побитовое НЕ Побитовая операция НЕ для числа x соответствует -(x+1) ~5 даёт -6 .
Меньше Определяет, верно ли, что x меньше y . Все операторы сравнения возвращают True или False 1 . Обратите внимание на заглавные буквы в этих словах. 5 < 3 даст False , а 3 < 5 даст True . Можно составлять произвольные цепочки сравнений: 3 < 5 < 7 даёт True .
> Больше Определяет, верно ли, что x больше y 5 > 3 даёт True . Если оба операнда — числа, то перед сравнением они оба преобразуются к одинаковому типу. В противном случае всегда возвращается False .
Меньше или равно Определяет, верно ли, что x меньше или равно y x = 3; y = 6; x
>= Больше или равно Определяет, верно ли, что x больше или равно y x = 4; y = 3; x >= 3 даёт True .
== Равно Проверяет, одинаковы ли объекты 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 Логическое НЕ Если x равно True , оператор вернёт False . Если же x равно False , получим True . x = True; not x даёт False .
and Логическое И x and y даёт False , если x равно False , в противном случае возвращает значение y x = False; y = True; x and y возвращает False , поскольку x равно False . В этом случае Python не станет проверять значение y , так как уже знает, что левая часть выражения ‘and’ равняется False , что подразумевает, что и всё выражение в целом будет равно False , независимо от значений всех остальных операндов. Это называется укороченной оценкой булевых (логических) выражений.
or Логическое ИЛИ Если x равно True , в результате получим True , в противном случае получим значение y x = True; y = False; x or y даёт True . Здесь также может производиться укороченная оценка выражений.

Краткая запись математических операций и присваивания¶

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

Вы можете записать:

a = 2; a = a * 3 
a = 2; a *= 3 

Обратите внимание, что выражения вида » переменная = переменная операция выражение » принимает вид » переменная операция = выражение «.

Порядок вычисления¶

Если имеется выражение вида 2 + 3 * 4 , что производится раньше: сложение или умножение? Школьный курс математики говорит нам, что умножение должно производиться в первую очередь. Это означает, что оператор умножения имеет более высокий приоритет, чем оператор сложения.

Следующая таблица показывает приоритет операторов в Python, начиная с самого низкого (самое слабое связывание) и до самого высокого (самое сильное связывание). Это означает, что в любом выражении Python сперва вычисляет операторы и выражения, расположенные внизу таблицы, а затем операторы выше по таблице.

Эта таблица взята из Справочника по языку Python (англ.) и приводится здесь для полноты описания. На практике лучше использовать скобки для группировки операторов и операндов, чтобы в явном виде указать порядок вычисления выражений. Заодно это облегчит чтение программы. Более подробно см. в разделе Изменение порядка вычисления ниже.

Приоритет операторов

Оператор Описание
lambda лямбда-выражение
or Логическое «ИЛИ»
and Логическое «И»
not x Логическое «НЕ»
in , not in Проверка принадлежности
is , is not Проверка тождественности
< , , >= , != , == Сравнения
| Побитовое «ИЛИ»
^ Побитовое «ИСКЛЮЧИТЕЛЬНО ИЛИ»
& Побитовое «И»
> Сдвиги
+ , — Сложение и вычитание
* , / , // , % Умножение, деление, целочисленное деление и остаток от деления
+x , -x Положительное, отрицательное
~x Побитовое НЕ
** Возведение в степень
x.attribute Ссылка на атрибут
x[индекс] Обращение по индексу
x[индекс1:индекс2] Вырезка
f(аргументы . ) Вызов функции
(выражения, . ) Связка или кортеж 2
[выражения, . ] Список
Словарь

Операторы, о которых мы не упомянули, будут объяснены в дальнейших главах.

В этой таблице операторы с равным приоритетом расположены в одной строке. Например, + и — имеют равный приоритет.

Изменение порядка вычисления¶

Для облегчения чтения выражений можно использовать скобки. Например, 2 + (3 * 4) определённо легче понять, чем 2 + 3 * 4 , которое требует знания приоритета операторов. Как и всё остальное, скобки нужно использовать разумно (не перестарайтесь) и избегать излишних, как в (2 + (3 * 4)) .

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

Ассоциативность¶

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

Выражения¶

Пример (сохраните как expression.py ):

1 2 3 4 5 6
length = 5 breadth = 2 area = length * breadth print('Площадь равна', area) print('Периметр равен', 2 * (length + breadth)) 

Вывод:

1 2 3
$ python expression.py Площадь равна 10 Периметр равен 14 

Как это работает:

Длина и ширина прямоугольника хранятся в переменных length и breadth соответственно. Мы используем их для вычисления периметра и площади прямоугольника при помощи выражений. Результат выражения length * breadth сохраняется в переменной area , после чего выводится на экран функцией print . Во втором случае мы напрямую подставляем значение выражения 2 * (length + breadth) в функцию print .

Также обратите внимание, как Python «красиво печатает» результат. Несмотря на то, что мы не указали пробела между ‘Площадь равна’ и переменной area , Python подставляет его за нас, чтобы получить красивый и понятный вывод. Программа же остаётся при этом легкочитаемой (поскольку нам не нужно заботиться о пробелах между строками, которые мы выводим). Это пример того, как Python облегчает жизнь программисту.

Резюме¶

Мы увидели, как пользоваться операторами, операндами и выражениями. Это основные строительные блоки любой программы. Далее мы увидим, как это применить на практике.

  1. «True» — англ. «Верно (Правда)»; «False» — англ. «Ошибочно (Ложь)». (прим. перев.) ↩
  2. «tuple» — англ. «кортеж» (прим. перев.) ↩

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *