Вычисления

Назад в начало

Арифметические операции

Вы считаете, что арифме­тиче­ские операции - это просто? Пересчитайте. На самом деле, всё не так страшно, но рас­слабляться не стоит. Начнём со всем знакомой чет­вер­ки:

print(10 + 10)
# 10
print(10 - 5)
# 5
print(11 * 7)
# 77
print(10 / 2)
# 5.0

Никаких неожиданностей, правда? Не совсем, посмотрите внимательно на операцию деле­ния. Заметили? Мы разделили целое число на его делитель, но несмотря на это, результат имеет тип float. Взглянем на операцию деления чуть более пристально:

print(10 / 2)
# 5.0
print(100 / 3)
# 33.333333333333336
print(21 / 4)
# 5.25
print(23 / 7)
# 3.2857142857142856

Иногда можно увидеть такие приколы:

print(0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1)
# 0.7999999999999999
print(0.1 + 0.2)
# 0.30000000000000004
print(7 / 3)
# 2.3333333333333335

Еще немного математики. Математика в каждый дом!

# Возведение в степень
print(10 ** 2)
# 100
print(2 ** 4)
# 16
print(3 ** 0.5)
# 1.7320508075688772
print(3 ** -2)
# 0.1111111111111111
# Остаток от деления
print(11 % 4)
# 3
print(101 % 7)
# 3
print(34 % 5)
# 4
# Деление нацело
print(20 // 4)
# 5
print(129 // 11)
# 11
print(100 // 61)
# 1

Операции сравнения в python

Операции сравнения в отличие от арифметические имеют всего два результата: True и False. Чаще всего такие операции используются в условии циклов, условных оператов, а также в некоторых функциях, например, filter.

# Операция равенства: True, если X равен Y
print(10 == 10)
# True
print(666 == 661)
# False
# Операция неравенства: True, если X не равен Y
print(666 != 661)
# True
print(666 != 666)
# False
# Операция больше: True, если X больше Y
print(120 > 2)
# True
print(1000 > 1999)
# False
# Операция меньше: True, если X меньше Y
print(121 < 120)
# False
print(0 < 1)
# True
# Операция меньше или равно: True, если X меньше или равен Y
print(6 <= 6)
# True
print(5 <= 2)
# False
# Операция больше или равно: True, если X больше или равен Y
print(1000 >= 10000)
# False
print(9999 >= 9999)
# False

Логические операции

Логические операции, как и операции сравнения, имеют всего два возможных результата: True и False. Используются для объединения операций сравнения в условиях циклов и условных оператов

# Оператор "and" или конъюнкция.
# True, если и выражение X, и выражение Y равны True
print(10 == 10 and 10 > 2)
# True
print(666 == 661 and 9 > 0)
# False
# Оператор "or" или дизъюнкция.
# True, если или выражение X, или выражение Y равны True
print(666 == 661 or 9 > 0)
# True
print(666 == 661 or 9 < 0)
# False
# Оператор "not" или инверсия меняет значение на противоположное.
# True, если выражение X равно False
print(not 120 > 2)
# False
print(not 1000 < 999)
# True
print(not (121 < 121 and 10 == 2))
# True

Округление чисел в python

Всё дело в округлении! В python есть несколько заме­ча­тель­ных функций, которые округ­ляют число до указанного знака. Одной из таких функций является round:

pi = 3.14159265358979323846264338327
print(round(pi, 1))
# 3.1
print(round(pi, 2))
# 3.14
print(round(pi, 3))
# 3.12
print(round(pi, 4))
# 3.1416
print(round(pi, 10))
# 3.1415926536
print(round(pi, 15))
# 3.141592653589793

Рассмотрим любопытный пример:

print(round(2.5))
# 2
print(round(3.5))
# 4

Если на вашем лице застыл немой вопрос: "почему?", то я вас понимаю. В школе нас учили, что дроби 1.1, 1.2, 1.3, 1.4 округляются до единицы, а 1.5, ..., 1.9 до двойки. Но python думает по-другому. Есть два типа округления: арифметическое и банковское. Именно арифметическому округлению вас учили в школе. Python использует как раз-таки банковское округление, его еще называют округлением до ближайшего четного. Приведу еще несколько примеров:

print(round(10.51213))
# 11
print(round(23.5))
# 24
print(round(22.5))
# 22

Примеры решения задач

Есть N оранжевых конфет и K учеников, сколько достанется каждому из них, если разделить их поровну? Сколько конфет останется после дележа?

n = int(input('Введите количество конфет: '))
k = int(input('Введите количество учеников: '))
a = n // k
b = n % k
print('Каждому по', a)
print('Осталось', b)

Даны стороны прямоугольника a и b. Вычислите периметр, площадь и диагональ прямоугольника.

a = int(input('Введите a: '))
b = int(input('Введите b: '))
s = a * b
p = 2 * (a + b)
d = (a ** 2 + b ** 2) ** 0.5
print('Площадь:', a)
print('Периметр:', b)
print('Диагональ:', c)

Дано число секунд n на секундомере. Посчитайте прошедших минут и секунд.

n = int(input('Введите n: '))
m = n // 60
s = n % 60
print(str(m) + ':' + str(s))

Решение задач

1. Дано целое число A. Проверить истинность высказывания: "Число A является четным".

2. Дано целое число A. Проверить истинность высказывания: "Число A является нечетным".

3. Даны два целых числа: A, B. Проверить истинность высказывания: "Числа A и B имеют одинаковую четность".

4. Даны три целых числа: A, B, C. Проверить истинность высказывания: "Хотя бы одно из чисел A, B, C положительное".

5. Дано четырехзначное число. Проверить истинность высказывания: "Данное число читается одинаково слева направо и справа налево".

6. Дано число секунд n на часах. Посчитайте прошедших часов, минут и секунд.

7. Дано натуральное число. Выведите его последнюю цифру.

8. Дано положительное действительное число X. Выведите его дробную часть.

9. Дано положительное действительное число X. Выведите его первую цифру после десятичной точки.

10. Пирожок в столовой стоит a рублей и b копеек. Определите, сколько рублей и копеек нужно заплатить за n пирожков. Программа получает на вход три числа: a, b, n, и должна вывести два числа: стоимость покупки в рублях и копейках.

11. Дано натуральное число. Найдите число десятков в его десятичной записи.

12. Дано двузначное число. Найдите сумму его цифр.

13. Дано трехзначное число. Найдите сумму его цифр.

14. Дано трехзначное число. Проверить истинность высказывания: "Все цифры данного числа различны".

15. Дано трехзначное число. Проверить истинность высказывания: "Цифры данного числа образуют возрастающую или убывающую последовательность".

16. С начала суток прошло N секунд (N - целое). Найти количество часов, минут и секунд на электронных часах.