Day18:Python基础编程(循环)能力训练50天——打印菱形

day18

打印菱形

打印如下菱形

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

分析

1.分成2部分处理

   *
  ***
 *****
*******
--拆分---
 *****
  ***
   *

2.上半部分为正立三角形

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

以n=7为例,7//2=3,中位数3+1
序号 空格 星星数
i=0 4-i-1=3 2n+1=1
i=1 4-i-1=2 2
n+1=3
i=2 4-i-1=1 2n+1=5
i=3 4-i-1=0 2
n+1=7
3.下半部分为倒立三角形

 *****
  ***
   *

以n=7为例,7//2=3,中位数3+1=4
序号 空格 星星数
i=4 i-4+1=1 2*(n-i)-1=5
i=5 i-4+1=2 2*(n-i)-1=3
i=6 i-4+1=3 2*(n-i)-1=1

编码实现

1.编码实现(循环)

n=eval(input("请输入一个奇数:"))
while 1:
    if n%2==1:
        break
    n = eval(input("请输入一个奇数:"))
midnum=n//2+1
for i in range(n):
    if i< midnum:
        print("{}{}".format(' '*(midnum-i-1),'*'*(2*i+1)))
    else:
        print("{}{}".format(' '*(i-midnum+1),'*'*(2*(n-i)-1)))

运行结果

请输入一个奇数:9
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值