Смотри, для перевода из восьмеричной в десятичную надо это число представить в виде суммы произведения основания восьмеричной системы счисления на соответствующие цифры в разрядах восьмеричного числа:
К примеру, возьмем число 2357, нужно перевести в десятичную, в этом числе 4 цифры и 4 разряда (Разряды считаются, начиная с нулевого которому соответствует младший бит), в соответствии уже с известным правилом представим его в виде суммы степеней с основанием 8:
2357₈ = (2·8³)+(3·8²)+(5·8¹)+(7·8^0) = 2·512 + 3·64 + 5·8 + 7·1 = 1263₁₀
Для вычислений "вручную" и решения примеров и контрольных заданий вам могут пригодиться таблицы степеней оснований изучаемых систем счисления (2, 8, 10, 16)
Расположим лампочки вряд. Пусть включенная лампочка будет числом 1, а выключенная числом 0. Допустим первый сигнал это включенная первая лампочка справа в ряду, все остальные лампочки выключены 0000001. Теперь второй сигнал, включена вторая лампочка, все остальные выключены 0000010. Третий сигнал включены первая и вторая лампочки 0000011. Четвертый включена третья 0000100 и так далее. Таким образом при включенных 7 лампочек всего можно закодировать 1 1 1 1 1 1 1 сигналов т.е. 64 + 32 + 16 + 8 + 4 + 2 + 1 = 64 + 63 = 127 сигналов. И еще один сигнал можно закодировать когда все лампочки выключены 0000000. Вот и получилось число сигналов 128.
import re
#Вводим данные
txt = input()
#Ищем по регулярным выражением числа
numbersExists = re.search("[0-9]", txt)
#Если есть числа
if (numbersExists):
numbers = re.findall("[0-9]", txt)
numbers = len(numbers)
print("There's numbers")
print("That's how much numbers: ", numbers)
else:
print("There isn't any numbers")