我试图打印以下模式,但无法构建逻辑框架

My code :

for i in range(1,row+1):
    if i == 1:
        print(row * '* ')
    elif i<row:
        print( '* ' + ((row - 3) * 2) * ' ' + '*')
        row = row - 1
    else:
        print('*')

Expected output :

* * * * * * * *
*           *
*         *
*       *
*     *
*   *
* *
*

But my code gives me abnormal output :

* * * * * * * * 
*           *
*         *  
*       *    
*
*
*
*

推荐答案

@斯塔克的回答很巧妙,但在数学上有点过头了.这也应该起到同样的作用:

row = 8
print(row * '* ')
for i in range(1,row - 1):
    rowlength = (row - i) * 2 - 3
    print('*', end='')
    print(rowlength * ' ', end='')
    print('*')
print('*')

Python相关问答推荐

从webhook中的短代码(而不是电话号码)接收Twilio消息

运行总计基于多列pandas的分组和总和

将输入管道传输到正在运行的Python脚本中

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

计算天数

Python中的变量每次增加超过1

如何使regex代码只适用于空的目标单元格

使用Python查找、替换和调整PDF中的图像'

Python全局变量递归得到不同的结果

Python—转换日期:价目表到新行

Python避免mypy在相互引用中从另一个类重定义类时失败

PYTHON、VLC、RTSP.屏幕截图不起作用

不允许 Select 北极滚动?

如何合并具有相同元素的 torch 矩阵的行?

如何使用Azure Function将xlsb转换为xlsx?

Python—在嵌套列表中添加相同索引的元素,然后计算平均值

随机森林n_估计器的计算

有没有一种方法可以在朗肯代理中集成向量嵌入

为什么按下按钮后屏幕的 colored颜色 保持不变?

多个布尔条件的`jax.lax.cond`等效项