f-строки в Python
#80днейдоегэ
С версии 3.6 в python ввели очень удобную фишку - f-строки. f-строки позволяют удобнее оформлять вывод данных, которые необходимо предварительно отформатировать.
Раньше данный функционал был доступен через метод format у строк.
✅ Перевод в 2, 8, 16 системы счисления.
На смену bin(x), oct(x) и hex(x) пришла конструкция f'{x:b}', f'{x:o}' и f'{x:X}' соответственно. При этом в строке нет префикса (первых двух символов, типа 0b).
f'{10:b}' == '1010' == bin(10)2:
f'{10:o}' == '12' == oct(10)2:
f'{10:X}' == 'A' == hex(10)2:
Также можно использовать строчную х для перевода в шестнадцатеричную систему счисления. Тогда буквы в итоговой строке будут строчными (abcdef вместо ABCDEF).
✅ Указание ведущих нулей
Для этого после двоеточия нужно указать 0 (если не указать, то будут добавлены пробелы) и количество символов, до которых нужно дописать количество разрядов.
f'{10:08b}' == '00001010'
f'{-10:08}' == '-0000010'
Аналогичные замены в версиях до 3.6.
bin(10)2: .zfill(8)
'-' + bin(10)2: .zfill(8)
✅ Дробное число с фиксированным количеством знаков после запятой
Для этого после двоеточия нужно поставить точку и указать количество разрядов после запятой, после чего указать флаг f (float).
f'{1/7:.8f}' == '0.14285714'
f'{20/13:012.8f}' == '001.53846154'