打印*星号菱形(for循环)

*星号菱形其实就是星号三角形分上下两部分输出

思路:输出三角形,观察每一行都是奇数1,3,5,7,9,7,5,3,1

假设输出的菱形行数为11行,首先凑1,3,5,7,9奇数,利用取整运算符// 【向下取整】相当于int 函数,#将菱形分成上下两个三角形来处理,11/2取整后等于5,即输出的是上面5行下面4行一共9行,加1后上面6行下面5行即11行。故分上下时将其用n//2+1来处理

n=11
for i in range(n//2+1)  
#将菱形分成上下两个三角形来处理,11/2取整后等于5,即输出的是上面5行下面4行一共9行,加1后上面6行下面5行即11行

对于每行*号的个数,对应的上6行分别为,1,3,5,7,9,11,若令行数为i,则上半部分行数对应的*个数j为(2i+1),对于其空格数,5,4,3,2,1,0,从第一行到(11//2+1)

n=11
#上半部分三角形
for i in range(n//2+1) :
  #输出空格,上面有几行最多输出几个空格
  #对于上一半:空格数目,上半部分的行数—所在的行数
  for j in range(n//2-i):
     print(" ",end=" ")
  for j in range(2*i+1):
     print("*",end=" ")
     print()

#下半部分三角形:   下半部分只需要5行就行
#所在行数 7,8,9,10,11

倒序行数   4,3,2,1,0
#“ ”数        1,2,3,4,5
#*数          9,7,5,3,1
 

for i in range(n//2):  #下半部分对应4,3,2,1
   for j in range (i+1):
      print(" ",end=" ")
#输出空格
   for j in range ((n//2-i)*2-1)
       print("*",end=" ")
   print()
n=7
for i in range (n//2+1):
    for j in range (n//2-i):
        print(" ",end=" ")
    for j in range(2*i+1):
        print("*",end=" ")
    print()
for i in range (n//2):
    for j in range (i+1):
        print (" ",end=" ")
    for j in range((n//2-i)*2-1):
        print ("*",end=" ")
    print()


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值