def solve(x, op, y):
if str(op) == '+':
try:
print(float(x) + float(y))
except ValueError:
print('одно из значений не число')
elif str(op) == '-':
try:
print(float(x) - float(y))
except ValueError:
print('одно из значений не число')
elif str(op) == '*':
try:
print(float(x) * float(y))
except ValueError:
print('одно из значений не число')
elif str(op) == '/':
try:
print(float(x) / float(y))
except ZeroDivisionError:
print('на ноль делить нельзя')
except ValueError:
print('одно из значений не число')
return 0
elif str(op) == '//':
try:
print(float(x) // float(y))
except ZeroDivisionError:
print('на ноль делить нельзя')
except ValueError:
print('одно из значений не число')
return 0
elif str(op) == '^':
try:
print(float(x) ** float(y))
except ValueError:
print('одно из значений не число')
else:
print('error')
return 0
while True:
num1, op, num2 = input().split()
solve(num1, op, num2)
Объяснение:
Данные вводятся через пробел, ex:
Ввод: 2 + 2
Вывод: 4
17
Объяснение:
1)2000 возможных значений => чтобы закодировать каждое значение нужно 11 би тк 2^i = 2000 = > i = 11 бит(примерно)
2)значений считываются по сериям из 50 =>на одну серию потребуется 50 * 11 = 550 бит = 550/8 = 69 байт
3)12312 = 12300+12 =246*50+12 те получается 246 серий и еще 12 значений
4)246 серия можно закодировать 69*246 = 16974
5)12 значений кодируются отдельно минимальным количеством байтов те 12 *11 = 132 бита = 132/8 = 17 байт
6)чтобы закодировать все значения нужно 17+16974 = 16991 байт
7)16991 байт = 16991 /1024 кб = 17 кб