三角形绘制代码:它在最后绘制一个副本,我不知道为什么

F8thBuiltCoder

我正在编写一个程序,该程序接受用户输入的字符和三角形高度,并使用它们使用 Python 代码绘制三角形。它正在绘制我想要的东西,但由于某种原因,它也在最后一行的正下方绘制了另一行字符。我正在练习嵌套循环。

这是我正在使用的代码:

triangle_char = input('Enter a character:\\n')

triangle_height = int(input('Enter triangle height:\\n'))

count1 = 0

while count1 \< triangle_height:

    print(triangle_char)

    count2 = 0

    while count2 \<= count1:

        print(triangle_char, end=' ')

        count2 = count2 + 1

    count1 = count1 + 1

这就是我得到的...

Enter a character:
Enter triangle height:
%
% %
% % %
% % % %
% % % % %
% % % % % 
9769953

只有在打印换行符时才会打印带有字符的行(作为一行)。这发生在外循环的一次迭代中,因为内循环有end=' '. 但是对于最后一次迭代,它print(triangle_char)没有被执行,因此最后一行错过了一个额外的字符(和一个换行符)。

一个解决方案是将 finalprint(triangle_char)放在两个循环之外。这将导致多出一行,因此需要更改外部条件:

triangle_char = input('Enter a character: ')
triangle_height = int(input('Enter triangle height: '))
count1 = 0
while count1 < triangle_height-1:
    print(triangle_char)
    count2 = 0
    while count2 <= count1:
        print(triangle_char, end=' ')
        count2 = count2 + 1
    count1 = count1 + 1
print(triangle_char)

但我只是建议改用 for 循环:

triangle_char = input('Enter a character: ')
triangle_height = int(input('Enter triangle height: '))
for i in range(triangle_height-1):
    print(triangle_char)
    for _ in range(i+1):
        print(triangle_char, end=' ')
print(triangle_char)

或使用以下str.join()功能:

triangle_char = input('Enter a character: ')
triangle_height = int(input('Enter triangle height: '))
for i in range(1, triangle_height+1):
    print(" ".join(triangle_char for _ in range(i)))

(需要再次稍微更改限制)

当然,这是 Python,你可以将上面的一行

triangle_char = input('Enter a character: ')
triangle_height = int(input('Enter triangle height: '))

print("\n".join(" ".join(triangle_char for _ in range(i)) for i in range(1, triangle_height+1)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

纹理的使用与绘制三角形冲突,仅显示一个

为什么此OpenGL程序不绘制三角形?

为什么将部分在视图外部的矩形绘制为三角形?

Android:使用xml定义(可绘制)制作一个三角形的按钮

在3D中绘制一个三角形到深度缓冲区

为什么此CSS代码段可以绘制三角形?

C#在另一个等边三角形的边上绘制等边三角形

用OpenGL绘制一个三角形

不知道为什么我的程序默认会输出最后一个if语句

我的重心三角形光栅化器每三个像素绘制一次

webgl试图绘制一个三角形

使用一个glDrawArrays命令绘制几个具有不同颜色的三角形

我如何添加此代码以用arduino打印一个完整的三角形?

在MapControl(UWP)3d视图上绘制一个三角形

Open GL DrawArrays仅绘制一个三角形/直线/点(OpenTK / C#)

glDrawElements仅绘制由索引指定的第一个三角形

使用Java绘制三角形

Qt和OpenGL,如果我使用属性,则绘制一个三角形

在一个绘制的图上,我想知道最大三角形交点的面积

根据三个给定的长度在HTML画布中绘制一个三角形

使用 OpenGL 绘制基本三角形

为什么这个 OpenGL 示例不绘制三角形?

为什么在尝试绘制三角形时,我在 uv 上遇到了超出范围的异常?

如何在xml drawable android中绘制一个矩形内端三角形形状?

用数字绘制一个三角形(javascript)

画一个知道边的三角形

Flutter - 使用 customPainter 在右下角绘制一个三角形

为什么这个面向对象的 OpenGL 代码不会绘制一个三角形,但扩展版本会呢?

我的代码给了我一个元组错误,我不知道为什么