如何用python绘制一个带字符的平行四边形?

2024-04-25 00:29:30 发布

您现在位置:Python中文网/ 问答频道 /正文

def parallelogram(a,b):
    for i in range(a,0,-1):
        for j in range (i,0,-1):
            print("*",end='')
            for j in range(b,0,-1):
                print("+",end='')
            for k in range(a-i,0,-1):
                print("*",end='')

ı想用python编写一个能画出带字符的平行四边形的函数不可能。怎么了我能修改我的代码吗? 输出必须如下所示:

^{pr2}$

Tags: 函数代码infordefrange字符end
2条回答

使用ASCII-art,你最好先分析问题。如果我们想画一个高度为a和宽度为w的平行图,我们首先需要考虑第一条、第二条、i-第四条线等的外观。在

prallellogram的第一行将包含a星号(*),后跟b加号(+),后跟一个星号(*)。我们可以这样写:

line1 = '*' * a + '+' * b + '*'

当然,这并不能解决整个问题。第二行几乎与第一行相等,只是左边少了一个星号,右边多了一个星号。所以:

^{pr2}$

每一行将删除左侧的一个星号,并在右侧添加一个星号。这意味着linei有:

linei = '*' * (a+1-i) + '+' * b + '*' * i

由于并行日志有a这样的行,我们可以将i1到{}:

for i in range(1, a+1):
    linei = '*' * (a+1-i) + '+' * b + '*' * i
    print(linei)

我们可以稍微简化一下,写为:

def parallelogram(a,b):
    for i in range(1, a+1):
        print('*' * (a+1-i) + '+' * b + '*' * i)

首先,使用end=''打印,这将导致后续字符在同一行上打印。但是在代码的某个时候,您需要添加print()来打印下一行。从那里开始,看看你是否还需要改进。在

相关问题 更多 >