好吧,我知道这是非常基本的,我可能应该知道我在这里做什么,但我一直在试图翻转这个该死的三角形。我一直对需要交换哪个变量感到困惑。这个三角形从一颗星开始,向下迭代形成一个完整的三角形。我需要它从大开始,一直到一颗星。有点像漏斗。请并谢谢您,再次请您。这是代码:def up_arrow(arrow): char = arrow index = 0 size = 6 while index < size: spaces = " " * (6 - index) print(spaces + char) char += arrow * 2 index += 1
1 回答
慕森卡
TA贡献1806条经验 获得超8个赞
在你的循环中,你不断增加1,直到达到 6,并且不断增加2 sindex的长度,这样它就会以 6*2-1 s 结束。那么,你尝试过扭转局面吗?chararrowarrows
size从*2-1的字符串开始arrow,设置index为size,每次迭代递减index,并继续直到达到 0,并每次删除两个字符char:
def down_arrow(arrow):
size = 6
index = size
char = arrow * (size * 2 - 1)
while index > 0:
spaces = " " * (6 - index)
print(spaces + char)
char = char[2:]
index -= 1
down_arrow('.')
请注意,我尝试坚持您最初编写的方式,有更多最佳方法可以实现此目的。
例如,虽然仍然只打印这种类型的箭头,但此函数可以同时执行以下操作:
def arrow(ch, size, up=True):
for i in range(1, size + 1) if up else range(size, 0, -1):
print(' ' * (size - i) + ch * (2 * i - 1))
arrow('.', 6)
arrow('.', 6, up=False)
添加回答
举报
0/150
提交
取消