2024-04-25 00:29:30 发布
网友
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编写一个能画出带字符的平行四边形的函数不可能。怎么了我能修改我的代码吗? 输出必须如下所示:
使用ASCII-art,你最好先分析问题。如果我们想画一个高度为a和宽度为w的平行图,我们首先需要考虑第一条、第二条、i-第四条线等的外观。在
a
w
prallellogram的第一行将包含a星号(*),后跟b加号(+),后跟一个星号(*)。我们可以这样写:
*
b
+
line1 = '*' * a + '+' * b + '*'
当然,这并不能解决整个问题。第二行几乎与第一行相等,只是左边少了一个星号,右边多了一个星号。所以:
每一行将删除左侧的一个星号,并在右侧添加一个星号。这意味着linei有:
linei
linei = '*' * (a+1-i) + '+' * b + '*' * i
由于并行日志有a这样的行,我们可以将i从1到{}:
i
1
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()来打印下一行。从那里开始,看看你是否还需要改进。在
使用ASCII-art,你最好先分析问题。如果我们想画一个高度为
a
和宽度为w
的平行图,我们首先需要考虑第一条、第二条、i-第四条线等的外观。在prallellogram的第一行将包含
a
星号(*
),后跟b
加号(+
),后跟一个星号(*
)。我们可以这样写:当然,这并不能解决整个问题。第二行几乎与第一行相等,只是左边少了一个星号,右边多了一个星号。所以:
^{pr2}$每一行将删除左侧的一个星号,并在右侧添加一个星号。这意味着
linei
有:由于并行日志有}:
a
这样的行,我们可以将i
从1
到{我们可以稍微简化一下,写为:
首先,使用end=''打印,这将导致后续字符在同一行上打印。但是在代码的某个时候,您需要添加print()来打印下一行。从那里开始,看看你是否还需要改进。在
相关问题 更多 >
编程相关推荐