【python】编程语言入门经典100例--23

本文介绍了一种使用Python编程语言打印菱形图案的方法。通过构造列表来确定每行空格和星号的数量,再利用循环机制完成图案的绘制。此方法避免了复杂的嵌套循环,使代码更简洁易懂。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1 #题目:打印出如下图案(菱形) 

1
2
3
4
5
6
7
   *
  ***
 *****
*******
 *****
  ***
   *


代码:


1
2
3
4
5
6
7
8
9
 11 lix = [x for in range(3,0,-1)] + [x for in range(0,4)]
 12 liy = [y for in range(1,6,2)] + [y for in range(1,8,2)][::-1]
 13 print(lix)
 14 print(liy)
 15 
 16 = 0
 17 while m < len(lix):
 18     print(lix[m]*' ' + liy[m]*'*')
 19     += 1


运行结果:


1
2
3
4
5
6
7
8
9
10
11
[root@HK code_100]# python code_23.py 
[3210123]
[1357531]
   *
  ***
 *****
*******
 *****
  ***
   *
[root@HK code_100]#


代码解释:


1
2
3
4
5
6
7
8
9
10
11
12
 #思路:看过别的解题思路上用两段for循环分别打印递增和递减两段,这里我是根据每行的空格和星号数量
 #    的规律,开始就分别构造好列表,然后根据列表下标循环就可以得出答案
  
 11 lix = [x for in range(3,0,-1)] + [x for in range(0,4)]            #构造每行空格的个数列表
 12 liy = [y for in range(1,6,2)] + [y for in range(1,8,2)][::-1]     #构造每行*的个数列表,最后的[::-1]是列表反转逆序
 13 print(lix)            #额外配置,供参考
 14 print(liy)            #额外配置,供参考
 15 
 16 = 0                 #初始化while判断条件值
 17 while m < len(lix):   #循环列表的长度的次数
 18     print(lix[m]*' ' + liy[m]*'*')    #按照之前构造的列表打印
 19     += 1                            #m加1递增,一直到条件不成立,跳出循环

  







      本文转自snc_snc 51CTO博客,原文链接:http://blog.51cto.com/netsyscode/1748388,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值