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

Операторы

Операторы — это символы, которые сообщают интерпретатору Python выполнить некоторую математическую или логическую операцию. Ниже приведены несколько основных примеров математических операторов:

>>> 2 + 3
5
>>> 23  3
20
>>> 22.0 / 12
1.8333333333333333

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

>>> 14 % 3
2

Пример целочисленной арифметики

Код

#!/usr/bin/env python3
days = int(input("Enter days: "))
months = days / 30
days = days % 30
print("Months = %d Days = %d" % (months, days))

Вывод

$ ./integer.py
Enter days: 265
Months = 8 Days = 25

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

#!/usr/bin/env python3
days = int(input("Enter days: "))
print("Months = %d Days = %d" % (divmod(days, 30)))

Функция divmod(num1, num2) возвращает два значения: первое — это деление num1 на num2, а второе — остаток от деления num1 на num2.

Относи́тельные опера́торы

Вы можете использовать следующие операторы как относи́тельные опера́торы

Относи́тельные опера́торы

Опера́торЗначе́ние
<Меньше чем
<=Меньше или равно
>Больше чем
>=Больше или равно
==Равно
!=Не равно

Некоторые примеры

>>> 1 < 2
True
>>> 3 > 34
False
>>> 23 == 45
False
>>> 34 != 323
True

// оператор даёт результат целочисленного деления

>>> 4.0 // 3
1.0
>>> 4.0 / 3
1.3333333333333333

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

Вы можете использовать следующие операторы как операторы сравнения

ОператорЗначение
<Меньше чем
<=Меньше или равно
>Больше чем
>=Больше или равно
==Равно
!=Не равно

Некоторые примеры

>>> 1 < 2
True
>>> 3 > 34
False
>>> 23 == 45
False
>>> 34 != 323
True

// оператор дает результат целочисленного деления

>>> 4.0 // 3
1.0
>>> 4.0 / 3
1.3333333333333333

Логические операторы

Для выполнения логического И, ИЛИ мы используем ключевые слова and, or. x and y возвращает False, если x является False, иначе возвращается результат вычисления y. Если x является True, возвращается True.

>>> 1 and 4
4
>>> 1 or 4
1
>>> -1 or 4
-1
>>> 0 or 4
4

Сокращённый оператор

x op = expression — это синтаксис для сокращённых операторов. Он будет вычисляться как x = x op expression. Несколько примеров:

>>> a = 12
>>> a += 13
>>> a
25
>>> a /= 3
>>> a
8
>>> a += (26 * 32)
>>> a
840

Пример shorthand.py

#!/usr/bin/env python3
N = 100
a = 2
while a < N:
    print("%d" % a)
    a *= a

Результат выполнения

$ ./shorthand.py
2
4
16

Выражения

Обычно при написании выражений мы ставим пробелы до и после каждого оператора, чтобы код стал более читаемым, например:

a = 234 * (45 - 56.0 / 34)

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

#!/usr/bin/env python3
a = 9
b = 12
c = 3
x = a - b / 3 + c * 2 - 1
y = a - b / (3 + c) * (2 - 1)
z = a - (b / (3 + c) * 2) - 1
print ("X = ", x)
print ("Y = ", y)
print ("Z = ", z)

Результат выполнения:

$ ./evaluationexp.py
X =  10
Y =  7
Z =  4

Сначала вычисляется x. Шаги вычисления выглядят следующим образом:

9 - 12 / 3 + 3 * 2 -1
9 - 4 + 3 * 2 - 1
9 - 4 + 6 - 1
5 + 6 - 1
11 - 1
10

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

Преобразования Типов

Мы должны выполнять преобразования типов вручную. Например

float(string) -> значение с плавающей точкой
int(string) -> целочисленное значение
str(integer) или str(float) -> строковое представление
>>> a = 8.126768
>>> str(a)
'8.126768'

evaluateequ.py

Это программа для вычисления ряда 1/x+1/(x+1)+1/(x+2)+ … +1/n до n, в нашем случае x = 1 и n = 10

#!/usr/bin/env python3
sum = 0.0
for i in range(1, 11):
    sum += 1.0 / i
    print("%2d %6.4f" % (i , sum))

Вывод

$ ./evaluateequ.py
1 1.0000
2 1.5000
3 1.8333
4 2.0833
5 2.2833
6 2.4500
7 2.5929
8 2.7179
9 2.8290
10 2.9290

В строке sum += 1.0 / i на самом деле происходит sum = sum + 1.0 / i.

quadraticequation.py

Это программа для вычисления квадратного уравнения

#!/usr/bin/env python
import math
a = int(input("Enter value of a: "))
b = int(input("Enter value of b: "))
c = int(input("Enter value of c: "))
d = b * b - 4 * a * c
if d < 0:
    print("ROOTS are imaginary")
else:
    root1 = (-b + math.sqrt(d)) / (2.0 * a)
    root2 = (-b - math.sqrt(d)) / (2.0 * a)
    print("Root 1 = ", root1)
    print("Root 2 = ", root2)

salesmansalary.py

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

#!/usr/bin/env python
basic_salary = 1500
bonus_rate = 200
commision_rate = 0.02
numberofcamera = int(input("Enter the number of inputs sold: "))
price = float(input("Enter the total prices: "))
bonus = (bonus_rate * numberofcamera)
commision = (commision_rate * numberofcamera * price)
print("Bonus        = %6.2f" % bonus)
print("Commision    = %6.2f" % commision)
print("Gross salary = %6.2f" % (basic_salary + bonus + commision))

Результат

$ ./salesmansalary.py
Enter the number of inputs sold: 5
Enter the total prices: 20450
Bonus        = 1000.00
Commision    = 2045.00
Gross salary = 4545.00

Перейти к следующему уроку →