1 #题目:打印出如下图案(菱形)
1
2
3
4
5
6
7
|
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
|
代码:
1
2
3
4
5
6
7
8
9
|
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
|
运行结果:
1
2
3
4
5
6
7
8
9
10
11
|
[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]
#
|
代码解释:
1
2
3
4
5
6
7
8
9
10
11
12
|
#思路:看过别的解题思路上用两段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递增,一直到条件不成立,跳出循环
|
|||
|
本文转自snc_snc 51CTO博客,原文链接:http://blog.51cto.com/netsyscode/1748388,如需转载请自行联系原作者 |