制表符在 Python IDLE 中不起作用

Dat*_*ink 1 python control-characters output

我试图在我的代码中使用 '\t' 来实现一个制表符空间(见下面的代码),但在打印时它输出 '\t, char'。任何帮助将不胜感激。

paranoid_android = "Marvin"
letters = list(paranoid_android)
for char in letters:
    print('\t', char)
Run Code Online (Sandbox Code Playgroud)

Mar*_*nen 5

您可能正在使用 Python 2.x。去掉括号。 print是 Python 2.x 中的语句,而不是函数。使用括号,Python 2.x 会认为您正在打印一个元组。

paranoid_android = "Marvin"
letters = list(paranoid_android)
for char in letters:
    print('\t', char)
for char in letters:
    print '\t', char
Run Code Online (Sandbox Code Playgroud)

输出:

('\t', 'M')
('\t', 'a')
('\t', 'r')
('\t', 'v')
('\t', 'i')
('\t', 'n')
    M
    a
    r
    v
    i
    n
Run Code Online (Sandbox Code Playgroud)

您还可以将以下内容添加到 Python 2.x 脚本的顶部,使 Python 2.x 像 Python 3.x 一样工作,其中print是一个函数:

from __future__ import print_function
Run Code Online (Sandbox Code Playgroud)

  • @Datalink 如果这个答案[解决了你的问题](http://stackoverflow.com/help/someone-answers),请考虑[接受它](http://meta.stackexchange.com/questions/5234),点击答案左侧的复选标记/勾号,将其变为绿色。这标志着该问题已得到您的满意解决,并向您和回答者奖励 [声誉](http://stackoverflow.com/help/whats-reputation)。一旦您拥有 >= 15 个声望点,您也可以根据需要对答案进行投票。也没有义务去做。 (3认同)