将一个字符串(一个空格)乘以零,仍然可以得到一个空白的sp

2024-10-02 08:27:12 发布

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

我正在做一个Python项目,打印出由星号(*)创建的山、三角形和沙漏。下面是我当前使用的代码,它正确地打印出了山,但是三角形和沙漏在每一行上都有一个额外的空间,尽管while循环的第一次迭代乘以零。在

oddn = int(input("Enter an odd number width: "))
oddn2 = oddn
oddn3 = oddn
x = 1
y = 1
z = 1
h = 1
g = 0

print("Hill:")
while oddn >= x:
    print("*" * x )
    x = x+2

print("Triangle:")
while (oddn * 7)+10 >= y:
    ynum = int(oddn/2)
    print(" " * ynum,"*" * y)
    y = y + 2
    oddn = oddn - 2

print("Hourglass:")
while oddn2 >= z:
    print(" " * g,"*" * oddn2)
    oddn2 = oddn2-2
    g = g + 1

while (oddn3 * 7)+10 >= h:
    ynum2 = int(oddn3/2)
    print(" " * ynum2,"*" * h)
    h = h + 2
    oddn3 = oddn3 - 2

当前结果如下所示。在

^{pr2}$

所以,从结果可以看出。山的左边没有多余的空间,但是三角形和沙漏有。这可能只是我逻辑上的一个错误,但我已经试着改正了,还没有找到答案。任何帮助将不胜感激!在


Tags: 项目代码input空间星号intprint三角形

热门问题