Обозначьте порядок вычисления выражения по операциям:
11 * 2 ** 2 – 13 / 4 + 7.
Какое целое число получим в итоге?
>>> 11 * 2 ** 2 - 13 / 4 + 7
47.75
Сколько мегабайт памяти занимает число 3 ** 9090001?
Для решения воспользуйтесь функцией getsizeof() из модуля sys.
# 1. Импортируем функцию из модуля
from sys import getsizeof
# 2. Находим объем занимаемом памяти в Мегабайтах
getsizeof(3 ** 9090001) / (1024 * 1024)
# Результат: 1.8319969177246094
Используя стандартные арифметические операции представьте самое большое целое число из цифр 4, 4, 4 и приведите его значение.
>>> 4 ** 4 ** 4
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
Какие из представленных выражений можно преобразовать в целое десятичное число за одну операцию:
А) '123е';
Б) '91.4';
В) 524.345 ** 435345345311145345;
Г) '7.1 + 4';
Д) '4' - 2;
Е) '4 - 2';
Ж) '42'
З) -12.12?
>>> int('123е')
# Получим ошибку ValueError
>>> int('91.4')
# Получим ошибку ValueError
>>> int(524.345 ** 435345345311145345)
# Сначала вычисляется возведение в степень, а потом преобразование к целому числу
>>> int('7.1 + 4')
# Получим ошибку ValueError
>>> int('4' - 2)
# Получим ошибку TypeError
>>> int('4 - 2')
# Получим ошибку ValueError
>>> int('42')
42
>>> int(-12.12)
-12
Напишите функцию pos_add(a, b), которая возвращает положительное значение сложения двух целых чисел.
def pos_add(a, b):
return abs(a + b)
# Тесты
print(pos_add(7, -3))
print(pos_add(7, -7))
print(pos_add(-2, -3))
4
0
5
Определите функцию foo(a), которая возвращает результат целочисленного и по модулю деления любого целого числа на -11.
def foo(a):
return divmod(a, -11)
# Тесты
print(foo(22))
print(foo(-77))
print(foo(1))
(-2, 0)
(7, 0)
(-1, -10)
def foo(a):
return a // -11, a % -11
# Тесты
print(foo(22))
print(foo(-77))
print(foo(1))
(-2, 0)
(7, 0)
(-1, -10)
Напишите функцию num_sum(a), принимающую любое значение.
Если это целое число, то возвратить сумму его чисел.
В противном случае возвращается фраза «Это не целое число».
def num_sum(a):
# 1. Определяем принадлежность значения 'a' к целому числу, но не к булеву типу
if isinstance(a, int) and not isinstance(a, bool):
# 2. Преобразуем число в положительное, а потом - строку
a_to_str = str(abs(a))
# 3. Задаем начальную сумму 0
s = 0
# 4. В цикле складываем все числа
for i in a_to_str:
s += int(i)
return s
return 'Это не целое число'
# Тесты
print(num_sum(-146))
print(num_sum('-11'))
print(num_sum(True))
11
Это не целое число
Это не целое число
Дана последовательность случайных цифр любой длины и «волшебное» положительное число, больше нуля.
Напишите функцию magic(), принимающую эти аргументы, и выясните, можно ли разделить сумму квадратов последовательности на «волшебное» число без остатка.
В качестве ответа возвращается «Волшебство случается» в случае успеха или «Никакого волшебства», если разделить нельзя.
def magic(*args, k):
# 1. Начальная сумма равна нулю
sq_sum = 0
# 2. Складываем квадраты всех аргументов в цикле
for i in args:
sq_sum += i ** 2
# 3. Определяем, равен ли остаток от деления sq_sum на k нулю
if sq_sum % k == 0:
return 'Волшебство случается'
return 'Никакого волшебства'
# Тесты
print(magic(2, 5, 7, k=5))
print(magic(2, 5, 7, k=39))
print(magic(2, 5, 7, k=2))
Никакого волшебства
Волшебство случается
Волшебство случается