首页 > 编程语言 > 详细

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

时间:2016-03-07 17:07:02      阅读:145      评论:0      收藏:0      [点我收藏+]

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

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


代码:


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


运行结果:


[root@HK code_100]# python code_23.py 
[3, 2, 1, 0, 1, 2, 3]
[1, 3, 5, 7, 5, 3, 1]
   *
  ***
 *****
*******
 *****
  ***
   *
[root@HK code_100]#


代码解释:


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


本文出自 “学习笔记” 博客,请务必保留此出处http://netsyscode.blog.51cto.com/6965131/1748388

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

原文:http://netsyscode.blog.51cto.com/6965131/1748388

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!