python-小理与他的画(赛氪OJ)

[题目描述]
小理是个画家,他希望有一天他的画能让心仪的她看到。
只是后来她有了他,他却只有他的画,他望着他的画,默默的发呆。
可惜做题的你,画不出他画的她,所以,我们只好画点简单的画,或许有一天,你就会遇到画里她/他吗?
因此我们规定画画的内容:输入一个正整数 n(n为奇数),输出高度为 n 的菱形,例如 n=5 时,输出
   *

 ***

*****

 ***

   *
输入格式:
输入共 T+1 行。
第一行输入一个整数 T ,代表有 T 组测试数据。
每组数据占 1 行,包括一个整数 n。
输出格式:
对于每组数据,输出对应的图形,每行行末不要有空格。
样例输入
2
1
3
样例输出
*

   *
* * *
   *
数据范围:
对于 100% 的数据,保证 1≤n≤49,且 n 为奇数 
来源/分类(难度系数:一星)


完整代码展示:
# coding=utf-8
l=int(input())
m=[]
for i in range(l):
      n=int(input())
      m.append(n)
for j in range(0,len(m)):
     a=m[j]
     space=' '
     b=int((a+1)/2-1)
     c=1
     d=0
     e="*"
     while d<(a+1)/2:
            print("{}{}".format(space*b,e*c))
            c+=2
            b-=1
            d+=1
    f=1
    g=a-2
    h=0
    while h<(a-1)/2:
           print("{}{}".format(space*f,e*g))
           f+=1
           g-=2
           h+=1


代码解释:
l=int(input())
 m=[]
 for i in range(l):
       n=int(input())
       m.append(n) 
”,让用户输入需要测试的数据组数。建立一个空列表m,让用户输入每组需要测试的数据n,并将其存入列表m中,循环l次。
for j in range(0,len(m)):
       a=m[j]
       space=' '
       b=int((a+1)/2-1)
       c=1
       d=0
       e="*"
       while d<(a+1)/2:
              print("{}{}".format(space*b,e*c))
              c+=2
              b-=1
              d+=1
      f=1
      g=a-2
      h=0
      while h<(a-1)/2:
             print("{}{}".format(space*f,e*g))
             f+=1
             g-=2
             h+=1                    
                            ”,依次遍历列表m中所有元素,令a=m[j],space=” ”,为一个空格,同时令b=int((a+1)/2-1),c=1,d=0,e=”*”。当d<(a+1)/2,打印b个space,c个e,两者之间没有空格;每打印一次,就让c加2,b减1,d加1,直至d等于(a+1)/2,跳出该while循环(此处while循环用于绘制上下金字塔的上半部分)。令f等于1,g等于a-2,h等于0,当h<(a-1)/2时,打印f个space,g个e,两者之间同样没有空格;每打印一次,就让f加1,g减2,h加1,直至h等于(a-1)/2,,跳出该while循环(此处while循环用于绘制上下金字塔的下半部分)。直至遍历完列表m中所有元素,循环结束。
本题解题核心:二次循环的运用,循环与规侓的认识理解


运行效果展示:

7f1f220e2d61458083cafe6e8140fe28.jpg

b86dec85814a446eb0b2aa5b0bc70bf4.jpg 

               (声明:以上内容均为原创) 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪云-微星

感谢大家的支持与鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值