Пока кодирование программы двоичного преобразования для моего друга я продолжал получать ошибку индекса за пределами диапазона при использовании команды X[N] = Y
, в которой X
был списком, N
был номером индекса - это список (представленный переменная под названием Bit
) и Y
было значением, которое I присваивало переменной в индексе N
в списке X
.Ошибка индекса вне диапазона, python 3.5. Только в цикле «while»
Ну, я должен был просто поместить код и объяснить, но в основном он говорит, что индекс за пределами, тогда как код Numbers[Bit] = 0
или Number[Bit] = 1
находится в цикле while, однако он работает везде в коде. Переменная Bit
равно целому числу 7, и список Numbers
содержит переменные a
, b
, c
, d
, e
, f
, g
и h
все разделяли смысл есть 0-7 индексов. И я попытался с Bit
значением 0, и это тоже не сработало. Однако код работал нормально, пока секции кода Numbers[Bit]
были помещены вне цикла while. Есть идеи?
a = 0
b = 0
c = 0
d = 0
e = 0
f = 0
g = 0
h = 0
def loop():
Bit = 7
Numbers = [a, b, c, d, e, f, g, h];
Num = 128
Input = int(input("What Number do you want to convert?"))
while Input > 0:
if Input > Num:
Input = Input - Num
Numbers[Bit] = 1
else:
Numbers[Bit] = 0
Bit = Bit - 1
Num = Num/2
Numbers = str(Numbers)
print (Numbers)
loop()
Он был первоначально установлен 7. – Byard
'Num/2' не использует целочисленное деление, оно использует истинное деление. Вы получите фракции, а не 0. Это не вся проблема, но это не помогает. –