Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чаплыгин А.Н. Учимся програмировать вместе с Пи...doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

§2.5. Выражения

В первой главе мы уже сталкивались с понятием выражения в общем виде и использовали их в программе. Давайте дадим определение этого термина. Выражение - это последовательность синтаксических единиц, описывающая элементарное действие на языке программирования. Например, print "Hello world!" и message = п являются выражениями.

Когда вы набираете выражение в командной строке, интерпретатор выполняет его и выводит результат, если таковой имеется. Результатом выражения print "Hello world! " является строка: Hello world!. Выражение присваивания ничего не выводит.

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

print 1 х = 2 print x

Этот скрипт выведет следующее:

1

2 И снова выражение присваивания не порождает никакого вывода.

§2.6. Выполнение выражений

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

>» 1 + 1

2

Значение само по себе рассматривается как выражение, так же как и переменная:

28

Ревизия: 170

Переменные, операции и выражения

>» 17

17

>» х = 2

>» х

2

Но выполнение и вывод результата выполнения выражения не совсем то же самое:

>» message = "Hello world!" >» message "Hello world!" >» print message Hello world!

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

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

17

3.2

"Hello, World!"

1 + 1

Упражнение. Измените скрипт из предыдущего примера так, чтобы он вывел значения всех четырех выражений.

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

>» 1.2 5 + 1

2.25

>» print _

2.25

>» 5 + _

7.25

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

29

Ревизия: 170

Переменные, операции и выражения

§2.7. Операторы и операнды

Операторами называют специальные символы (или последовательности символов), обозначающие некоторые операции. Например, знаком + обозначают операцию сложения, а знаком * - умножение. Значения, над которыми выполняется операция, называют операндами.

Все нижеследующие выражения, с точки зрения Питона, корректны:

20 + 32 hour-1 hour*60+minute minute/60 5**2 (5 + 9)* (15-7)

Значения большинства из них понять нетрудно. Значения символов +, -, * и / в Питоне такие же, как в математике. Скобки используются для группировки операций, а двумя звездочками (**) обозначается операция возведения в степень.

Если операндом является переменная, то перед вычислением выражения производится подстановка на ее место значения, на которое указывает эта переменная.

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

>» minute = 59

>» minute/60

0

Значение переменной minute равно 5 9; результат деления 5 9 на 60 должен быть 0.98333, а не 0. Причиной этого несоответствия является то, что Питон выполняет целочисленное деление.

Когда оба операнда - целые числа, и Питон считает, что результат тоже должен быть целым. Поэтому целочисленное деление всегда отбрасывает дробную часть.

Как получить дробный результат? Достаточно принудительно преобразовать один из операндов в дробное число:

>» minute = 59

>» float (minute) / 60

0.983333333333

Другой вариант:

>»

minute

=

59

>»

minute

/

60

0

0.983333333333

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