В вашей f-строке должны быть выражения, а не индексы:
f'{i:>2} in binary is {i:>08b}'
Везде, где у вас было 0
в исходной строке формата, следует заменить фактический первый аргумент: в этом случае i
.
Предостережение
Выражение в f-строке оценивается дважды, но аргумент format
оценивается только один раз, когда вы обращаетесь к нему по индексу.Это важно для более сложных выражений.Например:
"{0:>2} in binary is {0:>08b}".format(i + 10)
Здесь сложение i + 10
происходит только один раз.С другой стороны,
f"{i+10:>2} in binary is {i+10:>08b}"
выполняет сложение дважды, поскольку оно эквивалентно
"{:>2} in binary is {:>08b}".format(i + 10, i + 10)
или
"{0:>2} in binary is {1:>08b}".format(i + 10, i + 10)
Обходной путь - предварительный расчет результатов.выражений, которые появляются в вашей f-строке более одного раза:
j = i + 10
f"{j:>2} in binary is {j:>08b}"
Теперь j
вычисляется несколько раз, но это просто простая ссылка.