Вы можете сделать это просто так (функция ord
вернет ASCII-значение заданного числа, поэтому, если вы вычтите число из 48, которое является значением ASCII '0', вы легко конвертируете число)
binary = input('enter a number: ')
decimal = 0
for digit in binary:
digit = ord(digit) - 48
decimal = decimal*2 + digit
print(decimal)
если вы не хотите использовать дополнительные функции, вы можете сделать это следующим образом
binary = input('enter a number: ')
decimal = 0
for digit in binary:
digit = 1 if digit == '1' else 0
decimal = decimal*2 + digit
print(decimal)
И ваша проблема в том, что вы не можете перебрать целое число
while(int(binaryNum))>0:
count=count+1
binaryNum=int(binaryNum)//10 ### here you assign binaryNum as integer
power = count
while power >= 0:
if int(binaryNum[power]) == '1': ### and you cant iterate binaryNum because it is an integer
decimalNum += 2**power
power -= 1