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

使用自动选项卡打印(Python),python,printing,Python,Printing,是否有一些简单的命令或方法--我们称之为\magic--以便 print('Hello!\magicHello!') 产生以下结果 Hello! Hello! 也就是说,它使下一行精确缩进到上一行的末尾 非常感谢 有一个制表符(“\t”),您可以通过对齐和填充进行各种操作,但我认为没有一种方法可以获得您想要的精度,而不会比简单的解决方案更麻烦: printstring = "Hello!" print(printstring+"\n"+len(printstring)*" " +

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

print('Hello!\magicHello!')
产生以下结果

Hello!
      Hello!
也就是说,它使下一行精确缩进到上一行的末尾

非常感谢

有一个制表符(“\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])
这有点麻烦,但应该可以使用。

有一个制表符(“\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])

这有点麻烦,但应该可以使用。

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

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!

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

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!

看起来你只是想要打印(“你好!你好!”);至少这会打印问题中显示的内容。也许你需要编辑问题的格式…你打印的是什么?linux终端?诅咒屏幕?Windows控制台?@ScottHunter如果显示不正确,很抱歉。它应该是一个“你好”在另一个“你好”下面,从最上面的一个结束的地方开始。这对我来说很好。看起来你只是想要打印(“你好!你好!”);至少这会打印问题中显示的内容。也许你需要编辑问题的格式…你打印的是什么?linux终端?诅咒屏幕?Windows控制台?@ScottHunter如果显示不正确,很抱歉。它应该是一个“你好”在另一个“你好”下面,从最上面的一个结束的地方开始。这对我来说很好。谢谢,但是如果我不只是处理单个单词“Hello”,我如何动态地做到这一点?比如,你有一个单词列表,你想在缩进级别打印前一个单词结束的位置?是的,但可能有很多单词,都是从数据库中提取的。也许我需要重新思考应该怎么做……;)好的,新的编辑应该适用于任意长的列表。。。假设您的水平空间没有用完。非常感谢您的快速回复。我想这会管用的。我只需要先生成列表,但这应该不难。谢谢,但是如果我不只是处理单个单词“Hello”,我如何动态地做到这一点?比如,你有一个单词列表,你想在前一个单词结束的缩进级别打印每一个单词?是的,但可能有很多单词,从数据库中获取。也许我需要重新思考应该怎么做……;)好的,新的编辑应该适用于任意长的列表。。。假设您的水平空间没有用完。非常感谢您的快速回复。我想这会管用的。我只需要先生成列表,但这并不难。这太棒了!非常感谢,这正是我想要的!谢谢这太棒了!非常感谢,这正是我想要的!谢谢