我希望能够打印一个字符串并将其格式化为一个形状。在这里的代码格式化为一个直角三角形,但我也想做其他形状。问题是我不能让字符串在每一行截断并继续,它只是在第一个字符处循环。如何将字符串格式化为形状?
这是什么样子
hhhhhhhhhhhhhhh
hhhhhhhhhhhhh
hhhhhhhhhhh
hhhhhhhhh
hhhhhhh
hhhhh
hhh
h
,但我希望它看起来像这样
hellowor
ldhowar
eyout
oday
?
我一直在努力环绕这个概念我的头很多最近,我可以似乎没有正确地在函数内循环函数。我想我可能会错过关于索引或循环的一些关键部分,这会阻止我。但如果你能在这里展示我,我可能会更多地了解它。我试图用Google搜索这个问题无济于事。我感谢任何帮助。
这里是我的代码迄今:
text = ('hello world how are you today?')
def word():
for c in text:
return c
def triangle(i, t = 0):
if i == 0:
return 0
else:
print '' * (t + 1) + word() * (i * 2 - 1)
return triangle (i - 1, t + 1)
triangle (8)
编辑:
我加入了这个其他的事情:
def triangle(i, t = 0):
if i == 0:
return 0
else:
for c in text:
print '' * (t + 1) + word() * (i * 2 - 1)
return triangle (i - 1, t + 1)
,但它产生了同样的问题,在这里通过只打印来自“文本”的第一个字母。
如何循环每个字母?
当你'return',它杀死函数并给你返回的值,所以你的''''函数只会返回'text'中的第一个'c',它是''h'' – ryugie
我不清楚你想要的结果:你想要8,7,5,4行和剩余字符?为什么/如何跳过6?你无意义的变量名称和缺少结构注释使得这很难遵循。此外,您似乎已在某处清除了空白区域,但我没有看到您的代码正在执行此操作。 – Prune
@Prune我手动输入了第二个,因为我无法让程序做到这一点哈哈。这就是为什么它跳过了6,人为错误。 我基本上要定义×长度的三角形(在这种情况下,其如图8所示,但它可以是任何),然后该三角形内打印一个字符串,使得每行是由三角形的宽度截断,因为它下降。那有意义吗? –