python - 嵌套循环来创建模式

标签 python loops nested

如何使用嵌套循环来创建以下模式?

111111
11111
1111
111
11
1

到目前为止,我已经有了这个,但我似乎被困住了。

def main():
stars = "******"
for x in range (1,7):
    print(stars)

    for y in range (1,1):
        stars = stars.replace("*"," ")
main()

最佳答案

您只需替换内部循环中的 1 颗星:

stars = "******"
for x in range(6): 
    stars = stars.replace("*","1")
    print(stars)
    for y in range(1): # need range(1) to loop exactly once
        stars = stars.replace("1","",1) 

输出:

111111
11111
1111
111
11
1

如果你真的想要星星:

stars = "******"
for x in range(6):
    print(stars)
    for y in range(1):
        stars = stars.replace("*","",1)

输出:

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

最后一个参数为 str.replace是 count,其中<​​em>仅替换第一个 count 出现的位置。因此每次我们仅替换单个字符。

如果您必须使用 star 变量并替换,则上面的代码将起作用,如果您只需要嵌套循环并创建模式,您可以从 5 开始循环并使用 end="" 在内循环中打印一次:

for x in range(5, -1, -1):
    print("1" * x, end="")
    for y in range(1):
        print("1")

同样的输出:

111111
11111
1111
111
11
1

关于python - 嵌套循环来创建模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30162944/

相关文章:

arrays - 如何在嵌套的 JSON 值上使用 SwiftyJSON

python - 使用Python在内存中加载文件

python - 如何在 Python 中切换字典的嵌套结构

python - 在不产生黑色外壳窗口的情况下启动 GUI 进程

java - 数字格式异常错误处理

swift - 以编程方式快速定位多个 View

javascript - 是否可以迭代数组中的每个项目并输出为 HTML?

Python - 多个元素的groupby(元组列​​表)

python - 在 docker 中运行 CuFFT 时出现 CUDA cudaErrorInsufficientDriver 错误

python - 奇点容器+Python+PyTorch : Why does 'import torch' work on Arch Linux host but fails on Centos 7 host?