我正在自学 Python,很想知道是否有与 print() 一起使用的 end="" 作为返回函数的等价物。例如:
def shape(num,x):
for col in reversed(range(num)):
for row in range(col+1):
print(x,end="")
print()
给了我想要的结果,但我将如何使用返回函数来为我提供相同的结果?
我正在自学 Python,很想知道是否有与 print() 一起使用的 end="" 作为返回函数的等价物。例如:
def shape(num,x):
for col in reversed(range(num)):
for row in range(col+1):
print(x,end="")
print()
给了我想要的结果,但我将如何使用返回函数来为我提供相同的结果?
你问如何返回一个字符串?这是一种方法,遵循您使用的相同形式:
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)))
打印返回值:
def shape(num):
x = 0
for col in reversed(range(num)):
for row in range(col+1):
x += row
return x
print(shape(82))
另一种方法是使用生成器函数:
def shape(num, x):
for col in reversed(range(num)):
yield x * (col + 1)
for line in shape(4, '*'):
print(line)
注意:生成器函数的作用与 Robᵩ 所示的生成器表达式基本相同(在 内'\n'.join()
),但值得了解如何为更复杂的情况创建生成器函数。