Python форматирование строк через f-строки

Необходимо написать программу, которая будет считывать три числа и выводить их в определенном формате. Первое число целое, второе с плавающей точкой, третье целое неотрицательное. По примерам необходимо определить требуемый формат данных. Формат выходных данных определен: +000000102 ######3.14 0000_0100_0110_0111 как int float binary

Был написан код:

integ = int(input())  # первое число
flot = float(input())  # второе число
intg_pos = int(input())  # третье число
print(f"{integ:0=+10}")  # с первым и вторым числами код работает
проблема началась с третьим числом
print(f"{round(flot,2):#>10}")  # +$$$3
res_current = (f"{(intg_pos):0>16b}")
res_current = str(res_current)
result = str(res_current)
result = (result[::-1])
print('_'.join(result[i:i+4] for i in range(0, len(result), 4))[::-1])

который не работает со второй тройкой примеров: -123.7 проблема в числе знаков после запятой. Необходимо иметь два знака после запятой в выходном числе. То есть, свободное место заполнить символом 0, а перед запятой свой заполнитель. Не получается сделать сразу оба заполнения. Срабатывает либо первое, либо второе. Пытался разными способами.


Ответы (2 шт):

Автор решения: Stesha_

Попробуйте так

print(f"{flot:#>10.2f}")
→ Ссылка
Автор решения: Только учу программирование
num1,num2,num3 = int(input()),float(input()),int(input())
res_a = str((f"{num3:0>16b}")[::-1])
print(f"{num1:0=+10}\n{num2:#>10.2f}",
      '_'.join(res_a[i:i+4] for i in range(0, len(res_a), 4))[::-1],
      sep='\n')

Что у меня получилось в рабочей форме

→ Ссылка