x 与几何形状不对齐

问题描述 投票:0回答:1

这是我正在为我的代码类解决的一个练习,我试图在没有任何帮助的情况下解决它,但我不明白如何解决这个问题。 GPT 也帮不了我,因为它们打印的内容不同,所以总是错误的。

输出

x           x
x            x
x             x
x x x x x x x x x

想要的输出:

x         x
x           x
x             x
x x x x x x x x x

代码:

numeroRecebido = 5

def EsqSide(numeroRecebidoL, numeroRecebidoC, i):
    numeroRecebidoL = numeroRecebidoC - 3
    while i <= numeroRecebidoL:
        i = i + 1
        print("x", end=" ")
        spc = 0
        while(spc <= numeroRecebidoC + i):
            spc = spc + 1
            print(" ", end="")
        print("", end=" ")
        print("  x")

def baseBottom(numeroRecebido, i):
    if(numeroRecebido >= 5):
        numeroRecebido = numeroRecebido * 2
        numeroRecebido  = numeroRecebido - 2
        while(i <= numeroRecebido):
            i = i + 1
            print("x", end=" ")

    else:
        numeroRecebido = numeroRecebido * 2
        while(i <= numeroRecebido):
            i = i + 1
            print("x", end=" ")

EsqSide(numeroRecebidoL=numeroRecebido, numeroRecebidoC=numeroRecebido, i=0)
baseBottom(numeroRecebido, i=0)
python geometry
1个回答
0
投票

你有一些小的不一致之处,但它们足以在错误的位置显示最后一个

x

  • 您从
    spc = 0
    开始,而最初的
    x
    已使用一个位置
  • 当您应该在
    之后执行此操作时,您会在显示该行之前增加
    i之前
  • 您只需使用
    print(" ", end="")
    添加一个空格,而底行每个元素有 2 个位置(一个空格和一个
    x
  • 您添加了一个无关的
    print("", end=" ")
    ,这可能是修复最后一个
    x
  • 的错误位置的低效尝试

这是一个固定版本:

def EsqSide(numeroRecebidoL, numeroRecebidoC, i):
    numeroRecebidoL = numeroRecebidoC - 3
    while i <= numeroRecebidoL:
        print("x", end=" ")
        spc = 1
        while(spc < numeroRecebidoC + i):
            spc = spc + 1
            print(" ", end=" ")
        print("x")
        i = i + 1

有了它,我可以获得:

x         x
x           x
x             x
x x x x x x x x x 
© www.soinside.com 2019 - 2024. All rights reserved.