У меня есть список восьмеричных чисел, которые я хочу преобразовать в десятичные числа. Вот мой класс с тем, что я сделал до сих пор:Алгоритм преобразования восьмеричных чисел в десятичные числа?
class Octal:
#Reads in the file into numberList, converting each line into an int.
def __init__(self):
list = []
file = open("Number Lists/random_numbers3.txt")
for line in file:
list.append(int(line))
self.numberList = list
file.close()
#Convert numberList to decimal
def dec_convert(self):
decimal = 0
decimalList = []
for line in self.numberList:
temp = str(line)
i = 0
while i < len(temp):
digit = int(temp[i])
item = (digit * (8 ** (len(temp) - i)))
decimal = decimal + item
i += 1
decimalList.append(decimal)
return decimalList
def get_list(self):
return self.numberList
Я прочитал в номера из файла, который работает отлично. Но я не думаю, что моя функция dec_convert() действительно работает. Он просто продолжает работать и не заканчивается.
Это выглядит совершенно ужасно и трудно читается, поэтому мне было интересно, был ли более простой способ преобразования каждого восьмеричного числа в список в десятичное число?
Не можете ли вы использовать 'int (num_str, base)' для преобразования? Например, 'int (« 23 », 8)' возвращает 19, что является строкой «23», интерпретируемой как восьмеричная. –
вы увеличиваете 'i' внутри цикла while. Неудивительно, что он продолжает работать. –
@TomKarzes, разве это не преобразование из десятичного в восьмеричное? Мне нужно восьмеричное до десятичного. –