Правильный способ сделать это будет использовать синтаксис формата Python, как описано в официальной документации
Для этого случая это будет просто:
'{:10}'.format('hi')
какие выводы:
'hi '
Объяснение:
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= integer
precision ::= integer
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
Практически все, что вам нужно знать, это ^.
Обновление: с Python 3.6 это еще более удобно с интерполяцией литеральных строк!
foo = 'foobar'
print(f'{foo:10} is great!')
# foobar is great!
"%-6s" % s
для выравнивания по левому краю и"%6s" % s
для выравнивания по правому краю.