Существует символ Unicode '\u0332'
, КОМБИНИРУЮЩИЙ LOW LINE *, который действует как подчеркивание на символе, который предшествует ему в строке. Так что вы можете попробовать:
print('{:s}'.format('\u0332'.join('This is an underlined headline.')))
Какой должен создать подчеркнутую строку:
T̲h̲i̲s̲ ̲i̲s̲ ̲a̲n̲ ̲u̲n̲d̲e̲r̲l̲i̲n̲e̲d̲ ̲h̲e̲a̲d̲l̲i̲n̲e̲.
Однако внешний вид вывода может зависеть от приложения, которое отображает вывод, и от используемых шрифтов. Мой браузер выдает подчеркнутую строку, мой (Linux) терминал отображает ее так, как если бы за каждым символом следовало подчеркивание.
* Существует также '\u0333'
, КОМБИНИРУЮЩАЯ ДВОЙНАЯ НИЗКАЯ ЛИНИЯ, для двойного подчеркивания.