我正在自学Python的过程中,并且想知道是否有一个与print()一起用于返回函数的end =“”。例如:
def shape(num,x):
for col in reversed(range(num)):
for row in range(col+1):
print(x,end="")
print()
给我我想要的结果,但是如何使用return函数为我提供相同的结果呢?
答案 0 :(得分:4)
您是否在询问如何返回字符串?这是一种方法,遵循您使用的相同形式:
def shape(num,x):
result = ''
for col in reversed(range(num)):
for row in range(col+1):
result += x
result += '\n'
return result
print (shape(4, '*'), end="")
然而,在字符串上使用+=
是不好的形式。在您继续改进代码时,请查看列表推导和str.join()
函数。
你最终可能会遇到这样的事情:
return '\n'.join('*'*(col+1) for col in reversed(range(num)))
答案 1 :(得分:1)
打印返回值:
def shape(num):
x = 0
for col in reversed(range(num)):
for row in range(col+1):
x += row
return x
print(shape(82))
答案 2 :(得分:0)
另一种方法是使用生成器函数:
def shape(num, x):
for col in reversed(range(num)):
yield x * (col + 1)
for line in shape(4, '*'):
print(line)
注意:生成器函数与Robᵩ已经显示的生成器表达式基本相同(在'\n'.join()
内),但是值得知道如何为更复杂的情况创建生成器函数。