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 шт):
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')
Что у меня получилось в рабочей форме