[英]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.