如何使用\ t符号制作表格?

时间:2017-10-12 00:48:16

标签: python

现在,我正在研究“如何像计算机科学家一样思考”。我在Simple Tables。 本课程是制作简单的表格。第一个例子在浏览器中运行正常,但是当我把它作为Sublime时,\ t符号就会打印出来。它不会在浏览器中执行此操作。我甚至将代码复制到了崇高。

这是我的代码:

print("n", '\t', "2**n")
print("---", '\t', "-----")

for x in range(13):
    print(x, '\t', 2 ** x)

我的结果是:

('n', '\t', '2**n')
('---', '\t', '-----')
(0, '\t', 1)
(1, '\t', 2)
(2, '\t', 4)
(3, '\t', 8)
(4, '\t', 16)
(5, '\t', 32)
(6, '\t', 64)
(7, '\t', 128)
(8, '\t', 256)
(9, '\t', 512)
(10, '\t', 1024)
(11, '\t', 2048)
(12, '\t', 4096)

如何使括号和\ t符号消失。我知道括号不应该在那里,所以我对此感到困惑,我不知道如何摆脱\ t符号而不会出现“意外字符”错误。

1 个答案:

答案 0 :(得分:2)

我认为你正在使用Python 2并打印元组。在文件的顶部放置from __future__ import print_function,它将看起来像您期望的那样。  更好的是,升级到Python 3! Python网站上有适用于Mac *和PC的安装程序,大多数(可能是所有?)Linux发行版在默认包管理器的存储库中都有Python 3。

要更详细地解释发生了什么,请查看其中一个Python core developer's answers to another question

由于您运行的是Python 2,其中print是语句语句只能看到一个参数:元组{{1 }}。 (x, '\t', 2 ** x)尝试在已经给出的所有对象上调用print,但由于它在这种情况下只看到一个对象,即元组,它只会尝试在其上调用__str__。由于__str__未定义tuple,因此会调用__str__。您可以在the source中看到元组在元组中的所有项目上调用__repr__。字符串repr()的repr是'\t'。 (这稍微介绍了Python中'\t'repr之间的差异。每当您使用str时,该函数都会看到三个单独的参数,并尝试在每个参数上调用from __future__ import print_function。这将打印出你想要的方式。

对于这种特定情况,您需要确保不在参数之间插入空格,因此请放入关键字参数__str__

sep=''

* 注意:在Mac OS X上,通常建议使用Homebrew:http://docs.python-guide.org/en/latest/starting/install3/osx/