我有一個八進制數字的列表,我想將其轉換爲十進制。這是我迄今爲止所做的課程:將八進制數轉換爲十進制數的算法?
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「被解釋爲八進制。 –
Where do你在'while'循環中增加'i' ???怪不得「它繼續運行」。 –
@TomKarzes,不是從十進制轉換成八進制嗎?我需要八進制到十進制。 –