使用自动选项卡打印(Python)

时间:2013-07-31 19:25:38

标签: python printing

是否有一些简单的命令或方式 - 让我们称之为\ magic - 以便

print('Hello!\magicHello!')

产生以下内容

Hello!
      Hello!

也就是说,它会使下一行精确缩进到前一行的末尾?

非常感谢!

2 个答案:

答案 0 :(得分:3)

你可以通过在函数中包装字符串来实现:

def magic(s):
    res, indent = [], 0
    for part in s.split('\magic'):
        res.append(' ' * indent + part)
        indent += len(part)
    return '\n'.join(res)

print magic('Hello!\magicHello!')

产生:

Hello!
      Hello!

答案 1 :(得分:1)

有一个制表符(“\ t”),你可以用对齐和填充做各种各样的事情,但我不认为有一种方法可以获得你想要的精度而不会更麻烦而不是直截了当的解决方案:

printstring = "Hello!"
print(printstring+"\n"+len(printstring)*" " + printstring)

编辑:

如果您有以这种方式打印的单词列表,则可以执行以下操作:

words = ["This", "is", "a", "test"]
for i in range(len(words)):
    print(sum([len(w) for w in words[:i]])*" " + words[i])

这有点麻烦,但它应该有用。