1 # 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1
2
3
4
5
6
7
8
9
10
11
12
13
|
2
num
=
[
1
,
2
,
3
,
4
]
3
n
=
[]
4
for
x
in
num:
5
for
y
in
num:
6
for
z
in
num:
7
if
x !
=
y
and
x !
=
z
and
y !
=
z:
8
m
=
x
*
100
+
y
*
10
+
z
9
n.append(m)
10
11
print
(
'可以组成无重复的三位数有%d个'
%
(
len
(n)))
12
print
(
'它们分别是:'
)
13
print
(n)
|
运行结果:
1
2
3
4
|
[root@HK code_100]
# python code_1.py
可以组成无重复的三位数有
24
个
它们分别是:
[
123
,
124
,
132
,
134
,
142
,
143
,
213
,
214
,
231
,
234
,
241
,
243
,
312
,
314
,
321
,
324
,
341
,
342
,
412
,
413
,
421
,
423
,
431
,
432
]
|
脚本解释:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
2
num
=
[
1
,
2
,
3
,
4
]
# 将这四个数字定义成一个列表,以便for遍历这一些数字,也可以使用rang(1,5)来表示
3
n
=
[]
#定义一个空list,用来存放符合要求的数字,之所以用list是为了可以用len()函数取长度
4
for
x
in
num:
#用三个for循环来遍历所有可能的组合
5
for
y
in
num:
6
for
z
in
num:
7
if
x !
=
y
and
x !
=
z
and
y !
=
z:
# 排除有重复数字的三位数 (不知道有没有简单的表达式可以表示这个条件,没多想)
8
m
=
x
*
100
+
y
*
10
+
z
#取得符合要求的数字
9
n.append(m)
#将符合要求的数字用append方法添加到列表n中
10
11
print
(
'可以组成无重复的三位数有%d个'
%
(
len
(n)))
# 格式化输出列表长度,也就是列表个数
12
print
(
'它们分别是:'
)
13
print
(n)
# 列出符合要求的数字,也可以用for循环遍历整个列表,取出其中的数字
|
本文转自snc_snc 51CTO博客,原文链接:http://blog.51cto.com/netsyscode/1742044,如需转载请自行联系原作者