繁体   English   中英

Python星号图案印刷

[英]Python Asterisk Pattern Printing

我正在处理一个以特定模式打印星号的程序任务。

我已经从 1 星到 8 星,然后从 go 回到 1 星。

在它到达 1 之后,它需要再次执行类似的模式,但它会成对上升,例如:1 星、2 星、4 星、6 星直到 12 星,然后以 2 下降,直到达到 3。

我很难弄清楚我可以使用什么,因为规范包括我只能使用“4”打印语句,而我已经准备好使用我当前的程序来超过它。

任何帮助/建议将不胜感激。

非常感谢!

for i in range(0, 8):
   for j in range(0, i+1):
     print("* ", end="")
   print()
for x in range (7, 0, -1):
    print ("* " * x)
for i in range (1, 8):
    for i in range(2, i+2):
       print("* ", end="")
    print()

预期结果

for i in range(1,9,1):
 print('*'*i)

for i in range(8,0,-1):
 print('*'*i)

for i in range(2,12,2):
 print('*'*i)

for i in range(12,0,-2):
 print('*'*i)

输出:

*
**
***
****
*****
******
*******
******** #first loop
********
*******
******
*****
****
***
**
*
** #second loop
****
******
********
********** #third loop
************
**********
********
******
****
** #fourth loop

您可以根据需要调整数字。

首先,我建议将整个过程放到一个循环中(如果我了解您的要求)

time = range(3)

count = 0

for times in time:
    count = count + 1
    for i in range(8):
        print("* "*(i * count))
    for x in range (6, 0, -1):
        print ("* " * (x * count))

这将循环遍历该模式,次数为time = range每次给模式加1的次数。

上面的代码输出,

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

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

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

我希望这是您的初衷,如果我不明白您的问题,对不起。

4个循环和4个打印:

for i in range(1, 8, 1):
    print(i * "* ")
for j in range(8, 0, -1):
    print(j * "* ")
for k in range(2, 14, 2):
    print(k * "* ")
for l in range(9, 1, -3):
    print(l * "* ")

结果是:

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

为任何数字打印这种类型的模式:你必须只运行 4 个独立的循环:

n = 8 
for i in range(1,n+1):
    print(i*"*")
for i in range(1,n+1):
    print((n+1-i)*"*")
for i in range(1,n+1):
    print(i*"**")
for i in range(1,n+1):
    print((n+1-i)*"**")

 <pre> * ** *** **** ***** ****** ******* ******** ******** ******* ****** ***** **** *** ** * ** **** ****** ******** ********** ************ ************** **************** **************** ************** ************ ********** ******** ****** **** ** </pre>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM