当前位置:主页 > 软件编程 > Python代码 >

Python3实现打印任意宽度的菱形代码

时间:2020-12-06 10:09:52 | 栏目:Python代码 | 点击:

我就废话不多说了,还是直接看代码吧!

width = 11  #注意宽度必须位奇数
for i in range(-width//2,width//2+1):
  prespace=i if i>0 else -i
  print(' '*prespace+'*'*(width-prespace*2))

运行结果:

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

补充知识:Python打印高度为2 * n + 1,宽度为 2 * n + 1的菱形,输出一个由'*'组成的菱形,空白的地方用'.'表示。

很感谢百度和各类的问答平台,CSDN在其中占得多数的,帮我解决了一道又一道的难题,所以我来报恩来了。分享我做过的题,得到的知识点,希望可以帮助到在代码世界里苦苦挣扎又不能放弃的同类人。

今天分享我昨天做过的一道题,折磨我两天,但是大佬只用了两分钟。说实在的,还是读书太少。

1.给出一个n,请小明帮忙打印高度为2 * n + 1,宽度为 2 * n + 1的菱形。每次输入一个整型n(1 <= n <= 30)。输出一个由'*‘组成的菱形,空白的地方用'.'表示。

大佬讲用线性规划,控制直角坐标法。

如图:

n=int(input(""))
for i in range(2*n+1):
  for j in range(2*n+1):
    if i<=j+n and i>=j-n and i<=3*n-j and i>=n-j:
      print("*",end="")
    else:
      print(".",end="")
  print()

2.给出一个n,打印4个边长为n的等腰直角三角形,分别分布在(2 * n + 1) * (2 * n + 1) 的正方形的四个角落
每次输入一个整型n(1 <= n <= 30)。输出一个由'.‘组成的菱形,空白的地方用'*'表示。

for i in range(2*n+1):
  for j in range(2*n+1):
    if i<=j+n and i>=j-n and i<=3*n-j and i>=n-j:
      print(".",end="")
    else:
      print("*",end="")
  print()

您可能感兴趣的文章:

相关文章