为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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


查看完整回答
反对 回复 2023-10-06
  • 1 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信