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  =  []
   4  for  in  num:
   5      for  in  num:
   6          for  in  num:
   7              if  x ! =  and  x ! =  and  y ! =  z:
   8                   =  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  =  []  #定义一个空list,用来存放符合要求的数字,之所以用list是为了可以用len()函数取长度
   4  for  in  num:   #用三个for循环来遍历所有可能的组合
   5      for  in  num:
   6          for  in  num:
   7              if  x ! =  and  x ! =  and  y ! =  z:   # 排除有重复数字的三位数 (不知道有没有简单的表达式可以表示这个条件,没多想)
   8                   =  x * 100  +  y * 10  +  z    #取得符合要求的数字
   9                   n.append(m)        #将符合要求的数字用append方法添加到列表n中
  10                  
  11  print ( '可以组成无重复的三位数有%d个' % ( len (n)))     # 格式化输出列表长度,也就是列表个数
  12  print ( '它们分别是:' )
  13  print (n)                     # 列出符合要求的数字,也可以用for循环遍历整个列表,取出其中的数字