首页 > 解决方案 > 使用嵌套的 For 循环制作颠倒模式

问题描述

我需要用一个函数制作一个模式,给定一个整数(n)将打印出一个大小为 n 的特定模式。它在 4 号时应该看起来像这样,例如:

!!!!!!!!!!!!!!
\\!!!!!!!!!!//
\\\\!!!!!!////
\\\\\\!!//////

到目前为止,这是我的代码。我不知道如何反转金字塔形状,也不知道如何让斜线与感叹号一起使用以创建所需的图案,如您所见:

def slashFigure():
    width = int(input("Enter a number: "))
    for i in range(0, width):
        for j in range(0, width - i):
            print("\\", end="")
        for k in range (0, 2*i + 1):
            print("!!", end="")
        print("/")

slashFigure()

标签: pythonpython-3.xfor-loopasciiascii-art

解决方案


你可以这样做:

def slashFigure(height, reverse):

    for row in range(height)[::(1-int(reverse)*2)]:
        print(''.join(['\\' for x in range(row*2)]+['!' for x in range(height*4-row*4-2)]+['/' for x in range(row*2)]))

height = int(input("Enter a number: "))
slashFigure(height, False)
slashFigure(height, True)

推荐阅读