如何使用嵌套循环来创建以下模式?
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/