我是编程的全新手。 目前,我正在制作一个简单的代码来打印带有星星的三角形。
n=3
如果我运行代码,例如'*\n**\n***'
,那么shell会显示*
**
***
而不是
text
我不明白为什么\ n不起作用。
答案 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))