目前正在进行一项我希望将星星打印为三角形的作业,代码目前看起来像这样(非常基本,我知道):
def triangelbasupp(n,m):
for a in range(0,m):
print((n*" "),(m*"*"))
m=m-2
n=n+1
if m<=0:
break
当我进入时,例如(3,1)我会在第一行获得前3颗星,然后是1颗星。这段代码运行正常,问题是对于赋值,我只想返回构成三角形的整个字符串,它还必须包含用于切换行的'\ n'。有谁知道如何做到这一点?
答案 0 :(得分:2)
而不是打印,初始化一个空字符串并使用字符串连接运算符来构建字符串:
def triangelbasupp(n,m):
s = ""
for a in range(0,m):
s += n*" " + m*"*" + "\n"
m=m-2
n=n+1
if m<=0:
break
return s
答案 1 :(得分:2)
收集列表中的行,然后join
将其与\n
一起收回并返回。
def triangelbasupp(n,m):
lines = []
for a in range(0,m):
lines.append(n*" " + m*"*")
...
return "\n".join(lines)
或更短:
def triangelbasupp(n, m):
return "\n".join(("*"*i).center(n) for i in range(m, 0, -2))