我尝试打印的图案是颠倒的

好吧,我知道这是非常基本的,我可能应该知道我在这里做什么,但我一直在试图翻转这个该死的三角形。我一直对需要交换哪个变量感到困惑。这个三角形从一颗星开始,向下迭代形成一个完整的三角形。我需要它从大开始,一直到一颗星。有点像漏斗。请并谢谢您,再次请您。


这是代码:


def up_arrow(arrow):

    char = arrow

    index = 0

    size = 6

    while index < size:

        spaces = " " * (6 - index)

        print(spaces + char)

        char += arrow * 2

        index += 1


FFIVE
浏览 70回答 1
1回答

慕森卡

在你的循环中,你不断增加1,直到达到 6,并且不断增加2 sindex的长度,这样它就会以 6*2-1 s 结束。那么,你尝试过扭转局面吗?chararrowarrowssize从*2-1的字符串开始arrow,设置index为size,每次迭代递减index,并继续直到达到 0,并每次删除两个字符char:def down_arrow(arrow):&nbsp; &nbsp; size = 6&nbsp; &nbsp; index = size&nbsp; &nbsp; char = arrow * (size * 2 - 1)&nbsp; &nbsp; while index > 0:&nbsp; &nbsp; &nbsp; &nbsp; spaces = " " * (6 - index)&nbsp; &nbsp; &nbsp; &nbsp; print(spaces + char)&nbsp; &nbsp; &nbsp; &nbsp; char = char[2:]&nbsp; &nbsp; &nbsp; &nbsp; index -= 1down_arrow('.')请注意,我尝试坚持您最初编写的方式,有更多最佳方法可以实现此目的。例如,虽然仍然只打印这种类型的箭头,但此函数可以同时执行以下操作:def arrow(ch, size, up=True):&nbsp; &nbsp; for i in range(1, size + 1) if up else range(size, 0, -1):&nbsp; &nbsp; &nbsp; &nbsp; print(' ' * (size - i) + ch * (2 * i - 1))arrow('.', 6)arrow('.', 6, up=False)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python