为什么python打印'\ n'而不是转到下一行?

时间:2015-11-27 13:36:26

标签: python recursion

我是编程的全新手。 目前,我正在制作一个简单的代码来打印带有星星的三角形。

n=3

如果我运行代码,例如'*\n**\n***',那么shell会显示* ** *** 而不是

text

我不明白为什么\ n不起作用。

2 个答案:

答案 0 :(得分:2)

Python中的对象可能有两个字符串表示str(obj)是您打印它的方式,而repr(obj)是一种了解它的方式。如果只在交互式控制台中键入对象的名称,则与打印repr相同。

示例:

>>> a = 'a\nb'
>>> a
'a\nb'
>>> repr(a)
"'a\\nb'"
>>> print repr(a)
'a\nb'
>>> print a
a
b

所以你需要使用print(在Python 2.7中)或print(...)(在Python 3中)来实际显示字符串而不是显示它们的repr值。

答案 1 :(得分:0)

这可以更有效地完成而不需要递归

def star(n):
    return "\n".join("*" * i for i in range(1, n+1))