2024-06-16 11:46:45 发布
网友
我对编程完全是个新手。 目前,我正在编写一个简单的代码来打印带有星星的三角形。你知道吗
def star_drawer(n): if n==1: return('*') elif n>1: return str(star_drawer(n-1))+'\n'+"*"*n
如果我运行代码,n=3例如,shell显示'*\n**\n***' 代替
n=3
'*\n**\n***'
* ** ***
我不明白为什么\n不起作用。你知道吗
Python中的对象可能有两个字符串表示法。str(obj)是打印它的方式,repr(obj)是理解它的方式。如果只在交互控制台中键入对象的名称,则与打印其repr相同。你知道吗
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(在python2.7中)或print(...)(在python3中)来实际显示字符串,而不是显示它们的repr值。你知道吗
print
print(...)
这可以在没有递归的情况下更有效地完成
def star(n): return "\n".join("*" * i for i in range(1, n+1))
Python中的对象可能有两个字符串表示法。
str(obj)
是打印它的方式,repr(obj)
是理解它的方式。如果只在交互控制台中键入对象的名称,则与打印其repr
相同。你知道吗示例:
因此需要使用
print
(在python2.7中)或print(...)
(在python3中)来实际显示字符串,而不是显示它们的repr值。你知道吗这可以在没有递归的情况下更有效地完成
相关问题 更多 >
编程相关推荐