python - 如何在python3中打印/输出重叠的钻石
问题描述
你将如何输出 n 颗重叠的钻石,每颗钻石的高度为 2n-1。以下是所需的输出:
n = 3
* * *
* * * * * *
* * * * * * *
* * * * * *
* * *
n = 4
* * * *
* * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * *
* * * *
n = 5
* * * * *
* * * * * * * * * *
* * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * *
* * * * * * * * * *
* * * * *
我尝试了一些使用循环的代码。我已经设法正确地输出每个形状 wrt 输入 n。但是,我不能只在多行上显示“单行”上的钻石,如下所示:
n = 3
*
* *
* * *
* *
*
*
* *
* * *
* *
*
*
* *
* * *
* *
*
这是我使用的代码:
n = int(input()) #for number of diamonds per row
height = 2*n - 1
for j in range(1, n + 1): #for printing h no. of diamonds
#from row 1 to middle row
for row in range(1, (height + 1)//2 + 1):
for spaces in range((height + 1)//2 - row): #print spaces per row
print(" ", end = "")
for stars in range((2*row) - 1): #print stars per row
if stars % 2 == 0:
print("*", end = "")
else:
print(" ", end = "")
print()
#from middle row to last row
for row in range((height + 1)//2 + 1, height + 1):
for spaces in range(row - (height + 1)//2):
print(" ", end = "")
for stars in range((height + 1 - row)*2 - 1):
if stars % 2 == 0:
print("*", end = "")
else:
print(" ", end = "")
print()
解决方案
这个怎么样?
n = 4
for i in list(range(1, n+1)) + list(range(n-1, 0, -1)):
rowpattern = (' '*(n-i) + '* '*(i) + ' '*(n-i)) * n
print(rowpattern)
编辑:在下面的评论之后,这更准确:
n = 4
for i in list(range(1, n)) + list(range(n, 0, -1)):
rowpattern = ' ' * (n-i) + ('* ' * (i if i!=n else i-1) +
' ' * (2 * (n - i) - 2)) * n + '*' *(1 if i==n else 0)
print(rowpattern)
推荐阅读
- java - 如何在spring特别是错误页面上基于java构建web.xml
- eclipse - Eclipse IDE 慢速下载 - 市场/更新
- scala - 带有 testkit sbt 的循环项目依赖项
- reactjs - Firebase 部署的站点无法在移动设备和其他人的电脑上打开
- excel - 如何将一批 30 个文本文件转换为 Excel 工作簿?
- jquery - 当第一个 SELECT 一遍又一遍地更改时,第二个 SELECT 获得越来越多的增量运行
- delphi - Delphi 10.3 Rio - 删除欢迎页面
- r - 异常处理 RSelenium switchToFrame() 错误:ElementNotVisible
- c++ - C ++ - 将变量分配给另一个变量和将变量分配给引用变量之间有什么区别?
- php - PHP在循环中获取每N个项目,但将它们按6组分组