您的位置:首页 > 编程语言 > Python开发

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

2016-03-07 14:40 555 查看
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递增,一直到条件不成立,跳出循环
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  题目 打印出 1 #