如何在Python控制台实现指定样式空心形状的打印?
解决Python控制台绘制空心形状的问题
看起来你现在的代码只完成了尺寸输入的部分,输出时不仅把所有星号行挤在了同一行,还没实现你想要的空心样式。咱们一步步来调整:
首先先解决换行问题:如果你的输出代码用了end=' '这类参数强制不换行,那得把它去掉(Python的print()默认就是换行的)。比如你原来的实心倒三角代码可能是这样:
tri = int(input("enter size : ")) for i in range(tri, 0, -1): print('*' * i, end=' ') # 这里的end=' '导致所有行连在一起输出
把end=' '删掉后,就能让每行单独显示了:
tri = int(input("enter size : ")) for i in range(tri, 0, -1): print('*' * i)
输入6后会输出:
****** ***** **** *** ** *
接下来是实现你要的空心样式——根据你描述的****** * * * * * * *,我猜你想要的是第一行全星、中间每行仅首尾是星的效果,下面给出两种常见的空心形状实现:
方案1:空心倒三角(第一行全星,中间每行首尾星,最后一行单个星)
输入6时输出:
****** * * * * * * * * *
代码实现:
tri = int(input("enter size : ")) # 打印第一行全星 print('*' * tri) # 打印中间的空心行 for i in range(tri-1, 1, -1): print('*' + ' '*(i-2) + '*') # 打印最后一行单个星 print('*')
方案2:空心矩形(首尾两行全星,中间每行首尾星)
输入6时输出:
****** * * * * * * * * ******
代码实现:
tri = int(input("enter size : ")) # 打印首尾两行全星 print('*' * tri) # 打印中间的空心行 for _ in range(tri-2): print('*' + ' '*(tri-2) + '*') print('*' * tri)
如果我理解的空心样式和你想要的有偏差,你可以补充说明具体的形状细节,我再调整代码~
内容的提问来源于stack exchange,提问作者gusud
相关产品推荐
相关产品推荐

